Send the dataChanged signal when data is changed
parent
d63cc3918c
commit
04f68aa0f9
|
@ -205,5 +205,9 @@ QHash<int, QByteArray> FibonacciList::roleNames() const {
|
|||
}
|
||||
bool FibonacciList::setData(const QModelIndex &index, const QVariant &value, int role)
|
||||
{
|
||||
return false;
|
||||
bool set = false;
|
||||
if (set) {
|
||||
emit dataChanged(index, index, QVector<int>() << role);
|
||||
}
|
||||
return set;
|
||||
}
|
||||
|
|
|
@ -294,46 +294,45 @@ QHash<int, QByteArray> Tree::roleNames() const {
|
|||
}
|
||||
bool Tree::setData(const QModelIndex &index, const QVariant &value, int role)
|
||||
{
|
||||
bool set = false;
|
||||
if (index.column() == 0) {
|
||||
if (role == Qt::DisplayRole) {
|
||||
const QString val(value.value<QString>());
|
||||
return tree_set_data_file_name(d, index.row(), index.internalId(), val);
|
||||
set = tree_set_data_file_name(d, index.row(), index.internalId(), value.value<QString>());
|
||||
}
|
||||
if (role == Qt::EditRole) {
|
||||
const QString val(value.value<QString>());
|
||||
return tree_set_data_file_name(d, index.row(), index.internalId(), val);
|
||||
set = tree_set_data_file_name(d, index.row(), index.internalId(), value.value<QString>());
|
||||
}
|
||||
if (role == Qt::UserRole + 1) {
|
||||
if (!value.isValid() || value.isNull()) {
|
||||
return tree_set_data_file_path_none(d, index.row(), index.internalId());
|
||||
}
|
||||
const QString val(value.value<QString>());
|
||||
return tree_set_data_file_path(d, index.row(), index.internalId(), val);
|
||||
set = tree_set_data_file_path_none(d, index.row(), index.internalId());
|
||||
} else
|
||||
set = tree_set_data_file_path(d, index.row(), index.internalId(), value.value<QString>());
|
||||
}
|
||||
}
|
||||
if (index.column() == 1) {
|
||||
if (role == Qt::DisplayRole) {
|
||||
if (!value.isValid() || value.isNull()) {
|
||||
return tree_set_data_file_path_none(d, index.row(), index.internalId());
|
||||
}
|
||||
const QString val(value.value<QString>());
|
||||
return tree_set_data_file_path(d, index.row(), index.internalId(), val);
|
||||
set = tree_set_data_file_path_none(d, index.row(), index.internalId());
|
||||
} else
|
||||
set = tree_set_data_file_path(d, index.row(), index.internalId(), value.value<QString>());
|
||||
}
|
||||
if (role == Qt::EditRole) {
|
||||
if (!value.isValid() || value.isNull()) {
|
||||
return tree_set_data_file_path_none(d, index.row(), index.internalId());
|
||||
}
|
||||
const QString val(value.value<QString>());
|
||||
return tree_set_data_file_path(d, index.row(), index.internalId(), val);
|
||||
set = tree_set_data_file_path_none(d, index.row(), index.internalId());
|
||||
} else
|
||||
set = tree_set_data_file_path(d, index.row(), index.internalId(), value.value<QString>());
|
||||
}
|
||||
}
|
||||
if (index.column() == 4) {
|
||||
if (role == Qt::DisplayRole) {
|
||||
if (!value.isValid()) {
|
||||
return tree_set_data_file_size_none(d, index.row(), index.internalId());
|
||||
}
|
||||
return tree_set_data_file_size(d, index.row(), index.internalId(), value.value<quint64>());
|
||||
set = tree_set_data_file_size_none(d, index.row(), index.internalId());
|
||||
} else
|
||||
set = tree_set_data_file_size(d, index.row(), index.internalId(), value.value<quint64>());
|
||||
}
|
||||
}
|
||||
return false;
|
||||
if (set) {
|
||||
emit dataChanged(index, index, QVector<int>() << role);
|
||||
}
|
||||
return set;
|
||||
}
|
||||
|
|
|
@ -539,6 +539,7 @@ QVariant %1::data(const QModelIndex &index, int role) const
|
|||
bool %1::setData(const QModelIndex &index, const QVariant &value, int role)
|
||||
{
|
||||
)").arg(o.name);
|
||||
cpp << " bool set = false;\n";
|
||||
for (int col = 0; col < o.columnRoles.size(); ++col) {
|
||||
if (!isWrite(o.columnRoles[col])) {
|
||||
continue;
|
||||
|
@ -556,22 +557,21 @@ bool %1::setData(const QModelIndex &index, const QVariant &value, int role)
|
|||
test += " || value.isNull()";
|
||||
}
|
||||
cpp << " if (" << test << ") {\n";
|
||||
cpp << QString(" return %1_set_data_%2_none(d%3);")
|
||||
cpp << QString(" set = %1_set_data_%2_none(d%3);")
|
||||
.arg(lcname, snakeCase(role.name), index) << endl;
|
||||
cpp << " }\n";
|
||||
cpp << " } else\n";
|
||||
}
|
||||
QString val = QString("value.value<%1>()").arg(role.type.name);
|
||||
if (role.type.isComplex()) {
|
||||
val = "val";
|
||||
cpp << QString(" const %1 val(value.value<%1>());\n").arg(role.type.name);
|
||||
}
|
||||
cpp << QString(" return %1_set_data_%2(d%3, %4);")
|
||||
cpp << QString(" set = %1_set_data_%2(d%3, %4);")
|
||||
.arg(lcname, snakeCase(role.name), index, val) << endl;
|
||||
cpp << " }\n";
|
||||
}
|
||||
cpp << " }\n";
|
||||
}
|
||||
cpp << R"( return false;
|
||||
cpp << R"( if (set) {
|
||||
emit dataChanged(index, index, QVector<int>() << role);
|
||||
}
|
||||
return set;
|
||||
}
|
||||
)";
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue