|
 |
f325b2 |
From 4b8ba14da9d58594e16c317682897f195349a40c Mon Sep 17 00:00:00 2001
|
|
 |
f325b2 |
From: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
 |
f325b2 |
Date: Tue, 19 Apr 2016 09:09:19 +0200
|
|
 |
f325b2 |
Subject: [PATCH 397/398] tdf#99314 lokdocview: add new userprofileurl property
|
|
 |
f325b2 |
MIME-Version: 1.0
|
|
 |
f325b2 |
Content-Type: text/plain; charset=UTF-8
|
|
 |
f325b2 |
Content-Transfer-Encoding: 8bit
|
|
 |
f325b2 |
|
|
 |
f325b2 |
So that users of the widget can use a custom user profile, allowing
|
|
 |
f325b2 |
running widgets users and LibreOffice in parallel.
|
|
 |
f325b2 |
|
|
 |
f325b2 |
(cherry picked from commit df784ec1bf3d1745a291056df28bec799d4fdee3)
|
|
 |
f325b2 |
|
|
 |
f325b2 |
Conflicts:
|
|
 |
f325b2 |
libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
|
|
 |
f325b2 |
|
|
 |
f325b2 |
Change-Id: I1bd0a8e53aa3216adc721052cf30f0dd174327bd
|
|
 |
f325b2 |
Reviewed-on: https://gerrit.libreoffice.org/24591
|
|
 |
f325b2 |
Tested-by: Jenkins <ci@libreoffice.org>
|
|
 |
f325b2 |
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
 |
f325b2 |
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
 |
f325b2 |
(cherry picked from commit 549f67a85774838abdefdb7916beb0f26e2f9d2c)
|
|
 |
f325b2 |
---
|
|
 |
f325b2 |
include/LibreOfficeKit/LibreOfficeKitGtk.h | 17 ++++++++++
|
|
 |
f325b2 |
.../qa/gtktiledviewer/gtktiledviewer.cxx | 12 +++++--
|
|
 |
f325b2 |
libreofficekit/source/gtk/lokdocview.cxx | 37 +++++++++++++++++++++-
|
|
 |
f325b2 |
3 files changed, 63 insertions(+), 3 deletions(-)
|
|
 |
f325b2 |
|
|
 |
f325b2 |
diff --git a/include/LibreOfficeKit/LibreOfficeKitGtk.h b/include/LibreOfficeKit/LibreOfficeKitGtk.h
|
|
 |
f325b2 |
index 1df27c106214..91e29c83db57 100644
|
|
 |
f325b2 |
--- a/include/LibreOfficeKit/LibreOfficeKitGtk.h
|
|
 |
f325b2 |
+++ b/include/LibreOfficeKit/LibreOfficeKitGtk.h
|
|
 |
f325b2 |
@@ -55,6 +55,23 @@ GtkWidget* lok_doc_view_new (const gchar*
|
|
 |
f325b2 |
GError **error);
|
|
 |
f325b2 |
|
|
 |
f325b2 |
/**
|
|
 |
f325b2 |
+ * lok_doc_view_new_from_user_profile:
|
|
 |
f325b2 |
+ * @pPath: (nullable): LibreOffice install path. Pass null to set it to default
|
|
 |
f325b2 |
+ * path which in most cases would be $libdir/libreoffice/program
|
|
 |
f325b2 |
+ * @pUserProfile: (nullable): User profile URL. Pass non-null to be able to
|
|
 |
f325b2 |
+ * use this widget and LibreOffice itself in parallel.
|
|
 |
f325b2 |
+ * @cancellable: The cancellable object that you can use to cancel this
|
|
 |
f325b2 |
+ * operation.
|
|
 |
f325b2 |
+ * @error: The error that will be set if the object fails to initialize.
|
|
 |
f325b2 |
+ *
|
|
 |
f325b2 |
+ * Returns: (transfer none): The #LOKDocView widget instance.
|
|
 |
f325b2 |
+ */
|
|
 |
f325b2 |
+GtkWidget* lok_doc_view_new_from_user_profile (const gchar* pPath,
|
|
 |
f325b2 |
+ const gchar* pUserProfile,
|
|
 |
f325b2 |
+ GCancellable *cancellable,
|
|
 |
f325b2 |
+ GError **error);
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+/**
|
|
 |
f325b2 |
* lok_doc_view_new_from_widget:
|
|
 |
f325b2 |
* @pDocView: The #LOKDocView instance
|
|
 |
f325b2 |
*
|
|
 |
f325b2 |
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
|
|
 |
f325b2 |
index 3dc9f246f18e..54c9294e5398 100644
|
|
 |
f325b2 |
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
|
|
 |
f325b2 |
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
|
|
 |
f325b2 |
@@ -35,7 +35,7 @@ static int help()
|
|
 |
f325b2 |
fprintf(stderr, "Usage: gtktiledviewer <absolute-path-to-libreoffice-install's-program-directory> <path-to-document> [<options> ... ]\n\n");
|
|
 |
f325b2 |
fprintf(stderr, "Options:\n\n");
|
|
 |
f325b2 |
fprintf(stderr, "--hide-whitespace: Hide whitespace between pages in text documents.\n");
|
|
 |
f325b2 |
- fprintf(stderr, "--background-color <color>: Set custom background color, e.g. 'yellow'.\n");
|
|
 |
f325b2 |
+ fprintf(stderr, "--user-profile: Path to a custom user profile.\n");
|
|
 |
f325b2 |
return 1;
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
|
|
 |
f325b2 |
@@ -497,7 +497,15 @@ static void createView(GtkWidget* pButton, gpointer /*pItem*/)
|
|
 |
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, const std::vector<std::string>& rArguments)
|
|
 |
f325b2 |
{
|
|
 |
f325b2 |
- GtkWidget* pDocView = lok_doc_view_new(pLOPath, nullptr, nullptr);
|
|
 |
f325b2 |
+ std::string aUserProfile;
|
|
 |
f325b2 |
+ for (size_t i = 0; i < rArguments.size(); ++i)
|
|
 |
f325b2 |
+ {
|
|
 |
f325b2 |
+ const std::string& rArgument = rArguments[i];
|
|
 |
f325b2 |
+ if (rArgument == "--user-profile" && i + 1 < rArguments.size())
|
|
 |
f325b2 |
+ aUserProfile = std::string("file://") + rArguments[i + 1].c_str();
|
|
 |
f325b2 |
+ }
|
|
 |
f325b2 |
+ const gchar* pUserProfile = aUserProfile.empty() ? nullptr : aUserProfile.c_str();
|
|
 |
f325b2 |
+ GtkWidget* pDocView = lok_doc_view_new_from_user_profile(pLOPath, pUserProfile, nullptr, nullptr);
|
|
 |
f325b2 |
|
|
 |
f325b2 |
setupWidgetAndCreateWindow(pDocView);
|
|
 |
f325b2 |
|
|
 |
f325b2 |
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
|
|
 |
f325b2 |
index 9f47138bbc37..13ae6ea00e63 100644
|
|
 |
f325b2 |
--- a/libreofficekit/source/gtk/lokdocview.cxx
|
|
 |
f325b2 |
+++ b/libreofficekit/source/gtk/lokdocview.cxx
|
|
 |
f325b2 |
@@ -48,6 +48,7 @@
|
|
 |
f325b2 |
struct LOKDocViewPrivateImpl
|
|
 |
f325b2 |
{
|
|
 |
f325b2 |
const gchar* m_aLOPath;
|
|
 |
f325b2 |
+ const gchar* m_pUserProfileURL;
|
|
 |
f325b2 |
const gchar* m_aDocPath;
|
|
 |
f325b2 |
std::string m_aRenderingArguments;
|
|
 |
f325b2 |
gdouble m_nLoadProgress;
|
|
 |
f325b2 |
@@ -128,6 +129,7 @@ struct LOKDocViewPrivateImpl
|
|
 |
f325b2 |
|
|
 |
f325b2 |
LOKDocViewPrivateImpl()
|
|
 |
f325b2 |
: m_aLOPath(nullptr),
|
|
 |
f325b2 |
+ m_pUserProfileURL(nullptr),
|
|
 |
f325b2 |
m_aDocPath(nullptr),
|
|
 |
f325b2 |
m_nLoadProgress(0),
|
|
 |
f325b2 |
m_bIsLoading(false),
|
|
 |
f325b2 |
@@ -206,6 +208,7 @@ enum
|
|
 |
f325b2 |
|
|
 |
f325b2 |
PROP_LO_PATH,
|
|
 |
f325b2 |
PROP_LO_POINTER,
|
|
 |
f325b2 |
+ PROP_USER_PROFILE_URL,
|
|
 |
f325b2 |
PROP_DOC_PATH,
|
|
 |
f325b2 |
PROP_DOC_POINTER,
|
|
 |
f325b2 |
PROP_EDITABLE,
|
|
 |
f325b2 |
@@ -1932,6 +1935,9 @@ static void lok_doc_view_set_property (GObject* object, guint propId, const GVal
|
|
 |
f325b2 |
case PROP_LO_POINTER:
|
|
 |
f325b2 |
priv->m_pOffice = static_cast<LibreOfficeKit*>(g_value_get_pointer(value));
|
|
 |
f325b2 |
break;
|
|
 |
f325b2 |
+ case PROP_USER_PROFILE_URL:
|
|
 |
f325b2 |
+ priv->m_pUserProfileURL = g_value_dup_string(value);
|
|
 |
f325b2 |
+ break;
|
|
 |
f325b2 |
case PROP_DOC_PATH:
|
|
 |
f325b2 |
priv->m_aDocPath = g_value_dup_string (value);
|
|
 |
f325b2 |
break;
|
|
 |
f325b2 |
@@ -1982,6 +1988,9 @@ static void lok_doc_view_get_property (GObject* object, guint propId, GValue *va
|
|
 |
f325b2 |
case PROP_LO_POINTER:
|
|
 |
f325b2 |
g_value_set_pointer(value, priv->m_pOffice);
|
|
 |
f325b2 |
break;
|
|
 |
f325b2 |
+ case PROP_USER_PROFILE_URL:
|
|
 |
f325b2 |
+ g_value_set_string(value, priv->m_pUserProfileURL);
|
|
 |
f325b2 |
+ break;
|
|
 |
f325b2 |
case PROP_DOC_PATH:
|
|
 |
f325b2 |
g_value_set_string (value, priv->m_aDocPath);
|
|
 |
f325b2 |
break;
|
|
 |
f325b2 |
@@ -2056,7 +2065,7 @@ static gboolean lok_doc_view_initable_init (GInitable *initable, GCancellable* /
|
|
 |
f325b2 |
if (priv->m_pOffice != nullptr)
|
|
 |
f325b2 |
return TRUE;
|
|
 |
f325b2 |
|
|
 |
f325b2 |
- priv->m_pOffice = lok_init (priv->m_aLOPath);
|
|
 |
f325b2 |
+ priv->m_pOffice = lok_init_2(priv->m_aLOPath, priv->m_pUserProfileURL);
|
|
 |
f325b2 |
|
|
 |
f325b2 |
if (priv->m_pOffice == nullptr)
|
|
 |
f325b2 |
{
|
|
 |
f325b2 |
@@ -2120,6 +2129,20 @@ static void lok_doc_view_class_init (LOKDocViewClass* pClass)
|
|
 |
f325b2 |
G_PARAM_STATIC_STRINGS));
|
|
 |
f325b2 |
|
|
 |
f325b2 |
/**
|
|
 |
f325b2 |
+ * LOKDocView:userprofileurl:
|
|
 |
f325b2 |
+ *
|
|
 |
f325b2 |
+ * The absolute path of the LibreOffice user profile.
|
|
 |
f325b2 |
+ */
|
|
 |
f325b2 |
+ properties[PROP_USER_PROFILE_URL] =
|
|
 |
f325b2 |
+ g_param_spec_string("userprofileurl",
|
|
 |
f325b2 |
+ "User profile path",
|
|
 |
f325b2 |
+ "LibreOffice user profile path",
|
|
 |
f325b2 |
+ nullptr,
|
|
 |
f325b2 |
+ static_cast<GParamFlags>(G_PARAM_READWRITE |
|
|
 |
f325b2 |
+ G_PARAM_CONSTRUCT_ONLY |
|
|
 |
f325b2 |
+ G_PARAM_STATIC_STRINGS));
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ /**
|
|
 |
f325b2 |
* LOKDocView:docpath:
|
|
 |
f325b2 |
*
|
|
 |
f325b2 |
* The path of the document that is currently being viewed.
|
|
 |
f325b2 |
@@ -2510,11 +2533,23 @@ lok_doc_view_new (const gchar* pPath, GCancellable *cancellable, GError **error)
|
|
 |
f325b2 |
nullptr));
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
|
|
 |
f325b2 |
+SAL_DLLPUBLIC_EXPORT GtkWidget*
|
|
 |
f325b2 |
+lok_doc_view_new_from_user_profile (const gchar* pPath, const gchar* pUserProfile, GCancellable *cancellable, GError **error)
|
|
 |
f325b2 |
+{
|
|
 |
f325b2 |
+ return GTK_WIDGET(g_initable_new(LOK_TYPE_DOC_VIEW, cancellable, error,
|
|
 |
f325b2 |
+ "lopath", pPath == nullptr ? LOK_PATH : pPath,
|
|
 |
f325b2 |
+ "userprofileurl", pUserProfile,
|
|
 |
f325b2 |
+ "halign", GTK_ALIGN_CENTER,
|
|
 |
f325b2 |
+ "valign", GTK_ALIGN_CENTER,
|
|
 |
f325b2 |
+ nullptr));
|
|
 |
f325b2 |
+}
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
SAL_DLLPUBLIC_EXPORT GtkWidget* lok_doc_view_new_from_widget(LOKDocView* pOldLOKDocView)
|
|
 |
f325b2 |
{
|
|
 |
f325b2 |
LOKDocViewPrivate& pOldPriv = getPrivate(pOldLOKDocView);
|
|
 |
f325b2 |
GtkWidget* pNewDocView = GTK_WIDGET(g_initable_new(LOK_TYPE_DOC_VIEW, /*cancellable=*/nullptr, /*error=*/nullptr,
|
|
 |
f325b2 |
"lopath", pOldPriv->m_aLOPath,
|
|
 |
f325b2 |
+ "userprofileurl", pOldPriv->m_pUserProfileURL,
|
|
 |
f325b2 |
"lopointer", pOldPriv->m_pOffice,
|
|
 |
f325b2 |
"docpointer", pOldPriv->m_pDocument,
|
|
 |
f325b2 |
"halign", GTK_ALIGN_CENTER,
|
|
 |
f325b2 |
--
|
|
 |
f325b2 |
2.12.0
|
|
 |
f325b2 |
|