Added file search

This commit is contained in:
2021-12-07 01:48:52 -06:00
parent 19c683d9c7
commit 49ebfc6293
6 changed files with 127 additions and 0 deletions

View File

@@ -82,6 +82,11 @@ class Controller_Data:
self.is_pane3_hidden = False
self.is_pane4_hidden = False
self.is_searching = False
self.search_iconview = None
self.search_view = None
self.skip_edit = False
self.cancel_edit = False
self.ctrlDown = False

View File

@@ -1,4 +1,5 @@
# Python imports
import re
# Lib imports
import gi
@@ -9,6 +10,7 @@ from gi.repository import Gtk, Gdk
# Application imports
valid_fname_pat = re.compile(r"[a-z0-9A-Z-_\[\]\(\)\| ]")
class KeyboardSignalsMixin:
@@ -37,6 +39,16 @@ class KeyboardSignalsMixin:
if "alt" in keyname:
self.altDown = False
if re.fullmatch(valid_fname_pat, keyname):
if not self.ctrlDown and not self.shiftDown and not self.altDown:
if not self.is_searching:
self.is_searching = True
wid, tid, self.search_view, self.search_iconview, store = self.get_current_state()
self.popup_search_files(wid, keyname)
return
if self.ctrlDown and self.shiftDown and keyname == "t":
self.trash_files()

View File

@@ -13,6 +13,9 @@ class ShowHideMixin:
def show_messages_popup(self, type, text, seconds=None):
self.message_widget.popup()
def stop_file_searching(self, widget=None, eve=None):
self.is_searching = False
def show_exists_page(self, widget=None, eve=None):
response = self.file_exists_dialog.run()

View File

@@ -55,6 +55,19 @@ class WidgetFileActionMixin:
def popup_search_files(self, wid, keyname):
entry = self.builder.get_object(f"win{wid}_search_field")
entry.set_text(keyname)
entry.grab_focus_without_selecting()
self.builder.get_object(f"win{wid}_search").popup()
def do_file_search(self, widget, eve=None):
query = widget.get_text()
self.search_iconview.unselect_all()
for i, file in enumerate(self.search_view.files):
if query and query in file.lower():
path = Gtk.TreePath().new_from_indices([i])
self.search_iconview.select_path(path)
def open_files(self):
wid, tid, view, iconview, store = self.get_current_state()