reworking of yt dialog

This commit is contained in:
DYefremov
2019-06-30 22:13:26 +03:00
parent 236a7a15d0
commit dea5723bb7
2 changed files with 73 additions and 28 deletions

View File

@@ -1231,17 +1231,20 @@ Author: Dmitriy Yefremov
<object class="GtkWindow" id="yt_import_dialog_window">
<property name="width_request">480</property>
<property name="can_focus">False</property>
<property name="resizable">False</property>
<property name="modal">True</property>
<property name="window_position">center-on-parent</property>
<property name="default_width">480</property>
<property name="destroy_with_parent">True</property>
<property name="skip_taskbar_hint">True</property>
<property name="skip_pager_hint">True</property>
<property name="gravity">center</property>
<signal name="delete-event" handler="on_close" swapped="no"/>
<child type="titlebar">
<object class="GtkHeaderBar" id="yt_header_bar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="can_focus">True</property>
<property name="title" translatable="yes">YouTube</property>
<property name="subtitle" translatable="yes">Playlist import</property>
<property name="spacing">2</property>
<property name="show_close_button">True</property>
<child>
@@ -1252,7 +1255,6 @@ Author: Dmitriy Yefremov
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Receive</property>
<signal name="clicked" handler="on_receive" swapped="no"/>
<accelerator key="d" signal="clicked" modifiers="GDK_CONTROL_MASK"/>
<child>
<object class="GtkImage" id="yt_receive_button_image">
<property name="visible">True</property>
@@ -1260,24 +1262,12 @@ Author: Dmitriy Yefremov
<property name="stock">gtk-goto-bottom</property>
</object>
</child>
<accelerator key="d" signal="clicked" modifiers="GDK_CONTROL_MASK"/>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child type="title">
<object class="GtkEntry" id="yt_url_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="margin_left">2</property>
<property name="margin_right">2</property>
<property name="hexpand">True</property>
<property name="primary_icon_stock">gtk-edit</property>
<property name="secondary_icon_tooltip_text" translatable="yes">Link to YouTube resource.</property>
<property name="placeholder_text" translatable="yes">YouTube playlist URL:</property>
<signal name="changed" handler="on_yt_url_entry_changed" swapped="no"/>
</object>
</child>
<child>
<object class="GtkButton" id="yt_import_button">
<property name="visible">True</property>
@@ -1286,7 +1276,6 @@ Author: Dmitriy Yefremov
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Import</property>
<signal name="clicked" handler="on_import" swapped="no"/>
<accelerator key="i" signal="clicked" modifiers="GDK_CONTROL_MASK"/>
<child>
<object class="GtkImage" id="yt_import_button_image">
<property name="visible">True</property>
@@ -1294,6 +1283,7 @@ Author: Dmitriy Yefremov
<property name="icon_name">insert-link</property>
</object>
</child>
<accelerator key="i" signal="clicked" modifiers="GDK_CONTROL_MASK"/>
</object>
<packing>
<property name="pack_type">end</property>
@@ -1307,13 +1297,29 @@ Author: Dmitriy Yefremov
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkEntry" id="yt_url_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="margin_left">5</property>
<property name="margin_right">5</property>
<property name="margin_top">5</property>
<property name="margin_bottom">5</property>
<property name="primary_icon_stock">gtk-edit</property>
<property name="secondary_icon_tooltip_text" translatable="yes">Link to YouTube resource.</property>
<property name="placeholder_text" translatable="yes">YouTube playlist URL:</property>
<signal name="changed" handler="on_yt_url_entry_changed" swapped="no"/>
</object>
<packing>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow" id="yt_list_view_scrolled_window">
<property name="can_focus">True</property>
<property name="shadow_type">in</property>
<property name="min_content_height">150</property>
<property name="max_content_height">480</property>
<child>
<object class="GtkTreeView" id="yt_list_view">
<property name="visible">True</property>
@@ -1372,7 +1378,6 @@ Author: Dmitriy Yefremov
<child>
<object class="GtkCellRendererToggle" id="yt_selected_renderer">
<property name="width">50</property>
<signal name="toggled" handler="on_selected_toggled" swapped="no"/>
</object>
<attributes>
<attribute name="active">2</attribute>
@@ -1405,14 +1410,47 @@ Author: Dmitriy Yefremov
<object class="GtkBox" id="yt_info_bar_box">
<property name="height_request">24</property>
<property name="can_focus">False</property>
<property name="margin_left">5</property>
<property name="margin_right">10</property>
<property name="spacing">2</property>
<child>
<placeholder/>
<object class="GtkBox" id="yt_cout_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">2</property>
<child>
<object class="GtkImage" id="yt_count_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-properties</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="yt_count_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkProgressBar" id="yt_progress_bar">
<property name="height_request">10</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
@@ -1424,9 +1462,6 @@ Author: Dmitriy Yefremov
<property name="position">1</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>

View File

@@ -572,6 +572,7 @@ class YtListImportDialog:
self._info_bar_box = builder.get_object("yt_info_bar_box")
self._message_label = builder.get_object("yt_info_bar_message_label")
self._info_bar = builder.get_object("yt_info_bar")
self._yt_count_label = builder.get_object("yt_count_label")
self._url_entry = builder.get_object("yt_url_entry")
self._receive_button = builder.get_object("yt_receive_button")
self._import_button = builder.get_object("yt_import_button")
@@ -622,8 +623,10 @@ class YtListImportDialog:
self.update_active_elements(True)
def on_receive(self, item):
self.show_invisible_elements()
self.update_active_elements(False)
self._model.clear()
self._yt_count_label.set_text("0")
self.on_info_bar_close()
self.update_refs_list()
@@ -645,6 +648,9 @@ class YtListImportDialog:
for l in links:
yield self._model.append((l[0], l[1], True, None))
self._yt_count_label.set_text(str(len(self._model)))
yield True
@run_idle
def append_services(self, links):
aggr = [None] * 9
@@ -666,11 +672,15 @@ class YtListImportDialog:
@run_idle
def update_active_elements(self, sensitive):
self._list_view_scrolled_window.set_visible(sensitive or not sensitive)
self._url_entry.set_sensitive(sensitive)
self._receive_button.set_sensitive(sensitive)
self._import_button.set_sensitive(sensitive)
def show_invisible_elements(self):
self._list_view_scrolled_window.set_visible(True)
self._info_bar_box.set_visible(True)
self._dialog.set_resizable(True)
def on_url_entry_changed(self, entry):
url_str = entry.get_text()
yt_id = YouTube.get_yt_list_id(url_str)
@@ -690,7 +700,7 @@ class YtListImportDialog:
@run_idle
def update_progress_bar(self, value):
self._info_bar_box.set_visible(value < 1)
self._progress_bar.set_visible(value < 1)
self._progress_bar.set_fraction(value)
@run_idle