OpenHantek
Loading...
Searching...
No Matches
HorizontalDock.h
1// SPDX-License-Identifier: GPL-2.0+
2
3#pragma once
4
5#include <QDockWidget>
6#include <QGridLayout>
7
8#include <vector>
9
10#include "hantekdso/enums.h"
11
12class QLabel;
13class QCheckBox;
14class QComboBox;
15
16class SiSpinBox;
17
18struct DsoSettingsScope;
19
20Q_DECLARE_METATYPE(std::vector<unsigned>)
21Q_DECLARE_METATYPE(std::vector<double>)
22
23
25class HorizontalDock : public QDockWidget {
26 Q_OBJECT
27
28 public:
33 HorizontalDock(DsoSettingsScope *scope, QWidget *parent, Qt::WindowFlags flags = 0);
34
37 void setFrequencybase(double timebase);
40 void setSamplerate(double samplerate);
43 double setTimebase(double timebase);
46 void setRecordLength(unsigned int recordLength);
50 int setFormat(Dso::GraphFormat format);
53 void setAvailableRecordLengths(const std::vector<unsigned> &recordLengths);
57 void setSamplerateLimits(double minimum, double maximum);
61 void setSamplerateSteps(int mode, QList<double> sampleSteps);
62
63 protected:
64 void closeEvent(QCloseEvent *event);
65
66 QGridLayout *dockLayout;
67 QWidget *dockWidget;
69 QLabel *timebaseLabel;
72 QLabel *formatLabel;
77 QComboBox *formatComboBox;
79
81 QList<double> timebaseSteps;
82
83 QStringList formatStrings;
84
85 protected slots:
86 void frequencybaseSelected(double frequencybase);
87 void samplerateSelected(double samplerate);
88 void timebaseSelected(double timebase);
89 void recordLengthSelected(int index);
90 void formatSelected(int index);
91
92 signals:
93 void frequencybaseChanged(double frequencybase);
94 void samplerateChanged(double samplerate);
95 void timebaseChanged(double timebase);
96 void recordLengthChanged(unsigned long recordLength);
97 void formatChanged(Dso::GraphFormat format);
98};
Dock window for the horizontal axis. It contains the settings for the timebase and the display format...
Definition HorizontalDock.h:25
SiSpinBox * frequencybaseSiSpinBox
Selects the frequencybase for spectrum graphs.
Definition HorizontalDock.h:75
void frequencybaseChanged(double frequencybase)
The frequencybase has been changed.
QComboBox * formatComboBox
Definition HorizontalDock.h:77
QStringList formatStrings
Strings for the formats.
Definition HorizontalDock.h:83
QWidget * dockWidget
The main widget for the dock window.
Definition HorizontalDock.h:67
DsoSettingsScope * scope
The settings provided by the parent class.
Definition HorizontalDock.h:80
QList< double > timebaseSteps
Steps for the timebase spinbox.
Definition HorizontalDock.h:81
void samplerateChanged(double samplerate)
The samplerate has been changed.
QGridLayout * dockLayout
The main layout for the dock window.
Definition HorizontalDock.h:66
SiSpinBox * timebaseSiSpinBox
Selects the timebase for voltage graphs.
Definition HorizontalDock.h:74
QLabel * recordLengthLabel
The label for the record length combobox.
Definition HorizontalDock.h:71
SiSpinBox * samplerateSiSpinBox
Selects the samplerate for aquisitions.
Definition HorizontalDock.h:73
QLabel * samplerateLabel
The label for the samplerate spinbox.
Definition HorizontalDock.h:68
QComboBox * recordLengthComboBox
Selects the record length for aquisitions.
Definition HorizontalDock.h:76
QLabel * formatLabel
The label for the format combobox.
Definition HorizontalDock.h:72
QLabel * frequencybaseLabel
The label for the frequencybase spinbox.
Definition HorizontalDock.h:70
void recordLengthChanged(unsigned long recordLength)
The recordd length has been changed.
void timebaseChanged(double timebase)
The timebase has been changed.
void formatChanged(Dso::GraphFormat format)
The viewing format has been changed.
QLabel * timebaseLabel
The label for the timebase spinbox.
Definition HorizontalDock.h:69
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
Holds the settings for the oscilloscope.
Definition scopesettings.h:77