Added support for binding QDecimal values.

This commit is contained in:
2016-02-19 15:34:52 +01:00
parent 046c64b312
commit 8e999c7818
12 changed files with 70 additions and 17 deletions
+20 -2
View File
@@ -10,6 +10,9 @@
#include <QVariant>
#include <QMessageBox>
#include <QComboBox>
#include <QDebug>
#include "../qdecimal/src/QDecDouble.hh"
#include "iform.h"
#include "service.h"
@@ -77,7 +80,15 @@ private:
registerCombos();
foreach (QWidget *widget, m_bindWidgets) {
const char* prop = widget->metaObject()->userProperty().name();
widget->setProperty(prop, ((QObject*)m_entity.data())->property(widget->objectName().toStdString().c_str()));
QVariant value = ((QObject*)m_entity.data())->property(widget->objectName().toStdString().c_str());
if (value.canConvert<QDecDouble>())
{
widget->setProperty(prop, value.value<QDecDouble>().toString());
}
else
{
widget->setProperty(prop, value);
}
}
foreach (QComboBox *combo, m_bindCombos.keys()) {
@@ -117,7 +128,14 @@ private:
foreach (QWidget *widget, m_bindWidgets) {
const char* prop = widget->metaObject()->userProperty().name();
((QObject*)m_entity.data())->setProperty(widget->objectName().toStdString().c_str(), widget->property(prop));
QVariant val = widget->property(prop);
if (((QObject*)m_entity.data())->property(widget->objectName().toStdString().c_str()).canConvert<QDecDouble>())
{
QDecDouble dec(val.toDouble());
val = QVariant::fromValue(dec);
}
((QObject*)m_entity.data())->setProperty(widget->objectName().toStdString().c_str(), val);
}
foreach (QComboBox *combo, m_bindCombos.keys()) {
+8
View File
@@ -5,6 +5,9 @@
#include <QSharedPointer>
#include <QMetaProperty>
#include <QModelIndex>
#include <QDebug>
#include "../qdecimal/src/QDecDouble.hh"
#include "define.h"
#include "core_global.h"
@@ -58,6 +61,11 @@ public:
return qobject_cast<ComboItem*>(dispData.value<QObject*>())->toString();
}
if (dispData.canConvert<QDecDouble>())
{
return dispData.value<QDecDouble>().toDouble();
}
return dispData;
}
+6 -1
View File
@@ -127,4 +127,9 @@ OTHER_FILES += \
users/metaData.json \
roles/metaData.json
TRANSLATIONS = core_cz.ts
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../qdecimal/lib/ -lqdecimal -ldecnumber
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../qdecimal/lib/ -lqdecimal -ldecnumber
else:unix: LIBS += -L$$OUT_PWD/../qdecimal/lib/ -lqdecimal -ldecnumber
INCLUDEPATH += $$PWD/../qdecimal/src
INCLUDEPATH += $$PWD/../qdecimal/decnumber
+2
View File
@@ -9,5 +9,7 @@
#define PERM_EDIT "EDIT"
#define PERM_DELETE "DELETE"
#define DEC_MULTIPLE 100
#endif // DEFINE_H
+4 -3
View File
@@ -2,18 +2,19 @@
#define ENUMS_H
#include <QObject>
#include "core_global.h"
class Enums : public QObject
class CORESHARED_EXPORT Enums : public QObject
{
Q_OBJECT
Q_ENUMS(VatType)
public:
public:
enum VatType { HIGH,FIRST_LOWER,SECOND_LOWER };
Enums()
{
}
};