diff options
Diffstat (limited to 'src/utilities/lighttable/lighttablepreview.h')
| -rw-r--r-- | src/utilities/lighttable/lighttablepreview.h | 125 | 
1 files changed, 125 insertions, 0 deletions
| diff --git a/src/utilities/lighttable/lighttablepreview.h b/src/utilities/lighttable/lighttablepreview.h new file mode 100644 index 00000000..3549fa1c --- /dev/null +++ b/src/utilities/lighttable/lighttablepreview.h @@ -0,0 +1,125 @@ +/* ============================================================ + * + * This file is a part of digiKam project + * http://www.digikam.org + * + * Date        : 2006-21-12 + * Description : digiKam light table preview item. + *  + * Copyright (C) 2006-2008 Gilles Caulier <caulier dot gilles at gmail dot com> + * + * This program is free software; you can redistribute it + * and/or modify it under the terms of the GNU General + * Public License as published by the Free Software Foundation; + * either version 2, or (at your option) + * any later version. + *  + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + *  + * ============================================================ */ + +#ifndef LIGHTTABLEPREVIEW_H +#define LIGHTTABLEPREVIEW_H + +// TQt includes. + +#include <tqstring.h> +#include <tqimage.h> +#include <tqsize.h> + +// Local includes. + +#include "imageinfo.h" +#include "previewwidget.h" +#include "digikam_export.h" + +class TQPixmap; + +namespace Digikam +{ + +class DImg; +class LoadingDescription; +class LightTablePreviewPriv; + +class DIGIKAM_EXPORT LightTablePreview : public PreviewWidget +{ + +TQ_OBJECT +   + +public: + +    LightTablePreview(TQWidget *parent=0); +    ~LightTablePreview(); + +    void setLoadFullImageSize(bool b); + +    void setImage(const DImg& image); +    DImg& getImage() const; + +    TQSize getImageSize(); + +    void setImageInfo(ImageInfo* info=0, ImageInfo *previous=0, ImageInfo *next=0); +    ImageInfo* getImageInfo() const; + +    void reload(); +    void setImagePath(const TQString& path=TQString()); +    void setPreviousNextPaths(const TQString& previous, const TQString &next); + +    void setSelected(bool sel); +    bool isSelected(); + +    void setDragAndDropEnabled(bool b);  +    void setDragAndDropMessage(); + +signals: + +    void signalDroppedItems(const ImageInfoList&); +    void signalDeleteItem(ImageInfo*); +    void signalEditItem(ImageInfo*); +    void signalPreviewLoaded(bool success); +    void signalSlideShow(); + +protected: + +    void resizeEvent(TQResizeEvent* e); +    void drawFrame(TQPainter *p); + +private slots: + +    void slotGotImagePreview(const LoadingDescription &loadingDescription, const DImg &image); +    void slotNextPreload(); +    void slotContextMenu(); +    void slotAssignTag(int tagID); +    void slotRemoveTag(int tagID); +    void slotAssignRating(int rating); +    void slotThemeChanged(); +    void slotCornerButtonPressed(); +    void slotPanIconSelectionMoved(const TQRect&, bool); +    void slotPanIconHiden(); + +private: +     +    int  previewWidth(); +    int  previewHeight(); +    bool previewIsNull(); +    void resetPreview(); +    void zoomFactorChanged(double zoom); +    void updateZoomAndSize(bool alwaysFitToWindow); +    inline void paintPreview(TQPixmap *pix, int sx, int sy, int sw, int sh); + +    void contentsDragMoveEvent(TQDragMoveEvent*); +    void contentsDropEvent(TQDropEvent*); + +private: + +    LightTablePreviewPriv* d; +}; + +}  // NameSpace Digikam + +#endif /* LIGHTTABLEPREVIEW_H */ | 
