|
|
|
|
@ -143,6 +143,7 @@ void FolderTreeWidget::focusTreeView() |
|
|
|
|
void FolderTreeWidget::slotFilterFixedString(const QString &text) |
|
|
|
|
{ |
|
|
|
|
delete d->saver; |
|
|
|
|
bool shouldExpandAll = false; |
|
|
|
|
if (d->oldFilterStr.isEmpty()) { |
|
|
|
|
// Save it.
|
|
|
|
|
Akonadi::ETMViewStateSaver saver; |
|
|
|
|
@ -160,11 +161,26 @@ void FolderTreeWidget::slotFilterFixedString(const QString &text) |
|
|
|
|
} |
|
|
|
|
d->saver->restoreExpanded(d->expandedItems); |
|
|
|
|
d->saver->restoreCurrentItem(currentIndex); |
|
|
|
|
// this should help to keep the selected item put, but it does not
|
|
|
|
|
QModelIndex current = d->folderTreeView->currentIndex(); |
|
|
|
|
d->folderTreeView->scrollTo(current); |
|
|
|
|
} else { |
|
|
|
|
d->folderTreeView->expandAll(); |
|
|
|
|
shouldExpandAll = true; |
|
|
|
|
} |
|
|
|
|
d->oldFilterStr = text; |
|
|
|
|
d->entityOrderProxy->setFilterWildcard(text); |
|
|
|
|
d->entityOrderProxy->setFilterWildcard(text.trimmed()); |
|
|
|
|
if (shouldExpandAll) { |
|
|
|
|
d->folderTreeView->expandAll(); |
|
|
|
|
} |
|
|
|
|
if (!text.isEmpty()) { |
|
|
|
|
// qDebug() << text << "focus last folder";
|
|
|
|
|
d->folderTreeView->slotFocusLastFolder(); |
|
|
|
|
d->folderTreeView->slotFocusLastFolder(); //why do I need to do it twice?
|
|
|
|
|
d->folderTreeView->slotSelectFocusFolder(); |
|
|
|
|
// anyways, I need to make it focus the last child of the first folder;
|
|
|
|
|
QModelIndex current = d->folderTreeView->currentIndex(); |
|
|
|
|
d->folderTreeView->scrollTo(current); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void FolderTreeWidget::disableContextMenuAndExtraColumn() |
|
|
|
|
@ -319,8 +335,15 @@ void FolderTreeWidget::applyFilter(const QString &filter) |
|
|
|
|
{ |
|
|
|
|
d->label->setText(filter.isEmpty() ? i18n("You can start typing to filter the list of folders.") : i18n("Filter: (%1)", filter)); |
|
|
|
|
|
|
|
|
|
d->entityOrderProxy->setFilterWildcard(filter); |
|
|
|
|
d->entityOrderProxy->setFilterWildcard(filter.trimmed()); |
|
|
|
|
d->folderTreeView->expandAll(); |
|
|
|
|
|
|
|
|
|
// d->folderTreeView->slotFocusFirstFolder();
|
|
|
|
|
// QModelIndex current = d->folderTreeView->currentIndex();
|
|
|
|
|
// d->folderTreeView->setCurrentIndex(current);
|
|
|
|
|
// d->folderTreeView->scrollTo(current);
|
|
|
|
|
|
|
|
|
|
// This is just to set focus!
|
|
|
|
|
QAbstractItemModel *model = d->folderTreeView->model(); |
|
|
|
|
QModelIndex current = d->folderTreeView->currentIndex(); |
|
|
|
|
QModelIndex start = current.isValid() ? current : model->index(0, 0); |
|
|
|
|
|