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