Kstars

timeunitbox.h
1 /*
2  SPDX-FileCopyrightText: 2002 Jason Harris <[email protected]>
3 
4  SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #pragma once
8 
9 #include <QWidget>
10 #include <QAction>
11 
12 class QToolButton;
13 
14 #define TUB_ALLUNITS 8
15 
16 /**
17  * @class TimeUnitBox
18  * @short Provides a second set of up/down buttons for TimeStepBox.
19  * A pair of buttons, arranged one above the other, labeled "+"/"-". These buttons
20  * are to be paired with the TimeSpinBox widget. Their function is to provide
21  * a way to cycle through the possible time steps using larger intervals than the up/down
22  * buttons of the TimeSpinBox. For example, say the Spinbox currently shows a timestep of
23  * "1 sec". Increasing the timestep with the spinbox up-button will change it to
24  * "2 sec", while using the "+" button of this widget will change it to "1 min".
25  *
26  * The idea is that these "outer" buttons always change to the next even unit of time.
27  *
28  * @note this widget is not to be used on its own; it is combined with the TimeSpinBox
29  * widget to form the TimeStepBox composite widget.
30  *
31  * @author Jason Harris
32  * @version 1.0
33  */
34 
35 class QToolButton;
36 
37 class TimeUnitBox : public QWidget
38 {
39  Q_OBJECT
40 
41  public:
42  /** Constructor */
43  explicit TimeUnitBox(QWidget *parent = nullptr, bool daysonly = false);
44 
45  /** @return the value of UnitStep for the current spinbox value() */
46  int unitValue();
47 
48  /**
49  * @short the same as unitValue, except you can get the UnitStep for any value, not just the current one.
50  * @return the value of UnitStep for the index value given as an argument.
51  */
52  int getUnitValue(int);
53 
54  /**
55  * Set the value which describes which time-unit is displayed in the TimeSpinBox.
56  * @p value the new value
57  */
58  void setValue(int value) { Value = value; }
59  /** @return the internal value describing the time-unit of the TimeSpinBox. */
60  int value() const { return Value; }
61 
62  /** Set the minimum value for the internal time-unit value */
63  void setMinimum(int minValue) { MinimumValue = minValue; }
64  /** Set the maximum value for the internal time-unit value */
65  void setMaximum(int maxValue) { MaximumValue = maxValue; }
66 
67  /** @return the minimum value for the internal time-unit value */
68  int minValue() const { return MinimumValue; }
69  /** @return the maximum value for the internal time-unit value */
70  int maxValue() const { return MaximumValue; }
71 
72  bool daysOnly() const { return DaysOnly; }
73  void setDaysOnly(bool daysonly);
74 
75  QAction *increaseUnitsAction() const { return IncreaseAction; }
76  QAction *decreaseUnitsAction() const { return DecreaseAction; }
77 
78  signals:
79  void valueChanged(int);
80 
81  private slots:
82  /** Increment the internal time-unit value */
83  void increase();
84  /** Decrement the internal time-unit value */
85  void decrease();
86 
87  private:
88  bool DaysOnly { false };
89  QToolButton *UpButton { nullptr };
90  QToolButton *DownButton { nullptr };
91  QAction *IncreaseAction { nullptr };
92  QAction *DecreaseAction { nullptr };
93  int MinimumValue { 0 };
94  int MaximumValue { 0 };
95  int Value { 0 };
96  int UnitStep[TUB_ALLUNITS];
97 };
Q_OBJECTQ_OBJECT
int getUnitValue(int)
the same as unitValue, except you can get the UnitStep for any value, not just the current one.
Provides a second set of up/down buttons for TimeStepBox. A pair of buttons, arranged one above the o...
Definition: timeunitbox.h:37
int maxValue() const
Definition: timeunitbox.h:70
void setMinimum(int minValue)
Set the minimum value for the internal time-unit value.
Definition: timeunitbox.h:63
void setValue(int value)
Set the value which describes which time-unit is displayed in the TimeSpinBox.
Definition: timeunitbox.h:58
void setMaximum(int maxValue)
Set the maximum value for the internal time-unit value.
Definition: timeunitbox.h:65
int value() const
Definition: timeunitbox.h:60
int minValue() const
Definition: timeunitbox.h:68
QObject * parent() const const
TimeUnitBox(QWidget *parent=nullptr, bool daysonly=false)
Constructor.
Definition: timeunitbox.cpp:16
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Tue Sep 26 2023 03:55:51 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.