some polish
This commit is contained in:
parent
2b4526fbfe
commit
0af41ed396
6
nut.pri
6
nut.pri
|
|
@ -27,7 +27,8 @@ HEADERS += \
|
|||
$$PWD/src/serializableobject.h \
|
||||
$$PWD/src/sqlmodel.h \
|
||||
$$PWD/src/sqlmodel_p.h \
|
||||
$$PWD/src/phrase.h
|
||||
$$PWD/src/phrase.h \
|
||||
$$PWD/src/tuple.h
|
||||
|
||||
SOURCES += \
|
||||
$$PWD/src/generators/sqlgeneratorbase.cpp \
|
||||
|
|
@ -47,4 +48,5 @@ SOURCES += \
|
|||
$$PWD/src/database.cpp \
|
||||
$$PWD/src/serializableobject.cpp \
|
||||
$$PWD/src/sqlmodel.cpp \
|
||||
$$PWD/src/phrase.cpp
|
||||
$$PWD/src/phrase.cpp \
|
||||
$$PWD/src/tuple.cpp
|
||||
|
|
|
|||
|
|
@ -116,10 +116,10 @@ bool DatabasePrivate::open(bool update)
|
|||
return false;
|
||||
}
|
||||
|
||||
if(update)
|
||||
// if(update)
|
||||
return updateDatabase();
|
||||
else
|
||||
return true;
|
||||
// else
|
||||
// return true;
|
||||
}
|
||||
|
||||
bool DatabasePrivate::updateDatabase()
|
||||
|
|
@ -202,7 +202,7 @@ bool DatabasePrivate::getCurrectScheema()
|
|||
QString type;
|
||||
QString name;
|
||||
QString value;
|
||||
|
||||
qDebug()<<q->metaObject()->className();
|
||||
if (!nutClassInfoString(q->metaObject()->classInfo(i),
|
||||
type, name, value)) {
|
||||
qDebug() << "No valid table in" << q->metaObject()->classInfo(i).value();
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ class NUT_EXPORT Database : public QObject
|
|||
Q_DECLARE_PRIVATE(Database)
|
||||
|
||||
public:
|
||||
explicit Database(QObject *parent = 0);
|
||||
explicit Database(QObject *parent = nullptr);
|
||||
explicit Database(const Database &other);
|
||||
explicit Database(const QSqlDatabase &other);
|
||||
~Database();
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ TableModel *DatabaseModel::tableByClassName(QString className) const
|
|||
return s;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool DatabaseModel::operator ==(const DatabaseModel &other) const
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ NUT_BEGIN_NAMESPACE
|
|||
* INNER JOIN dbo.Entities ON dbo.GiftCards.GiftCardID = dbo.Entities.GiftCardID
|
||||
*/
|
||||
SqlGeneratorBase::SqlGeneratorBase(Database *parent)
|
||||
: QObject((QObject *)parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
if (parent)
|
||||
_database = parent;
|
||||
|
|
@ -251,7 +251,7 @@ QString SqlGeneratorBase::diffRelation(TableModel *oldTable, TableModel *newTabl
|
|||
QStringList columnSql;
|
||||
foreach (QString fieldName, relations) {
|
||||
RelationModel *newRelation = newTable->foregionKeyByField(fieldName);
|
||||
RelationModel *oldRelation = 0;
|
||||
RelationModel *oldRelation = nullptr;
|
||||
if (oldTable)
|
||||
oldRelation = oldTable->foregionKeyByField(fieldName);
|
||||
|
||||
|
|
@ -457,26 +457,18 @@ QString SqlGeneratorBase::agregateText(const AgregateType &t,
|
|||
switch (t) {
|
||||
case Min:
|
||||
return "MIN(" + arg + ")";
|
||||
break;
|
||||
|
||||
case Max:
|
||||
return "MAX(" + arg + ")";
|
||||
break;
|
||||
|
||||
case Average:
|
||||
return "AVERAGE(" + arg + ")";
|
||||
break;
|
||||
|
||||
case Count:
|
||||
return "COUNT(" + arg + ")";
|
||||
break;
|
||||
|
||||
case SignleField:
|
||||
return arg;
|
||||
break;
|
||||
|
||||
default:
|
||||
return QString();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -795,7 +787,6 @@ QString SqlGeneratorBase::escapeValue(const QVariant &v) const
|
|||
switch (v.type()) {
|
||||
case QVariant::Bool:
|
||||
return v.toBool() ? "1" : "0";
|
||||
break;
|
||||
|
||||
case QVariant::Int:
|
||||
case QVariant::UInt:
|
||||
|
|
@ -803,11 +794,9 @@ QString SqlGeneratorBase::escapeValue(const QVariant &v) const
|
|||
case QVariant::LongLong:
|
||||
case QVariant::Double:
|
||||
return v.toString();
|
||||
break;
|
||||
|
||||
case QVariant::Uuid:
|
||||
return "'" + v.toUuid().toString() + "'";
|
||||
break;
|
||||
|
||||
case QVariant::Char:
|
||||
case QVariant::String:
|
||||
|
|
@ -838,9 +827,10 @@ QString SqlGeneratorBase::escapeValue(const QVariant &v) const
|
|||
|
||||
case QVariant::Invalid:
|
||||
qFatal("Invalud field value");
|
||||
return "<FAIL>";
|
||||
|
||||
default:
|
||||
qDebug() << v.type();
|
||||
qWarning("No field escape rule for: %s", v.typeName());
|
||||
Q_UNREACHABLE();
|
||||
return QString();
|
||||
}
|
||||
|
|
@ -875,9 +865,6 @@ QString SqlGeneratorBase::phrase(const PhraseData *d) const
|
|||
case PhraseData::WithoutOperand:
|
||||
ret = phrase(d->left) + " " + operatorString(d->operatorCond);
|
||||
break;
|
||||
|
||||
default:
|
||||
ret = "<FAIL>";
|
||||
}
|
||||
|
||||
if (d->operatorCond == PhraseData::And || d->operatorCond == PhraseData::Or)
|
||||
|
|
@ -968,7 +955,7 @@ QString SqlGeneratorBase::createConditionalPhrase(const PhraseData *d) const
|
|||
//apply not (!)
|
||||
if (d->isNot) {
|
||||
if (op < 20)
|
||||
op = (PhraseData::Condition)((op + 10) % 20);
|
||||
op = static_cast<PhraseData::Condition>((op + 10) % 20);
|
||||
}
|
||||
switch (d->type) {
|
||||
case PhraseData::Field:
|
||||
|
|
@ -1007,9 +994,6 @@ QString SqlGeneratorBase::createConditionalPhrase(const PhraseData *d) const
|
|||
case PhraseData::WithoutOperand:
|
||||
ret = createConditionalPhrase(d->left) + " " + operatorString(op);
|
||||
break;
|
||||
|
||||
default:
|
||||
ret = "<FAIL phrase>";
|
||||
}
|
||||
|
||||
if (d->operatorCond == PhraseData::And || d->operatorCond == PhraseData::Or)
|
||||
|
|
@ -1069,7 +1053,6 @@ void SqlGeneratorBase::createInsertPhrase(const AssignmentPhraseList &ph, QStrin
|
|||
|
||||
case PhraseData::Field:
|
||||
case PhraseData::WithoutOperand:
|
||||
default:
|
||||
qFatal("Invalid insert command");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -180,6 +180,11 @@ AssignmentPhrase AbstractFieldPhrase::operator =(const QVariant &other)
|
|||
return AssignmentPhrase(this, other);
|
||||
}
|
||||
|
||||
AssignmentPhrase AbstractFieldPhrase::operator =(const ConditionalPhrase &other)
|
||||
{
|
||||
return AssignmentPhrase(new PhraseData(data, PhraseData::Equal, other.data));
|
||||
}
|
||||
|
||||
AssignmentPhrase AbstractFieldPhrase::operator <<(const QVariant &other)
|
||||
{
|
||||
return AssignmentPhrase(this, other);
|
||||
|
|
|
|||
|
|
@ -281,6 +281,7 @@ public:
|
|||
|
||||
AbstractFieldPhrase operator !();
|
||||
AssignmentPhrase operator =(const QVariant &other);
|
||||
AssignmentPhrase operator =(const ConditionalPhrase &other);
|
||||
AssignmentPhrase operator <<(const QVariant &other);
|
||||
};
|
||||
|
||||
|
|
@ -335,6 +336,9 @@ class FieldPhrase<type> : public AbstractFieldPhrase \
|
|||
AssignmentPhrase operator =(const QVariant &other) { \
|
||||
return AssignmentPhrase(this, other); \
|
||||
} \
|
||||
AssignmentPhrase operator =(const ConditionalPhrase &other) { \
|
||||
return AssignmentPhrase(new PhraseData(data, PhraseData::Equal, other.data)); \
|
||||
} \
|
||||
ConditionalPhrase between(const QVariant &min, const QVariant &max) \
|
||||
{ \
|
||||
return ConditionalPhrase(this, PhraseData::Between, \
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ NUT_BEGIN_NAMESPACE
|
|||
* This should be fixed to v1.2
|
||||
*/
|
||||
|
||||
Table::Table(QObject *parent) : QObject(parent), myModel(0), _parentTableSet(0)
|
||||
Table::Table(QObject *parent) : QObject(parent), myModel(nullptr), _parentTableSet(nullptr)
|
||||
{
|
||||
setStatus(NewCreated);
|
||||
}
|
||||
|
|
@ -57,7 +57,10 @@ QString Table::primaryKey() const
|
|||
|
||||
bool Table::isPrimaryKeyAutoIncrement() const
|
||||
{
|
||||
return myModel->field(myModel->primaryKey())->isAutoIncrement;
|
||||
FieldModel *pk = myModel->field(myModel->primaryKey());
|
||||
if (!pk)
|
||||
return false;
|
||||
return pk->isAutoIncrement;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -72,7 +75,7 @@ void Table::propertyChanged(QString propName)
|
|||
myModel = TableModel::findByClassName(metaObject()->className());
|
||||
|
||||
if (!myModel)
|
||||
qFatal ("model for this class not found");
|
||||
qFatal ("model for class '%s' not found", qPrintable(metaObject()->className()));
|
||||
|
||||
foreach (FieldModel *f, myModel->fields())
|
||||
if(f->isPrimaryKey && propName == f->name && f->isAutoIncrement)
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ void TableModel::setTypeId(const int &typeId)
|
|||
FieldModel *TableModel::field(int n) const
|
||||
{
|
||||
if (n < 0 || n >= _fields.count())
|
||||
return 0;
|
||||
return nullptr;
|
||||
|
||||
return _fields.at(n);
|
||||
}
|
||||
|
|
@ -80,7 +80,7 @@ FieldModel *TableModel::field(QString name) const
|
|||
if(f->name == name)
|
||||
return f;
|
||||
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
QList<FieldModel *> TableModel::fields() const
|
||||
|
|
@ -114,7 +114,7 @@ TableModel *TableModel::findByTypeId(int typeId)
|
|||
foreach (TableModel *model, _allModels)
|
||||
if(model->typeId() == typeId)
|
||||
return model;
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -125,11 +125,13 @@ TableModel *TableModel::findByTypeId(int typeId)
|
|||
*/
|
||||
TableModel *TableModel::findByClassName(QString className)
|
||||
{
|
||||
foreach (TableModel *model, _allModels)
|
||||
foreach (TableModel *model, _allModels){
|
||||
qDebug() << model->className();
|
||||
if(model->className() == className)
|
||||
return model;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
bool TableModel::operator ==(const TableModel &t) const{
|
||||
|
|
@ -377,7 +379,7 @@ RelationModel *TableModel::foregionKey(const QString &otherTable) const
|
|||
if(fk->masterClassName == otherTable)
|
||||
return fk;
|
||||
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
RelationModel *TableModel::foregionKeyByField(const QString &fieldName) const
|
||||
|
|
@ -386,7 +388,7 @@ RelationModel *TableModel::foregionKeyByField(const QString &fieldName) const
|
|||
if(fk->localColumn == fieldName)
|
||||
return fk;
|
||||
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
QString TableModel::toString() const
|
||||
|
|
@ -440,7 +442,7 @@ RelationModel::RelationModel(const QJsonObject &obj)
|
|||
localProperty = obj.value("localProperty").toString();
|
||||
masterClassName = obj.value("masterClassName").toString();
|
||||
foreignColumn = obj.value("foreignColumn").toString();
|
||||
slaveTable = masterTable = 0;
|
||||
slaveTable = masterTable = nullptr;
|
||||
}
|
||||
|
||||
QJsonObject RelationModel::toJson() const
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ Q_OUTOFLINE_TEMPLATE int TableSet<T>::length() const
|
|||
template<class T>
|
||||
Q_OUTOFLINE_TEMPLATE T *TableSet<T >::at(int i) const
|
||||
{
|
||||
return (T*)_tablesList.at(i);
|
||||
return reinterpret_cast<T*>(_tablesList.at(i));
|
||||
}
|
||||
|
||||
template<class T>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
#include "tuple.h"
|
||||
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
#ifndef TUPLE_H
|
||||
#define TUPLE_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
//class AbstractTuple
|
||||
//{
|
||||
// Q_GADGET
|
||||
//};
|
||||
|
||||
//template <typename T>
|
||||
//class Tuple
|
||||
//{
|
||||
//public:
|
||||
// T _1;
|
||||
//};
|
||||
|
||||
#endif // TUPLE_H
|
||||
Loading…
Reference in New Issue