OpenHantek
HorizontalDock.h
Go to the documentation of this file.
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 
3 #pragma once
4 
5 #include <QDockWidget>
6 #include <QGridLayout>
7 
8 #include <vector>
9 
11 #include "hantekdso/enums.h"
12 
13 class QLabel;
14 class QCheckBox;
15 class QComboBox;
16 
17 class SiSpinBox;
18 
19 struct DsoSettingsScope;
20 // struct ControlSpecification;
21 
22 Q_DECLARE_METATYPE( std::vector< unsigned > )
23 Q_DECLARE_METATYPE( std::vector< double > )
24 
25 class HorizontalDock : public QDockWidget {
28  Q_OBJECT
29 
30  public:
35  HorizontalDock( DsoSettingsScope *scope, const Dso::ControlSpecification *spec, QWidget *parent );
36 
39  double setSamplerate( double samplerate );
42  double setTimebase( double timebase );
45  void setRecordLength( int recordLength );
49  int setFormat( Dso::GraphFormat format );
53  void setSamplerateLimits( double minimum, double maximum );
56  void setSamplerateSteps( int mode, QList< double > sampleSteps );
57  void calculateSamplerateSteps( double timebase );
60  double setCalfreq( double calfreq );
61 
62  public slots:
67 
68  protected:
69  void closeEvent( QCloseEvent *event ) override;
70  QGridLayout *dockLayout;
71  QWidget *dockWidget;
72  QLabel *samplerateLabel;
73  QLabel *timebaseLabel;
74  QLabel *formatLabel;
75  QLabel *calfreqLabel;
78  QComboBox *formatComboBox;
79  QComboBox *calfreqComboBox;
81 
83  QList< double > timebaseSteps;
84  QList< double > calfreqSteps;
85  QList< double > samplerateSteps;
86 
87  QStringList formatStrings;
88 
89  protected slots:
90  void samplerateSelected( double samplerate );
91  void timebaseSelected( double timebase );
92  void formatSelected( int index );
93  void calfreqIndexSelected( int index );
94 
95  private:
96  double samplerateRequest = 0;
97 
98  signals:
99  void samplerateChanged( double samplerate );
100  void timebaseChanged( double timebase );
101  void recordLengthChanged( int recordLength );
102  void formatChanged( Dso::GraphFormat format );
103  void calfreqChanged( double calfreq );
104 };
void samplerateChanged(double samplerate)
The samplerate has been changed.
void setRecordLength(int recordLength)
Changes the record length if the new value is supported.
void closeEvent(QCloseEvent *event) override
Don&#39;t close the dock, just hide it.
Definition: HorizontalDock.cpp:123
double samplerateRequest
Definition: HorizontalDock.h:96
void formatSelected(int index)
Called when the format combo box changes its value.
Definition: HorizontalDock.cpp:276
SiSpinBox * samplerateSiSpinBox
Selects the samplerate for acquisitions.
Definition: HorizontalDock.h:76
void calculateSamplerateSteps(double timebase)
Definition: HorizontalDock.cpp:241
QList< double > timebaseSteps
Steps for the timebase spinbox.
Definition: HorizontalDock.h:83
HorizontalDock(DsoSettingsScope *scope, const Dso::ControlSpecification *spec, QWidget *parent)
Initializes the horizontal axis docking window.
Definition: HorizontalDock.cpp:30
void loadSettings(DsoSettingsScope *scope)
Loads settings into GUI.
Definition: HorizontalDock.cpp:104
QLabel * calfreqLabel
The label for the calibration frequency spinbox.
Definition: HorizontalDock.h:75
double setTimebase(double timebase)
Changes the timebase.
Definition: HorizontalDock.cpp:143
void calfreqIndexSelected(int index)
Called when the calfreq combobox changes its value.
Definition: HorizontalDock.cpp:286
QLabel * timebaseLabel
The label for the timebase spinbox.
Definition: HorizontalDock.h:73
void formatChanged(Dso::GraphFormat format)
The viewing format has been changed.
void timebaseChanged(double timebase)
The timebase has been changed.
TriggerMode
The different triggering modes.
Definition: enums.h:35
GraphFormat
The possible viewing formats for the graphs on the scope.
Definition: enums.h:18
QStringList formatStrings
Strings for the formats.
Definition: HorizontalDock.h:87
QLabel * samplerateLabel
The label for the samplerate spinbox.
Definition: HorizontalDock.h:72
int setFormat(Dso::GraphFormat format)
Changes the format if the new value is supported.
Definition: HorizontalDock.cpp:161
QList< double > calfreqSteps
Steps for the calfreq spinbox.
Definition: HorizontalDock.h:84
A spin box with SI prefix support. This spin box supports the SI prefixes (k/M/G/T) after its value a...
Definition: sispinbox.h:14
void timebaseSelected(double timebase)
Called when the timebase spinbox changes its value.
Definition: HorizontalDock.cpp:230
double setSamplerate(double samplerate)
Changes the samplerate.
Definition: HorizontalDock.cpp:129
Stores the specifications of the currently connected device.
Definition: controlspecification.h:42
QComboBox * calfreqComboBox
Selects the calibration frequency.
Definition: HorizontalDock.h:80
QWidget * dockWidget
The main widget for the dock window.
Definition: HorizontalDock.h:71
void calfreqChanged(double calfreq)
The timebase has been changed.
QGridLayout * dockLayout
The main layout for the dock window.
Definition: HorizontalDock.h:70
QList< double > samplerateSteps
Possible sampe rates.
Definition: HorizontalDock.h:85
void samplerateSelected(double samplerate)
Called when the samplerate spinbox changes its value.
Definition: HorizontalDock.cpp:220
Holds the settings for the oscilloscope.
Definition: scopesettings.h:100
void setSamplerateSteps(int mode, QList< double > sampleSteps)
Updates the mode and steps of the samplerate spin box.
Definition: HorizontalDock.cpp:197
double setCalfreq(double calfreq)
Changes the calibration frequency.
Definition: HorizontalDock.cpp:173
Dock window for the horizontal axis. It contains the settings for the timebase and the display format...
Definition: HorizontalDock.h:27
SiSpinBox * timebaseSiSpinBox
Selects the timebase for voltage graphs.
Definition: HorizontalDock.h:77
void recordLengthChanged(int recordLength)
The recordd length has been changed.
void setSamplerateLimits(double minimum, double maximum)
Updates the minimum and maximum of the samplerate spin box.
Definition: HorizontalDock.cpp:186
QLabel * formatLabel
The label for the format combobox.
Definition: HorizontalDock.h:74
DsoSettingsScope * scope
The settings provided by the parent class.
Definition: HorizontalDock.h:82
void triggerModeChanged(Dso::TriggerMode mode)
Definition: HorizontalDock.cpp:113
QComboBox * formatComboBox
Definition: HorizontalDock.h:78