OpenHantek
Loading...
Searching...
No Matches
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
13class QLabel;
14class QCheckBox;
15class QComboBox;
16
17class SiSpinBox;
18
19struct DsoSettingsScope;
20// struct ControlSpecification;
21
22Q_DECLARE_METATYPE( std::vector< unsigned > )
23Q_DECLARE_METATYPE( std::vector< double > )
24
25
27class 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;
73 QLabel *timebaseLabel;
74 QLabel *formatLabel;
75 QLabel *calfreqLabel;
78 QComboBox *formatComboBox;
80 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:
97
98 signals:
99 void samplerateChanged( double samplerate );
100 void timebaseChanged( double timebase );
101 void recordLengthChanged( int recordLength );
103 void calfreqChanged( double calfreq );
104};
QComboBox * calfreqComboBox
Selects the calibration frequency.
Definition HorizontalDock.h:80
QList< double > timebaseSteps
Steps for the timebase spinbox.
Definition HorizontalDock.h:83
void loadSettings(DsoSettingsScope *scope)
Loads settings into GUI.
Definition HorizontalDock.cpp:104
void calculateSamplerateSteps(double timebase)
Definition HorizontalDock.cpp:241
QLabel * calfreqLabel
The label for the calibration frequency spinbox.
Definition HorizontalDock.h:75
double setSamplerate(double samplerate)
Changes the samplerate.
Definition HorizontalDock.cpp:129
void triggerModeChanged(Dso::TriggerMode mode)
Definition HorizontalDock.cpp:113
void setSamplerateLimits(double minimum, double maximum)
Updates the minimum and maximum of the samplerate spin box.
Definition HorizontalDock.cpp:186
QComboBox * formatComboBox
Definition HorizontalDock.h:78
QList< double > samplerateSteps
Possible sampe rates.
Definition HorizontalDock.h:85
QStringList formatStrings
Strings for the formats.
Definition HorizontalDock.h:87
double setTimebase(double timebase)
Changes the timebase.
Definition HorizontalDock.cpp:143
double setCalfreq(double calfreq)
Changes the calibration frequency.
Definition HorizontalDock.cpp:173
QWidget * dockWidget
The main widget for the dock window.
Definition HorizontalDock.h:71
void calfreqIndexSelected(int index)
Called when the calfreq combobox changes its value.
Definition HorizontalDock.cpp:286
DsoSettingsScope * scope
The settings provided by the parent class.
Definition HorizontalDock.h:82
void samplerateChanged(double samplerate)
The samplerate has been changed.
void setSamplerateSteps(int mode, QList< double > sampleSteps)
Updates the mode and steps of the samplerate spin box.
Definition HorizontalDock.cpp:197
double samplerateRequest
Definition HorizontalDock.h:96
QGridLayout * dockLayout
The main layout for the dock window.
Definition HorizontalDock.h:70
SiSpinBox * timebaseSiSpinBox
Selects the timebase for voltage graphs.
Definition HorizontalDock.h:77
void samplerateSelected(double samplerate)
Called when the samplerate spinbox changes its value.
Definition HorizontalDock.cpp:220
SiSpinBox * samplerateSiSpinBox
Selects the samplerate for acquisitions.
Definition HorizontalDock.h:76
QLabel * samplerateLabel
The label for the samplerate spinbox.
Definition HorizontalDock.h:72
void closeEvent(QCloseEvent *event) override
Don't close the dock, just hide it.
Definition HorizontalDock.cpp:123
void setRecordLength(int recordLength)
Changes the record length if the new value is supported.
HorizontalDock(DsoSettingsScope *scope, const Dso::ControlSpecification *spec, QWidget *parent)
Initializes the horizontal axis docking window.
Definition HorizontalDock.cpp:30
int setFormat(Dso::GraphFormat format)
Changes the format if the new value is supported.
Definition HorizontalDock.cpp:161
QLabel * formatLabel
The label for the format combobox.
Definition HorizontalDock.h:74
QList< double > calfreqSteps
Steps for the calfreq spinbox.
Definition HorizontalDock.h:84
void timebaseSelected(double timebase)
Called when the timebase spinbox changes its value.
Definition HorizontalDock.cpp:230
void formatSelected(int index)
Called when the format combo box changes its value.
Definition HorizontalDock.cpp:276
void calfreqChanged(double calfreq)
The timebase has been changed.
void timebaseChanged(double timebase)
The timebase has been changed.
void formatChanged(Dso::GraphFormat format)
The viewing format has been changed.
void recordLengthChanged(int recordLength)
The recordd length has been changed.
QLabel * timebaseLabel
The label for the timebase spinbox.
Definition HorizontalDock.h:73
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
TriggerMode
The different triggering modes.
Definition enums.h:35
GraphFormat
The possible viewing formats for the graphs on the scope.
Definition enums.h:18
Holds the settings for the oscilloscope.
Definition scopesettings.h:100
Stores the specifications of the currently connected device.
Definition controlspecification.h:42