From dcf506e3d75128f37b5503117deec68a4e442f7e Mon Sep 17 00:00:00 2001 From: mlangkabel Date: Fri, 8 Jun 2018 14:43:47 +0200 Subject: [PATCH] ui: fixed selected source group changed in project settings list even if not allowed because content has become invalid --- .../window/project_wizzard/QtProjectWizzard.cpp | 15 +++++++++++++++ .../qt/window/project_wizzard/QtProjectWizzard.h | 1 + 2 files changed, 16 insertions(+) diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzard.cpp b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzard.cpp index aa464f6d..52b41576 100644 --- a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzard.cpp +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzard.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "qt/window/project_wizzard/QtProjectWizzardContent.h" #include "qt/window/project_wizzard/QtProjectWizzardContentCppStandard.h" @@ -46,6 +47,7 @@ QtProjectWizzard::QtProjectWizzard(QWidget* parent) , m_windowStack(this) , m_editing(false) , m_contentWidget(nullptr) + , m_previouslySelectedIndex(-1) { setScrollAble(true); @@ -377,6 +379,8 @@ void QtProjectWizzard::generalButtonClicked() loadContent(); + m_previouslySelectedIndex = -1; + m_generalButton->setChecked(true); m_sourceGroupList->setCurrentRow(-1); } @@ -390,8 +394,17 @@ void QtProjectWizzard::selectedSourceGroupChanged(int index) return; } + if (index == m_previouslySelectedIndex) + { + return; + } + if (!canExitContent()) { + QTimer::singleShot(1, [&]() { + m_sourceGroupList->setCurrentRow(m_previouslySelectedIndex); + }); + return; } @@ -535,6 +548,8 @@ void QtProjectWizzard::selectedSourceGroupChanged(int index) QtProjectWizzardWindow::populateWindow(m_contentWidget); loadContent(); + + m_previouslySelectedIndex = index; } void QtProjectWizzard::selectedSourceGroupNameChanged(QString name) diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzard.h b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzard.h index 102b4855..51dc3764 100644 --- a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzard.h +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzard.h @@ -60,6 +60,7 @@ private: ApplicationSettings m_appSettings; bool m_editing; + int m_previouslySelectedIndex; QPushButton* m_generalButton; QPushButton* m_removeButton;