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
00112
void lineupIcons( QIconView::Arrangement arrangement );
00113
00123
void setIcons(
int size,
const QStringList& stopImagePreviewFor = QStringList() );
00124
00128
void refreshMimeTypes();
00129
00130
int iconSize() {
return m_size; }
00131
00132
void calculateGridX();
00137
int gridXValue()
const;
00138
00150
void gridValues(
int* x,
int* y,
int* dx,
int* dy,
int* nx,
int* ny );
00151
00158
void startImagePreview(
const QStringList &ignored,
bool force );
00159
void stopImagePreview();
00160
bool isPreviewRunning()
const;
00161
00162
void setThumbnailPixmap(
KFileIVI * item,
const QPixmap & pixmap );
00163
void disableSoundPreviews();
00164
00165
void setURL (
const KURL & kurl );
00166
00167
const KURL & url() {
return m_url; }
00168 QString urlString()
const {
return m_url.url(); }
00169
void setRootItem (
const KFileItem * item ) { m_rootItem = item; }
00170
00174 KFileItemList
selectedFileItems();
00175
00176
void setItemColor(
const QColor &c );
00177 QColor itemColor()
const;
00178
00179
virtual void cutSelection();
00180
virtual void copySelection();
00181
virtual void pasteSelection();
00182
virtual KURL::List selectedUrls();
00183
void paste(
const KURL &url );
00184
00185
bool sortDirectoriesFirst()
const;
00186
void setSortDirectoriesFirst(
bool b );
00187
00188
void setCaseInsensitiveSort(
bool b );
00189
bool caseInsensitiveSort()
const;
00190
00194 const KURL::List &
dragURLs() {
return m_lstDragURLs; }
00195
00199
virtual void clear();
00200
00204
virtual void takeItem( QIconViewItem *item );
00205
00209
virtual void insertInGrid( QIconViewItem *item );
00210
00214
virtual void setItemTextPos( ItemTextPos pos );
00215
00219
virtual void visualActivate(QIconViewItem *);
00220
00221
bool isDesktop()
const {
return m_bDesktop; }
00222
00226 virtual void setWallpaper(
const KURL&) { }
00227
00228
bool maySetWallpaper();
00229
void setMaySetWallpaper(
bool b);
00230
00231
void disableIcons(
const KURL::List & lst );
00232
00233 QString iconPositionGroupPrefix()
const {
return m_iconPositionGroupPrefix; }
00234 QString dotDirectoryPath()
const {
return m_dotDirectoryPath; }
00235
00236
void setPreviewSettings(
const QStringList& mimeTypes);
00237
const QStringList& previewSettings();
00238
void setNewURL(
const QString& url );
00239
00240
public slots:
00244
virtual void slotSelectionChanged();
00245
00246
void slotSaveIconPositions();
00247
00248
void renameSelectedItem();
00249
void renameCurrentItem();
00250
00251
void slotToolTipPreview(
const KFileItem *,
const QPixmap & );
00252
void slotToolTipPreviewResult();
00253 signals:
00257
void enableAction(
const char * name,
bool enabled );
00258
00259
void dropped();
00260
void imagePreviewFinished();
00261
00262
void incIconSize();
00263
void decIconSize();
00264
00268
void dragEntered();
00269
void dragLeft();
00274
void dragFinished();
00275
00276
protected slots:
00277
virtual void slotDropped( QDropEvent *e,
const QValueList<QIconDragItem> & );
00278
00279
void slotItemRenamed(QIconViewItem *item,
const QString &name);
00280
00281
void slotIconChanged(
int);
00282
void slotOnItem(QIconViewItem *);
00283
void slotOnViewport();
00284
void slotStartSoundPreview();
00285
void slotPreview(
const KFileItem *,
const QPixmap &);
00286
void slotPreviewResult();
00287
void slotStartTooltip();
00288
00289
void slotMovieUpdate(
const QRect& rect );
00290
void slotMovieStatus(
int status );
00291
void slotReenableAnimation();
00292
00293
void slotAboutToCreate(
const QPoint &pos,
const QValueList<KIO::CopyInfo> &files);
00294
void doubleClickTimeout();
00295
00296
protected:
00297
virtual QDragObject *dragObject();
00298 KonqIconDrag *konqDragObject( QWidget * dragSource = 0L );
00299
bool mimeTypeMatch(
const QString& mimeType,
const QStringList& mimeList )
const;
00300
00301
virtual void drawBackground( QPainter *p,
const QRect &r );
00307
virtual void drawBackground( QPainter *p,
const QRect &r,
00308
const QPoint &pt );
00309
virtual void contentsDragEnterEvent( QDragEnterEvent *e );
00310
virtual void contentsDragLeaveEvent( QDragLeaveEvent *e );
00311
virtual void contentsDropEvent( QDropEvent *e );
00312
virtual void contentsMousePressEvent( QMouseEvent *e );
00313
virtual void contentsMouseReleaseEvent ( QMouseEvent * e );
00314
virtual void contentsMouseMoveEvent( QMouseEvent *e );
00315
virtual void backgroundPixmapChange(
const QPixmap & );
00316
virtual void wheelEvent( QWheelEvent* );
00317
void readAnimatedIconsConfig();
00318
void mousePressChangeValue();
00319
00320
bool boostPreview() const;
00321
int previewIconSize(
int size ) const;
00322
int largestPreviewIconSize(
int size ) const;
00323
bool canPreview( KFileItem* item );
00324
void updatePreviewMimeTypes();
00325
00326 private:
00327 KURL m_url;
00328 const KFileItem * m_rootItem;
00329
00330 KURL::List m_lstDragURLs;
00331
00332
int m_size;
00333
00335
KonqFMSettings * m_pSettings;
00336
00337
bool m_bMousePressed;
00338 QPoint m_mousePos;
00339
00340 QColor iColor;
00341
00342
bool m_bSortDirsFirst;
00343
00344 QString m_iconPositionGroupPrefix;
00345 QString m_dotDirectoryPath;
00346
00347
int m_LineupMode;
00348 QRect m_IconRect;
00349
00350
bool m_bDesktop;
00351
bool m_bSetGridX;
00352
00353 private:
00354 struct KonqIconViewWidgetPrivate *d;
00355
00356 };
00357
00358 #endif