diff options
Diffstat (limited to 'kio/kfile/kfiletreeview.h')
-rw-r--r-- | kio/kfile/kfiletreeview.h | 273 |
1 files changed, 0 insertions, 273 deletions
diff --git a/kio/kfile/kfiletreeview.h b/kio/kfile/kfiletreeview.h deleted file mode 100644 index fb242b2c6..000000000 --- a/kio/kfile/kfiletreeview.h +++ /dev/null @@ -1,273 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2000 David Faure <faure@kde.org> - 2000 Carsten Pfeiffer <pfeiffer@kde.org> - 2002 Klaas Freitag <freitag@suse.de> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License version 2 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef kfile_tree_view_h -#define kfile_tree_view_h - -#include <tqmap.h> -#include <tqpoint.h> -#include <tqpixmap.h> -#include <tqstrlist.h> -#include <tqtooltip.h> - -#include <klistview.h> -#include <kdirnotify.h> -#include <kio/job.h> -#include <kfiletreeviewitem.h> -#include <kfiletreebranch.h> - -class TQTimer; - - - -class KIO_EXPORT KFileTreeViewToolTip : public TQToolTip -{ -public: - KFileTreeViewToolTip( TQListView *view ) : TQToolTip( view ), m_view( view ) {} - -protected: - virtual void maybeTip( const TQPoint & ); - -private: - TQListView *m_view; -}; - - -/** - * The filetreeview offers a treeview on the file system which behaves like - * a QTreeView showing files and/or directories in the file system. - * - * KFileTreeView is able to handle more than one URL, represented by - * KFileTreeBranch. - * - * Typical usage: - * 1. create a KFileTreeView fitting in your layout and add columns to it - * 2. call addBranch to create one or more branches - * 3. retrieve the root item with KFileTreeBranch::root() and set it open - * if desired. That starts the listing. - */ -class KIO_EXPORT KFileTreeView : public KListView -{ - Q_OBJECT -public: - KFileTreeView( TQWidget *parent, const char *name = 0 ); - virtual ~KFileTreeView(); - - /** - * @return the current (i.e. selected) item - */ - KFileTreeViewItem * currentKFileTreeViewItem() const; - - /** - * @return the URL of the current selected item. - */ - KURL currentURL() const; - - /** - * Adds a branch to the treeview item. - * - * This high-level function creates the branch, adds it to the treeview and - * connects some signals. Note that directory listing does not start until - * a branch is expanded either by opening the root item by user or by setOpen - * on the root item. - * - * @returns a pointer to the new branch or zero - * @param path is the base url of the branch - * @param name is the name of the branch, which will be the text for column 0 - * @param showHidden says if hidden files and directories should be visible - */ - KFileTreeBranch* addBranch( const KURL &path, const TQString& name, bool showHidden = false ); - - /** - * same as the function above but with a pixmap to set for the branch. - */ - virtual KFileTreeBranch* addBranch( const KURL &path, const TQString& name , - const TQPixmap& pix, bool showHidden = false ); - - /** - * same as the function above but letting the user create the branch. - */ - virtual KFileTreeBranch* addBranch( KFileTreeBranch * ); - - /** - * removes the branch from the treeview. - * @param branch is a pointer to the branch - * @returns true on success. - */ - virtual bool removeBranch( KFileTreeBranch *branch ); - - /** - * @returns a pointer to the KFileTreeBranch in the KFileTreeView or zero on failure. - * @param searchName is the name of a branch - */ - KFileTreeBranch *branch( const TQString& searchName ); - - - /** - * @returns a list of pointers to all existing branches in the treeview. - **/ - KFileTreeBranchList& branches(); - - /** - * set the directory mode for branches. If true is passed, only directories will be loaded. - * @param branch is a pointer to a KFileTreeBranch - */ - virtual void setDirOnlyMode( KFileTreeBranch *branch, bool ); - - /** - * searches a branch for a KFileTreeViewItem identified by the relative url given as - * second parameter. The method adds the branches base url to the relative path and finds - * the item. - * @returns a pointer to the item or zero if the item does not exist. - * @param brnch is a pointer to the branch to search in - * @param relUrl is the branch relativ url - */ - KFileTreeViewItem *findItem( KFileTreeBranch* brnch, const TQString& relUrl ); - - /** - * see method above, differs only in the first parameter. Finds the branch by its name. - */ - KFileTreeViewItem *findItem( const TQString& branchName, const TQString& relUrl ); - - /** - * @returns a flag indicating if extended folder pixmaps are displayed or not. - */ - bool showFolderOpenPixmap() const { return m_wantOpenFolderPixmaps; }; - -public slots: - - /** - * set the flag to show 'extended' folder icons on or off. If switched on, folders will - * have an open folder pixmap displayed if their children are visible, and the standard - * closed folder pixmap (from mimetype folder) if they are closed. - * If switched off, the plain mime pixmap is displayed. - * @param showIt = false displays mime type pixmap only - */ - virtual void setShowFolderOpenPixmap( bool showIt = true ) - { m_wantOpenFolderPixmaps = showIt; } - -protected: - /** - * @returns true if we can decode the drag and support the action - */ - - virtual bool acceptDrag(TQDropEvent* event) const; - virtual TQDragObject * dragObject(); - - virtual void startAnimation( KFileTreeViewItem* item, const char * iconBaseName = "kde", uint iconCount = 6 ); - virtual void stopAnimation( KFileTreeViewItem* item ); - virtual void contentsDragEnterEvent( TQDragEnterEvent *e ); - virtual void contentsDragMoveEvent( TQDragMoveEvent *e ); - virtual void contentsDragLeaveEvent( TQDragLeaveEvent *e ); - virtual void contentsDropEvent( TQDropEvent *ev ); - -protected slots: - virtual void slotNewTreeViewItems( KFileTreeBranch*, - const KFileTreeViewItemList& ); - - virtual void slotSetNextUrlToSelect( const KURL &url ) - { m_nextUrlToSelect = url; } - - virtual TQPixmap itemIcon( KFileTreeViewItem*, int gap = 0 ) const; - -private slots: - void slotExecuted( TQListViewItem * ); - void slotExpanded( TQListViewItem * ); - void slotCollapsed( TQListViewItem *item ); - - void slotSelectionChanged(); - - void slotAnimation(); - - void slotAutoOpenFolder(); - - void slotOnItem( TQListViewItem * ); - void slotItemRenamed(TQListViewItem*, const TQString &, int); - - void slotPopulateFinished( KFileTreeViewItem* ); - - -signals: - - void onItem( const TQString& ); - /* New signals if you like it ? */ - void dropped( TQWidget*, TQDropEvent* ); - void dropped( TQWidget*, TQDropEvent*, KURL::List& ); - void dropped( KURL::List&, KURL& ); - // The drop event allows to differentiate between move and copy - void dropped( TQWidget*, TQDropEvent*, KURL::List&, KURL& ); - - void dropped( TQDropEvent *e, TQListViewItem * after); - void dropped(KFileTreeView *, TQDropEvent *, TQListViewItem *); - void dropped(TQDropEvent *e, TQListViewItem * parent, TQListViewItem * after); - void dropped(KFileTreeView *, TQDropEvent *, TQListViewItem *, TQListViewItem *); - -protected: - KURL m_nextUrlToSelect; - - -private: - // Returns whether item is still a valid item in the tree - bool isValidItem( TQListViewItem *item); - void clearTree(); - - - /* List that holds the branches */ - KFileTreeBranchList m_branches; - - - struct AnimationInfo - { - AnimationInfo( const char * _iconBaseName, uint _iconCount, const TQPixmap & _originalPixmap ) - : iconBaseName(_iconBaseName), iconCount(_iconCount), iconNumber(1), originalPixmap(_originalPixmap) {} - AnimationInfo() : iconCount(0) {} - TQCString iconBaseName; - uint iconCount; - uint iconNumber; - TQPixmap originalPixmap; - }; - typedef TQMap<KFileTreeViewItem *, AnimationInfo> MapCurrentOpeningFolders; - MapCurrentOpeningFolders m_mapCurrentOpeningFolders; - - - TQTimer *m_animationTimer; - - TQPoint m_dragPos; - bool m_bDrag; - - bool m_wantOpenFolderPixmaps; // Flag weather the folder should have open-folder pixmaps - - TQListViewItem *m_currentBeforeDropItem; // The item that was current before the drag-enter event happened - TQListViewItem *m_dropItem; // The item we are moving the mouse over (during a drag) - TQStrList m_lstDropFormats; - TQPixmap m_openFolderPixmap; - TQTimer *m_autoOpenTimer; - - KFileTreeViewToolTip m_toolTip; - - -protected: - virtual void virtual_hook( int id, void* data ); -private: - class KFileTreeViewPrivate; - KFileTreeViewPrivate *d; -}; - -#endif |