mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-08-01 10:46:23 -04:00
fixed sorting
This commit is contained in:
parent
90995f16ce
commit
5820364b0d
2 changed files with 24 additions and 7 deletions
|
@ -134,13 +134,13 @@ MessagesDialog::MessagesDialog(QWidget *parent)
|
||||||
mMessageProxyModel->setSortRole(RsMessageModel::SortRole);
|
mMessageProxyModel->setSortRole(RsMessageModel::SortRole);
|
||||||
mMessageProxyModel->setDynamicSortFilter(false);
|
mMessageProxyModel->setDynamicSortFilter(false);
|
||||||
mMessageProxyModel->setSortCaseSensitivity(Qt::CaseInsensitive);
|
mMessageProxyModel->setSortCaseSensitivity(Qt::CaseInsensitive);
|
||||||
|
mMessageProxyModel->setFilterRole(RsMessageModel::FilterRole);
|
||||||
|
mMessageProxyModel->setFilterRegExp(QRegExp(RsMessageModel::FilterString));
|
||||||
|
|
||||||
ui.messageTreeWidget->setModel(mMessageProxyModel);
|
ui.messageTreeWidget->setModel(mMessageProxyModel);
|
||||||
|
|
||||||
changeBox(0); // set to inbox
|
changeBox(0); // set to inbox
|
||||||
|
|
||||||
mMessageProxyModel->setFilterRole(RsMessageModel::FilterRole);
|
|
||||||
|
|
||||||
ui.messageTreeWidget->setItemDelegateForColumn(RsMessageModel::COLUMN_THREAD_AUTHOR,new GxsIdTreeItemDelegate()) ;
|
ui.messageTreeWidget->setItemDelegateForColumn(RsMessageModel::COLUMN_THREAD_AUTHOR,new GxsIdTreeItemDelegate()) ;
|
||||||
|
|
||||||
RSElidedItemDelegate *itemDelegate = new RSElidedItemDelegate(this);
|
RSElidedItemDelegate *itemDelegate = new RSElidedItemDelegate(this);
|
||||||
|
@ -1042,6 +1042,8 @@ void MessagesDialog::buttonStyle()
|
||||||
setToolbarButtonStyle((Qt::ToolButtonStyle) dynamic_cast<QAction*>(sender())->data().toInt());
|
setToolbarButtonStyle((Qt::ToolButtonStyle) dynamic_cast<QAction*>(sender())->data().toInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void MessagesDialog::filterChanged(const QString& text)
|
void MessagesDialog::filterChanged(const QString& text)
|
||||||
{
|
{
|
||||||
QStringList items = text.split(' ',QString::SkipEmptyParts);
|
QStringList items = text.split(' ',QString::SkipEmptyParts);
|
||||||
|
@ -1060,6 +1062,9 @@ void MessagesDialog::filterChanged(const QString& text)
|
||||||
}
|
}
|
||||||
|
|
||||||
mMessageModel->setFilter(f,items);
|
mMessageModel->setFilter(f,items);
|
||||||
|
mMessageProxyModel->setFilterRegExp(QRegExp(RsMessageModel::FilterString));
|
||||||
|
|
||||||
|
QCoreApplication::processEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessagesDialog::filterColumnChanged(int column)
|
void MessagesDialog::filterColumnChanged(int column)
|
||||||
|
@ -1082,9 +1087,12 @@ void MessagesDialog::filterColumnChanged(int column)
|
||||||
|
|
||||||
QStringList items = ui.filterLineEdit->text().split(' ',QString::SkipEmptyParts);
|
QStringList items = ui.filterLineEdit->text().split(' ',QString::SkipEmptyParts);
|
||||||
mMessageModel->setFilter(f,items);
|
mMessageModel->setFilter(f,items);
|
||||||
|
mMessageProxyModel->setFilterRegExp(QRegExp(RsMessageModel::FilterString));
|
||||||
|
|
||||||
// save index
|
// save index
|
||||||
Settings->setValueToGroup("MessageDialog", "filterColumn", column);
|
Settings->setValueToGroup("MessageDialog", "filterColumn", column);
|
||||||
|
|
||||||
|
QCoreApplication::processEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessagesDialog::updateMessageSummaryList()
|
void MessagesDialog::updateMessageSummaryList()
|
||||||
|
|
|
@ -301,7 +301,9 @@ bool RsMessageModel::passesFilter(const Rs::Msgs::MsgInfoSummary& fmpe,int colum
|
||||||
case FILTER_TYPE_SUBJECT: s = displayRole(fmpe,COLUMN_THREAD_SUBJECT).toString();
|
case FILTER_TYPE_SUBJECT: s = displayRole(fmpe,COLUMN_THREAD_SUBJECT).toString();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case FILTER_TYPE_FROM: s = sortRole(fmpe.COLUMN_THREAD_AUTHOR).toString();
|
case FILTER_TYPE_FROM: s = sortRole(fmpe,COLUMN_THREAD_AUTHOR).toString();
|
||||||
|
if(s.isNull())
|
||||||
|
passes_strings = false;
|
||||||
break;
|
break;
|
||||||
case FILTER_TYPE_DATE: s = displayRole(fmpe,COLUMN_THREAD_DATE).toString();
|
case FILTER_TYPE_DATE: s = displayRole(fmpe,COLUMN_THREAD_DATE).toString();
|
||||||
break;
|
break;
|
||||||
|
@ -335,6 +337,8 @@ bool RsMessageModel::passesFilter(const Rs::Msgs::MsgInfoSummary& fmpe,int colum
|
||||||
|| (mQuickViewFilter==QUICK_VIEW_STARRED && (fmpe.msgflags & RS_MSG_STAR))
|
|| (mQuickViewFilter==QUICK_VIEW_STARRED && (fmpe.msgflags & RS_MSG_STAR))
|
||||||
|| (mQuickViewFilter==QUICK_VIEW_SYSTEM && (fmpe.msgflags & RS_MSG_SYSTEM));
|
|| (mQuickViewFilter==QUICK_VIEW_SYSTEM && (fmpe.msgflags & RS_MSG_SYSTEM));
|
||||||
|
|
||||||
|
std::cerr << "Passes filter: type=" << mFilterType << " s=\"" << s.toStdString() << "\" strings:" << passes_strings << " quick_view:" << passes_quick_view << std::endl;
|
||||||
|
|
||||||
return passes_quick_view && passes_strings;
|
return passes_quick_view && passes_strings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -357,6 +361,11 @@ uint32_t RsMessageModel::updateFilterStatus(ForumModelIndex i,int column,const Q
|
||||||
|
|
||||||
void RsMessageModel::setFilter(FilterType filter_type, const QStringList& strings)
|
void RsMessageModel::setFilter(FilterType filter_type, const QStringList& strings)
|
||||||
{
|
{
|
||||||
|
std::cerr << "Setting filter to filter_type=" << int(filter_type) << " and strings to " ;
|
||||||
|
foreach(const QString& str,strings)
|
||||||
|
std::cerr << "\"" << str.toStdString() << "\" " ;
|
||||||
|
std::cerr << std::endl;
|
||||||
|
|
||||||
preMods();
|
preMods();
|
||||||
|
|
||||||
mFilterType = filter_type;
|
mFilterType = filter_type;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue