summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Raykowski <raykowj@gmail.com>2021-01-22 20:38:21 -0900
committerAndras Timar <andras.timar@collabora.com>2021-03-03 16:29:32 +0100
commitb2ccb7e241dfa0e0a7f5a98b88b1b9933de675c9 (patch)
tree6294a213c19a79844815dac06819d1ace418a4b2
parenttdf#133473 Change SDRATTR_SHADOWSIZEX flag. (diff)
downloadcore-b2ccb7e241dfa0e0a7f5a98b88b1b9933de675c9.tar.gz
core-b2ccb7e241dfa0e0a7f5a98b88b1b9933de675c9.zip
tdf#137121 add popup menu to style items used in styles preview window
Change-Id: Ib9bd6584416b24301d3d302165d12c89bcd1e178 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109838 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111659 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
-rw-r--r--svx/source/inc/StylesPreviewWindow.hxx3
-rw-r--r--svx/source/tbxctrls/StylesPreviewWindow.cxx49
2 files changed, 43 insertions, 9 deletions
diff --git a/svx/source/inc/StylesPreviewWindow.hxx b/svx/source/inc/StylesPreviewWindow.hxx
index 26ba93d7be79..ff9a4137b9dc 100644
--- a/svx/source/inc/StylesPreviewWindow.hxx
+++ b/svx/source/inc/StylesPreviewWindow.hxx
@@ -54,7 +54,8 @@ public:
void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override;
- bool MouseButtonDown(const MouseEvent&) override;
+ bool MouseButtonDown(const MouseEvent& rMEvt) override;
+ bool Command(const CommandEvent& rEvent) override;
void SetStyle(const std::pair<OUString, OUString>& sStyleName);
diff --git a/svx/source/tbxctrls/StylesPreviewWindow.cxx b/svx/source/tbxctrls/StylesPreviewWindow.cxx
index a200a8f906f9..ec733dbdd8b1 100644
--- a/svx/source/tbxctrls/StylesPreviewWindow.cxx
+++ b/svx/source/tbxctrls/StylesPreviewWindow.cxx
@@ -52,7 +52,8 @@
#include <com/sun/star/uno/Sequence.hxx>
#include <cppuhelper/weak.hxx>
-#include <sal/log.hxx>
+#include <vcl/event.hxx>
+#include <vcl/commandevent.hxx>
StyleStatusListener::StyleStatusListener(
StylesPreviewWindow_Base* pPreviewControl,
@@ -102,15 +103,47 @@ void StyleItemController::Select(bool bSelect)
Invalidate();
}
-bool StyleItemController::MouseButtonDown(const MouseEvent&)
+bool StyleItemController::MouseButtonDown(const MouseEvent& rMEvt)
{
- css::uno::Sequence<css::beans::PropertyValue> aArgs(2);
- aArgs[0].Value <<= m_aStyleName.second;
- aArgs[1].Name = "Family";
- aArgs[1].Value <<= sal_Int16(m_eStyleFamily);
+ if (rMEvt.IsLeft())
+ {
+ css::uno::Sequence<css::beans::PropertyValue> aArgs(2);
+ aArgs[0].Value <<= m_aStyleName.second;
+ aArgs[1].Name = "Family";
+ aArgs[1].Value <<= sal_Int16(m_eStyleFamily);
+
+ aArgs[0].Name = "Template";
+ SfxToolBoxControl::Dispatch(m_xDispatchProvider, ".uno:StyleApply", aArgs);
+ }
- aArgs[0].Name = "Template";
- SfxToolBoxControl::Dispatch(m_xDispatchProvider, ".uno:StyleApply", aArgs);
+ return false;
+}
+
+bool StyleItemController::Command(const CommandEvent& rEvent)
+{
+ if (rEvent.GetCommand() != CommandEventId::ContextMenu)
+ return CustomWidgetController::Command(rEvent);
+
+ std::unique_ptr<weld::Builder> xBuilder(
+ Application::CreateBuilder(GetDrawingArea(), "svx/ui/stylemenu.ui"));
+ std::unique_ptr<weld::Menu> xMenu(xBuilder->weld_menu("menu"));
+ std::string_view rIdent = xMenu->popup_at_rect(
+ GetDrawingArea(), tools::Rectangle(rEvent.GetMousePosPixel(), Size(1, 1)));
+ if (rIdent == "update" || rIdent == "edit")
+ {
+ css::uno::Sequence<css::beans::PropertyValue> aArgs(2);
+ aArgs[0].Name = "Param";
+ aArgs[0].Value <<= m_aStyleName.second;
+ aArgs[1].Name = "Family";
+ aArgs[1].Value <<= sal_Int16(m_eStyleFamily);
+
+ SfxToolBoxControl::Dispatch(m_xDispatchProvider,
+ rIdent == "update" ? OUString(".uno:StyleUpdateByExample")
+ : OUString(".uno:EditStyle"),
+ aArgs);
+
+ return true;
+ }
return false;
}