1 /* ============================================================
2  *
3  * This file is a part of digiKam project
4  * https://www.digikam.org
5  *
6  * Date        : 2010-07-12
7  * Description : tab for displaying item versions
8  *
9  * Copyright (C) 2010-2012 by Martin Klapetek <martin dot klapetek at gmail dot com>
10  *
11  * This program is free software; you can redistribute it
12  * and/or modify it under the terms of the GNU General
13  * Public License as published by the Free Software Foundation;
14  * either version 2, or (at your option)
15  * any later version.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20  * GNU General Public License for more details.
21  *
22  * ============================================================ */
23 
24 #ifndef DIGIKAM_ITEM_PROPERTIES_VERSIONS_TAB_H
25 #define DIGIKAM_ITEM_PROPERTIES_VERSIONS_TAB_H
26 
27 // Qt includes
28 
29 #include <QWidget>
30 #include <QModelIndex>
31 #include <QPoint>
32 #include <QTabWidget>
33 #include <QUrl>
34 
35 // Local includes
36 
37 #include "digikam_export.h"
38 #include "dimagehistory.h"
39 
40 class KConfigGroup;
41 
42 namespace Digikam
43 {
44 
45 class FiltersHistoryWidget;
46 class ItemInfo;
47 class ItemModel;
48 class VersionsWidget;
49 
50 class ItemPropertiesVersionsTab : public QTabWidget
51 {
52     Q_OBJECT
53 
54 public:
55 
56     explicit ItemPropertiesVersionsTab(QWidget* const parent);
57     ~ItemPropertiesVersionsTab() override;
58 
59     void readSettings(KConfigGroup& group);
60     void writeSettings(KConfigGroup& group);
61 
62     void clear();
63     void setItem(const ItemInfo& info, const DImageHistory& history);
64 
65     VersionsWidget* versionsWidget()             const;
66     FiltersHistoryWidget* filtersHistoryWidget() const;
67 
68     void addShowHideOverlay();
69     void addOpenImageAction();
70     void addOpenAlbumAction(const ItemModel* referenceModel);
71 
72 public Q_SLOTS:
73 
74     void setEnabledHistorySteps(int count);
75 
76 Q_SIGNALS:
77 
78     void imageSelected(const ItemInfo& info);
79     void actionTriggered(const ItemInfo& info);
80 
81 private:
82 
83     class Private;
84     Private* const d;
85 };
86 
87 } // namespace Digikam
88 
89 #endif // DIGIKAM_ITEM_PROPERTIES_VERSIONS_TAB_H
90