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>

Reply via email to