From 597cdd9e03751e929527d57c03f7e14472dde052 Mon Sep 17 00:00:00 2001 From: Nodir Temirkhodjaev Date: Wed, 22 Jan 2020 18:04:46 +0500 Subject: [PATCH] UI: OptionsWindow: Fix conf usage after applying changes. --- src/ui/form/opt/pages/addressespage.cpp | 20 ++++++++++++----- src/ui/form/opt/pages/addressespage.h | 9 +++++--- src/ui/form/opt/pages/applicationspage.cpp | 26 +++++++++++++++------- src/ui/form/opt/pages/applicationspage.h | 9 +++++--- 4 files changed, 45 insertions(+), 19 deletions(-) diff --git a/src/ui/form/opt/pages/addressespage.cpp b/src/ui/form/opt/pages/addressespage.cpp index 9979c76d0..9460ea3c7 100644 --- a/src/ui/form/opt/pages/addressespage.cpp +++ b/src/ui/form/opt/pages/addressespage.cpp @@ -28,10 +28,15 @@ AddressesPage::AddressesPage(OptionsController *ctrl, setupAddressGroup(); } -void AddressesPage::setAddressGroup(AddressGroup *v) +AddressGroup *AddressesPage::addressGroup() const { - if (m_addressGroup != v) { - m_addressGroup = v; + return addressGroupByIndex(addressGroupIndex()); +} + +void AddressesPage::setAddressGroupIndex(int v) +{ + if (m_addressGroupIndex != v) { + m_addressGroupIndex = v; emit addressGroupChanged(); } } @@ -197,7 +202,7 @@ void AddressesPage::setupAddressGroup() const auto refreshAddressGroup = [&] { const int tabIndex = m_tabBar->currentIndex(); - setAddressGroup(addressGroupByIndex(tabIndex)); + setAddressGroupIndex(tabIndex); }; refreshAddressGroup(); @@ -205,7 +210,12 @@ void AddressesPage::setupAddressGroup() connect(m_tabBar, &QTabBar::currentChanged, this, refreshAddressGroup); } +const QList &AddressesPage::addressGroups() const +{ + return conf()->addressGroups(); +} + AddressGroup *AddressesPage::addressGroupByIndex(int index) const { - return conf()->addressGroups().at(index); + return addressGroups().at(index); } diff --git a/src/ui/form/opt/pages/addressespage.h b/src/ui/form/opt/pages/addressespage.h index b73213204..1930245e8 100644 --- a/src/ui/form/opt/pages/addressespage.h +++ b/src/ui/form/opt/pages/addressespage.h @@ -14,8 +14,10 @@ class AddressesPage : public BasePage explicit AddressesPage(OptionsController *ctrl = nullptr, QWidget *parent = nullptr); - AddressGroup *addressGroup() const { return m_addressGroup; } - void setAddressGroup(AddressGroup *v); + AddressGroup *addressGroup() const; + + int addressGroupIndex() const { return m_addressGroupIndex; } + void setAddressGroupIndex(int v); signals: void addressGroupChanged(); @@ -37,10 +39,11 @@ protected slots: void updateGroup(); void setupAddressGroup(); + const QList &addressGroups() const; AddressGroup *addressGroupByIndex(int index) const; private: - AddressGroup *m_addressGroup = nullptr; + int m_addressGroupIndex = -1; QTabBar *m_tabBar = nullptr; AddressesColumn *m_includeAddresses = nullptr; diff --git a/src/ui/form/opt/pages/applicationspage.cpp b/src/ui/form/opt/pages/applicationspage.cpp index 7ea8e6642..a7c8e3050 100644 --- a/src/ui/form/opt/pages/applicationspage.cpp +++ b/src/ui/form/opt/pages/applicationspage.cpp @@ -44,10 +44,15 @@ ApplicationsPage::ApplicationsPage(OptionsController *ctrl, setupAppGroup(); } -void ApplicationsPage::setAppGroup(AppGroup *v) +AppGroup *ApplicationsPage::appGroup() const { - if (m_appGroup != v) { - m_appGroup = v; + return appGroupByIndex(appGroupIndex()); +} + +void ApplicationsPage::setAppGroupIndex(int v) +{ + if (m_appGroupIndex != v) { + m_appGroupIndex = v; emit appGroupChanged(); } } @@ -253,7 +258,7 @@ void ApplicationsPage::setupTabBar() m_tabBar->setTabsClosable(true); m_tabBar->setMovable(true); - for (const auto appGroup : conf()->appGroups()) { + for (const auto appGroup : appGroups()) { addTab(appGroup->name()); } @@ -264,7 +269,7 @@ void ApplicationsPage::setupTabBar() m_tabBar->removeTab(index); } else { // Reset alone tab to default one - setAppGroup(appGroupByIndex(0)); + setAppGroupIndex(0); m_tabBar->setTabText(0, appGroup()->name()); } @@ -532,7 +537,7 @@ void ApplicationsPage::setupAppGroup() const auto refreshAppGroup = [&] { const int tabIndex = m_tabBar->currentIndex(); - setAppGroup(appGroupByIndex(tabIndex)); + setAppGroupIndex(tabIndex); }; refreshAppGroup(); @@ -540,14 +545,19 @@ void ApplicationsPage::setupAppGroup() connect(m_tabBar, &QTabBar::currentChanged, this, refreshAppGroup); } +const QList &ApplicationsPage::appGroups() const +{ + return conf()->appGroups(); +} + int ApplicationsPage::appGroupsCount() const { - return conf()->appGroups().size(); + return appGroups().size(); } AppGroup *ApplicationsPage::appGroupByIndex(int index) const { - return conf()->appGroups().at(index); + return appGroups().at(index); } void ApplicationsPage::resetGroupName() diff --git a/src/ui/form/opt/pages/applicationspage.h b/src/ui/form/opt/pages/applicationspage.h index ae280cbf9..26e756817 100644 --- a/src/ui/form/opt/pages/applicationspage.h +++ b/src/ui/form/opt/pages/applicationspage.h @@ -18,8 +18,10 @@ class ApplicationsPage : public BasePage explicit ApplicationsPage(OptionsController *ctrl = nullptr, QWidget *parent = nullptr); - AppGroup *appGroup() const { return m_appGroup; } - void setAppGroup(AppGroup *v); + AppGroup *appGroup() const; + + int appGroupIndex() const { return m_appGroupIndex; } + void setAppGroupIndex(int v); signals: void appGroupChanged(); @@ -56,6 +58,7 @@ protected slots: void updateGroup(); void setupAppGroup(); + const QList &appGroups() const; int appGroupsCount() const; AppGroup *appGroupByIndex(int index) const; void resetGroupName(); @@ -65,7 +68,7 @@ protected slots: static QString formatSpeed(int kbytes); private: - AppGroup *m_appGroup = nullptr; + int m_appGroupIndex = -1; QLineEdit *m_editGroupName = nullptr; QPushButton *m_btAddGroup = nullptr;