eeh, this is fucked up

wilder
Jacopo De Simoi 8 years ago committed by Jacopo De Simoi
parent 3a9eee8e37
commit 611e84e2ea
  1. 29
      src/folder/foldertreewidget.cpp

@ -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);

Loading…
Cancel
Save