Blame SOURCES/0138-gtktiledviewer-add-setupWidgetAndCreateWindow-to-avo.patch

f325b2
From b4dda1d4bda439d063493d2c6726071f54fc4c55 Mon Sep 17 00:00:00 2001
f325b2
From: Miklos Vajna <vmiklos@collabora.co.uk>
f325b2
Date: Wed, 16 Sep 2015 09:22:17 +0200
f325b2
Subject: [PATCH 138/398] gtktiledviewer: add setupWidgetAndCreateWindow() to
f325b2
 avoid copy&paste
f325b2
f325b2
Change-Id: Ibbbaaa1c148cfd4578ad37e0f99b62ab885a1a83
f325b2
(cherry picked from commit 855e1bac1d5155352706c7d849942f5dc453c67d)
f325b2
---
f325b2
 .../qa/gtktiledviewer/gtktiledviewer.cxx           | 33 +++++++++++++++-------
f325b2
 1 file changed, 23 insertions(+), 10 deletions(-)
f325b2
f325b2
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
f325b2
index e32397b133c9..5a18aee50bf3 100644
f325b2
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
f325b2
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
f325b2
@@ -79,6 +79,7 @@ static std::map<GtkWidget*, TiledWindow> g_aWindows;
f325b2
 
f325b2
 static void setupDocView(GtkWidget* pDocView);
f325b2
 static GtkWidget* createWindow(TiledWindow& rWindow);
f325b2
+static void openDocumentCallback (GObject* source_object, GAsyncResult* res, gpointer userdata);
f325b2
 
f325b2
 static TiledWindow& lcl_getTiledWindow(GtkWidget* pWidget)
f325b2
 {
f325b2
@@ -192,17 +193,34 @@ static void toggleFindbar(GtkWidget* pButton, gpointer /*pItem*/)
f325b2
     }
f325b2
 }
f325b2
 
f325b2
-/// Calls lok::Document::createView().
f325b2
-static void createView(GtkWidget* pButton, gpointer /*pItem*/)
f325b2
+/// Common initialization, regardless if it's just a new view or a full init.
f325b2
+static void setupWidgetAndCreateWindow(GtkWidget* pDocView)
f325b2
 {
f325b2
-    TiledWindow& rWindow = lcl_getTiledWindow(pButton);
f325b2
-    GtkWidget* pDocView = lok_doc_view_new_from_widget(LOK_DOC_VIEW(rWindow.m_pDocView));
f325b2
     setupDocView(pDocView);
f325b2
     TiledWindow aWindow;
f325b2
     aWindow.m_pDocView = pDocView;
f325b2
     createWindow(aWindow);
f325b2
 }
f325b2
 
f325b2
+/// Creates a new view, i.e. no LOK init or document load.
f325b2
+static void createView(GtkWidget* pButton, gpointer /*pItem*/)
f325b2
+{
f325b2
+    TiledWindow& rWindow = lcl_getTiledWindow(pButton);
f325b2
+    GtkWidget* pDocView = lok_doc_view_new_from_widget(LOK_DOC_VIEW(rWindow.m_pDocView));
f325b2
+
f325b2
+    setupWidgetAndCreateWindow(pDocView);
f325b2
+}
f325b2
+
f325b2
+/// Creates a new model, i.e. LOK init and document load, one view implicitly.
f325b2
+static void createModelAndView(const char* pLOPath, const char* pDocPath)
f325b2
+{
f325b2
+    GtkWidget* pDocView = lok_doc_view_new(pLOPath, 0, 0);
f325b2
+
f325b2
+    setupWidgetAndCreateWindow(pDocView);
f325b2
+
f325b2
+    lok_doc_view_open_document(LOK_DOC_VIEW(pDocView), pDocPath, 0, openDocumentCallback, pDocView);
f325b2
+}
f325b2
+
f325b2
 /// Our GtkClipboardGetFunc implementation for HTML.
f325b2
 static void htmlGetFunc(GtkClipboard* /*pClipboard*/, GtkSelectionData* pSelectionData, guint /*info*/, gpointer pUserData)
f325b2
 {
f325b2
@@ -750,12 +768,7 @@ int main( int argc, char* argv[] )
f325b2
 
f325b2
     gtk_init( &argc, &argv );
f325b2
 
f325b2
-    GtkWidget* pDocView = lok_doc_view_new(argv[1], NULL, NULL);
f325b2
-    setupDocView(pDocView);
f325b2
-    TiledWindow aWindow;
f325b2
-    aWindow.m_pDocView = pDocView;
f325b2
-    createWindow(aWindow);
f325b2
-    lok_doc_view_open_document(LOK_DOC_VIEW(pDocView), argv[2], NULL, openDocumentCallback, pDocView);
f325b2
+    createModelAndView(argv[1], argv[2]);
f325b2
 
f325b2
     gtk_main();
f325b2
 
f325b2
-- 
f325b2
2.12.0
f325b2