digiKam
Loading...
Searching...
No Matches
sidebar_p.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 : 2005-03-22
7 * Description : a widget to manage sidebar in GUI - Private headers.
8 *
9 * SPDX-FileCopyrightText: 2005-2006 by Joern Ahrens <joern dot ahrens at kdemail dot net>
10 * SPDX-FileCopyrightText: 2006-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 * SPDX-FileCopyrightText: 2008-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
12 * SPDX-FileCopyrightText: 2001-2003 by Joseph Wenninger <jowenn at kde dot org>
13 *
14 * SPDX-License-Identifier: GPL-2.0-or-later
15 *
16 * ============================================================ */
17
18#pragma once
19
20#include "sidebar.h"
21
22// Qt includes
23
24#include <QDragEnterEvent>
25#include <QEvent>
26#include <QPixmap>
27#include <QSplitter>
28#include <QStackedWidget>
29#include <QTimer>
30#include <QHash>
31#include <QScrollArea>
32#include <QFrame>
33#include <QActionEvent>
34#include <QLayout>
35#include <QPainter>
36#include <QFontMetrics>
37#include <QStyle>
38#include <QStyleOptionButton>
39
40// KDE includes
41
42#include <kconfiggroup.h>
43
44// Local includes
45
46#include "digikam_debug.h"
47
48namespace Digikam
49{
50
51class Q_DECL_HIDDEN DMultiTabBarFrame::Private
52{
53public:
54
55 Private() = default;
56
57 QBoxLayout* mainLayout = nullptr;
58 QList<DMultiTabBarTab*> tabs;
59 Qt::Edge position = Qt::LeftEdge;
60 DMultiTabBar::TextStyle style = DMultiTabBar::AllIconsText;
61};
62
63// -------------------------------------------------------------------------------------
64
65class Q_DECL_HIDDEN DMultiTabBarTab::Private
66{
67public:
68
69 Private() = default;
70
71 Qt::Edge position = Qt::LeftEdge;
72 DMultiTabBar::TextStyle style = DMultiTabBar::AllIconsText;
73};
74
75// -------------------------------------------------------------------------------------
76
77class Q_DECL_HIDDEN DMultiTabBar::Private
78{
79public:
80
81 Private() = default;
82
83 DMultiTabBarFrame* internal = nullptr;
84 QBoxLayout* layout = nullptr;
85 QFrame* btnTabSep = nullptr;
86 QList<DMultiTabBarButton*> buttons;
87 Qt::Edge position = Qt::LeftEdge;
88};
89
90// -------------------------------------------------------------------------------------
91
92class Q_DECL_HIDDEN SidebarState
93{
94public:
95
96 SidebarState() = default;
97
98 SidebarState(QWidget* const w, int size)
99 : activeWidget(w),
100 size (size)
101 {
102 }
103
104 QWidget* activeWidget = nullptr;
105 int size = 0;
106};
107
108// -------------------------------------------------------------------------------------
109
110class Q_DECL_HIDDEN Sidebar::Private
111{
112
113public:
114
115 Private() = default;
116
117 bool minimizedDefault = false;
118 bool minimized = false;
119
125 bool isMinimized = false;
126
127 int tabs = 0;
128 int activeTab = -1;
129 int dragSwitchId = -1;
130 int restoreSize = 0;
131
132 QStackedWidget* stack = nullptr;
133 SidebarSplitter* splitter = nullptr;
134 QTimer* dragSwitchTimer = nullptr;
135
136 QHash<QWidget*, SidebarState> appendedTabsStateCache;
137
138 const QString optionActiveTabEntry = QLatin1String("ActiveTab");
139 const QString optionMinimizedEntry = QLatin1String("Minimized");
140 const QString optionRestoreSizeEntry = QLatin1String("RestoreSize");
141};
142
143// -------------------------------------------------------------------------------------
144
145class Q_DECL_HIDDEN SidebarSplitter::Private
146{
147public:
148
149 Private() = default;
150
151 QList<Sidebar*> sidebars;
152};
153
154} // namespace Digikam
Definition sidebar_p.h:52
QList< DMultiTabBarTab * > tabs
Definition sidebar_p.h:58
Definition sidebar.h:274
Definition sidebar_p.h:66
Definition sidebar.h:209
Definition sidebar_p.h:78
QList< DMultiTabBarButton * > buttons
Definition sidebar_p.h:86
Definition sidebar.h:48
TextStyle
Definition sidebar.h:57
Definition sidebar_p.h:146
QList< Sidebar * > sidebars
Definition sidebar_p.h:151
Definition sidebar.h:471
Definition sidebar_p.h:93
SidebarState(QWidget *const w, int size)
Definition sidebar_p.h:98
Definition sidebar_p.h:111
QHash< QWidget *, SidebarState > appendedTabsStateCache
Definition sidebar_p.h:136
Definition sidebar.h:324
Definition datefolderview.cpp:34