[PATCH] Show LibreOffice controls in Glade's tool palette
Mathias Hasselmann (via Code Review)
gerrit at gerrit.libreoffice.org
Thu Mar 14 04:59:20 PDT 2013
Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/2724
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/24/2724/1
Show LibreOffice controls in Glade's tool palette
Glade didn't show any LibreOffice controls in its tool palette
because the catalog didn't have any glade-widget-group element.
This adds a XSLT script to automatically generate such element.
A better version of the script would create separate groups for
each module/namespace, but currently I have no idea how to do
this with libxslt, as it doesn't provide fn::distinct-values().
Change-Id: Iaa3e4b0471b58c48838e000e6d78a73b0c6a4bd3
---
A extras/CustomTarget_glade.mk
M extras/Module_extras.mk
M extras/Package_glade.mk
R extras/source/glade/libreoffice-catalog.xml.in
A extras/source/glade/makewidgetgroup.xslt
5 files changed, 78 insertions(+), 1 deletion(-)
diff --git a/extras/CustomTarget_glade.mk b/extras/CustomTarget_glade.mk
new file mode 100644
index 0000000..89d452e
--- /dev/null
+++ b/extras/CustomTarget_glade.mk
@@ -0,0 +1,26 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_CustomTarget_CustomTarget,extras/glade))
+
+#
+# Rules
+#
+
+$(call gb_CustomTarget_get_workdir,extras/source/glade)/libreoffice-catalog.xml : \
+ $(SRCDIR)/extras/source/glade/libreoffice-catalog.xml.in \
+ $(SRCDIR)/extras/source/glade/makewidgetgroup.xslt \
+ | $(call gb_ExternalExecutable_get_dependencies,xsltproc)
+ $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),XSLT,4)
+ $(call gb_Helper_abbreviate_dirs, \
+ $(call gb_ExternalExecutable_get_command,xsltproc) --nonet \
+ -o $@ $(SRCDIR)/extras/source/glade/makewidgetgroup.xslt $< \
+ )
+
+# vim: set noet sw=4 ts=4:
diff --git a/extras/Module_extras.mk b/extras/Module_extras.mk
index 7144265..c3cb14b 100644
--- a/extras/Module_extras.mk
+++ b/extras/Module_extras.mk
@@ -12,6 +12,7 @@
$(eval $(call gb_Module_add_targets,extras,\
AllLangZip_autotextshare \
CustomTarget_autocorr \
+ CustomTarget_glade \
Package_fonts \
Package_glade \
Package_labels \
diff --git a/extras/Package_glade.mk b/extras/Package_glade.mk
index 9621aa9..1ac1f69 100644
--- a/extras/Package_glade.mk
+++ b/extras/Package_glade.mk
@@ -7,7 +7,7 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-$(eval $(call gb_Package_Package,extras_glade,$(SRCDIR)/extras/source/glade))
+$(eval $(call gb_Package_Package,extras_glade,$(call gb_CustomTarget_get_workdir,extras/source/glade)))
$(eval $(call gb_Package_add_file,extras_glade,pck/libreoffice-catalog.xml,libreoffice-catalog.xml))
diff --git a/extras/source/glade/libreoffice-catalog.xml b/extras/source/glade/libreoffice-catalog.xml.in
similarity index 100%
rename from extras/source/glade/libreoffice-catalog.xml
rename to extras/source/glade/libreoffice-catalog.xml.in
diff --git a/extras/source/glade/makewidgetgroup.xslt b/extras/source/glade/makewidgetgroup.xslt
new file mode 100644
index 0000000..c7d97d7
--- /dev/null
+++ b/extras/source/glade/makewidgetgroup.xslt
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output method="xml" version="1.0" encoding="UTF-8"/>
+
+ <!-- work arround apparently broken output indenting in libxslt -->
+ <xsl:param name="indent" select="' '"/>
+
+ <xsl:template match="/glade-catalog">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+
+ <xsl:text>
</xsl:text>
+ <xsl:value-of select="$indent"/>
+ <glade-widget-group name="libreoffice" title="LibreOffice">
+ <xsl:text>
</xsl:text>
+
+ <xsl:for-each select="//glade-widget-class">
+ <xsl:value-of select="concat($indent,$indent)"/>
+ <glade-widget-class-ref name="{@name}"/>
+ <xsl:text>
</xsl:text>
+ </xsl:for-each>
+
+ <xsl:value-of select="$indent"/>
+ </glade-widget-group>
+ <xsl:text>
</xsl:text>
+ </xsl:copy>
+ </xsl:template>
+
+ <xsl:template match="@*|node()">
+ <xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy>
+ </xsl:template>
+
+</xsl:stylesheet>
--
To view, visit https://gerrit.libreoffice.org/2724
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Iaa3e4b0471b58c48838e000e6d78a73b0c6a4bd3
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Mathias Hasselmann <mathias at openismus.com>
More information about the LibreOffice
mailing list