summaryrefslogtreecommitdiff
path: root/libreofficekit
diff options
context:
space:
mode:
authorPranav Kant <pranavk@gnome.org>2015-06-10 16:10:19 +0530
committerAshod Nakashian <ashod.nakashian@collabora.co.uk>2016-02-07 21:03:05 -0500
commitf54202677623991ef2c7771c0818c94b471ded4c (patch)
treecc464888fb029225e035988ec0cc56a5dfac2d08 /libreofficekit
parent4ba751ddec8b71bb49d04a2c8edc59ff5fda9dcf (diff)
lokdocview: Create LOK context inside of lok_doc_view_new
Change-Id: I675192d6bd6d10e6c7974a5de6f488f9a087ac32 (cherry picked from commit 7a9dc7fd35168e1f44fb0aa23c984f90163db621)
Diffstat (limited to 'libreofficekit')
-rw-r--r--libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx15
-rw-r--r--libreofficekit/source/gtk/lokdocview.cxx14
2 files changed, 14 insertions, 15 deletions
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
index 902eeb2c96f7..a04460a32e51 100644
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
@@ -19,7 +19,6 @@
#include <gtk/gtk.h>
#include <LibreOfficeKit/LibreOfficeKitGtk.h>
-#include <LibreOfficeKit/LibreOfficeKitInit.h>
#include <LibreOfficeKit/LibreOfficeKitEnums.h>
#ifndef g_info
@@ -53,8 +52,6 @@ GtkWidget* pFindbar;
GtkWidget* pFindbarEntry;
GtkWidget* pFindbarLabel;
-static LibreOfficeKit* pOffice;
-
static void lcl_registerToolItem(GtkToolItem* pItem, const std::string& rName)
{
g_aToolItemCommandNames[pItem] = rName;
@@ -368,10 +365,6 @@ int main( int argc, char* argv[] )
return 1;
}
- pOffice = lok_init( argv[1] );
- if ( pOffice == NULL )
- return 1;
-
gtk_init( &argc, &argv );
GtkWidget *pWindow = gtk_window_new( GTK_WINDOW_TOPLEVEL );
@@ -476,7 +469,9 @@ int main( int argc, char* argv[] )
gtk_box_pack_end(GTK_BOX(pVBox), pFindbar, FALSE, FALSE, 0);
// Docview
- pDocView = lok_doc_view_new( pOffice );
+ pDocView = lok_doc_view_new(argv[1]);
+ if (pDocView == NULL)
+ g_error ("Error while creating LOKDocView widget");
g_signal_connect(pDocView, "edit-changed", G_CALLBACK(signalEdit), NULL);
g_signal_connect(pDocView, "command-changed", G_CALLBACK(signalCommand), NULL);
g_signal_connect(pDocView, "search-not-found", G_CALLBACK(signalSearch), NULL);
@@ -502,7 +497,7 @@ int main( int argc, char* argv[] )
int bOpened = lok_doc_view_open_document( LOK_DOC_VIEW(pDocView), argv[2] );
if (!bOpened)
- g_error("main: lok_doc_view_open_document() failed with '%s'", pOffice->pClass->getError(pOffice));
+ g_error("main: lok_doc_view_open_document() failed");
assert(lok_doc_view_get_document(LOK_DOC_VIEW(pDocView)));
// GtkComboBox requires gtk 2.24 or later
@@ -517,8 +512,6 @@ int main( int argc, char* argv[] )
gtk_main();
- pOffice->pClass->destroy( pOffice );
-
return 0;
}
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index b2708a3ad5bd..dc16af5b87d9 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -18,6 +18,7 @@
#include <com/sun/star/awt/Key.hpp>
#define LOK_USE_UNSTABLE_API
#include <LibreOfficeKit/LibreOfficeKit.h>
+#include <LibreOfficeKit/LibreOfficeKitInit.h>
#include <LibreOfficeKit/LibreOfficeKitEnums.h>
#include <LibreOfficeKit/LibreOfficeKitGtk.h>
#include <rsc/rsc-vcl-shared-types.hxx>
@@ -297,7 +298,10 @@ LOKDocView_Impl::~LOKDocView_Impl()
{
if (m_pDocument)
m_pDocument->pClass->destroy(m_pDocument);
+ if (m_pOffice)
+ m_pOffice->pClass->destroy(m_pOffice);
m_pDocument = 0;
+ m_pOffice = 0;
}
void LOKDocView_Impl::destroy(LOKDocView* pDocView, gpointer /*pData*/)
@@ -1210,14 +1214,16 @@ static void lok_doc_view_init (LOKDocView* pDocView)
/**
* lok_doc_view_new:
- * @pOffice: The LibreOfficeKit context.
+ * @pPath: LibreOffice install path.
*
* Returns: The #LOKDocView widget instance.
*/
-SAL_DLLPUBLIC_EXPORT GtkWidget* lok_doc_view_new( LibreOfficeKit* pOffice )
+SAL_DLLPUBLIC_EXPORT GtkWidget* lok_doc_view_new(const char* pPath)
{
- LOKDocView* pDocView = LOK_DOC_VIEW(gtk_type_new(lok_doc_view_get_type()));
- pDocView->m_pImpl->m_pOffice = pOffice;
+ LOKDocView* pDocView = LOK_DOC_VIEW(g_object_new(LOK_TYPE_DOC_VIEW, NULL));
+ pDocView->m_pImpl->m_pOffice = lok_init (pPath);
+ if (pDocView->m_pImpl->m_pOffice == NULL)
+ return NULL;
return GTK_WIDGET( pDocView );
}