[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    koffice/krita/ui
From:       Cyrille Berger <cyb () lepi ! org>
Date:       2007-02-24 21:30:37
Message-ID: 1172352637.781228.25812.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 636961 by berger:

merge the load data visitor with the load visitor

 M  +0 -1      CMakeLists.txt  
 M  +2 -5      kis_doc2.cc  
 D             kis_oasis_load_data_visitor.cc  
 D             kis_oasis_load_data_visitor.h  
 M  +28 -0     kis_oasis_load_visitor.cc  
 M  +3 -1      kis_oasis_load_visitor.h  


--- trunk/koffice/krita/ui/CMakeLists.txt #636960:636961
@@ -59,7 +59,6 @@
     kis_multi_bool_filter_widget.cc
     kis_multi_double_filter_widget.cc
     kis_multi_integer_filter_widget.cc
-    kis_oasis_load_data_visitor.cc
     kis_oasis_load_visitor.cc
     kis_oasis_save_data_visitor.cc
     kis_oasis_save_visitor.cc
--- trunk/koffice/krita/ui/kis_doc2.cc #636960:636961
@@ -88,7 +88,6 @@
 #include "kis_load_visitor.h"
 #include "kis_save_visitor.h"
 #include "kis_savexml_visitor.h"
-#include "kis_oasis_load_data_visitor.h"
 #include "kis_oasis_load_visitor.h"
 #include "kis_oasis_save_data_visitor.h"
 #include "kis_oasis_save_visitor.h"
@@ -372,13 +371,11 @@
     for (QDomNode node = root.firstChild(); !node.isNull(); node = node.nextSibling()) {
         if (node.isElement() && node.nodeName() == "office:body") {
             QDomElement elem = node.toElement();
-            KisOasisLoadVisitor olv(this);
+            KoOasisStore* oasisStore =  new KoOasisStore( store );
+            KisOasisLoadVisitor olv(this,oasisStore);
             olv.loadImage(elem);
             if (!olv.image() )
                 return false;
-            KoOasisStore* oasisStore =  new KoOasisStore( store );
-            KisOasisLoadDataVisitor oldv(oasisStore, olv.layerFilenames());
-            olv.image()->rootLayer()->accept(oldv);
 
             setCurrentImage( olv.image() );
 
--- trunk/koffice/krita/ui/kis_oasis_load_visitor.cc #636960:636961
@@ -22,6 +22,9 @@
 #include <QDomNode>
 
 #include <KoColorSpaceRegistry.h>
+#include <KoOasisStore.h>
+#include <KoStore.h>
+#include <KoStoreDevice.h>
 
 // Includes from krita/image
 #include <kis_image.h>
@@ -58,6 +61,31 @@
 void KisOasisLoadVisitor::loadPaintLayer(const QDomElement& elem, KisPaintLayerSP pL)
 {
     loadLayerInfo(elem, pL.data());
+    
+    QString filename = m_layerFilenames[pL.data()];
+    kDebug(41008) << "Loading file : " << filename << endl;
+    if (m_oasisStore->store()->open(filename) ) {
+        KoStoreDevice io ( m_oasisStore->store() );
+        if ( !io.open( QIODevice::ReadOnly ) )
+        {
+            kDebug(41008) << "Couldn't open for reading: " << filename << endl;
+//             return false;
+        }
+        QImage img;
+        if ( ! img.load( &io, "PNG" ) )
+        {
+            kDebug(41008) << "Loading PNG failed: " << filename << endl;
+            m_oasisStore->store()->close();
+            io.close();
+//             return false;
+        }
+        pL->paintDevice()->convertFromQImage(img, "");
+        io.close();
+        m_oasisStore->store()->close();
+        kDebug(41008) << "Loading was successful" << endl;
+//         return true;
+    }
+    kDebug(41008) << "Loading was unsuccessful" << endl;
 }
 
 void KisOasisLoadVisitor::loadGroupLayer(const QDomElement& elem, KisGroupLayerSP gL)
--- trunk/koffice/krita/ui/kis_oasis_load_visitor.h #636960:636961
@@ -21,6 +21,7 @@
 #include "kis_global.h"
 #include "kis_types.h"
 
+class KoOasisStore;
 class QDomElement;
 class KisPaintLayer;
 class KisGroupLayer;
@@ -29,7 +30,7 @@
 
 class KisOasisLoadVisitor {
 public:
-    KisOasisLoadVisitor(KisDoc2* doc) : m_doc(doc) {};
+    KisOasisLoadVisitor(KisDoc2* doc, KoOasisStore* os) : m_doc(doc), m_oasisStore(os) {};
     virtual ~KisOasisLoadVisitor() {};
 
 public:
@@ -43,6 +44,7 @@
     KisImageSP m_image;
     KisDoc2* m_doc;
     QMap<KisLayer *, QString> m_layerFilenames;
+    KoOasisStore* m_oasisStore;
 };
 
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic