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
00027 #ifndef ALBUMICONVIEW_H
00028 #define ALBUMICONVIEW_H
00029
00030
00031
00032 #include <QFont>
00033 #include <QList>
00034 #include <QRect>
00035
00036
00037
00038 #include <kservice.h>
00039
00040
00041
00042 #include "albumitemhandler.h"
00043 #include "iconview.h"
00044 #include "imageinfo.h"
00045 #include "imageinfolist.h"
00046 #include "loadingdescription.h"
00047
00048 class QAction;
00049 class QDragMoveEvent;
00050 class QDropEvent;
00051 class QPixmap;
00052 class QPoint;
00053 class QResizeEvent;
00054 class QString;
00055
00056 namespace KIO
00057 {
00058 class Job;
00059 }
00060
00061 class KMenu;
00062 class KJob;
00063
00064 namespace Digikam
00065 {
00066
00067 class Album;
00068 class AlbumIconItem;
00069 class AlbumIconViewPrivate;
00070 class AlbumSettings;
00071 class ThumbnailSize;
00072
00073 class AlbumIconView : public IconView,
00074 public AlbumItemHandler
00075 {
00076 Q_OBJECT
00077
00078 public:
00079
00080 AlbumIconView(QWidget* parent);
00081 ~AlbumIconView();
00082
00083 void setAlbum(Album* album);
00084
00087 void setAlbumItemToFind(const KUrl& url);
00088
00089 void setThumbnailSize(const ThumbnailSize& thumbSize);
00090 ThumbnailSize thumbnailSize() const;
00091
00092 void applySettings(const AlbumSettings* settings);
00093 const AlbumSettings* settings() const;
00094
00095 void refreshIcon(AlbumIconItem* item);
00096
00097 AlbumIconItem* firstSelectedItem() const;
00098
00099 KUrl::List allItems();
00100 KUrl::List selectedItems();
00101
00105 ImageInfoList allImageInfos(ImageInfo *current = 0) const;
00106 ImageInfoList selectedImageInfosCurrentFirst() const;
00107 ImageInfoList selectedImageInfos() const;
00108
00109 void refresh();
00110 void refreshItems(const KUrl::List& itemList);
00111
00112 QRect itemRect() const;
00113 QRect itemRatingRect() const;
00114 QRect itemDateRect() const;
00115 QRect itemModDateRect() const;
00116 QRect itemPixmapRect() const;
00117 QRect itemNameRect() const;
00118 QRect itemCommentsRect() const;
00119 QRect itemResolutionRect() const;
00120 QRect itemSizeRect() const;
00121 QRect itemTagRect() const;
00122 QRect bannerRect() const;
00123
00124 QPixmap itemBaseRegPixmap() const;
00125 QPixmap itemBaseSelPixmap() const;
00126 QPixmap bannerPixmap() const;
00127 QPixmap ratingPixmap(int rating, bool selected) const;
00128
00129 QFont itemFontReg() const;
00130 QFont itemFontCom() const;
00131 QFont itemFontXtra() const;
00132
00133 void clear(bool update=true);
00134
00135 AlbumIconItem* findItem(const QPoint& pos);
00136 AlbumIconItem* findItem(const QString& url) const;
00137 AlbumIconItem* nextItemToThumbnail() const;
00138
00139 void insertSelectionToLightTable(bool addTo=false);
00140 void insertToLightTable(const ImageInfoList& list, const ImageInfo& current, bool addTo=false);
00141
00142 void insertSelectionToCurrentQueue();
00143 void insertSelectionToNewQueue();
00144 void insertToQueueManager(const ImageInfoList& list, const ImageInfo& current, bool newQueue);
00145 void insertSilentToQueueManager(const ImageInfoList& list, const ImageInfo& current, int queueid);
00146
00147 Q_SIGNALS:
00148
00149 void signalPreviewItem(AlbumIconItem*);
00150 void signalItemsAdded();
00151 void signalItemDeleted(AlbumIconItem*);
00152 void signalCleared();
00153 void signalProgressBarMode(int, const QString&);
00154 void signalProgressValue(int);
00155 void signalItemsUpdated(const KUrl::List&);
00156
00157 void signalAddToExistingQueue(int);
00158 void signalGotoAlbumAndItem(ImageInfo&);
00159 void signalGotoDateAndItem(ImageInfo&);
00160 void signalGotoTagAndItem(int);
00161 void signalFindSimilar();
00162
00163 void changeTagOnImageInfos(const ImageInfoList& list, const QList<int>& tagIDs,
00164 bool addOrRemove, bool progress);
00165
00166 public Q_SLOTS:
00167
00168 void slotSetExifOrientation(int orientation);
00169 void slotRename(AlbumIconItem* item);
00170 void slotDeleteSelectedItems(bool deletePermanently=false);
00171 void slotDeleteSelectedItemsDirectly(bool useTrash);
00172 void slotDisplayItem(AlbumIconItem *item=0);
00173 void slotAlbumModified();
00174 void slotSetAlbumThumbnail(ImageInfo& imageInfo);
00175 void slotCopy();
00176 void slotPaste();
00177 void slotMoveSelectionToAlbum();
00178
00179 void slotAssignRating(int rating);
00180 void slotAssignRatingNoStar();
00181 void slotAssignRatingOneStar();
00182 void slotAssignRatingTwoStar();
00183 void slotAssignRatingThreeStar();
00184 void slotAssignRatingFourStar();
00185 void slotAssignRatingFiveStar();
00186
00187 protected:
00188
00189 void resizeEvent(QResizeEvent* e);
00190
00191
00192 void startDrag();
00193 void contentsDragEnterEvent(QDragEnterEvent *e);
00194 void contentsDropEvent(QDropEvent *e);
00195
00196 void prepareRepaint(const QList<IconItem *>& itemsToRepaint);
00197
00198 bool acceptToolTip(IconItem *item, const QPoint& mousePos);
00199
00200 private Q_SLOTS:
00201
00202 void slotImageListerNewItems(const ImageInfoList& itemList);
00203 void slotImageListerDeleteItem(const ImageInfo& item);
00204 void slotImageListerClear();
00205
00206 void slotDoubleClicked(IconItem *item);
00207 void slotRightButtonClicked(const QPoint& pos);
00208 void slotRightButtonClicked(IconItem *item, const QPoint& pos);
00209
00210 void slotThumbnailLoaded(const LoadingDescription& loadingDescription, const QPixmap& thumb);
00211 void slotSelectionChanged();
00212
00213 void slotFilesModified();
00214 void slotFilesModified(const KUrl& url);
00215 void slotFileChanged(const QString &);
00216 void slotImageWindowURLChanged(const KUrl& url);
00217
00218 void slotShowToolTip(IconItem* item);
00219
00220 void slotThemeChanged();
00221
00222 void slotGotoTag(int tagID);
00223
00224 void slotEditRatingFromItem(int);
00225
00226 void slotAssignTag(int tagID);
00227 void slotRemoveTag(int tagID);
00228
00229 void slotDIOResult(KJob* job);
00230 void slotRenamed(KIO::Job*, const KUrl &, const KUrl&);
00231
00232 void slotImageAttributesChanged(qlonglong imageId);
00233 void slotAlbumImagesChanged(int albumId);
00234
00235 void slotChangeTagOnImageInfos(const ImageInfoList& list, const QList<int>& tagIDs,
00236 bool addOrRemove, bool progress);
00237
00238 private:
00239
00240 void updateRectsAndPixmaps();
00241 void updateBannerRectPixmap();
00242
00243 private:
00244
00245 AlbumIconViewPrivate* const d;
00246 };
00247
00248 }
00249
00250 #endif // ALBUMICONVIEW_H