| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -15,16 +15,17 @@ class AbstractControl : public QFrame { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Q_OBJECT | 
					 | 
					 | 
					 | 
					  Q_OBJECT | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					protected: | 
					 | 
					 | 
					 | 
					protected: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  AbstractControl(const QString &title, const QString &desc = "", const QString &icon = ""); | 
					 | 
					 | 
					 | 
					  AbstractControl(const QString &title, const QString &desc = "", const QString &icon = "", QWidget *parent = nullptr); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  QSize minimumSizeHint() const override { | 
					 | 
					 | 
					 | 
					  QSize minimumSizeHint() const override { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    QSize size = QFrame::minimumSizeHint(); | 
					 | 
					 | 
					 | 
					    QSize size = QFrame::minimumSizeHint(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    size.setHeight(120); | 
					 | 
					 | 
					 | 
					    size.setHeight(150); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    return size; | 
					 | 
					 | 
					 | 
					    return size; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  }; | 
					 | 
					 | 
					 | 
					  }; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  QHBoxLayout *hlayout; | 
					 | 
					 | 
					 | 
					  QHBoxLayout *hlayout; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  QLabel *title_label; | 
					 | 
					 | 
					 | 
					  QPushButton *title_label; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  QLabel *description = nullptr; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}; | 
					 | 
					 | 
					 | 
					}; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					// widget to display a value
 | 
					 | 
					 | 
					 | 
					// widget to display a value
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -32,7 +33,7 @@ class LabelControl : public AbstractControl { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Q_OBJECT | 
					 | 
					 | 
					 | 
					  Q_OBJECT | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					public: | 
					 | 
					 | 
					 | 
					public: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  LabelControl(const QString &title, const QString &text, const QString &desc = "") : AbstractControl(title, desc, "") { | 
					 | 
					 | 
					 | 
					  LabelControl(const QString &title, const QString &text, const QString &desc = "", QWidget *parent = nullptr) : AbstractControl(title, desc, "", parent) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    label.setText(text); | 
					 | 
					 | 
					 | 
					    label.setText(text); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    label.setAlignment(Qt::AlignRight | Qt::AlignVCenter); | 
					 | 
					 | 
					 | 
					    label.setAlignment(Qt::AlignRight | Qt::AlignVCenter); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    hlayout->addWidget(&label); | 
					 | 
					 | 
					 | 
					    hlayout->addWidget(&label); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -49,7 +50,7 @@ class ButtonControl : public AbstractControl { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					public: | 
					 | 
					 | 
					 | 
					public: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  template <typename Functor> | 
					 | 
					 | 
					 | 
					  template <typename Functor> | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  ButtonControl(const QString &title, const QString &text, const QString &desc, Functor functor, const QString &icon = "") : AbstractControl(title, desc, icon) { | 
					 | 
					 | 
					 | 
					  ButtonControl(const QString &title, const QString &text, const QString &desc, Functor functor, const QString &icon = "", QWidget *parent = nullptr) : AbstractControl(title, desc, icon, parent) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    btn.setText(text); | 
					 | 
					 | 
					 | 
					    btn.setText(text); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    btn.setStyleSheet(R"( | 
					 | 
					 | 
					 | 
					    btn.setStyleSheet(R"( | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      padding: 0; | 
					 | 
					 | 
					 | 
					      padding: 0; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -73,7 +74,7 @@ class ToggleControl : public AbstractControl { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Q_OBJECT | 
					 | 
					 | 
					 | 
					  Q_OBJECT | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					public: | 
					 | 
					 | 
					 | 
					public: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  ToggleControl(const QString &title, const QString &desc = "", const QString &icon = "", const bool state = false) : AbstractControl(title, desc, icon) { | 
					 | 
					 | 
					 | 
					  ToggleControl(const QString &title, const QString &desc = "", const QString &icon = "", const bool state = false, QWidget *parent = nullptr) : AbstractControl(title, desc, icon, parent) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    toggle.setFixedSize(150, 100); | 
					 | 
					 | 
					 | 
					    toggle.setFixedSize(150, 100); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if (state) { | 
					 | 
					 | 
					 | 
					    if (state) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      toggle.togglePosition(); | 
					 | 
					 | 
					 | 
					      toggle.togglePosition(); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -96,7 +97,7 @@ class ParamControl : public ToggleControl { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  Q_OBJECT | 
					 | 
					 | 
					 | 
					  Q_OBJECT | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					public: | 
					 | 
					 | 
					 | 
					public: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  ParamControl(const QString ¶m, const QString &title, const QString &desc, const QString &icon) : ToggleControl(title, desc, icon) { | 
					 | 
					 | 
					 | 
					  ParamControl(const QString ¶m, const QString &title, const QString &desc, const QString &icon, QWidget *parent = nullptr) : ToggleControl(title, desc, icon, parent) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    // set initial state from param
 | 
					 | 
					 | 
					 | 
					    // set initial state from param
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if (Params().read_db_bool(param.toStdString().c_str())) { | 
					 | 
					 | 
					 | 
					    if (Params().read_db_bool(param.toStdString().c_str())) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      toggle.togglePosition(); | 
					 | 
					 | 
					 | 
					      toggle.togglePosition(); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |