digikam
albumiconview.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef ALBUMICONVIEW_H
00027 #define ALBUMICONVIEW_H
00028
00029
00030
00031 #include <QRect>
00032 #include <QFont>
00033 #include <QList>
00034
00035
00036
00037 #include "loadingdescription.h"
00038 #include "iconview.h"
00039 #include "imageinfo.h"
00040 #include "imageinfolist.h"
00041 #include "albumitemhandler.h"
00042
00043 class QResizeEvent;
00044 class QDragMoveEvent;
00045 class QDropEvent;
00046 class QPoint;
00047 class QString;
00048 class QPixmap;
00049
00050 namespace KIO
00051 {
00052 class Job;
00053 }
00054 class KJob;
00055
00056 namespace Digikam
00057 {
00058
00059 class AlbumIconItem;
00060 class AlbumSettings;
00061 class ThumbnailSize;
00062 class Album;
00063 class AlbumIconViewPrivate;
00064
00065 class AlbumIconView : public IconView,
00066 public AlbumItemHandler
00067 {
00068 Q_OBJECT
00069
00070 public:
00071
00072 AlbumIconView(QWidget* parent);
00073 ~AlbumIconView();
00074
00075 void setAlbum(Album* album);
00076
00079 void setAlbumItemToFind(const KUrl& url);
00080
00081 void setThumbnailSize(const ThumbnailSize& thumbSize);
00082 ThumbnailSize thumbnailSize() const;
00083
00084 void applySettings(const AlbumSettings* settings);
00085 const AlbumSettings* settings() const;
00086
00087 void refreshIcon(AlbumIconItem* item);
00088
00089 AlbumIconItem* firstSelectedItem() const;
00090
00091 KUrl::List allItems();
00092 KUrl::List selectedItems();
00093
00097 ImageInfoList allImageInfos(ImageInfo& current) const;
00098 ImageInfoList selectedImageInfos() const;
00099
00100 void refresh();
00101 void refreshItems(const KUrl::List& itemList);
00102
00103 QRect itemRect() const;
00104 QRect itemRatingRect() const;
00105 QRect itemDateRect() const;
00106 QRect itemModDateRect() const;
00107 QRect itemPixmapRect() const;
00108 QRect itemNameRect() const;
00109 QRect itemCommentsRect() const;
00110 QRect itemResolutionRect() const;
00111 QRect itemSizeRect() const;
00112 QRect itemTagRect() const;
00113 QRect bannerRect() const;
00114
00115 QPixmap itemBaseRegPixmap() const;
00116 QPixmap itemBaseSelPixmap() const;
00117 QPixmap bannerPixmap() const;
00118 QPixmap ratingPixmap(int rating, bool selected) const;
00119
00120 QFont itemFontReg() const;
00121 QFont itemFontCom() const;
00122 QFont itemFontXtra() const;
00123
00124 void clear(bool update=true);
00125
00126 AlbumIconItem* findItem(const QPoint& pos);
00127 AlbumIconItem* findItem(const QString& url) const;
00128 AlbumIconItem* nextItemToThumbnail() const;
00129
00130 void insertSelectionToLightTable(bool addTo=false);
00131 void insertToLightTable(const ImageInfoList& list, const ImageInfo ¤t, bool addTo=false);
00132
00133 signals:
00134
00135 void signalPreviewItem(AlbumIconItem*);
00136 void signalItemsAdded();
00137 void signalItemDeleted(AlbumIconItem*);
00138 void signalCleared();
00139 void signalProgressBarMode(int, const QString&);
00140 void signalProgressValue(int);
00141 void signalItemsUpdated(const KUrl::List&);
00142
00143 void signalGotoAlbumAndItem(AlbumIconItem *);
00144 void signalGotoDateAndItem(AlbumIconItem *);
00145 void signalGotoTagAndItem(int);
00146
00147 public slots:
00148
00149 void slotSetExifOrientation(int orientation);
00150 void slotRename(AlbumIconItem* item);
00151 void slotDeleteSelectedItems(bool deletePermanently = false);
00152 void slotDeleteSelectedItemsDirectly(bool useTrash);
00153 void slotDisplayItem(AlbumIconItem *item=0);
00154 void slotAlbumModified();
00155 void slotSetAlbumThumbnail(AlbumIconItem *iconItem);
00156 void slotCopy();
00157 void slotPaste();
00158
00159 void slotAssignRating(int rating);
00160 void slotAssignRatingNoStar();
00161 void slotAssignRatingOneStar();
00162 void slotAssignRatingTwoStar();
00163 void slotAssignRatingThreeStar();
00164 void slotAssignRatingFourStar();
00165 void slotAssignRatingFiveStar();
00166
00167 protected:
00168
00169 void resizeEvent(QResizeEvent* e);
00170
00171
00172 void startDrag();
00173 void contentsDragMoveEvent(QDragMoveEvent *e);
00174 void contentsDropEvent(QDropEvent *e);
00175
00176 void prepareRepaint(const QList<IconItem *> &itemsToRepaint);
00177
00178 bool acceptToolTip(IconItem *item, const QPoint &mousePos);
00179
00180 private slots:
00181
00182 void slotImageListerNewItems(const ImageInfoList& itemList);
00183 void slotImageListerDeleteItem(const ImageInfo &item);
00184 void slotImageListerClear();
00185
00186 void slotDoubleClicked(IconItem *item);
00187 void slotRightButtonClicked(const QPoint& pos);
00188 void slotRightButtonClicked(IconItem *item, const QPoint& pos);
00189
00190 void slotThumbnailLoaded(const LoadingDescription &loadingDescription, const QPixmap& thumb);
00191 void slotSelectionChanged();
00192
00193 void slotFilesModified();
00194 void slotFilesModified(const KUrl& url);
00195 void slotImageWindowURLChanged(const KUrl &url);
00196
00197 void slotShowToolTip(IconItem* item);
00198
00199 void slotThemeChanged();
00200
00201 void slotGotoTag(int tagID);
00202
00203 void slotAssignTag(int tagID);
00204 void slotRemoveTag(int tagID);
00205
00206 void slotDIOResult(KJob* job);
00207 void slotRenamed(KIO::Job*, const KUrl &, const KUrl&);
00208
00209 void slotImageAttributesChanged(qlonglong imageId);
00210 void slotAlbumImagesChanged(int albumId);
00211
00212 private:
00213
00214 void updateRectsAndPixmaps();
00215 void updateBannerRectPixmap();
00216 void changeTagOnImageInfos(const ImageInfoList &list, const QList<int> &tagIDs, bool addOrRemove, bool progress);
00217
00218 private:
00219
00220 AlbumIconViewPrivate *d;
00221 };
00222
00223 }
00224
00225 #endif // ALBUMICONVIEW_H