some correction of recordings deletion

This commit is contained in:
DYefremov
2022-06-25 00:13:57 +03:00
parent d4a2e78a09
commit c1c5e866ad
2 changed files with 21 additions and 7 deletions

View File

@@ -105,7 +105,7 @@ Author: Dmitriy Yefremov
<child>
<object class="GtkToggleButton" id="recordings_filter_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_focus">False</property>
<property name="focus_on_click">False</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Filter</property>
@@ -127,7 +127,7 @@ Author: Dmitriy Yefremov
<child>
<object class="GtkButton" id="recordings_remove_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_focus">False</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Remove</property>
<property name="always_show_image">True</property>
@@ -139,7 +139,6 @@ Author: Dmitriy Yefremov
<property name="icon_name">user-trash-symbolic</property>
</object>
</child>
<accelerator key="Delete" signal="clicked"/>
</object>
<packing>
<property name="expand">False</property>
@@ -264,6 +263,7 @@ Author: Dmitriy Yefremov
<property name="model">recordings_sort_model</property>
<property name="enable_grid_lines">both</property>
<property name="tooltip_column">5</property>
<signal name="key-press-event" handler="on_recordings_key_press" swapped="no"/>
<signal name="row-activated" handler="on_recordings_activated" swapped="no"/>
<child internal-child="selection">
<object class="GtkTreeSelection" id="recordings_view_selection">

View File

@@ -33,7 +33,7 @@ from urllib.parse import quote
from .dialogs import get_builder, show_dialog, DialogType
from .main_helper import get_base_paths, get_base_model
from .uicommons import Gtk, Gdk, GLib, UI_RESOURCES_PATH, Column
from .uicommons import Gtk, Gdk, GLib, UI_RESOURCES_PATH, Column, KeyboardKey
from ..commons import run_task, run_idle, log
from ..connections import UtfFTP, HttpAPI
from ..settings import IS_DARWIN, PlayStreamsMode
@@ -62,7 +62,8 @@ class RecordingsTool(Gtk.Box):
"on_recording_remove": self.on_recording_remove,
"on_recordings_model_changed": self.on_recordings_model_changed,
"on_recordings_filter_changed": self.on_recordings_filter_changed,
"on_recordings_filter_toggled": self.on_recordings_filter_toggled}
"on_recordings_filter_toggled": self.on_recordings_filter_toggled,
"on_recordings_key_press": self.on_recordings_key_press}
builder = get_builder(f"{UI_RESOURCES_PATH}recordings.glade", handlers)
@@ -181,12 +182,16 @@ class RecordingsTool(Gtk.Box):
if url:
self._app.emit("play-recording", url)
def on_recording_remove(self, action, value=None):
def on_recording_remove(self, action=None, value=None):
""" Removes recordings via FTP. """
model, paths = self._rec_view.get_selection().get_selected_rows()
if not paths:
self._app.show_error_message("No selected item!")
return
if show_dialog(DialogType.QUESTION, self._app.app_window) != Gtk.ResponseType.OK:
return
model, paths = self._rec_view.get_selection().get_selected_rows()
paths = get_base_paths(paths, model)
model = get_base_model(model)
@@ -213,6 +218,15 @@ class RecordingsTool(Gtk.Box):
if not button.get_active():
self._filter_entry.set_text("")
def on_recordings_key_press(self, view, event):
key_code = event.hardware_keycode
if not KeyboardKey.value_exist(key_code):
return
key = KeyboardKey(key_code)
if key is KeyboardKey.DELETE:
self.on_recording_remove()
def on_playback(self, box, state):
""" Updates state of the UI elements for playback mode. """
if self._settings.play_streams_mode is PlayStreamsMode.BUILT_IN: