diff --git a/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
index 89e66c5be42e..7bd5215d627e 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
@@ -642,7 +642,7 @@
1
-
+
Conditional Formatting: Condition
@@ -653,6 +653,61 @@
1
+
+
+ Conditional Formatting: Greater Than
+
+
+ Greater than...
+
+
+ 1
+
+
+
+
+ Conditional Formatting: Condition Less Than
+
+
+ Less than...
+
+
+ 1
+
+
+
+
+ Conditional Formatting: Condition Equals
+
+
+ Equals...
+
+
+ 1
+
+
+
+
+ Conditional Formatting: Between
+
+
+ Between...
+
+
+ 1
+
+
+
+
+ Conditional Formatting: More Rules
+
+
+ More rules...
+
+
+ 1
+
+
Conditional Formatting...
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu b/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
index 956b1641bb43..2d99b67a7368 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu
@@ -604,6 +604,20 @@
distributebar
+
+
+ .uno:ConditionalFormatConditionMenu
+
+
+ com.sun.star.sheet.SpreadsheetDocument
+
+
+ com.sun.star.comp.framework.ResourceMenuController
+
+
+ conditional_easy
+
+
diff --git a/sc/Library_sc.mk b/sc/Library_sc.mk
index 2b4082d3688e..ff53d9b63ef1 100644
--- a/sc/Library_sc.mk
+++ b/sc/Library_sc.mk
@@ -398,6 +398,7 @@ $(eval $(call gb_Library_add_exception_objects,sc,\
sc/source/ui/condformat/condformatdlg \
sc/source/ui/condformat/condformatdlgentry \
sc/source/ui/condformat/condformatdlgitem \
+ sc/source/ui/condformat/condformateasydlg \
sc/source/ui/condformat/condformathelper \
sc/source/ui/condformat/colorformat \
sc/source/ui/dataprovider/csvdataprovider \
diff --git a/sc/UIConfig_scalc.mk b/sc/UIConfig_scalc.mk
index 0b9f514d0fd5..12cc9825f0c5 100644
--- a/sc/UIConfig_scalc.mk
+++ b/sc/UIConfig_scalc.mk
@@ -21,6 +21,7 @@ $(eval $(call gb_UIConfig_add_popupmenufiles,modules/scalc,\
sc/uiconfig/scalc/popupmenu/colheader \
sc/uiconfig/scalc/popupmenu/column_operations \
sc/uiconfig/scalc/popupmenu/conditional \
+ sc/uiconfig/scalc/popupmenu/conditional_easy \
sc/uiconfig/scalc/popupmenu/draw \
sc/uiconfig/scalc/popupmenu/drawtext \
sc/uiconfig/scalc/popupmenu/form \
@@ -102,6 +103,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/scalc,\
sc/uiconfig/scalc/ui/colorrowdialog \
sc/uiconfig/scalc/ui/colwidthdialog \
sc/uiconfig/scalc/ui/condformatmanager \
+ sc/uiconfig/scalc/ui/conditionaleasydialog \
sc/uiconfig/scalc/ui/conditionalformatdialog \
sc/uiconfig/scalc/ui/conditionalentry \
sc/uiconfig/scalc/ui/conditionaliconset \
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index 70a4827ce87f..1cff7a3ce4e4 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -210,6 +210,7 @@ struct ScFilterEntries;
typedef o3tl::sorted_vector ScCondFormatIndexes;
struct ScSheetLimits;
struct ScDataAreaExtras;
+enum class ScConditionMode;
namespace sc {
@@ -425,6 +426,7 @@ private:
std::unique_ptr pExtDocOptions; // for import etc.
std::unique_ptr mpClipOptions; // clipboard options
std::unique_ptr pConsolidateDlgData;
+ std::unique_ptr pConditionalFormatDialogMode;
std::unique_ptr pAutoNameCache; // for automatic name lookup during CompileXML
@@ -652,6 +654,8 @@ public:
void SetConsolidateDlgData( std::unique_ptr pData );
const ScConsolidateParam* GetConsolidateDlgData() const { return pConsolidateDlgData.get(); }
+ void SetEasyConditionalFormatDialogData(std::unique_ptr pMode);
+ const ScConditionMode* GetEasyConditionalFormatDialogData() const { return pConditionalFormatDialogMode.get(); }
void Clear( bool bFromDestructor = false );
diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc
index d1b13b767eb0..f9c04a6e2e53 100644
--- a/sc/inc/sc.hrc
+++ b/sc/inc/sc.hrc
@@ -240,7 +240,8 @@ class SvxZoomSliderItem;
#define SID_FOURIER_ANALYSIS_DIALOG (SC_MESSAGE_START + 88)
#define SID_SPARKLINE_DIALOG (SC_MESSAGE_START + 89)
#define SID_SPARKLINE_DATA_RANGE_DIALOG (SC_MESSAGE_START + 90)
-
+#define SID_POPUP_EASY_CONDITIONAL_FORMAT (SC_MESSAGE_START + 91)
+#define SID_EASY_CONDITIONAL_FORMAT_DIALOG (SC_MESSAGE_START + 92)
// functions
diff --git a/sc/sdi/cellsh.sdi b/sc/sdi/cellsh.sdi
index 9b8198587621..84217c63c949 100644
--- a/sc/sdi/cellsh.sdi
+++ b/sc/sdi/cellsh.sdi
@@ -212,6 +212,15 @@ interface CellSelection
SID_START_FORMULA [ ExecMethod = Execute; ]
SID_TOGGLE_REL [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
SID_POPUP_CONDFRMT []
+ SID_POPUP_EASY_CONDITIONAL_FORMAT []
+ SfxVoidItem ConditionalFormatEasy SID_EASY_CONDITIONAL_FORMAT_DIALOG
+ (
+ SfxInt16Item FormatRule FN_PARAM_1
+ )
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ ]
SID_COLUMN_OPERATIONS [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
SID_ROW_OPERATIONS [ ExecMethod = ExecuteEdit; StateMethod = GetBlockState; ]
SID_OPENDLG_CURRENTCONDFRMT [ ExecMethod = ExecuteEdit; StateMethod = GetState; ]
diff --git a/sc/sdi/scalc.sdi b/sc/sdi/scalc.sdi
index cfd0f43f580b..4da6e21b162e 100644
--- a/sc/sdi/scalc.sdi
+++ b/sc/sdi/scalc.sdi
@@ -719,6 +719,37 @@ SfxVoidItem ConditionalFormatMenu SID_POPUP_CONDFRMT
GroupId = SfxGroupId::Format;
]
+SfxVoidItem ConditionalFormatConditionMenu SID_POPUP_EASY_CONDITIONAL_FORMAT
+[
+ AutoUpdate = FALSE,
+ FastCall = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ NoRecord;
+
+ AccelConfig = FALSE,
+ MenuConfig = TRUE,
+ ToolBoxConfig = TRUE,
+ GroupId = SfxGroupId::Format;
+]
+
+SfxVoidItem ConditionalFormatEasy SID_EASY_CONDITIONAL_FORMAT_DIALOG
+(SfxInt16Item FormatRule FN_PARAM_1)
+[
+ AutoUpdate = FALSE,
+ FastCall = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ ToolBoxConfig = TRUE,
+ GroupId = SfxGroupId::Format;
+]
SfxVoidItem ConditionalFormatDialog SID_OPENDLG_CONDFRMT
()
diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx
index c53dc6b3e305..3b9b24cfec49 100644
--- a/sc/source/core/data/documen2.cxx
+++ b/sc/source/core/data/documen2.cxx
@@ -1172,6 +1172,11 @@ void ScDocument::SetConsolidateDlgData( std::unique_ptr pDat
pConsolidateDlgData = std::move(pData);
}
+void ScDocument::SetEasyConditionalFormatDialogData(std::unique_ptr pMode)
+{
+ pConditionalFormatDialogMode = std::move(pMode);
+}
+
void ScDocument::SetChangeViewSettings(const ScChangeViewSettings& rNew)
{
if (pChangeViewSettings==nullptr)
diff --git a/sc/source/ui/app/scdll.cxx b/sc/source/ui/app/scdll.cxx
index 2256ee2e125b..f2fbe8d74c81 100644
--- a/sc/source/ui/app/scdll.cxx
+++ b/sc/source/ui/app/scdll.cxx
@@ -210,6 +210,7 @@ void ScDLL::Init()
ScFourierAnalysisDialogWrapper ::RegisterChildWindow(false, pMod);
sc::SparklineDialogWrapper ::RegisterChildWindow(false, pMod);
sc::SparklineDataRangeDialogWrapper ::RegisterChildWindow(false, pMod);
+ sc::ConditionalFormatEasyDialogWrapper ::RegisterChildWindow(false, pMod);
// Redlining Window
ScAcceptChgDlgWrapper ::RegisterChildWindow(false, pMod);
diff --git a/sc/source/ui/condformat/condformateasydlg.cxx b/sc/source/ui/condformat/condformateasydlg.cxx
new file mode 100644
index 000000000000..8ddb297269dc
--- /dev/null
+++ b/sc/source/ui/condformat/condformateasydlg.cxx
@@ -0,0 +1,192 @@
+#include
+#include
+#include
+#include
+#include
+#include
+
+namespace
+{
+void FillStyleListBox(const ScDocument* pDocument, weld::ComboBox& rCombo)
+{
+ std::set aStyleNames;
+ SfxStyleSheetIterator aStyleIter(pDocument->GetStyleSheetPool(), SfxStyleFamily::Para);
+ for (SfxStyleSheetBase* pStyle = aStyleIter.First(); pStyle; pStyle = aStyleIter.Next())
+ {
+ aStyleNames.insert(pStyle->GetName());
+ }
+ for (const auto& rStyleName : aStyleNames)
+ {
+ rCombo.append_text(rStyleName);
+ }
+}
+
+void UpdateStyleList(const ScDocument* pDocument, weld::ComboBox& rCombo)
+{
+ OUString sSelectedStyle = rCombo.get_active_text();
+ for (sal_Int32 i = rCombo.get_count(); i > 1; --i)
+ rCombo.remove(i - 1);
+ FillStyleListBox(pDocument, rCombo);
+ rCombo.set_active_text(sSelectedStyle);
+}
+
+ScTabViewShell* GetTabViewShell(const SfxBindings* pBindings)
+{
+ if (!pBindings)
+ return nullptr;
+ SfxDispatcher* pDispacher = pBindings->GetDispatcher();
+ if (!pDispacher)
+ return nullptr;
+ SfxViewFrame* pFrame = pDispacher->GetFrame();
+ if (!pFrame)
+ return nullptr;
+ SfxViewShell* pViewShell = pFrame->GetViewShell();
+ if (!pViewShell)
+ return nullptr;
+ return dynamic_cast(pViewShell);
+}
+}
+
+namespace sc
+{
+ConditionalFormatEasyDialog::ConditionalFormatEasyDialog(SfxBindings* pBindings,
+ SfxChildWindow* pChildWindow,
+ weld::Window* pParent,
+ ScViewData* pViewData)
+ : ScAnyRefDlgController(pBindings, pChildWindow, pParent,
+ "modules/scalc/ui/conditionaleasydialog.ui", "CondFormatEasyDlg")
+ , mpViewData(pViewData)
+ , mpDocument(&mpViewData->GetDocument())
+ , mxNumberEntry(m_xBuilder->weld_spin_button("entryNumber"))
+ , mxNumberEntry2(m_xBuilder->weld_spin_button("entryNumber2"))
+ , mxRangeEntry(new formula::RefEdit(m_xBuilder->weld_entry("entryRange")))
+ , mxStyles(m_xBuilder->weld_combo_box("themeCombo"))
+ , mxDescription(m_xBuilder->weld_label("description"))
+ , mxButtonOk(m_xBuilder->weld_button("ok"))
+ , mxButtonCancel(m_xBuilder->weld_button("cancel"))
+{
+ mpTabViewShell = GetTabViewShell(pBindings);
+ if (!mpTabViewShell)
+ mpTabViewShell = dynamic_cast(SfxViewShell::Current());
+ OSL_ENSURE(mpTabViewShell, "Missing view shell!");
+ const ScConditionMode* pCurrentMode
+ = pViewData->GetDocument().GetEasyConditionalFormatDialogData();
+ if (!pCurrentMode)
+ {
+ SAL_WARN(
+ "sc",
+ "Condition mode not set for easy conditional format dialog, this should not happen");
+ meMode = ScConditionMode::Greater;
+ }
+ else
+ {
+ meMode = *pCurrentMode;
+ }
+ mxNumberEntry2->hide();
+ mxNumberEntry->set_range(SAL_MIN_INT64, SAL_MAX_INT64);
+ mxNumberEntry2->set_range(SAL_MIN_INT64, SAL_MAX_INT64);
+ mxNumberEntry->set_increments(1, 0);
+ mxNumberEntry2->set_increments(1, 0);
+ switch (meMode)
+ {
+ case ScConditionMode::Greater:
+ mxDescription->set_label(mxDescription->get_label() + " greater than ");
+ break;
+ case ScConditionMode::Less:
+ mxDescription->set_label(mxDescription->get_label() + " less than ");
+ break;
+ case ScConditionMode::Equal:
+ mxDescription->set_label(mxDescription->get_label() + " equal to ");
+ break;
+ case ScConditionMode::Between:
+ mxDescription->set_label(mxDescription->get_label() + " between ");
+ mxNumberEntry2->show();
+ break;
+ default:
+ SAL_WARN("sc",
+ "ConditionalFormatEasyDialog::ConditionalFormatEasyDialog: invalid format");
+ break;
+ }
+
+ mxButtonOk->connect_clicked(LINK(this, ConditionalFormatEasyDialog, ButtonPressed));
+ mxButtonCancel->connect_clicked(LINK(this, ConditionalFormatEasyDialog, ButtonPressed));
+
+ ScRangeList aRange;
+ mpViewData->GetMarkData().FillRangeListWithMarks(&aRange, false);
+ if (aRange.empty())
+ {
+ ScAddress aPosition(mpViewData->GetCurX(), mpViewData->GetCurY(), mpViewData->GetTabNo());
+ aRange.push_back(ScRange(aPosition));
+ }
+ maPosition = aRange.GetTopLeftCorner();
+
+ OUString sRangeString;
+ aRange.Format(sRangeString, ScRefFlags::VALID, *mpDocument, mpDocument->GetAddressConvention());
+ mxRangeEntry->SetText(sRangeString);
+
+ StartListening(*mpDocument->GetStyleSheetPool(), DuplicateHandling::Prevent);
+ FillStyleListBox(mpDocument, *mxStyles);
+
+ mxStyles->set_active(1);
+}
+
+ConditionalFormatEasyDialog::~ConditionalFormatEasyDialog() {}
+
+void ConditionalFormatEasyDialog::Notify(SfxBroadcaster&, const SfxHint& rHint)
+{
+ if (rHint.GetId() == SfxHintId::StyleSheetModified)
+ UpdateStyleList(mpDocument, *mxStyles);
+}
+
+void ConditionalFormatEasyDialog::SetReference(const ScRange& rRange, ScDocument&)
+{
+ formula::RefEdit* pEdit = mxRangeEntry.get();
+ if (rRange.aStart != rRange.aEnd)
+ RefInputStart(pEdit);
+
+ ScRefFlags nFlags = ScRefFlags::RANGE_ABS;
+ const ScDocument& rDoc = mpViewData->GetDocument();
+ OUString sRange(
+ rRange.Format(rDoc, nFlags, ScAddress::Details(mpDocument->GetAddressConvention(), 0, 0)));
+ pEdit->SetRefString(sRange);
+ maPosition = rRange.aStart;
+}
+
+void ConditionalFormatEasyDialog::SetActive()
+{
+ mxRangeEntry->GrabFocus();
+ RefInputDone();
+}
+
+void ConditionalFormatEasyDialog::Close()
+{
+ DoClose(ConditionalFormatEasyDialogWrapper::GetChildWindowId());
+}
+
+IMPL_LINK(ConditionalFormatEasyDialog, ButtonPressed, weld::Button&, rButton, void)
+{
+ if (&rButton == mxButtonOk.get())
+ {
+ std::unique_ptr pFormat(new ScConditionalFormat(0, mpDocument));
+ ScFormatEntry* pEntry
+ = new ScCondFormatEntry(meMode, mxNumberEntry->get_text(), mxNumberEntry2->get_text(),
+ *mpDocument, maPosition, mxStyles->get_active_text());
+ ScRangeList aRange;
+ ScRefFlags nFlags
+ = aRange.Parse(mxRangeEntry->GetText(), mpViewData->GetDocument(),
+ mpViewData->GetDocument().GetAddressConvention(), maPosition.Tab());
+ if ((nFlags & ScRefFlags::VALID) && !aRange.empty())
+ {
+ pFormat->AddEntry(pEntry);
+ pFormat->SetRange(aRange);
+ auto& rRangeList = pFormat->GetRange();
+ mpViewData->GetDocShell()->GetDocFunc().ReplaceConditionalFormat(
+ 0, std::move(pFormat), maPosition.Tab(), rRangeList);
+ }
+ m_xDialog->response(RET_OK);
+ }
+ else if (&rButton == mxButtonCancel.get())
+ m_xDialog->response(RET_CANCEL);
+}
+
+} // namespace sc
\ No newline at end of file
diff --git a/sc/source/ui/inc/condformateasydlg.hxx b/sc/source/ui/inc/condformateasydlg.hxx
new file mode 100644
index 000000000000..001414396522
--- /dev/null
+++ b/sc/source/ui/inc/condformateasydlg.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 "anyrefdg.hxx"
+#include
+#include
+
+class ScViewData;
+class ScConditionalFormat;
+class ScTabViewShell;
+
+namespace sc
+{
+class ConditionalFormatEasyDialog : public ScAnyRefDlgController, public SfxListener
+{
+public:
+ ConditionalFormatEasyDialog(SfxBindings*, SfxChildWindow*, weld::Window*, ScViewData*);
+ virtual ~ConditionalFormatEasyDialog() override;
+
+ virtual void SetReference(const ScRange&, ScDocument&) override;
+ virtual void SetActive() override;
+ virtual void Close() override;
+
+ virtual void Notify(SfxBroadcaster&, const SfxHint&) override;
+
+ DECL_LINK(ButtonPressed, weld::Button&, void);
+
+private:
+ ScViewData* mpViewData;
+ ScDocument* mpDocument;
+ ScConditionMode meMode;
+ ScAddress maPosition;
+ ScTabViewShell* mpTabViewShell;
+
+ std::unique_ptr mxNumberEntry;
+ std::unique_ptr mxNumberEntry2;
+ std::unique_ptr mxRangeEntry;
+ std::unique_ptr mxStyles;
+ std::unique_ptr mxDescription;
+ std::unique_ptr mxButtonOk;
+ std::unique_ptr mxButtonCancel;
+};
+
+} // namespace sc
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/sc/source/ui/inc/reffact.hxx b/sc/source/ui/inc/reffact.hxx
index d6c2b1d2c788..4fbe965c15d9 100644
--- a/sc/source/ui/inc/reffact.hxx
+++ b/sc/source/ui/inc/reffact.hxx
@@ -165,6 +165,13 @@ private:
SparklineDataRangeDialogWrapper() = delete;
};
+/** Wrapper for the easy conditional format dialog */
+class ConditionalFormatEasyDialogWrapper :
+ public ChildControllerWrapper
+{
+private:
+ ConditionalFormatEasyDialogWrapper() = delete;
+};
}
class ScAcceptChgDlgWrapper : public SfxChildWindow
diff --git a/sc/source/ui/view/cellsh3.cxx b/sc/source/ui/view/cellsh3.cxx
index 8b088e226d18..2b78e258aff0 100644
--- a/sc/source/ui/view/cellsh3.cxx
+++ b/sc/source/ui/view/cellsh3.cxx
@@ -44,6 +44,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -447,6 +448,25 @@ void ScCellShell::Execute( SfxRequest& rReq )
}
break;
+ case SID_EASY_CONDITIONAL_FORMAT_DIALOG:
+ {
+ if (pReqArgs != nullptr)
+ {
+ const SfxPoolItem* pFormat;
+ if (pReqArgs->HasItem( FN_PARAM_1, &pFormat))
+ {
+ sal_Int16 nFormat = static_cast(pFormat)->GetValue();
+ sal_uInt16 nId = sc::ConditionalFormatEasyDialogWrapper::GetChildWindowId();
+ SfxViewFrame& rViewFrame = pTabViewShell->GetViewFrame();
+ SfxChildWindow* pWindow = rViewFrame.GetChildWindow( nId );
+ GetViewData().GetDocument().SetEasyConditionalFormatDialogData(std::make_unique(static_cast(nFormat)));
+
+ pScMod->SetRefDialog( nId, pWindow == nullptr );
+ }
+ }
+ }
+ break;
+
case FID_CELL_FORMAT:
{
if ( pReqArgs != nullptr )
diff --git a/sc/source/ui/view/reffact.cxx b/sc/source/ui/view/reffact.cxx
index 487f8c8e1812..3834e3b8c33f 100644
--- a/sc/source/ui/view/reffact.cxx
+++ b/sc/source/ui/view/reffact.cxx
@@ -115,6 +115,7 @@ IMPL_CONTROLLER_CHILD_CTOR( ScPrintAreasDlgWrapper, SID_OPENDLG_EDIT_PRINTAREA )
IMPL_CONTROLLER_CHILD_CTOR( ScFormulaDlgWrapper, SID_OPENDLG_FUNCTION )
+
// ScSimpleRefDlgWrapper
static bool bScSimpleRefFlag;
diff --git a/sc/source/ui/view/tabvwsh.cxx b/sc/source/ui/view/tabvwsh.cxx
index f948d8326002..f64b960485a1 100644
--- a/sc/source/ui/view/tabvwsh.cxx
+++ b/sc/source/ui/view/tabvwsh.cxx
@@ -81,6 +81,7 @@ void ScTabViewShell::InitInterface_Impl()
GetStaticInterface()->RegisterChildWindow(ScSpellDialogChildWindow::GetChildWindowId());
GetStaticInterface()->RegisterChildWindow(ScValidityRefChildWin::GetChildWindowId());
GetStaticInterface()->RegisterChildWindow(sc::SearchResultsDlgWrapper::GetChildWindowId());
+ GetStaticInterface()->RegisterChildWindow(sc::ConditionalFormatEasyDialogWrapper::GetChildWindowId());
GetStaticInterface()->RegisterChildWindow(ScRandomNumberGeneratorDialogWrapper::GetChildWindowId());
GetStaticInterface()->RegisterChildWindow(ScSamplingDialogWrapper::GetChildWindowId());
diff --git a/sc/source/ui/view/tabvwshc.cxx b/sc/source/ui/view/tabvwshc.cxx
index bb3824d8e6a5..47a15f64a7c9 100644
--- a/sc/source/ui/view/tabvwshc.cxx
+++ b/sc/source/ui/view/tabvwshc.cxx
@@ -48,6 +48,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -322,6 +323,11 @@ std::shared_ptr ScTabViewShell::CreateRefDialogCont
xResult = std::make_shared(pB, pCW, pParent, aArgSet);
break;
}
+ case SID_EASY_CONDITIONAL_FORMAT_DIALOG:
+ {
+ xResult = std::make_shared(pB, pCW, pParent, &GetViewData());
+ break;
+ }
case SID_FILTER:
{
diff --git a/sc/uiconfig/scalc/popupmenu/conditional.xml b/sc/uiconfig/scalc/popupmenu/conditional.xml
index 69309cf310c5..428157c79b01 100644
--- a/sc/uiconfig/scalc/popupmenu/conditional.xml
+++ b/sc/uiconfig/scalc/popupmenu/conditional.xml
@@ -8,7 +8,7 @@
*
-->
-
+
diff --git a/sc/uiconfig/scalc/popupmenu/conditional_easy.xml b/sc/uiconfig/scalc/popupmenu/conditional_easy.xml
new file mode 100644
index 000000000000..3346fa9441bb
--- /dev/null
+++ b/sc/uiconfig/scalc/popupmenu/conditional_easy.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/sc/uiconfig/scalc/ui/conditionaleasydialog.ui b/sc/uiconfig/scalc/ui/conditionaleasydialog.ui
new file mode 100644
index 000000000000..8f3da05b2ce8
--- /dev/null
+++ b/sc/uiconfig/scalc/ui/conditionaleasydialog.ui
@@ -0,0 +1,237 @@
+
+
+
+
+
+
diff --git a/static/CustomTarget_emscripten_fs_image.mk b/static/CustomTarget_emscripten_fs_image.mk
index ecdfddddab0e..8366e28fb542 100644
--- a/static/CustomTarget_emscripten_fs_image.mk
+++ b/static/CustomTarget_emscripten_fs_image.mk
@@ -859,6 +859,7 @@ gb_emscripten_fs_image_files += \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/popupmenu/colheader.xml \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/popupmenu/column_operations.xml \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/popupmenu/conditional.xml \
+ $(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/popupmenu/conditional_easy.xml \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/popupmenu/draw.xml \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/popupmenu/drawtext.xml \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/popupmenu/form.xml \
@@ -930,6 +931,7 @@ gb_emscripten_fs_image_files += \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/ui/colwidthdialog.ui \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/ui/condformatmanager.ui \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/ui/conditionalentry.ui \
+ $(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/ui/conditionalformateasy.ui \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/ui/conditionalformatdialog.ui \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/ui/conditionaliconset.ui \
$(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/scalc/ui/conflictsdialog.ui \