sc/inc/conditio.hxx | 56 ---------- 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/conditio.cxx | 16 -- 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/condformatdlgentry.cxx | 30 ----- sc/source/ui/condformat/condformateasydlg.cxx | 136 +------------------------ sc/source/ui/condformat/condformatmgr.cxx | 115 --------------------- sc/source/ui/inc/condformatdlgentry.hxx | 2 sc/source/ui/inc/condformateasydlg.hxx | 1 sc/source/ui/inc/condformatmgr.hxx | 7 - sc/source/ui/view/cellsh1.cxx | 12 +- sc/source/ui/view/cellsh3.cxx | 15 -- sc/uiconfig/scalc/ui/condformatmanager.ui | 114 -------------------- sc/uiconfig/scalc/ui/conditionaleasydialog.ui | 2 19 files changed, 39 insertions(+), 509 deletions(-)
New commits: commit f643a98b2b60ccad63f7b4647ff6bc0141df0718 Author: Pranam Lashkari <[email protected]> AuthorDate: Mon Nov 25 19:47:26 2024 +0530 Commit: Pranam Lashkari <[email protected]> CommitDate: Tue Dec 3 16:12:38 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 <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177341 Tested-by: Jenkins diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx index 678652e47fe7..7908be80dcc7 100644 --- a/sc/inc/document.hxx +++ b/sc/inc/document.hxx @@ -225,20 +225,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 { typedef std::map<OUString, BitmapEx> IconSetBitmapMap; @@ -479,7 +465,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 @@ -727,10 +713,10 @@ public: void SetConsolidateDlgData( std::unique_ptr<ScConsolidateParam> pData ); const ScConsolidateParam* GetConsolidateDlgData() const { return pConsolidateDlgData.get(); } - void SetEasyConditionalFormatDialogData(const ScConditionEasyDialogData& data); - const ScConditionEasyDialogData & GetEasyConditionalFormatDialogData() const + void SetEasyConditionalFormatDialogData(std::unique_ptr<ScConditionMode> pMode); + const ScConditionMode* GetEasyConditionalFormatDialogData() const { - return pConditionalFormatDialogData; + return pConditionalFormatDialogMode.get(); } void Clear( bool bFromDestructor = false ); diff --git a/sc/inc/scabstdlg.hxx b/sc/inc/scabstdlg.hxx index eeb1061fa1d2..245869363f2e 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 8908dc424e23..44e87cd69119 100644 --- a/sc/sdi/cellsh.sdi +++ b/sc/sdi/cellsh.sdi @@ -219,8 +219,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 bab0668a38e9..3890a5194e85 100644 --- a/sc/source/core/data/documen2.cxx +++ b/sc/source/core/data/documen2.cxx @@ -1185,10 +1185,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 e70283b4b5ce..c088322f01a2 100644 --- a/sc/source/ui/attrdlg/scdlgfact.cxx +++ b/sc/source/ui/attrdlg/scdlgfact.cxx @@ -739,11 +739,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 7e9761180ef9..fe60d59bc8e6 100644 --- a/sc/source/ui/attrdlg/scdlgfact.hxx +++ b/sc/source/ui/attrdlg/scdlgfact.hxx @@ -116,7 +116,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 bf745747fee4..71ae8745df53 100644 --- a/sc/source/ui/condformat/condformateasydlg.cxx +++ b/sc/source/ui/condformat/condformateasydlg.cxx @@ -58,7 +58,6 @@ ConditionalFormatEasyDialog::ConditionalFormatEasyDialog(SfxBindings* pBindings, u"CondFormatEasyDlg"_ustr) , mpViewData(pViewData) , mrDocument(mpViewData->GetDocument()) - , mbIsManaged(false) , mxNumberEntry(m_xBuilder->weld_entry(u"entryNumber"_ustr)) , mxNumberEntry2(m_xBuilder->weld_entry(u"entryNumber2"_ustr)) , mxAllInputs(m_xBuilder->weld_container(u"allInputs"_ustr)) @@ -70,9 +69,9 @@ ConditionalFormatEasyDialog::ConditionalFormatEasyDialog(SfxBindings* pBindings, , mxButtonCancel(m_xBuilder->weld_button(u"cancel"_ustr)) { mxButtonRangeEdit->SetReferences(this, mxRangeEntry.get()); - const ScConditionEasyDialogData CurrentData + const ScConditionMode* pCurrentMode = pViewData->GetDocument().GetEasyConditionalFormatDialogData(); - if (!CurrentData.Mode) + if (!pCurrentMode) { SAL_WARN( "sc", @@ -81,8 +80,7 @@ ConditionalFormatEasyDialog::ConditionalFormatEasyDialog(SfxBindings* pBindings, } else { - meMode = *CurrentData.Mode; - mbIsManaged = CurrentData.IsManaged; + meMode = *pCurrentMode; } mxNumberEntry2->hide(); switch (meMode) @@ -199,14 +197,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 9ddae34551a3..2e5cef3a01a0 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, @@ -99,8 +92,6 @@ ScCondFormatManagerDlg::ScCondFormatManagerDlg(weld::Window* pParent, ScDocument u"CondFormatManager"_ustr) , 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_xBtnAdd(m_xBuilder->weld_button(u"add"_ustr)) , m_xBtnRemove(m_xBuilder->weld_button(u"remove"_ustr)) , m_xBtnEdit(m_xBuilder->weld_button(u"edit"_ustr)) @@ -145,30 +136,6 @@ ScConditionalFormat* ScCondFormatManagerDlg::GetCondFormatSelected() return m_xCtrlManager->GetSelection(); } -void ScCondFormatManagerDlg::ShowEasyConditionalDialog() -{ - SfxViewShell* pViewShell = SfxViewShell::Current(); - if (!pViewShell) - return; - - 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 772312040c88..933d2e51e207 100644 --- a/sc/source/ui/inc/condformateasydlg.hxx +++ b/sc/source/ui/inc/condformateasydlg.hxx @@ -39,7 +39,6 @@ private: ScViewData* mpViewData; ScDocument& mrDocument; 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 331ba8a5efca..4b94a67eed1a 100644 --- a/sc/source/ui/view/cellsh1.cxx +++ b/sc/source/ui/view/cellsh1.cxx @@ -2944,7 +2944,16 @@ 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->setScCondFormatDlgItem( + std::make_shared<ScCondFormatDlgData>( + 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) { @@ -2957,7 +2966,6 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq ) std::shared_ptr<ScConditionalFormatList>( pCondFormatList.release()), nIndex, true)); - // Queue message to open Conditional Format Dialog GetViewData().GetDispatcher().Execute(SID_OPENDLG_CONDFRMT, SfxCallMode::ASYNCHRON); diff --git a/sc/source/ui/view/cellsh3.cxx b/sc/source/ui/view/cellsh3.cxx index 98a67f26e32a..033ecf8982cb 100644 --- a/sc/source/ui/view/cellsh3.cxx +++ b/sc/source/ui/view/cellsh3.cxx @@ -456,20 +456,13 @@ 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(); - } - + SfxChildWindow* pWindow = rViewFrame.GetChildWindow(nId); GetViewData().GetDocument().SetEasyConditionalFormatDialogData( - ScConditionEasyDialogData(&nFormat, bManaged)); + 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> commit acc8b8c49da3a0f2a1cc25e4425a56ed87edff4b Author: Pranam Lashkari <[email protected]> AuthorDate: Mon Nov 25 19:47:16 2024 +0530 Commit: Pranam Lashkari <[email protected]> CommitDate: Tue Dec 3 16:12:31 2024 +0100 Revert "sc: added date condition option in conditional format manage dialog" This reverts commit 9928f1fa147d4ff838cbf6fcfe0d976ecef97cef. Change-Id: Ieb7dfdeccaffed4ad81ff9b5b0eb3b3b49fd8d05 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177289 Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177340 Tested-by: Pranam Lashkari <[email protected]> diff --git a/sc/inc/conditio.hxx b/sc/inc/conditio.hxx index a179d8d8d875..fe708bc6e356 100644 --- a/sc/inc/conditio.hxx +++ b/sc/inc/conditio.hxx @@ -85,20 +85,6 @@ enum class ScConditionMode EndsWith, ContainsText, NotContainsText, - Formula, - Today, - Yesterday, - Tomorrow, - Last7days, - ThisWeek, - LastWeek, - NextWeek, - ThisMonth, - LastMonth, - NextMonth, - ThisYear, - LastYear, - NextYear, NONE }; @@ -183,48 +169,6 @@ inline std::basic_ostream<charT, traits> & operator <<(std::basic_ostream<charT, case ScConditionMode::NotContainsText: stream << "NOTCONTAINSTEXT"; break; - case ScConditionMode::Formula: - stream << "FORMULA"; - break; - case ScConditionMode::Today: - stream << "TODAY"; - break; - case ScConditionMode::Yesterday: - stream << "YESTERDAY"; - break; - case ScConditionMode::Tomorrow: - stream << "TOMORROW"; - break; - case ScConditionMode::Last7days: - stream << "LAST7DAYS"; - break; - case ScConditionMode::ThisWeek: - stream << "THISWEEK"; - break; - case ScConditionMode::LastWeek: - stream << "LASTWEEK"; - break; - case ScConditionMode::NextWeek: - stream << "NEXTWEEK"; - break; - case ScConditionMode::ThisMonth: - stream << "THISMONTH"; - break; - case ScConditionMode::LastMonth: - stream << "LASTMONTH"; - break; - case ScConditionMode::NextMonth: - stream << "NEXTMONTH"; - break; - case ScConditionMode::ThisYear: - stream << "THISYEAR"; - break; - case ScConditionMode::LastYear: - stream << "LASTYEAR"; - break; - case ScConditionMode::NextYear: - stream << "NEXTYEAR"; - break; case ScConditionMode::NONE: stream << "NONE"; break; diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx index 94ced759894a..97b1c73b0e08 100644 --- a/sc/source/core/data/conditio.cxx +++ b/sc/source/core/data/conditio.cxx @@ -1139,22 +1139,6 @@ bool ScConditionEntry::IsValid( double nArg, const ScAddress& rPos ) const if( eOp == ScConditionMode::NotContainsText ) bValid = !bValid; break; - case ScConditionMode::Formula: - case ScConditionMode::Today: - case ScConditionMode::Yesterday: - case ScConditionMode::Tomorrow: - case ScConditionMode::Last7days: - case ScConditionMode::ThisWeek: - case ScConditionMode::LastWeek: - case ScConditionMode::NextWeek: - case ScConditionMode::ThisMonth: - case ScConditionMode::LastMonth: - case ScConditionMode::NextMonth: - case ScConditionMode::ThisYear: - case ScConditionMode::LastYear: - case ScConditionMode::NextYear: - bValid = true; - break; default: SAL_WARN("sc", "unknown operation at ScConditionEntry"); break; diff --git a/sc/source/ui/condformat/condformatdlgentry.cxx b/sc/source/ui/condformat/condformatdlgentry.cxx index 1f8ad16a42bb..d534227d197b 100644 --- a/sc/source/ui/condformat/condformatdlgentry.cxx +++ b/sc/source/ui/condformat/condformatdlgentry.cxx @@ -153,21 +153,7 @@ const ScConditionMode ScConditionFrmtEntry::mpEntryToCond[ScConditionFrmtEntry:: ScConditionMode::BeginsWith, ScConditionMode::EndsWith, ScConditionMode::ContainsText, - ScConditionMode::NotContainsText, - ScConditionMode::Formula, - ScConditionMode::Today, - ScConditionMode::Yesterday, - ScConditionMode::Tomorrow, - ScConditionMode::Last7days, - ScConditionMode::ThisWeek, - ScConditionMode::LastWeek, - ScConditionMode::NextWeek, - ScConditionMode::ThisMonth, - ScConditionMode::LastMonth, - ScConditionMode::NextMonth, - ScConditionMode::ThisYear, - ScConditionMode::LastYear, - ScConditionMode::NextYear }; + ScConditionMode::NotContainsText }; ScConditionFrmtEntry::ScConditionFrmtEntry(ScCondFormatList* pParent, ScDocument& rDoc, ScCondFormatDlg* pDialogParent, const ScAddress& rPos, const ScCondFormatEntry* pFormatEntry) @@ -373,20 +359,6 @@ sal_Int32 ScConditionFrmtEntry::GetNumberEditFields( ScConditionMode eMode ) case ScConditionMode::BelowEqualAverage: case ScConditionMode::Duplicate: case ScConditionMode::NotDuplicate: - case ScConditionMode::Formula: - case ScConditionMode::Today: - case ScConditionMode::Yesterday: - case ScConditionMode::Tomorrow: - case ScConditionMode::Last7days: - case ScConditionMode::ThisWeek: - case ScConditionMode::LastWeek: - case ScConditionMode::NextWeek: - case ScConditionMode::ThisMonth: - case ScConditionMode::LastMonth: - case ScConditionMode::NextMonth: - case ScConditionMode::ThisYear: - case ScConditionMode::LastYear: - case ScConditionMode::NextYear: return 0; case ScConditionMode::Between: case ScConditionMode::NotBetween: diff --git a/sc/source/ui/condformat/condformateasydlg.cxx b/sc/source/ui/condformat/condformateasydlg.cxx index 67a51f42ea9b..bf745747fee4 100644 --- a/sc/source/ui/condformat/condformateasydlg.cxx +++ b/sc/source/ui/condformat/condformateasydlg.cxx @@ -40,41 +40,6 @@ void UpdateStyleList(const ScDocument* pDocument, weld::ComboBox& rCombo) FillStyleListBox(pDocument, rCombo); rCombo.set_active_text(sSelectedStyle); } - -condformat::ScCondFormatDateType GetScCondFormatDateType(ScConditionMode mode) -{ - switch (mode) - { - case ScConditionMode::Today: - return condformat::ScCondFormatDateType::TODAY; - case ScConditionMode::Yesterday: - return condformat::ScCondFormatDateType::YESTERDAY; - case ScConditionMode::Tomorrow: - return condformat::ScCondFormatDateType::TOMORROW; - case ScConditionMode::Last7days: - return condformat::ScCondFormatDateType::LAST7DAYS; - case ScConditionMode::ThisWeek: - return condformat::ScCondFormatDateType::THISWEEK; - case ScConditionMode::LastWeek: - return condformat::ScCondFormatDateType::LASTWEEK; - case ScConditionMode::NextWeek: - return condformat::ScCondFormatDateType::NEXTWEEK; - case ScConditionMode::ThisMonth: - return condformat::ScCondFormatDateType::THISMONTH; - case ScConditionMode::LastMonth: - return condformat::ScCondFormatDateType::LASTMONTH; - case ScConditionMode::NextMonth: - return condformat::ScCondFormatDateType::NEXTMONTH; - case ScConditionMode::ThisYear: - return condformat::ScCondFormatDateType::THISYEAR; - case ScConditionMode::LastYear: - return condformat::ScCondFormatDateType::LASTYEAR; - case ScConditionMode::NextYear: - return condformat::ScCondFormatDateType::NEXTYEAR; - default: - return condformat::ScCondFormatDateType::TODAY; - } -} } namespace sc @@ -206,62 +171,6 @@ ConditionalFormatEasyDialog::ConditionalFormatEasyDialog(SfxBindings* pBindings, case ScConditionMode::NotContainsText: SetDescription(ScResId(STR_CONDITION_NOT_CONTAINS_TEXT)); break; - case ScConditionMode::Formula: - SetDescription(ScResId(STR_CONDITION_FORMULA)); - mxAllInputs->hide(); - break; - case ScConditionMode::Today: - SetDescription(ScResId(STR_CONDITION_TODAY)); - mxAllInputs->hide(); - break; - case ScConditionMode::Yesterday: - SetDescription(ScResId(STR_CONDITION_YESTERDAY)); - mxAllInputs->hide(); - break; - case ScConditionMode::Tomorrow: - SetDescription(ScResId(STR_CONDITION_TOMORROW)); - mxAllInputs->hide(); - break; - case ScConditionMode::Last7days: - SetDescription(ScResId(STR_CONDITION_LAST7DAYS)); - mxAllInputs->hide(); - break; - case ScConditionMode::ThisWeek: - SetDescription(ScResId(STR_CONDITION_THISWEEK)); - mxAllInputs->hide(); - break; - case ScConditionMode::LastWeek: - SetDescription(ScResId(STR_CONDITION_LASTWEEK)); - mxAllInputs->hide(); - break; - case ScConditionMode::NextWeek: - SetDescription(ScResId(STR_CONDITION_NEXTWEEK)); - mxAllInputs->hide(); - break; - case ScConditionMode::ThisMonth: - SetDescription(ScResId(STR_CONDITION_THISMONTH)); - mxAllInputs->hide(); - break; - case ScConditionMode::LastMonth: - SetDescription(ScResId(STR_CONDITION_LASTMONTH)); - mxAllInputs->hide(); - break; - case ScConditionMode::NextMonth: - SetDescription(ScResId(STR_CONDITION_NEXTMONTH)); - mxAllInputs->hide(); - break; - case ScConditionMode::ThisYear: - SetDescription(ScResId(STR_CONDITION_THISYEAR)); - mxAllInputs->hide(); - break; - case ScConditionMode::LastYear: - SetDescription(ScResId(STR_CONDITION_LASTYEAR)); - mxAllInputs->hide(); - break; - case ScConditionMode::NextYear: - SetDescription(ScResId(STR_CONDITION_NEXTYEAR)); - mxAllInputs->hide(); - break; default: SAL_WARN("sc", "ConditionalFormatEasyDialog::ConditionalFormatEasyDialog: invalid format"); @@ -357,29 +266,9 @@ IMPL_LINK(ConditionalFormatEasyDialog, ButtonPressed, weld::Button&, rButton, vo break; } - std::unique_ptr<ScFormatEntry> xEntry; - if (meMode < ScConditionMode::Formula) - { - xEntry.reset(new ScCondFormatEntry(meMode, sExpression1, sExpression2, mrDocument, - maPosition, mxStyles->get_active_text())); - } - else if (meMode >= ScConditionMode::Today && meMode < ScConditionMode::NONE) - { - ScCondDateFormatEntry entry(&mrDocument); - entry.SetDateType(GetScCondFormatDateType(meMode)); - entry.SetStyleName(mxStyles->get_active_text()); - xEntry.reset(new ScCondDateFormatEntry(&mrDocument, entry)); - } - else if (meMode == ScConditionMode::Formula) - { - xEntry.reset(new ScCondFormatEntry(ScConditionMode::Direct, "", OUString(), mrDocument, - maPosition, mxStyles->get_active_text())); - } - else - { - DBG_ASSERT(false, "Invalid condition type selected."); - return; - } + std::unique_ptr<ScFormatEntry> pEntry + = std::make_unique<ScCondFormatEntry>(meMode, sExpression1, sExpression2, mrDocument, + maPosition, mxStyles->get_active_text()); ScRangeList aRange; ScRefFlags nFlags @@ -387,7 +276,7 @@ IMPL_LINK(ConditionalFormatEasyDialog, ButtonPressed, weld::Button&, rButton, vo mpViewData->GetDocument().GetAddressConvention(), maPosition.Tab()); if ((nFlags & ScRefFlags::VALID) && !aRange.empty()) { - pFormat->AddEntry(xEntry.release()); + pFormat->AddEntry(pEntry.release()); pFormat->SetRange(aRange); auto& rRangeList = pFormat->GetRange(); mpViewData->GetDocShell()->GetDocFunc().ReplaceConditionalFormat( diff --git a/sc/source/ui/condformat/condformatmgr.cxx b/sc/source/ui/condformat/condformatmgr.cxx index 4aaf1b32932c..9ddae34551a3 100644 --- a/sc/source/ui/condformat/condformatmgr.cxx +++ b/sc/source/ui/condformat/condformatmgr.cxx @@ -21,7 +21,6 @@ #include <svl/eitem.hxx> #include <svl/intitem.hxx> #include <unotools/viewoptions.hxx> -#include <iostream> ScCondFormatManagerWindow::ScCondFormatManagerWindow(weld::TreeView& rTreeView, ScDocument& rDoc, ScConditionalFormatList* pFormatList) @@ -102,8 +101,6 @@ ScCondFormatManagerDlg::ScCondFormatManagerDlg(weld::Window* pParent, ScDocument , m_xFormatList(pFormatList ? new ScConditionalFormatList(*pFormatList) : nullptr) , m_xConditionalType(m_xBuilder->weld_combo_box("type")) , m_xConditionalCellValue(m_xBuilder->weld_combo_box("typeis")) - , m_xConditionalFormula(m_xBuilder->weld_entry("formula")) - , m_xConditionalDate(m_xBuilder->weld_combo_box("datetype")) , m_xBtnAdd(m_xBuilder->weld_button(u"add"_ustr)) , m_xBtnRemove(m_xBuilder->weld_button(u"remove"_ustr)) , m_xBtnEdit(m_xBuilder->weld_button(u"edit"_ustr)) @@ -114,8 +111,6 @@ ScCondFormatManagerDlg::ScCondFormatManagerDlg(weld::Window* pParent, ScDocument m_xBtnEdit->connect_clicked(LINK(this, ScCondFormatManagerDlg, EditBtnClickHdl)); m_xBtnAdd->connect_clicked(LINK(this, ScCondFormatManagerDlg, AddBtnHdl)); m_xTreeView->connect_row_activated(LINK(this, ScCondFormatManagerDlg, EditBtnHdl)); - m_xTreeView->connect_changed(LINK(this, ScCondFormatManagerDlg, EntryFocus)); - m_xConditionalType->connect_changed(LINK(this, ScCondFormatManagerDlg, ComboHdl)); SvtViewOptions aDlgOpt(EViewType::Dialog, u"CondFormatDialog"_ustr); if (aDlgOpt.Exists()) @@ -157,34 +152,18 @@ void ScCondFormatManagerDlg::ShowEasyConditionalDialog() return; auto id = m_xConditionalType->get_active(); - SfxBoolItem IsManaged(FN_PARAM_2, true); switch (id) { case 0: // Cell value { SfxInt16Item FormatRule(FN_PARAM_1, m_xConditionalCellValue->get_active_id().toUInt32()); - pViewShell->GetDispatcher()->ExecuteList(SID_EASY_CONDITIONAL_FORMAT_DIALOG, - SfxCallMode::ASYNCHRON, - { &FormatRule, &IsManaged }); - } - break; - case 1: // Formula - { - SfxInt16Item FormatRule(FN_PARAM_1, static_cast<sal_Int16>(ScConditionMode::Formula)); + SfxBoolItem IsManaged(FN_PARAM_2, true); SfxViewShell::Current()->GetDispatcher()->ExecuteList( SID_EASY_CONDITIONAL_FORMAT_DIALOG, SfxCallMode::ASYNCHRON, { &FormatRule, &IsManaged }); } break; - case 2: // Date - { - SfxInt16Item FormatRule(FN_PARAM_1, m_xConditionalDate->get_active_id().toUInt32()); - pViewShell->GetDispatcher()->ExecuteList(SID_EASY_CONDITIONAL_FORMAT_DIALOG, - SfxCallMode::ASYNCHRON, - { &FormatRule, &IsManaged }); - } - break; default: break; } @@ -221,67 +200,6 @@ IMPL_LINK_NOARG(ScCondFormatManagerDlg, AddBtnHdl, weld::Button&, void) m_xDialog->response( DLG_RET_ADD ); } -IMPL_LINK_NOARG(ScCondFormatManagerDlg, ComboHdl, weld::ComboBox&, void) -{ - auto id = m_xConditionalType->get_active(); - switch (id) - { - case 0: - { - m_xConditionalCellValue->set_visible(true); - m_xConditionalFormula->set_visible(false); - m_xConditionalDate->set_visible(false); - } - break; - case 1: - { - m_xConditionalCellValue->set_visible(false); - m_xConditionalFormula->set_visible(true); - m_xConditionalDate->set_visible(false); - } - break; - case 2: - { - m_xConditionalCellValue->set_visible(false); - m_xConditionalFormula->set_visible(false); - m_xConditionalDate->set_visible(true); - } - break; - default: - break; - } -} - -IMPL_LINK_NOARG(ScCondFormatManagerDlg, EntryFocus, weld::TreeView&, void) -{ - ScConditionalFormat* conditionFrmt = m_xCtrlManager->GetSelection(); - - if (!conditionFrmt) - return; - - const ScFormatEntry* entry = conditionFrmt->GetEntry(0); - if (!entry) - return; - auto type = entry->GetType(); - - if (type == ScFormatEntry::Type::Condition) - { - const ScCondFormatEntry* conditionEntry = dynamic_cast<const ScCondFormatEntry*>(entry); - auto conditionType = conditionEntry->GetOperation(); - m_xConditionalType->set_active(0); - ComboHdl(*m_xConditionalType); - m_xConditionalCellValue->set_active(static_cast<int>(conditionType)); - } - else if (type == ScFormatEntry::Type::Date) - { - const ScCondDateFormatEntry* dateEntry = dynamic_cast<const ScCondDateFormatEntry*>(entry); - auto dateType = dateEntry->GetDateType(); - m_xConditionalType->set_active(2); - ComboHdl(*m_xConditionalType); - m_xConditionalDate->set_active(dateType); - } -} - void ScCondFormatManagerDlg::SetModified() { m_bModified = true; diff --git a/sc/source/ui/inc/condformatdlgentry.hxx b/sc/source/ui/inc/condformatdlgentry.hxx index 05cb252e9b68..33b218b181e6 100644 --- a/sc/source/ui/inc/condformatdlgentry.hxx +++ b/sc/source/ui/inc/condformatdlgentry.hxx @@ -103,7 +103,7 @@ class ScConditionFrmtEntry : public ScCondFrmtEntry, public SfxListener std::unique_ptr<weld::CustomWeld> mxWdPreview; bool mbIsInStyleCreate; - static const sal_Int32 NUM_COND_ENTRIES = 38; + static const sal_Int32 NUM_COND_ENTRIES = 24; // Lookup table from positions in maLbCondType to the condition mode enum static const ScConditionMode mpEntryToCond[NUM_COND_ENTRIES]; diff --git a/sc/source/ui/inc/condformatmgr.hxx b/sc/source/ui/inc/condformatmgr.hxx index 7361fb6830c7..51a251416b27 100644 --- a/sc/source/ui/inc/condformatmgr.hxx +++ b/sc/source/ui/inc/condformatmgr.hxx @@ -52,8 +52,6 @@ private: std::unique_ptr<weld::ComboBox> m_xConditionalType; std::unique_ptr<weld::ComboBox> m_xConditionalCellValue; - std::unique_ptr<weld::Entry> m_xConditionalFormula; - std::unique_ptr<weld::ComboBox> m_xConditionalDate; std::unique_ptr<weld::Button> m_xBtnAdd; std::unique_ptr<weld::Button> m_xBtnRemove; std::unique_ptr<weld::Button> m_xBtnEdit; @@ -66,8 +64,6 @@ private: DECL_LINK(EditBtnClickHdl, weld::Button&, void); DECL_LINK(AddBtnHdl, weld::Button&, void); DECL_LINK(EditBtnHdl, weld::TreeView&, bool); - DECL_LINK(ComboHdl, weld::ComboBox&, void); - DECL_LINK(EntryFocus, weld::TreeView&, void); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/uiconfig/scalc/ui/condformatmanager.ui b/sc/uiconfig/scalc/ui/condformatmanager.ui index ae6904641090..74ea3d33bda9 100644 --- a/sc/uiconfig/scalc/ui/condformatmanager.ui +++ b/sc/uiconfig/scalc/ui/condformatmanager.ui @@ -224,54 +224,6 @@ <property name="position">1</property> </packing> </child> - <child> - <object class="GtkEntry" id="formula"> - <property name="can-focus">True</property> - <property name="no-show-all">True</property> - <property name="hexpand">True</property> - <property name="visibility">False</property> - <property name="truncate-multiline">True</property> - <child internal-child="accessible"> - <object class="AtkObject" id="formula-atkobject"> - <property name="AtkObject::accessible-description" translatable="yes" context="condformatmanager|extended_tip|formula">Here you can add formula for conditional formatting.</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">2</property> - </packing> - </child> - <child> - <object class="GtkComboBoxText" id="datetype"> - <property name="can-focus">False</property> - <property name="can_focus">False</property> - <property name="visible">False</property> - <property name="no_show_all">True</property> - <property name="active">0</property> - <items> - <item translatable="yes" context="condformatmanager|datetype" id="26">Today</item> - <item translatable="yes" context="condformatmanager|datetype" id="27">Yesterday</item> - <item translatable="yes" context="condformatmanager|datetype" id="28">Tomorrow</item> - <item translatable="yes" context="condformatmanager|datetype" id="29">Last 7 days</item> - <item translatable="yes" context="condformatmanager|datetype" id="30">This week</item> - <item translatable="yes" context="condformatmanager|datetype" id="31">Last week</item> - <item translatable="yes" context="condformatmanager|datetype" id="32">Next week</item> - <item translatable="yes" context="condformatmanager|datetype" id="33">This month</item> - <item translatable="yes" context="condformatmanager|datetype" id="34">Last month</item> - <item translatable="yes" context="condformatmanager|datetype" id="35">Next month</item> - <item translatable="yes" context="condformatmanager|datetype" id="36">This year</item> - <item translatable="yes" context="condformatmanager|datetype" id="37">Last year</item> - <item translatable="yes" context="condformatmanager|datetype" id="38">Next year</item> - </items> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">3</property> - </packing> - </child> <child> <object class="GtkButton" id="add"> <property name="label" translatable="yes" context="condformatmanager|add">Add</property> @@ -287,7 +239,7 @@ <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">4</property> + <property name="position">2</property> </packing> </child> <child> @@ -305,7 +257,7 @@ <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">5</property> + <property name="position">3</property> </packing> </child> <child> @@ -323,7 +275,7 @@ <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">6</property> + <property name="position">4</property> </packing> </child> </object> diff --git a/sc/uiconfig/scalc/ui/conditionaleasydialog.ui b/sc/uiconfig/scalc/ui/conditionaleasydialog.ui index 3939d49f613b..d2a32c99023a 100644 --- a/sc/uiconfig/scalc/ui/conditionaleasydialog.ui +++ b/sc/uiconfig/scalc/ui/conditionaleasydialog.ui @@ -204,7 +204,7 @@ <object class="GtkLabel" id="description"> <property name="visible">True</property> <property name="can-focus">False</property> - <property name="label" translatable="yes" context="conditionaleasydialog|label">Highlight cells if %1</property> + <property name="label" translatable="yes" context="conditionaleasydialog|label">Highlight cells with values %1</property> <accessibility> <relation type="label-for" target="entryNumber"/> <relation type="label-for" target="entryNumber2"/>
