Some work on multicolumn sort.

This commit is contained in:
martinrotter 2017-05-04 06:20:28 +02:00
parent 7946ef85f1
commit 33981c350a
4 changed files with 10 additions and 2 deletions

View File

@ -39,8 +39,8 @@ MessagesModel::MessagesModel(QObject *parent)
// via model, but via DIRECT SQL calls are used to do persistent messages.
setEditStrategy(QSqlTableModel::OnManualSubmit);
setTable(QSL("Messages"));
setRelation(MSG_DB_FEED_INDEX, QSqlRelation("Feeds", "custom_id", "title"));
loadMessages(nullptr);
}
@ -48,6 +48,10 @@ MessagesModel::~MessagesModel() {
qDebug("Destroying MessagesModel instance.");
}
QString MessagesModel::orderByClause() const {
return QSqlRelationalTableModel::orderByClause();
}
void MessagesModel::setupIcons() {
m_favoriteIcon = qApp->icons()->fromTheme(QSL("mail-mark-important"));
m_readIcon = qApp->icons()->fromTheme(QSL("mail-mark-read"));

View File

@ -44,6 +44,8 @@ class MessagesModel : public QSqlRelationalTableModel {
explicit MessagesModel(QObject *parent = 0);
virtual ~MessagesModel();
QString orderByClause() const;
// Model implementation.
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
QVariant data(int row, int column, int role = Qt::DisplayRole) const;

View File

@ -72,7 +72,7 @@ bool MessagesProxyModel::lessThan(const QModelIndex &left, const QModelIndex &ri
Q_UNUSED(left)
Q_UNUSED(right)
// NOTE: Porovnání se provádí již při dotazu v databázi, netřeba řešit zde.
// NOTE: Comparisons are done by SQL servers itself, not client-side.
return false;
}

View File

@ -563,4 +563,6 @@ void MessagesView::onSortIndicatorChanged(int column, Qt::SortOrder order) {
// Repopulate the shit.
m_sourceModel->sort(column, order);
emit currentMessageRemoved();
qDebug("Current order by clause is '%s'.", qPrintable(m_sourceModel->orderByClause()));
}