23,9 → 23,15 |
|
*************************************************/ |
|
if (bolleans_list.indexOf(index.column()) != -1) |
{ |
flags |= Qt::ItemIsUserCheckable; // åñëè â ñòîëáöå òèï "BOOL", äåëàåì åãî âèáèðàåìûì |
flags &= ~Qt::ItemIsEditable; |
} |
|
return flags; // òåêóùèé ñòîëáåö |
|
return flags; |
|
} |
|
|
47,37 → 53,56 |
str_tmp.append(tr("_instance")); |
} |
*/ |
lResult = QSqlTableModel::setData(index, value, role); |
|
|
// MyModel::record(index.row()); |
|
/*****************************************************8 |
|
if (lResult) { |
QModelIndex newindex; |
QSqlRecord rec = record(index.row()); |
|
rec.setValue(index.column(), value); |
rec.setGenerated(index.column(), true); |
if (bolleans_list.indexOf(index.column()) != -1) { |
// QModelIndex newindex; |
// QSqlRecord rec = record(index.row()); |
// bool chk = (value.toInt()==Qt::Checked); |
// rec.setValue(index.column(),chk); |
// rec.setValue(index.column(), value); |
// rec.setGenerated(index.column(), true); |
|
//lResult = QSqlTableModel::setData(index, value, role); |
|
// lResult = updateRowInTable(index.row(), rec); |
// lResult = setRecord(index.row(),rec); // âåðíåì ðåçóëüòàò îá óñòàíîâêå |
|
lResult = updateRowInTable(index.row(), rec); |
/// QSqlTableModel::setData(newindex, QVariant(str_tmp), Qt::EditRole); |
/* |
QStandardItem* item = static_cast<QStandardItem*>(index.internalPointer()); |
Qt::CheckState state = (value.toInt() == 2) ? Qt::Checked : Qt::Unchecked; |
item->setCheckState(state); |
|
*/ |
|
} |
**********************************************/ |
|
lResult = QSqlTableModel::setData(index, value, Qt::EditRole); |
// emit MyModel::dataChanged(index, index); |
|
// MyModel::reset(); |
// lResult = QSqlTableModel::setData(index, value, Qt::DisplayRole); |
// QSqlTableModel::setData(index, value, Qt::CheckStateRole); |
MyModel::submitAll(); |
////// // MyModel::select(); |
// MyModel::data(index, Qt::DisplayRole); |
} |
|
else |
{ |
lResult = QSqlTableModel::setData(index, value, role); |
} |
|
return lResult; |
|
return lResult; |
|
|
|
|
|
} |
|
|
84,6 → 109,7 |
|
QVariant MyModel::data(const QModelIndex &index, int role) const { |
|
QHash<int, bool> check; |
QVariant value = QSqlTableModel::data(index, role); |
QList <int> keys; |
QStringList values; |
93,7 → 119,13 |
switch (role) { |
case Qt::DisplayRole: |
{ |
int index_of_list; |
//if (check.contains(index.column()) && check.value(index.column())) |
// return value.toInt() != 0 ? tr("Yes") : tr("No"); |
if (bolleans_list.indexOf(index.column()) != -1) |
{ |
return value.toInt() != 0 ? tr("Äà") : tr("Íåò"); // äëÿ êîëîíîê ñ òèïîì "BOOL" |
} |
int index_of_list; |
index_of_list = keys.indexOf(index.column()); |
|
if (index_of_list == -1) return value; |
130,10 → 162,20 |
// return value.toString().prepend(tr("¹ ")); |
|
|
case Qt::EditRole: return value; |
case Qt::EditRole: |
if (bolleans_list.indexOf(index.column()) == -1) return value; // òåêóùèé ñòîëáåö |
|
else { |
return value.toInt() != 0 ? tr("Äà") : tr("Íåò"); |
|
} |
///return value; |
// if (index.column() == 1) |
// return value.toString().prepend(tr("¹ ")); |
|
|
|
|
case Qt::TextColorRole: |
if(index.column() == 1) |
return qVariantFromValue(QColor(Qt::blue)); |
159,8 → 201,17 |
|
|
|
case Qt::CheckStateRole: return value; |
case Qt::CheckStateRole: |
{ |
|
if (bolleans_list.indexOf(index.column()) == -1) return value; // òåêóùèé ñòîëáåö |
|
else |
{ |
return (QSqlQueryModel::data(index).toInt() != 0) ? Qt::Checked : Qt::Unchecked; |
} |
} |
|
case Qt::SizeHintRole:return value; |
|
} |