summaryrefslogtreecommitdiff
path: root/libreofficekit
diff options
context:
space:
mode:
authorPranav Kant <pranavk@collabora.co.uk>2017-02-15 15:49:41 +0530
committerAndras Timar <andras.timar@collabora.com>2017-02-18 00:54:40 +0100
commit22847581b0b84def9ee3ca5020c08c9faf1643dc (patch)
treed9c33d66ad2afc8540fd7628b9848369c9460554 /libreofficekit
parent21c545a23f1dc33f4e18a6dc6b9d8a5d86cc6e4f (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.cxx36
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);
}
/**