mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2026-03-06 12:31:57 +01:00
simple skeleton for global search
This commit is contained in:
@@ -16,7 +16,6 @@ def parse_m3u(path):
|
||||
fav_id = " 1:0:1:0:0:0:0:0:0:0:{}:{}\n#DESCRIPTION: {}\n".format(
|
||||
line.strip().replace(":", "%3a"), name, name, None)
|
||||
srv = Service(*aggr[0:3], name, *aggr[0:3], BqServiceType.IPTV.name, *aggr, fav_id, None)
|
||||
print(srv)
|
||||
channels.append(srv)
|
||||
|
||||
return channels
|
||||
|
||||
@@ -14,7 +14,7 @@ from . import Gtk, Gdk, UI_RESOURCES_PATH, LOCKED_ICON, HIDE_ICON
|
||||
from .dialogs import show_dialog, DialogType, get_chooser_dialog
|
||||
from .download_dialog import show_download_dialog
|
||||
from .main_helper import edit_marker, insert_marker, move_items, edit, ViewTarget, set_flags, locate_in_services, \
|
||||
scroll_to, get_base_model, update_picons, copy_picon_reference, assign_picon, remove_picon
|
||||
scroll_to, get_base_model, update_picons, copy_picon_reference, assign_picon, remove_picon, search
|
||||
from .picons_dialog import PiconsDialog
|
||||
from .satellites_dialog import show_satellites_dialog
|
||||
from .settings_dialog import show_settings_dialog
|
||||
@@ -98,7 +98,8 @@ class MainAppWindow:
|
||||
"on_remove_picon": self.on_remove_picon,
|
||||
"on_reference_picon": self.on_reference_picon,
|
||||
"on_filter_toggled": self.on_filter_toggled,
|
||||
"on_search_toggled": self.on_search_toggled}
|
||||
"on_search_toggled": self.on_search_toggled,
|
||||
"on_search": self.on_search}
|
||||
|
||||
self.__options = get_config()
|
||||
self.__profile = self.__options.get("profile")
|
||||
@@ -857,6 +858,15 @@ class MainAppWindow:
|
||||
def on_search_toggled(self, toggle_button: Gtk.ToggleToolButton):
|
||||
self.__search_info_bar.set_visible(toggle_button.get_active())
|
||||
|
||||
@run_idle
|
||||
def on_search(self, entry, event):
|
||||
search(entry.get_text(),
|
||||
self.__services_view,
|
||||
self.__fav_view,
|
||||
self.__bouquets_view,
|
||||
self.__services,
|
||||
self.__bouquets)
|
||||
|
||||
@run_idle
|
||||
def update_picons(self):
|
||||
update_picons(self.__options.get(self.__profile).get("picons_dir_path"), self.__picons, self.__services_model)
|
||||
|
||||
@@ -410,6 +410,27 @@ def get_picon_pixbuf(path):
|
||||
return GdkPixbuf.Pixbuf.new_from_file_at_scale(filename=path, width=32, height=32, preserve_aspect_ratio=True)
|
||||
|
||||
|
||||
# ***************** Search *********************#
|
||||
|
||||
def search(text, srv_view, fav_view, bqs_view, services, bouquets):
|
||||
for view in srv_view, fav_view:
|
||||
model = get_base_model(view.get_model())
|
||||
selection = view.get_selection()
|
||||
selection.unselect_all()
|
||||
if not text:
|
||||
continue
|
||||
paths = []
|
||||
text = text.upper()
|
||||
for r in model:
|
||||
if text in str(r[:]).upper():
|
||||
path = r.path
|
||||
selection.select_path(r.path)
|
||||
paths.append(path)
|
||||
|
||||
if paths:
|
||||
view.scroll_to_cell(paths[0], None)
|
||||
|
||||
|
||||
# ***************** Others *********************#
|
||||
|
||||
|
||||
|
||||
@@ -805,6 +805,7 @@
|
||||
<object class="GtkToggleToolButton" id="search_tool_button">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="tooltip_text" translatable="yes">Global search</property>
|
||||
<property name="label" translatable="yes">Search</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="stock_id">gtk-find</property>
|
||||
@@ -1201,12 +1202,11 @@
|
||||
<object class="GtkSearchEntry" id="search_entry">
|
||||
<property name="width_request">200</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="sensitive">False</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="text" translatable="yes">Not implemented yet!</property>
|
||||
<property name="primary_icon_name">edit-find-symbolic</property>
|
||||
<property name="primary_icon_activatable">False</property>
|
||||
<property name="primary_icon_sensitive">False</property>
|
||||
<signal name="key-release-event" handler="on_search" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
|
||||
Reference in New Issue
Block a user