diff --git a/gui/include/Settings/SqpSettingsDialog.h b/gui/include/Settings/SqpSettingsDialog.h index 4ee6c2f..c18ed47 100644 --- a/gui/include/Settings/SqpSettingsDialog.h +++ b/gui/include/Settings/SqpSettingsDialog.h @@ -20,6 +20,13 @@ public: explicit SqpSettingsDialog(QWidget *parent = 0); virtual ~SqpSettingsDialog() noexcept; + /** + * Registers a widget into the dialog + * @param name the name under which the widget will appear in the dialog + * @param widget the widget to register + */ + void registerWidget(const QString &name, QWidget *widget) noexcept; + private: Ui::SqpSettingsDialog *ui; }; diff --git a/gui/src/Settings/SqpSettingsDialog.cpp b/gui/src/Settings/SqpSettingsDialog.cpp index 7b923c2..44098d5 100644 --- a/gui/src/Settings/SqpSettingsDialog.cpp +++ b/gui/src/Settings/SqpSettingsDialog.cpp @@ -15,3 +15,15 @@ SqpSettingsDialog::~SqpSettingsDialog() noexcept { delete ui; } +void SqpSettingsDialog::registerWidget(const QString &name, QWidget *widget) noexcept +{ + auto newItem = new QListWidgetItem{ui->listWidget}; + newItem->setText(name); + + ui->stackedWidget->addWidget(widget); + + // Selects widget if it's the first in the dialog + if (ui->listWidget->count() == 1) { + ui->listWidget->setCurrentItem(newItem); + } +}