digiKam
Loading...
Searching...
No Matches
stackedview.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 : 2006-06-13
7 * Description : A widget stack to embedded album content view
8 * or the current image preview.
9 *
10 * SPDX-FileCopyrightText: 2006-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 * SPDX-FileCopyrightText: 2013 by Michael G. Hansen <mike at mghansen dot de>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QMainWindow>
22#include <QStackedWidget>
23
24// Local includes
25
26#include "digikam_config.h"
27#include "digikam_export.h"
28#include "iteminfo.h"
29#include "thumbbardock.h"
30
31namespace Digikam
32{
33
34class DigikamItemView;
35class ItemCategorizedView;
36class ItemPreviewView;
37class ItemThumbnailBar;
38class TableView;
39class TrashView;
40
41#ifdef HAVE_MEDIAPLAYER
42
43class MediaPlayerView;
44
45#endif //HAVE_MEDIAPLAYER
46
47#ifdef HAVE_GEOLOCATION
48
49class MapWidgetView;
50
51#endif // HAVE_GEOLOCATION
52
53class StackedView : public QStackedWidget
54{
55 Q_OBJECT
56
57public:
58
71
72public:
73
74 explicit StackedView(QWidget* const parent = nullptr);
75 ~StackedView() override;
76
77 /* Attach the thumbnail dock widget to the specified QMainWindow. */
78 void setDockArea(QMainWindow*);
79
84 TableView* tableView() const;
85 TrashView* trashView() const;
86
87#ifdef HAVE_MEDIAPLAYER
88
89 MediaPlayerView* mediaPlayerView() const;
90
91#endif //HAVE_MEDIAPLAYER
92
93#ifdef HAVE_GEOLOCATION
94
95 MapWidgetView* mapWidgetView() const;
96
97#endif // HAVE_GEOLOCATION
98
104 bool isInSingleFileMode() const;
105 bool isInMultipleFileMode() const;
106 bool isInAbstractMode() const;
107
108 void setPreviewItem(const ItemInfo& info = ItemInfo(),
109 const ItemInfo& previous = ItemInfo(),
110 const ItemInfo& next = ItemInfo());
112 void setViewMode(const StackedViewMode mode,
113 bool focus = false);
114 void previewLoaded();
115
116 void increaseZoom();
117 void decreaseZoom();
118 void fitToWindow();
120 void zoomTo100Percents();
121 bool maxZoom();
122 bool minZoom();
123 void setZoomFactor(double z);
124 void setZoomFactorSnapped(double z);
125 double zoomFactor();
126 double zoomMin();
127 double zoomMax();
128
129Q_SIGNALS:
130
139
143
144private Q_SLOTS:
145
146 void slotPreviewLoaded(bool);
147 void slotZoomFactorChanged(double);
148 void slotThumbBarSelectionChanged();
149 void slotIconViewSelectionChanged();
150
151private:
152
153 void readSettings();
154 void syncSelection(ItemCategorizedView* const from, ItemCategorizedView* const to);
155
156private:
157
158 class Private;
159 Private* const d = nullptr;
160};
161
162} // namespace Digikam
Definition digikamitemview.h:34
Definition itemcategorizedview.h:39
Definition iteminfo.h:68
Definition itempreviewview.h:36
Definition itemthumbnailbar.h:28
Class containing digiKam's central map view.
Definition mapwidgetview.h:42
Definition mediaplayerview.h:33
Definition stackedview.h:54
void toggleFitToWindowOr100()
Definition stackedview.cpp:560
void setDockArea(QMainWindow *)
Definition stackedview.cpp:227
TrashView * trashView() const
Definition stackedview.cpp:271
void signalGotoAlbumAndItem(const ItemInfo &)
ItemPreviewView * imagePreviewView() const
Definition stackedview.cpp:252
bool isInMultipleFileMode() const
Definition stackedview.cpp:293
bool isInSingleFileMode() const
Definition stackedview.cpp:285
double zoomMin()
Definition stackedview.cpp:592
TableView * tableView() const
Definition stackedview.cpp:266
void decreaseZoom()
Definition stackedview.cpp:545
void signalAddToExistingQueue(int)
double zoomMax()
Definition stackedview.cpp:597
ItemThumbnailBar * thumbBar() const
Definition stackedview.cpp:242
DigikamItemView * imageIconView() const
Definition stackedview.cpp:247
~StackedView() override
Definition stackedview.cpp:215
void zoomTo100Percents()
Definition stackedview.cpp:550
bool maxZoom()
Definition stackedview.cpp:565
void signalGotoDateAndItem(const ItemInfo &)
void setPreviewItem(const ItemInfo &info=ItemInfo(), const ItemInfo &previous=ItemInfo(), const ItemInfo &next=ItemInfo())
Definition stackedview.cpp:307
void setZoomFactorSnapped(double z)
Definition stackedview.cpp:582
void increaseZoom()
Definition stackedview.cpp:540
void setZoomFactor(double z)
Definition stackedview.cpp:575
bool isInAbstractMode() const
Definition stackedview.cpp:302
void signalZoomFactorChanged(double)
void previewLoaded()
Definition stackedview.cpp:527
void signalGotoTagAndItem(int)
bool minZoom()
Definition stackedview.cpp:570
void fitToWindow()
Definition stackedview.cpp:555
ThumbBarDock * thumbBarDock() const
Definition stackedview.cpp:237
StackedViewMode
Definition stackedview.h:60
@ StackedViewModeLast
Definition stackedview.h:69
@ StackedViewModeFirst
Definition stackedview.h:61
@ PreviewImageMode
Definition stackedview.h:63
@ MapWidgetMode
Definition stackedview.h:67
@ TableViewMode
Definition stackedview.h:65
@ MediaPlayerMode
Definition stackedview.h:68
@ WelcomePageMode
Definition stackedview.h:64
@ IconViewMode
Definition stackedview.h:62
@ TrashViewMode
Definition stackedview.h:66
StackedViewMode viewMode() const
Definition stackedview.cpp:380
void setViewMode(const StackedViewMode mode, bool focus=false)
Definition stackedview.cpp:385
double zoomFactor()
Definition stackedview.cpp:587
Definition tableview.h:49
Definition thumbbardock.h:74
Definition trashview.h:29
Definition datefolderview.cpp:34