maxLibQt
TimerEdit.h
Go to the documentation of this file.
1 /*
2  TimerEdit
3  https://github.com/mpaperno/maxLibQt
4 
5  COPYRIGHT: (c)2017 Maxim Paperno; All Right Reserved.
6  Contact: http://www.WorldDesign.com/contact
7 
8  LICENSE:
9 
10  Commercial License Usage
11  Licensees holding valid commercial licenses may use this file in
12  accordance with the terms contained in a written agreement between
13  you and the copyright holder.
14 
15  GNU General Public License Usage
16  Alternatively, this file may be used under the terms of the GNU
17  General Public License as published by the Free Software Foundation,
18  either version 3 of the License, or (at your option) any later version.
19 
20  This program is distributed in the hope that it will be useful,
21  but WITHOUT ANY WARRANTY; without even the implied warranty of
22  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23  GNU General Public License for more details.
24 
25  A copy of the GNU General Public License is available at <http://www.gnu.org/licenses/>.
26 */
27 
28 #ifndef TIMEREDIT_H
29 #define TIMEREDIT_H
30 
31 #include <QLineEdit>
32 #include <QRegularExpression>
33 #include <QRegularExpressionValidator>
34 #include <QKeyEvent>
35 #include <QWheelEvent>
36 
52 class TimerEdit : public QLineEdit
53 {
54  Q_OBJECT
55  Q_PROPERTY(int minimumTime READ minimumTime WRITE setMinimumTime)
56  Q_PROPERTY(int maximumTime READ maximumTime WRITE setMaximumTime)
57  Q_PROPERTY(bool showSeconds READ showSeconds WRITE setShowSeconds)
58  Q_PROPERTY(unsigned int singleStep READ singleStep WRITE setSingleStep)
59  Q_PROPERTY(unsigned int pageStep READ pageStep WRITE setPageStep)
60 
61 
62  public:
64 
65  TimerEdit(QWidget *parent = Q_NULLPTR);
66 
67  int timeInSeconds() const;
68  int timepart(const QString &input, TimeParts part) const;
69 
70  bool showSeconds() const { return m_showSeconds; }
71  int minimumTime() const { return m_minTime; }
72  int maximumTime() const { return m_maxTime; }
73  unsigned int singleStep() const { return m_singleStep; }
74  unsigned int pageStep() const { return m_pageStep; }
75 
76  public slots:
77  void setTime(int seconds);
78  void incrDecr(int seconds);
79  void setTimeRange(int minSeconds, int maxSeconds);
80  void setMinimumTime(int minSeconds);
81  void setMaximumTime(int maxSeconds);
82  void setShowSeconds(bool showSeconds);
83 
84  void setSingleStep(unsigned int step) { m_singleStep = step; }
85  void setPageStep(unsigned int pageStep) { m_pageStep = pageStep; }
86 
87  protected:
88  void textEditedHandler();
89  void setupFormat();
90  void emitValueChanged();
91  void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
92  void wheelEvent(QWheelEvent *event) Q_DECL_OVERRIDE;
93 
95  int m_minTime; // seconds
96  int m_maxTime; // seconds
97  unsigned m_singleStep; // seconds
98  unsigned m_pageStep; // seconds
99  short m_hourDigits;
101 };
102 
103 #endif // TIMEREDIT_H
unsigned m_singleStep
Definition: TimerEdit.h:97
int minimumTime() const
Definition: TimerEdit.h:71
int timepart(const QString &input, TimeParts part) const
Definition: TimerEdit.cpp:58
void setupFormat()
Definition: TimerEdit.cpp:197
void keyPressEvent(QKeyEvent *event) override
Definition: TimerEdit.cpp:237
void incrDecr(int seconds)
Definition: TimerEdit.cpp:128
virtual bool event(QEvent *e) override
unsigned int pageStep() const
Definition: TimerEdit.h:74
void setShowSeconds(bool showSeconds)
Definition: TimerEdit.cpp:173
int timeInSeconds() const
Definition: TimerEdit.cpp:46
A time value line editor which accepts negative and large times (> 23:59:59), suitable for a timer,...
Definition: TimerEdit.h:52
int maximumTime() const
Definition: TimerEdit.h:72
TimerEdit(QWidget *parent=Q_NULLPTR)
Definition: TimerEdit.cpp:30
void setTime(int seconds)
Definition: TimerEdit.cpp:98
void setPageStep(unsigned int pageStep)
Definition: TimerEdit.h:85
void setMaximumTime(int maxSeconds)
Definition: TimerEdit.cpp:168
short m_hourDigits
Definition: TimerEdit.h:99
bool showSeconds() const
Definition: TimerEdit.h:70
unsigned m_pageStep
Definition: TimerEdit.h:98
int m_minTime
Definition: TimerEdit.h:95
unsigned int singleStep() const
Definition: TimerEdit.h:73
bool m_showSeconds
Definition: TimerEdit.h:94
void setMinimumTime(int minSeconds)
Definition: TimerEdit.cpp:163
void emitValueChanged()
Definition: TimerEdit.cpp:232
QRegularExpressionValidator * m_validator
Definition: TimerEdit.h:100
void setSingleStep(unsigned int step)
Definition: TimerEdit.h:84
void textEditedHandler()
Definition: TimerEdit.cpp:184
int m_maxTime
Definition: TimerEdit.h:96
QObject * parent() const const
void wheelEvent(QWheelEvent *event) override
Definition: TimerEdit.cpp:271
void setTimeRange(int minSeconds, int maxSeconds)
Definition: TimerEdit.cpp:145