sdext/source/minimizer/optimizerdialog.cxx | 30 +++++++++++++++++++---------- sdext/source/minimizer/optimizerdialog.hxx | 28 +++++++++++++++++---------- 2 files changed, 38 insertions(+), 20 deletions(-)
New commits: commit c13bd9d995d82a4f35122fbf1a99516799e83819 Author: Caolán McNamara <caolan.mcnam...@collabora.com> AuthorDate: Thu Jul 11 14:37:31 2024 +0100 Commit: Adolfo Jayme Barrientos <fit...@ubuntu.com> CommitDate: Sat Jul 13 21:13:22 2024 +0200 Resolves: tdf#161965 missing UpdateControlStates on page switch since: commit a70ad1568ea0fb5b4d7f888fb56fcee130afc433 Date: Mon Dec 5 11:44:48 2022 +0000 Resolves: tdf#121297 weld Presentation Minimizer Change-Id: Ibe28ba79d958d306440807adec9c5bbb64a8801d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170348 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com> diff --git a/sdext/source/minimizer/optimizerdialog.cxx b/sdext/source/minimizer/optimizerdialog.cxx index 8c85d14fcaec..fc51677a2f00 100644 --- a/sdext/source/minimizer/optimizerdialog.cxx +++ b/sdext/source/minimizer/optimizerdialog.cxx @@ -52,9 +52,23 @@ using namespace ::com::sun::star::util; using namespace ::com::sun::star::frame; using namespace ::com::sun::star::beans; -IntroPage::IntroPage(weld::Container* pPage, OptimizerDialog& rOptimizerDialog) - : vcl::OWizardPage(pPage, &rOptimizerDialog, u"modules/simpress/ui/pmintropage.ui"_ustr, u"PMIntroPage"_ustr) +OptimizedDialogPage::OptimizedDialogPage(weld::Container* pPage, OptimizerDialog& rOptimizerDialog, + const OUString& rUIXMLDescription, const OUString& rID, + int nPageNum) + : vcl::OWizardPage(pPage, &rOptimizerDialog, rUIXMLDescription, rID) , mrOptimizerDialog(rOptimizerDialog) + , m_nPageNum(nPageNum) +{ +} + +void OptimizedDialogPage::Activate() +{ + vcl::OWizardPage::Activate(); + mrOptimizerDialog.UpdateControlStates(m_nPageNum); +} + +IntroPage::IntroPage(weld::Container* pPage, OptimizerDialog& rOptimizerDialog) + : OptimizedDialogPage(pPage, rOptimizerDialog, u"modules/simpress/ui/pmintropage.ui"_ustr, u"PMIntroPage"_ustr, 0) , mxComboBox(m_xBuilder->weld_combo_box(u"LB_SETTINGS"_ustr)) , mxButton(m_xBuilder->weld_button(u"STR_REMOVE"_ustr)) { @@ -73,8 +87,7 @@ void IntroPage::UpdateControlStates(const std::vector<OUString>& rItemList, int } SlidesPage::SlidesPage(weld::Container* pPage, OptimizerDialog& rOptimizerDialog) - : vcl::OWizardPage(pPage, &rOptimizerDialog, u"modules/simpress/ui/pmslidespage.ui"_ustr, u"PMSlidesPage"_ustr) - , mrOptimizerDialog(rOptimizerDialog) + : OptimizedDialogPage(pPage, rOptimizerDialog, u"modules/simpress/ui/pmslidespage.ui"_ustr, u"PMSlidesPage"_ustr, 1) , mxMasterSlides(m_xBuilder->weld_check_button(u"STR_DELETE_MASTER_PAGES"_ustr)) , mxHiddenSlides(m_xBuilder->weld_check_button(u"STR_DELETE_HIDDEN_SLIDES"_ustr)) , mxUnusedSlides(m_xBuilder->weld_check_button(u"STR_CUSTOM_SHOW"_ustr)) @@ -105,8 +118,7 @@ void SlidesPage::UpdateControlStates(bool bDeleteUnusedMasterPages, bool bDelete } ImagesPage::ImagesPage(weld::Container* pPage, OptimizerDialog& rOptimizerDialog) - : vcl::OWizardPage(pPage, &rOptimizerDialog, u"modules/simpress/ui/pmimagespage.ui"_ustr, u"PMImagesPage"_ustr) - , mrOptimizerDialog(rOptimizerDialog) + : OptimizedDialogPage(pPage, rOptimizerDialog, u"modules/simpress/ui/pmimagespage.ui"_ustr, u"PMImagesPage"_ustr, 2) , m_xLossLessCompression(m_xBuilder->weld_radio_button(u"STR_LOSSLESS_COMPRESSION"_ustr)) , m_xQualityLabel(m_xBuilder->weld_label(u"STR_QUALITY"_ustr)) , m_xQuality(m_xBuilder->weld_spin_button(u"SB_QUALITY"_ustr)) @@ -139,8 +151,7 @@ void ImagesPage::UpdateControlStates(bool bJPEGCompression, int nJPEGQuality, bo } ObjectsPage::ObjectsPage(weld::Container* pPage, OptimizerDialog& rOptimizerDialog) - : vcl::OWizardPage(pPage, &rOptimizerDialog, u"modules/simpress/ui/pmobjectspage.ui"_ustr, u"PMObjectsPage"_ustr) - , mrOptimizerDialog(rOptimizerDialog) + : OptimizedDialogPage(pPage, rOptimizerDialog, u"modules/simpress/ui/pmobjectspage.ui"_ustr, u"PMObjectsPage"_ustr, 3) , m_xCreateStaticImage(m_xBuilder->weld_check_button(u"STR_OLE_REPLACE"_ustr)) , m_xAllOLEObjects(m_xBuilder->weld_radio_button(u"STR_ALL_OLE_OBJECTS"_ustr)) , m_xForeignOLEObjects(m_xBuilder->weld_radio_button(u"STR_ALIEN_OLE_OBJECTS_ONLY"_ustr)) @@ -167,8 +178,7 @@ void ObjectsPage::UpdateControlStates(bool bConvertOLEObjects, int nOLEOptimizat } SummaryPage::SummaryPage(weld::Container* pPage, OptimizerDialog& rOptimizerDialog) - : vcl::OWizardPage(pPage, &rOptimizerDialog, u"modules/simpress/ui/pmsummarypage.ui"_ustr, u"PMSummaryPage"_ustr) - , mrOptimizerDialog(rOptimizerDialog) + : OptimizedDialogPage(pPage, rOptimizerDialog, u"modules/simpress/ui/pmsummarypage.ui"_ustr, u"PMSummaryPage"_ustr, 4) , m_xLabel1(m_xBuilder->weld_label(u"LABEL1"_ustr)) , m_xLabel2(m_xBuilder->weld_label(u"LABEL2"_ustr)) , m_xLabel3(m_xBuilder->weld_label(u"LABEL3"_ustr)) diff --git a/sdext/source/minimizer/optimizerdialog.hxx b/sdext/source/minimizer/optimizerdialog.hxx index 88c01b54300b..f095ccf0556f 100644 --- a/sdext/source/minimizer/optimizerdialog.hxx +++ b/sdext/source/minimizer/optimizerdialog.hxx @@ -47,10 +47,22 @@ class OptimizerDialog; -class IntroPage : public vcl::OWizardPage +class OptimizedDialogPage : public vcl::OWizardPage { -private: +protected: OptimizerDialog& mrOptimizerDialog; +private: + int m_nPageNum; +public: + OptimizedDialogPage(weld::Container* pPage, OptimizerDialog& rOptimizerDialog, + const OUString& rUIXMLDescription, const OUString& rID, + int nPageNum); + virtual void Activate() override; +}; + +class IntroPage : public OptimizedDialogPage +{ +private: std::unique_ptr<weld::ComboBox> mxComboBox; std::unique_ptr<weld::Button> mxButton; @@ -66,10 +78,9 @@ public: } }; -class SlidesPage : public vcl::OWizardPage +class SlidesPage : public OptimizedDialogPage { private: - OptimizerDialog& mrOptimizerDialog; std::unique_ptr<weld::CheckButton> mxMasterSlides; std::unique_ptr<weld::CheckButton> mxHiddenSlides; std::unique_ptr<weld::CheckButton> mxUnusedSlides; @@ -93,10 +104,9 @@ public: } }; -class ImagesPage : public vcl::OWizardPage +class ImagesPage : public OptimizedDialogPage { private: - OptimizerDialog& mrOptimizerDialog; std::unique_ptr<weld::RadioButton> m_xLossLessCompression; std::unique_ptr<weld::Label> m_xQualityLabel; std::unique_ptr<weld::SpinButton> m_xQuality; @@ -118,10 +128,9 @@ public: int nResolution, bool bEmbedLinkedGraphics); }; -class ObjectsPage : public vcl::OWizardPage +class ObjectsPage : public OptimizedDialogPage { private: - OptimizerDialog& mrOptimizerDialog; std::unique_ptr<weld::CheckButton> m_xCreateStaticImage; std::unique_ptr<weld::RadioButton> m_xAllOLEObjects; std::unique_ptr<weld::RadioButton> m_xForeignOLEObjects; @@ -138,10 +147,9 @@ public: void UpdateControlStates(bool bConvertOLEObjects, int nOLEOptimizationType); }; -class SummaryPage : public vcl::OWizardPage +class SummaryPage : public OptimizedDialogPage { private: - OptimizerDialog& mrOptimizerDialog; std::unique_ptr<weld::Label> m_xLabel1; std::unique_ptr<weld::Label> m_xLabel2; std::unique_ptr<weld::Label> m_xLabel3;