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

List:       kde-commits
Subject:    koffice/kspread/plugins/scripting
From:       Sebastian Sauer <mail () dipe ! org>
Date:       2007-06-22 15:47:59
Message-ID: 1182527279.419873.14022.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 678933 by sebsauer:

use the DataManipulator

 M  +1 -0      CMakeLists.txt  
 M  +33 -20    ScriptingWriter.h  


--- trunk/koffice/kspread/plugins/scripting/CMakeLists.txt #678932:678933
@@ -1,5 +1,6 @@
 include_directories( 
 	${CMAKE_SOURCE_DIR}/kspread
+    ${CMAKE_SOURCE_DIR}/kspread/commands
 	${CMAKE_SOURCE_DIR}/kspread/ui
 	${KOTEXT_INCLUDES} 
 	${KOGUIUTILS_INCLUDES}
--- trunk/koffice/kspread/plugins/scripting/ScriptingWriter.h #678932:678933
@@ -21,18 +21,20 @@
 #ifndef SCRIPTINGWRITER_H
 #define SCRIPTINGWRITER_H
 
+#include "ScriptingModule.h"
+
 #include <QString>
 #include <QStringList>
 #include <QObject>
+#include <klocale.h>
 
-#include "ScriptingModule.h"
-
 #include <Doc.h>
 #include <Sheet.h>
 #include <Map.h>
 #include <Region.h>
 #include <Cell.h>
 #include <Value.h>
+#include <DataManipulators.h>
 
 /**
 * The ScriptingWriter class provides abstract high-level functionality to write
@@ -56,7 +58,7 @@
         */
         virtual ~ScriptingWriter() {}
 
-    public slots:
+    public Q_SLOTS:
 
         /**
         * \return the current sheetname the writer is on. All operations done with
@@ -158,33 +160,44 @@
         //QVariant value() {}
         //QVariantList values() {}
 
-        bool setValue(const QVariant& value) {
+        bool setValue(const QVariant& value, bool parse = true) {
             KSpread::Value v;
-            switch( value.type() ) {
-                case QVariant::Invalid:     v = KSpread::Value(); break;
-                case QVariant::Bool:        v = KSpread::Value( value.toBool() ); \
                break;
-                case QVariant::Int:         v = KSpread::Value( value.toInt() ); \
                break;
-                case QVariant::ULongLong:   v = KSpread::Value( value.toLongLong() \
                ); break;
-                case QVariant::Double:      v = KSpread::Value( value.toDouble() ); \
                break;
-                case QVariant::String:      v = KSpread::Value( value.toString() ); \
                break;
-                //case QVariant::Date:      v = KSpread::Value( value.toDate() ); \
                break;
-                //case QVariant::Time:      v = KSpread::Value( value.toTime() ); \
                break;
-                //case QVariant::DateTime:  v = KSpread::Value( value.toDateTime() \
                ); break;
-                default: return false;
+            if( parse )
+                v = KSpread::Value( value.toString() );
+            else {
+                switch( value.type() ) {
+                    case QVariant::Invalid:     v = KSpread::Value(); break;
+                    case QVariant::Bool:        v = KSpread::Value( value.toBool() \
); break; +                    case QVariant::Int:         v = KSpread::Value( \
value.toInt() ); break; +                    case QVariant::ULongLong:   v = \
KSpread::Value( value.toLongLong() ); break; +                    case \
QVariant::Double:      v = KSpread::Value( value.toDouble() ); break; +               \
case QVariant::String:      v = KSpread::Value( value.toString() ); break; +          \
case QVariant::Date:        v = KSpread::Value( value.toDate(), \
m_module->kspreadDoc() ); break; +                    case QVariant::Time:        v = \
KSpread::Value( value.toTime(), m_module->kspreadDoc() ); break; +                    \
case QVariant::DateTime:    v = KSpread::Value( value.toDateTime(), \
m_module->kspreadDoc() ); break; +                    default: return false;
+                }
             }
-            KSpread::Cell* c = getCell();
-            c->setValue(v);
-            return true;
+            //KSpread::Cell* c = getCell();
+            //c->setValue(v);
+            KSpread::DataManipulator *dm = new KSpread::DataManipulator();
+            dm->setSheet(m_sheet);
+            dm->setValue(v);
+            dm->setParsing(parse);
+            dm->add(QPoint(m_column, m_row));
+            return dm->execute();
         }
 
-        bool setValues(const QVariantList& values) {
+        bool setValues(const QVariantList& values, bool parse = true) {
             bool ok = true;
             const int prevcolumn = m_column;
+            m_module->doc()->beginMacro(i18n( "Set Values" ));
             foreach(QVariant v, values) {
-                if( ! setValue(v) ) ok = false;
+                if( ! setValue(v, parse) ) ok = false;
                 m_column++;
                 clearCell();
             }
+            m_module->doc()->endMacro();
             m_column = prevcolumn;
             return ok;
         }


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

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