Added support for binding QDecimal values.

print
Josef Rokos 9 years ago
parent 046c64b312
commit 8e999c7818

@ -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

@ -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

@ -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()) {

@ -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;
} }

@ -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

@ -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

@ -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()
{ {
} }
}; };

@ -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 {

@ -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
{ {

@ -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);

@ -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);"
], ],

@ -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

Loading…
Cancel
Save