diff options
author | Pranav Kant <pranavk@collabora.co.uk> | 2017-12-01 13:54:45 +0530 |
---|---|---|
committer | Pranav Kant <pranavk@collabora.co.uk> | 2017-12-04 17:14:02 +0530 |
commit | b5e27fd809845577a90cc1811de062c070110078 (patch) | |
tree | 679cb1c3712b6b0a5b693dfa9990e6de8592cc62 /libreofficekit/source | |
parent | 3d8154ec427777eadf5719f194662e5ade78fae5 (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.cxx | 55 |
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, |