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., 675 Mass Ave, Cambridge, MA 02139, 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 
00029 class KonqFMSettings;
00030 class KFileIVI;
00031 class KonqIconDrag;
00032 namespace KIO { class Job; }
00033 
00040 class KonqIconViewWidget : public KIconView
00041 {
00042     Q_OBJECT
00043     Q_PROPERTY( bool sortDirectoriesFirst READ sortDirectoriesFirst WRITE setSortDirectoriesFirst )
00044     Q_PROPERTY( QRect iconArea READ iconArea WRITE setIconArea )
00045     Q_PROPERTY( int lineupMode READ lineupMode WRITE setLineupMode )
00046     Q_PROPERTY( QString url READ urlString WRITE setNewURL )
00047 
00048     friend class KFileIVI;
00049 
00050 public:
00051 
00052     enum LineupMode { LineupHorizontal=1, LineupVertical, LineupBoth };
00053 
00058     KonqIconViewWidget( QWidget *parent = 0L, const char *name = 0L, WFlags f = 0, bool kdesktop = FALSE );
00059     virtual ~KonqIconViewWidget();
00060 
00069     bool initConfig( bool bInit );
00070 
00076     void setIconArea( const QRect &rect );
00077 
00081     virtual void focusOutEvent( QFocusEvent * /* ev */ );
00082 
00086     QRect iconArea() const;
00087 
00092     void setLineupMode(int mode);
00093 
00097     int lineupMode() const;
00098 
00104     void lineupIcons();
00105 
00115     void setIcons( int size, const QStringList& stopImagePreviewFor = QStringList() );
00116 
00120     void refreshMimeTypes();
00121 
00122     int iconSize() { return m_size; }
00123 
00124     void calculateGridX();
00129     int gridXValue() const;
00130 
00137     void startImagePreview( const QStringList &ignored, bool force );
00138     void stopImagePreview();
00139     bool isPreviewRunning() const;
00140     void setThumbnailPixmap( KFileIVI * item, const QPixmap & pixmap );
00141     void disableSoundPreviews();
00142 
00143     void setURL ( const KURL & kurl );
00144     // ### KDE4: make const
00145     const KURL & url() { return m_url; }
00146     QString urlString() const { return m_url.url(); }
00147     void setRootItem ( const KFileItem * item ) { m_rootItem = item; }
00148 
00152     KFileItemList selectedFileItems();
00153 
00154     void setItemColor( const QColor &c );
00155     QColor itemColor() const;
00156 
00157     virtual void cutSelection();
00158     virtual void copySelection();
00159     virtual void pasteSelection();
00160     virtual KURL::List selectedUrls();
00161     void paste( const KURL &url );
00162 
00163     bool sortDirectoriesFirst() const;
00164     void setSortDirectoriesFirst( bool b );
00165 
00169     const KURL::List & dragURLs() { return m_lstDragURLs; }
00170 
00174     virtual void clear();
00175 
00179     virtual void takeItem( QIconViewItem *item );
00180 
00184     virtual void insertInGrid( QIconViewItem *item );
00185 
00189     virtual void setItemTextPos( ItemTextPos pos );
00190 
00194     virtual void visualActivate(QIconViewItem *);
00195 
00196     bool isDesktop() const { return m_bDesktop; }
00197 
00201     virtual void setWallpaper(const KURL&) { }
00202 
00203     bool maySetWallpaper();
00204     void setMaySetWallpaper(bool b);
00205 
00206     void disableIcons( const KURL::List & lst );
00207 
00208     QString iconPositionGroupPrefix() const { return m_iconPositionGroupPrefix; }
00209     QString dotDirectoryPath() const { return m_dotDirectoryPath; }
00210 
00211     void setPreviewSettings(const QStringList& mimeTypes);
00212     const QStringList& previewSettings();
00213     void setNewURL( const QString& url );
00214 
00215 public slots:
00219     virtual void slotSelectionChanged();
00220 
00221     void slotSaveIconPositions();
00222 
00223     void renameSelectedItem();
00224 
00225     void slotToolTipPreview( const KFileItem *, const QPixmap & );
00226     void slotToolTipPreviewResult();
00227 
00228 signals:
00232     void enableAction( const char * name, bool enabled );
00233 
00234     void dropped();
00235     void imagePreviewFinished();
00236 
00237 protected slots:
00238 
00239     virtual void slotDropped( QDropEvent *e, const QValueList<QIconDragItem> & );
00240 
00241     void slotItemRenamed(QIconViewItem *item, const QString &name);
00242 
00243     void slotIconChanged(int);
00244     void slotOnItem(QIconViewItem *);
00245     void slotOnViewport();
00246     void slotStartSoundPreview();
00247     void slotPreview(const KFileItem *, const QPixmap &);
00248     void slotPreviewResult();
00249 
00250     void slotMovieUpdate( const QRect& rect );
00251     void slotMovieStatus( int status );
00252     void slotReenableAnimation();
00253 
00254 protected:
00255     virtual QDragObject *dragObject();
00256     KonqIconDrag *konqDragObject( QWidget * dragSource = 0L );
00257     bool mimeTypeMatch( const QString& mimeType, const QStringList& mimeList ) const;
00258 
00259     virtual void drawBackground( QPainter *p, const QRect &r );
00265     virtual void drawBackground( QPainter *p, const QRect &r,
00266                                         const QPoint &pt );
00267     virtual void contentsDragEnterEvent( QDragEnterEvent *e );
00268     virtual void contentsDropEvent( QDropEvent *e );
00269     virtual void contentsMousePressEvent( QMouseEvent *e );
00270     virtual void contentsMouseReleaseEvent ( QMouseEvent * e );
00271     virtual void backgroundPixmapChange( const QPixmap & );
00272     void readAnimatedIconsConfig();
00273 
00274 private:
00275     KURL m_url;
00276     const KFileItem * m_rootItem;
00277 
00278     KURL::List m_lstDragURLs;
00279 
00280     int m_size;
00281 
00283     KonqFMSettings * m_pSettings;
00284 
00285     bool m_bMousePressed;
00286     QPoint m_mousePos;
00287 
00288     QColor iColor;
00289 
00290     bool m_bSortDirsFirst;
00291 
00292     QString m_iconPositionGroupPrefix;
00293     QString m_dotDirectoryPath;
00294 
00295     int m_LineupMode;
00296     QRect m_IconRect;
00297 
00298     bool m_bDesktop;
00299     bool m_bSetGridX;
00300 
00301 private:
00302     struct KonqIconViewWidgetPrivate *d;
00303 
00304 };
00305 
00306 #endif
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Thu Jan 29 23:03:28 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001