Merge branch 'dev' into filebrowser-catalog-speedups

This commit is contained in:
Ingo Weyrich
2019-07-30 16:16:46 +02:00
7 changed files with 65 additions and 50 deletions

View File

@@ -668,6 +668,7 @@ void FileBrowser::close ()
MYWRITERLOCK(l, entryRW);
selected.clear ();
anchor = nullptr;
MYWRITERLOCK_RELEASE(l); // notifySelectionListener will need read access!
@@ -783,16 +784,20 @@ void FileBrowser::menuItemActivated (Gtk::MenuItem* m)
{
MYWRITERLOCK(l, entryRW);
selected.clear ();
selected.clear();
for (size_t i = 0; i < fd.size(); i++)
if (checkFilter (fd[i])) {
for (size_t i = 0; i < fd.size(); ++i) {
if (checkFilter(fd[i])) {
fd[i]->selected = true;
selected.push_back (fd[i]);
selected.push_back(fd[i]);
}
}
if (!anchor && !selected.empty()) {
anchor = selected[0];
}
}
queue_draw ();
notifySelectionListener ();
notifySelectionListener();
} else if( m == copyTo) {
tbl->copyMoveRequested (mselected, false);
}
@@ -1438,12 +1443,12 @@ void FileBrowser::applyFilter (const BrowserFilter& filter)
}
for (size_t i = 0; i < fd.size(); i++) {
if (checkFilter (fd[i])) {
if (checkFilter(fd[i])) {
numFiltered++;
} else if (fd[i]->selected ) {
} else if (fd[i]->selected) {
fd[i]->selected = false;
std::vector<ThumbBrowserEntryBase*>::iterator j = std::find (selected.begin(), selected.end(), fd[i]);
selected.erase (j);
std::vector<ThumbBrowserEntryBase*>::iterator j = std::find(selected.begin(), selected.end(), fd[i]);
selected.erase(j);
if (lastClicked == fd[i]) {
lastClicked = nullptr;
@@ -1452,6 +1457,9 @@ void FileBrowser::applyFilter (const BrowserFilter& filter)
selchanged = true;
}
}
if (selected.empty() || (anchor && std::find(selected.begin(), selected.end(), anchor) == selected.end())) {
anchor = nullptr;
}
}
if (selchanged) {