From 25b15e3235069265a7f18816cd4705589d5e41ba Mon Sep 17 00:00:00 2001 From: ali kettab Date: Sat, 26 Nov 2022 23:04:43 +0100 Subject: [PATCH 1/2] Override OnImagesChanged() to show images set with SetImages() in wxNotebook for wxQt --- include/wx/qt/notebook.h | 2 ++ src/qt/notebook.cpp | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/include/wx/qt/notebook.h b/include/wx/qt/notebook.h index d8f012699e..5fd7de7f84 100644 --- a/include/wx/qt/notebook.h +++ b/include/wx/qt/notebook.h @@ -52,6 +52,8 @@ public: protected: virtual wxWindow *DoRemovePage(size_t page) override; + virtual void OnImagesChanged() override; + private: QTabWidget *m_qtTabWidget; diff --git a/src/qt/notebook.cpp b/src/qt/notebook.cpp index 7c78615d57..8c70c323f7 100644 --- a/src/qt/notebook.cpp +++ b/src/qt/notebook.cpp @@ -127,6 +127,19 @@ bool wxNotebook::SetPageImage(size_t n, int imageId) return true; } +void wxNotebook::OnImagesChanged() +{ + if ( HasImages() ) + { + wxImageList* const imageList = GetUpdatedImageListFor(this); + + int width, height; + imageList->GetSize(0, width, height); + m_qtTabWidget->setIconSize(QSize(width, height)); + m_qtTabWidget->update(); + } +} + bool wxNotebook::InsertPage(size_t n, wxWindow *page, const wxString& text, bool bSelect, int imageId) { From 01029cc4389bbc3258ce9ec6fb9e32956843f709 Mon Sep 17 00:00:00 2001 From: ali kettab Date: Sat, 26 Nov 2022 23:29:14 +0100 Subject: [PATCH 2/2] Added support for wxNotebook tab position missing in wxQt --- src/qt/notebook.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/qt/notebook.cpp b/src/qt/notebook.cpp index 8c70c323f7..dbd3fc601f 100644 --- a/src/qt/notebook.cpp +++ b/src/qt/notebook.cpp @@ -75,7 +75,17 @@ bool wxNotebook::Create(wxWindow *parent, { m_qtTabWidget = new wxQtTabWidget( parent, this ); - return QtCreateControl( parent, id, pos, size, style, wxDefaultValidator, name ); + if ( !QtCreateControl( parent, id, pos, size, style, wxDefaultValidator, name ) ) + return false; + + if ( m_windowStyle & wxBK_RIGHT ) + m_qtTabWidget->setTabPosition( QTabWidget::East ); + else if ( m_windowStyle & wxBK_LEFT ) + m_qtTabWidget->setTabPosition( QTabWidget::West ); + else if ( m_windowStyle & wxBK_BOTTOM ) + m_qtTabWidget->setTabPosition( QTabWidget::South ); + + return true; } void wxNotebook::SetPadding(const wxSize& WXUNUSED(padding))