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 #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( QRect iconArea READ iconArea WRITE setIconArea )
00047     Q_PROPERTY( int lineupMode READ lineupMode WRITE setLineupMode )
00048     Q_PROPERTY( QString url READ urlString WRITE setNewURL )
00049 
00050     friend class KFileIVI;
00051 
00052 public:
00053 
00054     enum LineupMode { LineupHorizontal=1, LineupVertical, LineupBoth };
00055 
00060     KonqIconViewWidget( QWidget *parent = 0L, const char *name = 0L, WFlags f = 0, bool kdesktop = FALSE );
00061     virtual ~KonqIconViewWidget();
00062 
00071     bool initConfig( bool bInit );
00072 
00078     void setIconArea( const QRect &rect );
00079 
00083     virtual void focusOutEvent( QFocusEvent * /* ev */ );
00084 
00088     QRect iconArea() const;
00089 
00094     void setLineupMode(int mode);
00095 
00099     int lineupMode() const;
00100 
00106     void lineupIcons();
00107 
00113     void lineupIcons( QIconView::Arrangement arrangement );
00114 
00124     void setIcons( int size, const QStringList& stopImagePreviewFor = QStringList() );
00125 
00129     void refreshMimeTypes();
00130 
00131     int iconSize() { return m_size; }
00132 
00133     void calculateGridX();
00138     int gridXValue() const;
00139 
00151     void gridValues( int* x, int* y, int* dx, int* dy, int* nx, int* ny );
00152 
00159     void startImagePreview( const QStringList &ignored, bool force );
00160     void stopImagePreview();
00161     bool isPreviewRunning() const;
00162     // unused
00163     void setThumbnailPixmap( KFileIVI * item, const QPixmap & pixmap );
00164     void disableSoundPreviews();
00165 
00166     void setURL ( const KURL & kurl );
00167     // ### KDE4: make const
00168     const KURL & url() { return m_url; }
00169     QString urlString() const { return m_url.url(); }
00170     void setRootItem ( const KFileItem * item ) { m_rootItem = item; }
00171 
00175     KFileItemList selectedFileItems();
00176 
00177     void setItemColor( const QColor &c );
00178     QColor itemColor() const;
00179 
00180     virtual void cutSelection();
00181     virtual void copySelection();
00182     virtual void pasteSelection();
00183     virtual KURL::List selectedUrls();
00184     void paste( const KURL &url );
00185 
00186     bool sortDirectoriesFirst() const;
00187     void setSortDirectoriesFirst( bool b );
00188 
00189     void setCaseInsensitiveSort( bool b );
00190     bool caseInsensitiveSort() const;
00191 
00195     const KURL::List & dragURLs() { return m_lstDragURLs; }
00196 
00200     virtual void clear();
00201 
00205     virtual void takeItem( QIconViewItem *item );
00206 
00210     virtual void insertInGrid( QIconViewItem *item );
00211 
00215     virtual void setItemTextPos( ItemTextPos pos );
00216 
00220     virtual void visualActivate(QIconViewItem *);
00221 
00222     bool isDesktop() const { return m_bDesktop; }
00223 
00227     virtual void setWallpaper(const KURL&) { }
00228 
00229     bool maySetWallpaper();
00230     void setMaySetWallpaper(bool b);
00231 
00232     void disableIcons( const KURL::List & lst );
00233 
00234     QString iconPositionGroupPrefix() const { return m_iconPositionGroupPrefix; }
00235     QString dotDirectoryPath() const { return m_dotDirectoryPath; }
00236 
00237     void setPreviewSettings(const QStringList& mimeTypes);
00238     const QStringList& previewSettings();
00239     void setNewURL( const QString& url );
00240 
00241 public slots:
00245     virtual void slotSelectionChanged();
00246 
00247     void slotSaveIconPositions();
00248 
00249     void renameSelectedItem();
00250     void renameCurrentItem();
00251 
00252     void slotToolTipPreview( const KFileItem *, const QPixmap & );
00253     void slotToolTipPreviewResult();
00254 signals:
00258     void enableAction( const char * name, bool enabled );
00259 
00260     void dropped();
00261     void imagePreviewFinished();
00262 
00263     void incIconSize();
00264     void decIconSize();
00265 
00269     void dragEntered();
00270     void dragLeft();
00275     void dragFinished();
00276 
00277 protected slots:
00278     virtual void slotDropped( QDropEvent *e, const QValueList<QIconDragItem> & );
00279 
00280     void slotItemRenamed(QIconViewItem *item, const QString &name);
00281 
00282     void slotIconChanged(int);
00283     void slotOnItem(QIconViewItem *);
00284     void slotOnViewport();
00285     void slotStartSoundPreview();
00286     void slotPreview(const KFileItem *, const QPixmap &);
00287     void slotPreviewResult();
00288     void slotStartTooltip();
00289 
00290     void slotMovieUpdate( const QRect& rect );
00291     void slotMovieStatus( int status );
00292     void slotReenableAnimation();
00293 
00294     void slotAboutToCreate(const QPoint &pos, const QValueList<KIO::CopyInfo> &files);
00295     void doubleClickTimeout();
00296 
00297 protected:
00298     virtual QDragObject *dragObject();
00299     KonqIconDrag *konqDragObject( QWidget * dragSource = 0L );
00300     bool mimeTypeMatch( const QString& mimeType, const QStringList& mimeList ) const;
00301 
00302     virtual void drawBackground( QPainter *p, const QRect &r );
00308     virtual void drawBackground( QPainter *p, const QRect &r,
00309                     const QPoint &pt );
00310     virtual void contentsDragEnterEvent( QDragEnterEvent *e );
00311     virtual void contentsDragLeaveEvent( QDragLeaveEvent *e );
00312     virtual void contentsDropEvent( QDropEvent *e );
00313     virtual void contentsMousePressEvent( QMouseEvent *e );
00314     virtual void contentsMouseReleaseEvent ( QMouseEvent * e );
00315     virtual void contentsMouseMoveEvent( QMouseEvent *e );
00316     virtual void backgroundPixmapChange( const QPixmap & );
00317     virtual void wheelEvent( QWheelEvent* );
00318     void readAnimatedIconsConfig();
00319     void mousePressChangeValue();
00320     
00321     bool boostPreview() const;
00322     int previewIconSize( int size ) const;
00323     int largestPreviewIconSize( int size ) const;
00324     bool canPreview( KFileItem* item );
00325     void updatePreviewMimeTypes();
00326 
00327 private:
00328     KURL m_url;
00329     const KFileItem * m_rootItem;
00330 
00331     KURL::List m_lstDragURLs;
00332 
00333     int m_size;
00334 
00336     KonqFMSettings * m_pSettings;
00337 
00338     bool m_bMousePressed;
00339     QPoint m_mousePos;
00340 
00341     QColor iColor;
00342 
00343     bool m_bSortDirsFirst;
00344 
00345     QString m_iconPositionGroupPrefix;
00346     QString m_dotDirectoryPath;
00347 
00348     int m_LineupMode;
00349     QRect m_IconRect;
00350 
00351     bool m_bDesktop;
00352     bool m_bSetGridX;
00353 
00354 private:
00355     struct KonqIconViewWidgetPrivate *d;
00356 
00357 };
00358 
00359 #endif
KDE Logo
This file is part of the documentation for libkonq Library Version 3.3.90.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Apr 5 03:59:19 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003