• Skip to content
  • Skip to link menu
KDE 4.4 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

digikam

albumiconview.h

Go to the documentation of this file.
00001 /* ============================================================
00002  *
00003  * This file is a part of digiKam project
00004  * http://www.digikam.org
00005  *
00006  * Date        : 2002-16-10
00007  * Description : album icon view
00008  *
00009  * Copyright (C) 2002-2005 by Renchi Raju <renchi@pooh.tam.uiuc.edu>
00010  * Copyright (C) 2002-2009 by Gilles Caulier <caulier dot gilles at gmail dot com>
00011  * Copyright (C) 2006-2009 by Marcel Wiesweg <marcel.wiesweg@gmx.de>
00012  * Copyright (C) 2009 by Andi Clemens <andi dot clemens at gmx dot net>
00013  *
00014  * This program is free software; you can redistribute it
00015  * and/or modify it under the terms of the GNU General
00016  * Public License as published by the Free Software Foundation;
00017  * either version 2, or (at your option)
00018  * any later version.
00019  *
00020  * This program is distributed in the hope that it will be useful,
00021  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00022  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023  * GNU General Public License for more details.
00024  *
00025  * ============================================================ */
00026 
00027 #ifndef ALBUMICONVIEW_H
00028 #define ALBUMICONVIEW_H
00029 
00030 // Qt includes
00031 
00032 #include <QFont>
00033 #include <QList>
00034 #include <QRect>
00035 
00036 // KDE includes
00037 
00038 #include <kservice.h>
00039 
00040 // Local includes
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     // DnD
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 }  // namespace Digikam
00249 
00250 #endif // ALBUMICONVIEW_H

digikam

Skip menu "digikam"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members

API Reference

Skip menu "API Reference"
  • digikam
Generated for API Reference by doxygen 1.5.9-20090814
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal