libkonq Library API Documentation

konq_iconviewwidget.h

00001 /*  This file is part of the KDE project
00002     Copyright (C) 1998, 1999 Torben Weis <weis@kde.org>
00003     Copyright (C) 2000, 2001, 2002 David Faure <david@mandrakesoft.com>
00004 
00005     This program is free software; you can redistribute it and/or modify
00006     it under the terms of the GNU General Public License as published by
00007     the Free Software Foundation; either version 2 of the License, or
00008     (at your option) any later version.
00009 
00010     This program is distributed in the hope that it will be useful,
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013     GNU General Public License for more details.
00014 
00015     You should have received a copy of the GNU General Public License
00016     along with this program; if not, write to the Free Software
00017     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
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 <qguardedptr.h>
00027 #include <kfileitem.h>
00028 #include <kio/jobclasses.h>
00029 
00030 class KonqFMSettings;
00031 class KFileIVI;
00032 class KonqIconDrag;
00033 namespace KIO { class Job; }
00034 
00041 class KonqIconViewWidget : public KIconView
00042 {
00043     Q_OBJECT
00044     Q_PROPERTY( bool sortDirectoriesFirst READ sortDirectoriesFirst WRITE setSortDirectoriesFirst )
00045     Q_PROPERTY( QRect iconArea READ iconArea WRITE setIconArea )
00046     Q_PROPERTY( int lineupMode READ lineupMode WRITE setLineupMode )
00047     Q_PROPERTY( QString url READ urlString WRITE setNewURL )
00048 
00049     friend class KFileIVI;
00050 
00051 public:
00052 
00053     enum LineupMode { LineupHorizontal=1, LineupVertical, LineupBoth };
00054 
00059     KonqIconViewWidget( QWidget *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 QRect &rect );
00078 
00082     virtual void focusOutEvent( QFocusEvent * /* ev */ );
00083 
00087     QRect iconArea() const;
00088 
00093     void setLineupMode(int mode);
00094 
00098     int lineupMode() const;
00099 
00105     void lineupIcons();
00106 
00116     void setIcons( int size, const QStringList& stopImagePreviewFor = QStringList() );
00117 
00121     void refreshMimeTypes();
00122 
00123     int iconSize() { return m_size; }
00124 
00125     void calculateGridX();
00130     int gridXValue() const;
00131 
00138     void startImagePreview( const QStringList &ignored, bool force );
00139     void stopImagePreview();
00140     bool isPreviewRunning() const;
00141     // unused
00142     void setThumbnailPixmap( KFileIVI * item, const QPixmap & pixmap );
00143     void disableSoundPreviews();
00144 
00145     void setURL ( const KURL & kurl );
00146     // ### KDE4: make const
00147     const KURL & url() { return m_url; }
00148     QString urlString() const { return m_url.url(); }
00149     void setRootItem ( const KFileItem * item ) { m_rootItem = item; }
00150 
00154     KFileItemList selectedFileItems();
00155 
00156     void setItemColor( const QColor &c );
00157     QColor itemColor() const;
00158 
00159     virtual void cutSelection();
00160     virtual void copySelection();
00161     virtual void pasteSelection();
00162     virtual KURL::List selectedUrls();
00163     void paste( const KURL &url );
00164 
00165     bool sortDirectoriesFirst() const;
00166     void setSortDirectoriesFirst( bool b );
00167 
00168     void setCaseInsensitiveSort( bool b );
00169     bool caseInsensitiveSort() const;
00170 
00174     const KURL::List & dragURLs() { return m_lstDragURLs; }
00175 
00179     virtual void clear();
00180 
00184     virtual void takeItem( QIconViewItem *item );
00185 
00189     virtual void insertInGrid( QIconViewItem *item );
00190 
00194     virtual void setItemTextPos( ItemTextPos pos );
00195 
00199     virtual void visualActivate(QIconViewItem *);
00200 
00201     bool isDesktop() const { return m_bDesktop; }
00202 
00206     virtual void setWallpaper(const KURL&) { }
00207 
00208     bool maySetWallpaper();
00209     void setMaySetWallpaper(bool b);
00210 
00211     void disableIcons( const KURL::List & lst );
00212 
00213     QString iconPositionGroupPrefix() const { return m_iconPositionGroupPrefix; }
00214     QString dotDirectoryPath() const { return m_dotDirectoryPath; }
00215 
00216     void setPreviewSettings(const QStringList& mimeTypes);
00217     const QStringList& previewSettings();
00218     void setNewURL( const QString& url );
00219 
00220 public slots:
00224     virtual void slotSelectionChanged();
00225 
00226     void slotSaveIconPositions();
00227 
00228     void renameSelectedItem();
00229 
00230     void slotToolTipPreview( const KFileItem *, const QPixmap & );
00231     void slotToolTipPreviewResult();
00232 signals:
00236     void enableAction( const char * name, bool enabled );
00237 
00238     void dropped();
00239     void imagePreviewFinished();
00240 
00241     void incIconSize();
00242     void decIconSize();
00243 
00244 protected slots:
00245     virtual void slotDropped( QDropEvent *e, const QValueList<QIconDragItem> & );
00246 
00247     void slotItemRenamed(QIconViewItem *item, const QString &name);
00248 
00249     void slotIconChanged(int);
00250     void slotOnItem(QIconViewItem *);
00251     void slotOnViewport();
00252     void slotStartSoundPreview();
00253     void slotPreview(const KFileItem *, const QPixmap &);
00254     void slotPreviewResult();
00255 
00256     void slotMovieUpdate( const QRect& rect );
00257     void slotMovieStatus( int status );
00258     void slotReenableAnimation();
00259 
00260     void slotAboutToCreate(const QPoint &pos, const QValueList<KIO::CopyInfo> &files);
00261     void doubleClickTimeout();
00262 
00263 private slots:
00264     void slotRearrangeIcons();
00265 
00266 protected:
00267     virtual QDragObject *dragObject();
00268     KonqIconDrag *konqDragObject( QWidget * dragSource = 0L );
00269     bool mimeTypeMatch( const QString& mimeType, const QStringList& mimeList ) const;
00270 
00271     virtual void drawBackground( QPainter *p, const QRect &r );
00277     virtual void drawBackground( QPainter *p, const QRect &r,
00278                     const QPoint &pt );
00279     virtual void contentsDragEnterEvent( QDragEnterEvent *e );
00280     virtual void contentsDropEvent( QDropEvent *e );
00281     virtual void contentsMousePressEvent( QMouseEvent *e );
00282     virtual void contentsMouseReleaseEvent ( QMouseEvent * e );
00283     virtual void contentsMouseMoveEvent( QMouseEvent *e );
00284     virtual void backgroundPixmapChange( const QPixmap & );
00285     virtual void wheelEvent( QWheelEvent* );
00286     void readAnimatedIconsConfig();
00287     void mousePressChangeValue();
00288 
00289 private:
00290     KURL m_url;
00291     const KFileItem * m_rootItem;
00292 
00293     KURL::List m_lstDragURLs;
00294 
00295     int m_size;
00296 
00298     KonqFMSettings * m_pSettings;
00299 
00300     bool m_bMousePressed;
00301     QPoint m_mousePos;
00302 
00303     QColor iColor;
00304 
00305     bool m_bSortDirsFirst;
00306 
00307     QString m_iconPositionGroupPrefix;
00308     QString m_dotDirectoryPath;
00309 
00310     int m_LineupMode;
00311     QRect m_IconRect;
00312 
00313     bool m_bDesktop;
00314     bool m_bSetGridX;
00315 
00316 private:
00317     struct KonqIconViewWidgetPrivate *d;
00318 
00319 };
00320 
00321 #endif
KDE Logo
This file is part of the documentation for libkonq Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sun Apr 11 13:44:47 2004 by doxygen 1.3.6-20040222 written by Dimitri van Heesch, © 1997-2003