[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