Blob Blame History Raw
From b4dda1d4bda439d063493d2c6726071f54fc4c55 Mon Sep 17 00:00:00 2001
From: Miklos Vajna <vmiklos@collabora.co.uk>
Date: Wed, 16 Sep 2015 09:22:17 +0200
Subject: [PATCH 138/398] gtktiledviewer: add setupWidgetAndCreateWindow() to
 avoid copy&paste

Change-Id: Ibbbaaa1c148cfd4578ad37e0f99b62ab885a1a83
(cherry picked from commit 855e1bac1d5155352706c7d849942f5dc453c67d)
---
 .../qa/gtktiledviewer/gtktiledviewer.cxx           | 33 +++++++++++++++-------
 1 file changed, 23 insertions(+), 10 deletions(-)

diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
index e32397b133c9..5a18aee50bf3 100644
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
@@ -79,6 +79,7 @@ static std::map<GtkWidget*, TiledWindow> g_aWindows;
 
 static void setupDocView(GtkWidget* pDocView);
 static GtkWidget* createWindow(TiledWindow& rWindow);
+static void openDocumentCallback (GObject* source_object, GAsyncResult* res, gpointer userdata);
 
 static TiledWindow& lcl_getTiledWindow(GtkWidget* pWidget)
 {
@@ -192,17 +193,34 @@ static void toggleFindbar(GtkWidget* pButton, gpointer /*pItem*/)
     }
 }
 
-/// Calls lok::Document::createView().
-static void createView(GtkWidget* pButton, gpointer /*pItem*/)
+/// Common initialization, regardless if it's just a new view or a full init.
+static void setupWidgetAndCreateWindow(GtkWidget* pDocView)
 {
-    TiledWindow& rWindow = lcl_getTiledWindow(pButton);
-    GtkWidget* pDocView = lok_doc_view_new_from_widget(LOK_DOC_VIEW(rWindow.m_pDocView));
     setupDocView(pDocView);
     TiledWindow aWindow;
     aWindow.m_pDocView = pDocView;
     createWindow(aWindow);
 }
 
+/// Creates a new view, i.e. no LOK init or document load.
+static void createView(GtkWidget* pButton, gpointer /*pItem*/)
+{
+    TiledWindow& rWindow = lcl_getTiledWindow(pButton);
+    GtkWidget* pDocView = lok_doc_view_new_from_widget(LOK_DOC_VIEW(rWindow.m_pDocView));
+
+    setupWidgetAndCreateWindow(pDocView);
+}
+
+/// Creates a new model, i.e. LOK init and document load, one view implicitly.
+static void createModelAndView(const char* pLOPath, const char* pDocPath)
+{
+    GtkWidget* pDocView = lok_doc_view_new(pLOPath, 0, 0);
+
+    setupWidgetAndCreateWindow(pDocView);
+
+    lok_doc_view_open_document(LOK_DOC_VIEW(pDocView), pDocPath, 0, openDocumentCallback, pDocView);
+}
+
 /// Our GtkClipboardGetFunc implementation for HTML.
 static void htmlGetFunc(GtkClipboard* /*pClipboard*/, GtkSelectionData* pSelectionData, guint /*info*/, gpointer pUserData)
 {
@@ -750,12 +768,7 @@ int main( int argc, char* argv[] )
 
     gtk_init( &argc, &argv );
 
-    GtkWidget* pDocView = lok_doc_view_new(argv[1], NULL, NULL);
-    setupDocView(pDocView);
-    TiledWindow aWindow;
-    aWindow.m_pDocView = pDocView;
-    createWindow(aWindow);
-    lok_doc_view_open_document(LOK_DOC_VIEW(pDocView), argv[2], NULL, openDocumentCallback, pDocView);
+    createModelAndView(argv[1], argv[2]);
 
     gtk_main();
 
-- 
2.12.0