summaryrefslogtreecommitdiff
path: root/libreofficekit
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-09-16 09:22:17 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-09-21 07:30:19 +0200
commit855e1bac1d5155352706c7d849942f5dc453c67d (patch)
treeea77a19b823c0a43aa6bfe28d52549328d42799b /libreofficekit
parentb3498e9fcdc895853564d13173075bebc7407ef2 (diff)
gtktiledviewer: add setupWidgetAndCreateWindow() to avoid copy&paste
Change-Id: Ibbbaaa1c148cfd4578ad37e0f99b62ab885a1a83
Diffstat (limited to 'libreofficekit')
-rw-r--r--libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx33
1 files changed, 23 insertions, 10 deletions
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
index 74a46499a81a..b16993ba29fd 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)
{
@@ -751,12 +769,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();