From 665b5a76a88b0db8ee04103ce1005e9cd239c5e4 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 28 Jan 2019 17:51:27 +0100 Subject: [PATCH] Remove unnecessary wxNotebook::DoSetSelection() from wxQt Having this method didn't really help, it's simpler and more straightforward to implement ChangeSelection() as a signal-blocking wrapper around SetSelection() instead. No real changes in behaviour, this is a pure refactoring. --- include/wx/qt/notebook.h | 5 ++--- src/qt/notebook.cpp | 24 ++++++++++++++---------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/include/wx/qt/notebook.h b/include/wx/qt/notebook.h index 288d0d9a7f..0dd81175c1 100644 --- a/include/wx/qt/notebook.h +++ b/include/wx/qt/notebook.h @@ -42,14 +42,13 @@ public: virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const; - int SetSelection(size_t nPage) { return DoSetSelection(nPage, SetSelection_SendEvent); } - int ChangeSelection(size_t nPage) { return DoSetSelection(nPage); } + int SetSelection(size_t nPage); + int ChangeSelection(size_t nPage); virtual QWidget *GetHandle() const; protected: virtual wxWindow *DoRemovePage(size_t page); - int DoSetSelection(size_t nPage, int flags = 0); private: QTabWidget *m_qtTabWidget; diff --git a/src/qt/notebook.cpp b/src/qt/notebook.cpp index 27d4ce7387..029716ada7 100644 --- a/src/qt/notebook.cpp +++ b/src/qt/notebook.cpp @@ -169,27 +169,31 @@ wxSize wxNotebook::CalcSizeFromPage(const wxSize& sizePage) const return sizePage; } -int wxNotebook::DoSetSelection(size_t page, int flags) +int wxNotebook::SetSelection(size_t page) { wxCHECK_MSG(page < GetPageCount(), wxNOT_FOUND, "invalid notebook index"); int selOld = GetSelection(); - // do not fire signals for certain methods (i.e. ChangeSelection - if ( !(flags & SetSelection_SendEvent) ) - { - m_qtTabWidget->blockSignals(true); - } // change the QTabWidget selected page: m_selection = page; m_qtTabWidget->setCurrentIndex( page ); - if ( !(flags & SetSelection_SendEvent) ) - { - m_qtTabWidget->blockSignals(false); - } + return selOld; } +int wxNotebook::ChangeSelection(size_t nPage) +{ + // ChangeSelection() is not supposed to generate events, unlike + // SetSelection(). + m_qtTabWidget->blockSignals(true); + + const int selOld = SetSelection(nPage); + + m_qtTabWidget->blockSignals(false); + + return selOld; +} wxWindow *wxNotebook::DoRemovePage(size_t page) {