Some work on multicolumn sort.
This commit is contained in:
parent
7946ef85f1
commit
33981c350a
@ -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"));
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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()));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user