[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: =?utf-8?q?=5Bcalligra=5D_flow=3A_fixed_tos_for_stencil_box?=
From: Yue Liu <opuspace () gmail ! com>
Date: 2011-01-28 18:49:21
Message-ID: 20110128184921.180F8A60AE () git ! kde ! org
[Download RAW message or body]
Git commit 81de9d9736515244541e794f3bb5d981d5723e60 by Yue Liu.
Pushed by liu into branch 'master'.
fixed tos for stencil box
M +1 -1 flow/CMakeLists.txt
D +0 -2 flow/shapecollection/CMakeLists.txt
D +0 -15 flow/shapecollection/flags/collection.desktop
D +0 -2 flow/shapecollection/odg-collection-instruction
M +1 -1 flow/src/part/FlowFactory.cpp
M +1 -1 flow/src/part/flow.desktop
M +1 -1 flow/src/part/flowpart.desktop
M +1 -1 flow/src/part/flowrc
M +2 -1 flow/src/plugins/dockers/stencilboxdocker/CollectionShapeFactory.h \
M +19 -6 flow/src/plugins/dockers/stencilboxdocker/OdfCollectionLoader.cpp \
M +2 -0 flow/src/plugins/dockers/stencilboxdocker/OdfCollectionLoader.h
M +1 -1 flow/src/plugins/dockers/stencilboxdocker/StencilBoxDocker.cpp
A +2 -0 flow/stencils/CMakeLists.txt [License: UNKNOWN]
A +44 -0 flow/stencils/extract-configs.pl [License: UNKNOWN]
A +15 -0 flow/stencils/flags/collection.desktop [License: UNKNOWN]
A +2 -0 flow/stencils/odg-collection-instruction [License: UNKNOWN]
http://commits.kde.org/47e7010d/81de9d9736515244541e794f3bb5d981d5723e60
diff --git a/flow/CMakeLists.txt b/flow/CMakeLists.txt
index 5ea57a6..60254c7 100644
--- a/flow/CMakeLists.txt
+++ b/flow/CMakeLists.txt
@@ -6,4 +6,4 @@ include_directories(
add_subdirectory(src)
add_subdirectory(templates)
-add_subdirectory(shapecollection)
+add_subdirectory(stencils)
diff --git a/flow/shapecollection/CMakeLists.txt \
b/flow/shapecollection/CMakeLists.txt deleted file mode 100644
index f6a2232..0000000
--- a/flow/shapecollection/CMakeLists.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-install( FILES flags/collection.desktop flags/flags.odg
- DESTINATION ${DATA_INSTALL_DIR}/flow/shapecollections/flags )
diff --git a/flow/shapecollection/flags/collection.desktop \
b/flow/shapecollection/flags/collection.desktop deleted file mode 100644
index 3be72ea..0000000
--- a/flow/shapecollection/flags/collection.desktop
+++ /dev/null
@@ -1,15 +0,0 @@
-[Desktop Entry]
-Name=Flags
-Name[cs]=Vlajky
-Name[et]=Lipud
-Name[fr]=Drapeaux
-Name[it]=Bandiere
-Name[nb]=Flagg
-Name[nl]=Vlaggen
-Name[pt]=Opções
-Name[pt_BR]=Bandeiras
-Name[sv]=Flaggor
-Name[uk]=Прапорці
-Name[x-test]=xxFlagsxx
-Name[zh_TW]=Flags
-X-KDE-DirType=odg-collection
diff --git a/flow/shapecollection/flags/flags.odg \
b/flow/shapecollection/flags/flags.odg deleted file mode 100644
index 362fb4b..0000000
Binary files a/flow/shapecollection/flags/flags.odg and /dev/null differ
diff --git a/flow/shapecollection/odg-collection-instruction \
b/flow/shapecollection/odg-collection-instruction deleted file mode 100644
index 3b3b1f2..0000000
--- a/flow/shapecollection/odg-collection-instruction
+++ /dev/null
@@ -1,2 +0,0 @@
-All the default Odg shape collections are placed here, each subdir in \
shapecollection folder represent a shape collection family, the family names are \
defined
-in a desktop file named collection.desktop, one subdir can contain multiple odg \
files, all of them will be read and stored in one KoStore instance.
diff --git a/flow/src/part/FlowFactory.cpp b/flow/src/part/FlowFactory.cpp
index ceaa744..cc8cb17 100644
--- a/flow/src/part/FlowFactory.cpp
+++ b/flow/src/part/FlowFactory.cpp
@@ -65,7 +65,7 @@ const KComponentData &FlowFactory::componentData()
s_instance = new KComponentData(aboutData());
s_instance->dirs()->addResourceType("flow_template", "data", "flow/templates/");
- s_instance->dirs()->addResourceType("app_shape_collections", "data", \
"flow/shapecollections/"); + \
s_instance->dirs()->addResourceType("app_shape_collections", "data", \
"flow/stencils/");
s_instance->dirs()->addResourceType("styles", "data", "flow/styles/");
KIconLoader::global()->addAppDir("koffice");
}
diff --git a/flow/src/part/flow.desktop b/flow/src/part/flow.desktop
index b0fd9be..4acefcf 100644
--- a/flow/src/part/flow.desktop
+++ b/flow/src/part/flow.desktop
@@ -68,7 +68,7 @@ GenericName[x-test]=xxFlowchart & Diagram Editingxx
GenericName[zh_TW]=流程圖與圖表編輯
MimeType=application/vnd.oasis.opendocument.graphics;application/x-flow;
X-KDE-ServiceTypes=Calligra/Application
-Icon=flow
+Icon=kivio
X-KDE-NativeMimeType=application/vnd.oasis.opendocument.graphics
# application/vnd.oasis.opendocument.graphics is not on this list because Karbon has \
the default; # Flow will be used only in absence of Karbon
diff --git a/flow/src/part/flowpart.desktop b/flow/src/part/flowpart.desktop
index 831b90a..7036c32 100644
--- a/flow/src/part/flowpart.desktop
+++ b/flow/src/part/flowpart.desktop
@@ -103,4 +103,4 @@ GenericName[uz@cyrillic]=Схема ва диаграммалар
GenericName[wa]=Grafikes matematikes eyet diyagrames
GenericName[x-test]=xxFlowchart & Diagramxx
GenericName[zh_TW]=流程圖 & 圖表
-Icon=flow
+Icon=kivio
diff --git a/flow/src/part/flowrc b/flow/src/part/flowrc
index 14b7855..522bd50 100644
--- a/flow/src/part/flowrc
+++ b/flow/src/part/flowrc
@@ -1,3 +1,3 @@
[flow]
-State=AAAA/wAAAAD9AAAAAgAAAAAAAADXAAACoPwCAAAAAvsAAAAkAEYAbABvAHcAUwBoAGEAcABlAEIAbwB \
4AEQAbwBjAGsAZQByAQAAABUAAAJTAAAAeQAIABn7AAAADgBUAG8AbwBsAEIAbwB4AQAAAmsAAABKAAAASgEAA \
AUAAAABAAAA5gAAAqD8AgAAAAn7AAAAKgBTAGgAYQBwAGUAQwBvAGwAbABlAGMAdABpAG8AbgBEAG8AYwBrAGU \
AcgAAAAAVAAAATwAAAE0AAABD+wAAACIAUwB0AHIAbwBrAGUAIABQAHIAbwBwAGUAcgB0AGkAZQBzAAAAAAD// \
///AAAAoAAAAKD7AAAAFgBTAHQAeQBsAGUARABvAGMAawBlAHIAAAAAZwAAAGoAAABoAAAAaPsAAAAgAFMAaAB \
hAHAAZQAgAFAAcgBvAHAAZQByAHQAaQBlAHMAAAAAAP////8AAAAYAQAABfsAAAAwAEQAZQBmAGEAdQBsAHQAV \
ABvAG8AbABBAHIAcgBhAG4AZwBlAFcAaQBkAGcAZQB0AQAAABUAAACCAAAAggAIABn7AAAAKgBTAG4AYQBwAEc \
AdQBpAGQAZQBDAG8AbgBmAGkAZwBXAGkAZABnAGUAdAEAAACaAAAASwAAAEsACAAZ+wAAACIARABlAGYAYQB1A \
GwAdABUAG8AbwBsAFcAaQBkAGcAZQB0AQAAAOgAAABbAAAAWwAIABn7AAAAKgBkAG8AYwB1AG0AZQBuAHQAIAB \
zAGUAYwB0AGkAbwBuACAAdgBpAGUAdwEAAAFGAAAA2gAAAHUBAAAF+wAAACIAUwBoAGEAZABvAHcAIABQAHIAb \
wBwAGUAcgB0AGkAZQBzAQAAAiMAAACSAAAAkgAIABkAAANcAAACoAAAAAQAAAAEAAAACAAAAAj8AAAAAgAAAAAAAAABAAAAFgBtAGEAaQBuAFQAbwBvAGwAQgBhAHIDAAAAAP////8AAAAAAAAAAAAAAAIAAAAA
+State=AAAA/wAAAAD9AAAAAwAAAAAAAADXAAAByvwCAAAAAvsAAAAkAEYAbABvAHcAUwBoAGEAcABlAEIAbw \
B4AEQAbwBjAGsAZQByAQAAAJwAAAIZAAAAAAAAAAD7AAAAKABGAGwAbwB3AFMAdABlAG4AYwBpAGwAQgBvAHgA \
RABvAGMAawBlAHIBAAAAjgAAAcoAAAB5AAgAGQAAAAEAAADTAAAByvwCAAAAB/sAAAAiAFMAdAByAG8AawBlAC \
AAUAByAG8AcABlAHIAdABpAGUAcwAAAADLAAAAmgAAAJgAAACY+wAAACAAUwBoAGEAcABlACAAUAByAG8AcABl \
AHIAdABpAGUAcwEAAACOAAAAhQAAAIUBAAAF+wAAADAARABlAGYAYQB1AGwAdABUAG8AbwBsAEEAcgByAGEAbg \
BnAGUAVwBpAGQAZwBlAHQBAAAAFQAAAIIAAAAAAAAAAPsAAAAqAFMAbgBhAHAARwB1AGkAZABlAEMAbwBuAGYA \
aQBnAFcAaQBkAGcAZQB0AQAAAJoAAABLAAAAAAAAAAD7AAAAIgBEAGUAZgBhAHUAbAB0AFQAbwBvAGwAVwBpAG \
QAZwBlAHQBAAAA6AAAAFsAAAAAAAAAAPsAAAAqAGQAbwBjAHUAbQBlAG4AdAAgAHMAZQBjAHQAaQBvAG4AIAB2 \
AGkAZQB3AQAAARYAAACTAAAAdQEAAAX7AAAAIgBTAGgAYQBkAG8AdwAgAFAAcgBvAHAAZQByAHQAaQBlAHMBAA \
ABrAAAAKwAAACsAAgAGQAAAAIAAAOKAAAAVvwBAAAABfsAAAAaAFQAbwBvAGwAQgBhAHIARABvAGMAawBlAHIA \
AAAAAAAAAI8AAAB6AQAABfsAAAAOAFQAbwBvAGwAQgBvAHgBAAAAAAAAANUAAAC0AQAABfsAAAAgAHMAaABhAH \
IAZQBkAHQAbwBvAGwAZABvAGMAawBlAHIBAAAA2AAAArIAAABCAQAABfsAAAAWAFMAdAB5AGwAZQBEAG8AYwBr \
AGUAcgAAAAI9AAABTQAAARcACAAF+wAAACoAUwBoAGEAcABlAEMAbwBsAGwAZQBjAHQAaQBvAG4ARABvAGMAaw \
BlAHIAAAAETQAAAQkAAAEJAAABCQAAAdoAAAHKAAAABAAAAAQAAAAIAAAACPwAAAABAAAAAgAAAAEAAAAWAG0AYQBpAG4AVABvAG8AbABCAGEAcgEAAAAA/////wAAAAAAAAAA
ToolBarsMovable=Disabled
diff --git a/flow/src/plugins/dockers/stencilboxdocker/CollectionShapeFactory.h \
b/flow/src/plugins/dockers/stencilboxdocker/CollectionShapeFactory.h index \
870fe2e..e0f5b08 100644
--- a/flow/src/plugins/dockers/stencilboxdocker/CollectionShapeFactory.h
+++ b/flow/src/plugins/dockers/stencilboxdocker/CollectionShapeFactory.h
@@ -20,6 +20,7 @@
#define KOCOLLECTIONSHAPEFACTORY_H
#include <KoShapeFactoryBase.h>
+#include <KoResourceManager.h>
class KoShapeControllerBase;
@@ -29,7 +30,7 @@ class CollectionShapeFactory : public KoShapeFactoryBase
CollectionShapeFactory(const QString &id, KoShape* shape);
~CollectionShapeFactory();
- virtual KoShape *createDefaultShape(KoResourceManager *documentResources = \
0) const; + virtual KoShape *createDefaultShape(KoResourceManager \
*documentResources = new KoResourceManager()) const;
virtual bool supports(const KoXmlElement &e, KoShapeLoadingContext &context) \
const;
private:
diff --git a/flow/src/plugins/dockers/stencilboxdocker/OdfCollectionLoader.cpp \
b/flow/src/plugins/dockers/stencilboxdocker/OdfCollectionLoader.cpp index \
6216389..4efef89 100644
--- a/flow/src/plugins/dockers/stencilboxdocker/OdfCollectionLoader.cpp
+++ b/flow/src/plugins/dockers/stencilboxdocker/OdfCollectionLoader.cpp
@@ -28,6 +28,7 @@
#include <KoShapeRegistry.h>
#include <KoShapeLoadingContext.h>
#include <KoFilterManager.h>
+#include <KoResourceManager.h>
#include <KoOdf.h>
#include <klocale.h>
@@ -53,6 +54,13 @@ OdfCollectionLoader::OdfCollectionLoader(const QString& path, \
const QString& fam m_loadingTimer->setInterval(0);
connect(m_loadingTimer, SIGNAL(timeout()),
this, SLOT(loadShape()));
+
+ m_resourceManager = new KoResourceManager();
+ KoShapeRegistry *registry = KoShapeRegistry::instance();
+ foreach (const QString &id, registry->keys()) {
+ KoShapeFactoryBase *shapeFactory = registry->value(id);
+ shapeFactory->newDocumentResourceManager(m_resourceManager);
+ }
}
OdfCollectionLoader::~OdfCollectionLoader()
@@ -61,8 +69,10 @@ OdfCollectionLoader::~OdfCollectionLoader()
m_filterManager = 0;
delete m_shapeLoadingContext;
delete m_loadingContext;
+ delete m_resourceManager;
m_shapeLoadingContext = 0;
m_loadingContext = 0;
+ m_resourceManager = 0;
if(m_odfStore)
{
@@ -75,7 +85,7 @@ OdfCollectionLoader::~OdfCollectionLoader()
void OdfCollectionLoader::load()
{
QDir dir(m_path);
- m_fileList = dir.entryList(QStringList() << "*.odg" << "*.svg", QDir::Files);
+ m_fileList = dir.entryList(QStringList() << "*.odg", QDir::Files);
if(m_fileList.isEmpty())
{
@@ -94,8 +104,10 @@ void OdfCollectionLoader::loadShape()
if (shape) {
if(!shape->parent()) {
- //QString temp = shape->name().section(KGlobal::locale()->language(), 1, \
1);
- //shape->setName(temp.section(":", 0, 0));
+ const QString localName = m_shape.attribute("koffice:i18n-name-[" + \
KGlobal::locale()->language() +"]", + \
shape->name()); + shape->setName(localName);
+
m_shapeList.append(shape);
}
}
@@ -262,9 +274,8 @@ void OdfCollectionLoader::loadNativeFile(const QString& path)
}
KoOdfLoadingContext* m_loadingContext = new \
KoOdfLoadingContext(m_odfStore->styles(), m_odfStore->store());
- // it ok here to pass an empty resourceManager as we don't have a document
- // tz: not sure if that is 100% correct what if an image is loaded in the \
collection it needs a image collection
- m_shapeLoadingContext = new KoShapeLoadingContext(*m_loadingContext, 0);
+
+ m_shapeLoadingContext = new KoShapeLoadingContext(*m_loadingContext, \
m_resourceManager);
KoXmlElement content = m_odfStore->contentDoc().documentElement();
KoXmlElement realBody ( KoXml::namedItemNS( content, KoXmlNS::office, "body" ) \
); @@ -301,6 +312,8 @@ void OdfCollectionLoader::loadNativeFile(const QString& path)
child = child.nextSibling();
}
+ //m_shape = KoXml::namedItemNS(m_body, KoXmlNS::draw, "g");
+
if (m_shape.isNull()) {
kError() << "No shapes found!" << endl;
emit loadingFailed(i18n("No shapes found in file: %1", path));
diff --git a/flow/src/plugins/dockers/stencilboxdocker/OdfCollectionLoader.h \
b/flow/src/plugins/dockers/stencilboxdocker/OdfCollectionLoader.h index \
a900a4a..80848a8 100644
--- a/flow/src/plugins/dockers/stencilboxdocker/OdfCollectionLoader.h
+++ b/flow/src/plugins/dockers/stencilboxdocker/OdfCollectionLoader.h
@@ -34,6 +34,7 @@ class KoShapeLoadingContext;
class QTimer;
class KoShape;
class KoFilterManager;
+class KoResourceManager;
class OdfCollectionLoader : public QObject
{
@@ -60,6 +61,7 @@ class OdfCollectionLoader : public QObject
QTimer* m_loadingTimer;
KoOdfLoadingContext* m_loadingContext;
KoShapeLoadingContext* m_shapeLoadingContext;
+ KoResourceManager* m_resourceManager;
KoXmlElement m_body;
KoXmlElement m_page;
KoXmlElement m_shape;
diff --git a/flow/src/plugins/dockers/stencilboxdocker/StencilBoxDocker.cpp \
b/flow/src/plugins/dockers/stencilboxdocker/StencilBoxDocker.cpp index \
5c2dfc9..a9afba7 100644
--- a/flow/src/plugins/dockers/stencilboxdocker/StencilBoxDocker.cpp
+++ b/flow/src/plugins/dockers/stencilboxdocker/StencilBoxDocker.cpp
@@ -127,7 +127,7 @@ StencilBoxDocker::StencilBoxDocker(QWidget* parent)
loadShapeCollections();
}
- //loadDefaultShapes();
+ loadDefaultShapes();
regenerateProxyMap();
m_treeWidget->setFamilyMap(m_proxyMap);
diff --git a/flow/stencils/CMakeLists.txt b/flow/stencils/CMakeLists.txt
new file mode 100644
index 0000000..28b57cc
--- /dev/null
+++ b/flow/stencils/CMakeLists.txt
@@ -0,0 +1,2 @@
+install( FILES flags/collection.desktop flags/flags.odg
+ DESTINATION ${DATA_INSTALL_DIR}/flow/stencils/flags )
diff --git a/flow/stencils/extract-configs.pl b/flow/stencils/extract-configs.pl
new file mode 100644
index 0000000..c164b3b
--- /dev/null
+++ b/flow/stencils/extract-configs.pl
@@ -0,0 +1,44 @@
+#!/bin/perl
+
+use strict;
+use Archive::Zip;
+use XML::Simple;
+use IO::File;
+use Carp;
+
+my $dirname;
+
+#
+# Check for one argument: the name of the OpenOffice.org document
+#
+if (scalar @ARGV != 1) {
+ croak("Usage: $0 document");
+}
+
+#
+# Extract the document into xml files
+#
+print "Extracting $ARGV[0]...";
+($dirname) = $ARGV[0] =~ m/(.+)\.odg/;
+my $zip = new Archive::Zip($ARGV[0]);
+if (!$zip) {
+ croak("$ARGV[0] cannot be opened as a .ZIP file");
+} else {
+ $zip->extractTree(undef, "$dirname/");
+}
+
+#
+# Export the config file from the document
+chdir $dirname;
+my $fh = IO::File->new("content.xml");
+my $xml = XMLin($fh);
+my $root = $xml->{'office:drawing'};
+
+if ($root) {
+ print "XMLin opened\n";
+}
+if ($root->{'draw:g'}) {
+ print "Test output: $root->{'draw:g'}\n";
+}
+chdir "../";
+
diff --git a/flow/stencils/flags/collection.desktop \
b/flow/stencils/flags/collection.desktop new file mode 100644
index 0000000..3be72ea
--- /dev/null
+++ b/flow/stencils/flags/collection.desktop
@@ -0,0 +1,15 @@
+[Desktop Entry]
+Name=Flags
+Name[cs]=Vlajky
+Name[et]=Lipud
+Name[fr]=Drapeaux
+Name[it]=Bandiere
+Name[nb]=Flagg
+Name[nl]=Vlaggen
+Name[pt]=Opções
+Name[pt_BR]=Bandeiras
+Name[sv]=Flaggor
+Name[uk]=Прапорці
+Name[x-test]=xxFlagsxx
+Name[zh_TW]=Flags
+X-KDE-DirType=odg-collection
diff --git a/flow/stencils/flags/flags.odg b/flow/stencils/flags/flags.odg
new file mode 100644
index 0000000..362fb4b
Binary files /dev/null and b/flow/stencils/flags/flags.odg differ
diff --git a/flow/stencils/odg-collection-instruction \
b/flow/stencils/odg-collection-instruction new file mode 100644
index 0000000..3b3b1f2
--- /dev/null
+++ b/flow/stencils/odg-collection-instruction
@@ -0,0 +1,2 @@
+All the default Odg shape collections are placed here, each subdir in \
shapecollection folder represent a shape collection family, the family names are \
defined +in a desktop file named collection.desktop, one subdir can contain multiple \
odg files, all of them will be read and stored in one KoStore instance.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic