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

List:       kde-commits
Subject:    koffice/kexi/plugins/reportspgz/backend
From:       Adam Pigg <adam () piggz ! co ! uk>
Date:       2008-09-23 20:46:44
Message-ID: 1222202804.550655.32761.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 864065 by piggz:

Allow the control source of a checkbox to be a function (such as 'field > 5')

 M  +4 -0      common/krcheckdata.cpp  
 M  +1 -0      common/krcheckdata.h  
 M  +1 -6      common/krfielddata.cpp  
 M  +1 -5      common/krfielddata.h  
 M  +4 -2      renderer/orprerender.cpp  
 M  +1 -1      renderer/scripting/krscriptfield.cpp  
 M  +15 -4     renderer/scripting/krscripthandler.cpp  
 M  +1 -1      wrtembed/reportentityfield.cpp  


--- trunk/koffice/kexi/plugins/reportspgz/backend/common/krcheckdata.cpp \
#864064:864065 @@ -87,6 +87,10 @@
     return ls;
 }
 
+QString KRCheckData::controlSource() const
+{
+    return _controlSource->value().toString();
+}
 // RTTI
 int KRCheckData::type() const
 {
--- trunk/koffice/kexi/plugins/reportspgz/backend/common/krcheckdata.h #864064:864065
@@ -29,6 +29,7 @@
         ORDataData data() {
         return ORDataData("Data Source", _controlSource->value().toString());
         }
+        QString controlSource()const;
 
     protected:
     QRectF _rect();
--- trunk/koffice/kexi/plugins/reportspgz/backend/common/krfielddata.cpp \
#864064:864065 @@ -199,7 +199,7 @@
 {
 }
 
-QString KRFieldData::column() const
+QString KRFieldData::controlSource() const
 {
     return _controlSource->value().toString();
 }
@@ -211,11 +211,6 @@
     }
 }
 
-//bool    KRFieldData::trackTotal()       { return _trackTotal->value().toBool(); }
-//bool    KRFieldData::trackBuiltinFormat() { return \
                _trackBuiltinFormat->value().toBool(); }
-//bool    KRFieldData::useSubTotal() { return _useSubTotal->value().toBool(); }
-//QString KRFieldData::trackTotalFormat() { return \
                _trackTotalFormat->value().toString(); }
-
 void KRFieldData::setTrackTotal(bool yes)
 {
     if (_trackTotal->value() != yes) {
--- trunk/koffice/kexi/plugins/reportspgz/backend/common/krfielddata.h #864064:864065
@@ -59,11 +59,7 @@
     void setTrackTotalFormat(const QString &, bool = FALSE);
     void setUseSubTotal(bool);
 
-    QString column() const;
-    //bool trackTotal();
-    //bool trackBuiltinFormat();
-    //bool useSubTotal();
-    //QString trackTotalFormat();
+    QString controlSource() const;
 
     ORLineStyleData lineStyle();
     ORTextStyleData textStyle();
--- trunk/koffice/kexi/plugins/reportspgz/backend/renderer/orprerender.cpp \
#864064:864065 @@ -832,9 +832,11 @@
 
             QString str = QString::null;
 
-            QString cs = cd->_controlSource->value().toString();
+            QString cs = cd->controlSource();
+            kDebug() << "EntityCheck CS:" << cs;
+
             if (cs.left(1) == "=") {
-                    str = cs.mid(1);
+                str = _handler->evaluate(cd->entityName()).toString();
             } else {
                 QString qry = "Data Source";
                 QString clm = cd->_controlSource->value().toString();
--- trunk/koffice/kexi/plugins/reportspgz/backend/renderer/scripting/krscriptfield.cpp \
#864064:864065 @@ -33,7 +33,7 @@
 
 QString Field::source()
 {
-    return _field->column();
+    return _field->controlSource();
 }
 
 void Field::setSource(const QString& s)
--- trunk/koffice/kexi/plugins/reportspgz/backend/renderer/scripting/krscripthandler.cpp \
#864064:864065 @@ -29,6 +29,7 @@
 #include "krscriptdebug.h"
 #include <krobjectdata.h>
 #include <krfielddata.h>
+#include <krcheckdata.h>
 #include <kmessagebox.h>
 #include "krscriptconstants.h"
 #include <krreportdata.h>
@@ -143,18 +144,28 @@
 
     QList<KRObjectData *>obs = _data->objects();
     foreach(KRObjectData* o, obs) {
+        //The field or check contains an expression
+        //TODO this is a horrible hack, need to get a similar feature into kross
         if (o->type() == KRObjectData::EntityField) {
             KRFieldData* fld = o->toField();
-            if (fld->column()[0] == '=') {
-                //The field contains an expression
-                func = QString("function %1_onrender_(){return \
%2;}").arg(fld->entityName().toLower()).arg(fld->column().mid(1)); +            if \
(fld->controlSource()[0] == '=') { +                func = QString("function \
%1_onrender_(){return \
%2;}").arg(fld->entityName().toLower()).arg(fld->controlSource().mid(1));  
                 funcs += func + "\n";
             }
+        }
+        if (o->type() == KRObjectData::EntityCheck) {
+        KRCheckData* chk = o->toCheck();
+            if (chk->controlSource()[0] == '=') {
+                func = QString("function %1_onrender_(){return \
%2;}").arg(chk->entityName().toLower()).arg(chk->controlSource().mid(1));  
+                funcs += func + "\n";
+            }
+
         }
     }
 
+
     return funcs;
 }
 
@@ -187,4 +198,4 @@
     w = w.mid(0, w.length() - 4);
     kDebug() << w;
     return w;
-}
\ No newline at end of file
+}
--- trunk/koffice/kexi/plugins/reportspgz/backend/wrtembed/reportentityfield.cpp \
#864064:864065 @@ -170,7 +170,7 @@
 // dquery.appendChild ( doc.createTextNode ( query() ) );
 // data.appendChild ( dquery );
     QDomElement dcolumn = doc.createElement("controlsource");
-    dcolumn.appendChild(doc.createTextNode(column()));
+    dcolumn.appendChild(doc.createTextNode(controlSource()));
     data.appendChild(dcolumn);
     entity.appendChild(data);
 


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

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