From 8b74e505d044ebbf24944666c74696b5427aec9e Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Mon, 2 Jul 2018 16:12:15 +0200 Subject: [PATCH] Aggiunte funzioni OOO::[get|set]_[path|version|port|soffice]. --- src/ooo.c | 135 ++++++++++++++++++++++++++++++++++++++++++++++++------ src/ooo.h | 9 +++- 2 files changed, 128 insertions(+), 16 deletions(-) diff --git a/src/ooo.c b/src/ooo.c index 901f6bc..3a1a153 100644 --- a/src/ooo.c +++ b/src/ooo.c @@ -95,8 +95,14 @@ solipa_ooo_init (SolipaOOO *solipa_ooo) priv->dict = NULL; priv->search = NULL; + priv->transient = NULL; + + priv->visible = FALSE; + + priv->ooo_path = g_strdup (""); + priv->ooo_soffice = g_strdup ("soffice"); priv->ooo_port = 8100; - priv->ooo_version = NULL; + priv->ooo_version = g_strdup (""); priv->with_search = FALSE; } @@ -124,20 +130,13 @@ static SolipaOOO priv->transient = transient; /* TODO controllare i valori */ - priv->ooo_path = g_strdup (ooo_path); + solipa_ooo_set_path (solipa_ooo, ooo_path); - if (ooo_soffice == NULL) - { - priv->ooo_soffice = g_strdup ("soffice"); - } - else - { - priv->ooo_soffice = g_strdup (ooo_soffice); - } + solipa_ooo_set_soffice (solipa_ooo, ooo_soffice); if (ooo_port > 0) { - priv->ooo_port = ooo_port; + solipa_ooo_set_port (solipa_ooo, ooo_port); } return solipa_ooo; @@ -195,6 +194,95 @@ SolipaOOO return solipa_ooo; } +/** + * solipa_ooo_set_path: + * @ooo: + * @path: + * + */ +void +solipa_ooo_set_path (SolipaOOO *ooo, const gchar *path) +{ + SolipaOOOPrivate *priv = SOLIPA_OOO_GET_PRIVATE (ooo); + + g_free (priv->ooo_path); + if (path != NULL) + { + priv->ooo_path = g_strdup (path); + } +} + +/** + * solipa_ooo_get_path: + * @ooo: + * + */ +gchar +*solipa_ooo_get_path (SolipaOOO *ooo) +{ + SolipaOOOPrivate *priv = SOLIPA_OOO_GET_PRIVATE (ooo); + + return g_strdup (priv->ooo_path); +} + +/** + * solipa_ooo_set_soffice: + * @ooo: + * @soffice: + * + */ +void +solipa_ooo_set_soffice (SolipaOOO *ooo, const gchar *soffice) +{ + SolipaOOOPrivate *priv = SOLIPA_OOO_GET_PRIVATE (ooo); + + g_free (priv->ooo_soffice); + if (soffice != NULL) + { + priv->ooo_soffice = g_strdup (soffice); + } +} + +/** + * solipa_ooo_get_soffice: + * @ooo: + * + */ +gchar +*solipa_ooo_get_soffice (SolipaOOO *ooo) +{ + SolipaOOOPrivate *priv = SOLIPA_OOO_GET_PRIVATE (ooo); + + return g_strdup (priv->ooo_soffice); +} + +/** + * solipa_ooo_set_port: + * @ooo: + * @port: + * + */ +void +solipa_ooo_set_port (SolipaOOO *ooo, guint port) +{ + SolipaOOOPrivate *priv = SOLIPA_OOO_GET_PRIVATE (ooo); + + priv->ooo_port = port; +} + +/** + * solipa_ooo_get_port: + * @ooo: + * + */ +guint +solipa_ooo_get_port (SolipaOOO *ooo) +{ + SolipaOOOPrivate *priv = SOLIPA_OOO_GET_PRIVATE (ooo); + + return priv->ooo_port; +} + /** * solipa_ooo_set_version: * @ooo: @@ -206,7 +294,24 @@ solipa_ooo_set_version (SolipaOOO *ooo, const gchar *version) { SolipaOOOPrivate *priv = SOLIPA_OOO_GET_PRIVATE (ooo); - priv->ooo_version = g_strdup (version); + g_free (priv->ooo_version); + if (version != NULL) + { + priv->ooo_version = g_strdup (version); + } +} + +/** + * solipa_ooo_get_version: + * @ooo: + * + */ +gchar +*solipa_ooo_get_version (SolipaOOO *ooo) +{ + SolipaOOOPrivate *priv = SOLIPA_OOO_GET_PRIVATE (ooo); + + return g_strdup (priv->ooo_version); } /** @@ -332,7 +437,7 @@ gchar "found.String = %s.replace(found.String, u\"%s\", u\"%s\")\n", !priv->with_search ? "search = document.createSearchDescriptor()\n" : "", _search, - priv->ooo_version == NULL || zak_utils_compare_version (priv->ooo_version, "3.0.0", NULL, &part) > 0 ? "str" : "unicode", + g_strcmp0 (priv->ooo_version, "") == 0 || zak_utils_compare_version (priv->ooo_version, "3.0.0", NULL, &part) > 0 ? "str" : "unicode", _search, _replace); priv->with_search = TRUE; @@ -539,7 +644,7 @@ solipa_ooo_pycmd_apri_openoffice (SolipaOOO *ooo) gchar *command; guint part; - if (priv->ooo_version == NULL + if (g_strcmp0 (priv->ooo_version, "") == 0 || zak_utils_compare_version (priv->ooo_version, "3.0.0", NULL, &part) > 0) { dash = g_strdup ("-"); @@ -722,7 +827,7 @@ solipa_ooo_apri_openoffice (SolipaOOO *ooo) solipa_ooo_chiudi_openoffice (ooo); } - if (priv->ooo_version == NULL + if (g_strcmp0 (priv->ooo_version, "") == 0 || zak_utils_compare_version (priv->ooo_version, "3.0.0", NULL, &part) > 0) { dash = g_strdup ("-"); diff --git a/src/ooo.h b/src/ooo.h index 7d4e0c5..60be2c2 100644 --- a/src/ooo.h +++ b/src/ooo.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011-2015 Andrea Zagli + * Copyright (C) 2011-2018 Andrea Zagli * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -63,7 +63,14 @@ SolipaOOO *solipa_ooo_new (GtkWindow *transient, guint ooo_port, gboolean visible); +void solipa_ooo_set_path (SolipaOOO *ooo, const gchar *ooo_path); +gchar *solipa_ooo_get_path (SolipaOOO *ooo); +void solipa_ooo_set_soffice (SolipaOOO *ooo, const gchar *ooo_soffice); +gchar *solipa_ooo_get_soffice (SolipaOOO *ooo); +void solipa_ooo_set_port (SolipaOOO *ooo, guint ooo_port); +guint solipa_ooo_get_port (SolipaOOO *ooo); void solipa_ooo_set_version (SolipaOOO *ooo, const gchar *version); +gchar *solipa_ooo_get_version (SolipaOOO *ooo); void solipa_ooo_exec (SolipaOOO *ooo, const gchar *statement); -- 2.49.0