summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2024-06-20 13:06:47 +0500
committerMike Kaganski <mike.kaganski@collabora.com>2024-06-21 15:46:17 +0200
commitbbd32b39eae24e99d135ed5c48586db8c9b0fb23 (patch)
treeefe77a6e20a922ea56681284bed135534d2731bc
parent319e62915b35d7129a13e069d1a4213b254ce389 (diff)
LOK: Introduce LOK_CALLBACK_STATUS_UPDATE
This allows to send status messages separately from statechanged; this is needed in Impress to notify about any mode update, not only masterview-related. Also send SlideMasterPage updates automatically from core. Change-Id: I0a50dbe61a5f2f28cd418eb4416819a6a76810b0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169314 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins
-rw-r--r--include/LibreOfficeKit/LibreOfficeKitEnums.h9
-rw-r--r--libreofficekit/source/gtk/lokdocview.cxx1
-rw-r--r--sd/source/ui/view/drviews1.cxx6
-rw-r--r--sd/source/ui/view/drviewse.cxx9
-rw-r--r--sfx2/source/control/unoctitm.cxx1
5 files changed, 13 insertions, 13 deletions
diff --git a/include/LibreOfficeKit/LibreOfficeKitEnums.h b/include/LibreOfficeKit/LibreOfficeKitEnums.h
index 516622722bb9..dff64a584fdc 100644
--- a/include/LibreOfficeKit/LibreOfficeKitEnums.h
+++ b/include/LibreOfficeKit/LibreOfficeKitEnums.h
@@ -1067,7 +1067,12 @@ typedef enum
*
* Here all aproperties are same as described in svxruler.
*/
- LOK_CALLBACK_VERTICAL_RULER_UPDATE = 73
+ LOK_CALLBACK_VERTICAL_RULER_UPDATE = 73,
+
+ /**
+ * Status of the document has changed notification
+ */
+ LOK_CALLBACK_STATUS_UPDATE = 74,
}
LibreOfficeKitCallbackType;
@@ -1245,6 +1250,8 @@ static inline const char* lokCallbackTypeToString(int nType)
return "LOK_CALLBACK_TOOLTIP";
case LOK_CALLBACK_SHAPE_INNER_TEXT:
return "LOK_CALLBACK_SHAPE_INNER_TEXT";
+ case LOK_CALLBACK_STATUS_UPDATE:
+ return "LOK_CALLBACK_STATUS_UPDATE";
}
assert(!"Unknown LibreOfficeKitCallbackType type.");
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index 5dddaa2d0e37..3eddb009c242 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -1502,6 +1502,7 @@ callback (gpointer pData)
case LOK_CALLBACK_CORE_LOG:
case LOK_CALLBACK_TOOLTIP:
case LOK_CALLBACK_SHAPE_INNER_TEXT:
+ case LOK_CALLBACK_STATUS_UPDATE:
{
// TODO: Implement me
break;
diff --git a/sd/source/ui/view/drviews1.cxx b/sd/source/ui/view/drviews1.cxx
index df004aa0610e..00560836cb7f 100644
--- a/sd/source/ui/view/drviews1.cxx
+++ b/sd/source/ui/view/drviews1.cxx
@@ -405,6 +405,9 @@ void DrawViewShell::ChangeEditMode(EditMode eEMode, bool bIsLayerModeActive)
pTitledDockingWindow->SetTitle(SdResId(aId));
};
+ if (comphelper::LibreOfficeKit::isActive())
+ GetViewShell()->libreOfficeKitViewCallback(LOK_CALLBACK_STATUS_UPDATE, {});
+
if (meEditMode == EditMode::Page)
{
/******************************************************************
@@ -451,9 +454,6 @@ void DrawViewShell::ChangeEditMode(EditMode eEMode, bool bIsLayerModeActive)
setLeftPaneTitleIfPaneExists(SID_LEFT_PANE_DRAW, STR_LEFT_PANE_DRAW_TITLE_MASTER);
setLeftPaneTitleIfPaneExists(SID_LEFT_PANE_IMPRESS, STR_LEFT_PANE_IMPRESS_TITLE_MASTER);
- if (comphelper::LibreOfficeKit::isActive())
- GetViewShell()->libreOfficeKitViewCallback(LOK_CALLBACK_STATE_CHANGED,
- ".uno:SlideMasterPage=true"_ostr);
if (!mpActualPage)
{
// as long as there is no mpActualPage, take first
diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx
index f594fb1f7fcf..622dd2cad93c 100644
--- a/sd/source/ui/view/drviewse.cxx
+++ b/sd/source/ui/view/drviewse.cxx
@@ -1036,10 +1036,6 @@ void DrawViewShell::FuSupport(SfxRequest& rReq)
case SID_MASTERPAGE: // BASIC
{
- if (comphelper::LibreOfficeKit::isActive())
- GetViewShell()->libreOfficeKitViewCallback(LOK_CALLBACK_STATE_CHANGED,
- ".uno:SlideMasterPage=true"_ostr);
-
// AutoLayouts needs to be finished
GetDoc()->StopWorkStartupDelay();
@@ -1074,11 +1070,6 @@ void DrawViewShell::FuSupport(SfxRequest& rReq)
case SID_CLOSE_MASTER_VIEW:
{
- // Notify of disabling master view, which is enabled in DrawViewShell::ChangeEditMode.
- if (comphelper::LibreOfficeKit::isActive())
- GetViewShell()->libreOfficeKitViewCallback(LOK_CALLBACK_STATE_CHANGED,
- ".uno:SlideMasterPage=false"_ostr);
-
Broadcast (
ViewShellHint(ViewShellHint::HINT_CHANGE_EDIT_MODE_START));
diff --git a/sfx2/source/control/unoctitm.cxx b/sfx2/source/control/unoctitm.cxx
index a64f297aaf0c..2cc5bbb422b3 100644
--- a/sfx2/source/control/unoctitm.cxx
+++ b/sfx2/source/control/unoctitm.cxx
@@ -1151,6 +1151,7 @@ constexpr auto handlers = frozen::make_unordered_map<std::u16string_view, Payloa
{ u"CellProtection", IsActivePayload },
{ u"NormalMultiPaneGUI", IsActivePayload },
{ u"NotesMode", IsActivePayload },
+ { u"SlideMasterPage", IsActivePayload },
{ u"CharFontName", FontNamePayload },