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) void FolderTreeWidget::slotFilterFixedString(const QString &text)
{ {
delete d->saver; delete d->saver;
bool shouldExpandAll = false;
if (d->oldFilterStr.isEmpty()) { if (d->oldFilterStr.isEmpty()) {
// Save it. // Save it.
Akonadi::ETMViewStateSaver saver; Akonadi::ETMViewStateSaver saver;
@ -160,11 +161,26 @@ void FolderTreeWidget::slotFilterFixedString(const QString &text)
} }
d->saver->restoreExpanded(d->expandedItems); d->saver->restoreExpanded(d->expandedItems);
d->saver->restoreCurrentItem(currentIndex); 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 { } else {
d->folderTreeView->expandAll(); shouldExpandAll = true;
} }
d->oldFilterStr = text; 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() 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->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->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(); QAbstractItemModel *model = d->folderTreeView->model();
QModelIndex current = d->folderTreeView->currentIndex(); QModelIndex current = d->folderTreeView->currentIndex();
QModelIndex start = current.isValid() ? current : model->index(0, 0); QModelIndex start = current.isValid() ? current : model->index(0, 0);

Loading…
Cancel
Save