diff options
Diffstat (limited to 'cui/source/inc')
84 files changed, 1047 insertions, 591 deletions
diff --git a/cui/source/inc/AdditionsDialog.hxx b/cui/source/inc/AdditionsDialog.hxx index f11c4ee24691..559a4ca911ff 100644 --- a/cui/source/inc/AdditionsDialog.hxx +++ b/cui/source/inc/AdditionsDialog.hxx @@ -58,7 +58,7 @@ class AdditionsDialog : public weld::GenericDialogController private: Timer m_aSearchDataTimer; - DECL_LINK(GearHdl, const OString&, void); + DECL_LINK(GearHdl, const OUString&, void); DECL_LINK(SearchUpdateHdl, weld::Entry&, void); DECL_LINK(ImplUpdateDataHdl, Timer*, void); DECL_LINK(FocusOut_Impl, weld::Widget&, void); @@ -68,7 +68,6 @@ public: css::uno::Reference<css::deployment::XExtensionManager> m_xExtensionManager; std::unique_ptr<weld::Entry> m_xEntrySearch; std::unique_ptr<weld::Button> m_xButtonClose; - std::unique_ptr<weld::MenuButton> m_xMenuButtonSettings; std::vector<std::shared_ptr<AdditionsItem>> m_aAdditionsItems; // UI components std::vector<AdditionInfo> m_aAllExtensionsVector; // Stores the all extensions' info @@ -117,19 +116,15 @@ public: std::unique_ptr<weld::LinkButton> m_xLinkButtonWebsite; std::unique_ptr<weld::Label> m_xLabelName; std::unique_ptr<weld::Label> m_xLabelAuthor; - std::unique_ptr<weld::Label> m_xLabelDesc; std::unique_ptr<weld::Label> m_xLabelDescription; std::unique_ptr<weld::Label> m_xLabelLicense; std::unique_ptr<weld::Label> m_xLabelVersion; - std::unique_ptr<weld::Label> m_xLabelComments; std::unique_ptr<weld::LinkButton> m_xLinkButtonComments; std::unique_ptr<weld::Image> m_xImageVoting1; std::unique_ptr<weld::Image> m_xImageVoting2; std::unique_ptr<weld::Image> m_xImageVoting3; std::unique_ptr<weld::Image> m_xImageVoting4; std::unique_ptr<weld::Image> m_xImageVoting5; - std::unique_ptr<weld::Label> m_xLabelNoVoting; - std::unique_ptr<weld::Image> m_xImageDownloadNumber; std::unique_ptr<weld::Label> m_xLabelDownloadNumber; std::unique_ptr<weld::Button> m_xButtonShowMore; AdditionsDialog* m_pParentDialog; @@ -143,6 +138,7 @@ private: AdditionsDialog* m_pAdditionsDialog; std::atomic<bool> m_bExecute; bool m_bIsFirstLoading; + bool m_bUITest; void Search(); void Append(AdditionInfo& additionInfo); @@ -152,7 +148,7 @@ private: virtual void execute() override; public: - SearchAndParseThread(AdditionsDialog* pDialog, const bool& bIsFirstLoading); + SearchAndParseThread(AdditionsDialog* pDialog, bool bIsFirstLoading); void StopExecution() { m_bExecute = false; } }; diff --git a/cui/source/inc/CustomNotebookbarGenerator.hxx b/cui/source/inc/CustomNotebookbarGenerator.hxx index b06848dbb955..a7149879aef0 100644 --- a/cui/source/inc/CustomNotebookbarGenerator.hxx +++ b/cui/source/inc/CustomNotebookbarGenerator.hxx @@ -35,8 +35,8 @@ public: static void getFileNameAndAppName(OUString& sAppName, OUString& sNotebookbarUIFileName); static void modifyCustomizedUIFile(const Sequence<OUString>& sUIItemProperties); static void createCustomizedUIFile(); - static void setCustomizedUIItem(Sequence<OUString> sUIItemProperties, - OUString sNotebookbarConfigType); + static void setCustomizedUIItem(const Sequence<OUString>& rUIItemProperties, + const OUString& rNotebookbarConfigType); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/inc/DiagramDialog.hxx b/cui/source/inc/DiagramDialog.hxx index adc8328969a8..a612e092a8e7 100644 --- a/cui/source/inc/DiagramDialog.hxx +++ b/cui/source/inc/DiagramDialog.hxx @@ -12,24 +12,26 @@ #include <tools/link.hxx> #include <vcl/weld.hxx> -class DiagramDataInterface; +class SdrObjGroup; /** Edit Diagram dialog */ class DiagramDialog : public weld::GenericDialogController { public: - DiagramDialog(weld::Window* pWindow, std::shared_ptr<DiagramDataInterface> pDiagramData); + DiagramDialog(weld::Window* pWindow, SdrObjGroup& rDiagram); virtual ~DiagramDialog() override; private: - std::shared_ptr<DiagramDataInterface> mpDiagramData; - std::unique_ptr<weld::Button> mpBtnOk; + SdrObjGroup& m_rDiagram; + sal_uInt32 m_nUndos; + std::unique_ptr<weld::Button> mpBtnCancel; std::unique_ptr<weld::Button> mpBtnAdd; std::unique_ptr<weld::Button> mpBtnRemove; std::unique_ptr<weld::TreeView> mpTreeDiagram; std::unique_ptr<weld::TextView> mpTextAdd; + DECL_LINK(OnAddCancel, weld::Button&, void); DECL_LINK(OnAddClick, weld::Button&, void); DECL_LINK(OnRemoveClick, weld::Button&, void); diff --git a/cui/source/inc/FontFeatures.hxx b/cui/source/inc/FontFeatures.hxx new file mode 100644 index 000000000000..f16c11628143 --- /dev/null +++ b/cui/source/inc/FontFeatures.hxx @@ -0,0 +1,17 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ +#pragma once + +#include <vector> +#include <vcl/font/Feature.hxx> +#include <vcl/virdev.hxx> + +std::vector<vcl::font::Feature> getFontFeatureList(OUString const& rFontName, VirtualDevice& rVDev); +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
\ No newline at end of file diff --git a/cui/source/inc/FontFeaturesDialog.hxx b/cui/source/inc/FontFeaturesDialog.hxx index 6fd8b9de037e..93ba0cb9f80d 100644 --- a/cui/source/inc/FontFeaturesDialog.hxx +++ b/cui/source/inc/FontFeaturesDialog.hxx @@ -22,46 +22,58 @@ struct FontFeatureItem { FontFeatureItem(weld::Widget* pParent) : m_aFeatureCode(0) - , m_nDefault(0) + , m_nDefault(-1) , m_xBuilder(Application::CreateBuilder(pParent, "cui/ui/fontfragment.ui")) , m_xContainer(m_xBuilder->weld_widget("fontentry")) , m_xText(m_xBuilder->weld_label("label")) , m_xCombo(m_xBuilder->weld_combo_box("combo")) , m_xCheck(m_xBuilder->weld_check_button("check")) { + m_xCheck->connect_toggled(LINK(this, FontFeatureItem, CheckBoxToggledHdl)); } sal_uInt32 m_aFeatureCode; - sal_uInt32 m_nDefault; + sal_Int32 m_nDefault; + weld::TriStateEnabled m_aTriStateEnabled; + Link<weld::Toggleable&, void> m_aToggleHdl; std::unique_ptr<weld::Builder> m_xBuilder; std::unique_ptr<weld::Widget> m_xContainer; std::unique_ptr<weld::Label> m_xText; std::unique_ptr<weld::ComboBox> m_xCombo; std::unique_ptr<weld::CheckButton> m_xCheck; + +private: + DECL_LINK(CheckBoxToggledHdl, weld::Toggleable&, void); }; class FontFeaturesDialog : public weld::GenericDialogController { private: - std::vector<FontFeatureItem> m_aFeatureItems; + std::vector<std::unique_ptr<FontFeatureItem>> m_aFeatureItems; OUString m_sFontName; OUString m_sResultFontName; SvxFontPrevWindow m_aPreviewWindow; std::unique_ptr<weld::ScrolledWindow> m_xContentWindow; + std::unique_ptr<weld::Container> m_xContentBox; std::unique_ptr<weld::Container> m_xContentGrid; + std::unique_ptr<weld::Container> m_xStylisticSetsBox; + std::unique_ptr<weld::Container> m_xStylisticSetsGrid; + std::unique_ptr<weld::Container> m_xCharacterVariantsBox; + std::unique_ptr<weld::Container> m_xCharacterVariantsGrid; std::unique_ptr<weld::CustomWeld> m_xPreviewWindow; void initialize(); OUString createFontNameWithFeatures(); - void fillGrid(std::vector<vcl::font::Feature> const& rFontFeatures); + // returns the max height of a row + int fillGrid(std::vector<vcl::font::Feature> const& rFontFeatures); DECL_LINK(ComboBoxSelectedHdl, weld::ComboBox&, void); - DECL_LINK(CheckBoxToggledHdl, weld::ToggleButton&, void); + DECL_LINK(CheckBoxToggledHdl, weld::Toggleable&, void); public: - FontFeaturesDialog(weld::Window* pParent, OUString const& rFontName); + FontFeaturesDialog(weld::Window* pParent, OUString aFontName); ~FontFeaturesDialog() override; virtual short run() override; diff --git a/cui/source/inc/GraphicsTestsDialog.hxx b/cui/source/inc/GraphicsTestsDialog.hxx new file mode 100644 index 000000000000..2bf18de5dde7 --- /dev/null +++ b/cui/source/inc/GraphicsTestsDialog.hxx @@ -0,0 +1,54 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +#pragma once + +#include <vcl/bitmap.hxx> +#include <vcl/weld.hxx> +#include <tools/link.hxx> + +#include <vector> + +class GraphicTestEntry final +{ +private: + std::unique_ptr<weld::Builder> m_xBuilder; + std::unique_ptr<weld::Container> m_xContainer; + std::unique_ptr<weld::Label> m_xTestLabel; + std::unique_ptr<weld::Button> m_xTestButton; + + weld::Dialog* m_xParentDialog; + + Bitmap m_xResultBitmap; + +public: + DECL_LINK(HandleResultViewRequest, weld::Button&, void); + GraphicTestEntry(weld::Container* pParent, weld::Dialog* pDialog, OUString aTestName, + OUString aTestStatus, Bitmap aTestBitmap); + weld::Widget* get_widget() const { return m_xContainer.get(); } +}; + +class GraphicsTestsDialog : public weld::GenericDialogController +{ + std::unique_ptr<weld::TextView> m_xResultLog; + std::unique_ptr<weld::Button> m_xDownloadResults; + std::unique_ptr<weld::Box> m_xContainerBox; + + std::vector<std::unique_ptr<GraphicTestEntry>> m_xGraphicTestEntries; + + OUString m_xZipFileUrl; + OUString m_xCreateFolderUrl; + + DECL_LINK(HandleDownloadRequest, weld::Button&, void); + DECL_LINK(HandleResultViewRequest, weld::Button&, void); + +public: + GraphicsTestsDialog(weld::Container* pParent); + ~GraphicsTestsDialog(); + virtual short run() override; +}; diff --git a/cui/source/inc/ImageViewerDialog.hxx b/cui/source/inc/ImageViewerDialog.hxx new file mode 100644 index 000000000000..884deb18d4a7 --- /dev/null +++ b/cui/source/inc/ImageViewerDialog.hxx @@ -0,0 +1,20 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +#pragma once + +#include <vcl/bitmapex.hxx> +#include <vcl/weld.hxx> + +class ImageViewerDialog : public weld::GenericDialogController +{ + std::unique_ptr<weld::Image> m_xDisplayImage; + +public: + ImageViewerDialog(weld::Dialog* pParent, BitmapEx aBitmap, OUString atitle); +}; diff --git a/cui/source/inc/QrCodeGenDialog.hxx b/cui/source/inc/QrCodeGenDialog.hxx index 7c39fe07ced6..02037ad4cdf6 100644 --- a/cui/source/inc/QrCodeGenDialog.hxx +++ b/cui/source/inc/QrCodeGenDialog.hxx @@ -8,7 +8,7 @@ */ #pragma once -#include <config_qrcodegen.h> +#include <config_zxing.h> #include <vcl/weld.hxx> @@ -24,24 +24,28 @@ public: bool bEditExisting); virtual short run() override; + static bool runAsync(const std::shared_ptr<QrCodeGenDialog>& rController, + const std::function<void(sal_Int32)>& rFunc); -protected: - css::uno::Reference<css::frame::XModel> m_xModel; void Apply(); +#if ENABLE_ZXING + weld::Widget* GetParent() { return mpParent; } +#endif private: - std::unique_ptr<weld::Entry> m_xEdittext; + css::uno::Reference<css::frame::XModel> m_xModel; + std::unique_ptr<weld::TextView> m_xEdittext; std::unique_ptr<weld::RadioButton> m_xECC[4]; std::unique_ptr<weld::SpinButton> m_xSpinBorder; -#if ENABLE_QRCODEGEN + std::unique_ptr<weld::ComboBox> m_xComboType; + +#if ENABLE_ZXING weld::Widget* mpParent; #endif css::uno::Reference<css::beans::XPropertySet> m_xExistingShapeProperties; void GetErrorCorrection(tools::Long); - //Function contains QR Code Generating Library Calls - static OUString GenerateQRCode(OUString aQrText, tools::Long aQrECC, int aQrBorder); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/cui/source/inc/SignSignatureLineDialog.hxx b/cui/source/inc/SignSignatureLineDialog.hxx index 5abe1969e32c..7c894a16a0b3 100644 --- a/cui/source/inc/SignSignatureLineDialog.hxx +++ b/cui/source/inc/SignSignatureLineDialog.hxx @@ -20,6 +20,8 @@ class SignSignatureLineDialog : public SignatureLineDialogBase public: SignSignatureLineDialog(weld::Widget* pParent, css::uno::Reference<css::frame::XModel> xModel); + void Apply(); + private: std::unique_ptr<weld::Entry> m_xEditName; std::unique_ptr<weld::TextView> m_xEditComment; @@ -42,7 +44,6 @@ private: void ValidateFields(); css::uno::Reference<css::graphic::XGraphic> getSignedGraphic(bool bValid); - virtual void Apply() override; DECL_LINK(clearImage, weld::Button&, void); DECL_LINK(loadImage, weld::Button&, void); diff --git a/cui/source/inc/SignatureLineDialog.hxx b/cui/source/inc/SignatureLineDialog.hxx index 73b093f601a5..e686cb4a4123 100644 --- a/cui/source/inc/SignatureLineDialog.hxx +++ b/cui/source/inc/SignatureLineDialog.hxx @@ -19,6 +19,8 @@ public: SignatureLineDialog(weld::Widget* pParent, css::uno::Reference<css::frame::XModel> xModel, bool bEditExisting); + void Apply(); + private: std::unique_ptr<weld::Entry> m_xEditName; std::unique_ptr<weld::Entry> m_xEditTitle; @@ -29,8 +31,6 @@ private: css::uno::Reference<css::beans::XPropertySet> m_xExistingShapeProperties; OUString m_aSignatureLineId; - - virtual void Apply() override; }; /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/cui/source/inc/SignatureLineDialogBase.hxx b/cui/source/inc/SignatureLineDialogBase.hxx index 3cc645819be8..4e0a3f298e5b 100644 --- a/cui/source/inc/SignatureLineDialogBase.hxx +++ b/cui/source/inc/SignatureLineDialogBase.hxx @@ -21,13 +21,12 @@ class SignatureLineDialogBase : public weld::GenericDialogController { public: SignatureLineDialogBase(weld::Widget* pParent, css::uno::Reference<css::frame::XModel> xModel, - const OUString& rUIFile, const OString& rDialogId); + const OUString& rUIFile, const OUString& rDialogId); virtual short run() override; protected: css::uno::Reference<css::frame::XModel> m_xModel; - virtual void Apply() = 0; static OUString getCDataString(std::u16string_view rString); }; diff --git a/cui/source/inc/SpellDialog.hxx b/cui/source/inc/SpellDialog.hxx index f184f8e78ad2..81d68e214314 100644 --- a/cui/source/inc/SpellDialog.hxx +++ b/cui/source/inc/SpellDialog.hxx @@ -46,6 +46,7 @@ struct SpellErrorDescription; class SentenceEditWindow_Impl : public WeldEditView { private: + std::unique_ptr<weld::ScrolledWindow> m_xScrolledWindow; std::set<sal_Int32> m_aIgnoreErrorsAt; SpellDialog* m_pSpellDialog; weld::Toolbar* m_pToolbar; @@ -61,14 +62,21 @@ private: bool GetErrorDescription(SpellErrorDescription& rSpellErrorDescription, sal_Int32 nPosition); - DECL_LINK(ToolbarHdl, const OString&, void); + DECL_LINK(ScrollHdl, weld::ScrolledWindow&, void); + DECL_LINK(EditStatusHdl, EditStatus&, void); + DECL_LINK(ToolbarHdl, const OUString&, void); + + void DoScroll(); + void SetScrollBarRange(); protected: virtual bool KeyInput( const KeyEvent& rKEvt ) override; + virtual void StyleUpdated() override; public: - SentenceEditWindow_Impl(); + SentenceEditWindow_Impl(std::unique_ptr<weld::ScrolledWindow> xScrolledWindow); virtual void SetDrawingArea(weld::DrawingArea* pDrawingArea) override; + virtual void EditViewScrollStateChange() override; void SetSpellDialog(SpellDialog* pDialog) { m_pSpellDialog = pDialog; } virtual ~SentenceEditWindow_Impl() override; @@ -113,6 +121,8 @@ public: void MoveErrorEnd(tools::Long nOffset); void ResetIgnoreErrorsAt() { m_aIgnoreErrorsAt.clear(); } + + void SetDocumentColor(weld::DrawingArea* pDrawingArea); }; // class SvxSpellDialog --------------------------------------------- @@ -130,7 +140,7 @@ private: OUString m_sTitleSpellingGrammar; Link<SpellUndoAction_Impl&,void> aDialogUndoLink; - + ImplSVEvent * m_pInitHdlEvent; bool bFocusLocked; svx::SpellDialogChildWindow& rParent; @@ -143,7 +153,6 @@ private: std::unique_ptr<weld::Label> m_xAltTitle; std::unique_ptr<weld::Label> m_xResumeFT; std::unique_ptr<weld::Label> m_xNoSuggestionsFT; - std::unique_ptr<weld::Label> m_xIgnoreOnceFT; std::unique_ptr<weld::Label> m_xLanguageFT; std::unique_ptr<SvxLanguageBox> m_xLanguageLB; std::unique_ptr<weld::Label> m_xExplainFT; @@ -166,25 +175,26 @@ private: std::unique_ptr<weld::Button> m_xClosePB; std::unique_ptr<weld::Toolbar> m_xToolbar; std::unique_ptr<weld::CustomWeld> m_xSentenceEDWeld; + std::shared_ptr<SfxSingleTabDialogController> m_xOptionsDlg; DECL_LINK(ChangeHdl, weld::Button&, void); DECL_LINK(DoubleClickChangeHdl, weld::TreeView&, bool); DECL_LINK(ChangeAllHdl, weld::Button&, void); DECL_LINK(IgnoreAllHdl, weld::Button&, void); DECL_LINK(IgnoreHdl, weld::Button&, void); - DECL_LINK(CheckGrammarHdl, weld::Button&, void); + DECL_LINK(CheckGrammarHdl, weld::Toggleable&, void); DECL_LINK(ExtClickHdl, weld::Button&, void); DECL_LINK(CancelHdl, weld::Button&, void); DECL_LINK(ModifyHdl, LinkParamNone*, void); DECL_LINK(UndoHdl, weld::Button&, void); - DECL_LINK(AddToDictSelectHdl, const OString&, void); + DECL_LINK(AddToDictSelectHdl, const OUString&, void); DECL_LINK(AddToDictClickHdl, weld::Button&, void); DECL_LINK(LanguageSelectHdl, weld::ComboBox&, void); DECL_LINK(DialogUndoHdl, SpellUndoAction_Impl&, void); DECL_LINK(InitHdl, void*, void); - void AddToDictionaryExecute(const OString& rItemId); + void AddToDictionaryExecute(const OUString& rItemId); void StartSpellOptDlg_Impl(); int InitUserDicts(); void UpdateBoxes_Impl(bool bCallFromSelectHdl = false); diff --git a/cui/source/inc/SvxMenuConfigPage.hxx b/cui/source/inc/SvxMenuConfigPage.hxx index bc8fba3f5780..36fee041de76 100644 --- a/cui/source/inc/SvxMenuConfigPage.hxx +++ b/cui/source/inc/SvxMenuConfigPage.hxx @@ -33,15 +33,15 @@ private: DECL_LINK(ContentContextMenuHdl, const CommandEvent&, bool); DECL_LINK(FunctionContextMenuHdl, const CommandEvent&, bool); - DECL_LINK(GearHdl, const OString&, void); + DECL_LINK(GearHdl, const OUString&, void); DECL_LINK(SelectCategory, weld::ComboBox&, void); DECL_LINK(AddCommandHdl, weld::Button&, void); DECL_LINK(RemoveCommandHdl, weld::Button&, void); - DECL_LINK(InsertHdl, const OString&, void); - DECL_LINK(ModifyItemHdl, const OString&, void); + DECL_LINK(InsertHdl, const OUString&, void); + DECL_LINK(ModifyItemHdl, const OUString&, void); DECL_LINK(ResetMenuHdl, weld::Button&, void); DECL_LINK(MenuEntriesSizeAllocHdl, const Size&, void); diff --git a/cui/source/inc/SvxNotebookbarConfigPage.hxx b/cui/source/inc/SvxNotebookbarConfigPage.hxx index 7e417463ab30..672d2e8299e4 100644 --- a/cui/source/inc/SvxNotebookbarConfigPage.hxx +++ b/cui/source/inc/SvxNotebookbarConfigPage.hxx @@ -74,13 +74,19 @@ public: class SvxNotebookbarEntriesListBox final : public SvxMenuEntriesListBox { + typedef std::unordered_map<OUString, OUString> TooltipMap; + TooltipMap m_aTooltipMap; + void ChangedVisibility(int nRow); DECL_LINK(CheckButtonHdl, const weld::TreeView::iter_col&, void); DECL_LINK(KeyInputHdl, const KeyEvent&, bool); + DECL_LINK(QueryTooltip, const weld::TreeIter& rIter, OUString); public: SvxNotebookbarEntriesListBox(std::unique_ptr<weld::TreeView> xControl, SvxConfigPage* pPg); virtual ~SvxNotebookbarEntriesListBox() override; + + TooltipMap& GetTooltipMap() { return m_aTooltipMap; } }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/inc/SvxToolbarConfigPage.hxx b/cui/source/inc/SvxToolbarConfigPage.hxx index e035d6b7ef31..28fe658f2cca 100644 --- a/cui/source/inc/SvxToolbarConfigPage.hxx +++ b/cui/source/inc/SvxToolbarConfigPage.hxx @@ -32,7 +32,7 @@ private: DECL_LINK(SelectToolbarEntry, weld::TreeView&, void); DECL_LINK(MoveHdl, weld::Button&, void); - DECL_LINK(GearHdl, const OString&, void); + DECL_LINK(GearHdl, const OUString&, void); DECL_LINK(SelectCategory, weld::ComboBox&, void); @@ -42,8 +42,8 @@ private: DECL_LINK(AddCommandHdl, weld::Button&, void); DECL_LINK(RemoveCommandHdl, weld::Button&, void); - DECL_LINK(InsertHdl, const OString&, void); - DECL_LINK(ModifyItemHdl, const OString&, void); + DECL_LINK(InsertHdl, const OUString&, void); + DECL_LINK(ModifyItemHdl, const OUString&, void); DECL_LINK(ResetToolbarHdl, weld::Button&, void); virtual void ListModified() override; diff --git a/cui/source/inc/TextColumnsPage.hxx b/cui/source/inc/TextColumnsPage.hxx new file mode 100644 index 000000000000..af45c23c93ca --- /dev/null +++ b/cui/source/inc/TextColumnsPage.hxx @@ -0,0 +1,40 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#pragma once + +#include <sal/config.h> + +#include <sfx2/tabdlg.hxx> + +#include <memory> + +/// Tab page for EditEngine columns properties +class SvxTextColumnsPage : public SfxTabPage +{ +private: + static const WhichRangesContainer pRanges; + + std::unique_ptr<weld::SpinButton> m_xColumnsNumber; + std::unique_ptr<weld::MetricSpinButton> m_xColumnsSpacing; + +public: + SvxTextColumnsPage(weld::Container* pPage, weld::DialogController* pController, + const SfxItemSet& rInAttrs); + virtual ~SvxTextColumnsPage() override; + + static std::unique_ptr<SfxTabPage> + Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet*); + static WhichRangesContainer GetRanges() { return pRanges; } + + virtual bool FillItemSet(SfxItemSet*) override; + virtual void Reset(const SfxItemSet*) override; +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/cui/source/inc/about.hxx b/cui/source/inc/about.hxx index 2cfc65a894f4..42eae5467eab 100644 --- a/cui/source/inc/about.hxx +++ b/cui/source/inc/about.hxx @@ -46,7 +46,7 @@ private: static OUString GetMiscString(); static OUString GetCopyrightString(); - static bool IsStringValidGitHash(const OUString& hash); + static bool IsStringValidGitHash(std::u16string_view hash); DECL_LINK(HandleClick, weld::Button&, void); diff --git a/cui/source/inc/acccfg.hxx b/cui/source/inc/acccfg.hxx index aecc923adec2..e9207d5a1add 100644 --- a/cui/source/inc/acccfg.hxx +++ b/cui/source/inc/acccfg.hxx @@ -28,9 +28,12 @@ #include <vcl/idle.hxx> #include <vcl/keycod.hxx> #include <i18nutil/searchopt.hxx> +#include <config_features.h> #include "cfgutil.hxx" +#if HAVE_FEATURE_SCRIPTING class SfxMacroInfoItem; +#endif class CuiConfigFunctionListBox; class SfxAcceleratorConfigPage; class SfxStringItem; @@ -76,7 +79,9 @@ enum class StartFileDialogType class SfxAcceleratorConfigPage : public SfxTabPage { private: +#if HAVE_FEATURE_SCRIPTING const SfxMacroInfoItem* m_pMacroInfoItem; +#endif std::unique_ptr<sfx2::FileDialogHelper> m_pFileDlg; OUString aLoadAccelConfigStr; @@ -122,7 +127,7 @@ private: DECL_LINK(Save, weld::Button&, void); DECL_LINK(Load, weld::Button&, void); DECL_LINK(Default, weld::Button&, void); - DECL_LINK(RadioHdl, weld::Button&, void); + DECL_LINK(RadioHdl, weld::Toggleable&, void); DECL_LINK(ImplUpdateDataHdl, Timer*, void); DECL_LINK(FocusOut_Impl, weld::Widget&, void); DECL_LINK(TimeOut_Impl, Timer*, void); diff --git a/cui/source/inc/align.hxx b/cui/source/inc/align.hxx index d88fc28dce29..caea33e42150 100644 --- a/cui/source/inc/align.hxx +++ b/cui/source/inc/align.hxx @@ -40,19 +40,21 @@ #include <svx/frmdirlbox.hxx> #include <vcl/weld.hxx> +class SfxEnumItemInterface; + namespace svx { class AlignmentTabPage : public SfxTabPage { - static const sal_uInt16 s_pRanges[]; + static const WhichRangesContainer s_pRanges; public: virtual ~AlignmentTabPage() override; static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet ); explicit AlignmentTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreSet); - static const sal_uInt16* GetRanges() { return s_pRanges; } + static WhichRangesContainer GetRanges() { return s_pRanges; } virtual bool FillItemSet( SfxItemSet* rSet ) override; virtual void Reset( const SfxItemSet* rSet ) override; @@ -62,14 +64,14 @@ private: void InitVsRefEgde(); void UpdateEnableControls(); - bool HasAlignmentChanged( const SfxItemSet& rNew, sal_uInt16 nWhich ) const; + bool HasAlignmentChanged( const SfxItemSet& rNew, TypedWhichId<SfxEnumItemInterface> nWhich ) const; DECL_LINK(UpdateEnableHdl, weld::ComboBox&, void); - DECL_LINK(StackedClickHdl, weld::ToggleButton&, void); - DECL_LINK(AsianModeClickHdl, weld::ToggleButton&, void); - DECL_LINK(WrapClickHdl, weld::ToggleButton&, void); - DECL_LINK(HyphenClickHdl, weld::ToggleButton&, void); - DECL_LINK(ShrinkClickHdl, weld::ToggleButton&, void); + DECL_LINK(StackedClickHdl, weld::Toggleable&, void); + DECL_LINK(AsianModeClickHdl, weld::Toggleable&, void); + DECL_LINK(WrapClickHdl, weld::Toggleable&, void); + DECL_LINK(HyphenClickHdl, weld::Toggleable&, void); + DECL_LINK(ShrinkClickHdl, weld::Toggleable&, void); private: weld::TriStateEnabled m_aStackedState; @@ -92,7 +94,6 @@ private: std::unique_ptr<weld::CheckButton> m_xCbStacked; std::unique_ptr<weld::CheckButton> m_xCbAsianMode; - std::unique_ptr<weld::Widget> m_xBoxDirection; std::unique_ptr<weld::CheckButton> m_xBtnWrap; std::unique_ptr<weld::CheckButton> m_xBtnHyphen; std::unique_ptr<weld::CheckButton> m_xBtnShrink; diff --git a/cui/source/inc/autocdlg.hxx b/cui/source/inc/autocdlg.hxx index 86218a58a581..2677b8535ebe 100644 --- a/cui/source/inc/autocdlg.hxx +++ b/cui/source/inc/autocdlg.hxx @@ -20,12 +20,13 @@ #include <sfx2/tabdlg.hxx> #include <svx/langbox.hxx> +#include <unotools/collatorwrapper.hxx> #include <map> #include <set> +#include <utility> class CharClass; -class CollatorWrapper; class SmartTagMgr; namespace editeng { class SortedAutoCompleteStrings; } @@ -56,6 +57,7 @@ private: OUString m_sStartCap; OUString m_sBoldUnderline; OUString m_sURL; + OUString m_sDOI; OUString m_sNoDblSpaces; OUString m_sDash; OUString m_sAccidentalCaps; @@ -91,9 +93,11 @@ class OfaSwAutoFmtOptionsPage : public SfxTabPage OUString sNoDblSpaces; OUString sCorrectCapsLock; OUString sDetectURL; + OUString sDetectDOI; OUString sDash; OUString sRightMargin; OUString sNum; + OUString sBulletsAfterSpace; OUString sBorder; OUString sTable; OUString sReplaceTemplates; @@ -135,6 +139,12 @@ struct DoubleString OUString sShort; OUString sLong; void* pUserData; ///< CheckBox -> form. Text Bool -> selection text + DoubleString(OUString aShort, OUString aLong) + : sShort(std::move(aShort)) + , sLong(std::move(aLong)) + , pUserData(nullptr) + { + } }; typedef std::vector<DoubleString> DoubleStringArray; @@ -159,7 +169,7 @@ private: std::set<OUString> aFormatText; std::map<LanguageType, DoubleStringArray> aDoubleStringTable; - std::unique_ptr<CollatorWrapper> pCompareClass; + CollatorWrapper maCompareClass; std::unique_ptr<CharClass> pCharClass; LanguageType eLang; @@ -220,7 +230,7 @@ class OfaAutocorrExceptPage : public SfxTabPage { private: StringsTable aStringsTable; - std::unique_ptr<CollatorWrapper> pCompareClass; + CollatorWrapper maCompareClass; LanguageType eLang; std::unique_ptr<weld::Entry> m_xAbbrevED; @@ -334,7 +344,7 @@ private: std::unique_ptr<weld::TreeView> m_xLBEntries; std::unique_ptr<weld::Button> m_xPBEntries; - DECL_LINK(CheckHdl, weld::ToggleButton&, void); + DECL_LINK(CheckHdl, weld::Toggleable&, void); DECL_LINK(KeyReleaseHdl, const KeyEvent&, bool); public: @@ -382,7 +392,7 @@ private: Enables/disables all controls in the tab page (except from the check box. */ - DECL_LINK(CheckHdl, weld::ToggleButton&, void); + DECL_LINK(CheckHdl, weld::Toggleable&, void); /** Handler for the push button diff --git a/cui/source/inc/backgrnd.hxx b/cui/source/inc/backgrnd.hxx index 5673b2f6067b..3d50d69e95f4 100644 --- a/cui/source/inc/backgrnd.hxx +++ b/cui/source/inc/backgrnd.hxx @@ -37,23 +37,28 @@ class SvxBrushItem; class SvxBkgTabPage : public SvxAreaTabPage { - static const sal_uInt16 pPageRanges[]; + static const WhichRangesContainer pBkgRanges; std::unique_ptr<weld::ComboBox> m_xTblLBox; - bool bHighlighting : 1; - bool bCharBackColor : 1; - SfxItemSet maSet; - std::unique_ptr<SfxItemSet> m_pResetSet; + bool m_bHighlighting = false; + bool m_bCharBackColor = false; + + // m_aAttrSet is used to convert between SvxBrushItem and XFILL item attributes and also to + // allow for cell, row, and table backgrounds to be set in one Table dialog opening. + SfxItemSet m_aAttrSet; sal_Int32 m_nActPos = -1; DECL_LINK(TblDestinationHdl_Impl, weld::ComboBox&, void); + + void SetActiveTableDestinationBrushItem(); + public: SvxBkgTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs); virtual ~SvxBkgTabPage() override; // returns the area of the which-values - static const sal_uInt16* GetRanges() { return pPageRanges; } + static WhichRangesContainer GetRanges() { return pBkgRanges; } static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* ); virtual bool FillItemSet( SfxItemSet* ) override; diff --git a/cui/source/inc/bbdlg.hxx b/cui/source/inc/bbdlg.hxx index 1c7a289723a6..c18b5b3da4e6 100644 --- a/cui/source/inc/bbdlg.hxx +++ b/cui/source/inc/bbdlg.hxx @@ -32,7 +32,7 @@ public: bool bEnableSelector, bool bEnableDrawingLayerFillStyles); protected: - virtual void PageCreated(const OString& rPageId, SfxTabPage& rTabPage) override; + virtual void PageCreated(const OUString& rPageId, SfxTabPage& rTabPage) override; private: bool mbEnableBackgroundSelector : 1; ///< for Border/Background diff --git a/cui/source/inc/border.hxx b/cui/source/inc/border.hxx index 8637f6e8943b..accb555930dc 100644 --- a/cui/source/inc/border.hxx +++ b/cui/source/inc/border.hxx @@ -27,6 +27,7 @@ #include <svx/colorbox.hxx> #include <svx/frmsel.hxx> #include <svx/flagsdef.hxx> +#include <unotools/resmgr.hxx> #include <set> @@ -75,14 +76,14 @@ private: class SvxBorderTabPage : public SfxTabPage { - static const sal_uInt16 pRanges[]; + static const WhichRangesContainer pRanges; public: SvxBorderTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreAttrs); virtual ~SvxBorderTabPage() override; static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet); - static const sal_uInt16* GetRanges() { return pRanges; } + static WhichRangesContainer GetRanges() { return pRanges; } virtual bool FillItemSet( SfxItemSet* rCoreAttrs ) override; virtual void Reset( const SfxItemSet* ) override; @@ -127,6 +128,7 @@ private: std::unique_ptr<SvtLineListBox> m_xLbLineStyle; std::unique_ptr<ColorListBox> m_xLbLineColor; + std::unique_ptr<weld::ComboBox> m_xLineWidthLB; std::unique_ptr<weld::MetricSpinButton> m_xLineWidthMF; std::unique_ptr<weld::Container> m_xSpacingFrame; @@ -164,16 +166,18 @@ private: DECL_LINK(SelSdwHdl_Impl, ValueSet*, void); DECL_LINK(LinesChanged_Impl, LinkParamNone*, void); DECL_LINK(ModifyDistanceHdl_Impl, weld::MetricSpinButton&, void); - DECL_LINK(ModifyWidthHdl_Impl, weld::MetricSpinButton&, void); - DECL_LINK(SyncHdl_Impl, weld::ToggleButton&, void); - DECL_LINK(RemoveAdjacentCellBorderHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(ModifyWidthLBHdl_Impl, weld::ComboBox&, void); + DECL_LINK(ModifyWidthMFHdl_Impl, weld::MetricSpinButton&, void); + DECL_LINK(SyncHdl_Impl, weld::Toggleable&, void); + DECL_LINK(RemoveAdjacentCellBorderHdl_Impl, weld::Toggleable&, void); sal_uInt16 GetPresetImageId(sal_uInt16 nValueSetIdx) const; - const char* GetPresetStringId(sal_uInt16 nValueSetIdx) const; + TranslateId GetPresetStringId(sal_uInt16 nValueSetIdx) const; void FillPresetVS(); void FillShadowVS(); void FillValueSets(); + void SetLineWidth(sal_Int64 nWidth, sal_Int32 nRemovedType = 0); // Filler void FillLineListBox_Impl(); diff --git a/cui/source/inc/cfg.hxx b/cui/source/inc/cfg.hxx index ecefed6578d6..1ae5b23a2999 100644 --- a/cui/source/inc/cfg.hxx +++ b/cui/source/inc/cfg.hxx @@ -19,9 +19,9 @@ #pragma once -#include <vcl/transfer.hxx> #include <vcl/timer.hxx> #include <vcl/weld.hxx> +#include <vcl/weldutils.hxx> #include <svtools/valueset.hxx> #include <com/sun/star/container/XIndexContainer.hpp> @@ -40,23 +40,24 @@ #include "cfgutil.hxx" #include "CommandCategoryListBox.hxx" -#define notebookbarTabScope "notebookbarTabScope" +inline constexpr OUString notebookbarTabScope = u"notebookbarTabScope"_ustr; -const char ITEM_DESCRIPTOR_COMMANDURL[] = "CommandURL"; -inline constexpr OUStringLiteral ITEM_DESCRIPTOR_CONTAINER = u"ItemDescriptorContainer"; -const char ITEM_DESCRIPTOR_LABEL[] = "Label"; -const char ITEM_DESCRIPTOR_TYPE[] = "Type"; -const char ITEM_DESCRIPTOR_STYLE[] = "Style"; -const char ITEM_DESCRIPTOR_ISVISIBLE[] = "IsVisible"; -const char ITEM_DESCRIPTOR_RESOURCEURL[] = "ResourceURL"; -inline constexpr OUStringLiteral ITEM_DESCRIPTOR_UINAME = u"UIName"; +inline constexpr OUString ITEM_DESCRIPTOR_COMMANDURL = u"CommandURL"_ustr; +inline constexpr OUString ITEM_DESCRIPTOR_CONTAINER = u"ItemDescriptorContainer"_ustr; +inline constexpr OUString ITEM_DESCRIPTOR_LABEL = u"Label"_ustr; +inline constexpr OUString ITEM_DESCRIPTOR_TYPE = u"Type"_ustr; +inline constexpr OUString ITEM_DESCRIPTOR_STYLE = u"Style"_ustr; +inline constexpr OUString ITEM_DESCRIPTOR_ISVISIBLE = u"IsVisible"_ustr; +inline constexpr OUString ITEM_DESCRIPTOR_RESOURCEURL = u"ResourceURL"_ustr; +inline constexpr OUString ITEM_DESCRIPTOR_UINAME = u"UIName"_ustr; -inline constexpr OUStringLiteral ITEM_MENUBAR_URL = u"private:resource/menubar/menubar"; -constexpr char16_t ITEM_TOOLBAR_URL[] = u"private:resource/toolbar/"; +inline constexpr OUString ITEM_MENUBAR_URL = u"private:resource/menubar/menubar"_ustr; +inline constexpr OUString ITEM_TOOLBAR_URL = u"private:resource/toolbar/"_ustr; +inline constexpr OUString ITEM_EVENT_URL = u"private:resource/event/"_ustr; -inline constexpr OUStringLiteral CUSTOM_TOOLBAR_STR = u"custom_toolbar_"; +inline constexpr OUString CUSTOM_TOOLBAR_STR = u"custom_toolbar_"_ustr; -const char aMenuSeparatorStr[] = " | "; +inline constexpr OUString aMenuSeparatorStr = u" | "_ustr; class SvxConfigEntry; class SvxConfigPage; @@ -68,10 +69,12 @@ class SvxConfigDialog : public SfxTabDialogController private: css::uno::Reference< css::frame::XFrame > m_xFrame; + virtual void ActivatePage(const OUString& rPage) override; + public: SvxConfigDialog(weld::Window*, const SfxItemSet*); - virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override; + virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override; void SetFrame(const css::uno::Reference< css::frame::XFrame >& xFrame); }; @@ -113,8 +116,8 @@ protected: public: SaveInData( - const css::uno::Reference < css::ui::XUIConfigurationManager >& xCfgMgr, - const css::uno::Reference < css::ui::XUIConfigurationManager >& xParentCfgMgr, + css::uno::Reference < css::ui::XUIConfigurationManager > xCfgMgr, + css::uno::Reference < css::ui::XUIConfigurationManager > xParentCfgMgr, const OUString& aModuleId, bool docConfig ); @@ -253,8 +256,8 @@ private: public: - SvxConfigEntry( const OUString& rDisplayName, - const OUString& rCommandURL, + SvxConfigEntry( OUString aDisplayName, + OUString aCommandURL, bool bPopup, bool bParentData ); @@ -348,17 +351,16 @@ public: } DECL_LINK(KeyInputHdl, const KeyEvent&, bool); + DECL_LINK(QueryTooltip, const weld::TreeIter& rIter, OUString); void CreateDropDown(); }; -class SvxConfigPageFunctionDropTarget : public DropTargetHelper +class SvxConfigPageFunctionDropTarget : public weld::ReorderingDropTarget { private: SvxConfigPage& m_rPage; - weld::TreeView& m_rTreeView; - virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ) override; virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ) override; public: @@ -410,12 +412,14 @@ protected: std::unique_ptr<weld::ComboBox> m_xSaveInListBox; + std::unique_ptr<weld::Widget> m_xCustomizeBox; std::unique_ptr<weld::MenuButton> m_xInsertBtn; std::unique_ptr<weld::MenuButton> m_xModifyBtn; // Used to reset the selected toolbar/menu/context menu std::unique_ptr<weld::Button> m_xResetBtn; // Middle buttons + std::unique_ptr<weld::Widget> m_xCommandButtons; std::unique_ptr<weld::Button> m_xAddCommandButton; std::unique_ptr<weld::Button> m_xRemoveCommandButton; @@ -466,6 +470,11 @@ protected: void ReloadTopLevelListBox( SvxConfigEntry const * pSelection = nullptr ); + static bool IsCommandInMenuList(const SvxConfigEntry *pEntryData, + const SvxEntries *pEntries); + + SvxConfigEntry *CreateCommandFromSelection(const OUString &aURL); + public: virtual ~SvxConfigPage() override; @@ -493,7 +502,7 @@ public: SvxConfigEntry* GetTopLevelSelection() { - return reinterpret_cast<SvxConfigEntry*>(m_xTopLevelListBox->get_active_id().toInt64()); + return weld::fromId<SvxConfigEntry*>(m_xTopLevelListBox->get_active_id()); } /** identifies the module in the given frame. If the frame is <NULL/>, a default @@ -596,7 +605,6 @@ class SvxNewToolbarDialog : public weld::GenericDialogController { private: std::unique_ptr<weld::Entry> m_xEdtName; - std::unique_ptr<weld::Button> m_xBtnOK; public: std::unique_ptr<weld::ComboBox> m_xSaveInListBox; @@ -644,8 +652,8 @@ public: SvxIconSelectorDialog( weld::Window *pWindow, - const css::uno::Reference< css::ui::XImageManager >& rXImageManager, - const css::uno::Reference< css::ui::XImageManager >& rXParentImageManager); + css::uno::Reference< css::ui::XImageManager > xImageManager, + css::uno::Reference< css::ui::XImageManager > xParentImageManager); virtual ~SvxIconSelectorDialog() override; diff --git a/cui/source/inc/cfgutil.hxx b/cui/source/inc/cfgutil.hxx index bd4e8e8e2d76..b1f22e4065b9 100644 --- a/cui/source/inc/cfgutil.hxx +++ b/cui/source/inc/cfgutil.hxx @@ -31,10 +31,13 @@ #include <com/sun/star/script/browse/XBrowseNode.hpp> #include <com/sun/star/uno/XComponentContext.hpp> #include <vcl/weld.hxx> +#include <config_features.h> class Button; class SaveInData; +#if HAVE_FEATURE_SCRIPTING class SfxMacroInfoItem; +#endif struct SfxStyleInfo_Impl { @@ -82,7 +85,8 @@ enum class SfxCfgKind GROUP_SCRIPTCONTAINER = 3, FUNCTION_SCRIPT = 4, GROUP_STYLES = 5, - GROUP_ALLFUNCTIONS = 6 + GROUP_ALLFUNCTIONS = 6, + GROUP_SIDEBARDECKS = 7 }; struct SfxGroupInfo_Impl @@ -200,9 +204,9 @@ class CuiConfigGroupListBox css::uno::Reference< css::uno::XComponentContext > const & xCtx, std::u16string_view docName); - void InitModule(); + sal_Int32 InitModule(); void FillScriptList(const css::uno::Reference< css::script::browse::XBrowseNode >& xRootNode, - const weld::TreeIter* pParentEntry, bool bCheapChildrenOnDemand); + const weld::TreeIter* pParentEntry); void FillFunctionsList(const css::uno::Sequence< css::frame::DispatchInformation >& xCommands); OUString MapCommand2UIName(const OUString& sCommand); @@ -224,8 +228,9 @@ public: void SetFunctionListBox( CuiConfigFunctionListBox *pBox ) { m_pFunctionListBox = pBox; } void GroupSelected(); +#if HAVE_FEATURE_SCRIPTING void SelectMacro(const SfxMacroInfoItem*); - void SelectMacro(std::u16string_view, const OUString&); +#endif void SetStylesInfo(SfxStylesInfo_Impl* pStyles); }; @@ -238,12 +243,11 @@ class SvxScriptSelectorDialog : public weld::GenericDialogController std::unique_ptr<CuiConfigGroupListBox> m_xCategories; std::unique_ptr<CuiConfigFunctionListBox> m_xCommands; std::unique_ptr<weld::Label> m_xLibraryFT; - std::unique_ptr<weld::Label> m_xCategoryFT; std::unique_ptr<weld::Label> m_xMacronameFT; - std::unique_ptr<weld::Label> m_xCommandsFT; std::unique_ptr<weld::Button> m_xOKButton; std::unique_ptr<weld::Button> m_xCancelButton; std::unique_ptr<weld::TextView> m_xDescriptionText; + std::unique_ptr<weld::Frame> m_xDescriptionFrame; DECL_LINK(ClickHdl, weld::Button&, void); DECL_LINK(SelectHdl, weld::TreeView&, void); @@ -259,6 +263,8 @@ public: OUString GetScriptURL() const; void SetRunLabel(); + void SaveLastUsedMacro(); + void LoadLastUsedMacro(); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/inc/chardlg.hxx b/cui/source/inc/chardlg.hxx index bbf227f492fe..b484c7419b83 100644 --- a/cui/source/inc/chardlg.hxx +++ b/cui/source/inc/chardlg.hxx @@ -39,7 +39,7 @@ protected: bool m_bPreviewBackgroundToCharacter; - SvxCharBasePage(weld::Container* pPage, weld::DialogController* pController, const OUString& rUIXMLDescription, const OString& rID, const SfxItemSet& rAttrSet); + SvxCharBasePage(weld::Container* pPage, weld::DialogController* pController, const OUString& rUIXMLDescription, const OUString& rID, const SfxItemSet& rAttrSet); void SetPrevFontWidthScale( const SfxItemSet& rSet ); void SetPrevFontEscapement( sal_uInt8 nProp, sal_uInt8 nEscProp, short nEsc ); @@ -61,11 +61,11 @@ struct SvxCharNamePage_Impl; class SvxCharNamePage : public SvxCharBasePage { private: - static const sal_uInt16 pNameRanges[]; + static const WhichRangesContainer pNameRanges; std::unique_ptr<SvxCharNamePage_Impl> m_pImpl; - std::unique_ptr<weld::Widget> m_xWestFrame; + std::unique_ptr<weld::Notebook> m_xWestern; std::unique_ptr<weld::Label> m_xWestFontNameFT; std::unique_ptr<weld::ComboBox> m_xWestFontNameLB; std::unique_ptr<weld::Label> m_xWestFontStyleFT; @@ -74,10 +74,10 @@ private: std::unique_ptr<FontSizeBox> m_xWestFontSizeLB; std::unique_ptr<weld::Label> m_xWestFontLanguageFT; std::unique_ptr<SvxLanguageBox> m_xWestFontLanguageLB; - std::unique_ptr<weld::Label> m_xWestFontTypeFT; std::unique_ptr<weld::Button> m_xWestFontFeaturesButton; + std::unique_ptr<weld::Label> m_xWestFontTypeFT; - std::unique_ptr<weld::Widget> m_xEastFrame; + std::unique_ptr<weld::Notebook> m_xCJK_CTL; std::unique_ptr<weld::Label> m_xEastFontNameFT; std::unique_ptr<weld::ComboBox> m_xEastFontNameLB; std::unique_ptr<weld::Label> m_xEastFontStyleFT; @@ -86,10 +86,9 @@ private: std::unique_ptr<FontSizeBox> m_xEastFontSizeLB; std::unique_ptr<weld::Label> m_xEastFontLanguageFT; std::unique_ptr<SvxLanguageBox> m_xEastFontLanguageLB; - std::unique_ptr<weld::Label> m_xEastFontTypeFT; std::unique_ptr<weld::Button> m_xEastFontFeaturesButton; + std::unique_ptr<weld::Label> m_xEastFontTypeFT; - std::unique_ptr<weld::Widget> m_xCTLFrame; std::unique_ptr<weld::Label> m_xCTLFontNameFT; std::unique_ptr<weld::ComboBox> m_xCTLFontNameLB; std::unique_ptr<weld::Label> m_xCTLFontStyleFT; @@ -98,14 +97,18 @@ private: std::unique_ptr<FontSizeBox> m_xCTLFontSizeLB; std::unique_ptr<weld::Label> m_xCTLFontLanguageFT; std::unique_ptr<SvxLanguageBox> m_xCTLFontLanguageLB; - std::unique_ptr<weld::Label> m_xCTLFontTypeFT; std::unique_ptr<weld::Button> m_xCTLFontFeaturesButton; + std::unique_ptr<weld::Label> m_xCTLFontTypeFT; + + //for getting FontFeatures + ScopedVclPtrInstance<VirtualDevice> m_xVDev; void Initialize(); const FontList* GetFontList() const; void UpdatePreview_Impl(); void FillStyleBox_Impl(const weld::Widget& rBox); void FillSizeBox_Impl(const weld::Widget& rBox); + void EnableFeatureButton(const weld::Widget& rNameBox); enum LanguageGroup { @@ -140,7 +143,7 @@ public: static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet ); virtual ~SvxCharNamePage() override; - static const sal_uInt16* GetRanges() { return pNameRanges; } + static WhichRangesContainer GetRanges() { return pNameRanges; } virtual void Reset( const SfxItemSet* rSet ) override; virtual bool FillItemSet( SfxItemSet* rSet ) override; @@ -159,12 +162,11 @@ public: class SvxCharEffectsPage : public SvxCharBasePage { private: - static const sal_uInt16 pEffectsRanges[]; + static const WhichRangesContainer pEffectsRanges; bool m_bOrigFontColor; bool m_bNewFontColor; bool m_bEnableNoneFontColor; Color m_aOrigFontColor; - sal_uInt16 m_nHtmlMode; weld::TriStateEnabled m_aOutlineState; weld::TriStateEnabled m_aShadowState; @@ -205,10 +207,10 @@ private: void SelectHdl_Impl(const weld::ComboBox*); DECL_LINK(SelectListBoxHdl_Impl, weld::ComboBox&, void); - DECL_LINK(OutlineBtnClickHdl, weld::ToggleButton&, void); - DECL_LINK(ShadowBtnClickHdl, weld::ToggleButton&, void); - DECL_LINK(HiddenBtnClickHdl, weld::ToggleButton&, void); - DECL_LINK(CbClickHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(OutlineBtnClickHdl, weld::Toggleable&, void); + DECL_LINK(ShadowBtnClickHdl, weld::Toggleable&, void); + DECL_LINK(HiddenBtnClickHdl, weld::Toggleable&, void); + DECL_LINK(CbClickHdl_Impl, weld::Toggleable&, void); DECL_LINK(ColorBoxSelectHdl_Impl, ColorListBox&, void); DECL_LINK(ModifyFontTransparencyHdl_Impl, weld::MetricSpinButton&, void); @@ -220,7 +222,7 @@ public: virtual DeactivateRC DeactivatePage( SfxItemSet* pSet ) override; public: - static const sal_uInt16* GetRanges() { return pEffectsRanges; } + static WhichRangesContainer GetRanges() { return pEffectsRanges; } virtual void Reset( const SfxItemSet* rSet ) override; virtual bool FillItemSet( SfxItemSet* rSet ) override; @@ -233,7 +235,7 @@ public: // class SvxCharPositionPage --------------------------------------------- class SvxCharPositionPage : public SvxCharBasePage { - static const sal_uInt16 pPositionRanges[]; + static const WhichRangesContainer pPositionRanges; private: short m_nSuperEsc; @@ -267,15 +269,16 @@ private: std::unique_ptr<weld::MetricSpinButton> m_xKerningMF; std::unique_ptr<weld::CheckButton> m_xPairKerningBtn; + std::unique_ptr<weld::CheckButton> m_xNoHyphenationBtn; void Initialize(); void UpdatePreview_Impl( sal_uInt8 nProp, sal_uInt8 nEscProp, short nEsc ); void SetEscapement_Impl( SvxEscapement nEsc ); - DECL_LINK(PositionHdl_Impl, weld::ToggleButton&, void); - DECL_LINK(RotationHdl_Impl, weld::ToggleButton&, void); - DECL_LINK(AutoPositionHdl_Impl, weld::ToggleButton&, void); - DECL_LINK(FitToLineHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(PositionHdl_Impl, weld::Toggleable&, void); + DECL_LINK(RotationHdl_Impl, weld::Toggleable&, void); + DECL_LINK(AutoPositionHdl_Impl, weld::Toggleable&, void); + DECL_LINK(FitToLineHdl_Impl, weld::Toggleable&, void); DECL_LINK(KerningModifyHdl_Impl, weld::MetricSpinButton&, void); DECL_LINK(ValueChangedHdl_Impl, weld::MetricSpinButton&, void); DECL_LINK(ScaleWidthModifyHdl_Impl, weld::MetricSpinButton&, void); @@ -289,7 +292,7 @@ public: virtual DeactivateRC DeactivatePage( SfxItemSet* pSet ) override; public: - static const sal_uInt16* GetRanges() { return pPositionRanges; } + static WhichRangesContainer GetRanges() { return pPositionRanges; } virtual void Reset( const SfxItemSet* rSet ) override; virtual bool FillItemSet( SfxItemSet* rSet ) override; @@ -303,7 +306,7 @@ public: class SvxCharTwoLinesPage : public SvxCharBasePage { private: - static const sal_uInt16 pTwoLinesRanges[]; + static const WhichRangesContainer pTwoLinesRanges; sal_uInt16 m_nStartBracketPosition; sal_uInt16 m_nEndBracketPosition; @@ -317,7 +320,7 @@ private: void SelectCharacter(weld::TreeView* pBox); void SetBracket(sal_Unicode cBracket, bool bStart); - DECL_LINK(TwoLinesHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(TwoLinesHdl_Impl, weld::Toggleable&, void); DECL_LINK(CharacterMapHdl_Impl, weld::TreeView&, void); public: @@ -328,7 +331,7 @@ public: virtual void ActivatePage( const SfxItemSet& rSet ) override; virtual DeactivateRC DeactivatePage( SfxItemSet* pSet ) override; - static const sal_uInt16* GetRanges() { return pTwoLinesRanges; } + static WhichRangesContainer GetRanges() { return pTwoLinesRanges; } virtual void Reset( const SfxItemSet* rSet ) override; virtual bool FillItemSet( SfxItemSet* rSet ) override; diff --git a/cui/source/inc/connect.hxx b/cui/source/inc/connect.hxx index ea97a266c882..73891d0ff8e6 100644 --- a/cui/source/inc/connect.hxx +++ b/cui/source/inc/connect.hxx @@ -30,7 +30,7 @@ class SdrView; class SvxConnectionPage : public SfxTabPage { private: - static const sal_uInt16 pRanges[]; + static const WhichRangesContainer pRanges; const SfxItemSet& rOutAttrs; SfxItemSet aAttrSet; const SdrView* pView; @@ -55,13 +55,15 @@ private: DECL_LINK(ChangeAttrEditHdl_Impl, weld::MetricSpinButton&, void); DECL_LINK(ChangeAttrListBoxHdl_Impl, weld::ComboBox&, void); + template<class T> + void SetMetricValueAndSave(const SfxItemSet *rAttrs, weld::MetricSpinButton &rField, TypedWhichId<T> nWhich); public: SvxConnectionPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs); virtual ~SvxConnectionPage() override; static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* ); - static const sal_uInt16* GetRanges() { return pRanges; } + static WhichRangesContainer GetRanges() { return pRanges; } virtual bool FillItemSet( SfxItemSet* ) override; virtual void Reset( const SfxItemSet * ) override; diff --git a/cui/source/inc/cuifmsearch.hxx b/cui/source/inc/cuifmsearch.hxx index 9b3a5f947016..29484ef8f69c 100644 --- a/cui/source/inc/cuifmsearch.hxx +++ b/cui/source/inc/cuifmsearch.hxx @@ -133,7 +133,7 @@ public: inline void SetActiveField(const OUString& strField); private: - void Init(const OUString& strVisibleFields, const OUString& strInitialText); + void Init(std::u16string_view strVisibleFields, const OUString& strInitialText); // only to be used out of the constructors void OnFound(const css::uno::Any& aCursorPos, sal_Int16 nFieldPos); @@ -148,7 +148,8 @@ private: void SaveParams() const; // Handler for the Controls - DECL_LINK(OnClickedFieldRadios, weld::Button&, void); + DECL_LINK(OnToggledSearchRadio, weld::Toggleable&, void); + DECL_LINK(OnToggledFieldRadios, weld::Toggleable&, void); DECL_LINK(OnClickedSearchAgain, weld::Button&, void); DECL_LINK(OnClickedSpecialSettings, weld::Button&, void); @@ -158,7 +159,7 @@ private: DECL_LINK(OnFieldSelected, weld::ComboBox&, void); DECL_LINK(OnFocusGrabbed, weld::Widget&, void); - DECL_LINK(OnCheckBoxToggled, weld::ToggleButton&, void); + DECL_LINK(OnCheckBoxToggled, weld::Toggleable&, void); DECL_LINK(OnContextSelection, weld::ComboBox&, void); diff --git a/cui/source/inc/cuigaldlg.hxx b/cui/source/inc/cuigaldlg.hxx index 4a20724ffd81..cac63d8a6b1e 100644 --- a/cui/source/inc/cuigaldlg.hxx +++ b/cui/source/inc/cuigaldlg.hxx @@ -39,7 +39,7 @@ class SearchProgress; class TakeProgress; class TPGalleryThemeProperties; -typedef std::vector< sal_uLong > TokenList_impl; +typedef std::vector< sal_Int32 > TokenList_impl; struct FilterEntry { @@ -65,7 +65,7 @@ public: SearchThread(SearchProgress* pProgress, TPGalleryThemeProperties* pBrowser, - const INetURLObject& rStartURL); + INetURLObject aStartURL); }; class SearchProgress : public weld::GenericDialogController @@ -81,7 +81,7 @@ private: DECL_LINK(ClickCancelBtn, weld::Button&, void); public: - SearchProgress(weld::Window* pParent, TPGalleryThemeProperties* pTabPage, const INetURLObject& rStartURL); + SearchProgress(weld::Window* pParent, TPGalleryThemeProperties* pTabPage, INetURLObject aStartURL); void LaunchThread(); virtual ~SearchProgress() override; @@ -182,7 +182,7 @@ class GalleryThemeProperties : public SfxTabDialogController { ExchangeData* pData; - virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override; + virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override; public: GalleryThemeProperties(weld::Widget* pParent, ExchangeData* pData, SfxItemSet const * pItemSet); @@ -251,7 +251,7 @@ class TPGalleryThemeProperties : public SfxTabPage void DoPreview(); void EndSearchProgressHdl(sal_Int32 nResult); - DECL_LINK(ClickPreviewHdl, weld::ToggleButton&, void); + DECL_LINK(ClickPreviewHdl, weld::Toggleable&, void); DECL_LINK(ClickSearchHdl, weld::Button&, void); DECL_LINK(ClickTakeHdl, weld::Button&, void); DECL_LINK(ClickTakeAllHdl, weld::Button&, void); @@ -268,7 +268,7 @@ public: void SetXChgData( ExchangeData* pData ); const ExchangeData* GetXChgData() const { return pData; } - void StartSearchFiles( const OUString& _rFolderURL, short _nDlgResult ); + void StartSearchFiles( std::u16string_view _rFolderURL, short _nDlgResult ); static std::unique_ptr<SfxTabPage> Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet); }; diff --git a/cui/source/inc/cuigrfflt.hxx b/cui/source/inc/cuigrfflt.hxx index 05cc36292882..075c74c29f42 100644 --- a/cui/source/inc/cuigrfflt.hxx +++ b/cui/source/inc/cuigrfflt.hxx @@ -79,7 +79,7 @@ protected: public: - GraphicFilterDialog(weld::Window* pParent, const OUString& rUIXMLDescription, const OString& rID, const Graphic& rGraphic); + GraphicFilterDialog(weld::Window* pParent, const OUString& rUIXMLDescription, const OUString& rID, const Graphic& rGraphic); virtual Graphic GetFilteredGraphic(const Graphic& rGraphic, double fScaleX, double fScaleY) = 0; }; @@ -101,7 +101,7 @@ private: std::unique_ptr<weld::MetricSpinButton> mxMtrWidth; std::unique_ptr<weld::MetricSpinButton> mxMtrHeight; std::unique_ptr<weld::CheckButton> mxCbxEdges; - DECL_LINK(CheckBoxModifyHdl, weld::ToggleButton&, void); + DECL_LINK(CheckBoxModifyHdl, weld::Toggleable&, void); DECL_LINK(EditModifyHdl, weld::MetricSpinButton&, void); public: @@ -117,7 +117,7 @@ class GraphicFilterSolarize : public GraphicFilterDialog private: std::unique_ptr<weld::MetricSpinButton> mxMtrThreshold; std::unique_ptr<weld::CheckButton> mxCbxInvert; - DECL_LINK(CheckBoxModifyHdl, weld::ToggleButton&, void); + DECL_LINK(CheckBoxModifyHdl, weld::Toggleable&, void); DECL_LINK(EditModifyHdl, weld::MetricSpinButton&, void); public: diff --git a/cui/source/inc/cuihyperdlg.hxx b/cui/source/inc/cuihyperdlg.hxx index d5842369f45a..8423d8c49759 100644 --- a/cui/source/inc/cuihyperdlg.hxx +++ b/cui/source/inc/cuihyperdlg.hxx @@ -49,7 +49,7 @@ public: SvxHlinkCtrl( sal_uInt16 nId, SfxBindings & rBindings, SvxHpLinkDlg* pDlg); virtual void dispose() override; - virtual void StateChanged( sal_uInt16 nSID, SfxItemState eState, + virtual void StateChangedAtToolBoxControl( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) override; }; @@ -67,12 +67,14 @@ private: std::vector< std::unique_ptr<IconChoicePageData> > maPageList; - OString msCurrentPageId; + OUString msCurrentPageId; + // tdf#90496 - remember last used view in hyperlink dialog + static OUString msRememberedPageId; const SfxItemSet* pSet; std::unique_ptr<SfxItemSet> pOutSet; - SfxItemSet* pExampleSet; - std::unique_ptr<sal_uInt16[]> pRanges; + std::unique_ptr<SfxItemSet> pExampleSet; + WhichRangesContainer pRanges; SvxHlinkCtrl maCtrl; ///< Controller std::unique_ptr<SfxItemSet> mpItemSet; @@ -87,17 +89,17 @@ private: std::unique_ptr<weld::Button> m_xHelpBtn; std::unique_ptr<weld::Button> m_xResetBtn; - DECL_LINK( ChosePageHdl_Impl, const OString&, void ); + DECL_LINK( ChosePageHdl_Impl, const OUString&, void ); - IconChoicePageData* GetPageData ( std::string_view rId ); + IconChoicePageData* GetPageData ( std::u16string_view rId ); - void SwitchPage( const OString& rId ); + void SwitchPage( const OUString& rId ); DECL_LINK( ResetHdl, weld::Button&, void) ; DECL_LINK (ClickOkHdl_Impl, weld::Button&, void ); DECL_LINK (ClickApplyHdl_Impl, weld::Button&, void ); - IconChoicePage* GetTabPage( std::string_view rPageId ) + IconChoicePage* GetTabPage( std::u16string_view rPageId ) { return GetPageData(rPageId)->xPage.get(); } void ActivatePageImpl (); @@ -113,14 +115,14 @@ public: virtual ~SvxHpLinkDlg () override; // interface - void AddTabPage(const OString &rId, CreatePage pCreateFunc /* != NULL */); + void AddTabPage(const OUString &rId, CreatePage pCreateFunc /* != NULL */); - void SetCurPageId( const OString& rId ) { msCurrentPageId = rId; SwitchPage(rId ); } - OString GetCurPageId() const { return msCurrentPageId; } - void ShowPage( const OString& rId ); + void SetCurPageId( const OUString& rId ) { msCurrentPageId = rId; SwitchPage(rId ); } + const OUString& GetCurPageId() const { return msCurrentPageId; } + void ShowPage( const OUString& rId ); /// gives via map converted local slots if applicable - const sal_uInt16* GetInputRanges( const SfxItemPool& ); + WhichRangesContainer GetInputRanges( const SfxItemPool& ); void SetInputSet( const SfxItemSet* pInSet ); void Start(); diff --git a/cui/source/inc/cuioptgenrl.hxx b/cui/source/inc/cuioptgenrl.hxx index 42cdbbec3aa9..0ee8cacb6c50 100644 --- a/cui/source/inc/cuioptgenrl.hxx +++ b/cui/source/inc/cuioptgenrl.hxx @@ -32,10 +32,16 @@ class SvxGeneralTabPage : public SfxTabPage private: // the "Use data for document properties" checkbox std::unique_ptr<weld::CheckButton> m_xUseDataCB; + std::unique_ptr<weld::Widget> m_xUseDataImg; std::unique_ptr<weld::Widget> m_xCryptoFrame; std::unique_ptr<weld::ComboBox> m_xSigningKeyLB; + std::unique_ptr<weld::Label> m_xSigningKeyFT; + std::unique_ptr<weld::Widget> m_xSigningKeyImg; std::unique_ptr<weld::ComboBox> m_xEncryptionKeyLB; + std::unique_ptr<weld::Label> m_xEncryptionKeyFT; + std::unique_ptr<weld::Widget> m_xEncryptionKeyImg; std::unique_ptr<weld::CheckButton> m_xEncryptToSelfCB; + std::unique_ptr<weld::Widget> m_xEncryptToSelfImg; // rows struct Row; std::vector<std::shared_ptr<Row> > vRows; @@ -64,6 +70,8 @@ public: static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet ); + virtual OUString GetAllStrings() override; + virtual bool FillItemSet( SfxItemSet* rSet ) override; virtual void Reset( const SfxItemSet* rSet ) override; }; diff --git a/cui/source/inc/cuitabarea.hxx b/cui/source/inc/cuitabarea.hxx index aa660c6d791d..3e810c5b0dbe 100644 --- a/cui/source/inc/cuitabarea.hxx +++ b/cui/source/inc/cuitabarea.hxx @@ -39,8 +39,8 @@ class ButtonBox { private: sal_Int32 mnCurrentButton; - std::vector<weld::ToggleButton*> maButtonList; - std::map<weld::ToggleButton*, sal_Int32 > maButtonToPos; + std::vector<weld::Toggleable*> maButtonList; + std::map<weld::Toggleable*, sal_Int32 > maButtonToPos; void SelectButtonImpl( sal_Int32 nPos ) { if(mnCurrentButton != NO_BUTTON_SELECTED) @@ -55,21 +55,21 @@ class ButtonBox { mnCurrentButton = NO_BUTTON_SELECTED; }; - void AddButton(weld::ToggleButton* pButton) + void AddButton(weld::Toggleable* pButton) { maButtonList.push_back(pButton); maButtonToPos.insert( std::make_pair(pButton, maButtonList.size() - 1) ); } sal_Int32 GetCurrentButtonPos() const { return mnCurrentButton; } - sal_Int32 GetButtonPos(weld::ToggleButton* pButton) + sal_Int32 GetButtonPos(weld::Toggleable* pButton) { - std::map<weld::ToggleButton*, sal_Int32>::const_iterator aBtnPos = maButtonToPos.find(pButton); + std::map<weld::Toggleable*, sal_Int32>::const_iterator aBtnPos = maButtonToPos.find(pButton); if(aBtnPos != maButtonToPos.end()) return aBtnPos->second; else return -1; } - void SelectButton(weld::ToggleButton* pButton) + void SelectButton(weld::Toggleable* pButton) { sal_Int32 nPos = GetButtonPos(pButton); if(nPos != -1) @@ -108,14 +108,15 @@ class SvxAreaTabDialog final : public SfxTabDialogController ChangeType mnGradientListState; ChangeType mnHatchingListState; - virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override; + virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override; virtual short Ok() override; DECL_LINK(CancelHdlImpl, weld::Button&, void); void SavePalettes(); public: - SvxAreaTabDialog(weld::Window* pParent, const SfxItemSet* pAttr, SdrModel* pModel, bool bShadow); + SvxAreaTabDialog(weld::Window* pParent, const SfxItemSet* pAttr, SdrModel* pModel, bool bShadow, + bool bSlideBackground); void SetNewColorList( XColorListRef const & pColorList ) { mpNewColorList = pColorList; } @@ -126,7 +127,7 @@ public: class SvxTransparenceTabPage : public SfxTabPage { - static const sal_uInt16 pTransparenceRanges[]; + static const WhichRangesContainer pTransparenceRanges; const SfxItemSet& rOutAttrs; @@ -168,9 +169,12 @@ class SvxTransparenceTabPage : public SfxTabPage std::unique_ptr<weld::CustomWeld> m_xCtlBitmapPreview; std::unique_ptr<weld::CustomWeld> m_xCtlXRectPreview; - DECL_LINK(ClickTransOffHdl_Impl, weld::ToggleButton&, void); - DECL_LINK(ClickTransLinearHdl_Impl, weld::ToggleButton&, void); - DECL_LINK(ClickTransGradientHdl_Impl, weld::ToggleButton&, void ); + // MCGR: Preserve ColorStops until we have a UI to edit these + basegfx::BColorStops maColorStops; + + DECL_LINK(ClickTransOffHdl_Impl, weld::Toggleable&, void); + DECL_LINK(ClickTransLinearHdl_Impl, weld::Toggleable&, void); + DECL_LINK(ClickTransGradientHdl_Impl, weld::Toggleable&, void ); DECL_LINK(ModifyTransparentHdl_Impl, weld::MetricSpinButton&, void); DECL_LINK(ModifiedTrgrEditHdl_Impl, weld::MetricSpinButton&, void); DECL_LINK(ModifiedTrgrListBoxHdl_Impl, weld::ComboBox&, void); @@ -183,12 +187,15 @@ class SvxTransparenceTabPage : public SfxTabPage bool InitPreview ( const SfxItemSet& rSet ); void InvalidatePreview (bool bEnable = true ); + // MCGR: Preserve ColorStops until we have a UI to edit these + basegfx::BColorStops createColorStops(); + public: SvxTransparenceTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs); virtual ~SvxTransparenceTabPage() override; static std::unique_ptr<SfxTabPage> Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet*); - static const sal_uInt16* GetRanges() { return pTransparenceRanges; } + static WhichRangesContainer GetRanges() { return pTransparenceRanges; } virtual bool FillItemSet(SfxItemSet*) override; virtual void Reset(const SfxItemSet*) override; @@ -205,7 +212,7 @@ public: class SvxAreaTabPage : public SfxTabPage { - static const sal_uInt16 pAreaRanges[]; + static const WhichRangesContainer pAreaRanges; private: std::unique_ptr<SfxTabPage> m_xFillTabPage; ButtonBox maBox; @@ -235,22 +242,22 @@ private: protected: std::unique_ptr<weld::Container> m_xFillTab; - std::unique_ptr<weld::ToggleButton> m_xBtnNone; - std::unique_ptr<weld::ToggleButton> m_xBtnColor; - std::unique_ptr<weld::ToggleButton> m_xBtnGradient; - std::unique_ptr<weld::ToggleButton> m_xBtnHatch; - std::unique_ptr<weld::ToggleButton> m_xBtnBitmap; - std::unique_ptr<weld::ToggleButton> m_xBtnPattern; + std::unique_ptr<weld::Toggleable> m_xBtnNone; + std::unique_ptr<weld::Toggleable> m_xBtnColor; + std::unique_ptr<weld::Toggleable> m_xBtnGradient; + std::unique_ptr<weld::Toggleable> m_xBtnHatch; + std::unique_ptr<weld::Toggleable> m_xBtnBitmap; + std::unique_ptr<weld::Toggleable> m_xBtnPattern; + std::unique_ptr<weld::Toggleable> m_xBtnUseBackground; void SetOptimalSize(weld::DialogController* pController); - void SelectFillType( weld::ToggleButton& rButton, const SfxItemSet* _pSet = nullptr ); - SfxTabPage* GetFillTabPage() { return m_xFillTabPage.get(); } + void SelectFillType( weld::Toggleable& rButton, const SfxItemSet* _pSet = nullptr ); bool IsBtnClicked() const { return m_bBtnClicked; } private: - DECL_LINK(SelectFillTypeHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(SelectFillTypeHdl_Impl, weld::Toggleable&, void); template< typename TabPage > bool FillItemSet_Impl( SfxItemSet* ); @@ -260,11 +267,17 @@ private: DeactivateRC DeactivatePage_Impl( SfxItemSet* pSet ); public: - SvxAreaTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs); + SvxAreaTabPage(weld::Container* pPage, weld::DialogController* pController, + const SfxItemSet& rInAttrs, bool bSlideBackground = false); virtual ~SvxAreaTabPage() override; static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* ); - static const sal_uInt16* GetRanges() { return pAreaRanges; } + static std::unique_ptr<SfxTabPage> + CreateWithSlideBackground(weld::Container* pPage, weld::DialogController* pController, + const SfxItemSet*); + static WhichRangesContainer GetRanges() { return pAreaRanges; } + + virtual OUString GetAllStrings() override; virtual bool FillItemSet( SfxItemSet* ) override; virtual void Reset( const SfxItemSet * ) override; @@ -279,7 +292,7 @@ public: void SetBitmapList( XBitmapListRef const & pBmpLst) { m_pBitmapList = pBmpLst; } void SetPatternList( XPatternListRef const &pPtrnLst ) { m_pPatternList = pPtrnLst; } virtual void PageCreated(const SfxAllItemSet& aSet) override; - void CreatePage(sal_Int32 nId, SfxTabPage* pTab); + void CreatePage(sal_Int32 nId, SfxTabPage& rTab); void SetColorChgd( ChangeType* pIn ) { m_pnColorListState = pIn; } void SetGrdChgd( ChangeType* pIn ) { m_pnGradientListState = pIn; } void SetHtchChgd( ChangeType* pIn ) { m_pnHatchingListState = pIn; } @@ -290,7 +303,7 @@ public: class SvxShadowTabPage : public SvxTabPage { - static const sal_uInt16 pShadowRanges[]; + static const WhichRangesContainer pShadowRanges; private: const SfxItemSet& m_rOutAttrs; @@ -315,7 +328,7 @@ private: std::unique_ptr<weld::CustomWeld> m_xCtlPosition; std::unique_ptr<weld::CustomWeld> m_xCtlXRectPreview; - DECL_LINK(ClickShadowHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(ClickShadowHdl_Impl, weld::Toggleable&, void); DECL_LINK(ModifyShadowHdl_Impl, weld::MetricSpinButton&, void); DECL_LINK(SelectShadowHdl_Impl, ColorListBox&, void); @@ -324,7 +337,7 @@ public: virtual ~SvxShadowTabPage() override; static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* ); - static const sal_uInt16* GetRanges() { return pShadowRanges; } + static WhichRangesContainer GetRanges() { return pShadowRanges; } virtual bool FillItemSet( SfxItemSet* ) override; virtual void Reset( const SfxItemSet * ) override; @@ -355,6 +368,9 @@ private: XFillAttrSetItem m_aXFillAttr; SfxItemSet& m_rXFSet; + // MCGR: Preserve ColorStops until we have a UI to edit these + basegfx::BColorStops m_aColorStops; + SvxXRectPreview m_aCtlPreview; std::unique_ptr<weld::ComboBox> m_xLbGradientType; std::unique_ptr<weld::Label> m_xFtCenter; @@ -387,13 +403,16 @@ private: DECL_LINK( ModifiedMetricHdl_Impl, weld::MetricSpinButton&, void ); DECL_LINK( ModifiedColorListBoxHdl_Impl, ColorListBox&, void ); DECL_LINK( ModifiedListBoxHdl_Impl, weld::ComboBox&, void ); - DECL_LINK( ChangeAutoStepHdl_Impl, weld::ToggleButton&, void ); + DECL_LINK( ChangeAutoStepHdl_Impl, weld::Toggleable&, void ); DECL_LINK( ModifiedSliderHdl_Impl, weld::Scale&, void ); void ModifiedHdl_Impl(void const *); void SetControlState_Impl( css::awt::GradientStyle eXGS ); sal_Int32 SearchGradientList(std::u16string_view rGradientName); + // MCGR: Preserve ColorStops until we have a UI to edit these + basegfx::BColorStops createColorStops(); + public: SvxGradientTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs); virtual ~SvxGradientTabPage() override; @@ -451,7 +470,7 @@ private: DECL_LINK( ModifiedEditHdl_Impl, weld::MetricSpinButton&, void ); DECL_LINK( ModifiedListBoxHdl_Impl, weld::ComboBox&, void ); DECL_LINK( ModifiedColorListBoxHdl_Impl, ColorListBox&, void ); - DECL_LINK( ToggleHatchBackgroundColor_Impl, weld::ToggleButton&, void ); + DECL_LINK( ToggleHatchBackgroundColor_Impl, weld::Toggleable&, void ); DECL_LINK( ModifiedBackgroundHdl_Impl, ColorListBox&, void ); DECL_LINK( ModifiedSliderHdl_Impl, weld::Scale&, void ); void ModifiedHdl_Impl(void const *); @@ -527,7 +546,7 @@ private: std::unique_ptr<weld::CustomWeld> m_xBitmapLBWin; DECL_LINK( ModifyBitmapHdl, ValueSet*, void ); - DECL_LINK( ClickScaleHdl, weld::Button&, void ); + DECL_LINK( ClickScaleHdl, weld::Toggleable&, void ); DECL_LINK( ModifyBitmapStyleHdl, weld::ComboBox&, void ); DECL_LINK( ModifyBitmapSizeHdl, weld::MetricSpinButton&, void ); DECL_LINK( ModifyBitmapPositionHdl, weld::ComboBox&, void ); @@ -639,10 +658,8 @@ private: ColorModel eCM; - Color aPreviousColor; - Color aCurrentColor; - - css::uno::Reference< css::uno::XComponentContext > m_context; + Color m_aPreviousColor; + NamedColor m_aCurrentColor; PaletteManager maPaletteManager; SvxXRectPreview m_aCtlPreviewOld; @@ -675,6 +692,7 @@ private: std::unique_ptr<weld::Button> m_xBtnAdd; std::unique_ptr<weld::Button> m_xBtnDelete; std::unique_ptr<weld::Button> m_xBtnWorkOn; + std::unique_ptr<weld::Button> m_xMoreColors; std::unique_ptr<weld::CustomWeld> m_xCtlPreviewOld; std::unique_ptr<weld::CustomWeld> m_xCtlPreviewNew; std::unique_ptr<weld::CustomWeld> m_xValSetColorListWin; @@ -692,11 +710,12 @@ private: DECL_LINK(ClickAddHdl_Impl, weld::Button&, void); DECL_LINK(ClickWorkOnHdl_Impl, weld::Button&, void); DECL_LINK(ClickDeleteHdl_Impl, weld::Button&, void); + DECL_STATIC_LINK(SvxColorTabPage, OnMoreColorsClick, weld::Button&, void); DECL_LINK(SelectPaletteLBHdl, weld::ComboBox&, void); DECL_LINK( SelectValSetHdl_Impl, ValueSet*, void ); - DECL_LINK( SelectColorModeHdl_Impl, weld::ToggleButton&, void ); - void ChangeColor(const Color &rNewColor, bool bUpdatePreset = true); + DECL_LINK( SelectColorModeHdl_Impl, weld::Toggleable&, void ); + void ChangeColor(const NamedColor &rNewColor, bool bUpdatePreset = true); void SetColorModel(ColorModel eModel); void ChangeColorModel(); void UpdateColorValues( bool bUpdatePreset = true ); @@ -728,8 +747,6 @@ public: void SetColorChgd( ChangeType* pIn ) { pnColorListState = pIn; } - void SetCtlPreviewOld( const SfxItemSet& rAttrs ) { m_aCtlPreviewOld.SetAttributes( rAttrs ); } - virtual void FillUserData() override; }; diff --git a/cui/source/inc/cuitabline.hxx b/cui/source/inc/cuitabline.hxx index 2839927c1bc8..1122a2017f00 100644 --- a/cui/source/inc/cuitabline.hxx +++ b/cui/source/inc/cuitabline.hxx @@ -19,6 +19,7 @@ #pragma once +#include <memory> #include <vector> #include <editeng/brushitem.hxx> #include <sfx2/tabdlg.hxx> @@ -53,7 +54,7 @@ class SvxLineTabDialog final : public SfxTabDialogController sal_Int32 nPosDashLb; sal_Int32 nPosLineEndLb; - virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override; + virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override; virtual short Ok() override; DECL_LINK(CancelHdlImpl, weld::Button&, void); @@ -86,7 +87,7 @@ struct SvxBmpItemInfo class SvxLineTabPage : public SfxTabPage { - static const sal_uInt16 pLineRanges[]; + static const WhichRangesContainer pLineRanges; private: //#58425# symbols on a line (e. g. StarChart) -> /** a list of symbols to be shown in menu. Symbol at position SID_ATTR_SYMBOLTYPE is to be shown in preview. @@ -95,9 +96,9 @@ private: bool m_bNewSize; /// a graphic to be displayed in the preview in case that an automatic symbol is chosen Graphic m_aAutoSymbolGraphic; - tools::Long m_nSymbolType; + sal_Int32 m_nSymbolType; /// attributes for the shown symbols; only necessary if not equal to line properties - SfxItemSet* m_pSymbolAttr; + std::unique_ptr<SfxItemSet> m_xSymbolAttr; std::vector<OUString> m_aGrfNames; std::vector< std::unique_ptr<SvxBmpItemInfo> > @@ -169,19 +170,19 @@ private: std::unique_ptr<weld::CheckButton> m_xSymbolRatioCB; // handler for gallery popup menu button + size - DECL_LINK(GraphicHdl_Impl, const OString&, void); + DECL_LINK(GraphicHdl_Impl, const OUString&, void); DECL_LINK(SizeHdl_Impl, weld::MetricSpinButton&, void); - DECL_LINK(MenuCreateHdl_Impl, weld::ToggleButton&, void); - DECL_LINK(RatioHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(MenuCreateHdl_Impl, weld::Toggleable&, void); + DECL_LINK(RatioHdl_Impl, weld::Toggleable&, void); DECL_LINK(ClickInvisibleHdl_Impl, weld::ComboBox&, void); void ClickInvisibleHdl_Impl(); - DECL_LINK(ChangeStartClickHdl_Impl, weld::Button&, void); + DECL_LINK(ChangeStartClickHdl_Impl, weld::Toggleable&, void); DECL_LINK(ChangeStartListBoxHdl_Impl, weld::ComboBox&, void); DECL_LINK(ChangeStartModifyHdl_Impl, weld::MetricSpinButton&, void); DECL_LINK(ChangeEndListBoxHdl_Impl, weld::ComboBox&, void); DECL_LINK(ChangeEndModifyHdl_Impl, weld::MetricSpinButton&, void); - DECL_LINK(ChangeEndClickHdl_Impl, weld::Button&, void); + DECL_LINK(ChangeEndClickHdl_Impl, weld::Toggleable&, void); DECL_LINK(ChangePreviewListBoxHdl_Impl, ColorListBox&, void); DECL_LINK(ChangePreviewModifyHdl_Impl, weld::MetricSpinButton&, void); void ChangePreviewHdl_Impl(const weld::MetricSpinButton*); @@ -205,7 +206,7 @@ public: void Construct(); static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* ); - static const sal_uInt16* GetRanges() { return pLineRanges; } + static WhichRangesContainer GetRanges() { return pLineRanges; } virtual bool FillItemSet( SfxItemSet* ) override; virtual void Reset( const SfxItemSet* ) override; @@ -282,10 +283,10 @@ private: DECL_LINK(ChangeNumber2Hdl_Impl, weld::SpinButton&, void); DECL_LINK(ClickLoadHdl_Impl, weld::Button&, void); DECL_LINK(ClickSaveHdl_Impl, weld::Button&, void); - DECL_LINK(ChangeMetricHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(ChangeMetricHdl_Impl, weld::Toggleable&, void); DECL_LINK(SelectTypeListBoxHdl_Impl, weld::ComboBox&, void); void SelectTypeHdl_Impl(const weld::ComboBox*); - void ChangeMetricHdl_Impl(const weld::ToggleButton*); + void ChangeMetricHdl_Impl(const weld::Toggleable*); void CheckChanges_Impl(); diff --git a/cui/source/inc/dbregister.hxx b/cui/source/inc/dbregister.hxx index 3e8b592228bb..3b26e5190cb0 100644 --- a/cui/source/inc/dbregister.hxx +++ b/cui/source/inc/dbregister.hxx @@ -20,6 +20,7 @@ #pragma once #include <rtl/ustring.hxx> +#include <tools/solar.h> #include <sfx2/basedlgs.hxx> #include <sfx2/tabdlg.hxx> @@ -29,7 +30,7 @@ namespace svx class DbRegistrationOptionsPage : public SfxTabPage { private: - sal_uLong m_nOldCount; + size_t m_nOldCount; bool m_bModified; std::unique_ptr<weld::Button> m_xNew; @@ -72,6 +73,8 @@ namespace svx static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet ); + virtual OUString GetAllStrings() override; + virtual bool FillItemSet( SfxItemSet* rSet ) override; virtual void Reset( const SfxItemSet* rSet ) override; virtual void FillUserData() override; @@ -88,7 +91,7 @@ namespace svx SfxItemSet m_aRegistrationItems; protected: - RegistrationItemSetHolder( const SfxItemSet& _rMasterSet ); + RegistrationItemSetHolder( SfxItemSet _aMasterSet ); ~RegistrationItemSetHolder(); protected: diff --git a/cui/source/inc/dialmgr.hxx b/cui/source/inc/dialmgr.hxx index c31fde3a27a3..a26c0b25d32b 100644 --- a/cui/source/inc/dialmgr.hxx +++ b/cui/source/inc/dialmgr.hxx @@ -20,7 +20,8 @@ #pragma once #include <rtl/ustring.hxx> +#include <unotools/resmgr.hxx> -OUString CuiResId(const char* pKey); +OUString CuiResId(TranslateId aKey); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/inc/dlgname.hxx b/cui/source/inc/dlgname.hxx deleted file mode 100644 index 06e70562fc8d..000000000000 --- a/cui/source/inc/dlgname.hxx +++ /dev/null @@ -1,119 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ -#pragma once - -#include <vcl/weld.hxx> - -/// Dialog for editing a name -class SvxNameDialog : public weld::GenericDialogController -{ -private: - std::unique_ptr<weld::Entry> m_xEdtName; - std::unique_ptr<weld::Label> m_xFtDescription; - std::unique_ptr<weld::Button> m_xBtnOK; - - Link<SvxNameDialog&, bool> m_aCheckNameHdl; - Link<SvxNameDialog&, OUString> m_aCheckNameTooltipHdl; - - DECL_LINK(ModifyHdl, weld::Entry&, void); - -public: - SvxNameDialog(weld::Window* pWindow, const OUString& rName, const OUString& rDesc); - - OUString GetName() const { return m_xEdtName->get_text(); } - - /** add a callback Link that is called whenever the content of the edit - field is changed. The Link result determines whether the OK - Button is enabled (> 0) or disabled (== 0). - - @param rLink a Callback declared with DECL_LINK and implemented with - IMPL_LINK, that is executed on modification. - - @param bCheckImmediately If true, the Link is called directly after - setting it. It is recommended to set this flag to true to avoid - an inconsistent state if the initial String (given in the CTOR) - does not satisfy the check condition. - - @todo Remove the parameter bCheckImmediately and incorporate the 'true' - behaviour as default. - */ - void SetCheckNameHdl(const Link<SvxNameDialog&, bool>& rLink, bool bCheckImmediately) - { - m_aCheckNameHdl = rLink; - if (bCheckImmediately) - m_xBtnOK->set_sensitive(rLink.Call(*this)); - } - - void SetCheckNameTooltipHdl(const Link<SvxNameDialog&, OUString>& rLink) - { - m_aCheckNameTooltipHdl = rLink; - m_xBtnOK->set_tooltip_text(rLink.Call(*this)); - } - - void SetEditHelpId(const OString& aHelpId) { m_xEdtName->set_help_id(aHelpId); } -}; - -/** #i68101# - Dialog for editing Object name - plus uniqueness-callback-linkHandler */ -class SvxObjectNameDialog : public weld::GenericDialogController -{ -private: - // name - std::unique_ptr<weld::Entry> m_xEdtName; - - // buttons - std::unique_ptr<weld::Button> m_xBtnOK; - - // callback link for name uniqueness - Link<SvxObjectNameDialog&, bool> aCheckNameHdl; - - DECL_LINK(ModifyHdl, weld::Entry&, void); - -public: - // constructor - SvxObjectNameDialog(weld::Window* pWindow, const OUString& rName); - - // data access - OUString GetName() const { return m_xEdtName->get_text(); } - - // set handler - void SetCheckNameHdl(const Link<SvxObjectNameDialog&, bool>& rLink) { aCheckNameHdl = rLink; } -}; - -/** #i68101# - Dialog for editing Object Title and Description */ -class SvxObjectTitleDescDialog : public weld::GenericDialogController -{ -private: - // title - std::unique_ptr<weld::Entry> m_xEdtTitle; - - // description - std::unique_ptr<weld::TextView> m_xEdtDescription; - -public: - // constructor - SvxObjectTitleDescDialog(weld::Window* pWindow, const OUString& rTitle, const OUString& rDesc); - // data access - OUString GetTitle() const { return m_xEdtTitle->get_text(); } - OUString GetDescription() const { return m_xEdtDescription->get_text(); } -}; - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/inc/fileextcheckdlg.hxx b/cui/source/inc/fileextcheckdlg.hxx new file mode 100644 index 000000000000..968deae77177 --- /dev/null +++ b/cui/source/inc/fileextcheckdlg.hxx @@ -0,0 +1,39 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#pragma once + +#include <sal/config.h> + +#include <vcl/weld.hxx> + +class FileExtCheckDialog : public weld::GenericDialogController +{ +private: + std::unique_ptr<weld::Label> m_pText; + std::unique_ptr<weld::CheckButton> m_pPerformCheck; + std::unique_ptr<weld::Button> m_pOk; + + DECL_LINK(OnOkClick, weld::Button&, void); + +public: + FileExtCheckDialog(weld::Window* pWindow, const OUString& sTitle, const OUString& sMsg); + virtual ~FileExtCheckDialog() override; +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/cui/source/inc/grfpage.hxx b/cui/source/inc/grfpage.hxx index 35653eaf6ade..673062b7593a 100644 --- a/cui/source/inc/grfpage.hxx +++ b/cui/source/inc/grfpage.hxx @@ -49,13 +49,14 @@ class SvxGrfCropPage : public SfxTabPage { friend class VclPtr<SvxGrfCropPage>; - OUString aGraphicName; - Size aOrigSize; - Size aOrigPixelSize; - Size aPageSize; - tools::Long nOldWidth; - tools::Long nOldHeight; - bool bSetOrigSize; + OUString m_aGraphicName; + Size m_aOrigSize; + Size m_aOrigPixelSize; + Size m_aPageSize; + tools::Long m_nOldWidth; + tools::Long m_nOldHeight; + bool m_bSetOrigSize; + sal_Int32 m_aPreferredDPI; SvxCropExample m_aExampleWN; @@ -79,6 +80,8 @@ class SvxGrfCropPage : public SfxTabPage std::unique_ptr<weld::Label> m_xOrigSizeFT; std::unique_ptr<weld::Button> m_xOrigSizePB; + std::unique_ptr<weld::Button> m_xUncropPB; + // Example std::unique_ptr<weld::CustomWeld> m_xExampleWN; @@ -86,13 +89,14 @@ class SvxGrfCropPage : public SfxTabPage DECL_LINK(SizeHdl, weld::MetricSpinButton&, void); DECL_LINK(CropModifyHdl, weld::MetricSpinButton&, void); DECL_LINK(OrigSizeHdl, weld::Button&, void); + DECL_LINK(UncropHdl, weld::Button&, void); void CalcZoom(); void CalcMinMaxBorder(); void GraphicHasChanged(bool bFound); virtual void ActivatePage(const SfxItemSet& rSet) override; - static Size GetGrfOrigSize(const Graphic&); + Size GetGrfOrigSize(const Graphic& rGraphic); public: SvxGrfCropPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet &rSet); static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet *rSet ); diff --git a/cui/source/inc/hangulhanjadlg.hxx b/cui/source/inc/hangulhanjadlg.hxx index 61d7f6317246..57c3284d61b3 100644 --- a/cui/source/inc/hangulhanjadlg.hxx +++ b/cui/source/inc/hangulhanjadlg.hxx @@ -96,7 +96,7 @@ namespace svx bool m_bDocumentMode; Link<LinkParamNone*,void> m_aOptionsChangedLink; - Link<weld::ToggleButton&,void> m_aClickByCharacterLink; + Link<weld::Toggleable&,void> m_aClickByCharacterLink; std::unique_ptr<weld::Button> m_xFind; std::unique_ptr<weld::Button> m_xIgnore; @@ -118,7 +118,7 @@ namespace svx std::unique_ptr<weld::CheckButton> m_xHanjaOnly; std::unique_ptr<weld::CheckButton> m_xReplaceByChar; public: - HangulHanjaConversionDialog(weld::Window* pParent); + HangulHanjaConversionDialog(weld::Widget* pParent); virtual ~HangulHanjaConversionDialog() override; public: @@ -128,8 +128,8 @@ namespace svx void SetChangeHdl( const Link<weld::Button&,void>& _rHdl ); void SetChangeAllHdl( const Link<weld::Button&,void>& _rHdl ); - void SetClickByCharacterHdl( const Link<weld::ToggleButton&,void>& _rHdl ); - void SetConversionFormatChangedHdl( const Link<weld::Button&,void>& _rHdl ); + void SetClickByCharacterHdl( const Link<weld::Toggleable&,void>& _rHdl ); + void SetConversionFormatChangedHdl( const Link<weld::Toggleable&,void>& _rHdl ); void SetFindHdl( const Link<weld::Button&,void>& _rHdl ); OUString GetCurrentString( ) const; @@ -164,8 +164,8 @@ namespace svx DECL_LINK( OnOption, weld::Button&, void ); DECL_LINK( OnSuggestionModified, weld::Entry&, void ); DECL_LINK( OnSuggestionSelected, SuggestionDisplay&, void ); - DECL_LINK( OnConversionDirectionClicked, weld::ToggleButton&, void ); - DECL_LINK( ClickByCharacterHdl, weld::ToggleButton&, void ); + DECL_LINK( OnConversionDirectionClicked, weld::Toggleable&, void ); + DECL_LINK( ClickByCharacterHdl, weld::Toggleable&, void ); /// fill the suggestion list box with suggestions for the actual input void FillSuggestions( const css::uno::Sequence< OUString >& _rSuggestions ); diff --git a/cui/source/inc/helpids.h b/cui/source/inc/helpids.h index 437552504d95..8f9af7fd9570 100644 --- a/cui/source/inc/helpids.h +++ b/cui/source/inc/helpids.h @@ -18,26 +18,35 @@ */ #pragma once -#define HID_OPTIONS_COLORCONFIG_SAVE_SCHEME "CUI_HID_OPTIONS_COLORCONFIG_SAVE_SCHEME" -#define HID_OFA_FONT_SUBST_CLB "CUI_HID_OFA_FONT_SUBST_CLB" -#define HID_DBPATH_CTL_PATH "CUI_HID_DBPATH_CTL_PATH" +#include <rtl/ustring.hxx> + +inline constexpr OUString HID_OPTIONS_COLORCONFIG_SAVE_SCHEME + = u"CUI_HID_OPTIONS_COLORCONFIG_SAVE_SCHEME"_ustr; +inline constexpr OUString HID_OFA_FONT_SUBST_CLB = u"CUI_HID_OFA_FONT_SUBST_CLB"_ustr; +inline constexpr OUString HID_DBPATH_CTL_PATH = u"CUI_HID_DBPATH_CTL_PATH"_ustr; #define HID_DBPATH_HEADERBAR "CUI_HID_DBPATH_HEADERBAR" -#define HID_OFADLG_TREELISTBOX "CUI_HID_OFADLG_TREELISTBOX" -#define HID_SVX_CONFIG_TOOLBAR "CUI_HID_SVX_CONFIG_TOOLBAR" -#define HID_SVX_CONFIG_TOOLBAR_CONTENTS "CUI_HID_SVX_CONFIG_TOOLBAR_CONTENTS" -#define HID_SVX_CONFIG_NOTEBOOKBAR_CONTENTS "CUI_HID_SVX_CONFIG_NOTEBOOKBAR_CONTENTS" -#define HID_HANGULDLG_SUGGESTIONS_GRID "CUI_HID_HANGULDLG_SUGGESTIONS_GRID" -#define HID_HANGULDLG_SUGGESTIONS_LIST "CUI_HID_HANGULDLG_SUGGESTIONS_LIST" -#define HID_SVX_CONFIG_NAME_SUBMENU "CUI_HID_SVX_CONFIG_NAME_SUBMENU" -#define HID_SVX_CONFIG_RENAME_MENU "CUI_HID_SVX_CONFIG_RENAME_MENU" -#define HID_SVX_CONFIG_RENAME_MENU_ITEM "CUI_HID_SVX_CONFIG_RENAME_MENU_ITEM" -#define HID_SVX_CONFIG_RENAME_TOOLBAR "CUI_HID_SVX_CONFIG_RENAME_TOOLBAR" -#define HID_SVX_CONFIG_RENAME_TOOLBAR_ITEM "CUI_HID_SVX_CONFIG_RENAME_TOOLBAR_ITEM" -#define HID_SVX_UP_TOOLBAR_ITEM "CUI_HID_SVX_UP_TOOLBAR_ITEM" -#define HID_SVX_DOWN_TOOLBAR_ITEM "CUI_HID_SVX_DOWN_TOOLBAR_ITEM" -#define HID_SVX_SAVE_IN "CUI_HID_SVX_SAVE_IN" -#define HID_SVX_TOPLEVELLISTBOX "CUI_HID_SVX_TOPLEVELLISTBOX" -#define HID_SVX_DESCFIELD "CUI_HID_SVX_DESCFIELD" -#define HID_MACRO_HEADERTABLISTBOX "CUI_HID_MACRO_HEADERTABLISTBOX" +inline constexpr OUString HID_OFADLG_TREELISTBOX = u"CUI_HID_OFADLG_TREELISTBOX"_ustr; +inline constexpr OUString HID_SVX_CONFIG_TOOLBAR = u"CUI_HID_SVX_CONFIG_TOOLBAR"_ustr; +inline constexpr OUString HID_SVX_CONFIG_TOOLBAR_CONTENTS + = u"CUI_HID_SVX_CONFIG_TOOLBAR_CONTENTS"_ustr; +inline constexpr OUString HID_SVX_CONFIG_NOTEBOOKBAR_CONTENTS + = u"CUI_HID_SVX_CONFIG_NOTEBOOKBAR_CONTENTS"_ustr; +inline constexpr OUString HID_HANGULDLG_SUGGESTIONS_GRID + = u"CUI_HID_HANGULDLG_SUGGESTIONS_GRID"_ustr; +inline constexpr OUString HID_HANGULDLG_SUGGESTIONS_LIST + = u"CUI_HID_HANGULDLG_SUGGESTIONS_LIST"_ustr; +inline constexpr OUString HID_SVX_CONFIG_NAME_SUBMENU = u"CUI_HID_SVX_CONFIG_NAME_SUBMENU"_ustr; +inline constexpr OUString HID_SVX_CONFIG_RENAME_MENU = u"CUI_HID_SVX_CONFIG_RENAME_MENU"_ustr; +inline constexpr OUString HID_SVX_CONFIG_RENAME_MENU_ITEM + = u"CUI_HID_SVX_CONFIG_RENAME_MENU_ITEM"_ustr; +inline constexpr OUString HID_SVX_CONFIG_RENAME_TOOLBAR = u"CUI_HID_SVX_CONFIG_RENAME_TOOLBAR"_ustr; +inline constexpr OUString HID_SVX_CONFIG_RENAME_TOOLBAR_ITEM + = u"CUI_HID_SVX_CONFIG_RENAME_TOOLBAR_ITEM"_ustr; +inline constexpr OUString HID_SVX_UP_TOOLBAR_ITEM = u"CUI_HID_SVX_UP_TOOLBAR_ITEM"_ustr; +inline constexpr OUString HID_SVX_DOWN_TOOLBAR_ITEM = u"CUI_HID_SVX_DOWN_TOOLBAR_ITEM"_ustr; +inline constexpr OUString HID_SVX_SAVE_IN = u"CUI_HID_SVX_SAVE_IN"_ustr; +inline constexpr OUString HID_SVX_TOPLEVELLISTBOX = u"CUI_HID_SVX_TOPLEVELLISTBOX"_ustr; +inline constexpr OUString HID_SVX_DESCFIELD = u"CUI_HID_SVX_DESCFIELD"_ustr; +inline constexpr OUString HID_MACRO_HEADERTABLISTBOX = u"CUI_HID_MACRO_HEADERTABLISTBOX"_ustr; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/inc/hldocntp.hxx b/cui/source/inc/hldocntp.hxx index 95a11dd9f1fc..68bce1650a00 100644 --- a/cui/source/inc/hldocntp.hxx +++ b/cui/source/inc/hldocntp.hxx @@ -34,7 +34,7 @@ private: std::unique_ptr<weld::Button> m_xBtCreate; std::unique_ptr<weld::TreeView> m_xLbDocTypes; - bool ImplGetURLObject( const OUString& rPath, const OUString& rBase, INetURLObject& aURLObject ) const; + bool ImplGetURLObject( const OUString& rPath, std::u16string_view rBase, INetURLObject& aURLObject ) const; void FillDocumentList (); DECL_LINK (ClickNewHdl_Impl, weld::Button&, void ); @@ -42,7 +42,7 @@ private: protected: void FillDlgFields(const OUString& rStrURL) override; - void GetCurentItemData ( OUString& rStrURL, OUString& aStrName, + void GetCurrentItemData ( OUString& rStrURL, OUString& aStrName, OUString& aStrIntName, OUString& aStrFrame, SvxLinkInsertMode& eMode ) override; @@ -52,7 +52,6 @@ public: static std::unique_ptr<IconChoicePage> Create(weld::Container* pWindow, SvxHpLinkDlg* pDlg, const SfxItemSet* pItemSet); - virtual bool AskApply () override; virtual void DoApply () override; virtual void SetInitFocus() override; diff --git a/cui/source/inc/hldoctp.hxx b/cui/source/inc/hldoctp.hxx index 73f6218eabc5..61005a42d635 100644 --- a/cui/source/inc/hldoctp.hxx +++ b/cui/source/inc/hldoctp.hxx @@ -49,10 +49,10 @@ private: DECL_LINK( TimeoutHdl_Impl, Timer *, void ); ///< Handler for timer -timeout enum class EPathType { Invalid, ExistsFile }; - static EPathType GetPathType ( const OUString& rStrPath ); + static EPathType GetPathType ( std::u16string_view rStrPath ); void FillDlgFields(const OUString& rStrURL) override; - void GetCurentItemData ( OUString& rStrURL, OUString& aStrName, + void GetCurrentItemData ( OUString& rStrURL, OUString& aStrName, OUString& aStrIntName, OUString& aStrFrame, SvxLinkInsertMode& eMode ) override; virtual bool ShouldOpenMarkWnd () override {return m_bMarkWndOpen;} diff --git a/cui/source/inc/hlinettp.hxx b/cui/source/inc/hlinettp.hxx index c317fc122fd4..366d8243a8b6 100644 --- a/cui/source/inc/hlinettp.hxx +++ b/cui/source/inc/hlinettp.hxx @@ -18,6 +18,10 @@ */ #pragma once +#include <sal/config.h> + +#include <string_view> + #include "cuihyperdlg.hxx" #include "hltpbase.hxx" @@ -30,47 +34,31 @@ class SvxHyperlinkInternetTp : public SvxHyperlinkTabPageBase { private: - OUString maStrOldUser; - OUString maStrOldPassword; - bool m_bMarkWndOpen; - std::unique_ptr<weld::RadioButton> m_xRbtLinktypInternet; - std::unique_ptr<weld::RadioButton> m_xRbtLinktypFTP; std::unique_ptr<SvxHyperURLBox> m_xCbbTarget; std::unique_ptr<weld::Label> m_xFtTarget; - std::unique_ptr<weld::Label> m_xFtLogin; - std::unique_ptr<weld::Entry> m_xEdLogin; - std::unique_ptr<weld::Label> m_xFtPassword; - std::unique_ptr<weld::Entry> m_xEdPassword; - std::unique_ptr<weld::CheckButton> m_xCbAnonymous; - - DECL_LINK( Click_SmartProtocol_Impl, weld::Button&, void ); ///< Radiobutton clicked: Type HTTP or FTP - DECL_LINK( ClickAnonymousHdl_Impl, weld::Button&, void ); ///< Checkbox : Anonymous User - DECL_LINK( ModifiedLoginHdl_Impl, weld::Entry&, void ); ///< Contents of editfield "Login" modified + DECL_LINK( LostFocusTargetHdl_Impl, weld::Widget&, void ); ///< Combobox "Target" lost its focus DECL_LINK( ModifiedTargetHdl_Impl, weld::ComboBox&, void ); ///< Contents of editfield "Target" modified DECL_LINK( TimeoutHdl_Impl, Timer *, void); ///< Handler for timer -timeout - void SetScheme(const OUString& rScheme); + void SetScheme(std::u16string_view rScheme); void RemoveImproperProtocol(std::u16string_view rProperScheme); - OUString GetSchemeFromButtons() const; - INetProtocol GetSmartProtocolFromButtons() const; + static INetProtocol GetSmartProtocolFromButtons(); OUString CreateAbsoluteURL() const; - void setAnonymousFTPUser(); - void setFTPUser(const OUString& rUser, const OUString& rPassword); void RefreshMarkWindow(); protected: virtual void FillDlgFields(const OUString& rStrURL) override; - virtual void GetCurentItemData ( OUString& rStrURL, OUString& aStrName, + virtual void GetCurrentItemData ( OUString& rStrURL, OUString& aStrName, OUString& aStrIntName, OUString& aStrFrame, SvxLinkInsertMode& eMode ) override; - virtual bool ShouldOpenMarkWnd () override {return ( m_bMarkWndOpen && m_xRbtLinktypInternet->get_active() );} + virtual bool ShouldOpenMarkWnd () override { return false; } virtual void SetMarkWndShouldOpen (bool bOpen) override {m_bMarkWndOpen=bOpen;} public: diff --git a/cui/source/inc/hlmailtp.hxx b/cui/source/inc/hlmailtp.hxx index 8b8bc39d88cb..b7c76c52cb18 100644 --- a/cui/source/inc/hlmailtp.hxx +++ b/cui/source/inc/hlmailtp.hxx @@ -31,7 +31,6 @@ class SvxHyperlinkMailTp : public SvxHyperlinkTabPageBase private: std::unique_ptr<SvxHyperURLBox> m_xCbbReceiver; std::unique_ptr<weld::Button> m_xBtAdrBook; - std::unique_ptr<weld::Label> m_xFtSubject; std::unique_ptr<weld::Entry> m_xEdSubject; DECL_STATIC_LINK(SvxHyperlinkMailTp, ClickAdrBookHdl_Impl, weld::Button&, void); @@ -45,7 +44,7 @@ private: protected: virtual void FillDlgFields(const OUString& rStrURL) override; - virtual void GetCurentItemData ( OUString& rStrURL, OUString& aStrName, + virtual void GetCurrentItemData ( OUString& rStrURL, OUString& aStrName, OUString& aStrIntName, OUString& aStrFrame, SvxLinkInsertMode& eMode ) override; diff --git a/cui/source/inc/hlmarkwn.hxx b/cui/source/inc/hlmarkwn.hxx index 9552bc10097c..d88dddab208d 100644 --- a/cui/source/inc/hlmarkwn.hxx +++ b/cui/source/inc/hlmarkwn.hxx @@ -30,8 +30,6 @@ class SvxHyperlinkTabPageBase; class SvxHlinkDlgMarkWnd : public weld::GenericDialogController { private: - friend class SvxHlmarkTreeLBox; - SvxHyperlinkTabPageBase* mpParent; sal_uInt16 mnError; diff --git a/cui/source/inc/hltpbase.hxx b/cui/source/inc/hltpbase.hxx index 00cda67f9d02..acb84198ad25 100644 --- a/cui/source/inc/hltpbase.hxx +++ b/cui/source/inc/hltpbase.hxx @@ -23,7 +23,7 @@ #include <sfx2/dispatch.hxx> #include <svtools/inettbc.hxx> #include <vcl/timer.hxx> -#include <vcl/waitobj.hxx> +#include <vcl/locktoplevels.hxx> #include <com/sun/star/frame/XFrame.hpp> #include <svx/hlnkitem.hxx> @@ -75,7 +75,7 @@ protected: void InitStdControls (); void FillStandardDlgFields ( const SvxHyperlinkItem* pHyperlinkItem ); virtual void FillDlgFields(const OUString& rStrURL) = 0; - virtual void GetCurentItemData ( OUString& rStrURL, OUString& aStrName, + virtual void GetCurrentItemData ( OUString& rStrURL, OUString& aStrName, OUString& aStrIntName, OUString& aStrFrame, SvxLinkInsertMode& eMode ) = 0; @@ -94,7 +94,7 @@ public: weld::Container* pParent, SvxHpLinkDlg* pDlg, const OUString& rUIXMLDescription, - const OString& rID, + const OUString& rID, const SfxItemSet* pItemSet ); virtual ~SvxHyperlinkTabPageBase () override; @@ -105,7 +105,6 @@ public: mxDocumentFrame = rxDocumentFrame; } - virtual bool AskApply (); virtual void DoApply (); virtual void SetInitFocus(); virtual void SetMarkStr ( const OUString& aStrMark ); diff --git a/cui/source/inc/hyphen.hxx b/cui/source/inc/hyphen.hxx index 4625d2491e18..0b304e9439f9 100644 --- a/cui/source/inc/hyphen.hxx +++ b/cui/source/inc/hyphen.hxx @@ -71,8 +71,8 @@ class SvxHyphenWordDialog : public SfxDialogController DECL_LINK(CursorChangeHdl_Impl, weld::Entry&, void); public: - SvxHyphenWordDialog(const OUString &rWord, LanguageType nLang, - weld::Window* pParent, + SvxHyphenWordDialog(OUString aWord, LanguageType nLang, + weld::Widget* pParent, css::uno::Reference<css::linguistic2::XHyphenator> const &xHyphen, SvxSpellWrapper* pWrapper); virtual ~SvxHyphenWordDialog() override; diff --git a/cui/source/inc/iconcdlg.hxx b/cui/source/inc/iconcdlg.hxx index 5cf1ab54f6d7..e31aaa74e0db 100644 --- a/cui/source/inc/iconcdlg.hxx +++ b/cui/source/inc/iconcdlg.hxx @@ -20,6 +20,7 @@ #include <rtl/ustring.hxx> #include <sfx2/tabdlg.hxx> +#include <utility> // forward-declarations struct IconChoicePageData; @@ -31,21 +32,6 @@ class SfxItemSet; // Create-Function typedef std::unique_ptr<IconChoicePage> (*CreatePage)(weld::Container* pParent, SvxHpLinkDlg* pDlg, const SfxItemSet* pAttrSet); -/// Data-structure for pages in dialog -struct IconChoicePageData -{ - OString sId; - std::unique_ptr<IconChoicePage> xPage; ///< the TabPage itself - bool bRefresh; ///< Flag: page has to be newly initialized - - // constructor - IconChoicePageData(const OString& rId, std::unique_ptr<IconChoicePage> xInPage) - : sId(rId) - , xPage(std::move(xInPage)) - , bRefresh(false) - {} -}; - class IconChoicePage { protected: @@ -58,12 +44,12 @@ private: protected: - IconChoicePage(weld::Container* pParent, const OUString& rUIXMLDescription, const OString& rID, const SfxItemSet* pItemSet); + IconChoicePage(weld::Container* pParent, const OUString& rUIXMLDescription, const OUString& rID, const SfxItemSet* pItemSet); public: virtual ~IconChoicePage(); - OString GetHelpId() const { return xContainer->get_help_id(); } + OUString GetHelpId() const { return xContainer->get_help_id(); } const SfxItemSet& GetItemSet() const { return *pSet; } @@ -78,4 +64,19 @@ public: virtual bool QueryClose(); }; +/// Data-structure for pages in dialog +struct IconChoicePageData +{ + OUString sId; + std::unique_ptr<IconChoicePage> xPage; ///< the TabPage itself + bool bRefresh; ///< Flag: page has to be newly initialized + + // constructor + IconChoicePageData(OUString aId, std::unique_ptr<IconChoicePage> xInPage) + : sId(std::move(aId)) + , xPage(std::move(xInPage)) + , bRefresh(false) + {} +}; + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/inc/insdlg.hxx b/cui/source/inc/insdlg.hxx index d6bd30ed395d..61c707507087 100644 --- a/cui/source/inc/insdlg.hxx +++ b/cui/source/inc/insdlg.hxx @@ -36,12 +36,12 @@ protected: comphelper::EmbeddedObjectContainer aCnt; InsertObjectDialog_Impl(weld::Window * pParent, - const OUString& rUIXMLDescription, const OString& rID, - const css::uno::Reference < css::embed::XStorage >& xStorage); + const OUString& rUIXMLDescription, const OUString& rID, + css::uno::Reference < css::embed::XStorage > xStorage); public: const css::uno::Reference<css::embed::XEmbeddedObject>& GetObject() const { return m_xObj; } virtual css::uno::Reference<css::io::XInputStream> GetIconIfIconified(OUString* pGraphicMediaType); - void SetHelpId(const OString& rHelpId) { m_xDialog->set_help_id(rHelpId); } + void SetHelpId(const OUString& rHelpId) { m_xDialog->set_help_id(rHelpId); } virtual bool IsCreateNew() const; }; @@ -64,7 +64,7 @@ class SvInsertOleDlg : public InsertObjectDialog_Impl DECL_LINK(DoubleClickHdl, weld::TreeView&, bool); DECL_LINK(BrowseHdl, weld::Button&, void); - DECL_LINK(RadioHdl, weld::Button&, void); + DECL_LINK(RadioHdl, weld::Toggleable&, void); bool IsCreateNew() const override { return m_xRbNewObject->get_active(); } public: @@ -99,7 +99,7 @@ private: std::unique_ptr<weld::CheckButton> m_xCBMarginHeightDefault; DECL_LINK(OpenHdl, weld::Button&, void); - DECL_LINK(CheckHdl, weld::Button&, void); + DECL_LINK(CheckHdl, weld::Toggleable&, void); void Init(); diff --git a/cui/source/inc/insrc.hxx b/cui/source/inc/insrc.hxx index e003795383dc..9ab7f0fed466 100644 --- a/cui/source/inc/insrc.hxx +++ b/cui/source/inc/insrc.hxx @@ -22,7 +22,7 @@ #include <svx/svxdlg.hxx> #include <vcl/weld.hxx> -class SvxInsRowColDlg : public SvxAbstractInsRowColDlg, public weld::GenericDialogController +class SvxInsRowColDlg : public weld::GenericDialogController { private: std::unique_ptr<weld::SpinButton> m_xCountEdit; @@ -30,10 +30,23 @@ private: std::unique_ptr<weld::RadioButton> m_xAfterBtn; public: - SvxInsRowColDlg(weld::Window* pParent, bool bCol, const OString& rHelpId); + SvxInsRowColDlg(weld::Window* pParent, bool bCol, const OUString& rHelpId); - virtual short Execute() override; + bool isInsertBefore() const; + sal_uInt16 getInsertCount() const; +}; + +class SvxAbstractInsRowColDlg_Impl final : public SvxAbstractInsRowColDlg +{ + std::shared_ptr<SvxInsRowColDlg> m_xDlg; +public: + explicit SvxAbstractInsRowColDlg_Impl(std::shared_ptr<SvxInsRowColDlg> p) + : m_xDlg(std::move(p)) + { + } + virtual short Execute() override; + virtual bool StartExecuteAsync(AsyncContext& rCtx) override; virtual bool isInsertBefore() const override; virtual sal_uInt16 getInsertCount() const override; }; diff --git a/cui/source/inc/labdlg.hxx b/cui/source/inc/labdlg.hxx index d55c8b8d44ec..5d7f778d5c38 100644 --- a/cui/source/inc/labdlg.hxx +++ b/cui/source/inc/labdlg.hxx @@ -34,7 +34,7 @@ const sal_uInt16 CAPTYPE_BITMAPS_COUNT = 3; class SvxCaptionTabPage : public SfxTabPage { private: - static const sal_uInt16 pCaptionRanges[]; + static const WhichRangesContainer pCaptionRanges; Image m_aBmpCapTypes[CAPTYPE_BITMAPS_COUNT]; @@ -73,7 +73,7 @@ private: void SetupType_Impl( SdrCaptionType nType ); DECL_LINK(ExtensionSelectHdl_Impl, weld::ComboBox&, void); DECL_LINK(PositionSelectHdl_Impl, weld::ComboBox&, void); - DECL_LINK(LineOptHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(LineOptHdl_Impl, weld::Toggleable&, void); DECL_LINK(SelectCaptTypeHdl_Impl, ValueSet*, void); public: @@ -81,7 +81,7 @@ public: virtual ~SvxCaptionTabPage() override; static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* ); - static const sal_uInt16* GetRanges() { return pCaptionRanges; } + static WhichRangesContainer GetRanges() { return pCaptionRanges; } virtual bool FillItemSet( SfxItemSet* ) override; virtual void Reset( const SfxItemSet * ) override; @@ -102,7 +102,7 @@ private: Link<SvxSwFrameValidation&,void> aValidateLink; - virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override; + virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override; public: SvxCaptionTabDialog(weld::Window* pParent, const SdrView* pView, diff --git a/cui/source/inc/linkdlg.hxx b/cui/source/inc/linkdlg.hxx index 3549ef0eb291..1e54954ec555 100644 --- a/cui/source/inc/linkdlg.hxx +++ b/cui/source/inc/linkdlg.hxx @@ -58,8 +58,7 @@ class SvBaseLinksDlg : public weld::GenericDialogController DECL_LINK(LinksSelectHdl, weld::TreeView&, void); DECL_LINK(LinksDoubleClickHdl, weld::TreeView&, bool); - DECL_LINK(AutomaticClickHdl, weld::Button&, void); - DECL_LINK(ManualClickHdl, weld::Button&, void); + DECL_LINK(ToggleHdl, weld::Toggleable&, void); DECL_LINK(UpdateNowClickHdl, weld::Button&, void); DECL_LINK(ChangeSourceClickHdl, weld::Button&, void); DECL_LINK(BreakLinkClickHdl, weld::Button&, void); diff --git a/cui/source/inc/macroass.hxx b/cui/source/inc/macroass.hxx index ea365b225747..ba3c1de11717 100644 --- a/cui/source/inc/macroass.hxx +++ b/cui/source/inc/macroass.hxx @@ -29,6 +29,7 @@ class SfxMacroTabPage_; class SfxMacroTabPage_Impl; +class Timer; class SfxMacroTabPage final : public SfxTabPage { diff --git a/cui/source/inc/macropg.hxx b/cui/source/inc/macropg.hxx index 2c1bd1a1259a..2f2471bb09eb 100644 --- a/cui/source/inc/macropg.hxx +++ b/cui/source/inc/macropg.hxx @@ -25,17 +25,19 @@ #include <com/sun/star/util/XModifiable.hpp> #include <com/sun/star/uno/Reference.hxx> #include <rtl/ustring.hxx> +#include <unotools/resmgr.hxx> #include <unordered_map> #include <vector> -typedef std::unordered_map< OUString, std::pair< OUString, OUString > > EventsHash; +typedef std::pair<OUString, OUString> EventPair; +typedef std::unordered_map<OUString, EventPair> EventsHash; struct EventDisplayName { const char* pAsciiEventName; - const char* pEventResourceID; - EventDisplayName(const char* pAsciiName, const char* pResId) + TranslateId pEventResourceID; + EventDisplayName(const char* pAsciiName, TranslateId pResId) : pAsciiEventName(pAsciiName) , pEventResourceID(pResId) { @@ -53,8 +55,10 @@ class SvxMacroTabPage_ : public SfxTabPage DECL_LINK( SelectEvent_Impl, weld::TreeView&, void ); DECL_LINK( AssignDeleteHdl_Impl, weld::Button&, void ); DECL_LINK( DoubleClickHdl_Impl, weld::TreeView&, bool ); + DECL_LINK( DeleteAllHdl_Impl, weld::Button&, void ); - static void GenericHandler_Impl( SvxMacroTabPage_* pThis, const weld::Button* pBtn ); + void GenericHandler_Impl(const weld::Button* pBtn); + const EventPair* LookupEvent(const OUString& rEventName); css::uno::Reference< css::container::XNameReplace > m_xAppEvents; protected: @@ -63,14 +67,15 @@ protected: css::uno::Reference< css::util::XModifiable > m_xModifiable; EventsHash m_appEventsHash; EventsHash m_docEventsHash; + int m_nAssignedEvents; bool bDocModified, bAppEvents, bInitialized; std::vector< EventDisplayName > aDisplayNames; - SvxMacroTabPage_(weld::Container* pPage, weld::DialogController* pController, const OUString& rUIXMLDescription, const OString& rID, const SfxItemSet& rItemSet); + SvxMacroTabPage_(weld::Container* pPage, weld::DialogController* pController, const OUString& rUIXMLDescription, const OUString& rID, const SfxItemSet& rItemSet); void EnableButtons(); static css::uno::Any GetPropsByName( const OUString& eventName, EventsHash& eventsHash ); - static std::pair< OUString, OUString > GetPairFromAny( const css::uno::Any& aAny ); + static EventPair GetPairFromAny(const css::uno::Any& aAny); public: @@ -101,7 +106,7 @@ public: // class SvxMacroAssignDlg -------------------------------------------------- -typedef const sal_uInt16* (*GetTabPageRanges)(); // gives international Which-values +typedef WhichRangesContainer (*GetTabPageRanges)(); // gives international Which-values class SvxMacroAssignSingleTabDialog : public SfxSingleTabDialogController { diff --git a/cui/source/inc/measure.hxx b/cui/source/inc/measure.hxx index 8f8836d0b8ed..7e18c6485556 100644 --- a/cui/source/inc/measure.hxx +++ b/cui/source/inc/measure.hxx @@ -28,7 +28,7 @@ class SdrView; class SvxMeasurePage : public SvxTabPage { private: - static const sal_uInt16 pRanges[]; + static const WhichRangesContainer pRanges; const SfxItemSet& rOutAttrs; SfxItemSet aAttrSet; @@ -57,11 +57,11 @@ private: void FillUnitLB(); - DECL_LINK(ClickAutoPosHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(ClickAutoPosHdl_Impl, weld::Toggleable&, void); DECL_LINK(ChangeAttrEditHdl_Impl, weld::MetricSpinButton&, void); DECL_LINK(ChangeAttrSpinHdl_Impl, weld::SpinButton&, void); DECL_LINK(ChangeAttrListBoxHdl_Impl, weld::ComboBox&, void); - DECL_LINK(ChangeAttrClickHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(ChangeAttrClickHdl_Impl, weld::Toggleable&, void); void ChangeAttrHdl_Impl(void const *); public: @@ -70,7 +70,7 @@ public: virtual ~SvxMeasurePage() override; static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* ); - static const sal_uInt16* GetRanges() { return pRanges; } + static WhichRangesContainer GetRanges() { return pRanges; } virtual bool FillItemSet( SfxItemSet* ) override; virtual void Reset( const SfxItemSet * ) override; diff --git a/cui/source/inc/multipat.hxx b/cui/source/inc/multipat.hxx index 3f747f21aadd..258e446e80f8 100644 --- a/cui/source/inc/multipat.hxx +++ b/cui/source/inc/multipat.hxx @@ -20,16 +20,6 @@ #include <vcl/weld.hxx> -// define ---------------------------------------------------------------- - -// different delimiter for Unix (:) and Windows (;) - -#ifdef UNX -#define CLASSPATH_DELIMITER ':' -#else -#define CLASSPATH_DELIMITER ';' -#endif - class SvxMultiPathDialog : public weld::GenericDialogController { private: @@ -50,7 +40,7 @@ public: virtual ~SvxMultiPathDialog() override; OUString GetPath() const; - void SetPath(const OUString& rPath); + void SetPath(std::u16string_view rPath); void SetTitle(const OUString& rTitle) { m_xDialog->set_title(rTitle); } }; @@ -69,7 +59,7 @@ public: SvxPathSelectDialog(weld::Window* pParent); OUString GetPath() const; - void SetPath( const OUString& rPath ); + void SetPath( std::u16string_view rPath ); void SetTitle(const OUString& rTitle) { m_xDialog->set_title(rTitle); } }; diff --git a/cui/source/inc/newtabledlg.hxx b/cui/source/inc/newtabledlg.hxx index b62e1199e44d..4a34cb37712c 100644 --- a/cui/source/inc/newtabledlg.hxx +++ b/cui/source/inc/newtabledlg.hxx @@ -37,7 +37,7 @@ public: class SvxNewTableDialogWrapper : public SvxAbstractNewTableDialog { private: - std::shared_ptr<weld::DialogController> m_xDlg; + std::shared_ptr<SvxNewTableDialog> m_xDlg; public: SvxNewTableDialogWrapper(weld::Window* pParent) @@ -52,18 +52,16 @@ public: virtual sal_Int32 getRows() const override { - SvxNewTableDialog* pDlg = dynamic_cast<SvxNewTableDialog*>(m_xDlg.get()); - if (pDlg) - return pDlg->getRows(); + if (m_xDlg) + return m_xDlg->getRows(); return 0; } virtual sal_Int32 getColumns() const override { - SvxNewTableDialog* pDlg = dynamic_cast<SvxNewTableDialog*>(m_xDlg.get()); - if (pDlg) - return pDlg->getColumns(); + if (m_xDlg) + return m_xDlg->getColumns(); return 0; } diff --git a/cui/source/inc/numfmt.hxx b/cui/source/inc/numfmt.hxx index 5d525282a9ca..13f1a88e9eab 100644 --- a/cui/source/inc/numfmt.hxx +++ b/cui/source/inc/numfmt.hxx @@ -56,7 +56,7 @@ public: class SvxNumberFormatTabPage : public SfxTabPage { - static const sal_uInt16 pRanges[]; + static const WhichRangesContainer pRanges; public: SvxNumberFormatTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rCoreAttrs); @@ -64,7 +64,7 @@ public: const SfxItemSet* rAttrSet ); virtual ~SvxNumberFormatTabPage() override; // Returns area information. - static const sal_uInt16* GetRanges() { return pRanges; } + static WhichRangesContainer GetRanges() { return pRanges; } virtual bool FillItemSet( SfxItemSet* rSet ) override; virtual void Reset( const SfxItemSet* rSet ) override; @@ -129,18 +129,18 @@ private: void MakePreviewText( const OUString& rFormat ); void ChangePreviewText( sal_uInt16 nPos ); void AddAutomaticLanguage_Impl(LanguageType eAutoLang, bool bSelect); - bool Click_Impl(weld::Button& rIB); + bool Click_Impl(const weld::Button& rIB); // Handler DECL_LINK(LostFocusHdl_Impl, weld::Widget&, void); DECL_LINK(DoubleClickHdl_Impl, weld::TreeView&, bool); DECL_LINK(SelFormatListBoxHdl_Impl, weld::ComboBox&, void); DECL_LINK(SelFormatTreeListBoxHdl_Impl, weld::TreeView&, void); - DECL_LINK(SelFormatClickHdl_Impl, weld::Button&, void); + DECL_LINK(SelFormatClickHdl_Impl, weld::Toggleable&, void); void SelFormatHdl_Impl(weld::Widget*); DECL_LINK(ClickHdl_Impl, weld::Button&, void); DECL_LINK(EditModifyHdl_Impl, weld::Entry&, void); DECL_LINK(OptEditHdl_Impl, weld::SpinButton&, void); - DECL_LINK(OptClickHdl_Impl, weld::Button&, void); + DECL_LINK(OptClickHdl_Impl, weld::Toggleable&, void); void EditHdl_Impl(const weld::Entry*); void OptHdl_Impl(const weld::Widget*); diff --git a/cui/source/inc/numpages.hxx b/cui/source/inc/numpages.hxx index 4a00f44e6f76..7c34d49fcc62 100644 --- a/cui/source/inc/numpages.hxx +++ b/cui/source/inc/numpages.hxx @@ -25,9 +25,10 @@ #include <editeng/numdef.hxx> #include <editeng/svxenum.hxx> #include <svtools/ctrlbox.hxx> +#include <svx/numberingpreview.hxx> #include <vcl/customweld.hxx> #include <vcl/timer.hxx> -#include <cui/numberingpreview.hxx> +#include <svx/dlgutil.hxx> #define MN_GALLERY_ENTRY 100 @@ -63,8 +64,7 @@ class SvxSingleNumPickTabPage final : public SfxTabPage sal_uInt16 nActNumLvl; bool bModified : 1; bool bPreset : 1; - - sal_uInt16 nNumItemId; + TypedWhichId<SvxNumBulletItem> nNumItemId; std::unique_ptr<SvxNumValueSet> m_xExamplesVS; std::unique_ptr<weld::CustomWeld> m_xExamplesVSWin; @@ -92,7 +92,7 @@ class SvxBulletPickTabPage final : public SfxTabPage sal_uInt16 nActNumLvl; bool bModified : 1; bool bPreset : 1; - sal_uInt16 nNumItemId; + TypedWhichId<SvxNumBulletItem> nNumItemId; OUString sBulletCharFormatName; @@ -129,7 +129,7 @@ class SvxNumPickTabPage final : public SfxTabPage std::unique_ptr<SvxNumRule> pActNum; std::unique_ptr<SvxNumRule> pSaveNum; sal_uInt16 nActNumLvl; - sal_uInt16 nNumItemId; + TypedWhichId<SvxNumBulletItem> nNumItemId; bool bModified : 1; bool bPreset : 1; @@ -164,7 +164,7 @@ class SvxBitmapPickTabPage final : public SfxTabPage std::unique_ptr<SvxNumRule> pActNum; std::unique_ptr<SvxNumRule> pSaveNum; sal_uInt16 nActNumLvl; - sal_uInt16 nNumItemId; + TypedWhichId<SvxNumBulletItem> nNumItemId; MapUnit eCoreUnit; bool bModified : 1; bool bPreset : 1; @@ -216,9 +216,11 @@ class SvxNumOptionsTabPage : public SfxTabPage sal_uInt8 nBullet; sal_uInt16 nActNumLvl; - sal_uInt16 nNumItemId; + TypedWhichId<SvxNumBulletItem> nNumItemId; MapUnit eCoreUnit; + SvxRatioConnector m_aRatioTop; + SvxRatioConnector m_aRatioBottom; SvxNumberingPreview m_aPreviewWIN; std::unique_ptr<weld::Widget> m_xGrid; std::unique_ptr<weld::TreeView> m_xLevelLB; @@ -236,6 +238,7 @@ class SvxNumOptionsTabPage : public SfxTabPage std::unique_ptr<weld::MetricSpinButton> m_xBulRelSizeMF; std::unique_ptr<weld::Label> m_xAllLevelFT; std::unique_ptr<weld::SpinButton> m_xAllLevelNF; + std::unique_ptr<weld::CheckButton> m_xIsLegalCB; std::unique_ptr<weld::Label> m_xStartFT; std::unique_ptr<weld::SpinButton> m_xStartED; std::unique_ptr<weld::Label> m_xBulletFT; @@ -247,6 +250,9 @@ class SvxNumOptionsTabPage : public SfxTabPage std::unique_ptr<weld::Label> m_xHeightFT; std::unique_ptr<weld::MetricSpinButton> m_xHeightMF; std::unique_ptr<weld::CheckButton> m_xRatioCB; + std::unique_ptr<weld::Image> m_xCbxScaleImg; + std::unique_ptr<weld::CustomWeld> m_xImgRatioTop; + std::unique_ptr<weld::CustomWeld> m_xImgRatioBottom; std::unique_ptr<weld::Label> m_xOrientFT; std::unique_ptr<weld::ComboBox> m_xOrientLB; std::unique_ptr<weld::Widget> m_xAllLevelsFrame; @@ -265,17 +271,18 @@ class SvxNumOptionsTabPage : public SfxTabPage DECL_LINK(NumberTypeSelectHdl_Impl, weld::ComboBox&, void); DECL_LINK(LevelHdl_Impl, weld::TreeView&, void); DECL_LINK(LevelHdl, void *, void); - DECL_LINK(PopupActivateHdl_Impl, weld::ToggleButton&, void); - DECL_LINK(GraphicHdl_Impl, const OString&, void); + DECL_LINK(PopupActivateHdl_Impl, weld::Toggleable&, void); + DECL_LINK(GraphicHdl_Impl, const OUString&, void); DECL_LINK(BulletHdl_Impl, weld::Button&, void); DECL_LINK(SizeHdl_Impl, weld::MetricSpinButton&, void); - DECL_LINK(RatioHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(RatioHdl_Impl, weld::Toggleable&, void); DECL_LINK(CharFmtHdl_Impl, weld::ComboBox&, void); DECL_LINK(EditModifyHdl_Impl, weld::Entry&, void); DECL_LINK(SpinModifyHdl_Impl, weld::SpinButton&, void); DECL_LINK(AllLevelHdl_Impl, weld::SpinButton&, void); + DECL_LINK(IsLegalHdl_Impl, weld::Toggleable&, void); DECL_LINK(OrientHdl_Impl, weld::ComboBox&, void); - DECL_LINK(SameLevelHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(SameLevelHdl_Impl, weld::Toggleable&, void); DECL_LINK(BulColorHdl_Impl, ColorListBox&, void); DECL_LINK(BulRelSizeHdl_Impl, weld::MetricSpinButton&, void); DECL_LINK(PreviewInvalidateHdl_Impl, Timer*, void); @@ -312,7 +319,7 @@ class SvxNumPositionTabPage : public SfxTabPage ImplSVEvent* m_pLevelHdlEvent; sal_uInt16 nActNumLvl; - sal_uInt16 nNumItemId; + TypedWhichId<SvxNumBulletItem> nNumItemId; MapUnit eCoreUnit; bool bModified : 1; @@ -354,7 +361,7 @@ class SvxNumPositionTabPage : public SfxTabPage DECL_LINK(LevelHdl, void *, void); DECL_LINK(EditModifyHdl_Impl, weld::ComboBox&, void); DECL_LINK(DistanceHdl_Impl, weld::MetricSpinButton&, void); - DECL_LINK(RelativeHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(RelativeHdl_Impl, weld::Toggleable&, void); DECL_LINK(StandardHdl_Impl, weld::Button&, void); void InitPosAndSpaceMode(); diff --git a/cui/source/inc/optasian.hxx b/cui/source/inc/optasian.hxx index 8ecf942b9a13..31a622f7a50d 100644 --- a/cui/source/inc/optasian.hxx +++ b/cui/source/inc/optasian.hxx @@ -42,7 +42,7 @@ class SvxAsianLayoutPage : public SfxTabPage std::unique_ptr<weld::Label> m_xHintFT; DECL_LINK(LanguageHdl, weld::ComboBox&, void); - DECL_LINK(ChangeStandardHdl, weld::ToggleButton&, void); + DECL_LINK(ChangeStandardHdl, weld::Toggleable&, void); DECL_LINK(ModifyHdl, weld::Entry&, void); public: @@ -52,7 +52,10 @@ public: static std::unique_ptr<SfxTabPage> Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rAttrSet); - static const sal_uInt16* GetRanges(); + static WhichRangesContainer GetRanges(); + + virtual OUString GetAllStrings() override; + virtual bool FillItemSet(SfxItemSet* rSet) override; virtual void Reset(const SfxItemSet* rSet) override; }; diff --git a/cui/source/inc/optdict.hxx b/cui/source/inc/optdict.hxx index 1449e9457ad9..8e382cc32e8f 100644 --- a/cui/source/inc/optdict.hxx +++ b/cui/source/inc/optdict.hxx @@ -89,7 +89,6 @@ private: DECL_LINK(NewDelActionHdl, weld::Entry&, bool); DECL_LINK(ModifyHdl, weld::Entry&, void); DECL_LINK(EntrySizeAllocHdl, const Size&, void); - DECL_STATIC_LINK(SvxEditDictionaryDialog, InsertTextHdl, OUString&, bool); bool NewDelHdl(const weld::Widget*); void ShowWords_Impl( sal_uInt16 nId ); @@ -99,7 +98,7 @@ private: css::linguistic2::XDictionary > const &xDic ); void RemoveDictEntry(int nEntry); - int GetLBInsertPos(const OUString &rDicWord); + int GetLBInsertPos(std::u16string_view rDicWord); public: SvxEditDictionaryDialog(weld::Window* pParent, std::u16string_view rName); diff --git a/cui/source/inc/optlingu.hxx b/cui/source/inc/optlingu.hxx index 365acfbbb0fb..6c5657acf7bd 100644 --- a/cui/source/inc/optlingu.hxx +++ b/cui/source/inc/optlingu.hxx @@ -22,6 +22,7 @@ #include <svx/langbox.hxx> #include <com/sun/star/uno/Reference.hxx> #include <com/sun/star/uno/Sequence.hxx> +#include <com/sun/star/configuration/ReadWriteAccess.hpp> namespace com::sun::star{ namespace beans{ @@ -60,6 +61,8 @@ class SvxEditModulesDlg : public weld::GenericDialogController std::unique_ptr<weld::Button> m_xClosePB; std::unique_ptr<SvxLanguageBox> m_xLanguageLB; + css::uno::Reference< css::configuration::XReadWriteAccess> m_xReadWriteAccess; + DECL_LINK( SelectHdl_Impl, weld::TreeView&, void ); DECL_LINK( UpDownHdl_Impl, weld::Button&, void ); DECL_LINK( ClickHdl_Impl, weld::Button&, void ); @@ -84,6 +87,8 @@ private: OUString sWordsWithDigits; OUString sSpellSpecial; OUString sSpellAuto; + OUString sSpellClosedCompound; + OUString sSpellHyphenatedCompound; OUString sGrammarAuto; OUString sNumMinWordlen; OUString sNumPreBreak; @@ -118,6 +123,7 @@ private: std::unique_ptr<weld::Button> m_xLinguDicsDelPB; std::unique_ptr<weld::TreeView> m_xLinguOptionsCLB; std::unique_ptr<weld::Button> m_xLinguOptionsEditPB; + std::unique_ptr<weld::Box> m_xMoreDictsBox; std::unique_ptr<weld::LinkButton> m_xMoreDictsLink; void AddDicBoxEntry( const css::uno::Reference< css::linguistic2::XDictionary > &rxDic, sal_uInt16 nIdx ); @@ -139,6 +145,8 @@ public: static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet ); virtual ~SvxLinguTabPage() override; + virtual OUString GetAllStrings() override; + virtual bool FillItemSet( SfxItemSet* rSet ) override; virtual void Reset( const SfxItemSet* rSet ) override; diff --git a/cui/source/inc/optpath.hxx b/cui/source/inc/optpath.hxx index c3b9aafbbae5..ccfeb70e0072 100644 --- a/cui/source/inc/optpath.hxx +++ b/cui/source/inc/optpath.hxx @@ -56,13 +56,15 @@ private: void GetPathList( SvtPathOptions::Paths _nPathHandle, OUString& _rInternalPath, OUString& _rUserPath, OUString& _rWritablePath, bool& _rReadOnly ); void SetPathList( SvtPathOptions::Paths _nPathHandle, - const OUString& _rUserPath, const OUString& _rWritablePath ); + std::u16string_view _rUserPath, const OUString& _rWritablePath ); public: SvxPathTabPage( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet ); static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet ); virtual ~SvxPathTabPage() override; + virtual OUString GetAllStrings() override; + virtual bool FillItemSet( SfxItemSet* rSet ) override; virtual void Reset( const SfxItemSet* rSet ) override; }; diff --git a/cui/source/inc/page.hxx b/cui/source/inc/page.hxx index 1513347e481f..151569ac4634 100644 --- a/cui/source/inc/page.hxx +++ b/cui/source/inc/page.hxx @@ -38,7 +38,6 @@ <SvxSizeItem>: <SID_ATTR_MAXSIZE> <SvxULSpaceItem>: <SID_ATTR_LRSPACE> <SvxLRSpaceItem>: <SID_ATTR_ULSPACE> - <SfxAllEnumItem>: <SID_ATTR_PAPERTRAY> <SvxPaperBinItem>: <SID_ATTR_PAPERBIN> <SvxBoolItem>: <SID_ATTR_EXT1> <SvxBoolItem>: <SID_ATTR_EXT2> @@ -64,7 +63,7 @@ typedef sal_uInt16 MarginPosition; class SvxPageDescPage : public SfxTabPage { - static const sal_uInt16 pRanges[]; + static const WhichRangesContainer pRanges; private: OUString sStandardRegister; tools::Long nFirstLeftMargin; @@ -93,7 +92,6 @@ private: std::unique_ptr<SvxPaperSizeListBox> m_xPaperSizeBox; std::unique_ptr<weld::MetricSpinButton> m_xPaperWidthEdit; std::unique_ptr<weld::MetricSpinButton> m_xPaperHeightEdit; - std::unique_ptr<weld::Label> m_xOrientationFT; std::unique_ptr<weld::RadioButton> m_xPortraitBtn; std::unique_ptr<weld::RadioButton> m_xLandscapeBtn; std::unique_ptr<weld::Label> m_xTextFlowLbl; @@ -106,6 +104,8 @@ private: std::unique_ptr<weld::MetricSpinButton> m_xRightMarginEdit; std::unique_ptr<weld::MetricSpinButton> m_xTopMarginEdit; std::unique_ptr<weld::MetricSpinButton> m_xBottomMarginEdit; + std::unique_ptr<weld::Label> m_xGutterMarginLbl; + std::unique_ptr<weld::MetricSpinButton> m_xGutterMarginEdit; // layout settings std::unique_ptr<weld::Label> m_xPageText; std::unique_ptr<weld::ComboBox> m_xLayoutBox; @@ -121,6 +121,10 @@ private: std::unique_ptr<weld::CheckButton> m_xRegisterCB; std::unique_ptr<weld::Label> m_xRegisterFT; std::unique_ptr<weld::ComboBox> m_xRegisterLB; + std::unique_ptr<weld::Label> m_xGutterPositionFT; + std::unique_ptr<weld::ComboBox> m_xGutterPositionLB; + std::unique_ptr<weld::CheckButton> m_xRtlGutterCB; + std::unique_ptr<weld::CheckButton> m_xBackgroundFullSizeCB; std::unique_ptr<weld::Label> m_xInsideLbl; std::unique_ptr<weld::Label> m_xOutsideLbl; std::unique_ptr<weld::Label> m_xPrintRangeQueryText; @@ -128,12 +132,13 @@ private: void Init_Impl(); DECL_LINK(LayoutHdl_Impl, weld::ComboBox&, void); + DECL_LINK(GutterPositionHdl_Impl, weld::ComboBox&, void); DECL_LINK(PaperBinHdl_Impl, weld::Widget&, void); - DECL_LINK(SwapOrientation_Impl, weld::Button&, void); + DECL_LINK(SwapOrientation_Impl, weld::Toggleable&, void); void SwapFirstValues_Impl( bool bSet ); DECL_LINK(BorderModify_Impl, weld::MetricSpinButton&, void); void InitHeadFoot_Impl( const SfxItemSet& rSet ); - DECL_LINK(CenterHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(CenterHdl_Impl, weld::Toggleable&, void); void UpdateExample_Impl( bool bResetbackground = false ); DECL_LINK(PaperSizeSelect_Impl, weld::ComboBox&, void ); @@ -146,7 +151,7 @@ private: void RangeHdl_Impl(); void CalcMargin_Impl(); - DECL_LINK(RegisterModify, weld::ToggleButton&, void); + DECL_LINK(RegisterModify, weld::Toggleable&, void); // page direction /** Disables vertical page direction entries in the text flow listbox. */ @@ -167,7 +172,7 @@ public: virtual ~SvxPageDescPage() override; // returns the range of the Which values - static const sal_uInt16* GetRanges() { return pRanges; } + static WhichRangesContainer GetRanges() { return pRanges; } virtual bool FillItemSet( SfxItemSet* rOutSet ) override; virtual void Reset( const SfxItemSet* rSet ) override; diff --git a/cui/source/inc/paragrph.hxx b/cui/source/inc/paragrph.hxx index cea797707a7e..b35111f43b33 100644 --- a/cui/source/inc/paragrph.hxx +++ b/cui/source/inc/paragrph.hxx @@ -40,35 +40,35 @@ class SvxLineSpacingItem; class SvxStdParagraphTabPage: public SfxTabPage { - static const sal_uInt16 pStdRanges[]; + static const WhichRangesContainer pStdRanges; private: tools::Long nWidth; tools::Long nMinFixDist; bool bRelativeMode; - OUString sAbsDist; SvxParaPrevWindow m_aExampleWin; - // indention - std::unique_ptr<SvxRelativeField> m_xLeftIndent; + // indentation + bool m_bSplitLRSpace = false; ///< which items to use? + SvxRelativeField m_aLeftIndent; - std::unique_ptr<weld::Label> m_xRightLabel; - std::unique_ptr<SvxRelativeField> m_xRightIndent; + SvxRelativeField m_aRightIndent; std::unique_ptr<weld::Label> m_xFLineLabel; - std::unique_ptr<SvxRelativeField> m_xFLineIndent; + SvxRelativeField m_aFLineIndent; std::unique_ptr<weld::CheckButton> m_xAutoCB; // distance - std::unique_ptr<SvxRelativeField> m_xTopDist; - std::unique_ptr<SvxRelativeField> m_xBottomDist; + SvxRelativeField m_aTopDist; + SvxRelativeField m_aBottomDist; std::unique_ptr<weld::CheckButton> m_xContextualCB; // line spacing std::unique_ptr<weld::ComboBox> m_xLineDist; std::unique_ptr<weld::MetricSpinButton> m_xLineDistAtPercentBox; std::unique_ptr<weld::MetricSpinButton> m_xLineDistAtMetricBox; + std::unique_ptr<weld::MetricSpinButton> m_xLineDistAtPlaceHolderBox; std::unique_ptr<weld::Label> m_xLineDistAtLabel; std::unique_ptr<weld::Label> m_xAbsDist; @@ -86,7 +86,7 @@ private: DECL_LINK(LineDistPopupHdl_Impl, weld::ComboBox&, void); DECL_LINK(LineDistHdl_Impl, weld::ComboBox&, void); DECL_LINK(ModifyHdl_Impl, weld::MetricSpinButton&, void); - DECL_LINK(AutoHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(AutoHdl_Impl, weld::Toggleable&, void); bool m_bLineDistToggled = false; @@ -102,7 +102,7 @@ public: DECL_LINK(ELRLoseFocusHdl, weld::MetricSpinButton&, void); - static const sal_uInt16* GetRanges() { return pStdRanges; } + static WhichRangesContainer GetRanges() { return pStdRanges; } virtual bool FillItemSet( SfxItemSet* rSet ) override; virtual void Reset( const SfxItemSet* rSet ) override; @@ -112,7 +112,6 @@ public: void EnableRegisterMode(); void EnableContextualMode(); void EnableAutoFirstLine(); - void EnableAbsLineDist(tools::Long nMinTwip); void EnableNegativeMode(); virtual void PageCreated(const SfxAllItemSet& aSet) override; }; @@ -121,7 +120,9 @@ public: class SvxParaAlignTabPage : public SfxTabPage { - static const sal_uInt16 pAlignRanges[]; + static const WhichRangesContainer pAlignRanges, pSdrAlignRanges; + + bool m_bSdrVertAlign; SvxParaPrevWindow m_aExampleWin; @@ -144,11 +145,12 @@ class SvxParaAlignTabPage : public SfxTabPage //vertical alignment std::unique_ptr<weld::Widget> m_xVertAlignFL; std::unique_ptr<weld::ComboBox> m_xVertAlignLB; + std::unique_ptr<weld::Label> m_xVertAlign; + std::unique_ptr<weld::Label> m_xVertAlignSdr; - std::unique_ptr<weld::Widget> m_xPropertiesFL; std::unique_ptr<svx::FrameDirectionListBox> m_xTextDirectionLB; - DECL_LINK(AlignHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(AlignHdl_Impl, weld::Toggleable&, void); DECL_LINK(LastLineHdl_Impl, weld::ComboBox&, void); DECL_LINK(TextDirectionHdl_Impl, weld::ComboBox&, void); @@ -163,13 +165,15 @@ public: static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet ); virtual ~SvxParaAlignTabPage() override; - static const sal_uInt16* GetRanges() { return pAlignRanges; } + static WhichRangesContainer GetRanges() { return pAlignRanges; } + static WhichRangesContainer GetSdrRanges() { return pSdrAlignRanges; } virtual bool FillItemSet( SfxItemSet* rSet ) override; virtual void Reset( const SfxItemSet* rSet ) override; virtual void ChangesApplied() override; void EnableJustifyExt(); + void EnableSdrVertAlign(); virtual void PageCreated(const SfxAllItemSet& aSet) override; }; @@ -189,7 +193,7 @@ public: class SvxExtParagraphTabPage: public SfxTabPage { - static const sal_uInt16 pExtRanges[]; + static const WhichRangesContainer pExtRanges; public: SvxExtParagraphTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet); @@ -197,7 +201,7 @@ public: const SfxItemSet* rSet ); virtual ~SvxExtParagraphTabPage() override; - static const sal_uInt16* GetRanges() { return pExtRanges; } + static WhichRangesContainer GetRanges() { return pExtRanges; } virtual bool FillItemSet( SfxItemSet* rSet ) override; virtual void Reset( const SfxItemSet* rSet ) override; @@ -213,10 +217,13 @@ private: weld::TriStateEnabled aPageBreakState; weld::TriStateEnabled aApplyCollState; weld::TriStateEnabled aPageNumState; - weld::TriStateEnabled aKeepTogetherState; + weld::TriStateEnabled aAllowSplitState; weld::TriStateEnabled aKeepParaState; weld::TriStateEnabled aOrphanState; weld::TriStateEnabled aWidowState; + weld::TriStateEnabled aAcrossColumnState; + weld::TriStateEnabled aAcrossPageState; + weld::TriStateEnabled aAcrossSpreadState; bool bPageBreak; bool bHtmlMode; @@ -225,12 +232,19 @@ private: // hyphenation std::unique_ptr<weld::CheckButton> m_xHyphenBox; std::unique_ptr<weld::CheckButton> m_xHyphenNoCapsBox; + std::unique_ptr<weld::CheckButton> m_xHyphenNoLastWordBox; std::unique_ptr<weld::Label> m_xBeforeText; std::unique_ptr<weld::SpinButton> m_xExtHyphenBeforeBox; std::unique_ptr<weld::Label> m_xAfterText; std::unique_ptr<weld::SpinButton> m_xExtHyphenAfterBox; + std::unique_ptr<weld::Label> m_xCompoundBeforeText; + std::unique_ptr<weld::SpinButton> m_xExtCompoundHyphenBeforeBox; std::unique_ptr<weld::Label> m_xMaxHyphenLabel; std::unique_ptr<weld::SpinButton> m_xMaxHyphenEdit; + std::unique_ptr<weld::Label> m_xMinWordLabel; + std::unique_ptr<weld::SpinButton> m_xMinWordLength; + std::unique_ptr<weld::Label> m_xHyphenZoneLabel; + SvxRelativeField m_aHyphenZone; // pagebreak std::unique_ptr<weld::CheckButton> m_xPageBreakBox; @@ -244,7 +258,7 @@ private: std::unique_ptr<weld::SpinButton> m_xPagenumEdit; // paragraph division - std::unique_ptr<weld::CheckButton> m_xKeepTogetherBox; + std::unique_ptr<weld::CheckButton> m_xAllowSplitBox; std::unique_ptr<weld::CheckButton> m_xKeepParaBox; // orphan/widow @@ -256,24 +270,33 @@ private: std::unique_ptr<weld::SpinButton> m_xWidowRowNo; std::unique_ptr<weld::Label> m_xWidowRowLabel; + // avoid hyphenation across + std::unique_ptr<weld::Label> m_xAcrossText; + std::unique_ptr<weld::CheckButton> m_xAcrossColumnBox; + std::unique_ptr<weld::CheckButton> m_xAcrossPageBox; + std::unique_ptr<weld::CheckButton> m_xAcrossSpreadBox; + void HyphenClickHdl(); void PageNumBoxClickHdl(); void ApplyCollClickHdl(); void PageBreakHdl(); - void KeepTogetherHdl(); + void AllowSplitHdl(); void OrphanHdl(); void WidowHdl(); - DECL_LINK(PageBreakHdl_Impl, weld::ToggleButton&, void); - DECL_LINK(KeepTogetherHdl_Impl, weld::ToggleButton&, void); - DECL_LINK(WidowHdl_Impl, weld::ToggleButton&, void); - DECL_LINK(OrphanHdl_Impl, weld::ToggleButton&, void); - DECL_LINK(HyphenClickHdl_Impl, weld::ToggleButton&, void); - DECL_LINK(ApplyCollClickHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(PageBreakHdl_Impl, weld::Toggleable&, void); + DECL_LINK(AllowSplitHdl_Impl, weld::Toggleable&, void); + DECL_LINK(WidowHdl_Impl, weld::Toggleable&, void); + DECL_LINK(OrphanHdl_Impl, weld::Toggleable&, void); + DECL_LINK(HyphenClickHdl_Impl, weld::Toggleable&, void); + DECL_LINK(ApplyCollClickHdl_Impl, weld::Toggleable&, void); DECL_LINK(PageBreakPosHdl_Impl, weld::ComboBox&, void); DECL_LINK(PageBreakTypeHdl_Impl, weld::ComboBox&, void); - DECL_LINK(PageNumBoxClickHdl_Impl, weld::ToggleButton&, void); - DECL_LINK(KeepParaBoxClickHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(PageNumBoxClickHdl_Impl, weld::Toggleable&, void); + DECL_LINK(KeepParaBoxClickHdl_Impl, weld::Toggleable&, void); + DECL_LINK(AcrossColumnHdl_Impl, weld::Toggleable&, void); + DECL_LINK(AcrossPageHdl_Impl, weld::Toggleable&, void); + DECL_LINK(AcrossSpreadHdl_Impl, weld::Toggleable&, void); virtual void PageCreated(const SfxAllItemSet& aSet) override; }; @@ -289,7 +312,7 @@ public: static std::unique_ptr<SfxTabPage> Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet); virtual ~SvxAsianTabPage() override; - static const sal_uInt16* GetRanges(); + static WhichRangesContainer GetRanges(); virtual bool FillItemSet( SfxItemSet* rSet ) override; virtual void Reset( const SfxItemSet* rSet ) override; diff --git a/cui/source/inc/passwdomdlg.hxx b/cui/source/inc/passwdomdlg.hxx index 62f2ba036771..1077195f7a85 100644 --- a/cui/source/inc/passwdomdlg.hxx +++ b/cui/source/inc/passwdomdlg.hxx @@ -25,6 +25,7 @@ class PasswordToOpenModifyDialog : public SfxDialogController { std::unique_ptr<weld::Entry> m_xPasswdToOpenED; std::unique_ptr<weld::Label> m_xPasswdToOpenInd; + std::unique_ptr<weld::LevelBar> m_xPasswdToOpenBar; std::unique_ptr<weld::Entry> m_xReenterPasswdToOpenED; std::unique_ptr<weld::Label> m_xReenterPasswdToOpenInd; std::unique_ptr<weld::Expander> m_xOptionsExpander; @@ -33,21 +34,25 @@ class PasswordToOpenModifyDialog : public SfxDialogController std::unique_ptr<weld::Label> m_xPasswdToModifyFT; std::unique_ptr<weld::Entry> m_xPasswdToModifyED; std::unique_ptr<weld::Label> m_xPasswdToModifyInd; + std::unique_ptr<weld::LevelBar> m_xPasswdToModifyBar; std::unique_ptr<weld::Label> m_xReenterPasswdToModifyFT; std::unique_ptr<weld::Entry> m_xReenterPasswdToModifyED; std::unique_ptr<weld::Label> m_xReenterPasswdToModifyInd; + std::shared_ptr<weld::MessageDialog> m_xErrorBox; OUString m_aOneMismatch; OUString m_aTwoMismatch; OUString m_aInvalidStateForOkButton; OUString m_aInvalidStateForOkButton_v2; + std::optional<OUString> m_oPasswordPolicy; int m_nMaxPasswdLen; bool m_bIsPasswordToModify; + bool m_bAllowEmpty; DECL_LINK(OkBtnClickHdl, weld::Button&, void); - DECL_LINK(ReadonlyOnOffHdl, weld::Button&, void); + DECL_LINK(ReadonlyOnOffHdl, weld::Toggleable&, void); DECL_LINK(ChangeHdl, weld::Entry&, void); PasswordToOpenModifyDialog( const PasswordToOpenModifyDialog & ) = delete; @@ -57,11 +62,13 @@ public: PasswordToOpenModifyDialog(weld::Window* pParent, sal_uInt16 nMaxPasswdLen /* 0 -> no max len enforced */, bool bIsPasswordToModify ); + ~PasswordToOpenModifyDialog(); // AbstractPasswordToOpenModifyDialog OUString GetPasswordToOpen() const; OUString GetPasswordToModify() const; bool IsRecommendToOpenReadonly() const; + void AllowEmpty(); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/inc/postdlg.hxx b/cui/source/inc/postdlg.hxx index b294fbcc77df..66fd07af6255 100644 --- a/cui/source/inc/postdlg.hxx +++ b/cui/source/inc/postdlg.hxx @@ -44,7 +44,7 @@ public: bool bPrevNext); virtual ~SvxPostItDialog() override; - static const sal_uInt16* GetRanges(); + static WhichRangesContainer GetRanges(); const SfxItemSet* GetOutputItemSet() const { return m_xOutSet.get(); } void SetPrevHdl( const Link<SvxPostItDialog&,void>& rLink ) diff --git a/cui/source/inc/scriptdlg.hxx b/cui/source/inc/scriptdlg.hxx index 6a1cbd15ae5c..b1b014771dae 100644 --- a/cui/source/inc/scriptdlg.hxx +++ b/cui/source/inc/scriptdlg.hxx @@ -76,7 +76,7 @@ public: class SvxScriptOrgDialog : public SfxDialogController { -protected: + weld::Window* m_pParent; OUString m_sLanguage; static Selection_hash m_lastSelection; const OUString m_delErrStr; @@ -106,9 +106,9 @@ protected: static bool getBoolProperty( css::uno::Reference< css::beans::XPropertySet > const & xProps, OUString const & propName ); void CheckButtons( css::uno::Reference< css::script::browse::XBrowseNode > const & node ); - void createEntry(weld::TreeIter& rEntry); + void createEntry(const weld::TreeIter& rEntry); void renameEntry(const weld::TreeIter& rEntry); - void deleteEntry(weld::TreeIter& rEntry); + void deleteEntry(const weld::TreeIter& rEntry); css::uno::Reference<css::script::browse::XBrowseNode> getBrowseNode(const weld::TreeIter& rEntry); css::uno::Reference<css::frame::XModel> getModel(const weld::TreeIter& rEntry); OUString getListOfChildren( const css::uno::Reference< css::script::browse::XBrowseNode >& node, int depth ); @@ -117,13 +117,13 @@ protected: void Init(std::u16string_view language); void delUserData(const weld::TreeIter& rIter); - void deleteTree(weld::TreeIter& rIter); + void deleteTree(const weld::TreeIter& rIter); void deleteAllTree(); void insertEntry(OUString const & rText, OUString const & rBitmap, const weld::TreeIter* pParent, bool bChildrenOnDemand, std::unique_ptr< SFEntry > && aUserData, - const OUString& factoryURL, bool bSelect); + std::u16string_view factoryURL, bool bSelect); void insertEntry(OUString const & rText, OUString const & rBitmap, const weld::TreeIter* pParent, bool bChildrenOnDemand, @@ -142,7 +142,7 @@ protected: public: // prob need another arg in the ctor // to specify the language or provider - SvxScriptOrgDialog(weld::Window* pParent, const OUString& language); + SvxScriptOrgDialog(weld::Window* pParent, OUString language); virtual ~SvxScriptOrgDialog() override; virtual short run() override; diff --git a/cui/source/inc/sdrcelldlg.hxx b/cui/source/inc/sdrcelldlg.hxx index 5b7e9ca71a20..46f34c0dae28 100644 --- a/cui/source/inc/sdrcelldlg.hxx +++ b/cui/source/inc/sdrcelldlg.hxx @@ -38,9 +38,9 @@ private: XPatternListRef mpPatternList; public: - SvxFormatCellsDialog(weld::Window* pParent, const SfxItemSet* pAttr, const SdrModel& rModel); + SvxFormatCellsDialog(weld::Window* pParent, const SfxItemSet& rAttr, const SdrModel& rModel, bool bStyle); - virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override; + virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override; }; diff --git a/cui/source/inc/securityoptions.hxx b/cui/source/inc/securityoptions.hxx new file mode 100644 index 000000000000..a86b4f0c605a --- /dev/null +++ b/cui/source/inc/securityoptions.hxx @@ -0,0 +1,86 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#pragma once + +#include <vcl/weld.hxx> + +namespace svx +{ + class SecurityOptionsDialog : public weld::GenericDialogController + { + private: + std::unique_ptr<weld::CheckButton> m_xSaveOrSendDocsCB; + std::unique_ptr<weld::Widget> m_xSaveOrSendDocsImg; + std::unique_ptr<weld::CheckButton> m_xSignDocsCB; + std::unique_ptr<weld::Widget> m_xSignDocsImg; + std::unique_ptr<weld::CheckButton> m_xPrintDocsCB; + std::unique_ptr<weld::Widget> m_xPrintDocsImg; + std::unique_ptr<weld::CheckButton> m_xCreatePdfCB; + std::unique_ptr<weld::Widget> m_xCreatePdfImg; + + std::unique_ptr<weld::CheckButton> m_xRemovePersInfoCB; + std::unique_ptr<weld::Widget> m_xRemovePersInfoImg; + std::unique_ptr<weld::CheckButton> m_xRecommPasswdCB; + std::unique_ptr<weld::Widget> m_xRecommPasswdImg; + std::unique_ptr<weld::CheckButton> m_xCtrlHyperlinkCB; + std::unique_ptr<weld::Widget> m_xCtrlHyperlinkImg; + std::unique_ptr<weld::CheckButton> m_xBlockUntrustedRefererLinksCB; + std::unique_ptr<weld::Widget> m_xBlockUntrustedRefererLinksImg; + std::unique_ptr<weld::CheckButton> m_xDisableActiveContentCB; + std::unique_ptr<weld::Widget> m_xDisableActiveContentImg; + + std::unique_ptr<weld::CheckButton> m_xRedlineinfoCB; + std::unique_ptr<weld::Widget> m_xRedlineinfoImg; + std::unique_ptr<weld::CheckButton> m_xDocPropertiesCB; + std::unique_ptr<weld::Widget> m_xDocPropertiesImg; + std::unique_ptr<weld::CheckButton> m_xNoteAuthorCB; + std::unique_ptr<weld::Widget> m_xNoteAuthorImg; + std::unique_ptr<weld::CheckButton> m_xDocumentVersionCB; + std::unique_ptr<weld::Widget> m_xDocumentVersionImg; + std::unique_ptr<weld::CheckButton> m_xPrinterSettingsCB; + std::unique_ptr<weld::Widget> m_xPrinterSettingsImg; + + public: + SecurityOptionsDialog(weld::Window* pParent); + + void init(); + + bool IsSaveOrSendDocsChecked() const { return m_xSaveOrSendDocsCB->get_active(); } + bool IsSignDocsChecked() const { return m_xSignDocsCB->get_active(); } + bool IsPrintDocsChecked() const { return m_xPrintDocsCB->get_active(); } + bool IsCreatePdfChecked() const { return m_xCreatePdfCB->get_active(); } + bool IsRemovePersInfoChecked() const { return m_xRemovePersInfoCB->get_active(); } + bool IsRemoveRedlineInfoChecked() const { return m_xRedlineinfoCB->get_active(); } + bool IsRemoveDocUserInfoChecked() const { return m_xDocPropertiesCB->get_active(); } + bool IsRemoveNoteAuthorInfoChecked() const { return m_xNoteAuthorCB->get_active(); } + bool IsRemoveDocVersionInfoChecked() const { return m_xDocumentVersionCB->get_active(); } + bool IsKeepPrinterSettingsChecked() const { return m_xPrinterSettingsCB->get_active(); } + bool IsRecommPasswdChecked() const { return m_xRecommPasswdCB->get_active(); } + bool IsCtrlHyperlinkChecked() const { return m_xCtrlHyperlinkCB->get_active(); } + bool IsBlockUntrustedRefererLinksChecked() const { return m_xBlockUntrustedRefererLinksCB->get_active(); } + bool IsDisableActiveContentChecked() const { return m_xDisableActiveContentCB->get_active(); } + + DECL_LINK(ShowPersonalInfosToggle, weld::Toggleable&, void); + + bool SetSecurityOptions(); + void changeKeepSecurityInfosEnabled(); + }; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/inc/splitcelldlg.hxx b/cui/source/inc/splitcelldlg.hxx index 86655a2a5755..ce14e0714a3e 100644 --- a/cui/source/inc/splitcelldlg.hxx +++ b/cui/source/inc/splitcelldlg.hxx @@ -35,7 +35,7 @@ private: public: SvxSplitTableDlg(weld::Window *pParent, bool bIsTableVertical, tools::Long nMaxVertical, tools::Long nMaxHorizontal); - DECL_LINK(ClickHdl, weld::Button&, void); + DECL_LINK(ToggleHdl, weld::Toggleable&, void); bool IsHorizontal() const; bool IsProportional() const; diff --git a/cui/source/inc/srchxtra.hxx b/cui/source/inc/srchxtra.hxx index 4da71f3c9601..712abc8b55bc 100644 --- a/cui/source/inc/srchxtra.hxx +++ b/cui/source/inc/srchxtra.hxx @@ -30,7 +30,7 @@ public: virtual ~SvxSearchFormatDialog() override; protected: - virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override; + virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override; private: std::unique_ptr<FontList> m_pFontList; @@ -42,7 +42,7 @@ class SvxSearchAttributeDialog : public weld::GenericDialogController { public: SvxSearchAttributeDialog(weld::Window* pParent, SearchAttrItemList& rLst, - const sal_uInt16* pWhRanges); + const WhichRangesContainer& pWhRanges); virtual ~SvxSearchAttributeDialog() override; private: diff --git a/cui/source/inc/swpossizetabpage.hxx b/cui/source/inc/swpossizetabpage.hxx index d9c72495acde..2e5a15fbebbb 100644 --- a/cui/source/inc/swpossizetabpage.hxx +++ b/cui/source/inc/swpossizetabpage.hxx @@ -21,6 +21,7 @@ #include <sfx2/tabdlg.hxx> #include <svx/swframeexample.hxx> #include <vcl/weld.hxx> +#include <svx/dlgutil.hxx> // SvxSwPosSizeTabPage - position and size page for Writer drawing objects struct FrmMap; @@ -55,10 +56,15 @@ class SvxSwPosSizeTabPage : public SfxTabPage TriState m_nProtectSizeState; SwFrameExample m_aExampleWN; + SvxRatioConnector m_aRatioTop; + SvxRatioConnector m_aRatioBottom; std::unique_ptr<weld::MetricSpinButton> m_xWidthMF; std::unique_ptr<weld::MetricSpinButton> m_xHeightMF; std::unique_ptr<weld::CheckButton> m_xKeepRatioCB; + std::unique_ptr<weld::Image> m_xCbxScaleImg; + std::unique_ptr<weld::CustomWeld> m_xImgRatioTop; + std::unique_ptr<weld::CustomWeld> m_xImgRatioBottom; std::unique_ptr<weld::RadioButton> m_xToPageRB; std::unique_ptr<weld::RadioButton> m_xToParaRB; std::unique_ptr<weld::RadioButton> m_xToCharRB; @@ -84,13 +90,14 @@ class SvxSwPosSizeTabPage : public SfxTabPage std::unique_ptr<weld::CustomWeld> m_xExampleWN; DECL_LINK(RangeModifyHdl, weld::Widget&, void); - DECL_LINK(RangeModifyClickHdl, weld::ToggleButton&, void); - DECL_LINK(AnchorTypeHdl, weld::ToggleButton&, void); + DECL_LINK(RangeModifyClickHdl, weld::Toggleable&, void); + DECL_LINK(AnchorTypeHdl, weld::Toggleable&, void); DECL_LINK(PosHdl, weld::ComboBox&, void); DECL_LINK(RelHdl, weld::ComboBox&, void); - DECL_LINK(MirrorHdl, weld::ToggleButton&, void); + DECL_LINK(MirrorHdl, weld::Toggleable&, void); DECL_LINK(ModifyHdl, weld::MetricSpinButton&, void); - DECL_LINK(ProtectHdl, weld::ToggleButton&, void); + DECL_LINK(ProtectHdl, weld::Toggleable&, void); + DECL_LINK(RatioHdl_Impl, weld::Toggleable&, void); void InitPos(RndStdIds nAnchorType, sal_uInt16 nH, sal_uInt16 nHRel, sal_uInt16 nV, sal_uInt16 nVRel, @@ -112,7 +119,7 @@ public: static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* ); virtual ~SvxSwPosSizeTabPage() override; - static const sal_uInt16* GetRanges(); + static WhichRangesContainer GetRanges(); virtual bool FillItemSet( SfxItemSet* ) override; virtual void Reset( const SfxItemSet * ) override; diff --git a/cui/source/inc/tabstpge.hxx b/cui/source/inc/tabstpge.hxx index c6e7e70f748d..207b8b70503d 100644 --- a/cui/source/inc/tabstpge.hxx +++ b/cui/source/inc/tabstpge.hxx @@ -58,14 +58,14 @@ public: class SvxTabulatorTabPage : public SfxTabPage { - static const sal_uInt16 pRanges[]; + static const WhichRangesContainer pRanges; public: SvxTabulatorTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet); static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet ); virtual ~SvxTabulatorTabPage() override; - static const sal_uInt16* GetRanges() { return pRanges; } + static WhichRangesContainer GetRanges() { return pRanges; } virtual bool FillItemSet( SfxItemSet* rSet ) override; virtual void Reset( const SfxItemSet* rSet ) override; @@ -129,8 +129,8 @@ private: DECL_LINK(DelHdl_Impl, weld::Button&, void); DECL_LINK(DelAllHdl_Impl, weld::Button&, void); - DECL_LINK(FillTypeCheckHdl_Impl, weld::ToggleButton&, void); - DECL_LINK(TabTypeCheckHdl_Impl, weld::ToggleButton&, void); + DECL_LINK(FillTypeCheckHdl_Impl, weld::Toggleable&, void); + DECL_LINK(TabTypeCheckHdl_Impl, weld::Toggleable&, void); DECL_LINK(SelectHdl_Impl, weld::TreeView&, bool); DECL_LINK(ModifyHdl_Impl, weld::ComboBox&, void); diff --git a/cui/source/inc/textanim.hxx b/cui/source/inc/textanim.hxx index 04306a7b69db..010d3954716c 100644 --- a/cui/source/inc/textanim.hxx +++ b/cui/source/inc/textanim.hxx @@ -34,7 +34,7 @@ class SdrView; class SvxTextAnimationPage : public SfxTabPage { private: - static const sal_uInt16 pRanges[]; + static const WhichRangesContainer pRanges; SdrTextAniKind eAniKind; FieldUnit eFUnit; @@ -67,9 +67,9 @@ private: std::unique_ptr<weld::MetricSpinButton> m_xMtrFldDelay; DECL_LINK( SelectEffectHdl_Impl, weld::ComboBox&, void ); - DECL_LINK( ClickEndlessHdl_Impl, weld::Button&, void ); - DECL_LINK( ClickAutoHdl_Impl, weld::Button&, void ); - DECL_LINK( ClickPixelHdl_Impl, weld::Button&, void ); + DECL_LINK( ClickEndlessHdl_Impl, weld::Toggleable&, void ); + DECL_LINK( ClickAutoHdl_Impl, weld::Toggleable&, void ); + DECL_LINK( ClickPixelHdl_Impl, weld::Toggleable&, void ); DECL_LINK( ClickDirectionHdl_Impl, weld::Button&, void ); void SelectDirection( SdrTextAniDirection nValue ); @@ -80,7 +80,7 @@ public: virtual ~SvxTextAnimationPage() override; static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* ); - static const sal_uInt16* GetRanges() { return pRanges; } + static WhichRangesContainer GetRanges() { return pRanges; } virtual bool FillItemSet( SfxItemSet* ) override; virtual void Reset( const SfxItemSet * ) override; @@ -96,7 +96,7 @@ class SvxTextTabDialog : public SfxTabDialogController private: const SdrView* pView; - virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override; + virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override; public: SvxTextTabDialog(weld::Window* pParent, const SfxItemSet* pAttr, const SdrView* pView); diff --git a/cui/source/inc/textattr.hxx b/cui/source/inc/textattr.hxx index c2abee744b40..a6a7f2bd6f46 100644 --- a/cui/source/inc/textattr.hxx +++ b/cui/source/inc/textattr.hxx @@ -19,7 +19,7 @@ #pragma once #include <svx/dlgctrl.hxx> -#include <svx/svdobj.hxx> +#include <svx/svdobjkind.hxx> class SdrView; @@ -32,7 +32,7 @@ class SdrView; class SvxTextAttrPage : public SvxTabPage { private: - static const sal_uInt16 pRanges[]; + static const WhichRangesContainer pRanges; const SfxItemSet& rOutAttrs; SdrObjKind m_eObjKind; @@ -63,8 +63,8 @@ private: std::unique_ptr<weld::CustomWeld> m_xCtlPosition; std::unique_ptr<weld::CheckButton> m_xTsbFullWidth; - DECL_LINK(ClickFullWidthHdl_Impl, weld::Button&, void); - DECL_LINK(ClickHdl_Impl, weld::Button&, void); + DECL_LINK(ClickFullWidthHdl_Impl, weld::Toggleable&, void); + DECL_LINK(ClickHdl_Impl, weld::Toggleable&, void); /** Return whether the text direction is from left to right (</sal_True>) or top to bottom (</sal_False>). @@ -77,7 +77,7 @@ public: virtual ~SvxTextAttrPage() override; static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* ); - static const sal_uInt16* GetRanges() { return pRanges; } + static WhichRangesContainer GetRanges() { return pRanges; } virtual bool FillItemSet( SfxItemSet* ) override; virtual void Reset( const SfxItemSet * ) override; diff --git a/cui/source/inc/thesdlg.hxx b/cui/source/inc/thesdlg.hxx index 9953b6b30014..05865d68d92f 100644 --- a/cui/source/inc/thesdlg.hxx +++ b/cui/source/inc/thesdlg.hxx @@ -26,6 +26,8 @@ #include <memory> #include <stack> +struct ImplSVEvent; + class SvxThesaurusDialog : public SfxDialogController { Idle m_aModifyIdle; @@ -43,6 +45,7 @@ class SvxThesaurusDialog : public SfxDialogController std::unique_ptr<weld::Entry> m_xReplaceEdit; std::unique_ptr<weld::ComboBox> m_xLangLB; std::unique_ptr<weld::Button> m_xReplaceBtn; + ImplSVEvent* m_nSelectFirstEvent; public: virtual ~SvxThesaurusDialog() override; @@ -69,7 +72,7 @@ public: void LookUp_Impl(); public: - SvxThesaurusDialog(weld::Window* pParent, + SvxThesaurusDialog(weld::Widget* pParent, css::uno::Reference< css::linguistic2::XThesaurus > const & xThesaurus, const OUString &rWord, LanguageType nLanguage); void SetWindowTitle( LanguageType nLanguage ); diff --git a/cui/source/inc/tipofthedaydlg.hxx b/cui/source/inc/tipofthedaydlg.hxx index 44ea0134fe01..1f86d1bf238c 100644 --- a/cui/source/inc/tipofthedaydlg.hxx +++ b/cui/source/inc/tipofthedaydlg.hxx @@ -21,10 +21,13 @@ #include <vcl/weld.hxx> #include "cuigrfflt.hxx" +class VclWindowEvent; + class TipOfTheDayDialog : public weld::GenericDialogController { private: CuiGraphicPreviewWindow m_aPreview; + css::uno::Reference<css::awt::XWindow> m_xParent; std::unique_ptr<weld::Label> m_pText; std::unique_ptr<weld::CheckButton> m_pShowTip; @@ -33,7 +36,6 @@ private: std::unique_ptr<weld::CustomWeld> m_pPreview; sal_Int32 m_nCurrentTip; - sal_Int32 m_nDay; void UpdateTip(); DECL_LINK(OnNextClick, weld::Button&, void); DECL_LINK(OnLinkClick, weld::LinkButton&, bool); @@ -41,6 +43,8 @@ private: public: TipOfTheDayDialog(weld::Window* pWindow); virtual ~TipOfTheDayDialog() override; + + DECL_LINK(Terminated, VclWindowEvent&, void); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/inc/toolbarmodedlg.hxx b/cui/source/inc/toolbarmodedlg.hxx index 8d0216734a75..5965aa7598d6 100644 --- a/cui/source/inc/toolbarmodedlg.hxx +++ b/cui/source/inc/toolbarmodedlg.hxx @@ -30,7 +30,7 @@ private: void UpdateImage(std::u16string_view sFileName); int GetActiveRadioButton(); - DECL_LINK(SelectToolbarmode, weld::ToggleButton&, void); + DECL_LINK(SelectToolbarmode, weld::Toggleable&, void); DECL_LINK(OnApplyClick, weld::Button&, void); }; diff --git a/cui/source/inc/transfrm.hxx b/cui/source/inc/transfrm.hxx index 33d984ff8b26..78ffd84e2794 100644 --- a/cui/source/inc/transfrm.hxx +++ b/cui/source/inc/transfrm.hxx @@ -19,6 +19,7 @@ #pragma once #include <svx/dlgctrl.hxx> +#include <svx/dlgutil.hxx> #include <svx/dialcontrol.hxx> #include <svx/anchorid.hxx> #include <basegfx/range/b2drange.hxx> @@ -41,7 +42,7 @@ private: SvxAnchorIds nAnchorCtrls; Link<SvxSwFrameValidation&,void> aValidateLink; - virtual void PageCreated(const OString& rId, SfxTabPage &rPage) override; + virtual void PageCreated(const OUString& rId, SfxTabPage &rPage) override; public: SvxTransformTabDialog(weld::Window* pParent, const SfxItemSet* pAttr, @@ -60,7 +61,7 @@ public: class SvxPositionSizeTabPage : public SvxTabPage { - static const sal_uInt16 pPosSizeRanges[]; + static const WhichRangesContainer pPosSizeRanges; private: const SfxItemSet& mrOutAttrs; @@ -91,6 +92,9 @@ private: SvxRectCtl m_aCtlPos; SvxRectCtl m_aCtlSize; + SvxRatioConnector m_aRatioTop; + SvxRatioConnector m_aRatioBottom; + // position std::unique_ptr<weld::Widget> m_xFlPosition; std::unique_ptr<weld::MetricSpinButton> m_xMtrPosX; @@ -104,6 +108,9 @@ private: std::unique_ptr<weld::Label> m_xFtHeight; std::unique_ptr<weld::MetricSpinButton> m_xMtrHeight; std::unique_ptr<weld::CheckButton> m_xCbxScale; + std::unique_ptr<weld::Image> m_xCbxScaleImg; + std::unique_ptr<weld::CustomWeld> m_xImgRatioTop; + std::unique_ptr<weld::CustomWeld> m_xImgRatioBottom; std::unique_ptr<weld::CustomWeld> m_xCtlSize; // protect @@ -116,23 +123,23 @@ private: std::unique_ptr<weld::CheckButton> m_xTsbAutoGrowWidth; std::unique_ptr<weld::CheckButton> m_xTsbAutoGrowHeight; - DECL_LINK(ChangePosProtectHdl, weld::ToggleButton&, void); - DECL_LINK(ChangeSizeProtectHdl, weld::ToggleButton&, void); + DECL_LINK(ChangePosProtectHdl, weld::Toggleable&, void); + DECL_LINK(ChangeSizeProtectHdl, weld::Toggleable&, void); void SetMinMaxPosition(); void GetTopLeftPosition(double& rfX, double& rfY, const basegfx::B2DRange& rRange); DECL_LINK( ChangeWidthHdl, weld::MetricSpinButton&, void ); DECL_LINK( ChangeHeightHdl, weld::MetricSpinButton&, void ); - DECL_LINK( ClickSizeProtectHdl, weld::ToggleButton&, void ); - DECL_LINK( ClickAutoHdl, weld::ToggleButton&, void ); + DECL_LINK( ClickSizeProtectHdl, weld::Toggleable&, void ); + DECL_LINK( ClickAutoHdl, weld::Toggleable&, void ); public: SvxPositionSizeTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rInAttrs); virtual ~SvxPositionSizeTabPage() override; static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* ); - static const sal_uInt16* GetRanges() { return pPosSizeRanges; } + static WhichRangesContainer GetRanges() { return pPosSizeRanges; } virtual bool FillItemSet( SfxItemSet* ) override; virtual void Reset( const SfxItemSet * ) override; @@ -160,7 +167,7 @@ public: \************************************************************************/ class SvxAngleTabPage : public SvxTabPage { - static const sal_uInt16 pAngleRanges[]; + static const WhichRangesContainer pAngleRanges; private: const SdrView* pView; @@ -188,7 +195,7 @@ public: virtual ~SvxAngleTabPage() override; static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* ); - static const sal_uInt16* GetRanges() { return pAngleRanges; } + static WhichRangesContainer GetRanges() { return pAngleRanges; } virtual bool FillItemSet( SfxItemSet* ) override; virtual void Reset( const SfxItemSet * ) override; @@ -209,7 +216,7 @@ public: \************************************************************************/ class SvxSlantTabPage : public SfxTabPage { - static const sal_uInt16 pSlantRanges[]; + static const WhichRangesContainer pSlantRanges; private: const SdrView* pView; @@ -232,7 +239,7 @@ public: virtual ~SvxSlantTabPage() override; static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* ); - static const sal_uInt16* GetRanges() { return pSlantRanges; } + static WhichRangesContainer GetRanges() { return pSlantRanges; } virtual bool FillItemSet( SfxItemSet* ) override; virtual void Reset( const SfxItemSet * ) override; diff --git a/cui/source/inc/treeopt.hxx b/cui/source/inc/treeopt.hxx index 59f7ef2d3e03..6d07d0981d5a 100644 --- a/cui/source/inc/treeopt.hxx +++ b/cui/source/inc/treeopt.hxx @@ -25,6 +25,9 @@ #include <sfx2/basedlgs.hxx> #include <svtools/restartdialog.hxx> +#include <utility> +#include <i18nutil/searchopt.hxx> +#include <vcl/timer.hxx> class SfxModule; class SfxShell; @@ -36,8 +39,8 @@ struct OrderedEntry sal_Int32 m_nIndex; OUString m_sId; - OrderedEntry( sal_Int32 nIndex, const OUString& rId ) : - m_nIndex( nIndex ), m_sId( rId ) {} + OrderedEntry( sal_Int32 nIndex, OUString aId ) : + m_nIndex( nIndex ), m_sId(std::move( aId )) {} }; @@ -61,15 +64,15 @@ struct OptionsLeaf OUString m_sGroupId; sal_Int32 m_nGroupIndex; - OptionsLeaf( const OUString& rLabel, - const OUString& rPageURL, - const OUString& rEventHdl, - const OUString& rGroupId, + OptionsLeaf( OUString aLabel, + OUString aPageURL, + OUString aEventHdl, + OUString aGroupId, sal_Int32 nGroupIndex ) : - m_sLabel( rLabel ), - m_sPageURL( rPageURL ), - m_sEventHdl( rEventHdl ), - m_sGroupId( rGroupId ), + m_sLabel(std::move( aLabel )), + m_sPageURL(std::move( aPageURL )), + m_sEventHdl(std::move( aEventHdl )), + m_sGroupId(std::move( aGroupId )), m_nGroupIndex( nGroupIndex ) {} }; @@ -84,11 +87,11 @@ struct OptionsNode std::vector< std::vector< std::unique_ptr<OptionsLeaf> > > m_aGroupedLeaves; - OptionsNode( const OUString& rId, - const OUString& rLabel, + OptionsNode( OUString aId, + OUString aLabel, bool bAllModules ) : - m_sId( rId ), - m_sLabel( rLabel ), + m_sId(std::move( aId )), + m_sLabel(std::move( aLabel )), m_bAllModules( bAllModules ) {} }; @@ -113,6 +116,7 @@ struct Module; class ExtensionsTabPage; class SvxColorTabPage; struct OptionsGroupInfo; +struct OptionsPageIdInfo; class OfaTreeOptionsDialog final: public SfxOkDialogController { @@ -123,11 +127,38 @@ private: std::unique_ptr<weld::TreeView> xTreeLB; std::unique_ptr<weld::Container> xTabBox; + std::unique_ptr<weld::Entry> m_xSearchEdit; weld::Window* m_pParent; std::unique_ptr<weld::TreeIter> xCurrentPageEntry; + // For search + Timer m_aUpdateDataTimer; + i18nutil::SearchOptions2 m_options; + + bool bIsFirtsInitialize; + std::vector<OptionsPageIdInfo*> m_aTreePageIds; + typedef std::vector<std::pair<sal_uInt16, std::vector<sal_uInt16>>> VectorOfMatchedIds; + + void generalOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_GENERAL_OPTIONS + void loadAndSaveOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_FILTER_DLG + void languageOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_LANGUAGE_OPTIONS + void writerOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_SW_EDITOPTIONS + void writerWebOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_SW_ONLINEOPTIONS + void calcOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_SC_EDITOPTIONS + void impressOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_SD_EDITOPTIONS + void drawOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_SD_GRAPHIC_OPTIONS + void mathOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_SM_EDITOPTIONS + void databaseOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_SB_STARBASEOPTIONS + void chartOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_SCH_EDITOPTIONS + void internetOptions(const std::vector<sal_uInt16>& vPageId = {}); // SID_INET_DLG + + void clearOptionsDialog(); + void selectFirstEntry(); + void storeOptionsTree(); + void showDialog(VectorOfMatchedIds& pSearchIds); + OUString sTitle; bool bForgetSelection; @@ -141,14 +172,13 @@ private: css::uno::Reference < css::awt::XContainerWindowProvider > m_xContainerWinProvider; + css::uno::Reference<css::frame::XFrame> m_xFrame; static LastPageSaver* pLastPageSaver; - std::unique_ptr<SfxItemSet> CreateItemSet( sal_uInt16 nId ); + std::optional<SfxItemSet> CreateItemSet( sal_uInt16 nId ); static void ApplyItemSet( sal_uInt16 nId, const SfxItemSet& rSet ); - void InitTreeAndHandler(); void Initialize( const css::uno::Reference< css::frame::XFrame >& _xFrame ); - void InitWidgets(); void LoadExtensionOptions( std::u16string_view rExtensionId ); static OUString GetModuleIdentifier( const css::uno::Reference< @@ -163,8 +193,13 @@ private: DECL_LINK(BackHdl_Impl, weld::Button&, void); DECL_LINK(ApplyHdl_Impl, weld::Button&, void); DECL_LINK(HelpHdl_Impl, weld::Widget&, bool); + DECL_LINK(SearchUpdateHdl, weld::Entry&, void); + DECL_LINK(ImplUpdateDataHdl, Timer*, void); + DECL_LINK(FocusOut_Impl, weld::Widget&, void); void ResetCurrentPageFromConfig(); void SelectHdl_Impl(); + void initializeCurrentDialog(OptionsPageInfo*& pPageInfo, + std::unique_ptr<weld::TreeIter>& xEntry); void InitItemSets(OptionsGroupInfo& rGroupInfo); @@ -173,6 +208,13 @@ private: virtual weld::Button& GetOKButton() const override { return *xOkPB; } virtual const SfxItemSet* GetExampleSet() const override { return nullptr; } + int applySearchFilter(const OUString& rSearchTerm); + + void ImplDestroy(); + + // Common initialization + OfaTreeOptionsDialog(weld::Window* pParent, bool fromExtensionManager); + public: OfaTreeOptionsDialog(weld::Window* pParent, const css::uno::Reference< css::frame::XFrame >& _xFrame, @@ -189,8 +231,12 @@ public: void ActivatePage( const OUString& rPageURL ); void ApplyItemSets(); - // helper functions to call the language settings TabPage from the SpellDialog + // default value initializes all dialogs + void initializeFirstNDialog(sal_Int16 nNumberOfNode = -1); + + // helper functions to call the Languages and Locales TabPage from the SpellDialog static void ApplyLanguageOptions(const SfxItemSet& rSet); + static OUString getCurrentFactory_Impl( const css::uno::Reference< css::frame::XFrame >& _xFrame ); void SetNeedsRestart( svtools::RestartReason eReason ); }; @@ -219,7 +265,7 @@ private: public: ExtensionsTabPage( weld::Container* pParent, - const OUString& rPageURL, const OUString& rEvtHdl, + OUString rPageURL, OUString aEvtHdl, const css::uno::Reference< css::awt::XContainerWindowProvider >& rProvider ); @@ -235,4 +281,13 @@ public: void SavePage(); }; +// class TreeOptHelper --------------------------------------------------- + +class TreeOptHelper +{ +public: + static void storeStringsOfDialog(sal_uInt16 nPageId, const OUString& sPageStrings); + static OUString getStringsFromDialog(sal_uInt16 nPageId); +}; + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/inc/whatsnew.hxx b/cui/source/inc/whatsnew.hxx new file mode 100644 index 000000000000..979fff919df2 --- /dev/null +++ b/cui/source/inc/whatsnew.hxx @@ -0,0 +1,79 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#pragma once + +#include <vcl/customweld.hxx> +#include <vcl/weld.hxx> +#include "cuigrfflt.hxx" + +class WhatsNewImg : public weld::CustomWidgetController +{ + OUString m_sImage; + OUString m_sText; + virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) override; + +public: + WhatsNewImg() {} + void Update(const OUString& sImage, const OUString& sText) + { + m_sImage = sImage; + m_sText = sText; + SetAccessibleName(m_sText); + Invalidate(); + } +}; + +class WhatsNewProgress : public weld::CustomWidgetController +{ + sal_Int32 m_nTotal; + sal_Int32 m_nCurrent; + virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) override; + +public: + WhatsNewProgress() + : m_nTotal(0) + , m_nCurrent(0) + { + } + void Update(const sal_Int32 nCurrent, const sal_Int32 nTotal) + { + m_nTotal = nTotal; + m_nCurrent = nCurrent; + Invalidate(); + } +}; + +class WhatsNewDialog : public weld::GenericDialogController +{ +private: + const bool m_bWelcome; + + WhatsNewImg m_aPreview; + WhatsNewProgress m_aProgress; + + std::unique_ptr<weld::Button> m_pPrevBtn; + std::unique_ptr<weld::Button> m_pNextBtn; + std::unique_ptr<weld::CustomWeld> m_pProgress; + std::unique_ptr<weld::CustomWeld> m_pImage; + + DECL_LINK(OnPrevClick, weld::Button&, void); + DECL_LINK(OnNextClick, weld::Button&, void); + + void LoadImage(); // loads WHATSNEW_STRINGARRAY[m_nCurrentNews] + + sal_Int32 m_nNumberOfNews; + sal_Int32 m_nCurrentNews; + +public: + WhatsNewDialog(weld::Window* pParent, const bool bWelcome); + virtual ~WhatsNewDialog() override; +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/cui/source/inc/zoom.hxx b/cui/source/inc/zoom.hxx index f338e313305d..f44998378d73 100644 --- a/cui/source/inc/zoom.hxx +++ b/cui/source/inc/zoom.hxx @@ -45,11 +45,11 @@ private: std::unique_ptr<weld::CheckButton> m_xBookModeChk; std::unique_ptr<weld::Button> m_xOKBtn; - DECL_LINK(UserHdl, weld::ToggleButton&, void); + DECL_LINK(UserHdl, weld::Toggleable&, void); DECL_LINK(SpinHdl, weld::MetricSpinButton&, void); - DECL_LINK(ViewLayoutUserHdl, weld::ToggleButton&, void); + DECL_LINK(ViewLayoutUserHdl, weld::Toggleable&, void); DECL_LINK(ViewLayoutSpinHdl, weld::SpinButton&, void); - DECL_LINK(ViewLayoutCheckHdl, weld::ToggleButton&, void); + DECL_LINK(ViewLayoutCheckHdl, weld::Toggleable&, void); DECL_LINK(OKHdl, weld::Button&, void); public: |