Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_statusbar.h
Go to the documentation of this file.
1/* This file is part of KimageShop^WKrayon^WKrita
2 *
3 * SPDX-FileCopyrightText: 2003-2006 Boudewijn Rempt <boud@valdyas.org>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7#ifndef KIS_STATUSBAR_H
8#define KIS_STATUSBAR_H
9
10#include <QObject>
11#include <QPointer>
12#include <QIcon>
13#include <QStatusBar>
14
15#include <kis_types.h>
16#include "KisView.h"
17#include <boost/operators.hpp>
18
19class QLabel;
20class QToolButton;
21class QPushButton;
22class QBoxLayout;
23class KSqueezedTextLabel;
24class KisViewManager;
29
30#include "kritaui_export.h"
31
32class KRITAUI_EXPORT KisStatusBar : public QObject
33{
34 class StatusBarItem : public boost::equality_comparable<StatusBarItem>
35 {
36 public:
38 : m_widget(0) {}
39
40 StatusBarItem(QWidget * widget)
41 : m_widget(widget) {}
42
43 bool operator==(const StatusBarItem& rhs) {
44 return m_widget == rhs.m_widget;
45 }
46
47 QWidget * widget() const {
48 return m_widget;
49 }
50
51 void show() const {
52 m_widget->show();
53 }
54 void hide() const {
55 m_widget->hide();
56 }
57
58
59 private:
61 };
62
63 Q_OBJECT
64
65public:
66
67 explicit KisStatusBar(KisViewManager *view);
68 ~KisStatusBar() override;
69
70 void setup();
71 void setView(QPointer<KisView> imageView);
72 void hideAllStatusBarItems();
73 void showAllStatusBarItems();
74
75 KoProgressUpdater *progressUpdater();
76
77 void addExtraWidget(QWidget *widget);
78 void removeExtraWidget(QWidget *widget);
79
80public Q_SLOTS:
81
82 void imageSizeChanged();
83 void setSelection(KisImageWSP image);
84 void setProfile(KisImageWSP image);
85 void setHelp(const QString &t);
86 void updateStatusBarProfileLabel();
87 void updateSelectionToolTip();
88
89private Q_SLOTS:
90 void updateSelectionIcon();
91 void showMemoryInfoToolTip();
92 void slotCanvasAngleSelectorAngleChanged(qreal angle);
93 void slotCanvasRotationChanged();
94
95Q_SIGNALS:
97
98private:
99
100 void removeStatusBarItem(QWidget *widget);
101 void addStatusBarItem(QWidget *widget, int stretch = 0, bool permanent = false);
102 void updateMemoryStatus();
103
104private:
105
109 KisProgressWidget *m_progress {nullptr};
110 QScopedPointer<KoProgressUpdater> m_progressUpdater;
111
112 QToolButton *m_selectionStatus {nullptr};
113 KisMemoryReportButton *m_memoryReportBox {nullptr};
114 QWidget *m_extraWidgetsParent {nullptr};
115 QBoxLayout *m_extraWidgetsLayout {nullptr};
116 KisAngleSelector *m_canvasAngleSelector {nullptr};
117
118 KSqueezedTextLabel *m_statusBarStatusLabel {nullptr};
119 KSqueezedTextLabel *m_statusBarProfileLabel {nullptr};
120
124
126
127 bool m_memoryWarningLogged {false};
128};
129
130#endif
A widget with several options to select an angle.
bool operator==(const StatusBarItem &rhs)
QPointer< QWidget > m_widget
StatusBarItem(QWidget *widget)
QIcon m_memoryStatusIcon
QString m_longMemoryTag
QPointer< KisView > m_imageView
QString m_shortMemoryTag
QScopedPointer< KoProgressUpdater > m_progressUpdater
void sigCancellationRequested()
QVector< StatusBarItem > m_statusBarItems
QPointer< KisViewManager > m_viewManager
QPointer< QStatusBar > m_statusBar