Some work on multicolumn sort.
This commit is contained in:
parent
7946ef85f1
commit
33981c350a
4 changed files with 10 additions and 2 deletions
|
@ -39,8 +39,8 @@ MessagesModel::MessagesModel(QObject *parent)
|
||||||
// via model, but via DIRECT SQL calls are used to do persistent messages.
|
// via model, but via DIRECT SQL calls are used to do persistent messages.
|
||||||
setEditStrategy(QSqlTableModel::OnManualSubmit);
|
setEditStrategy(QSqlTableModel::OnManualSubmit);
|
||||||
setTable(QSL("Messages"));
|
setTable(QSL("Messages"));
|
||||||
|
|
||||||
setRelation(MSG_DB_FEED_INDEX, QSqlRelation("Feeds", "custom_id", "title"));
|
setRelation(MSG_DB_FEED_INDEX, QSqlRelation("Feeds", "custom_id", "title"));
|
||||||
|
|
||||||
loadMessages(nullptr);
|
loadMessages(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,6 +48,10 @@ MessagesModel::~MessagesModel() {
|
||||||
qDebug("Destroying MessagesModel instance.");
|
qDebug("Destroying MessagesModel instance.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString MessagesModel::orderByClause() const {
|
||||||
|
return QSqlRelationalTableModel::orderByClause();
|
||||||
|
}
|
||||||
|
|
||||||
void MessagesModel::setupIcons() {
|
void MessagesModel::setupIcons() {
|
||||||
m_favoriteIcon = qApp->icons()->fromTheme(QSL("mail-mark-important"));
|
m_favoriteIcon = qApp->icons()->fromTheme(QSL("mail-mark-important"));
|
||||||
m_readIcon = qApp->icons()->fromTheme(QSL("mail-mark-read"));
|
m_readIcon = qApp->icons()->fromTheme(QSL("mail-mark-read"));
|
||||||
|
|
|
@ -44,6 +44,8 @@ class MessagesModel : public QSqlRelationalTableModel {
|
||||||
explicit MessagesModel(QObject *parent = 0);
|
explicit MessagesModel(QObject *parent = 0);
|
||||||
virtual ~MessagesModel();
|
virtual ~MessagesModel();
|
||||||
|
|
||||||
|
QString orderByClause() const;
|
||||||
|
|
||||||
// Model implementation.
|
// Model implementation.
|
||||||
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
|
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
|
||||||
QVariant data(int row, int column, 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(left)
|
||||||
Q_UNUSED(right)
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -563,4 +563,6 @@ void MessagesView::onSortIndicatorChanged(int column, Qt::SortOrder order) {
|
||||||
// Repopulate the shit.
|
// Repopulate the shit.
|
||||||
m_sourceModel->sort(column, order);
|
m_sourceModel->sort(column, order);
|
||||||
emit currentMessageRemoved();
|
emit currentMessageRemoved();
|
||||||
|
|
||||||
|
qDebug("Current order by clause is '%s'.", qPrintable(m_sourceModel->orderByClause()));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue