convert tablesetbasedata to abstracttablesetdata
This commit is contained in:
parent
abc62fcedf
commit
f7160bd23f
|
|
@ -20,32 +20,32 @@
|
|||
|
||||
#include "table.h"
|
||||
#include "database.h"
|
||||
#include "tablesetbase.h"
|
||||
#include "abstracttableset.h"
|
||||
#include "databasemodel.h"
|
||||
#include "tablesetbasedata.h"
|
||||
#include "abstracttablesetdata.h"
|
||||
|
||||
NUT_BEGIN_NAMESPACE
|
||||
|
||||
TableSetBase::TableSetBase(Database *parent) : QObject(parent),
|
||||
data(new TableSetBaseData(parent))
|
||||
AbstractTableSet::AbstractTableSet(Database *parent) : QObject(parent),
|
||||
data(new AbstractTableSetData(parent))
|
||||
{
|
||||
parent->add(this);
|
||||
}
|
||||
|
||||
TableSetBase::TableSetBase(Table *parent) : QObject(parent),
|
||||
data(new TableSetBaseData(parent))
|
||||
AbstractTableSet::AbstractTableSet(Table *parent) : QObject(parent),
|
||||
data(new AbstractTableSetData(parent))
|
||||
{
|
||||
parent->add(this);
|
||||
}
|
||||
|
||||
TableSetBase::~TableSetBase()
|
||||
AbstractTableSet::~AbstractTableSet()
|
||||
{
|
||||
foreach (Row<Table> t, data->childs)
|
||||
if (t)
|
||||
t->setParentTableSet(nullptr);
|
||||
}
|
||||
|
||||
int TableSetBase::save(Database *db, bool cleanUp)
|
||||
int AbstractTableSet::save(Database *db, bool cleanUp)
|
||||
{
|
||||
int rowsAffected = 0;
|
||||
TableModel *masterModel = nullptr;
|
||||
|
|
@ -77,7 +77,7 @@ int TableSetBase::save(Database *db, bool cleanUp)
|
|||
return rowsAffected;
|
||||
}
|
||||
|
||||
void TableSetBase::clearChilds()
|
||||
void AbstractTableSet::clearChilds()
|
||||
{
|
||||
#ifndef NUT_SHARED_POINTER
|
||||
foreach (Table *t, data->childs)
|
||||
|
|
@ -86,30 +86,30 @@ void TableSetBase::clearChilds()
|
|||
data->childs.clear();
|
||||
}
|
||||
|
||||
void TableSetBase::add(Row<Table> t)
|
||||
void AbstractTableSet::add(Row<Table> t)
|
||||
{
|
||||
data.detach();
|
||||
data->childs.append(t);
|
||||
t->setParentTableSet(this);
|
||||
}
|
||||
|
||||
void TableSetBase::remove(Row<Table> t)
|
||||
void AbstractTableSet::remove(Row<Table> t)
|
||||
{
|
||||
data.detach();
|
||||
data->childs.removeAll(t);
|
||||
}
|
||||
|
||||
QString TableSetBase::childClassName() const
|
||||
QString AbstractTableSet::childClassName() const
|
||||
{
|
||||
return data->childClassName;
|
||||
}
|
||||
|
||||
Database *TableSetBase::database() const
|
||||
Database *AbstractTableSet::database() const
|
||||
{
|
||||
return data->database;
|
||||
}
|
||||
|
||||
void TableSetBase::setDatabase(Database *database)
|
||||
void AbstractTableSet::setDatabase(Database *database)
|
||||
{
|
||||
data.detach();
|
||||
data->database = database;
|
||||
|
|
@ -18,8 +18,8 @@
|
|||
**
|
||||
**************************************************************************/
|
||||
|
||||
#ifndef TABLESETBASE_H
|
||||
#define TABLESETBASE_H
|
||||
#ifndef NUT_ABSTRACTTABLESET_H
|
||||
#define NUT_ABSTRACTTABLESET_H
|
||||
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/qglobal.h>
|
||||
|
|
@ -32,14 +32,14 @@ NUT_BEGIN_NAMESPACE
|
|||
|
||||
class Table;
|
||||
class Database;
|
||||
class TableSetBaseData;
|
||||
class NUT_EXPORT TableSetBase : public QObject
|
||||
class AbstractTableSetData;
|
||||
class NUT_EXPORT AbstractTableSet : public QObject
|
||||
{
|
||||
|
||||
public:
|
||||
explicit TableSetBase(Database *parent);
|
||||
explicit TableSetBase(Table *parent);
|
||||
virtual ~TableSetBase();
|
||||
explicit AbstractTableSet(Database *parent);
|
||||
explicit AbstractTableSet(Table *parent);
|
||||
virtual ~AbstractTableSet();
|
||||
|
||||
virtual int save(Database *db, bool cleanUp = false);
|
||||
void clearChilds();
|
||||
|
|
@ -49,7 +49,7 @@ public:
|
|||
void setDatabase(Database *database);
|
||||
|
||||
protected:
|
||||
QExplicitlySharedDataPointer<TableSetBaseData> data;
|
||||
QExplicitlySharedDataPointer<AbstractTableSetData> data;
|
||||
|
||||
public://TODO: change this to private
|
||||
// void add(Table* t);
|
||||
|
|
@ -64,4 +64,4 @@ public://TODO: change this to private
|
|||
|
||||
NUT_END_NAMESPACE
|
||||
|
||||
#endif // TABLESETBASE_H
|
||||
#endif // NUT_ABSTRACTTABLESET_H
|
||||
|
|
@ -18,8 +18,8 @@
|
|||
**
|
||||
**************************************************************************/
|
||||
|
||||
#ifndef TABLESETBASEDATA_H
|
||||
#define TABLESETBASEDATA_H
|
||||
#ifndef NUT_ABSTRACTTABLESETDATA_H
|
||||
#define NUT_ABSTRACTTABLESETDATA_H
|
||||
|
||||
#include <QtCore/QSharedData>
|
||||
#include "defines.h"
|
||||
|
|
@ -28,14 +28,14 @@ NUT_BEGIN_NAMESPACE
|
|||
|
||||
class Table;
|
||||
class Database;
|
||||
class TableSetBaseData : public QSharedData
|
||||
class AbstractTableSetData : public QSharedData
|
||||
{
|
||||
public:
|
||||
TableSetBaseData(Database *parent) :
|
||||
AbstractTableSetData(Database *parent) :
|
||||
database(parent), table(nullptr)
|
||||
{ }
|
||||
|
||||
TableSetBaseData(Table *parent) :
|
||||
AbstractTableSetData(Table *parent) :
|
||||
database(nullptr), table(parent)
|
||||
{ }
|
||||
|
||||
|
|
@ -50,4 +50,4 @@ public:
|
|||
|
||||
NUT_END_NAMESPACE
|
||||
|
||||
#endif // TABLESETBASEDATA_H
|
||||
#endif // NUT_ABSTRACTTABLESETDATA_H
|
||||
|
|
@ -595,7 +595,7 @@ QSqlQuery Database::exec(const QString &sql)
|
|||
return q;
|
||||
}
|
||||
|
||||
void Database::add(TableSetBase *t)
|
||||
void Database::add(AbstractTableSet *t)
|
||||
{
|
||||
Q_D(Database);
|
||||
d->tableSets.insert(t);
|
||||
|
|
@ -611,7 +611,7 @@ int Database::saveChanges(bool cleanUp)
|
|||
}
|
||||
|
||||
int rowsAffected = 0;
|
||||
foreach (TableSetBase *ts, d->tableSets)
|
||||
foreach (AbstractTableSet *ts, d->tableSets)
|
||||
rowsAffected += ts->save(this, cleanUp);
|
||||
|
||||
return rowsAffected;
|
||||
|
|
@ -620,7 +620,7 @@ int Database::saveChanges(bool cleanUp)
|
|||
void Database::cleanUp()
|
||||
{
|
||||
Q_D(Database);
|
||||
foreach (TableSetBase *ts, d->tableSets)
|
||||
foreach (AbstractTableSet *ts, d->tableSets)
|
||||
ts->clearChilds();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ NUT_BEGIN_NAMESPACE
|
|||
|
||||
class DatabaseModel;
|
||||
class DatabasePrivate;
|
||||
class TableSetBase;
|
||||
class AbstractTableSet;
|
||||
class AbstractSqlGenerator;
|
||||
class ChangeLogTable;
|
||||
class NUT_EXPORT Database : public QObject
|
||||
|
|
@ -88,9 +88,9 @@ public slots:
|
|||
void setDriver(QString driver);
|
||||
|
||||
private:
|
||||
void add(TableSetBase *);
|
||||
void add(AbstractTableSet *);
|
||||
|
||||
friend class TableSetBase;
|
||||
friend class AbstractTableSet;
|
||||
};
|
||||
|
||||
NUT_END_NAMESPACE
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ public:
|
|||
static QMap<QString, DatabaseModel> allTableMaps;
|
||||
static qulonglong lastId;
|
||||
|
||||
QSet<TableSetBase *> tableSets;
|
||||
QSet<AbstractTableSet *> tableSets;
|
||||
|
||||
bool isDatabaseNew;
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ HEADERS += \
|
|||
$$PWD/generators/mysqlgenerator.h \
|
||||
$$PWD/generators/sqlitegenerator.h \
|
||||
$$PWD/generators/sqlservergenerator.h \
|
||||
$$PWD/tablesetbasedata.h \
|
||||
$$PWD/types/dbgeography.h \
|
||||
$$PWD/tableset.h \
|
||||
$$PWD/defines_consts.h \
|
||||
|
|
@ -29,7 +28,8 @@ HEADERS += \
|
|||
$$PWD/bulkinserter.h \
|
||||
$$PWD/databasemodel.h \
|
||||
$$PWD/changelogtable.h \
|
||||
$$PWD/tablesetbase.h \
|
||||
$$PWD/abstracttableset.h \
|
||||
$$PWD/abstracttablesetdata.h \
|
||||
$$PWD/querybase_p.h \
|
||||
$$PWD/tablemodel.h \
|
||||
$$PWD/query_p.h \
|
||||
|
|
@ -62,7 +62,7 @@ SOURCES += \
|
|||
$$PWD/query.cpp \
|
||||
$$PWD/bulkinserter.cpp \
|
||||
$$PWD/databasemodel.cpp \
|
||||
$$PWD/tablesetbase.cpp \
|
||||
$$PWD/abstracttableset.cpp \
|
||||
$$PWD/changelogtable.cpp \
|
||||
$$PWD/querybase.cpp \
|
||||
$$PWD/tablemodel.cpp \
|
||||
|
|
|
|||
|
|
@ -35,13 +35,13 @@
|
|||
#include <QtCore/QSharedPointer>
|
||||
#endif
|
||||
|
||||
#include "table.h"
|
||||
#include "query_p.h"
|
||||
#include <QtNut/table.h>
|
||||
#include <QtNut/private/query_p.h>
|
||||
#include <QtNut/private/querybase_p.h>
|
||||
#include "database.h"
|
||||
#include "databasemodel.h"
|
||||
#include "tablesetbase.h"
|
||||
#include "abstracttableset.h"
|
||||
#include "abstractsqlgenerator.h"
|
||||
#include "querybase_p.h"
|
||||
#include "phrase.h"
|
||||
#include "tablemodel.h"
|
||||
#include "sqlmodel.h"
|
||||
|
|
@ -57,7 +57,7 @@ class Query : public QueryBase
|
|||
bool m_autoDelete;
|
||||
|
||||
public:
|
||||
explicit Query(Database *database, TableSetBase *tableSet, bool autoDelete);
|
||||
explicit Query(Database *database, AbstractTableSet *tableSet, bool autoDelete);
|
||||
~Query();
|
||||
|
||||
//ddl
|
||||
|
|
@ -95,11 +95,10 @@ public:
|
|||
QVariant sum(const FieldPhrase<int> &f);
|
||||
QVariant average(const FieldPhrase<int> &f);
|
||||
|
||||
QVariant insert(const AssignmentPhraseList &p);
|
||||
|
||||
//data mailpulation
|
||||
int update(const AssignmentPhraseList &ph);
|
||||
// int insert(const AssignmentPhraseList &ph);
|
||||
QVariant insert(const AssignmentPhraseList &p);
|
||||
int remove();
|
||||
|
||||
QSqlQueryModel *toModel();
|
||||
|
|
@ -145,7 +144,7 @@ Q_OUTOFLINE_TEMPLATE QList<O> Query<T>::select(const std::function<O (const QSql
|
|||
//}
|
||||
|
||||
template <class T>
|
||||
Q_OUTOFLINE_TEMPLATE Query<T>::Query(Database *database, TableSetBase *tableSet,
|
||||
Q_OUTOFLINE_TEMPLATE Query<T>::Query(Database *database, AbstractTableSet *tableSet,
|
||||
bool autoDelete)
|
||||
: QueryBase(database), d_ptr(new QueryPrivate(this)),
|
||||
m_autoDelete(autoDelete)
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
NUT_BEGIN_NAMESPACE
|
||||
|
||||
class Database;
|
||||
class TableSetBase;
|
||||
class AbstractTableSet;
|
||||
class QueryBase;
|
||||
struct RelationModel;
|
||||
class NUT_EXPORT QueryPrivate : public QSharedData {
|
||||
|
|
@ -46,7 +46,7 @@ public:
|
|||
QString tableName;
|
||||
QString select;
|
||||
Database *database;
|
||||
TableSetBase *tableSet;
|
||||
AbstractTableSet *tableSet;
|
||||
QStringList joins;
|
||||
QList<RelationModel*> relations;
|
||||
int skip;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#include "querybase_p.h"
|
||||
|
||||
#include "table.h"
|
||||
#include "tablesetbase.h"
|
||||
#include "abstracttableset.h"
|
||||
|
||||
|
||||
NUT_BEGIN_NAMESPACE
|
||||
|
|
@ -11,7 +11,7 @@ QueryBase::QueryBase(QObject *parent) : QObject(parent)
|
|||
|
||||
}
|
||||
|
||||
//void QueryBase::addTableToSet(TableSetBase *set, Table *table)
|
||||
//void QueryBase::addTableToSet(AbstractTableSet *set, Table *table)
|
||||
//{
|
||||
// set->add(table);
|
||||
//}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ NUT_BEGIN_NAMESPACE
|
|||
|
||||
//TODO: remove this class
|
||||
class Table;
|
||||
class TableSetBase;
|
||||
class AbstractTableSet;
|
||||
class NUT_EXPORT QueryBase : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
|
@ -44,7 +44,7 @@ public:
|
|||
explicit QueryBase(QObject *parent = nullptr);
|
||||
|
||||
protected:
|
||||
// void addTableToSet(TableSetBase *set, Table *table);
|
||||
// void addTableToSet(AbstractTableSet *set, Table *table);
|
||||
|
||||
public slots:
|
||||
};
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
**************************************************************************/
|
||||
|
||||
#include "database.h"
|
||||
#include "tablesetbase.h"
|
||||
#include "abstracttableset.h"
|
||||
#include "databasemodel.h"
|
||||
#include "tablemodel.h"
|
||||
#include "table.h"
|
||||
|
|
@ -39,7 +39,7 @@ void SqlModel::setRenderer(const std::function<QVariant (int, QVariant)> &render
|
|||
_renderer = renderer;
|
||||
}
|
||||
|
||||
SqlModel::SqlModel(Database *database, TableSetBase *tableSet, QObject *parent)
|
||||
SqlModel::SqlModel(Database *database, AbstractTableSet *tableSet, QObject *parent)
|
||||
: QAbstractTableModel(parent)
|
||||
, _renderer(nullptr)
|
||||
, d(new SqlModelPrivate(this))
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
NUT_BEGIN_NAMESPACE
|
||||
|
||||
class Database;
|
||||
class TableSetBase;
|
||||
class AbstractTableSet;
|
||||
class Table;
|
||||
class TableModel;
|
||||
|
||||
|
|
@ -43,7 +43,7 @@ class NUT_EXPORT SqlModel : public QAbstractTableModel
|
|||
|
||||
public:
|
||||
// explicit SqlModel(Query *q);
|
||||
explicit SqlModel(Database *database, TableSetBase *tableSet, QObject *parent = Q_NULLPTR);
|
||||
explicit SqlModel(Database *database, AbstractTableSet *tableSet, QObject *parent = Q_NULLPTR);
|
||||
|
||||
int rowCount(const QModelIndex &parent) const;
|
||||
int columnCount(const QModelIndex &parent) const;
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
#include "database.h"
|
||||
#include "databasemodel.h"
|
||||
#include "abstractsqlgenerator.h"
|
||||
#include "tablesetbase.h"
|
||||
#include "abstracttableset.h"
|
||||
|
||||
NUT_BEGIN_NAMESPACE
|
||||
|
||||
|
|
@ -55,7 +55,7 @@ Table::~Table()
|
|||
// d->parentTableSet->remove(this);
|
||||
}
|
||||
|
||||
void Table::add(TableSetBase *t)
|
||||
void Table::add(AbstractTableSet *t)
|
||||
{
|
||||
//Q_D(Table);
|
||||
d->childTableSets.insert(t);
|
||||
|
|
@ -145,13 +145,13 @@ bool Table::setParentTable(Table *master, TableModel *masterModel, TableModel *m
|
|||
return false;
|
||||
}
|
||||
|
||||
TableSetBase *Table::parentTableSet() const
|
||||
AbstractTableSet *Table::parentTableSet() const
|
||||
{
|
||||
//Q_D(const Table);
|
||||
return d->parentTableSet;
|
||||
}
|
||||
|
||||
void Table::setParentTableSet(TableSetBase *parent)
|
||||
void Table::setParentTableSet(AbstractTableSet *parent)
|
||||
{
|
||||
//Q_D(Table);
|
||||
d->parentTableSet = parent;
|
||||
|
|
@ -160,10 +160,10 @@ void Table::setParentTableSet(TableSetBase *parent)
|
|||
// d->parentTableSet->add(this);
|
||||
}
|
||||
|
||||
TableSetBase *Table::childTableSet(const QString &name) const
|
||||
AbstractTableSet *Table::childTableSet(const QString &name) const
|
||||
{
|
||||
//Q_D(const Table);
|
||||
foreach (TableSetBase *t, d->childTableSets)
|
||||
foreach (AbstractTableSet *t, d->childTableSets)
|
||||
if (t->childClassName() == name)
|
||||
return t;
|
||||
return Q_NULLPTR;
|
||||
|
|
@ -179,7 +179,7 @@ int Table::save(Database *db)
|
|||
if(status() == Added && model->isPrimaryKeyAutoIncrement())
|
||||
setProperty(model->primaryKey().toLatin1().data(), q.lastInsertId());
|
||||
|
||||
foreach(TableSetBase *ts, d->childTableSets)
|
||||
foreach(AbstractTableSet *ts, d->childTableSets)
|
||||
ts->save(db);
|
||||
setStatus(FetchedFromDB);
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
NUT_BEGIN_NAMESPACE
|
||||
|
||||
class Database;
|
||||
class TableSetBase;
|
||||
class AbstractTableSet;
|
||||
class TableModel;
|
||||
class TablePrivate;
|
||||
class NUT_EXPORT Table : public QObject
|
||||
|
|
@ -61,10 +61,10 @@ public:
|
|||
Status status() const;
|
||||
void setStatus(const Status &status);
|
||||
|
||||
TableSetBase *parentTableSet() const;
|
||||
void setParentTableSet(TableSetBase *parentTableSet);
|
||||
AbstractTableSet *parentTableSet() const;
|
||||
void setParentTableSet(AbstractTableSet *parentTableSet);
|
||||
|
||||
TableSetBase *childTableSet(const QString &name) const;
|
||||
AbstractTableSet *childTableSet(const QString &name) const;
|
||||
|
||||
QSet<QString> changedProperties() const;
|
||||
|
||||
|
|
@ -82,18 +82,18 @@ private:
|
|||
// Status _status;
|
||||
// QSet<QString> _changedProperties;
|
||||
//TODO: is this removable?
|
||||
// TableSetBase *_parentTableSet;
|
||||
// AbstractTableSet *_parentTableSet;
|
||||
|
||||
// QSet<TableSetBase*> childTableSets;
|
||||
// QSet<AbstractTableSet*> childTableSets;
|
||||
void clear();
|
||||
void add(TableSetBase *);
|
||||
void add(AbstractTableSet *);
|
||||
|
||||
template<class T>
|
||||
friend class Query;
|
||||
|
||||
template<class T>
|
||||
friend class TableSet;
|
||||
friend class TableSetBase;
|
||||
friend class AbstractTableSet;
|
||||
};
|
||||
|
||||
NUT_END_NAMESPACE
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ NUT_BEGIN_NAMESPACE
|
|||
|
||||
class TableModel;
|
||||
class Table;
|
||||
class TableSetBase;
|
||||
class AbstractTableSet;
|
||||
class TablePrivate : public QSharedData {
|
||||
Table *q_ptr;
|
||||
Q_DECLARE_PUBLIC(Table)
|
||||
|
|
@ -22,8 +22,8 @@ public:
|
|||
TableModel *model;
|
||||
Table::Status status;
|
||||
QSet<QString> changedProperties;
|
||||
TableSetBase *parentTableSet;
|
||||
QSet<TableSetBase*> childTableSets;
|
||||
AbstractTableSet *parentTableSet;
|
||||
QSet<AbstractTableSet*> childTableSets;
|
||||
|
||||
void refreshModel();
|
||||
};
|
||||
|
|
|
|||
|
|
@ -29,11 +29,11 @@
|
|||
|
||||
#include <QtSql/QSqlQuery>
|
||||
|
||||
#include "tablesetbase.h"
|
||||
#include "abstracttableset.h"
|
||||
#include "table.h"
|
||||
#include "bulkinserter.h"
|
||||
#include "databasemodel.h"
|
||||
#include "tablesetbasedata.h"
|
||||
#include "abstracttablesetdata.h"
|
||||
|
||||
NUT_BEGIN_NAMESPACE
|
||||
|
||||
|
|
@ -44,7 +44,7 @@ class BulkInserter;
|
|||
class Database;
|
||||
|
||||
template<class T>
|
||||
class TableSet : public TableSetBase
|
||||
class TableSet : public AbstractTableSet
|
||||
{
|
||||
public:
|
||||
typedef T value_type;
|
||||
|
|
@ -68,13 +68,13 @@ public:
|
|||
};
|
||||
|
||||
template<class T>
|
||||
Q_OUTOFLINE_TEMPLATE TableSet<T>::TableSet(Database *parent) : TableSetBase(parent)
|
||||
Q_OUTOFLINE_TEMPLATE TableSet<T>::TableSet(Database *parent) : AbstractTableSet(parent)
|
||||
{
|
||||
data->childClassName = QString::fromUtf8(T::staticMetaObject.className());
|
||||
}
|
||||
|
||||
template<class T>
|
||||
Q_OUTOFLINE_TEMPLATE TableSet<T>::TableSet(Table *parent) : TableSetBase(parent)
|
||||
Q_OUTOFLINE_TEMPLATE TableSet<T>::TableSet(Table *parent) : AbstractTableSet(parent)
|
||||
{
|
||||
data->childClassName = QString::fromUtf8(T::staticMetaObject.className());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
%modules = (
|
||||
"QtNut" => "$basedir/src/nut",
|
||||
);
|
||||
|
||||
$publicclassregexp = "^QtJsonSerializer::(?!__private::|MetaWriters::Implementations::|TypeExtractors::|Exception).+";
|
||||
|
|
|
|||
Loading…
Reference in New Issue