[glom] Move ReportBuilder to libglom, to make testing easier.
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glom] Move ReportBuilder to libglom, to make testing easier.
- Date: Mon, 17 Oct 2011 19:27:45 +0000 (UTC)
commit 6d61144c9c05fc24805eacfed439f043a87dc72d
Author: Murray Cumming <murrayc murrayc com>
Date: Mon Oct 17 21:17:47 2011 +0200
Move ReportBuilder to libglom, to make testing easier.
* glom/report_builder.[h|cc]:
* glom/xsl_utils.[h|cc]: Moved to:
* glom/libglom/report_builder.[h|cc]:
* glom/libglom/xsl_utils.[h|cc]:
* Makefile_glom.am, Makefile_libglom.am: Adapted, also adding a
-D define for libglom to access the xslt file, though I am not happy
about a library needing a file to be installed.
ChangeLog | 12 ++++++++++++
Makefile_glom.am | 4 ----
Makefile_libglom.am | 7 ++++++-
configure.ac | 4 ++--
glom/frame_glom.cc | 2 +-
glom/libglom/filelist.am | 7 ++++++-
glom/{ => libglom}/report_builder.cc | 4 ++--
glom/{ => libglom}/report_builder.h | 0
glom/{ => libglom}/xsl_utils.cc | 24 ++++++++++++++++++------
glom/{ => libglom}/xsl_utils.h | 0
glom/mode_data/box_data_details.cc | 1 -
glom/mode_data/box_data_list.cc | 2 +-
glom/mode_data/box_data_manyrecords.cc | 2 +-
po/POTFILES.in | 3 ++-
14 files changed, 51 insertions(+), 21 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 631dacc..1ca386c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
2011-10-17 Murray Cumming <murrayc murrayc com>
+ Move ReportBuilder to libglom, to make testing easier.
+
+ * glom/report_builder.[h|cc]:
+ * glom/xsl_utils.[h|cc]: Moved to:
+ * glom/libglom/report_builder.[h|cc]:
+ * glom/libglom/xsl_utils.[h|cc]:
+ * Makefile_glom.am, Makefile_libglom.am: Adapted, also adding a
+ -D define for libglom to access the xslt file, though I am not happy
+ about a library needing a file to be installed.
+
+2011-10-17 Murray Cumming <murrayc murrayc com>
+
ReportBuilder: Do not depend on Base_DB unnecessarily.
* glom/report_builder.[h|cc]: Just add get/set_document() instead.
diff --git a/Makefile_glom.am b/Makefile_glom.am
index 85c9f68..ec0ff6e 100644
--- a/Makefile_glom.am
+++ b/Makefile_glom.am
@@ -104,10 +104,6 @@ glom_source_files = \
glom/utils_ui.h \
glom/variablesmap.cc \
glom/variablesmap.h \
- glom/xsl_utils.cc \
- glom/xsl_utils.h \
- glom/report_builder.cc \
- glom/report_builder.h \
glom/window_boxholder.cc \
glom/window_boxholder.h \
glom/bakery/app.cc \
diff --git a/Makefile_libglom.am b/Makefile_libglom.am
index 57c3abc..ed9f554 100644
--- a/Makefile_libglom.am
+++ b/Makefile_libglom.am
@@ -15,6 +15,11 @@
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+libglom_defines = \
+-DGLOM_PKGDATADIR_XSLT=\""$(pkgdatadir)/xslt"\" \
+-DGLOM_PKGDATADIR_XSLT_NOTINSTALLED=\""$(top_srcdir)/xslt"\"
+
lib_LTLIBRARIES = glom/libglom/libglom- GLOM_ABI_VERSION@.la
include $(top_srcdir)/glom/libglom/filelist.am
@@ -50,7 +55,7 @@ glom_libglom_libglom_ GLOM_ABI_VERSION@_la_LIBADD += -lws2_32
endif
glom_libglom_libglom_ GLOM_ABI_VERSION@_la_LDFLAGS = -no-undefined
-glom_libglom_libglom_ GLOM_ABI_VERSION@_la_CPPFLAGS = $(glom_includes) $(LIBGLOM_CFLAGS) $(PYTHON_CPPFLAGS) $(BOOST_PYTHON_CFLAGS)
+glom_libglom_libglom_ GLOM_ABI_VERSION@_la_CPPFLAGS = $(glom_includes) $(LIBGLOM_CFLAGS) $(PYTHON_CPPFLAGS) $(BOOST_PYTHON_CFLAGS) $(libglom_defines)
pyexec_LTLIBRARIES = glom/python_embed/python_module/glom_ GLOM_ABI_VERSION_UNDERLINED@.la
diff --git a/configure.ac b/configure.ac
index a0f7d66..acb784f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -127,13 +127,13 @@ AS_IF([test "x$glom_enable_postgresql" = xyes],
[Whether to enable support for PostgreSQL databases.])])
# Libraries used by libglom:
-REQUIRED_LIBGLOM_LIBS='gthread-2.0 giomm-2.4 libxml++-2.6 >= 2.23.1 pygobject-3.0 >= 2.29.0 libgdamm-5.0 >= 4.99.4 libgda-postgres-5.0'
+REQUIRED_LIBGLOM_LIBS='gthread-2.0 giomm-2.4 libxml++-2.6 >= 2.23.1 libxslt >= 1.1.10 pygobject-3.0 >= 2.29.0 libgdamm-5.0 >= 4.99.4 libgda-postgres-5.0'
AS_IF([test "x$glom_host_win32" != xyes],
[REQUIRED_LIBGLOM_LIBS="$REQUIRED_LIBGLOM_LIBS libepc-1.0 >= 0.4.0"])
# Libraries used by Glom:
-REQUIRED_GLOM_LIBS="$REQUIRED_LIBGLOM_LIBS gtkmm-3.0 >= 3.0.0 gthread-2.0 libxml++-2.6 libxslt >= 1.1.10 goocanvasmm-2.0 >= 1.90.6 evince-view-3.0"
+REQUIRED_GLOM_LIBS="$REQUIRED_LIBGLOM_LIBS gtkmm-3.0 >= 3.0.0 goocanvasmm-2.0 >= 1.90.6 evince-view-3.0"
# Do not require iso-codes in client-only mode, or on Windows:
# TODO: Package iso-codes for Windows?
diff --git a/glom/frame_glom.cc b/glom/frame_glom.cc
index 7c182f3..cdcc81e 100644
--- a/glom/frame_glom.cc
+++ b/glom/frame_glom.cc
@@ -52,7 +52,7 @@
#include <libglom/data_structure/layout/report_parts/layoutitem_summary.h>
#include <libglom/data_structure/layout/report_parts/layoutitem_fieldsummary.h>
-#include <glom/report_builder.h>
+#include <glom/libglom/report_builder.h>
#ifndef GLOM_ENABLE_CLIENT_ONLY
#include <glom/mode_design/dialog_add_related_table.h>
#include <glom/mode_design/script_library/dialog_script_library.h>
diff --git a/glom/libglom/filelist.am b/glom/libglom/filelist.am
index 67bc30e..b7ca460 100644
--- a/glom/libglom/filelist.am
+++ b/glom/libglom/filelist.am
@@ -24,7 +24,8 @@ libglom_toplevel_headers = \
glom/libglom/sharedptr.h \
glom/libglom/standard_table_prefs_fields.h \
glom/libglom/utils.h \
- glom/libglom/db_utils.h
+ glom/libglom/db_utils.h \
+ glom/libglom/report_builder.h
libglom_data_structure_headers = \
glom/libglom/data_structure/field.h \
@@ -107,10 +108,14 @@ libglom_sources = \
glom/libglom/init.cc \
glom/libglom/privs.cc \
glom/libglom/privs.h \
+ glom/libglom/report_builder.cc \
+ glom/libglom/report_builder.h \
glom/libglom/spawn_with_feedback.cc \
glom/libglom/spawn_with_feedback.h \
glom/libglom/utils.cc \
glom/libglom/utils.h \
+ glom/libglom/xsl_utils.cc \
+ glom/libglom/xsl_utils.h \
glom/libglom/connectionpool_backends/backend.cc \
glom/libglom/connectionpool_backends/backend.h \
glom/libglom/data_structure/field.cc \
diff --git a/glom/report_builder.cc b/glom/libglom/report_builder.cc
similarity index 99%
rename from glom/report_builder.cc
rename to glom/libglom/report_builder.cc
index 70436d0..8d773f3 100644
--- a/glom/report_builder.cc
+++ b/glom/libglom/report_builder.cc
@@ -18,11 +18,11 @@
* Boston, MA 02111-1307, USA.
*/
-#include "report_builder.h"
+#include <libglom/report_builder.h>
#include <libglom/utils.h>
#include <libglom/data_structure/glomconversions.h>
#include <libglom/db_utils.h>
-#include <glom/xsl_utils.h>
+#include <libglom/xsl_utils.h>
#include <glibmm/i18n.h>
namespace Glom
diff --git a/glom/report_builder.h b/glom/libglom/report_builder.h
similarity index 100%
rename from glom/report_builder.h
rename to glom/libglom/report_builder.h
diff --git a/glom/xsl_utils.cc b/glom/libglom/xsl_utils.cc
similarity index 89%
rename from glom/xsl_utils.cc
rename to glom/libglom/xsl_utils.cc
index bc2a31f..0249cc1 100644
--- a/glom/xsl_utils.cc
+++ b/glom/libglom/xsl_utils.cc
@@ -18,9 +18,9 @@
* Boston, MA 02111-1307, USA.
*/
-#include "config.h" // For GLOM_ENABLE_CLIENT_ONLY
+#include <libglom/libglom_config.h>
-#include "xsl_utils.h"
+#include <libglom/xsl_utils.h>
#include <libglom/connectionpool.h>
#include <libglom/data_structure/layout/report_parts/layoutitem_fieldsummary.h>
#include <libglom/data_structure/glomconversions.h>
@@ -43,18 +43,30 @@
namespace
{
- std::string get_xslt_file(const std::string& xsl_file)
+ static std::string get_xsl_file_dir()
{
#ifdef G_OS_WIN32
gchar* directory = g_win32_get_package_installation_directory_of_module(0);
- std::string xsltdir = Glib::build_filename(Glib::build_filename(directory,
- "share" G_DIR_SEPARATOR_S "glom" G_DIR_SEPARATOR_S "xslt"), xsl_file);
+ const std::string xsltdir = Glib::build_filename(directory,
+ "share" G_DIR_SEPARATOR_S "glom" G_DIR_SEPARATOR_S "xslt");
g_free(directory);
return xsltdir;
#else
- return Glib::build_filename(GLOM_PKGDATADIR G_DIR_SEPARATOR_S "xslt", xsl_file);
+ return GLOM_PKGDATADIR_XSLT;
#endif
}
+
+ static std::string get_xslt_file(const std::string& xsl_file)
+ {
+ const std::string result = Glib::build_filename(get_xsl_file_dir(), xsl_file);
+
+ // Check that it exists:
+ const Glib::RefPtr<Gio::File> file = Gio::File::create_for_path(result);
+ if(file && file->query_exists())
+ return result;
+
+ return Glib::build_filename(GLOM_PKGDATADIR_XSLT_NOTINSTALLED, xsl_file);
+ }
}
namespace Glom
diff --git a/glom/xsl_utils.h b/glom/libglom/xsl_utils.h
similarity index 100%
rename from glom/xsl_utils.h
rename to glom/libglom/xsl_utils.h
diff --git a/glom/mode_data/box_data_details.cc b/glom/mode_data/box_data_details.cc
index 6a174dd..ec2323a 100644
--- a/glom/mode_data/box_data_details.cc
+++ b/glom/mode_data/box_data_details.cc
@@ -29,7 +29,6 @@
#include <glom/glade_utils.h>
#include <glom/utils_ui.h>
#include <libglom/privs.h>
-#include <glom/xsl_utils.h>
#include <glom/python_embed/glom_python.h>
#include <glom/print_layout/print_layout_utils.h>
#include <glom/application.h>
diff --git a/glom/mode_data/box_data_list.cc b/glom/mode_data/box_data_list.cc
index e06ddf8..b691e49 100644
--- a/glom/mode_data/box_data_list.cc
+++ b/glom/mode_data/box_data_list.cc
@@ -21,7 +21,7 @@
#include "box_data_list.h"
#include <libglom/data_structure/glomconversions.h>
#include <glom/glade_utils.h>
-#include <glom/report_builder.h>
+#include <libglom/report_builder.h>
#include <glom/mode_design/layout/dialog_layout_list.h>
#include <libglom/privs.h>
#include <libglom/db_utils.h>
diff --git a/glom/mode_data/box_data_manyrecords.cc b/glom/mode_data/box_data_manyrecords.cc
index b8dc88d..efc7177 100644
--- a/glom/mode_data/box_data_manyrecords.cc
+++ b/glom/mode_data/box_data_manyrecords.cc
@@ -21,7 +21,7 @@
#include "box_data_manyrecords.h"
#include <libglom/data_structure/glomconversions.h>
#include <glom/glade_utils.h>
-#include <glom/report_builder.h>
+#include <libglom/report_builder.h>
#include <glom/mode_design/layout/dialog_layout_list.h>
#include <glom/utils_ui.h>
#include <libglom/privs.h>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 3742b92..6b7566d 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -54,6 +54,8 @@ glom/libglom/gst-package.c
glom/libglom/spawn_with_feedback.cc
glom/libglom/utils.cc
glom/libglom/db_utils.cc
+glom/libglom/report_builder.cc
+glom/libglom/xsl_utils.cc
glom/glom_create_from_example.cc
glom/main.cc
glom/mode_data/box_data_calendar_related.cc
@@ -135,7 +137,6 @@ glom/utility_widgets/layoutwidgetbase.cc
glom/utility_widgets/layoutwidgetmenu.cc
glom/utility_widgets/layoutwidgetutils.cc
glom/utility_widgets/notebooklabelglom.cc
-glom/xsl_utils.cc
ui/operator/box_navigation_tables.glade
ui/operator/dialog_choose_date.glade
ui/operator/dialog_connection.glade
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]