digiKam
itempropertiessidebar.h
Go to the documentation of this file.
1 /* ============================================================
2  *
3  * This file is a part of digiKam project
4  * https://www.digikam.org
5  *
6  * Date : 2004-11-17
7  * Description : item properties side bar (without support of digiKam database).
8  *
9  * Copyright (C) 2004-2022 by Gilles Caulier <caulier dot gilles 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_SIDEBAR_H
25 #define DIGIKAM_ITEM_PROPERTIES_SIDEBAR_H
26 
27 // Qt includes
28 
29 #include <QUrl>
30 #include <QWidget>
31 #include <QRect>
32 #include <QStackedWidget>
33 
34 // Local includes
35 
36 #include "digikam_config.h"
37 #include "sidebar.h"
38 #include "digikam_export.h"
39 #include "searchtextbar.h"
40 
41 namespace Digikam
42 {
43 
44 class DImg;
45 class SidebarSplitter;
46 class ItemPropertiesTab;
47 class ItemSelectionPropertiesTab;
48 class ItemPropertiesMetadataTab;
49 class ItemPropertiesColorsTab;
50 
51 #ifdef HAVE_MARBLE
52 
53 class ItemPropertiesGPSTab;
54 
55 #endif // HAVE_MARBLE
56 
57 class DIGIKAM_EXPORT ItemPropertiesSideBar : public Sidebar
58 {
59  Q_OBJECT
60 
61 public:
62  explicit ItemPropertiesSideBar(QWidget* const parent,
63  SidebarSplitter* const splitter,
64  Qt::Edge side = Qt::LeftEdge,
65  bool mimimizedDefault = false);
66  ~ItemPropertiesSideBar() override;
67 
68  virtual void itemChanged(const QUrl& url, const QRect& rect = QRect(), DImg* const img = nullptr);
69 
70 Q_SIGNALS:
71 
74 
75 public Q_SLOTS:
76 
77  void slotLoadMetadataFilters();
78  void slotImageSelectionChanged(const QRect& rect);
79  virtual void slotNoCurrentItem();
80 
81 protected Q_SLOTS:
82 
83  virtual void slotChangedTab(QWidget* tab);
84 
85 protected:
86 
90  void doLoadState() override;
91 
95  void doSaveState() override;
96 
97  virtual void setImagePropertiesInformation(const QUrl& url);
98 
99 protected:
100 
106 
108 
110 
112 
113  QStackedWidget* m_propertiesStackedView;
114 
119 
120 #ifdef HAVE_MARBLE
121 
122  ItemPropertiesGPSTab* m_gpsTab;
123 
124 #endif // HAVE_MARBLE
125 
126 };
127 
128 } // namespace Digikam
129 
130 #endif // DIGIKAM_ITEM_PROPERTIES_SIDEBAR_H
Definition: dimg.h:62
Definition: itempropertiescolorstab.h:49
Definition: itempropertiesgpstab.h:43
Definition: itempropertiesmetadatatab.h:42
Definition: itempropertiessidebar.h:58
bool m_dirtyMetadataTab
Definition: itempropertiessidebar.h:102
bool m_dirtyGpsTab
Definition: itempropertiessidebar.h:104
ItemPropertiesMetadataTab * m_metadataTab
Definition: itempropertiessidebar.h:117
bool m_dirtyPropertiesTab
Definition: itempropertiessidebar.h:101
DImg * m_image
Definition: itempropertiessidebar.h:111
ItemPropertiesColorsTab * m_colorTab
Definition: itempropertiessidebar.h:118
QStackedWidget * m_propertiesStackedView
Definition: itempropertiessidebar.h:113
ItemSelectionPropertiesTab * m_selectionPropertiesTab
Definition: itempropertiessidebar.h:116
QRect m_currentRect
Definition: itempropertiessidebar.h:107
QUrl m_currentURL
Definition: itempropertiessidebar.h:109
bool m_dirtyHistoryTab
Definition: itempropertiessidebar.h:105
ItemPropertiesTab * m_propertiesTab
Definition: itempropertiessidebar.h:115
bool m_dirtyColorTab
Definition: itempropertiessidebar.h:103
Definition: itempropertiestab.h:43
Definition: itemselectionpropertiestab.h:42
Definition: sidebar.h:480
Definition: sidebar.h:333
Definition: datefolderview.cpp:43