• Skip to content
  • Skip to link menu
KDE 4.2 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-2008 by Gilles Caulier <caulier dot gilles at gmail dot com>
00011  * Copyright (C) 2006-2008 by Marcel Wiesweg <marcel.wiesweg@gmx.de>
00012  *
00013  * This program is free software; you can redistribute it
00014  * and/or modify it under the terms of the GNU General
00015  * Public License as published by the Free Software Foundation;
00016  * either version 2, or (at your option)
00017  * any later version.
00018  * 
00019  * This program is distributed in the hope that it will be useful,
00020  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00021  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00022  * GNU General Public License for more details.
00023  * 
00024  * ============================================================ */
00025 
00026 #ifndef ALBUMICONVIEW_H
00027 #define ALBUMICONVIEW_H
00028 
00029 // KDE includes.
00030 
00031 #include <QRect>
00032 #include <QFont>
00033 #include <QList>
00034 
00035 // Local includes.
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 &current, 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     // DnD
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 }  // namespace Digikam
00224 
00225 #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.4
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