From 55e845edf84935e5f15f1dc1b164d4aa228a4723 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Thu, 26 Sep 2019 16:13:23 +1000 Subject: [PATCH] revised preferences dialog design --- app/dialog/preferences/preferences.cpp | 22 ++++++++++++++----- app/dialog/preferences/preferences.h | 6 ++++- .../tabs/preferencesappearancetab.cpp | 1 + .../preferences/tabs/preferencesaudiotab.cpp | 1 + .../tabs/preferencesbehaviortab.cpp | 1 + .../tabs/preferencescolormanagementtab.cpp | 1 + .../tabs/preferencesgeneraltab.cpp | 1 + .../tabs/preferenceskeyboardtab.cpp | 1 + 8 files changed, 28 insertions(+), 6 deletions(-) diff --git a/app/dialog/preferences/preferences.cpp b/app/dialog/preferences/preferences.cpp index 8749075f6..bf48487f9 100644 --- a/app/dialog/preferences/preferences.cpp +++ b/app/dialog/preferences/preferences.cpp @@ -21,6 +21,8 @@ #include "preferences.h" #include +#include +#include #include #include "config/config.h" @@ -37,8 +39,14 @@ PreferencesDialog::PreferencesDialog(QWidget *parent, QMenuBar* main_menu_bar) : { setWindowTitle(tr("Preferences")); - QVBoxLayout* verticalLayout = new QVBoxLayout(this); - tab_widget_ = new QTabWidget(this); + QVBoxLayout* layout = new QVBoxLayout(this); + + QSplitter* splitter = new QSplitter(); + layout->addWidget(splitter); + + list_widget_ = new QListWidget(); + + preference_pane_stack_ = new QStackedWidget(this); AddTab(new PreferencesGeneralTab(), tr("General")); AddTab(new PreferencesAppearanceTab(), tr("Appearance")); @@ -48,17 +56,20 @@ PreferencesDialog::PreferencesDialog(QWidget *parent, QMenuBar* main_menu_bar) : AddTab(new PreferencesAudioTab(), tr("Audio")); AddTab(new PreferencesKeyboardTab(main_menu_bar), tr("Keyboard")); - verticalLayout->addWidget(tab_widget_); + splitter->addWidget(list_widget_); + splitter->addWidget(preference_pane_stack_); QDialogButtonBox* buttonBox = new QDialogButtonBox(this); buttonBox->setOrientation(Qt::Horizontal); buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok); - verticalLayout->addWidget(buttonBox); + layout->addWidget(buttonBox); connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept())); connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); + connect(list_widget_, SIGNAL(currentRowChanged(int)), preference_pane_stack_, SLOT(setCurrentIndex(int))); + // set up default sequence /*default_sequence.set_name(tr("Default Sequence")); default_sequence.set_width(olive::config.default_sequence_width); @@ -329,7 +340,8 @@ void PreferencesDialog::accept() void PreferencesDialog::AddTab(PreferencesTab *tab, const QString &title) { - tab_widget_->addTab(tab, title); + list_widget_->addItem(title); + preference_pane_stack_->addWidget(tab); tabs_.append(tab); } diff --git a/app/dialog/preferences/preferences.h b/app/dialog/preferences/preferences.h index 15d2fc4ca..5e44c43bb 100644 --- a/app/dialog/preferences/preferences.h +++ b/app/dialog/preferences/preferences.h @@ -23,7 +23,9 @@ #include #include +#include #include +#include #include #include "tabs/preferencestab.h" @@ -57,7 +59,9 @@ private slots: private: void AddTab(PreferencesTab* tab, const QString& title); - QTabWidget* tab_widget_; + QListWidget* list_widget_; + + QStackedWidget* preference_pane_stack_; QList tabs_; diff --git a/app/dialog/preferences/tabs/preferencesappearancetab.cpp b/app/dialog/preferences/tabs/preferencesappearancetab.cpp index 8bc2d08ed..ec9f808d8 100644 --- a/app/dialog/preferences/tabs/preferencesappearancetab.cpp +++ b/app/dialog/preferences/tabs/preferencesappearancetab.cpp @@ -8,6 +8,7 @@ PreferencesAppearanceTab::PreferencesAppearanceTab() { QVBoxLayout* layout = new QVBoxLayout(this); + layout->setMargin(0); QGridLayout* appearance_layout = new QGridLayout(); layout->addLayout(appearance_layout); diff --git a/app/dialog/preferences/tabs/preferencesaudiotab.cpp b/app/dialog/preferences/tabs/preferencesaudiotab.cpp index 66d7ac317..f5ddfacff 100644 --- a/app/dialog/preferences/tabs/preferencesaudiotab.cpp +++ b/app/dialog/preferences/tabs/preferencesaudiotab.cpp @@ -9,6 +9,7 @@ PreferencesAudioTab::PreferencesAudioTab() { QGridLayout* audio_tab_layout = new QGridLayout(this); + audio_tab_layout->setMargin(0); int row = 0; diff --git a/app/dialog/preferences/tabs/preferencesbehaviortab.cpp b/app/dialog/preferences/tabs/preferencesbehaviortab.cpp index 3d140965e..32aa493ab 100644 --- a/app/dialog/preferences/tabs/preferencesbehaviortab.cpp +++ b/app/dialog/preferences/tabs/preferencesbehaviortab.cpp @@ -6,6 +6,7 @@ PreferencesBehaviorTab::PreferencesBehaviorTab() { QVBoxLayout* layout = new QVBoxLayout(this); + layout->setMargin(0); behavior_tree_ = new QTreeWidget(); layout->addWidget(behavior_tree_); diff --git a/app/dialog/preferences/tabs/preferencescolormanagementtab.cpp b/app/dialog/preferences/tabs/preferencescolormanagementtab.cpp index 5e9ea1b95..90162f2e9 100644 --- a/app/dialog/preferences/tabs/preferencescolormanagementtab.cpp +++ b/app/dialog/preferences/tabs/preferencescolormanagementtab.cpp @@ -11,6 +11,7 @@ PreferencesColorManagementTab::PreferencesColorManagementTab() { QGridLayout* color_management_layout = new QGridLayout(this); + color_management_layout->setMargin(0); int row = 0; diff --git a/app/dialog/preferences/tabs/preferencesgeneraltab.cpp b/app/dialog/preferences/tabs/preferencesgeneraltab.cpp index e90985b88..a03362062 100644 --- a/app/dialog/preferences/tabs/preferencesgeneraltab.cpp +++ b/app/dialog/preferences/tabs/preferencesgeneraltab.cpp @@ -9,6 +9,7 @@ PreferencesGeneralTab::PreferencesGeneralTab() { QVBoxLayout* layout = new QVBoxLayout(this); + layout->setMargin(0); QGridLayout* general_layout = new QGridLayout(); layout->addLayout(general_layout); diff --git a/app/dialog/preferences/tabs/preferenceskeyboardtab.cpp b/app/dialog/preferences/tabs/preferenceskeyboardtab.cpp index 9de22cd1c..d5d8143d9 100644 --- a/app/dialog/preferences/tabs/preferenceskeyboardtab.cpp +++ b/app/dialog/preferences/tabs/preferenceskeyboardtab.cpp @@ -10,6 +10,7 @@ PreferencesKeyboardTab::PreferencesKeyboardTab(QMenuBar *menubar) { QVBoxLayout* shortcut_layout = new QVBoxLayout(this); + shortcut_layout->setMargin(0); QLineEdit* key_search_line = new QLineEdit(); key_search_line->setPlaceholderText(tr("Search for action or shortcut"));