support multiple filters
This commit is contained in:
@@ -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())
|
||||||
|
|||||||
Reference in New Issue
Block a user