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
+7
View File
@@ -60,3 +60,10 @@ ODB_FILES = accommodation/data/accommodation-data.h
H_DIR = $$PWD/data/*.h H_DIR = $$PWD/data/*.h
include(../odb.pri) include(../odb.pri)
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
+7
View File
@@ -47,5 +47,12 @@ else:unix: LIBS += -L$$OUT_PWD/../core/ -lcore
INCLUDEPATH += $$PWD/../core INCLUDEPATH += $$PWD/../core
DEPENDPATH += $$PWD/../core DEPENDPATH += $$PWD/../core
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
RESOURCES += \ RESOURCES += \
appRc.qrc appRc.qrc
+20 -2
View File
@@ -10,6 +10,9 @@
#include <QVariant> #include <QVariant>
#include <QMessageBox> #include <QMessageBox>
#include <QComboBox> #include <QComboBox>
#include <QDebug>
#include "../qdecimal/src/QDecDouble.hh"
#include "iform.h" #include "iform.h"
#include "service.h" #include "service.h"
@@ -77,7 +80,15 @@ private:
registerCombos(); registerCombos();
foreach (QWidget *widget, m_bindWidgets) { foreach (QWidget *widget, m_bindWidgets) {
const char* prop = widget->metaObject()->userProperty().name(); 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()) { foreach (QComboBox *combo, m_bindCombos.keys()) {
@@ -117,7 +128,14 @@ private:
foreach (QWidget *widget, m_bindWidgets) { foreach (QWidget *widget, m_bindWidgets) {
const char* prop = widget->metaObject()->userProperty().name(); 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()) { foreach (QComboBox *combo, m_bindCombos.keys()) {
+8
View File
@@ -5,6 +5,9 @@
#include <QSharedPointer> #include <QSharedPointer>
#include <QMetaProperty> #include <QMetaProperty>
#include <QModelIndex> #include <QModelIndex>
#include <QDebug>
#include "../qdecimal/src/QDecDouble.hh"
#include "define.h" #include "define.h"
#include "core_global.h" #include "core_global.h"
@@ -58,6 +61,11 @@ public:
return qobject_cast<ComboItem*>(dispData.value<QObject*>())->toString(); return qobject_cast<ComboItem*>(dispData.value<QObject*>())->toString();
} }
if (dispData.canConvert<QDecDouble>())
{
return dispData.value<QDecDouble>().toDouble();
}
return dispData; return dispData;
} }
+6 -1
View File
@@ -127,4 +127,9 @@ OTHER_FILES += \
users/metaData.json \ users/metaData.json \
roles/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_EDIT "EDIT"
#define PERM_DELETE "DELETE" #define PERM_DELETE "DELETE"
#define DEC_MULTIPLE 100
#endif // DEFINE_H #endif // DEFINE_H
+3 -2
View File
@@ -2,10 +2,12 @@
#define ENUMS_H #define ENUMS_H
#include <QObject> #include <QObject>
#include "core_global.h"
class Enums : public QObject class CORESHARED_EXPORT Enums : public QObject
{ {
Q_OBJECT Q_OBJECT
Q_ENUMS(VatType) Q_ENUMS(VatType)
public: public:
@@ -13,7 +15,6 @@ class Enums : public QObject
Enums() Enums()
{ {
} }
}; };
+2
View File
@@ -43,6 +43,8 @@ DEFINES += DATABASE_SQLITE
ODB_FLAGS += -I $$[QT_INSTALL_HEADERS] ODB_FLAGS += -I $$[QT_INSTALL_HEADERS]
ODB_FLAGS += -I $$[QT_INSTALL_HEADERS]/QtCore ODB_FLAGS += -I $$[QT_INSTALL_HEADERS]/QtCore
ODB_FLAGS += -I $$PWD/core ODB_FLAGS += -I $$PWD/core
ODB_FLAGS += -I $$PWD/qdecimal/src
ODB_FLAGS += -I $$PWD/qdecimal/decnumber
ODB_FLAGS += -D __PIC__ ODB_FLAGS += -D __PIC__
win32 { win32 {
+5 -4
View File
@@ -1,4 +1,5 @@
#include "accservice.h" #include "accservice.h"
#include <define.h>
AccService::AccService() AccService::AccService()
{ {
@@ -14,14 +15,14 @@ void AccService::setId(int id)
{ {
m_id = id; m_id = id;
} }
int AccService::price() const QDecDouble AccService::price() const
{ {
return m_price; return QDecDouble((double)m_price / DEC_MULTIPLE);
} }
void AccService::setPrice(int price) void AccService::setPrice(QDecDouble price)
{ {
m_price = price; m_price = price.toDouble() * DEC_MULTIPLE;
} }
bool AccService::active() const bool AccService::active() const
{ {
+4 -3
View File
@@ -3,6 +3,7 @@
#include <QObject> #include <QObject>
#include <QString> #include <QString>
#include <QDecDouble.hh>
#include <odb/core.hxx> #include <odb/core.hxx>
@@ -15,7 +16,7 @@ class AccService : public QObject
Q_PROPERTY(QString accServiceName READ accServiceName WRITE setAccServiceName) Q_PROPERTY(QString accServiceName READ accServiceName WRITE setAccServiceName)
Q_PROPERTY(QString accServiceCode READ accServiceCode WRITE setAccServiceCode) Q_PROPERTY(QString accServiceCode READ accServiceCode WRITE setAccServiceCode)
Q_PROPERTY(int price READ price WRITE setPrice) Q_PROPERTY(QDecDouble price READ price WRITE setPrice)
Q_PROPERTY(bool active READ active WRITE setActive) Q_PROPERTY(bool active READ active WRITE setActive)
Q_PROPERTY(bool salePossible READ salePossible WRITE setSalePossible) Q_PROPERTY(bool salePossible READ salePossible WRITE setSalePossible)
Q_PROPERTY(ServiceType serviceType READ serviceType WRITE setServiceType) Q_PROPERTY(ServiceType serviceType READ serviceType WRITE setServiceType)
@@ -32,8 +33,8 @@ public:
int id() const; int id() const;
void setId(int id); void setId(int id);
int price() const; QDecDouble price() const;
void setPrice(int price); void setPrice(QDecDouble price);
bool active() const; bool active() const;
void setActive(bool active); void setActive(bool active);
+1 -1
View File
@@ -17,7 +17,7 @@
\"price\" INTEGER NOT NULL, \"price\" INTEGER NOT NULL,
\"active\" INTEGER NOT NULL, \"active\" INTEGER NOT NULL,
\"salePossible\" INTEGER NOT NULL, \"salePossible\" INTEGER NOT NULL,
\"serviceType\" INTEGER NOT NULL \"serviceType\" INTEGER NOT NULL,
\"vatType\" INTEGER NOT NULL);" \"vatType\" INTEGER NOT NULL);"
], ],
+4 -3
View File
@@ -57,11 +57,12 @@ include(../odb.pri)
FORMS += \ FORMS += \
accserviceform.ui accserviceform.ui
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../qdecimal/lib/release/ -lqdecimal 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/debug/ -lqdecimal else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../qdecimal/lib/ -lqdecimal -ldecnumber
else:unix: LIBS += -L$$OUT_PWD/../qdecimal/lib/ -lqdecimal else:unix: LIBS += -L$$OUT_PWD/../qdecimal/lib/ -lqdecimal -ldecnumber
INCLUDEPATH += $$PWD/../qdecimal/src INCLUDEPATH += $$PWD/../qdecimal/src
INCLUDEPATH += $$PWD/../qdecimal/decnumber
DEPENDPATH += $$PWD/../qdecimal/src DEPENDPATH += $$PWD/../qdecimal/src
#win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../qdecimal/src/release/libqdecimal.a #win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../qdecimal/src/release/libqdecimal.a