support multiple filters

This commit is contained in:
2022-08-23 20:10:48 +02:00
parent 7e390cada6
commit 536d6aff08

View File

@@ -1,4 +1,5 @@
import os import os
import re
import sys import sys
from pathlib import Path from pathlib import Path
@@ -46,7 +47,7 @@ class FilesBrowserWidget(Tab):
self._model = QFileSystemModel() self._model = QFileSystemModel()
self._model.setRootPath(self._base_dir.text()) self._model.setRootPath(self._base_dir.text())
self._model.setFilter(QDir.AllDirs | QDir.NoDotAndDotDot | QDir.AllEntries) self._model.setFilter(QDir.AllDirs | QDir.NoDotAndDotDot | QDir.AllEntries)
self._model.setNameFilters([self._filter.text()]) self._model.setNameFilters(self._get_filters())
self._model.setNameFilterDisables(False) self._model.setNameFilterDisables(False)
self._view = QTreeView() self._view = QTreeView()
self._view.setModel(self._model) self._view.setModel(self._model)
@@ -81,7 +82,7 @@ class FilesBrowserWidget(Tab):
def _filter_changed(self, filter): def _filter_changed(self, filter):
self._settings.set_session("filesBrowser", "filter", filter) self._settings.set_session("filesBrowser", "filter", filter)
self._model.setNameFilters([filter]) self._model.setNameFilters(self._get_filters())
def _base_dir_changed(self, base_dir): def _base_dir_changed(self, base_dir):
if os.path.isdir(base_dir): if os.path.isdir(base_dir):
@@ -107,3 +108,6 @@ class FilesBrowserWidget(Tab):
folder = os.path.join(Path.home()) folder = os.path.join(Path.home())
return folder return folder
def _get_filters(self):
return re.split(r"[,;\s]+", self._filter.text())