sc/inc/document.hxx | 22 +------- sc/inc/scabstdlg.hxx | 1 sc/qa/uitest/conditional_format/tdf96453.py | 5 - sc/sdi/cellsh.sdi | 3 - sc/source/core/data/documen2.cxx | 5 - sc/source/ui/attrdlg/scdlgfact.cxx | 5 - sc/source/ui/attrdlg/scdlgfact.hxx | 1 sc/source/ui/condformat/condformateasydlg.cxx | 17 +----- sc/source/ui/condformat/condformatmgr.cxx | 34 ------------- sc/source/ui/inc/condformateasydlg.hxx | 1 sc/source/ui/inc/condformatmgr.hxx | 3 - sc/source/ui/view/cellsh1.cxx | 7 ++ sc/source/ui/view/cellsh3.cxx | 13 ----- sc/uiconfig/scalc/ui/condformatmanager.ui | 66 +------------------------- 14 files changed, 27 insertions(+), 156 deletions(-)
New commits: commit 97228a2db67b051557bd0410538c825a330deb0c Author: Pranam Lashkari <lpra...@collabora.com> AuthorDate: Mon Nov 25 19:47:26 2024 +0530 Commit: Caolán McNamara <caolan.mcnam...@collabora.com> CommitDate: Tue Nov 26 09:38:52 2024 +0100 Revert "sc: manage conditional format with simpler dialog" This reverts commit 58c3f70c514ef4ce0de5419ab7daa3bebfb96f37. Change-Id: I500a96508684547c158cdd1814540a4b24f667d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177290 Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx index d14136a84588..2c3323118ac4 100644 --- a/sc/inc/document.hxx +++ b/sc/inc/document.hxx @@ -212,19 +212,6 @@ struct ScSheetLimits; struct ScDataAreaExtras; enum class ScConditionMode; -struct ScConditionEasyDialogData -{ - ScConditionMode* Mode = nullptr; - bool IsManaged : 1 = false; - - ScConditionEasyDialogData(ScConditionMode* mode, bool isManaged) - : Mode(mode) - , IsManaged(isManaged) - { - } - - ScConditionEasyDialogData() {} -}; namespace sc { @@ -439,7 +426,7 @@ private: std::unique_ptr<ScExtDocOptions> pExtDocOptions; // for import etc. std::unique_ptr<ScClipOptions> mpClipOptions; // clipboard options std::unique_ptr<ScConsolidateParam> pConsolidateDlgData; - ScConditionEasyDialogData pConditionalFormatDialogData; + std::unique_ptr<ScConditionMode> pConditionalFormatDialogMode; std::unique_ptr<ScAutoNameCache> pAutoNameCache; // for automatic name lookup during CompileXML @@ -667,11 +654,8 @@ public: void SetConsolidateDlgData( std::unique_ptr<ScConsolidateParam> pData ); const ScConsolidateParam* GetConsolidateDlgData() const { return pConsolidateDlgData.get(); } - void SetEasyConditionalFormatDialogData(const ScConditionEasyDialogData& data); - ScConditionEasyDialogData GetEasyConditionalFormatDialogData() const - { - return pConditionalFormatDialogData; - } + void SetEasyConditionalFormatDialogData(std::unique_ptr<ScConditionMode> pMode); + const ScConditionMode* GetEasyConditionalFormatDialogData() const { return pConditionalFormatDialogMode.get(); } void Clear( bool bFromDestructor = false ); diff --git a/sc/inc/scabstdlg.hxx b/sc/inc/scabstdlg.hxx index eec2414b503f..3302a739d27e 100644 --- a/sc/inc/scabstdlg.hxx +++ b/sc/inc/scabstdlg.hxx @@ -93,7 +93,6 @@ public: virtual std::unique_ptr<ScConditionalFormatList> GetConditionalFormatList() = 0; virtual bool CondFormatsChanged() const = 0; - virtual void ShowEasyConditionalDialog() = 0; virtual void SetModified() = 0; diff --git a/sc/qa/uitest/conditional_format/tdf96453.py b/sc/qa/uitest/conditional_format/tdf96453.py index 50ba86e51eec..453a9ff48eb5 100644 --- a/sc/qa/uitest/conditional_format/tdf96453.py +++ b/sc/qa/uitest/conditional_format/tdf96453.py @@ -11,7 +11,6 @@ from uitest.framework import UITestCase from uitest.uihelper.common import get_state_as_dict, get_url_for_data_file from libreoffice.calc.document import get_sheet_from_doc from libreoffice.calc.conditional_format import get_conditional_format_from_sheet -import sys class ConditionalFormatDlgTest(UITestCase): @@ -54,9 +53,9 @@ class ConditionalFormatDlgTest(UITestCase): # and still only 2 conditional formats in the document xList = xCondFormatMgr.getChild("CONTAINER") list_state = get_state_as_dict(xList) - self.assertEqual(list_state['Children'], '3') + self.assertEqual(list_state['Children'], '2') - self.assertEqual(conditional_format_list.getLength(), 3) + self.assertEqual(conditional_format_list.getLength(), 2) # close the conditional format manager xCancelBtn = xCondFormatMgr.getChild("cancel") diff --git a/sc/sdi/cellsh.sdi b/sc/sdi/cellsh.sdi index 4b0b86114ea3..687273d4eacf 100644 --- a/sc/sdi/cellsh.sdi +++ b/sc/sdi/cellsh.sdi @@ -218,8 +218,7 @@ interface CellSelection SID_POPUP_EASY_CONDITIONAL_FORMAT [] SfxVoidItem ConditionalFormatEasy SID_EASY_CONDITIONAL_FORMAT_DIALOG ( - SfxInt16Item FormatRule FN_PARAM_1, - SfxBoolItem Managed FN_PARAM_2 + SfxInt16Item FormatRule FN_PARAM_1 ) [ ExecMethod = Execute; diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx index cc939eba38a4..1fac12dbebba 100644 --- a/sc/source/core/data/documen2.cxx +++ b/sc/source/core/data/documen2.cxx @@ -1170,10 +1170,9 @@ void ScDocument::SetConsolidateDlgData( std::unique_ptr<ScConsolidateParam> pDat pConsolidateDlgData = std::move(pData); } -void ScDocument::SetEasyConditionalFormatDialogData(const ScConditionEasyDialogData& data) +void ScDocument::SetEasyConditionalFormatDialogData(std::unique_ptr<ScConditionMode> pMode) { - pConditionalFormatDialogData.Mode = data.Mode; - pConditionalFormatDialogData.IsManaged = data.IsManaged; + pConditionalFormatDialogMode = std::move(pMode); } void ScDocument::SetChangeViewSettings(const ScChangeViewSettings& rNew) diff --git a/sc/source/ui/attrdlg/scdlgfact.cxx b/sc/source/ui/attrdlg/scdlgfact.cxx index 91470d768eba..132d3b4fa825 100644 --- a/sc/source/ui/attrdlg/scdlgfact.cxx +++ b/sc/source/ui/attrdlg/scdlgfact.cxx @@ -719,11 +719,6 @@ ScConditionalFormat* AbstractScCondFormatManagerDlg_Impl::GetCondFormatSelected( return m_xDlg->GetCondFormatSelected(); } -void AbstractScCondFormatManagerDlg_Impl::ShowEasyConditionalDialog() -{ - m_xDlg->ShowEasyConditionalDialog(); -} - int AbstractScMetricInputDlg_Impl::GetInputValue() const { return m_xDlg->GetInputValue(); diff --git a/sc/source/ui/attrdlg/scdlgfact.hxx b/sc/source/ui/attrdlg/scdlgfact.hxx index c01f99a132d7..b4e17f14b5a0 100644 --- a/sc/source/ui/attrdlg/scdlgfact.hxx +++ b/sc/source/ui/attrdlg/scdlgfact.hxx @@ -115,7 +115,6 @@ public: virtual bool CondFormatsChanged() const override; virtual void SetModified() override; virtual ScConditionalFormat* GetCondFormatSelected() override; - virtual void ShowEasyConditionalDialog() override; }; class AbstractScDataPilotDatabaseDlg_Impl :public AbstractScDataPilotDatabaseDlg diff --git a/sc/source/ui/condformat/condformateasydlg.cxx b/sc/source/ui/condformat/condformateasydlg.cxx index 1488051876f0..aef394be24fe 100644 --- a/sc/source/ui/condformat/condformateasydlg.cxx +++ b/sc/source/ui/condformat/condformateasydlg.cxx @@ -48,7 +48,6 @@ ConditionalFormatEasyDialog::ConditionalFormatEasyDialog(SfxBindings* pBindings, "modules/scalc/ui/conditionaleasydialog.ui", "CondFormatEasyDlg") , mpViewData(pViewData) , mpDocument(&mpViewData->GetDocument()) - , mbIsManaged(false) , mxNumberEntry(m_xBuilder->weld_entry("entryNumber")) , mxNumberEntry2(m_xBuilder->weld_entry("entryNumber2")) , mxAllInputs(m_xBuilder->weld_container("allInputs")) @@ -60,9 +59,9 @@ ConditionalFormatEasyDialog::ConditionalFormatEasyDialog(SfxBindings* pBindings, , mxButtonCancel(m_xBuilder->weld_button("cancel")) { mxButtonRangeEdit->SetReferences(this, mxRangeEntry.get()); - const ScConditionEasyDialogData CurrentData + const ScConditionMode* pCurrentMode = pViewData->GetDocument().GetEasyConditionalFormatDialogData(); - if (!CurrentData.Mode) + if (!pCurrentMode) { SAL_WARN( "sc", @@ -71,8 +70,7 @@ ConditionalFormatEasyDialog::ConditionalFormatEasyDialog(SfxBindings* pBindings, } else { - meMode = *CurrentData.Mode; - mbIsManaged = CurrentData.IsManaged; + meMode = *pCurrentMode; } mxNumberEntry2->hide(); switch (meMode) @@ -189,14 +187,7 @@ ConditionalFormatEasyDialog::ConditionalFormatEasyDialog(SfxBindings* pBindings, mxStyles->set_active(1); } -ConditionalFormatEasyDialog::~ConditionalFormatEasyDialog() -{ - if (mbIsManaged) - { - GetBindings().GetDispatcher()->Execute(SID_OPENDLG_CONDFRMT_MANAGER, - SfxCallMode::ASYNCHRON); - } -} +ConditionalFormatEasyDialog::~ConditionalFormatEasyDialog() {} void ConditionalFormatEasyDialog::Notify(SfxBroadcaster&, const SfxHint& rHint) { diff --git a/sc/source/ui/condformat/condformatmgr.cxx b/sc/source/ui/condformat/condformatmgr.cxx index d77e57b79f85..31e16ab8c08c 100644 --- a/sc/source/ui/condformat/condformatmgr.cxx +++ b/sc/source/ui/condformat/condformatmgr.cxx @@ -8,18 +8,11 @@ */ #include <condformatmgr.hxx> -#include <condformateasydlg.hxx> #include <condformathelper.hxx> #include <condformatdlg.hxx> #include <document.hxx> #include <conditio.hxx> -#include <sc.hrc> #include <o3tl/safeint.hxx> -#include <sfx2/dispatch.hxx> -#include <sfx2/sfxsids.hrc> -#include <sfx2/viewsh.hxx> -#include <svl/eitem.hxx> -#include <svl/intitem.hxx> #include <unotools/viewoptions.hxx> ScCondFormatManagerWindow::ScCondFormatManagerWindow(weld::TreeView& rTreeView, @@ -92,13 +85,10 @@ void ScCondFormatManagerWindow::setColSizes() mrTreeView.set_column_fixed_widths(aWidths); } -ScCondFormatManagerDlg::ScCondFormatManagerDlg(weld::Window* pParent, ScDocument& rDoc, - const ScConditionalFormatList* pFormatList) +ScCondFormatManagerDlg::ScCondFormatManagerDlg(weld::Window* pParent, ScDocument& rDoc, const ScConditionalFormatList* pFormatList) : GenericDialogController(pParent, "modules/scalc/ui/condformatmanager.ui", "CondFormatManager") , m_bModified(false) - , m_xFormatList(pFormatList ? new ScConditionalFormatList(*pFormatList) : nullptr) - , m_xConditionalType(m_xBuilder->weld_combo_box("type")) - , m_xConditionalCellValue(m_xBuilder->weld_combo_box("typeis")) + , m_xFormatList( pFormatList ? new ScConditionalFormatList(*pFormatList) : nullptr) , m_xBtnAdd(m_xBuilder->weld_button("add")) , m_xBtnRemove(m_xBuilder->weld_button("remove")) , m_xBtnEdit(m_xBuilder->weld_button("edit")) @@ -143,26 +133,6 @@ ScConditionalFormat* ScCondFormatManagerDlg::GetCondFormatSelected() return m_xCtrlManager->GetSelection(); } -void ScCondFormatManagerDlg::ShowEasyConditionalDialog() -{ - auto id = m_xConditionalType->get_active(); - switch (id) - { - case 0: // Cell value - { - SfxInt16Item FormatRule(FN_PARAM_1, - m_xConditionalCellValue->get_active_id().toUInt32()); - SfxBoolItem IsManaged(FN_PARAM_2, true); - SfxViewShell::Current()->GetDispatcher()->ExecuteList( - SID_EASY_CONDITIONAL_FORMAT_DIALOG, SfxCallMode::ASYNCHRON, - { &FormatRule, &IsManaged }); - } - break; - default: - break; - } -} - IMPL_LINK_NOARG(ScCondFormatManagerDlg, RemoveBtnHdl, weld::Button&, void) { m_xCtrlManager->DeleteSelection(); diff --git a/sc/source/ui/inc/condformateasydlg.hxx b/sc/source/ui/inc/condformateasydlg.hxx index a9d27c9a1001..ad7501c1bd3b 100644 --- a/sc/source/ui/inc/condformateasydlg.hxx +++ b/sc/source/ui/inc/condformateasydlg.hxx @@ -39,7 +39,6 @@ private: ScViewData* mpViewData; ScDocument* mpDocument; ScConditionMode meMode; - bool mbIsManaged; ScAddress maPosition; std::unique_ptr<weld::Entry> mxNumberEntry; diff --git a/sc/source/ui/inc/condformatmgr.hxx b/sc/source/ui/inc/condformatmgr.hxx index 51a251416b27..ca9f16e8a55f 100644 --- a/sc/source/ui/inc/condformatmgr.hxx +++ b/sc/source/ui/inc/condformatmgr.hxx @@ -44,14 +44,11 @@ public: void SetModified(); ScConditionalFormat* GetCondFormatSelected(); - void ShowEasyConditionalDialog(); private: bool m_bModified; std::unique_ptr<ScConditionalFormatList> m_xFormatList; - std::unique_ptr<weld::ComboBox> m_xConditionalType; - std::unique_ptr<weld::ComboBox> m_xConditionalCellValue; std::unique_ptr<weld::Button> m_xBtnAdd; std::unique_ptr<weld::Button> m_xBtnRemove; std::unique_ptr<weld::Button> m_xBtnEdit; diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx index 38d1e4682111..c05a98670742 100644 --- a/sc/source/ui/view/cellsh1.cxx +++ b/sc/source/ui/view/cellsh1.cxx @@ -2926,7 +2926,12 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq ) } else if(nRet == DLG_RET_ADD) { - pDlg->ShowEasyConditionalDialog(); + // Put the xml string parameter to initialize the + // Conditional Format Dialog. ( add new ) + pTabViewShell->GetPool().DirectPutItemInPool(ScCondFormatDlgItem( + std::shared_ptr<ScConditionalFormatList>(pCondFormatList.release()), -1, true)); + // Queue message to open Conditional Format Dialog + GetViewData().GetDispatcher().Execute( SID_OPENDLG_CONDFRMT, SfxCallMode::ASYNCHRON ); } else if (nRet == DLG_RET_EDIT) { diff --git a/sc/source/ui/view/cellsh3.cxx b/sc/source/ui/view/cellsh3.cxx index e5ef913e3ff9..b7bd2daa4450 100644 --- a/sc/source/ui/view/cellsh3.cxx +++ b/sc/source/ui/view/cellsh3.cxx @@ -456,20 +456,11 @@ void ScCellShell::Execute( SfxRequest& rReq ) const SfxPoolItem* pFormat; if (pReqArgs->HasItem( FN_PARAM_1, &pFormat)) { - ScConditionMode nFormat = static_cast<ScConditionMode>( - static_cast<const SfxInt16Item*>(pFormat)->GetValue()); + sal_Int16 nFormat = static_cast<const SfxInt16Item*>(pFormat)->GetValue(); sal_uInt16 nId = sc::ConditionalFormatEasyDialogWrapper::GetChildWindowId(); SfxViewFrame& rViewFrame = pTabViewShell->GetViewFrame(); SfxChildWindow* pWindow = rViewFrame.GetChildWindow( nId ); - const SfxPoolItem* pManaged; - bool bManaged = false; - if (pReqArgs->HasItem(FN_PARAM_2, &pManaged)) - { - bManaged = static_cast<const SfxBoolItem*>(pManaged)->GetValue(); - } - - GetViewData().GetDocument().SetEasyConditionalFormatDialogData( - ScConditionEasyDialogData(&nFormat, bManaged)); + GetViewData().GetDocument().SetEasyConditionalFormatDialogData(std::make_unique<ScConditionMode>(static_cast<ScConditionMode>(nFormat))); pScMod->SetRefDialog( nId, pWindow == nullptr ); } diff --git a/sc/uiconfig/scalc/ui/condformatmanager.ui b/sc/uiconfig/scalc/ui/condformatmanager.ui index 74ea3d33bda9..c9aead73ba61 100644 --- a/sc/uiconfig/scalc/ui/condformatmanager.ui +++ b/sc/uiconfig/scalc/ui/condformatmanager.ui @@ -163,67 +163,11 @@ </packing> </child> <child> - <object class="GtkBox" id="buttonbox2"> + <object class="GtkButtonBox" id="buttonbox2"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">12</property> - <child> - <object class="GtkComboBoxText" id="type"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="active">0</property> - <items> - <item translatable="yes" context="condformatmanager|typex">Cell value</item> - <item translatable="yes" context="condformatmanager|typex">Formula is</item> - <item translatable="yes" context="condformatmanager|typex">Date is</item> - </items> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkComboBoxText" id="typeis"> - <property name="can_focus">False</property> - <property name="visible">True</property> - <property name="no_show_all">True</property> - <property name="active">0</property> - <items> - <item translatable="yes" context="condformatmanager|typeis" id="0">is equal to</item> - <item translatable="yes" context="condformatmanager|typeis" id="1">is less than</item> - <item translatable="yes" context="condformatmanager|typeis" id="2">is greater than</item> - <item translatable="yes" context="condformatmanager|typeis" id="3">is less than or equal to</item> - <item translatable="yes" context="condformatmanager|typeis" id="4">is greater than or equal to</item> - <item translatable="yes" context="condformatmanager|typeis" id="5">is not equal to</item> - <item translatable="yes" context="condformatmanager|typeis" id="6">is between</item> - <item translatable="yes" context="condformatmanager|typeis" id="7">is not between</item> - <item translatable="yes" context="condformatmanager|typeis" id="8">is duplicate</item> - <item translatable="yes" context="condformatmanager|typeis" id="9">is not duplicate</item> - <!-- <item translatable="yes" context="condformatmanager|typeis" id="10" >is direct</item> --> - <item translatable="yes" context="condformatmanager|typeis" id="11">is in top N elements</item> - <item translatable="yes" context="condformatmanager|typeis" id="12">is in bottom N elements</item> - <item translatable="yes" context="condformatmanager|typeis" id="13">is in top N percent</item> - <item translatable="yes" context="condformatmanager|typeis" id="14">is in bottom N percent</item> - <item translatable="yes" context="condformatmanager|typeis" id="15">is above average</item> - <item translatable="yes" context="condformatmanager|typeis" id="16">is below average</item> - <item translatable="yes" context="condformatmanager|typeis" id="17">is above or equal average</item> - <item translatable="yes" context="condformatmanager|typeis" id="18">is below or equal average</item> - <item translatable="yes" context="condformatmanager|typeis" id="19">is error</item> - <item translatable="yes" context="condformatmanager|typeis" id="20">is not error</item> - <item translatable="yes" context="condformatmanager|typeis" id="21">begins with</item> - <item translatable="yes" context="condformatmanager|typeis" id="22">ends with</item> - <item translatable="yes" context="condformatmanager|typeis" id="23">contains</item> - <item translatable="yes" context="condformatmanager|typeis" id="24">does not contain</item> - </items> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> + <property name="layout_style">start</property> <child> <object class="GtkButton" id="add"> <property name="label" translatable="yes" context="condformatmanager|add">Add</property> @@ -239,7 +183,7 @@ <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">2</property> + <property name="position">0</property> </packing> </child> <child> @@ -257,7 +201,7 @@ <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">3</property> + <property name="position">1</property> </packing> </child> <child> @@ -275,7 +219,7 @@ <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">4</property> + <property name="position">2</property> </packing> </child> </object>