summaryrefslogtreecommitdiff
path: root/libreofficekit/source
diff options
context:
space:
mode:
authorPranav Kant <pranavk@collabora.co.uk>2017-12-01 13:54:45 +0530
committerPranav Kant <pranavk@collabora.co.uk>2017-12-04 17:14:02 +0530
commitb5e27fd809845577a90cc1811de062c070110078 (patch)
tree679cb1c3712b6b0a5b693dfa9990e6de8592cc62 /libreofficekit/source
parent3d8154ec427777eadf5719f194662e5ade78fae5 (diff)
lokdialog: Simplify; make the LOK dialog API more generic
Merge the dialog floating window callbacks and function calls into one. Unique window ids across vcl::Window is enough to distinguish between them. Floating windows don't have a LOK notifier as they are created in the vcl itself (so we can't access them from sfx2). Use the parent LOK notifier in that case (which would be a dialog). This API should also help in autopopup filter tunneling later. Change-Id: I63a2c97ffdd84695dc967e14c793089a7c50b41b
Diffstat (limited to 'libreofficekit/source')
-rw-r--r--libreofficekit/source/gtk/lokdocview.cxx55
1 files changed, 9 insertions, 46 deletions
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index 607a8624ecc3..eae5c6225cd9 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -277,8 +277,7 @@ enum
PASSWORD_REQUIRED,
COMMENT,
RULER,
- DIALOG,
- DIALOG_CHILD,
+ WINDOW,
LAST_SIGNAL
};
@@ -436,10 +435,8 @@ callbackTypeToString (int nType)
return "LOK_CALLBACK_COMMENT";
case LOK_CALLBACK_RULER_UPDATE:
return "LOK_CALLBACK_RULER_UPDATE";
- case LOK_CALLBACK_DIALOG:
- return "LOK_CALLBACK_DIALOG";
- case LOK_CALLBACK_DIALOG_CHILD:
- return "LOK_CALLBACK_DIALOG_CHILD";
+ case LOK_CALLBACK_WINDOW:
+ return "LOK_CALLBACK_WINDOW";
}
g_assert(false);
return nullptr;
@@ -1413,11 +1410,8 @@ callback (gpointer pData)
case LOK_CALLBACK_RULER_UPDATE:
g_signal_emit(pCallback->m_pDocView, doc_view_signals[RULER], 0, pCallback->m_aPayload.c_str());
break;
- case LOK_CALLBACK_DIALOG:
- g_signal_emit(pCallback->m_pDocView, doc_view_signals[DIALOG], 0, pCallback->m_aPayload.c_str());
- break;
- case LOK_CALLBACK_DIALOG_CHILD:
- g_signal_emit(pCallback->m_pDocView, doc_view_signals[DIALOG_CHILD], 0, pCallback->m_aPayload.c_str());
+ case LOK_CALLBACK_WINDOW:
+ g_signal_emit(pCallback->m_pDocView, doc_view_signals[WINDOW], 0, pCallback->m_aPayload.c_str());
break;
default:
g_assert(false);
@@ -3217,43 +3211,12 @@ static void lok_doc_view_class_init (LOKDocViewClass* pClass)
G_TYPE_STRING);
/**
- * LOKDocView::dialog-invalidate:
+ * LOKDocView::window
* @pDocView: the #LOKDocView on which the signal is emitted
- * @pDialogId: The uno command for the dialog (dialog ID)
- */
- doc_view_signals[DIALOG] =
- g_signal_new("dialog",
- G_TYPE_FROM_CLASS(pGObjectClass),
- G_SIGNAL_RUN_FIRST,
- 0,
- nullptr, nullptr,
- g_cclosure_marshal_generic,
- G_TYPE_NONE, 1,
- G_TYPE_STRING);
-
- /**
- * LOKDocView::dialog-child:
- * @pDocView: the #LOKDocView on which the signal is emitted
- * @pPayload: JSON described below:
- *
- * Invalidation corresponding to dialog's children.
- * Eg: Floating window etc.
- *
- * Payload example:
- * {
- * "dialogID": "SpellDialog",
- * "action": "close"
- * }
- *
- * - dialogID is the UNO command of the dialog
- * - action can be
- * - close, means dialog child window is closed now
- * - invalidate, means dialog child window is invalidated
- * It also means that dialog child window is created if it's the first
- * invalidate
+ * @pPayload: JSON containing the information, including id, about the window
*/
- doc_view_signals[DIALOG_CHILD] =
- g_signal_new("dialog-child",
+ doc_view_signals[WINDOW] =
+ g_signal_new("window",
G_TYPE_FROM_CLASS(pGObjectClass),
G_SIGNAL_RUN_FIRST,
0,