diff --git a/src/gui/src/HotkeyDialog.cpp b/src/gui/src/HotkeyDialog.cpp index b77e0d243..5df00cc8e 100644 --- a/src/gui/src/HotkeyDialog.cpp +++ b/src/gui/src/HotkeyDialog.cpp @@ -17,20 +17,23 @@ */ #include "HotkeyDialog.h" +#include "ui_HotkeyDialog.h" #include #include HotkeyDialog::HotkeyDialog(QWidget *parent, Hotkey &hotkey) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint), - Ui::HotkeyDialogBase(), + ui{std::make_unique()}, m_Hotkey(hotkey) { - setupUi(this); + ui->setupUi(this); - m_pKeySequenceWidgetHotkey->setText(m_Hotkey.text()); + ui->m_pKeySequenceWidgetHotkey->setText(m_Hotkey.text()); } +HotkeyDialog::~HotkeyDialog() = default; + void HotkeyDialog::accept() { if (!sequenceWidget()->valid()) @@ -39,3 +42,8 @@ void HotkeyDialog::accept() hotkey().setKeySequence(sequenceWidget()->keySequence()); QDialog::accept(); } + +const KeySequenceWidget *HotkeyDialog::sequenceWidget() const +{ + return ui->m_pKeySequenceWidgetHotkey; +} diff --git a/src/gui/src/HotkeyDialog.h b/src/gui/src/HotkeyDialog.h index 5bc490a1e..70893b21f 100644 --- a/src/gui/src/HotkeyDialog.h +++ b/src/gui/src/HotkeyDialog.h @@ -18,16 +18,22 @@ #pragma once #include "Hotkey.h" -#include "ui_HotkeyDialogBase.h" #include -class HotkeyDialog : public QDialog, public Ui::HotkeyDialogBase +class KeySequenceWidget; + +namespace Ui { +class HotkeyDialog; +} + +class HotkeyDialog : public QDialog { Q_OBJECT public: HotkeyDialog(QWidget *parent, Hotkey &hotkey); + ~HotkeyDialog() override; public: const Hotkey &hotkey() const @@ -36,18 +42,17 @@ public: } protected slots: - void accept(); + void accept() override; protected: - const KeySequenceWidget *sequenceWidget() const - { - return m_pKeySequenceWidgetHotkey; - } + const KeySequenceWidget *sequenceWidget() const; + Hotkey &hotkey() { return m_Hotkey; } private: + std::unique_ptr ui; Hotkey &m_Hotkey; }; diff --git a/src/gui/src/HotkeyDialogBase.ui b/src/gui/src/HotkeyDialog.ui similarity index 91% rename from src/gui/src/HotkeyDialogBase.ui rename to src/gui/src/HotkeyDialog.ui index 0ebcb4381..7cb70a1d6 100644 --- a/src/gui/src/HotkeyDialogBase.ui +++ b/src/gui/src/HotkeyDialog.ui @@ -1,7 +1,7 @@ - HotkeyDialogBase - + HotkeyDialog + 0 @@ -48,7 +48,7 @@ buttonBox accepted() - HotkeyDialogBase + HotkeyDialog accept() @@ -64,7 +64,7 @@ buttonBox rejected() - HotkeyDialogBase + HotkeyDialog reject() diff --git a/src/gui/src/ScreenSettingsDialog.cpp b/src/gui/src/ScreenSettingsDialog.cpp index 2bd7e9593..766165cbd 100644 --- a/src/gui/src/ScreenSettingsDialog.cpp +++ b/src/gui/src/ScreenSettingsDialog.cpp @@ -17,6 +17,7 @@ */ #include "ScreenSettingsDialog.h" +#include "ui_ScreenSettingsDialog.h" #include "gui/config/Screen.h" #include "gui/styles.h" @@ -33,68 +34,70 @@ using enum ScreenConfig::Modifier; using enum ScreenConfig::SwitchCorner; using enum ScreenConfig::Fix; +ScreenSettingsDialog::~ScreenSettingsDialog() = default; + ScreenSettingsDialog::ScreenSettingsDialog(QWidget *parent, Screen *pScreen, const ScreenList *pScreens) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint), - Ui::ScreenSettingsDialogBase(), + ui_{std::make_unique()}, m_pScreen(pScreen) { - setupUi(this); + ui_->setupUi(this); - m_pLabelAliasError->setStyleSheet(kStyleErrorActiveLabel); - m_pLabelNameError->setStyleSheet(kStyleErrorActiveLabel); + ui_->m_pLabelAliasError->setStyleSheet(kStyleErrorActiveLabel); + ui_->m_pLabelNameError->setStyleSheet(kStyleErrorActiveLabel); - m_pLineEditName->setText(m_pScreen->name()); - m_pLineEditName->setValidator(new validators::ScreenNameValidator( - m_pLineEditName, new validators::ValidationError(this, m_pLabelNameError), pScreens + ui_->m_pLineEditName->setText(m_pScreen->name()); + ui_->m_pLineEditName->setValidator(new validators::ScreenNameValidator( + ui_->m_pLineEditName, new validators::ValidationError(this, ui_->m_pLabelNameError), pScreens )); - m_pLineEditName->selectAll(); + ui_->m_pLineEditName->selectAll(); - m_pLineEditAlias->setValidator( - new validators::AliasValidator(m_pLineEditAlias, new validators::ValidationError(this, m_pLabelAliasError)) - ); + ui_->m_pLineEditAlias->setValidator(new validators::AliasValidator( + ui_->m_pLineEditAlias, new validators::ValidationError(this, ui_->m_pLabelAliasError) + )); for (int i = 0; i < m_pScreen->aliases().count(); i++) - new QListWidgetItem(m_pScreen->aliases()[i], m_pListAliases); + new QListWidgetItem(m_pScreen->aliases()[i], ui_->m_pListAliases); - m_pComboBoxShift->setCurrentIndex(m_pScreen->modifier(static_cast(Shift))); - m_pComboBoxCtrl->setCurrentIndex(m_pScreen->modifier(static_cast(Ctrl))); - m_pComboBoxAlt->setCurrentIndex(m_pScreen->modifier(static_cast(Alt))); - m_pComboBoxMeta->setCurrentIndex(m_pScreen->modifier(static_cast(Meta))); - m_pComboBoxSuper->setCurrentIndex(m_pScreen->modifier(static_cast(Super))); + ui_->m_pComboBoxShift->setCurrentIndex(m_pScreen->modifier(static_cast(Shift))); + ui_->m_pComboBoxCtrl->setCurrentIndex(m_pScreen->modifier(static_cast(Ctrl))); + ui_->m_pComboBoxAlt->setCurrentIndex(m_pScreen->modifier(static_cast(Alt))); + ui_->m_pComboBoxMeta->setCurrentIndex(m_pScreen->modifier(static_cast(Meta))); + ui_->m_pComboBoxSuper->setCurrentIndex(m_pScreen->modifier(static_cast(Super))); - m_pCheckBoxCornerTopLeft->setChecked(m_pScreen->switchCorner(static_cast(TopLeft))); - m_pCheckBoxCornerTopRight->setChecked(m_pScreen->switchCorner(static_cast(TopRight))); - m_pCheckBoxCornerBottomLeft->setChecked(m_pScreen->switchCorner(static_cast(BottomLeft))); - m_pCheckBoxCornerBottomRight->setChecked(m_pScreen->switchCorner(static_cast(BottomRight))); - m_pSpinBoxSwitchCornerSize->setValue(m_pScreen->switchCornerSize()); + ui_->m_pCheckBoxCornerTopLeft->setChecked(m_pScreen->switchCorner(static_cast(TopLeft))); + ui_->m_pCheckBoxCornerTopRight->setChecked(m_pScreen->switchCorner(static_cast(TopRight))); + ui_->m_pCheckBoxCornerBottomLeft->setChecked(m_pScreen->switchCorner(static_cast(BottomLeft))); + ui_->m_pCheckBoxCornerBottomRight->setChecked(m_pScreen->switchCorner(static_cast(BottomRight))); + ui_->m_pSpinBoxSwitchCornerSize->setValue(m_pScreen->switchCornerSize()); - m_pCheckBoxCapsLock->setChecked(m_pScreen->fix(CapsLock)); - m_pCheckBoxNumLock->setChecked(m_pScreen->fix(NumLock)); - m_pCheckBoxScrollLock->setChecked(m_pScreen->fix(ScrollLock)); - m_pCheckBoxXTest->setChecked(m_pScreen->fix(XTest)); + ui_->m_pCheckBoxCapsLock->setChecked(m_pScreen->fix(CapsLock)); + ui_->m_pCheckBoxNumLock->setChecked(m_pScreen->fix(NumLock)); + ui_->m_pCheckBoxScrollLock->setChecked(m_pScreen->fix(ScrollLock)); + ui_->m_pCheckBoxXTest->setChecked(m_pScreen->fix(XTest)); } void ScreenSettingsDialog::accept() { - if (m_pLineEditName->text().isEmpty()) { + if (ui_->m_pLineEditName->text().isEmpty()) { QMessageBox::warning( this, tr("Screen name is empty"), tr("The screen name cannot be empty. " "Please either fill in a name or cancel the dialog.") ); return; - } else if (!m_pLabelNameError->text().isEmpty()) { + } else if (!ui_->m_pLabelNameError->text().isEmpty()) { return; } m_pScreen->init(); - m_pScreen->setName(m_pLineEditName->text()); + m_pScreen->setName(ui_->m_pLineEditName->text()); - for (int i = 0; i < m_pListAliases->count(); i++) { - QString alias(m_pListAliases->item(i)->text()); - if (alias == m_pLineEditName->text()) { + for (int i = 0; i < ui_->m_pListAliases->count(); i++) { + QString alias(ui_->m_pListAliases->item(i)->text()); + if (alias == ui_->m_pLineEditName->text()) { QMessageBox::warning( this, tr("Screen name matches alias"), tr("The screen name cannot be the same as an alias. " @@ -105,43 +108,43 @@ void ScreenSettingsDialog::accept() m_pScreen->addAlias(alias); } - m_pScreen->setModifier(static_cast(Shift), m_pComboBoxShift->currentIndex()); - m_pScreen->setModifier(static_cast(Ctrl), m_pComboBoxCtrl->currentIndex()); - m_pScreen->setModifier(static_cast(Alt), m_pComboBoxAlt->currentIndex()); - m_pScreen->setModifier(static_cast(Meta), m_pComboBoxMeta->currentIndex()); - m_pScreen->setModifier(static_cast(Super), m_pComboBoxSuper->currentIndex()); + m_pScreen->setModifier(static_cast(Shift), ui_->m_pComboBoxShift->currentIndex()); + m_pScreen->setModifier(static_cast(Ctrl), ui_->m_pComboBoxCtrl->currentIndex()); + m_pScreen->setModifier(static_cast(Alt), ui_->m_pComboBoxAlt->currentIndex()); + m_pScreen->setModifier(static_cast(Meta), ui_->m_pComboBoxMeta->currentIndex()); + m_pScreen->setModifier(static_cast(Super), ui_->m_pComboBoxSuper->currentIndex()); - m_pScreen->setSwitchCorner(static_cast(TopLeft), m_pCheckBoxCornerTopLeft->isChecked()); - m_pScreen->setSwitchCorner(static_cast(TopRight), m_pCheckBoxCornerTopRight->isChecked()); - m_pScreen->setSwitchCorner(static_cast(BottomLeft), m_pCheckBoxCornerBottomLeft->isChecked()); - m_pScreen->setSwitchCorner(static_cast(BottomRight), m_pCheckBoxCornerBottomRight->isChecked()); - m_pScreen->setSwitchCornerSize(m_pSpinBoxSwitchCornerSize->value()); + m_pScreen->setSwitchCorner(static_cast(TopLeft), ui_->m_pCheckBoxCornerTopLeft->isChecked()); + m_pScreen->setSwitchCorner(static_cast(TopRight), ui_->m_pCheckBoxCornerTopRight->isChecked()); + m_pScreen->setSwitchCorner(static_cast(BottomLeft), ui_->m_pCheckBoxCornerBottomLeft->isChecked()); + m_pScreen->setSwitchCorner(static_cast(BottomRight), ui_->m_pCheckBoxCornerBottomRight->isChecked()); + m_pScreen->setSwitchCornerSize(ui_->m_pSpinBoxSwitchCornerSize->value()); - m_pScreen->setFix(static_cast(CapsLock), m_pCheckBoxCapsLock->isChecked()); - m_pScreen->setFix(static_cast(NumLock), m_pCheckBoxNumLock->isChecked()); - m_pScreen->setFix(static_cast(ScrollLock), m_pCheckBoxScrollLock->isChecked()); - m_pScreen->setFix(static_cast(XTest), m_pCheckBoxXTest->isChecked()); + m_pScreen->setFix(static_cast(CapsLock), ui_->m_pCheckBoxCapsLock->isChecked()); + m_pScreen->setFix(static_cast(NumLock), ui_->m_pCheckBoxNumLock->isChecked()); + m_pScreen->setFix(static_cast(ScrollLock), ui_->m_pCheckBoxScrollLock->isChecked()); + m_pScreen->setFix(static_cast(XTest), ui_->m_pCheckBoxXTest->isChecked()); QDialog::accept(); } void ScreenSettingsDialog::on_m_pButtonAddAlias_clicked() { - if (!m_pLineEditAlias->text().isEmpty() && - m_pListAliases->findItems(m_pLineEditAlias->text(), Qt::MatchFixedString).isEmpty()) { - new QListWidgetItem(m_pLineEditAlias->text(), m_pListAliases); - m_pLineEditAlias->clear(); + if (!ui_->m_pLineEditAlias->text().isEmpty() && + ui_->m_pListAliases->findItems(ui_->m_pLineEditAlias->text(), Qt::MatchFixedString).isEmpty()) { + new QListWidgetItem(ui_->m_pLineEditAlias->text(), ui_->m_pListAliases); + ui_->m_pLineEditAlias->clear(); } } void ScreenSettingsDialog::on_m_pLineEditAlias_textChanged(const QString &text) { - m_pButtonAddAlias->setEnabled(!text.isEmpty() && m_pLabelAliasError->text().isEmpty()); + ui_->m_pButtonAddAlias->setEnabled(!text.isEmpty() && ui_->m_pLabelAliasError->text().isEmpty()); } void ScreenSettingsDialog::on_m_pButtonRemoveAlias_clicked() { - QList items = m_pListAliases->selectedItems(); + QList items = ui_->m_pListAliases->selectedItems(); for (int i = 0; i < items.count(); i++) delete items[i]; @@ -149,5 +152,5 @@ void ScreenSettingsDialog::on_m_pButtonRemoveAlias_clicked() void ScreenSettingsDialog::on_m_pListAliases_itemSelectionChanged() { - m_pButtonRemoveAlias->setEnabled(!m_pListAliases->selectedItems().isEmpty()); + ui_->m_pButtonRemoveAlias->setEnabled(!ui_->m_pListAliases->selectedItems().isEmpty()); } diff --git a/src/gui/src/ScreenSettingsDialog.h b/src/gui/src/ScreenSettingsDialog.h index 1200bae13..536546a89 100644 --- a/src/gui/src/ScreenSettingsDialog.h +++ b/src/gui/src/ScreenSettingsDialog.h @@ -20,23 +20,26 @@ #include -#include "ui_ScreenSettingsDialogBase.h" - class QWidget; class QString; class Screen; class ScreenList; -class ScreenSettingsDialog : public QDialog, public Ui::ScreenSettingsDialogBase +namespace Ui { +class ScreenSettingsDialog; +} + +class ScreenSettingsDialog : public QDialog { Q_OBJECT public: ScreenSettingsDialog(QWidget *parent, Screen *pScreen = nullptr, const ScreenList *pScreens = nullptr); + ~ScreenSettingsDialog() override; public slots: - void accept(); + void accept() override; private slots: void on_m_pButtonAddAlias_clicked(); @@ -45,5 +48,6 @@ private slots: void on_m_pListAliases_itemSelectionChanged(); private: + std::unique_ptr ui_; Screen *m_pScreen; }; diff --git a/src/gui/src/ScreenSettingsDialogBase.ui b/src/gui/src/ScreenSettingsDialog.ui similarity index 99% rename from src/gui/src/ScreenSettingsDialogBase.ui rename to src/gui/src/ScreenSettingsDialog.ui index 4262e3fdc..f51118060 100644 --- a/src/gui/src/ScreenSettingsDialogBase.ui +++ b/src/gui/src/ScreenSettingsDialog.ui @@ -1,7 +1,7 @@ - ScreenSettingsDialogBase - + ScreenSettingsDialog + 0 @@ -942,7 +942,7 @@ m_pButtonBox accepted() - ScreenSettingsDialogBase + ScreenSettingsDialog accept() @@ -958,7 +958,7 @@ m_pButtonBox rejected() - ScreenSettingsDialogBase + ScreenSettingsDialog reject()