libkonq
konq_iconviewwidget.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __konq_iconviewwidget_h__
00021 #define __konq_iconviewwidget_h__
00022
00023 #include <kiconloader.h>
00024 #include <kiconview.h>
00025 #include <kurl.h>
00026 #include <tqguardedptr.h>
00027 #include <kfileitem.h>
00028 #include <kio/jobclasses.h>
00029 #include <libkonq_export.h>
00030
00031 class KonqFMSettings;
00032 class KFileIVI;
00033 class KonqIconDrag;
00034 namespace KIO { class Job; }
00035
00042 class LIBKONQ_EXPORT KonqIconViewWidget : public KIconView
00043 {
00044 Q_OBJECT
00045 Q_PROPERTY( bool sortDirectoriesFirst READ sortDirectoriesFirst WRITE setSortDirectoriesFirst )
00046 Q_PROPERTY( TQRect iconArea READ iconArea WRITE setIconArea )
00047 Q_PROPERTY( int lineupMode READ lineupMode WRITE setLineupMode )
00048 Q_PROPERTY( TQString url READ urlString WRITE setNewURL )
00049
00050 friend class KFileIVI;
00051
00052 public:
00053
00054 enum LineupMode { LineupHorizontal=1, LineupVertical, LineupBoth };
00055
00059 KonqIconViewWidget( TQWidget *parent = 0L, const char *name = 0L, WFlags f = 0, bool kdesktop = FALSE );
00060 virtual ~KonqIconViewWidget();
00061
00070 bool initConfig( bool bInit );
00071
00077 void setIconArea( const TQRect &rect );
00078
00082 virtual void focusOutEvent( TQFocusEvent * );
00083
00087 TQRect iconArea() const;
00088
00093 void setLineupMode(int mode);
00094
00098 int lineupMode() const;
00099
00105 void lineupIcons();
00106
00114 void lineupIcons( TQIconView::Arrangement arrangement );
00115
00126 void setIcons( int size, const TQStringList& stopImagePreviewFor = TQStringList() );
00127
00131 void refreshMimeTypes();
00132
00133 int iconSize() { return m_size; }
00134
00135 void calculateGridX();
00140 int gridXValue() const;
00141
00153 void gridValues( int* x, int* y, int* dx, int* dy, int* nx, int* ny );
00154
00163 void startImagePreview( const TQStringList &ignored, bool force );
00164 void stopImagePreview();
00165 bool isPreviewRunning() const;
00166
00167 void setThumbnailPixmap( KFileIVI * item, const TQPixmap & pixmap );
00168 void disableSoundPreviews();
00169
00170 void setURL ( const KURL & kurl );
00171
00172 const KURL & url() { return m_url; }
00173 TQString urlString() const { return m_url.url(); }
00174 void setRootItem ( const KFileItem * item ) { m_rootItem = item; }
00175
00179 KFileItemList selectedFileItems();
00180
00181 void setItemColor( const TQColor &c );
00182 TQColor itemColor() const;
00183
00184 virtual void cutSelection();
00185 virtual void copySelection();
00186 virtual void pasteSelection();
00187 virtual KURL::List selectedUrls();
00188 enum UrlFlags { UserVisibleUrls = 0, MostLocalUrls = 1 };
00189 KURL::List selectedUrls( UrlFlags flags ) const;
00190 void paste( const KURL &url );
00191
00192 bool sortDirectoriesFirst() const;
00193 void setSortDirectoriesFirst( bool b );
00194
00195 void setCaseInsensitiveSort( bool b );
00196 bool caseInsensitiveSort() const;
00197
00201 const KURL::List & dragURLs() { return m_lstDragURLs; }
00202
00206 virtual void clear();
00207
00211 virtual void takeItem( TQIconViewItem *item );
00212
00216 virtual void insertInGrid( TQIconViewItem *item );
00217
00221 virtual void setItemTextPos( ItemTextPos pos );
00222
00226 virtual void visualActivate(TQIconViewItem *);
00227
00228 bool isDesktop() const { return m_bDesktop; }
00229
00233 virtual void setWallpaper(const KURL&) { }
00234
00235 bool maySetWallpaper();
00236 void setMaySetWallpaper(bool b);
00237
00238 void disableIcons( const KURL::List & lst );
00239
00240 TQString iconPositionGroupPrefix() const { return m_iconPositionGroupPrefix; }
00241 TQString dotDirectoryPath() const { return m_dotDirectoryPath; }
00242
00243 void setPreviewSettings(const TQStringList& mimeTypes);
00244 const TQStringList& previewSettings();
00245 void setNewURL( const TQString& url );
00246
00247 public slots:
00251 virtual void slotSelectionChanged();
00252
00253 void slotSaveIconPositions();
00254
00255 void renameSelectedItem();
00256 void renameCurrentItem();
00257
00258 void slotToolTipPreview( const KFileItem *, const TQPixmap & );
00259 void slotToolTipPreviewResult() ;
00260
00261 signals:
00265 void enableAction( const char * name, bool enabled );
00266
00267 void dropped();
00268 void imagePreviewFinished();
00269
00270 void incIconSize();
00271 void decIconSize();
00272
00276 void dragEntered( bool accepted );
00277 void dragLeft();
00278
00279 void dragMove( bool accepted );
00284 void dragFinished();
00285
00286 protected slots:
00287 virtual void slotDropped( TQDropEvent *e, const TQValueList<TQIconDragItem> & );
00288
00289 void slotItemRenamed(TQIconViewItem *item, const TQString &name);
00290
00291 void slotIconChanged(int);
00292 void slotOnItem(TQIconViewItem *);
00293 void slotOnViewport();
00294 void slotStartSoundPreview();
00295 void slotPreview(const KFileItem *, const TQPixmap &);
00296 void slotPreviewResult();
00297
00298 void slotMovieUpdate( const TQRect& rect );
00299 void slotMovieStatus( int status );
00300 void slotReenableAnimation();
00301
00302 void slotAboutToCreate(const TQPoint &pos, const TQValueList<KIO::CopyInfo> &files);
00303 void doubleClickTimeout();
00304
00305 protected:
00306 virtual TQDragObject *dragObject();
00307 KonqIconDrag *konqDragObject( TQWidget * dragSource = 0L );
00308 bool mimeTypeMatch( const TQString& mimeType, const TQStringList& mimeList ) const;
00309
00310 virtual void drawBackground( TQPainter *p, const TQRect &r );
00316 virtual void drawBackground( TQPainter *p, const TQRect &r,
00317 const TQPoint &pt );
00318 virtual void contentsDragEnterEvent( TQDragEnterEvent *e );
00319 virtual void contentsDragLeaveEvent( TQDragLeaveEvent *e );
00320 virtual void contentsDragMoveEvent( TQDragMoveEvent *e );
00321 virtual void contentsDropEvent( TQDropEvent *e );
00322 virtual void contentsMousePressEvent( TQMouseEvent *e );
00323 virtual void contentsMouseReleaseEvent ( TQMouseEvent * e );
00324 virtual void contentsMouseMoveEvent( TQMouseEvent *e );
00325 virtual void backgroundPixmapChange( const TQPixmap & );
00326 virtual void wheelEvent( TQWheelEvent* );
00327 virtual void leaveEvent( TQEvent *e );
00328
00329 void readAnimatedIconsConfig();
00330 void mousePressChangeValue();
00331
00332 bool boostPreview() const;
00333 int previewIconSize( int size ) const;
00334 int largestPreviewIconSize( int size ) const;
00335 bool canPreview( KFileItem* item );
00336 void updatePreviewMimeTypes();
00337
00338 private:
00339 KURL m_url;
00340 const KFileItem * m_rootItem;
00341
00342 KURL::List m_lstDragURLs;
00343
00344 int m_size;
00345
00347 KonqFMSettings * m_pSettings;
00348
00349 bool m_bMousePressed;
00350 TQPoint m_mousePos;
00351
00352 TQColor iColor;
00353
00354 bool m_bSortDirsFirst;
00355
00356 TQString m_iconPositionGroupPrefix;
00357 TQString m_dotDirectoryPath;
00358
00359 int m_LineupMode;
00360 TQRect m_IconRect;
00361
00362 bool m_bDesktop;
00363 bool m_bSetGridX;
00364
00365 private:
00366 struct KonqIconViewWidgetPrivate *d;
00367
00368 };
00369
00370 #endif