digiKam
Loading...
Searching...
No Matches
importstackedview.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 : 2012-05-07
7 * Description : QStackedWidget to handle different types of views
8 * (icon view, items preview, media view)
9 *
10 * SPDX-FileCopyrightText: 2012 by Islam Wazery <wazery at ubuntu dot com>
11 * SPDX-FileCopyrightText: 2012-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QStackedWidget>
22
23// Local includes
24
25#include "digikam_config.h"
26#include "importthumbnailbar.h"
27#include "importpreviewview.h"
28#include "thumbbardock.h"
29#include "camiteminfo.h"
30#include "importiconview.h"
31#include "digikam_export.h"
32
33#ifdef HAVE_MEDIAPLAYER
34# include "mediaplayerview.h"
35#endif //HAVE_MEDIAPLAYER
36
37#ifdef HAVE_GEOLOCATION
38# include "mapwidgetview.h"
39#endif // HAVE_GEOLOCATION
40
41namespace Digikam
42{
43
44class DIGIKAM_GUI_EXPORT ImportStackedView : public QStackedWidget
45{
46 Q_OBJECT
47
48public:
49
51 {
52 PreviewCameraMode = 0,
54
55#ifdef HAVE_GEOLOCATION
56
57 MapWidgetMode,
58 MediaPlayerMode
59
60#else
61
63 MapWidgetMode
64
65#endif // HAVE_GEOLOCATION
66
67 };
68
69public:
70
71 explicit ImportStackedView(QWidget* const parent = nullptr);
72 ~ImportStackedView() override;
73
74 void setDockArea(QMainWindow*);
75
76 ThumbBarDock* thumbBarDock() const;
77 ImportThumbnailBar* thumbBar() const;
78 ImportIconView* importIconView() const;
79 ImportPreviewView* importPreviewView() const;
80
81#ifdef HAVE_GEOLOCATION
82
83 MapWidgetView* mapWidgetView() const;
84
85#endif // HAVE_GEOLOCATION
86
87#ifdef HAVE_MEDIAPLAYER
88
89 MediaPlayerView* mediaPlayerView() const;
90
91#endif //HAVE_MEDIAPLAYER
92
93 bool isInSingleFileMode() const;
94 bool isInMultipleFileMode() const;
95/*
96 FIXME
97 bool isInAbstractMode() const;
98*/
99 void setPreviewItem(const CamItemInfo& info = CamItemInfo(),
100 const CamItemInfo& previous = CamItemInfo(),
101 const CamItemInfo& next = CamItemInfo());
102
103 StackedViewMode viewMode() const;
104 void setViewMode(const StackedViewMode mode);
105 void previewLoaded();
106
107 void increaseZoom();
108 void decreaseZoom();
109 void fitToWindow();
110 void toggleFitToWindowOr100();
111 void zoomTo100Percents();
112 void setZoomFactor(double z);
113 void setZoomFactorSnapped(double z);
114
115 bool maxZoom() const;
116 bool minZoom() const;
117 double zoomFactor() const;
118 double zoomMin() const;
119 double zoomMax() const;
120
121Q_SIGNALS:
122
128/*
129 FIXME
130 void signalGotoAlbumAndItem(const CamItemInfo&);
131 void signalGotoDateAndItem(const CamItemInfo&);
132 void signalGotoTagAndItem(int);
133*/
134
135private Q_SLOTS:
136
137 void slotPreviewLoaded(bool);
138 void slotZoomFactorChanged(double);
139 void slotThumbBarSelectionChanged();
140 void slotIconViewSelectionChanged();
141
142private:
143
144 void readSettings();
145 void syncSelection(ImportCategorizedView* const from, ImportCategorizedView* const to);
146
148 QString identifyCategoryforMime(const QString& mime) const;
149
150private:
151
152 class Private;
153 Private* const d = nullptr;
154};
155
156} // namespace Digikam
Definition camiteminfo.h:39
Definition importcategorizedview.h:34
Definition importiconview.h:28
Definition importpreviewview.h:26
Definition importstackedview.h:45
StackedViewMode
Definition importstackedview.h:51
@ PreviewImageMode
Definition importstackedview.h:53
@ MediaPlayerMode
Definition importstackedview.h:62
void signalZoomFactorChanged(double)
Definition importthumbnailbar.h:26
Class containing digiKam's central map view.
Definition mapwidgetview.h:42
Definition mediaplayerview.h:33
Definition thumbbardock.h:74
Definition datefolderview.cpp:34