|
 |
f325b2 |
From 5a4d9a54a05efee6cb004b41207e53b6eadbd1a8 Mon Sep 17 00:00:00 2001
|
|
 |
f325b2 |
From: Pranav Kant <pranavk@libreoffice.org>
|
|
 |
f325b2 |
Date: Fri, 18 Dec 2015 21:51:23 +0530
|
|
 |
f325b2 |
Subject: [PATCH 382/398] lokdocview: Use an array to install properties
|
|
 |
f325b2 |
|
|
 |
f325b2 |
This way we can directly reference any property by pointers to
|
|
 |
f325b2 |
GParamSpec stored in a static array, rather than looking for
|
|
 |
f325b2 |
property using property name. The former is a faster approach.
|
|
 |
f325b2 |
|
|
 |
f325b2 |
This will come in handy for functions, such as, g_object_notify
|
|
 |
f325b2 |
which needs to access properties to notify the object of any
|
|
 |
f325b2 |
property change in a faster way.
|
|
 |
f325b2 |
|
|
 |
f325b2 |
Change-Id: Ic4087bff3bdb63a3e8853d158c7af688e5e67811
|
|
 |
f325b2 |
Reviewed-on: https://gerrit.libreoffice.org/20797
|
|
 |
f325b2 |
Tested-by: Jenkins <ci@libreoffice.org>
|
|
 |
f325b2 |
Reviewed-by: David Tardon <dtardon@redhat.com>
|
|
 |
f325b2 |
Tested-by: David Tardon <dtardon@redhat.com>
|
|
 |
f325b2 |
(cherry picked from commit 81f31f5151b54899ac5461c9c7c4021cdf31a9a6)
|
|
 |
f325b2 |
Reviewed-on: https://gerrit.libreoffice.org/21272
|
|
 |
f325b2 |
Reviewed-by: Pranav Kant <pranavk@gnome.org>
|
|
 |
f325b2 |
(cherry picked from commit 09c73ad5b1462161b855bf3d43a3d86a3ee28659)
|
|
 |
f325b2 |
---
|
|
 |
f325b2 |
libreofficekit/source/gtk/lokdocview.cxx | 187 +++++++++++++++----------------
|
|
 |
f325b2 |
1 file changed, 90 insertions(+), 97 deletions(-)
|
|
 |
f325b2 |
|
|
 |
f325b2 |
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
|
|
 |
f325b2 |
index 4d2842005f37..07e5f993b79b 100644
|
|
 |
f325b2 |
--- a/libreofficekit/source/gtk/lokdocview.cxx
|
|
 |
f325b2 |
+++ b/libreofficekit/source/gtk/lokdocview.cxx
|
|
 |
f325b2 |
@@ -206,10 +206,13 @@ enum
|
|
 |
f325b2 |
PROP_DOC_WIDTH,
|
|
 |
f325b2 |
PROP_DOC_HEIGHT,
|
|
 |
f325b2 |
PROP_CAN_ZOOM_IN,
|
|
 |
f325b2 |
- PROP_CAN_ZOOM_OUT
|
|
 |
f325b2 |
+ PROP_CAN_ZOOM_OUT,
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ PROP_LAST
|
|
 |
f325b2 |
};
|
|
 |
f325b2 |
|
|
 |
f325b2 |
static guint doc_view_signals[LAST_SIGNAL] = { 0 };
|
|
 |
f325b2 |
+static GParamSpec *properties[PROP_LAST] = { nullptr };
|
|
 |
f325b2 |
|
|
 |
f325b2 |
static void lok_doc_view_initable_iface_init (GInitableIface *iface);
|
|
 |
f325b2 |
static void callbackWorker (int nType, const char* pPayload, void* pData);
|
|
 |
f325b2 |
@@ -2046,15 +2049,14 @@ static void lok_doc_view_class_init (LOKDocViewClass* pClass)
|
|
 |
f325b2 |
*
|
|
 |
f325b2 |
* The absolute path of the LibreOffice install.
|
|
 |
f325b2 |
*/
|
|
 |
f325b2 |
- g_object_class_install_property (pGObjectClass,
|
|
 |
f325b2 |
- PROP_LO_PATH,
|
|
 |
f325b2 |
- g_param_spec_string("lopath",
|
|
 |
f325b2 |
- "LO Path",
|
|
 |
f325b2 |
- "LibreOffice Install Path",
|
|
 |
f325b2 |
- nullptr,
|
|
 |
f325b2 |
- static_cast<GParamFlags>(G_PARAM_READWRITE |
|
|
 |
f325b2 |
- G_PARAM_CONSTRUCT_ONLY |
|
|
 |
f325b2 |
- G_PARAM_STATIC_STRINGS)));
|
|
 |
f325b2 |
+ properties[PROP_LO_PATH] =
|
|
 |
f325b2 |
+ g_param_spec_string("lopath",
|
|
 |
f325b2 |
+ "LO Path",
|
|
 |
f325b2 |
+ "LibreOffice Install Path",
|
|
 |
f325b2 |
+ nullptr,
|
|
 |
f325b2 |
+ static_cast<GParamFlags>(G_PARAM_READWRITE |
|
|
 |
f325b2 |
+ G_PARAM_CONSTRUCT_ONLY |
|
|
 |
f325b2 |
+ G_PARAM_STATIC_STRINGS));
|
|
 |
f325b2 |
|
|
 |
f325b2 |
/**
|
|
 |
f325b2 |
* LOKDocView:lopointer:
|
|
 |
f325b2 |
@@ -2062,28 +2064,26 @@ static void lok_doc_view_class_init (LOKDocViewClass* pClass)
|
|
 |
f325b2 |
* A LibreOfficeKit* in case lok_init() is already called
|
|
 |
f325b2 |
* previously.
|
|
 |
f325b2 |
*/
|
|
 |
f325b2 |
- g_object_class_install_property (pGObjectClass,
|
|
 |
f325b2 |
- PROP_LO_POINTER,
|
|
 |
f325b2 |
- g_param_spec_pointer("lopointer",
|
|
 |
f325b2 |
- "LO Pointer",
|
|
 |
f325b2 |
- "A LibreOfficeKit* from lok_init()",
|
|
 |
f325b2 |
- static_cast<GParamFlags>(G_PARAM_READWRITE |
|
|
 |
f325b2 |
- G_PARAM_CONSTRUCT_ONLY |
|
|
 |
f325b2 |
- G_PARAM_STATIC_STRINGS)));
|
|
 |
f325b2 |
+ properties[PROP_LO_POINTER] =
|
|
 |
f325b2 |
+ g_param_spec_pointer("lopointer",
|
|
 |
f325b2 |
+ "LO Pointer",
|
|
 |
f325b2 |
+ "A LibreOfficeKit* from lok_init()",
|
|
 |
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 |
*/
|
|
 |
f325b2 |
- g_object_class_install_property (pGObjectClass,
|
|
 |
f325b2 |
- PROP_DOC_PATH,
|
|
 |
f325b2 |
- g_param_spec_string("docpath",
|
|
 |
f325b2 |
- "Document Path",
|
|
 |
f325b2 |
- "The URI of the document to open",
|
|
 |
f325b2 |
- nullptr,
|
|
 |
f325b2 |
- static_cast<GParamFlags>(G_PARAM_READWRITE |
|
|
 |
f325b2 |
- G_PARAM_STATIC_STRINGS)));
|
|
 |
f325b2 |
+ properties[PROP_DOC_PATH] =
|
|
 |
f325b2 |
+ g_param_spec_string("docpath",
|
|
 |
f325b2 |
+ "Document Path",
|
|
 |
f325b2 |
+ "The URI of the document to open",
|
|
 |
f325b2 |
+ nullptr,
|
|
 |
f325b2 |
+ static_cast<GParamFlags>(G_PARAM_READWRITE |
|
|
 |
f325b2 |
+ G_PARAM_STATIC_STRINGS));
|
|
 |
f325b2 |
|
|
 |
f325b2 |
/**
|
|
 |
f325b2 |
* LOKDocView:docpointer:
|
|
 |
f325b2 |
@@ -2091,27 +2091,25 @@ static void lok_doc_view_class_init (LOKDocViewClass* pClass)
|
|
 |
f325b2 |
* A LibreOfficeKitDocument* in case documentLoad() is already called
|
|
 |
f325b2 |
* previously.
|
|
 |
f325b2 |
*/
|
|
 |
f325b2 |
- g_object_class_install_property (pGObjectClass,
|
|
 |
f325b2 |
- PROP_DOC_POINTER,
|
|
 |
f325b2 |
- g_param_spec_pointer("docpointer",
|
|
 |
f325b2 |
- "Document Pointer",
|
|
 |
f325b2 |
- "A LibreOfficeKitDocument* from documentLoad()",
|
|
 |
f325b2 |
- static_cast<GParamFlags>(G_PARAM_READWRITE |
|
|
 |
f325b2 |
- G_PARAM_STATIC_STRINGS)));
|
|
 |
f325b2 |
+ properties[PROP_DOC_POINTER] =
|
|
 |
f325b2 |
+ g_param_spec_pointer("docpointer",
|
|
 |
f325b2 |
+ "Document Pointer",
|
|
 |
f325b2 |
+ "A LibreOfficeKitDocument* from documentLoad()",
|
|
 |
f325b2 |
+ static_cast<GParamFlags>(G_PARAM_READWRITE |
|
|
 |
f325b2 |
+ G_PARAM_STATIC_STRINGS));
|
|
 |
f325b2 |
|
|
 |
f325b2 |
/**
|
|
 |
f325b2 |
* LOKDocView:editable:
|
|
 |
f325b2 |
*
|
|
 |
f325b2 |
* Whether the document loaded inside of #LOKDocView is editable or not.
|
|
 |
f325b2 |
*/
|
|
 |
f325b2 |
- g_object_class_install_property (pGObjectClass,
|
|
 |
f325b2 |
- PROP_EDITABLE,
|
|
 |
f325b2 |
- g_param_spec_boolean("editable",
|
|
 |
f325b2 |
- "Editable",
|
|
 |
f325b2 |
- "Whether the content is in edit mode or not",
|
|
 |
f325b2 |
- FALSE,
|
|
 |
f325b2 |
- static_cast<GParamFlags>(G_PARAM_READWRITE |
|
|
 |
f325b2 |
- G_PARAM_STATIC_STRINGS)));
|
|
 |
f325b2 |
+ properties[PROP_EDITABLE] =
|
|
 |
f325b2 |
+ g_param_spec_boolean("editable",
|
|
 |
f325b2 |
+ "Editable",
|
|
 |
f325b2 |
+ "Whether the content is in edit mode or not",
|
|
 |
f325b2 |
+ FALSE,
|
|
 |
f325b2 |
+ static_cast<GParamFlags>(G_PARAM_READWRITE |
|
|
 |
f325b2 |
+ G_PARAM_STATIC_STRINGS));
|
|
 |
f325b2 |
|
|
 |
f325b2 |
/**
|
|
 |
f325b2 |
* LOKDocView:load-progress:
|
|
 |
f325b2 |
@@ -2121,14 +2119,13 @@ static void lok_doc_view_class_init (LOKDocViewClass* pClass)
|
|
 |
f325b2 |
* very accurate progress indicator, and its value might reset it couple of
|
|
 |
f325b2 |
* times to 0 and start again. You should not rely on its numbers.
|
|
 |
f325b2 |
*/
|
|
 |
f325b2 |
- g_object_class_install_property (pGObjectClass,
|
|
 |
f325b2 |
- PROP_LOAD_PROGRESS,
|
|
 |
f325b2 |
- g_param_spec_double("load-progress",
|
|
 |
f325b2 |
- "Estimated Load Progress",
|
|
 |
f325b2 |
- "Shows the progress of the document load operation",
|
|
 |
f325b2 |
- 0.0, 1.0, 0.0,
|
|
 |
f325b2 |
- static_cast<GParamFlags>(G_PARAM_READABLE |
|
|
 |
f325b2 |
- G_PARAM_STATIC_STRINGS)));
|
|
 |
f325b2 |
+ properties[PROP_LOAD_PROGRESS] =
|
|
 |
f325b2 |
+ g_param_spec_double("load-progress",
|
|
 |
f325b2 |
+ "Estimated Load Progress",
|
|
 |
f325b2 |
+ "Shows the progress of the document load operation",
|
|
 |
f325b2 |
+ 0.0, 1.0, 0.0,
|
|
 |
f325b2 |
+ static_cast<GParamFlags>(G_PARAM_READABLE |
|
|
 |
f325b2 |
+ G_PARAM_STATIC_STRINGS));
|
|
 |
f325b2 |
|
|
 |
f325b2 |
/**
|
|
 |
f325b2 |
* LOKDocView:zoom-level:
|
|
 |
f325b2 |
@@ -2136,14 +2133,13 @@ static void lok_doc_view_class_init (LOKDocViewClass* pClass)
|
|
 |
f325b2 |
* The current zoom level of the document loaded inside #LOKDocView. The
|
|
 |
f325b2 |
* default value is 1.0.
|
|
 |
f325b2 |
*/
|
|
 |
f325b2 |
- g_object_class_install_property (pGObjectClass,
|
|
 |
f325b2 |
- PROP_ZOOM,
|
|
 |
f325b2 |
- g_param_spec_float("zoom-level",
|
|
 |
f325b2 |
- "Zoom Level",
|
|
 |
f325b2 |
- "The current zoom level of the content",
|
|
 |
f325b2 |
- 0, 5.0, 1.0,
|
|
 |
f325b2 |
- static_cast<GParamFlags>(G_PARAM_READWRITE |
|
|
 |
f325b2 |
- G_PARAM_STATIC_STRINGS)));
|
|
 |
f325b2 |
+ properties[PROP_ZOOM] =
|
|
 |
f325b2 |
+ g_param_spec_float("zoom-level",
|
|
 |
f325b2 |
+ "Zoom Level",
|
|
 |
f325b2 |
+ "The current zoom level of the content",
|
|
 |
f325b2 |
+ 0, 5.0, 1.0,
|
|
 |
f325b2 |
+ static_cast<GParamFlags>(G_PARAM_READWRITE |
|
|
 |
f325b2 |
+ G_PARAM_STATIC_STRINGS));
|
|
 |
f325b2 |
|
|
 |
f325b2 |
/**
|
|
 |
f325b2 |
* LOKDocView:is-loading:
|
|
 |
f325b2 |
@@ -2151,70 +2147,67 @@ static void lok_doc_view_class_init (LOKDocViewClass* pClass)
|
|
 |
f325b2 |
* Whether the requested document is being loaded or not. %TRUE if it is
|
|
 |
f325b2 |
* being loaded, otherwise %FALSE.
|
|
 |
f325b2 |
*/
|
|
 |
f325b2 |
- g_object_class_install_property (pGObjectClass,
|
|
 |
f325b2 |
- PROP_IS_LOADING,
|
|
 |
f325b2 |
- g_param_spec_boolean("is-loading",
|
|
 |
f325b2 |
- "Is Loading",
|
|
 |
f325b2 |
- "Whether the view is loading a document",
|
|
 |
f325b2 |
- FALSE,
|
|
 |
f325b2 |
- static_cast<GParamFlags>(G_PARAM_READABLE |
|
|
 |
f325b2 |
- G_PARAM_STATIC_STRINGS)));
|
|
 |
f325b2 |
+ properties[PROP_IS_LOADING] =
|
|
 |
f325b2 |
+ g_param_spec_boolean("is-loading",
|
|
 |
f325b2 |
+ "Is Loading",
|
|
 |
f325b2 |
+ "Whether the view is loading a document",
|
|
 |
f325b2 |
+ FALSE,
|
|
 |
f325b2 |
+ static_cast<GParamFlags>(G_PARAM_READABLE |
|
|
 |
f325b2 |
+ G_PARAM_STATIC_STRINGS));
|
|
 |
f325b2 |
|
|
 |
f325b2 |
/**
|
|
 |
f325b2 |
* LOKDocView:doc-width:
|
|
 |
f325b2 |
*
|
|
 |
f325b2 |
* The width of the currently loaded document in #LOKDocView in twips.
|
|
 |
f325b2 |
*/
|
|
 |
f325b2 |
- g_object_class_install_property (pGObjectClass,
|
|
 |
f325b2 |
- PROP_DOC_WIDTH,
|
|
 |
f325b2 |
- g_param_spec_long("doc-width",
|
|
 |
f325b2 |
- "Document Width",
|
|
 |
f325b2 |
- "Width of the document in twips",
|
|
 |
f325b2 |
- 0, G_MAXLONG, 0,
|
|
 |
f325b2 |
- static_cast<GParamFlags>(G_PARAM_READWRITE |
|
|
 |
f325b2 |
- G_PARAM_STATIC_STRINGS)));
|
|
 |
f325b2 |
+ properties[PROP_DOC_WIDTH] =
|
|
 |
f325b2 |
+ g_param_spec_long("doc-width",
|
|
 |
f325b2 |
+ "Document Width",
|
|
 |
f325b2 |
+ "Width of the document in twips",
|
|
 |
f325b2 |
+ 0, G_MAXLONG, 0,
|
|
 |
f325b2 |
+ static_cast<GParamFlags>(G_PARAM_READWRITE |
|
|
 |
f325b2 |
+ G_PARAM_STATIC_STRINGS));
|
|
 |
f325b2 |
|
|
 |
f325b2 |
/**
|
|
 |
f325b2 |
* LOKDocView:doc-height:
|
|
 |
f325b2 |
*
|
|
 |
f325b2 |
* The height of the currently loaded document in #LOKDocView in twips.
|
|
 |
f325b2 |
*/
|
|
 |
f325b2 |
- g_object_class_install_property (pGObjectClass,
|
|
 |
f325b2 |
- PROP_DOC_HEIGHT,
|
|
 |
f325b2 |
- g_param_spec_long("doc-height",
|
|
 |
f325b2 |
- "Document Height",
|
|
 |
f325b2 |
- "Height of the document in twips",
|
|
 |
f325b2 |
- 0, G_MAXLONG, 0,
|
|
 |
f325b2 |
- static_cast<GParamFlags>(G_PARAM_READWRITE |
|
|
 |
f325b2 |
- G_PARAM_STATIC_STRINGS)));
|
|
 |
f325b2 |
+ properties[PROP_DOC_HEIGHT] =
|
|
 |
f325b2 |
+ g_param_spec_long("doc-height",
|
|
 |
f325b2 |
+ "Document Height",
|
|
 |
f325b2 |
+ "Height of the document in twips",
|
|
 |
f325b2 |
+ 0, G_MAXLONG, 0,
|
|
 |
f325b2 |
+ static_cast<GParamFlags>(G_PARAM_READWRITE |
|
|
 |
f325b2 |
+ G_PARAM_STATIC_STRINGS));
|
|
 |
f325b2 |
|
|
 |
f325b2 |
/**
|
|
 |
f325b2 |
* LOKDocView:can-zoom-in:
|
|
 |
f325b2 |
*
|
|
 |
f325b2 |
* It tells whether the view can further be zoomed in or not.
|
|
 |
f325b2 |
*/
|
|
 |
f325b2 |
- g_object_class_install_property (pGObjectClass,
|
|
 |
f325b2 |
- PROP_CAN_ZOOM_IN,
|
|
 |
f325b2 |
- g_param_spec_boolean("can-zoom-in",
|
|
 |
f325b2 |
- "Can Zoom In",
|
|
 |
f325b2 |
- "Whether the view can be zoomed in further",
|
|
 |
f325b2 |
- TRUE,
|
|
 |
f325b2 |
- static_cast<GParamFlags>(G_PARAM_READABLE
|
|
 |
f325b2 |
- | G_PARAM_STATIC_STRINGS)));
|
|
 |
f325b2 |
+ properties[PROP_CAN_ZOOM_IN] =
|
|
 |
f325b2 |
+ g_param_spec_boolean("can-zoom-in",
|
|
 |
f325b2 |
+ "Can Zoom In",
|
|
 |
f325b2 |
+ "Whether the view can be zoomed in further",
|
|
 |
f325b2 |
+ TRUE,
|
|
 |
f325b2 |
+ static_cast<GParamFlags>(G_PARAM_READABLE
|
|
 |
f325b2 |
+ | G_PARAM_STATIC_STRINGS));
|
|
 |
f325b2 |
|
|
 |
f325b2 |
/**
|
|
 |
f325b2 |
* LOKDocView:can-zoom-out:
|
|
 |
f325b2 |
*
|
|
 |
f325b2 |
* It tells whether the view can further be zoomed out or not.
|
|
 |
f325b2 |
*/
|
|
 |
f325b2 |
- g_object_class_install_property (pGObjectClass,
|
|
 |
f325b2 |
- PROP_CAN_ZOOM_OUT,
|
|
 |
f325b2 |
- g_param_spec_boolean("can-zoom-out",
|
|
 |
f325b2 |
- "Can Zoom Out",
|
|
 |
f325b2 |
- "Whether the view can be zoomed out further",
|
|
 |
f325b2 |
- TRUE,
|
|
 |
f325b2 |
- static_cast<GParamFlags>(G_PARAM_READABLE
|
|
 |
f325b2 |
- | G_PARAM_STATIC_STRINGS)));
|
|
 |
f325b2 |
+ properties[PROP_CAN_ZOOM_OUT] =
|
|
 |
f325b2 |
+ g_param_spec_boolean("can-zoom-out",
|
|
 |
f325b2 |
+ "Can Zoom Out",
|
|
 |
f325b2 |
+ "Whether the view can be zoomed out further",
|
|
 |
f325b2 |
+ TRUE,
|
|
 |
f325b2 |
+ static_cast<GParamFlags>(G_PARAM_READABLE
|
|
 |
f325b2 |
+ | G_PARAM_STATIC_STRINGS));
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ g_object_class_install_properties(pGObjectClass, PROP_LAST, properties);
|
|
 |
f325b2 |
|
|
 |
f325b2 |
/**
|
|
 |
f325b2 |
* LOKDocView::load-changed:
|
|
 |
f325b2 |
--
|
|
 |
f325b2 |
2.12.0
|
|
 |
f325b2 |
|