#ifndef PULSEVIEW_PV_SETTINGS_HPP
#define PULSEVIEW_PV_SETTINGS_HPP
+#include <QCheckBox>
#include <QDialog>
+#include <QListWidget>
+#include <QStackedWidget>
namespace pv {
+
+class DeviceManager;
+
namespace dialogs {
class Settings : public QDialog
Q_OBJECT
public:
- Settings(QWidget *parent = 0);
+ Settings(DeviceManager &device_manager, QWidget *parent = nullptr);
+
+ void create_pages();
+ QCheckBox *create_checkbox(const QString& key, const char* slot) const;
QWidget *get_view_settings_form(QWidget *parent) const;
+ QWidget *get_decoder_settings_form(QWidget *parent) const;
+ QWidget *get_about_page(QWidget *parent) const;
void accept();
void reject();
private Q_SLOTS:
- void on_view_alwaysZoomToFit_changed(int state);
+ void on_page_changed(QListWidgetItem *current, QListWidgetItem *previous);
+ void on_view_zoomToFitDuringAcq_changed(int state);
+ void on_view_zoomToFitAfterAcq_changed(int state);
void on_view_colouredBG_changed(int state);
+ void on_view_stickyScrolling_changed(int state);
+ void on_view_showSamplingPoints_changed(int state);
+ void on_view_showAnalogMinorGrid_changed(int state);
+ void on_view_defaultDivHeight_changed(int value);
+ void on_view_defaultLogicHeight_changed(int value);
+ void on_dec_initialStateConfigurable_changed(int state);
+
+private:
+ DeviceManager &device_manager_;
+ QListWidget *page_list;
+ QStackedWidget *pages;
};
} // namespace dialogs