Engauge Digitizer 2
Loading...
Searching...
No Matches
StatusBar.h
Go to the documentation of this file.
1/******************************************************************************************************
2 * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3 * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4 * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5 ******************************************************************************************************/
6
7#ifndef STATUS_BAR_H
8#define STATUS_BAR_H
9
10#include <QComboBox>
11#include <QMap>
12#include <QObject>
13#include <QString>
14#include "StatusBarMode.h"
15#include "ZoomFactor.h"
16
17class QFrame;
18class QStatusBar;
19class QTextEdit;
20class QTimer;
21
24class StatusBar : public QObject
25{
27
28public:
31 ~StatusBar();
32
35 const QString &coordsGraph,
37
40
43
45 StatusBarMode statusBarMode() const { return m_statusBarMode; }
46
48 void wakeUp ();
49
50public slots:
52 void slotZoom(int);
53
54private slots:
56 void slotComboUnits (const QString &);
57
59 void slotComboZoom (const QString &);
60
63 void slotStatusBarChanged(const QString &message);
64
66 void slotTimeout();
67
70 void signalZoom (int);
71
72private:
73 StatusBar();
74
75 void createGroupUnits ();
76 void createZoom ();
77 void createZoomLabels ();
78 void createZoomMaps ();
79 QString labelCoordsGraph () const; // Return string initialized after QTranslator has become available
80 QString labelCoordsScreen () const; // Return string initialized after QTranslator has become available
81 QString labelResolutionGraph () const; // Return string initialized after QTranslator has become available
82 void updateCoordsText ();
83
84 enum StatusBarUnits {
85 STATUS_BAR_UNITS_COORDS_SCREEN,
86 STATUS_BAR_UNITS_COORDS_GRAPH,
87 STATUS_BAR_UNITS_RESOLUTION_GRAPH
88 };
89
90 QStatusBar &m_statusBar;
91
92 QComboBox *m_cmbZoom;
93
94 QFrame *m_groupUnits;
95 QComboBox *m_cmbUnits;
96 QTextEdit *m_editCoords;
97
98 QString m_coordsScreen;
99 QString m_coordsGraph;
100 QString m_resolutionGraph;
101
102 StatusBarMode m_statusBarMode;
103
104 QTimer *m_timer;
105
106 // Map to/from/between zoom enumerations. These eliminate the need for switch statements
107 QMap<ZoomFactor, QString> m_zoomMapToLabel;
108 QMap<QString, ZoomFactor> m_zoomMapFromLabel;
109};
110
111#endif // STATUS_BAR_H
const int INNER_RADIUS_MIN
StatusBarMode
Wrapper around QStatusBar to manage permanent widgets.
Definition StatusBar.h:25
void wakeUp()
Enable all widgets in the status bar. This is called just after a Document becomes active.
void setStatusBarMode(StatusBarMode statusBarMode)
Set the status bar visibility mode.
void signalZoom(int)
Send zoom factor, that was just selected in the status bar, to MainWindow.
StatusBarMode statusBarMode() const
Current mode for status bar visibility. This is tracked locally so this class knows when to hide/show...
Definition StatusBar.h:45
void showTemporaryMessage(const QString &message)
Show temporary message in status bar. After a short interval the message will disappear.
void slotZoom(int)
Receive zoom selection from MainWindow.
void setCoordinates(const QString &coordsScreen, const QString &coordsGraph, const QString &resolutionGraph)
Populate the coordinates fields. Unavailable values are empty. Html-encoding to highlight with colors...