00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __konq_listview_h__
00021 #define __konq_listview_h__
00022
00023 #include <kparts/browserextension.h>
00024 #include <kglobalsettings.h>
00025 #include <konq_operations.h>
00026 #include <kparts/factory.h>
00027 #include <konq_dirpart.h>
00028 #include <kmimetyperesolver.h>
00029
00030 #include <tqvaluelist.h>
00031 #include <tqlistview.h>
00032 #include <tqstringlist.h>
00033
00034 #include <konq_propsview.h>
00035 #include "konq_listviewwidget.h"
00036
00037 class KAction;
00038 class KToggleAction;
00039 class ListViewBrowserExtension;
00040
00041 class KonqListViewFactory : public KParts::Factory
00042 {
00043 public:
00044 KonqListViewFactory();
00045 virtual ~KonqListViewFactory();
00046
00047 virtual KParts::Part* createPartObject( TQWidget *parentWidget, const char *, TQObject *parent, const char *name, const char*, const TQStringList &args );
00048
00049 static KInstance *instance();
00050 static KonqPropsView *defaultViewProps();
00051
00052 private:
00053 static KInstance *s_instance;
00054 static KonqPropsView *s_defaultViewProps;
00055 };
00056
00062 class KonqListView : public KonqDirPart
00063 {
00064 friend class KonqBaseListViewWidget;
00065 Q_OBJECT
00066 Q_PROPERTY( bool supportsUndo READ supportsUndo )
00067 public:
00068 KonqListView( TQWidget *parentWidget, TQObject *parent, const char *name, const TQString& mode );
00069 virtual ~KonqListView();
00070
00071 virtual const KFileItem * currentItem();
00072 virtual KFileItemList selectedFileItems() {return m_pListView->selectedFileItems();};
00073
00074 KonqBaseListViewWidget *listViewWidget() const { return m_pListView; }
00075
00076 bool supportsUndo() const { return true; }
00077
00078 virtual void saveState( TQDataStream &stream );
00079 virtual void restoreState( TQDataStream &stream );
00080
00081
00082 virtual void disableIcons( const KURL::List & lst );
00083
00084
00085 void mimeTypeDeterminationFinished() {}
00086
00087 void determineIcon( KonqBaseListViewItem * item );
00088
00089 TQPtrList<KonqBaseListViewItem> & lstPendingMimeIconItems() { return m_mimeTypeResolver->m_lstPendingMimeIconItems; }
00090 void listingComplete();
00091
00092 virtual void newIconSize( int );
00093
00094 protected:
00095 virtual bool doOpenURL( const KURL &url );
00096 virtual bool doCloseURL();
00097 virtual bool openFile() { return true; }
00098
00099 void setupActions();
00100 void guiActivateEvent( KParts::GUIActivateEvent *event );
00101
00102 protected slots:
00103 void slotSelect();
00104 void slotUnselect();
00105 void slotSelectAll();
00106 void slotUnselectAll();
00107 void slotInvertSelection();
00108 void slotCaseInsensitive();
00109 void slotSelectionChanged();
00110
00111 void slotShowDot();
00112
00113
00114
00115
00116 void slotColumnToggled();
00117
00118
00119
00120
00121
00122 void headerDragged(int sec, int from, int to);
00123
00124 void slotSaveAfterHeaderDrag();
00125
00126 void slotHeaderSizeChanged();
00127 void slotSaveColumnWidths();
00128 void slotHeaderClicked(int sec);
00129
00130
00131 virtual void slotStarted() { m_pListView->slotStarted(); }
00132 virtual void slotCanceled() { m_pListView->slotCanceled(); }
00133 virtual void slotCompleted() { m_pListView->slotCompleted(); }
00134 virtual void slotNewItems( const KFileItemList& lst ) { m_pListView->slotNewItems( lst ); }
00135 virtual void slotDeleteItem( KFileItem * item ) { m_pListView->slotDeleteItem( item ); }
00136 virtual void slotRefreshItems( const KFileItemList& lst ) { m_pListView->slotRefreshItems( lst ); }
00137 virtual void slotClear() { m_pListView->slotClear(); }
00138 virtual void slotRedirection( const KURL & u ) { m_pListView->slotRedirection( u ); }
00139
00140
00141 void slotKFindOpened();
00142 void slotKFindClosed();
00143
00144 private:
00145
00146 KonqBaseListViewWidget *m_pListView;
00147 KMimeTypeResolver<KonqBaseListViewItem,KonqListView> *m_mimeTypeResolver;
00148 TQTimer *m_headerTimer;
00149
00150 KAction *m_paSelect;
00151 KAction *m_paUnselect;
00152 KAction *m_paSelectAll;
00153 KAction *m_paUnselectAll;
00154 KAction *m_paInvertSelection;
00155
00156 KToggleAction *m_paCaseInsensitive;
00157
00158 KToggleAction *m_paShowDot;
00159 KToggleAction *m_paShowTime;
00160 KToggleAction *m_paShowType;
00161 KToggleAction *m_paShowMimeType;
00162 KToggleAction *m_paShowAccessTime;
00163 KToggleAction *m_paShowCreateTime;
00164 KToggleAction *m_paShowLinkDest;
00165 KToggleAction *m_paShowSize;
00166 KToggleAction *m_paShowOwner;
00167 KToggleAction *m_paShowGroup;
00168 KToggleAction *m_paShowPermissions;
00169 KToggleAction *m_paShowURL;
00170 };
00171
00172 class ListViewBrowserExtension : public KonqDirPartBrowserExtension
00173 {
00174 Q_OBJECT
00175 friend class KonqListView;
00176 friend class KonqBaseListViewWidget;
00177 public:
00178 ListViewBrowserExtension( KonqListView *listView );
00179
00180 virtual int xOffset();
00181 virtual int yOffset();
00182
00183 protected slots:
00184 void updateActions();
00185
00186 void copy() { copySelection( false ); }
00187 void cut() { copySelection( true ); }
00188 void paste();
00189 void pasteTo( const KURL & );
00190 void rename();
00191 void trash();
00192 void del() { KonqOperations::del(m_listView->listViewWidget(),
00193 KonqOperations::DEL,
00194 m_listView->listViewWidget()->selectedUrls()); }
00195
00196 void reparseConfiguration();
00197 void setSaveViewPropertiesLocally( bool value );
00198 void setNameFilter( const TQString &nameFilter );
00199
00200
00201 void properties();
00202 void editMimeType();
00203
00204 private:
00205 void copySelection( bool move );
00206
00207 KonqListView *m_listView;
00208 };
00209
00210 #endif