diff options
Diffstat (limited to 'sdext/source/minimizer/optimizerdialog.hxx')
-rw-r--r-- | sdext/source/minimizer/optimizerdialog.hxx | 258 |
1 files changed, 149 insertions, 109 deletions
diff --git a/sdext/source/minimizer/optimizerdialog.hxx b/sdext/source/minimizer/optimizerdialog.hxx index 4ea28eb7590a..2e9ad3fd5bca 100644 --- a/sdext/source/minimizer/optimizerdialog.hxx +++ b/sdext/source/minimizer/optimizerdialog.hxx @@ -17,19 +17,17 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#ifndef INCLUDED_SDEXT_SOURCE_MINIMIZER_OPTIMIZERDIALOG_HXX -#define INCLUDED_SDEXT_SOURCE_MINIMIZER_OPTIMIZERDIALOG_HXX +#pragma once + #include <vector> #include "unodialog.hxx" #include "optimizationstats.hxx" #include "configurationaccess.hxx" -#include <com/sun/star/awt/XItemListener.hpp> -#include <com/sun/star/awt/XSpinListener.hpp> -#include <com/sun/star/awt/XTextListener.hpp> #include <com/sun/star/uno/Sequence.h> #include <com/sun/star/uno/XComponentContext.hpp> #include <com/sun/star/frame/XDispatch.hpp> #include <cppuhelper/implbase.hxx> +#include <vcl/roadmapwizard.hxx> #define MAX_STEP 4 #define OD_DIALOG_WIDTH 330 @@ -48,36 +46,167 @@ #define ITEM_ID_OLE_OPTIMIZATION 3 #define ITEM_ID_SUMMARY 4 -class OptimizerDialog : public UnoDialog, public ConfigurationAccess +class OptimizerDialog; + +class IntroPage : public vcl::OWizardPage +{ +private: + OptimizerDialog& mrOptimizerDialog; + std::unique_ptr<weld::ComboBox> mxComboBox; + std::unique_ptr<weld::Button> mxButton; + + DECL_LINK(ComboBoxActionPerformed, weld::ComboBox&, void); + DECL_LINK(ButtonActionPerformed, weld::Button&, void); + +public: + IntroPage(weld::Container* pPage, OptimizerDialog& rOptimizerDialog); + void UpdateControlStates(const std::vector<OUString>& rItemList, int nSelectedItem, bool bRemoveButtonEnabled); + OUString Get_TK_Name() const + { + return mxComboBox->get_active_text(); + } +}; + +class SlidesPage : public vcl::OWizardPage +{ +private: + OptimizerDialog& mrOptimizerDialog; + std::unique_ptr<weld::CheckButton> mxMasterSlides; + std::unique_ptr<weld::CheckButton> mxHiddenSlides; + std::unique_ptr<weld::CheckButton> mxUnusedSlides; + std::unique_ptr<weld::ComboBox> mxComboBox; + std::unique_ptr<weld::CheckButton> mxClearNodes; + + DECL_LINK(UnusedMasterPagesActionPerformed, weld::Toggleable&, void); + DECL_LINK(UnusedHiddenSlidesActionPerformed, weld::Toggleable&, void); + DECL_LINK(UnusedSlidesActionPerformed, weld::Toggleable&, void); + DECL_LINK(DeleteNotesActionPerformed, weld::Toggleable&, void); + +public: + SlidesPage(weld::Container* pPage, OptimizerDialog& rOptimizerDialog); + void Init(const css::uno::Sequence<OUString>& rCustomShowList); + void UpdateControlStates(bool bDeleteUnusedMasterPages, bool bDeleteHiddenSlides, bool bDeleteNotesPages); + OUString Get_TK_CustomShowName() const + { + if (!mxUnusedSlides->get_sensitive()) + return OUString(); + return mxComboBox->get_active_text(); + } +}; + +class ImagesPage : public vcl::OWizardPage +{ +private: + OptimizerDialog& mrOptimizerDialog; + std::unique_ptr<weld::RadioButton> m_xLossLessCompression; + std::unique_ptr<weld::Label> m_xQualityLabel; + std::unique_ptr<weld::SpinButton> m_xQuality; + std::unique_ptr<weld::RadioButton> m_xJpegCompression; + std::unique_ptr<weld::ComboBox> m_xResolution; + std::unique_ptr<weld::CheckButton> m_xRemoveCropArea; + std::unique_ptr<weld::CheckButton> m_xEmbedLinkedGraphics; + + DECL_LINK(EmbedLinkedGraphicsActionPerformed, weld::Toggleable&, void); + DECL_LINK(RemoveCropAreaActionPerformed, weld::Toggleable&, void); + DECL_LINK(ComboBoxActionPerformed, weld::ComboBox&, void); + DECL_LINK(CompressionActionPerformed, weld::Toggleable&, void); + DECL_LINK(SpinButtonActionPerformed, weld::SpinButton&, void); + +public: + ImagesPage(weld::Container* pPage, OptimizerDialog& rOptimizerDialog); + + void UpdateControlStates(bool bJPEGCompression, int nJPEGQuality, bool bRemoveCropArea, + int nResolution, bool bEmbedLinkedGraphics); +}; + +class ObjectsPage : public vcl::OWizardPage +{ +private: + OptimizerDialog& mrOptimizerDialog; + std::unique_ptr<weld::CheckButton> m_xCreateStaticImage; + std::unique_ptr<weld::RadioButton> m_xAllOLEObjects; + std::unique_ptr<weld::RadioButton> m_xForeignOLEObjects; + std::unique_ptr<weld::Label> m_xLabel; + + DECL_LINK(OLEOptimizationActionPerformed, weld::Toggleable&, void); + DECL_LINK(OLEActionPerformed, weld::Toggleable&, void); + +public: + ObjectsPage(weld::Container* pPage, OptimizerDialog& rOptimizerDialog); + + void Init(const OUString& rDesc); + + void UpdateControlStates(bool bConvertOLEObjects, int nOLEOptimizationType); +}; + +class SummaryPage : public vcl::OWizardPage +{ +private: + OptimizerDialog& mrOptimizerDialog; + std::unique_ptr<weld::Label> m_xLabel1; + std::unique_ptr<weld::Label> m_xLabel2; + std::unique_ptr<weld::Label> m_xLabel3; + std::unique_ptr<weld::Label> m_xCurrentSize; + std::unique_ptr<weld::Label> m_xEstimatedSize; + std::unique_ptr<weld::Label> m_xStatus; + std::unique_ptr<weld::ProgressBar> m_xProgress; + std::unique_ptr<weld::RadioButton> m_xApplyToCurrent; + std::unique_ptr<weld::RadioButton> m_xSaveToNew; + std::unique_ptr<weld::ComboBox> m_xComboBox; + std::unique_ptr<weld::CheckButton> m_xSaveSettings; + + DECL_LINK(SaveSettingsActionPerformed, weld::Toggleable&, void); + DECL_LINK(SaveAsNewActionPerformed, weld::Toggleable&, void); + +public: + SummaryPage(weld::Container* pPage, OptimizerDialog& rOptimizerDialog); + + void Init(const OUString& rSettingsName, bool bIsReadonly); + + void UpdateControlStates(bool bSaveAs, bool bSaveSettingsEnabled, + const std::vector<OUString>& rItemList, + const std::vector<OUString>& rSummaryStrings, + const OUString& rCurrentFileSize, + const OUString& rEstimatedFileSize); + + void UpdateStatusLabel(const OUString& rStatus); + void UpdateProgressValue(int nProgress); + + bool GetSaveAsNew() const { return m_xSaveToNew->get_active(); } + bool GetSaveSettings() const { return m_xSaveSettings->get_active(); } + OUString GetSettingsName() const { return m_xComboBox->get_active_text(); } +}; + +class OptimizerDialog : public vcl::RoadmapWizardMachine, public ConfigurationAccess { public: OptimizerDialog( const css::uno::Reference< css::uno::XComponentContext >& rxContext, css::uno::Reference< css::frame::XFrame > const & rxFrame, css::uno::Reference< css::frame::XDispatch > const & rxStatusDispatcher ); + std::unique_ptr<BuilderPage> createPage(vcl::WizardTypes::WizardState nState) override; ~OptimizerDialog(); void execute(); - sal_Int16 mnCurrentStep; - sal_Int16 mnTabIndex; + sal_Int16 mnCurrentStep; + sal_Int16 mnTabIndex; + short mnEndStatus; bool mbIsReadonly; private: css::uno::Reference< css::frame::XFrame > mxFrame; + css::uno::Reference< css::frame::XController > mxController; - css::uno::Reference< css::uno::XInterface > mxRoadmapControl; - css::uno::Reference< css::uno::XInterface > mxRoadmapControlModel; - - css::uno::Reference< css::awt::XItemListener > mxItemListener; - css::uno::Reference< css::awt::XActionListener > mxActionListener; - css::uno::Reference< css::awt::XActionListener > mxActionListenerListBox0Pg0; - css::uno::Reference< css::awt::XTextListener > mxTextListenerFormattedField0Pg1; - css::uno::Reference< css::awt::XTextListener > mxTextListenerComboBox0Pg1; - css::uno::Reference< css::awt::XSpinListener > mxSpinListenerFormattedField0Pg1; css::uno::Reference< css::frame::XDispatch > mxStatusDispatcher; std::vector< std::vector< OUString > > maControlPages; + IntroPage* mpPage0; + SlidesPage* mpPage1; + ImagesPage* mpPage2; + ObjectsPage* mpPage3; + SummaryPage* mpPage4; + void InitDialog(); void InitRoadmap(); void InitNavigationBar(); @@ -92,9 +221,9 @@ private: void UpdateControlStatesPage3(); void UpdateControlStatesPage4(); - void ActivatePage( sal_Int16 nStep ); - void DeactivatePage( sal_Int16 nStep ); - void InsertRoadmapItem( const sal_Int32 nIndex, const OUString& rLabel, const sal_Int32 nItemID ); + virtual OUString getStateDisplayName(vcl::WizardTypes::WizardState nState) const override; + + virtual bool onFinish() override; public: @@ -105,99 +234,10 @@ public: // the ConfigurationAccess is updated to actual control settings void UpdateConfiguration(); - void EnablePage( sal_Int16 nStep ); - void DisablePage( sal_Int16 nStep ); - - void SwitchPage( sal_Int16 nNewStep ); void UpdateControlStates( sal_Int16 nStep = -1 ); - OUString GetSelectedString( OUString const & token ); css::uno::Reference< css::frame::XDispatch >& GetStatusDispatcher() { return mxStatusDispatcher; }; css::uno::Reference< css::frame::XFrame>& GetFrame() { return mxFrame; }; - const css::uno::Reference< css::uno::XComponentContext >& GetComponentContext() const { return UnoDialog::mxContext; }; -}; - - -class ItemListener : public ::cppu::WeakImplHelper< css::awt::XItemListener > -{ -public: - explicit ItemListener( OptimizerDialog& rOptimizerDialog ) : mrOptimizerDialog( rOptimizerDialog ){} - - virtual void SAL_CALL itemStateChanged( const css::awt::ItemEvent& Event ) override; - virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; -private: - - OptimizerDialog& mrOptimizerDialog; }; - -class ActionListener : public ::cppu::WeakImplHelper< css::awt::XActionListener > -{ -public: - explicit ActionListener( OptimizerDialog& rOptimizerDialog ) : mrOptimizerDialog( rOptimizerDialog ){} - - virtual void SAL_CALL actionPerformed( const css::awt::ActionEvent& Event ) override; - virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; -private: - - OptimizerDialog& mrOptimizerDialog; -}; - - -class ActionListenerListBox0Pg0 : public ::cppu::WeakImplHelper< css::awt::XActionListener > -{ -public: - explicit ActionListenerListBox0Pg0( OptimizerDialog& rOptimizerDialog ) : mrOptimizerDialog( rOptimizerDialog ){} - - virtual void SAL_CALL actionPerformed( const css::awt::ActionEvent& Event ) override; - virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; -private: - - OptimizerDialog& mrOptimizerDialog; -}; - - -class TextListenerFormattedField0Pg1 : public ::cppu::WeakImplHelper< css::awt::XTextListener > -{ -public: - explicit TextListenerFormattedField0Pg1( OptimizerDialog& rOptimizerDialog ) : mrOptimizerDialog( rOptimizerDialog ){} - - virtual void SAL_CALL textChanged( const css::awt::TextEvent& Event ) override; - virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; -private: - - OptimizerDialog& mrOptimizerDialog; -}; - - -class TextListenerComboBox0Pg1 : public ::cppu::WeakImplHelper< css::awt::XTextListener > -{ -public: - explicit TextListenerComboBox0Pg1( OptimizerDialog& rOptimizerDialog ) : mrOptimizerDialog( rOptimizerDialog ){} - - virtual void SAL_CALL textChanged( const css::awt::TextEvent& Event ) override; - virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; -private: - - OptimizerDialog& mrOptimizerDialog; -}; - - -class SpinListenerFormattedField0Pg1 : public ::cppu::WeakImplHelper< css::awt::XSpinListener > -{ -public: - explicit SpinListenerFormattedField0Pg1( OptimizerDialog& rOptimizerDialog ) : mrOptimizerDialog( rOptimizerDialog ){} - - virtual void SAL_CALL up( const css::awt::SpinEvent& Event ) override; - virtual void SAL_CALL down( const css::awt::SpinEvent& Event ) override; - virtual void SAL_CALL first( const css::awt::SpinEvent& Event ) override; - virtual void SAL_CALL last( const css::awt::SpinEvent& Event ) override; - virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; -private: - - OptimizerDialog& mrOptimizerDialog; -}; - -#endif // INCLUDED_SDEXT_SOURCE_MINIMIZER_OPTIMIZERDIALOG_HXX - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |