#include <QtSql>
#include <QTextCharFormat>
#include <QtDebug>
#include "includes/selectionsetmodel.h"
{
}
Qt
::ItemFlags selectionSetModel
::flags(const QModelIndex &index
) const{
if(index.column()==0)
{
Qt::ItemFlags flags;
flags |= Qt::ItemIsSelectable;
flags |= Qt::ItemIsEditable;
flags |= Qt::ItemIsEnabled;
flags |= Qt::ItemIsUserCheckable;
return flags;
}
else
{
}
}
{
if (index.column() == 0) {
if (role == Qt::CheckStateRole) {
return selected.toInt() != 0; // assuming the value is 0 if not selected and != 0 if selected
}
return QVariant();
// no other data for this column }
return QSqlQueryModel::data(index, role
);
// default behavior for other columns }
{
QString id
= data
(primaryKeyIndex, role
).
toString();
clear();
bool ok;
if (index.column() == 0) {
ok = setSelected(id, value.toInt());
}
refresh();
return ok;
}
//! [1]
void selectionSetModel::refresh()
{
setQuery("select selected, selectionset, filecount, size from selectionsets");
setHeaderData
(0, Qt
::Horizontal,
QObject::tr("Selected"),Qt
::CheckStateRole);
setHeaderData
(1, Qt
::Horizontal,
QObject::tr("Selection Set"));
setHeaderData
(2, Qt
::Horizontal,
QObject::tr("File Count"));
setHeaderData
(2, Qt
::Horizontal,
QObject::tr("Size"));
}
//! [2]
bool selectionSetModel
::setSelected(QString id, qint8 selected
) {
query.prepare("update selectionsets set id = ? where selected = ?");
query.addBindValue(id);
query.addBindValue(selected);
return query.exec();
}
//! [2]
#include <QtSql>
#include <QTextCharFormat>
#include <QtDebug>
#include "includes/selectionsetmodel.h"
selectionSetModel::selectionSetModel(QObject *parent) : QSqlQueryModel(parent)
{
}
Qt::ItemFlags selectionSetModel::flags(const QModelIndex &index) const
{
if(index.column()==0)
{
Qt::ItemFlags flags;
flags |= Qt::ItemIsSelectable;
flags |= Qt::ItemIsEditable;
flags |= Qt::ItemIsEnabled;
flags |= Qt::ItemIsUserCheckable;
return flags;
}
else
{
return QAbstractItemModel::flags(index);
}
}
QVariant selectionSetModel::data(const QModelIndex &index, int role)
{
if (index.column() == 0) {
if (role == Qt::CheckStateRole) {
QVariant selected = QSqlQueryModel::data(index, Qt::EditRole); // or Qt::UserRole
return selected.toInt() != 0; // assuming the value is 0 if not selected and != 0 if selected
}
return QVariant(); // no other data for this column
}
return QSqlQueryModel::data(index, role); // default behavior for other columns
}
bool selectionSetModel::setData(const QModelIndex &index, const QVariant &value, int role )
{
QModelIndex primaryKeyIndex = QSqlQueryModel::index(index.row(), 0);
QString id = data(primaryKeyIndex, role).toString();
clear();
bool ok;
if (index.column() == 0) {
ok = setSelected(id, value.toInt());
}
refresh();
return ok;
}
//! [1]
void selectionSetModel::refresh()
{
setQuery("select selected, selectionset, filecount, size from selectionsets");
setHeaderData(0, Qt::Horizontal, QObject::tr("Selected"),Qt::CheckStateRole);
setHeaderData(1, Qt::Horizontal, QObject::tr("Selection Set"));
setHeaderData(2, Qt::Horizontal, QObject::tr("File Count"));
setHeaderData(2, Qt::Horizontal, QObject::tr("Size"));
}
//! [2]
bool selectionSetModel::setSelected(QString id, qint8 selected)
{
QSqlQuery query;
query.prepare("update selectionsets set id = ? where selected = ?");
query.addBindValue(id);
query.addBindValue(selected);
return query.exec();
}
//! [2]
To copy to clipboard, switch view to plain text mode
Bookmarks