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 <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 * );
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
00142
void setThumbnailPixmap(
KFileIVI * item,
const QPixmap & pixmap );
00143
void disableSoundPreviews();
00144
00145
void setURL (
const KURL & kurl );
00146
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