Engauge Digitizer  2
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 
17 class QFrame;
18 class QStatusBar;
19 class QTextEdit;
20 class QTimer;
21 
24 class StatusBar : public QObject
25 {
26  Q_OBJECT;
27 
28 public:
30  StatusBar(QStatusBar &statusBar);
31  ~StatusBar();
32 
34  void setCoordinates (const QString &coordsScreen,
35  const QString &coordsGraph,
36  const QString &resolutionGraph);
37 
40 
42  void showTemporaryMessage(const QString &message);
43 
45  StatusBarMode statusBarMode() const { return m_statusBarMode; }
46 
48  void wakeUp ();
49 
50 public slots:
52  void slotZoom(int);
53 
54 private slots:
56  void slotComboUnits (const QString &);
57 
59  void slotComboZoom (const QString &);
60 
63  void slotStatusBarChanged(const QString &message);
64 
66  void slotTimeout();
67 
68 signals:
70  void signalZoom (int);
71 
72 private:
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
StatusBar::setCoordinates
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...
Definition: StatusBar.cpp:239
StatusBar::wakeUp
void wakeUp()
Enable all widgets in the status bar. This is called just after a Document becomes active.
Definition: StatusBar.cpp:343
ZoomFactor.h
StatusBar::statusBarMode
StatusBarMode statusBarMode() const
Current mode for status bar visibility. This is tracked locally so this class knows when to hide/show...
Definition: StatusBar.h:44
StatusBarMode
StatusBarMode
Definition: StatusBarMode.h:11
StatusBar::setStatusBarMode
void setStatusBarMode(StatusBarMode statusBarMode)
Set the status bar visibility mode.
Definition: StatusBar.cpp:258
StatusBar
Wrapper around QStatusBar to manage permanent widgets.
Definition: StatusBar.h:23
StatusBar::showTemporaryMessage
void showTemporaryMessage(const QString &message)
Show temporary message in status bar. After a short interval the message will disappear.
Definition: StatusBar.cpp:268
StatusBar::slotZoom
void slotZoom(int)
Receive zoom selection from MainWindow.
Definition: StatusBar.cpp:322
StatusBar::~StatusBar
~StatusBar()
Definition: StatusBar.cpp:44
StatusBarMode.h
StatusBar::signalZoom
void signalZoom(int)
Send zoom factor, that was just selected in the status bar, to MainWindow.