Nut::Table::d changed to QExplicitlySharedDataPointer
This commit is contained in:
parent
765ac9a5e3
commit
34f494e674
|
|
@ -1 +1 @@
|
||||||
Subproject commit e0bdec4a7c93b4d4307fd89200000ff817a86c99
|
Subproject commit 51500a497933444196942ee0db6628338a0422af
|
||||||
|
|
@ -44,12 +44,12 @@ NUT_BEGIN_NAMESPACE
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Table::Table(QObject *parent) : QObject(parent),
|
Table::Table(QObject *parent) : QObject(parent),
|
||||||
d_ptr(new TablePrivate(this))
|
d(new TablePrivate(this))
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
Table::~Table()
|
Table::~Table()
|
||||||
{
|
{
|
||||||
Q_D(Table);
|
//Q_D(Table);
|
||||||
|
|
||||||
if (d->parentTableSet)
|
if (d->parentTableSet)
|
||||||
d->parentTableSet->remove(this);
|
d->parentTableSet->remove(this);
|
||||||
|
|
@ -57,19 +57,19 @@ Table::~Table()
|
||||||
|
|
||||||
void Table::add(TableSetBase *t)
|
void Table::add(TableSetBase *t)
|
||||||
{
|
{
|
||||||
Q_D(Table);
|
//Q_D(Table);
|
||||||
d->childTableSets.insert(t);
|
d->childTableSets.insert(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
//QString Table::primaryKey() const
|
//QString Table::primaryKey() const
|
||||||
//{
|
//{
|
||||||
// Q_D(const Table);
|
// //Q_D(const Table);
|
||||||
// return d->model->primaryKey();
|
// return d->model->primaryKey();
|
||||||
//}
|
//}
|
||||||
|
|
||||||
//bool Table::isPrimaryKeyAutoIncrement() const
|
//bool Table::isPrimaryKeyAutoIncrement() const
|
||||||
//{
|
//{
|
||||||
// Q_D(const Table);
|
// //Q_D(const Table);
|
||||||
// FieldModel *pk = d->model->field(d->model->primaryKey());
|
// FieldModel *pk = d->model->field(d->model->primaryKey());
|
||||||
// if (!pk)
|
// if (!pk)
|
||||||
// return false;
|
// return false;
|
||||||
|
|
@ -84,7 +84,7 @@ void Table::add(TableSetBase *t)
|
||||||
|
|
||||||
void Table::propertyChanged(const QString &propName)
|
void Table::propertyChanged(const QString &propName)
|
||||||
{
|
{
|
||||||
Q_D(Table);
|
//Q_D(Table);
|
||||||
// if (!d->model)
|
// if (!d->model)
|
||||||
// d->model = TableModel::findByClassName(metaObject()->className());
|
// d->model = TableModel::findByClassName(metaObject()->className());
|
||||||
|
|
||||||
|
|
@ -95,6 +95,7 @@ void Table::propertyChanged(const QString &propName)
|
||||||
// if(f->isPrimaryKey && propName == f->name && f->isAutoIncrement)
|
// if(f->isPrimaryKey && propName == f->name && f->isAutoIncrement)
|
||||||
// return;
|
// return;
|
||||||
|
|
||||||
|
d.detach();
|
||||||
d->changedProperties.insert(propName);
|
d->changedProperties.insert(propName);
|
||||||
if (d->status == FeatchedFromDB)
|
if (d->status == FeatchedFromDB)
|
||||||
d->status = Modified;
|
d->status = Modified;
|
||||||
|
|
@ -105,25 +106,26 @@ void Table::propertyChanged(const QString &propName)
|
||||||
|
|
||||||
void Table::setModel(TableModel *model)
|
void Table::setModel(TableModel *model)
|
||||||
{
|
{
|
||||||
Q_D(Table);
|
//Q_D(Table);
|
||||||
d->model = model;
|
d->model = model;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Table::clear()
|
void Table::clear()
|
||||||
{
|
{
|
||||||
Q_D(Table);
|
//Q_D(Table);
|
||||||
d->changedProperties.clear();
|
d->changedProperties.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
QSet<QString> Table::changedProperties() const
|
QSet<QString> Table::changedProperties() const
|
||||||
{
|
{
|
||||||
Q_D(const Table);
|
//Q_D(const Table);
|
||||||
return d->changedProperties;
|
return d->changedProperties;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Table::setParentTable(Table *master, TableModel *masterModel, TableModel *model)
|
bool Table::setParentTable(Table *master, TableModel *masterModel, TableModel *model)
|
||||||
{
|
{
|
||||||
Q_D(Table);
|
//Q_D(Table);
|
||||||
|
d.detach();
|
||||||
|
|
||||||
QString masterClassName = master->metaObject()->className();
|
QString masterClassName = master->metaObject()->className();
|
||||||
d->refreshModel();
|
d->refreshModel();
|
||||||
|
|
@ -145,13 +147,13 @@ bool Table::setParentTable(Table *master, TableModel *masterModel, TableModel *m
|
||||||
|
|
||||||
TableSetBase *Table::parentTableSet() const
|
TableSetBase *Table::parentTableSet() const
|
||||||
{
|
{
|
||||||
Q_D(const Table);
|
//Q_D(const Table);
|
||||||
return d->parentTableSet;
|
return d->parentTableSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Table::setParentTableSet(TableSetBase *parent)
|
void Table::setParentTableSet(TableSetBase *parent)
|
||||||
{
|
{
|
||||||
Q_D(Table);
|
//Q_D(Table);
|
||||||
d->parentTableSet = parent;
|
d->parentTableSet = parent;
|
||||||
|
|
||||||
if (parent)
|
if (parent)
|
||||||
|
|
@ -160,7 +162,7 @@ void Table::setParentTableSet(TableSetBase *parent)
|
||||||
|
|
||||||
TableSetBase *Table::childTableSet(const QString &name) const
|
TableSetBase *Table::childTableSet(const QString &name) const
|
||||||
{
|
{
|
||||||
Q_D(const Table);
|
//Q_D(const Table);
|
||||||
foreach (TableSetBase *t, d->childTableSets)
|
foreach (TableSetBase *t, d->childTableSets)
|
||||||
if (t->childClassName() == name)
|
if (t->childClassName() == name)
|
||||||
return t;
|
return t;
|
||||||
|
|
@ -169,7 +171,7 @@ TableSetBase *Table::childTableSet(const QString &name) const
|
||||||
|
|
||||||
int Table::save(Database *db)
|
int Table::save(Database *db)
|
||||||
{
|
{
|
||||||
Q_D(Table);
|
//Q_D(Table);
|
||||||
|
|
||||||
QSqlQuery q = db->exec(db->sqlGenertor()->saveRecord(this, db->tableName(metaObject()->className())));
|
QSqlQuery q = db->exec(db->sqlGenertor()->saveRecord(this, db->tableName(metaObject()->className())));
|
||||||
|
|
||||||
|
|
@ -186,19 +188,19 @@ int Table::save(Database *db)
|
||||||
|
|
||||||
Table::Status Table::status() const
|
Table::Status Table::status() const
|
||||||
{
|
{
|
||||||
Q_D(const Table);
|
//Q_D(const Table);
|
||||||
return static_cast<Status>(d->status);
|
return static_cast<Status>(d->status);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Table::setStatus(const Status &status)
|
void Table::setStatus(const Status &status)
|
||||||
{
|
{
|
||||||
Q_D(Table);
|
//Q_D(Table);
|
||||||
d->status = status;
|
d->status = status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TablePrivate::TablePrivate(Table *parent) : q_ptr(parent),
|
TablePrivate::TablePrivate(Table *parent) : QSharedData(),
|
||||||
model(nullptr), status(Table::NewCreated), parentTableSet(nullptr)
|
model(nullptr), status(Table::NewCreated), parentTableSet(nullptr)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -206,7 +208,7 @@ TablePrivate::TablePrivate(Table *parent) : q_ptr(parent),
|
||||||
|
|
||||||
void TablePrivate::refreshModel()
|
void TablePrivate::refreshModel()
|
||||||
{
|
{
|
||||||
Q_Q(Table);
|
// Q_Q(Table);
|
||||||
// if (!model)
|
// if (!model)
|
||||||
// model = TableModel::findByClassName(q->metaObject()->className());
|
// model = TableModel::findByClassName(q->metaObject()->className());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,8 +38,7 @@ class TablePrivate;
|
||||||
class NUT_EXPORT Table : public QObject
|
class NUT_EXPORT Table : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
TablePrivate *d_ptr;
|
QExplicitlySharedDataPointer<TablePrivate> d;
|
||||||
Q_DECLARE_PRIVATE(Table)
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit Table(QObject *parentTableSet = nullptr);
|
explicit Table(QObject *parentTableSet = nullptr);
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,14 @@
|
||||||
#include "defines.h"
|
#include "defines.h"
|
||||||
|
|
||||||
#include <QtCore/QSet>
|
#include <QtCore/QSet>
|
||||||
|
#include <QSharedData>
|
||||||
|
|
||||||
NUT_BEGIN_NAMESPACE
|
NUT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
class TableModel;
|
class TableModel;
|
||||||
class Table;
|
class Table;
|
||||||
class TableSetBase;
|
class TableSetBase;
|
||||||
class TablePrivate {
|
class TablePrivate : public QSharedData {
|
||||||
Table *q_ptr;
|
Table *q_ptr;
|
||||||
Q_DECLARE_PUBLIC(Table)
|
Q_DECLARE_PUBLIC(Table)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue