diff options
author | Pranav Kant <pranavk@collabora.co.uk> | 2017-02-15 15:49:41 +0530 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2017-02-18 00:54:40 +0100 |
commit | 22847581b0b84def9ee3ca5020c08c9faf1643dc (patch) | |
tree | d9c33d66ad2afc8540fd7628b9848369c9460554 /libreofficekit | |
parent | 21c545a23f1dc33f4e18a6dc6b9d8a5d86cc6e4f (diff) |
gtktiledviewer: Factor out per view code to separate function
This code (populating part selector, part mode selector etc.) is something
that needs to be executed for each view, not just the view that makes
open_document call. Put all such code in initWindow function from now.
Change-Id: Ibf9b12adb156258aa3cfdf959fffb541a88da529
(cherry picked from commit 786107e674877478b8c7fdc4e6b545c44ac6b6ac)
Diffstat (limited to 'libreofficekit')
-rw-r--r-- | libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx index e24a63a283af..1867a5465306 100644 --- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx @@ -220,6 +220,10 @@ static void signalSize(LOKDocView* pLOKDocView, gpointer pData); static void changePartMode( GtkWidget* pSelector, gpointer /*pItem*/); /// Handler for m_pPartSelector. static void changePart( GtkWidget* pSelector, gpointer /*pItem*/ ); +/// Part selector populator +static void populatePartSelector(LOKDocView* pLOKDocView); +/// Part mode selector populator +static void populatePartModeSelector( GtkComboBoxText* pSelector ); static TiledWindow& lcl_getTiledWindow(GtkWidget* pWidget) { @@ -1126,6 +1130,24 @@ static void registerSelectorHandlers(TiledWindow& rWindow) g_signal_connect(G_OBJECT(rWindow.m_pPartSelector), "changed", G_CALLBACK(changePart), 0); } +/// Helper function to do some tasks after widget is fully loaded (including +/// document load) +static void initWindow(TiledWindow& rWindow) +{ + populatePartSelector(LOK_DOC_VIEW(rWindow.m_pDocView)); + populatePartModeSelector( GTK_COMBO_BOX_TEXT(rWindow.m_pPartModeComboBox) ); + registerSelectorHandlers(rWindow); + + GList *focusChain = nullptr; + focusChain = g_list_append( focusChain, rWindow.m_pDocView ); + gtk_container_set_focus_chain ( GTK_CONTAINER (rWindow.m_pVBox), focusChain ); + + gtk_widget_show_all(rWindow.m_pStatusBar); + gtk_widget_hide(rWindow.m_pProgressBar); + + gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(rWindow.m_pEnableEditing), TRUE); +} + /// Creates a new view, i.e. no LOK init or document load. static void createView(GtkWidget* pButton, gpointer /*pItem*/) { @@ -1143,6 +1165,7 @@ static void createView(GtkWidget* pButton, gpointer /*pItem*/) gboolean bTiledAnnotations; g_object_get(G_OBJECT(rWindow.m_pDocView), "tiled-annotations", &bTiledAnnotations, nullptr); TiledWindow& rNewWindow = setupWidgetAndCreateWindow(pDocView, bTiledAnnotations); + initWindow(rNewWindow); // Hide the unused progress bar. gtk_widget_show_all(rNewWindow.m_pStatusBar); gtk_widget_hide(rNewWindow.m_pProgressBar); @@ -1756,7 +1779,6 @@ static void openDocumentCallback (GObject* source_object, GAsyncResult* res, gpo LOKDocView* pDocView = LOK_DOC_VIEW (source_object); TiledWindow& rWindow = lcl_getTiledWindow(GTK_WIDGET(pDocView)); GError* error = nullptr; - GList *focusChain = nullptr; if (!lok_doc_view_open_document_finish(pDocView, res, &error)) { @@ -1786,17 +1808,7 @@ static void openDocumentCallback (GObject* source_object, GAsyncResult* res, gpo gtk_widget_set_valign(GTK_WIDGET(pDocView), GTK_ALIGN_START); } - populatePartSelector(pDocView); - populatePartModeSelector( GTK_COMBO_BOX_TEXT(rWindow.m_pPartModeComboBox) ); - registerSelectorHandlers(rWindow); - - focusChain = g_list_append( focusChain, pDocView ); - gtk_container_set_focus_chain ( GTK_CONTAINER (rWindow.m_pVBox), focusChain ); - - gtk_widget_show_all(rWindow.m_pStatusBar); - gtk_widget_hide(rWindow.m_pProgressBar); - - gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(rWindow.m_pEnableEditing), TRUE); + initWindow(rWindow); } /** |