diff options
author | Jan Holesovsky <kendy@collabora.com> | 2017-12-21 13:00:31 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2017-12-21 20:41:13 +0100 |
commit | 9364ae836e6975da64abf87eb7c2b02e601e69db (patch) | |
tree | cb5391eeb1aedfe3818749e83a7070bd3ad398e6 /libreofficekit | |
parent | 236d245428ec290f9b5efe4cd68996a7d4e6509e (diff) |
Revert the incomplete dialog tunneling, the API has changed completely.
Change-Id: I50fb8c83365cefb8c8e76096fe257d31970a68b4
Reviewed-on: https://gerrit.libreoffice.org/46927
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Diffstat (limited to 'libreofficekit')
12 files changed, 31 insertions, 331 deletions
diff --git a/libreofficekit/Executable_gtktiledviewer.mk b/libreofficekit/Executable_gtktiledviewer.mk index 5dd89e6065f6..f0667e247680 100644 --- a/libreofficekit/Executable_gtktiledviewer.mk +++ b/libreofficekit/Executable_gtktiledviewer.mk @@ -9,14 +9,10 @@ $(eval $(call gb_Executable_Executable,gtktiledviewer)) -$(eval $(call gb_Library_use_sdk_api,gtktiledviewer)) - $(eval $(call gb_Executable_set_include,gtktiledviewer,\ $$(INCLUDE) \ -I$(SRCDIR)/desktop/inc \ -I$(SRCDIR)/libreofficekit/qa/gtktiledviewer/ \ - -I$(WORKDIR)/UnoApiHeadersTarget/offapi/normal/ \ - -I$(WORKDIR)/UnoApiHeadersTarget/udkapi/normal/ \ )) $(eval $(call gb_Executable_use_externals,gtktiledviewer,\ @@ -57,7 +53,6 @@ $(eval $(call gb_Executable_add_exception_objects,gtktiledviewer,\ libreofficekit/qa/gtktiledviewer/gtv-lokdocview-signal-handlers \ libreofficekit/qa/gtktiledviewer/gtv-calc-header-bar \ libreofficekit/qa/gtktiledviewer/gtv-comments-sidebar \ - libreofficekit/qa/gtktiledviewer/gtv-lok-dialog \ )) # vim: set noet sw=4 ts=4: diff --git a/libreofficekit/qa/gtktiledviewer/gtv-application-window.cxx b/libreofficekit/qa/gtktiledviewer/gtv-application-window.cxx index 118be6c0100d..0b403514e631 100644 --- a/libreofficekit/qa/gtktiledviewer/gtv-application-window.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtv-application-window.cxx @@ -31,13 +31,10 @@ struct GtvApplicationWindowPrivate GtkWidget* gridcontainer; GtkWidget* toolbarcontainer; GtkWidget* scrolledwindowcontainer; - GtkWidget* lokDialog; gboolean toolbarBroadcast; gboolean partSelectorBroadcast; - GList* m_pChildWindows; - // Rendering args; options with which lokdocview was rendered in this window GtvRenderingArgs* m_pRenderingArgs; }; @@ -107,7 +104,6 @@ gtv_application_window_init(GtvApplicationWindow* win) gtk_container_add(GTK_CONTAINER(win), priv->container); - priv->m_pChildWindows = nullptr; priv->m_pRenderingArgs = new GtvRenderingArgs(); } @@ -314,8 +310,6 @@ static void setupDocView(GtvApplicationWindow* window) g_signal_connect(window->lokdocview, "formula-changed", G_CALLBACK(LOKDocViewSigHandlers::formulaChanged), nullptr); g_signal_connect(window->lokdocview, "password-required", G_CALLBACK(LOKDocViewSigHandlers::passwordRequired), nullptr); g_signal_connect(window->lokdocview, "comment", G_CALLBACK(LOKDocViewSigHandlers::comment), nullptr); - g_signal_connect(window->lokdocview, "dialog", G_CALLBACK(LOKDocViewSigHandlers::dialog), nullptr); - g_signal_connect(window->lokdocview, "dialog-child", G_CALLBACK(LOKDocViewSigHandlers::dialogChild), nullptr); g_signal_connect(window->lokdocview, "configure-event", G_CALLBACK(LOKDocViewSigHandlers::configureEvent), nullptr); } @@ -399,60 +393,6 @@ gtv_application_window_get_part_broadcast(GtvApplicationWindow* window) return priv->partSelectorBroadcast; } -void -gtv_application_window_register_child_window(GtvApplicationWindow* window, GtkWindow* pChildWin) -{ - GtvApplicationWindowPrivate* priv = getPrivate(window); - if (pChildWin) - priv->m_pChildWindows = g_list_append(priv->m_pChildWindows, pChildWin); -} - -void -gtv_application_window_unregister_child_window(GtvApplicationWindow* window, GtkWindow* pChildWin) -{ - GtvApplicationWindowPrivate* priv = getPrivate(window); - if (pChildWin) - priv->m_pChildWindows = g_list_remove(priv->m_pChildWindows, pChildWin); -} - -GtkWindow* -gtv_application_window_get_child_window_by_id(GtvApplicationWindow* window, const gchar* pWinId) -{ - GtvApplicationWindowPrivate* priv = getPrivate(window); - GList* pIt = nullptr; - GtkWindow* ret = nullptr; - // For now, only dialogs are registered as child window - for (pIt = priv->m_pChildWindows; pIt != nullptr; pIt = pIt->next) - { - gchar* dialogId = nullptr; - g_object_get(G_OBJECT(pIt->data), "dialogid", &dialogId, nullptr); - - // prepend .uno: - gchar* completeWinId = nullptr; - if (pWinId != nullptr) - { - completeWinId = g_strconcat(".uno:", pWinId, nullptr); - } - - if (dialogId != nullptr && g_str_equal(dialogId, completeWinId)) - { - ret = GTK_WINDOW(pIt->data); - break; - } - } - return ret; -} - -// temporary function to invalidate all opened dialogs -// because currently the dialog id returned in dialog invalidation payload -// doesn't match our hard-coded list of dialog ids (uno commands) for some dialogs -GList* -gtv_application_window_get_all_child_windows(GtvApplicationWindow* window) -{ - GtvApplicationWindowPrivate* priv = getPrivate(window); - return priv->m_pChildWindows; -} - GtvApplicationWindow* gtv_application_window_new(GtkApplication* app) { diff --git a/libreofficekit/qa/gtktiledviewer/gtv-application-window.hxx b/libreofficekit/qa/gtktiledviewer/gtv-application-window.hxx index f0d5afc0513c..8451da564c09 100644 --- a/libreofficekit/qa/gtktiledviewer/gtv-application-window.hxx +++ b/libreofficekit/qa/gtktiledviewer/gtv-application-window.hxx @@ -99,14 +99,6 @@ void gtv_application_window_set_part_broadcast(GtvApplicationWindow* window, boo gboolean gtv_application_window_get_part_broadcast(GtvApplicationWindow* window); -void gtv_application_window_register_child_window(GtvApplicationWindow* window, GtkWindow* pChildWin); - -void gtv_application_window_unregister_child_window(GtvApplicationWindow* window, GtkWindow* pChildWin); - -GtkWindow* gtv_application_window_get_child_window_by_id(GtvApplicationWindow* window, const gchar* pWinId); - -GList* gtv_application_window_get_all_child_windows(GtvApplicationWindow* window); - G_END_DECLS #endif /* GTV_APPLICATION_WINDOW_H */ diff --git a/libreofficekit/qa/gtktiledviewer/gtv-helpers.cxx b/libreofficekit/qa/gtktiledviewer/gtv-helpers.cxx index 9dee02a0ac45..5dca746d5f25 100644 --- a/libreofficekit/qa/gtktiledviewer/gtv-helpers.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtv-helpers.cxx @@ -148,23 +148,4 @@ const std::string GtvHelpers::getDirPath(const std::string& filePath) return dirPath; } -const std::vector<int> GtvHelpers::splitIntoIntegers(const std::string& aPayload, const std::string& aDelim, const int nItems) -{ - std::vector<int> aRet; - - if (!aPayload.empty()) - { - gchar** ppCoordinates = g_strsplit(aPayload.c_str(), aDelim.c_str(), nItems); - gchar** ppCoordinate = ppCoordinates; - while (*ppCoordinate) - { - aRet.push_back(atoi(*ppCoordinate)); - ++ppCoordinate; - } - g_strfreev(ppCoordinates); - } - - return aRet; -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/libreofficekit/qa/gtktiledviewer/gtv-helpers.hxx b/libreofficekit/qa/gtktiledviewer/gtv-helpers.hxx index 9e984846f0ab..e0a2defa72d9 100644 --- a/libreofficekit/qa/gtktiledviewer/gtv-helpers.hxx +++ b/libreofficekit/qa/gtktiledviewer/gtv-helpers.hxx @@ -38,8 +38,6 @@ namespace GtvHelpers GtkWidget* createCommentBox(const boost::property_tree::ptree& aComment); const std::string getDirPath(const std::string& filePath); - - const std::vector<int> splitIntoIntegers(const std::string& aPayload, const std::string& aDelim, const int nItems); } #endif diff --git a/libreofficekit/qa/gtktiledviewer/gtv-lokdocview-signal-handlers.cxx b/libreofficekit/qa/gtktiledviewer/gtv-lokdocview-signal-handlers.cxx index dfdbc3bc6ca6..f0d926425a5f 100644 --- a/libreofficekit/qa/gtktiledviewer/gtv-lokdocview-signal-handlers.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtv-lokdocview-signal-handlers.cxx @@ -15,13 +15,10 @@ #include "gtv-calc-header-bar.hxx" #include "gtv-comments-sidebar.hxx" #include "gtv-lokdocview-signal-handlers.hxx" -#include "gtv-lok-dialog.hxx" #include <boost/property_tree/json_parser.hpp> #include <boost/optional.hpp> -#include <iostream> - void LOKDocViewSigHandlers::editChanged(LOKDocView* pDocView, gboolean bWasEdit, gpointer) { GtvApplicationWindow* window = GTV_APPLICATION_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(pDocView))); @@ -283,90 +280,6 @@ void LOKDocViewSigHandlers::comment(LOKDocView* pDocView, gchar* pComment, gpoin } } -void LOKDocViewSigHandlers::dialog(LOKDocView* pDocView, gchar* pPayload, gpointer) -{ - GtvApplicationWindow* window = GTV_APPLICATION_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(pDocView))); - - std::stringstream aStream(pPayload); - boost::property_tree::ptree aRoot; - boost::property_tree::read_json(aStream, aRoot); - const std::string aDialogId = aRoot.get<std::string>("dialogId"); - const std::string aAction = aRoot.get<std::string>("action"); - - // we only understand 'invalidate' and 'close' as of now - if (aAction != "invalidate" && aAction != "close") - return; - - GList* pChildWins = gtv_application_window_get_all_child_windows(window); - GList* pIt = nullptr; - for (pIt = pChildWins; pIt != nullptr; pIt = pIt->next) - { - gchar* pChildDialogId = nullptr; - g_object_get(pIt->data, "dialogid", &pChildDialogId, nullptr); - if (g_strcmp0(pChildDialogId, aDialogId.c_str()) == 0) - { - if (aAction == "close") - gtk_widget_destroy(GTK_WIDGET(pIt->data)); - else if (aAction == "invalidate") - { - GdkRectangle aGdkRectangle = {0, 0, 0, 0}; - try - { - const std::string aRectangle = aRoot.get<std::string>("rectangle"); - std::vector<int> aRectPoints = GtvHelpers::splitIntoIntegers(aRectangle, ", ", 4); - if (aRectPoints.size() == 4) - aGdkRectangle = {aRectPoints[0], aRectPoints[1], aRectPoints[2], aRectPoints[3]}; - } - catch(const std::exception& e) - {} - - gtv_lok_dialog_invalidate(GTV_LOK_DIALOG(pIt->data), aGdkRectangle); - } - } - g_free(pChildDialogId); - } -} - -void LOKDocViewSigHandlers::dialogChild(LOKDocView* pDocView, gchar* pPayload, gpointer) -{ - GtvApplicationWindow* window = GTV_APPLICATION_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(pDocView))); - - std::stringstream aStream(pPayload); - boost::property_tree::ptree aRoot; - boost::property_tree::read_json(aStream, aRoot); - std::string aDialogId = aRoot.get<std::string>("dialogId"); - std::string aAction = aRoot.get<std::string>("action"); - std::string aPos = aRoot.get<std::string>("position"); - gchar** ppCoordinates = g_strsplit(aPos.c_str(), ", ", 2); - gchar** ppCoordinate = ppCoordinates; - int nX = 0; - int nY = 0; - - if (*ppCoordinate) - nX = atoi(*ppCoordinate); - ++ppCoordinate; - if (*ppCoordinate) - nY = atoi(*ppCoordinate); - - g_strfreev(ppCoordinates); - - GList* pChildWins = gtv_application_window_get_all_child_windows(window); - GList* pIt = nullptr; - for (pIt = pChildWins; pIt != nullptr; pIt = pIt->next) - { - gchar* pChildDialogId = nullptr; - g_object_get(pIt->data, "dialogid", &pChildDialogId, nullptr); - if (g_strcmp0(pChildDialogId, aDialogId.c_str()) == 0) - { - if (aAction == "invalidate") - gtv_lok_dialog_child_invalidate(GTV_LOK_DIALOG(pIt->data), nX, nY); - else if (aAction == "close") - gtv_lok_dialog_child_close(GTV_LOK_DIALOG(pIt->data)); - } - g_free(pChildDialogId); - } -} - gboolean LOKDocViewSigHandlers::configureEvent(GtkWidget* pWidget, GdkEventConfigure* /*pEvent*/, gpointer /*pData*/) { GtvApplicationWindow* window = GTV_APPLICATION_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(pWidget))); diff --git a/libreofficekit/qa/gtktiledviewer/gtv-lokdocview-signal-handlers.hxx b/libreofficekit/qa/gtktiledviewer/gtv-lokdocview-signal-handlers.hxx index 54f54b396bf3..724f2031d4f5 100644 --- a/libreofficekit/qa/gtktiledviewer/gtv-lokdocview-signal-handlers.hxx +++ b/libreofficekit/qa/gtktiledviewer/gtv-lokdocview-signal-handlers.hxx @@ -25,8 +25,6 @@ namespace LOKDocViewSigHandlers { void formulaChanged(LOKDocView* pDocView, char* pPayload, gpointer); void passwordRequired(LOKDocView* pDocView, char* pUrl, gboolean bModify, gpointer); void comment(LOKDocView* pDocView, gchar* pComment, gpointer); - void dialog(LOKDocView* pDocView, gchar* pDialogId, gpointer); - void dialogChild(LOKDocView* pDocView, gchar* pPayload, gpointer); gboolean configureEvent(GtkWidget* pWidget, GdkEventConfigure* pEvent, gpointer pData); } diff --git a/libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx b/libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx index d18482447a7e..9e280c9d0f1c 100644 --- a/libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx @@ -14,7 +14,6 @@ #include "gtv-signal-handlers.hxx" #include "gtv-helpers.hxx" #include "gtv-calc-header-bar.hxx" -#include "gtv-lok-dialog.hxx" #include <map> #include <memory> @@ -35,7 +34,6 @@ struct GtvMainToolbarPrivateImpl GtkWidget* m_pDeleteComment; GtkWidget* m_pPartSelector; GtkWidget* m_pPartModeSelector; - GtkWidget* m_pDialogSelector; /// Sensitivity (enabled or disabled) for each tool item, ignoring edit state std::map<GtkToolItem*, bool> m_aToolItemSensitivities; @@ -50,8 +48,7 @@ struct GtvMainToolbarPrivateImpl m_pJustifypara(nullptr), m_pDeleteComment(nullptr), m_pPartSelector(nullptr), - m_pPartModeSelector(nullptr), - m_pDialogSelector(nullptr) + m_pPartModeSelector(nullptr) { } }; @@ -98,8 +95,6 @@ gtv_main_toolbar_init(GtvMainToolbar* toolbar) priv->m_pDeleteComment = GTK_WIDGET(gtk_builder_get_object(builder.get(), "btn_removeannotation")); priv->m_pPartSelector = GTK_WIDGET(gtk_builder_get_object(builder.get(), "combo_partselector")); priv->m_pPartModeSelector = GTK_WIDGET(gtk_builder_get_object(builder.get(), "combo_partsmodeselector")); - priv->m_pDialogSelector = GTK_WIDGET(gtk_builder_get_object(builder.get(), "combo_dialogselector")); - toolbar->m_pAddressbar = GTK_WIDGET(gtk_builder_get_object(builder.get(), "addressbar_entry")); toolbar->m_pFormulabar = GTK_WIDGET(gtk_builder_get_object(builder.get(), "formulabar_entry")); @@ -119,7 +114,6 @@ gtv_main_toolbar_init(GtvMainToolbar* toolbar) gtk_builder_add_callback_symbol(builder.get(), "documentRepair", G_CALLBACK(documentRepair)); gtk_builder_add_callback_symbol(builder.get(), "signalAddressbar", G_CALLBACK(signalAddressbar)); gtk_builder_add_callback_symbol(builder.get(), "signalFormulabar", G_CALLBACK(signalFormulabar)); - gtk_builder_add_callback_symbol(builder.get(), "openLokDialog", G_CALLBACK(openLokDialog)); // find toolbar // Note: These buttons are not the part of GtvMainToolbar @@ -182,22 +176,6 @@ static void populatePartSelector(GtvMainToolbar* toolbar) gtv_application_window_set_part_broadcast(window, true); } -static void populateDialogSelector(GtvMainToolbar* toolbar) -{ - GtvMainToolbarPrivate& priv = getPrivate(toolbar); - - GtkComboBoxText* pSelector = GTK_COMBO_BOX_TEXT(priv->m_pDialogSelector); - gtk_combo_box_text_append_text( pSelector, ".uno:SearchDialog" ); - gtk_combo_box_text_append_text( pSelector, ".uno:AcceptTrackedChanges" ); - gtk_combo_box_text_append_text( pSelector, ".uno:SpellingAndGrammarDialog" ); - gtk_combo_box_text_append_text( pSelector, ".uno:InsertField" ); - gtk_combo_box_text_append_text( pSelector, ".uno:ImageMapDialog" ); - gtk_combo_box_text_append_text( pSelector, ".uno:WordCountDialog" ); - gtk_combo_box_text_append_text( pSelector, ".uno:HyperlinkDialog" ); - gtk_combo_box_text_append_text( pSelector, ".uno:InsertIndexesEntry" ); - gtk_combo_box_text_append_text( pSelector, ".uno:InsertAuthoritiesEntry"); -} - void gtv_main_toolbar_doc_loaded(GtvMainToolbar* toolbar, LibreOfficeKitDocumentType eDocType, bool bEditMode) { @@ -224,8 +202,6 @@ gtv_main_toolbar_doc_loaded(GtvMainToolbar* toolbar, LibreOfficeKitDocumentType // populate combo boxes populatePartSelector(toolbar); - // populate dialogs - populateDialogSelector(toolbar); } GtkContainer* diff --git a/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.cxx b/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.cxx index fee24c6a0f25..60068a8f89d7 100644 --- a/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.cxx @@ -12,7 +12,6 @@ #include "gtv-application-window.hxx" #include "gtv-helpers.hxx" #include "gtv-lokdocview-signal-handlers.hxx" -#include "gtv-lok-dialog.hxx" #include <sal/types.h> @@ -290,40 +289,6 @@ void changePartMode( GtkWidget* pSelector, gpointer /* pItem */ ) } } -static gboolean deleteLokDialog(GtkWidget* pWidget, GdkEvent* /*event*/, gpointer userdata) -{ - GtvApplicationWindow* window = GTV_APPLICATION_WINDOW(userdata); - g_info("deleteLokDialog"); - gtv_application_window_unregister_child_window(window, GTK_WINDOW(pWidget)); - - return FALSE; -} - -static gboolean destroyLokDialog(GtkWidget* pWidget, gpointer userdata) -{ - GtvApplicationWindow* window = GTV_APPLICATION_WINDOW(userdata); - g_info("destroyLokDialog"); - gtv_application_window_unregister_child_window(window, GTK_WINDOW(pWidget)); - - return FALSE; -} - -void openLokDialog( GtkWidget* pSelector, gpointer /*pItem*/ ) -{ - GtvApplicationWindow* window = GTV_APPLICATION_WINDOW(gtk_widget_get_toplevel(pSelector)); - gchar* pDialogId = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(pSelector)); - GtkWidget* pDialog = gtv_lok_dialog_new(LOK_DOC_VIEW(window->lokdocview), pDialogId); - gtv_application_window_register_child_window(window, GTK_WINDOW(pDialog)); - g_signal_connect(pDialog, "destroy", G_CALLBACK(destroyLokDialog), window); - g_signal_connect(pDialog, "delete-event", G_CALLBACK(deleteLokDialog), window); - g_free(pDialogId); - - g_info("openLokDialog"); - gtk_window_set_resizable(GTK_WINDOW(pDialog), false); - gtk_widget_show_all(GTK_WIDGET(pDialog)); - gtk_window_present(GTK_WINDOW(pDialog)); -} - void changeZoom( GtkWidget* pButton, gpointer /* pItem */ ) { static const float fZooms[] = { 0.25, 0.5, 0.75, 1.0, 1.5, 2.0, 3.0, 5.0 }; diff --git a/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.hxx b/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.hxx index 80c5c6061f9a..2f9948fe61d7 100644 --- a/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.hxx +++ b/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.hxx @@ -30,8 +30,6 @@ void changePartMode( GtkWidget* pSelector, gpointer /* pItem */ ); void changePart( GtkWidget* pSelector, gpointer /*pItem*/ ); -void openLokDialog( GtkWidget* pSelector, gpointer /*pItem*/ ); - void changeZoom( GtkWidget* pButton, gpointer /* pItem */ ); void toggleFindbar(GtkWidget* pButton, gpointer /*pItem*/); diff --git a/libreofficekit/qa/gtktiledviewer/gtv.ui b/libreofficekit/qa/gtktiledviewer/gtv.ui index 7030ecaead5b..966c97e46967 100644 --- a/libreofficekit/qa/gtktiledviewer/gtv.ui +++ b/libreofficekit/qa/gtktiledviewer/gtv.ui @@ -445,23 +445,6 @@ </packing> </child> <child> - <object class="GtkToolItem" id="dialogselectortoolitem"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <child> - <object class="GtkComboBoxText" id="combo_dialogselector"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <signal name="changed" handler="openLokDialog" swapped="no"/> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - <child> <object class="GtkToggleToolButton" id="btn_editmode"> <property name="visible">True</property> <property name="can_focus">False</property> diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx index 607a8624ecc3..3abc2949cae4 100644 --- a/libreofficekit/source/gtk/lokdocview.cxx +++ b/libreofficekit/source/gtk/lokdocview.cxx @@ -277,8 +277,6 @@ enum PASSWORD_REQUIRED, COMMENT, RULER, - DIALOG, - DIALOG_CHILD, LAST_SIGNAL }; @@ -436,10 +434,6 @@ 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"; } g_assert(false); return nullptr; @@ -816,19 +810,38 @@ signalKey (GtkWidget* pWidget, GdkEventKey* pEvent) } } - GTask* task = g_task_new(pDocView, nullptr, nullptr, nullptr); - LOEvent* pLOEvent = new LOEvent(LOK_POST_KEY); - pLOEvent->m_nKeyEvent = pEvent->type == GDK_KEY_RELEASE ? LOK_KEYEVENT_KEYUP : LOK_KEYEVENT_KEYINPUT; - pLOEvent->m_nCharCode = nCharCode; - pLOEvent->m_nKeyCode = nKeyCode; - g_task_set_task_data(task, pLOEvent, LOEvent::destroy); - g_thread_pool_push(priv->lokThreadPool, g_object_ref(task), &error); - if (error != nullptr) + if (pEvent->type == GDK_KEY_RELEASE) { - g_warning("Unable to call LOK_POST_KEY: %s", error->message); - g_clear_error(&error); + GTask* task = g_task_new(pDocView, nullptr, nullptr, nullptr); + LOEvent* pLOEvent = new LOEvent(LOK_POST_KEY); + pLOEvent->m_nKeyEvent = LOK_KEYEVENT_KEYUP; + pLOEvent->m_nCharCode = nCharCode; + pLOEvent->m_nKeyCode = nKeyCode; + g_task_set_task_data(task, pLOEvent, LOEvent::destroy); + g_thread_pool_push(priv->lokThreadPool, g_object_ref(task), &error); + if (error != nullptr) + { + g_warning("Unable to call LOK_POST_KEY: %s", error->message); + g_clear_error(&error); + } + g_object_unref(task); + } + else + { + GTask* task = g_task_new(pDocView, nullptr, nullptr, nullptr); + LOEvent* pLOEvent = new LOEvent(LOK_POST_KEY); + pLOEvent->m_nKeyEvent = LOK_KEYEVENT_KEYINPUT; + pLOEvent->m_nCharCode = nCharCode; + pLOEvent->m_nKeyCode = nKeyCode; + g_task_set_task_data(task, pLOEvent, LOEvent::destroy); + g_thread_pool_push(priv->lokThreadPool, g_object_ref(task), &error); + if (error != nullptr) + { + g_warning("Unable to call LOK_POST_KEY: %s", error->message); + g_clear_error(&error); + } + g_object_unref(task); } - g_object_unref(task); return FALSE; } @@ -1413,12 +1426,6 @@ 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()); - break; default: g_assert(false); break; @@ -3215,52 +3222,6 @@ static void lok_doc_view_class_init (LOKDocViewClass* pClass) g_cclosure_marshal_generic, G_TYPE_NONE, 1, G_TYPE_STRING); - - /** - * LOKDocView::dialog-invalidate: - * @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 - */ - doc_view_signals[DIALOG_CHILD] = - g_signal_new("dialog-child", - G_TYPE_FROM_CLASS(pGObjectClass), - G_SIGNAL_RUN_FIRST, - 0, - nullptr, nullptr, - g_cclosure_marshal_generic, - G_TYPE_NONE, 1, - G_TYPE_STRING); } SAL_DLLPUBLIC_EXPORT GtkWidget* |