copy impl

This commit is contained in:
Dmitriy Yefremov
2017-10-28 12:28:17 +03:00
parent e786e22f20
commit 403674a98c
3 changed files with 42 additions and 26 deletions

View File

@@ -23,13 +23,13 @@ def write_bouquets(path, bouquets, bouquets_services):
for bq in bqs.bouquets:
line.append(srv_line.format(bq.name, bq.type))
write_bouquet(path, bq.name, bq.services)
write_bouquet(path, bq.name, bq.type, bq.services)
with open(path + "bouquets.{}".format(bqs.type), "w") as file:
file.writelines(line)
def write_bouquet(path, name, channels):
def write_bouquet(path, name, bq_type, channels):
bouquet = ["#NAME {}\n".format(name)]
for ch in channels:
@@ -40,7 +40,7 @@ def write_bouquet(path, name, channels):
data_type = 19
bouquet.append("#SERVICE {}:0:{}:{}:0:0:0:\n".format(1, data_type, ch.fav_id))
with open(path + "_userbouquet.{}.tv".format(name), "w") as file:
with open(path + "_userbouquet.{}.{}".format(name, bq_type), "w") as file:
file.writelines(bouquet)

View File

@@ -29,6 +29,10 @@ __channels = {}
__bouquets = {}
# dynamically active elements depending on the selected view
__tool_elements = None
_SERVICE__ELEMENTS = ("copy_tool_button", "to_fav_tool_button", "copy_menu_item")
_REMOVE_ELEMENTS = ("remove_tool_button", "delete_menu_item")
_FAV_ELEMENTS = ("up_tool_button", "down_tool_button", "cut_tool_button",
"paste_tool_button", "cut_menu_item", "paste_menu_item")
def on_about_app(item):
@@ -107,8 +111,11 @@ def on_cut(view):
__rows_buffer.append(row)
def on_copy(item):
pass
def on_copy(view):
model, paths = view.get_selection().get_selected_rows()
itrs = [model.get_iter(path) for path in paths]
rows = [(0, *model.get(in_itr, 2, 4, 11, 13)) for in_itr in itrs]
__rows_buffer.extend(rows)
def on_paste(view):
@@ -434,9 +441,11 @@ def on_tree_view_key_release(view, event):
move_items(Gdk.KEY_Up)
elif ctrl and key == Gdk.KEY_Down:
move_items(Gdk.KEY_Down)
elif key == Gdk.KEY_Insert and view.get_model().get_name() == SERVICE_LIST_NAME:
elif key == Gdk.KEY_Insert and model_name == SERVICE_LIST_NAME:
# Move items from main to fav list
on_to_fav_move(view)
elif ctrl and (key == Gdk.KEY_c or key == Gdk.KEY_C) and model_name == SERVICE_LIST_NAME:
on_copy(view)
elif ctrl and key == Gdk.KEY_x or key == Gdk.KEY_X:
if model_name == FAV_LIST_NAME:
on_cut(view)
@@ -468,22 +477,20 @@ def on_view_focus(view, focus_event):
if empty:
return
fav_elements = ("up_tool_button", "down_tool_button", "cut_tool_button", "paste_tool_button")
service_elements = ("copy_tool_button", "to_fav_tool_button")
if model_name == BOUQUETS_LIST_NAME:
for elem in __tool_elements:
__tool_elements[elem].set_sensitive(False)
__tool_elements["new_tool_button"].set_sensitive(True)
else:
is_service = model_name == SERVICE_LIST_NAME
for elem in fav_elements:
for elem in _FAV_ELEMENTS:
__tool_elements[elem].set_sensitive(not is_service)
for elem in service_elements:
for elem in _SERVICE__ELEMENTS:
__tool_elements[elem].set_sensitive(is_service)
__tool_elements["new_tool_button"].set_sensitive(False)
__tool_elements["remove_tool_button"].set_sensitive(not empty)
for elem in _REMOVE_ELEMENTS:
__tool_elements[elem].set_sensitive(not empty)
def connect(properties, download=True):
@@ -523,7 +530,9 @@ def init_ui():
__tool_elements = {k: builder.get_object(k) for k in ("up_tool_button", "down_tool_button",
"cut_tool_button", "copy_tool_button",
"paste_tool_button", "to_fav_tool_button",
"new_tool_button", "remove_tool_button")}
"new_tool_button", "remove_tool_button",
"cut_menu_item", "copy_menu_item",
"paste_menu_item", "delete_menu_item")}
builder.connect_signals(get_handlers())
init_drag_and_drop() # drag and drop
__main_window.show_all()

View File

@@ -154,7 +154,7 @@
<signal name="check-resize" handler="on_resize" swapped="no"/>
<signal name="delete-event" handler="on_close_main_window" swapped="no"/>
<child>
<object class="GtkBox" id="box1">
<object class="GtkBox" id="main_window_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
@@ -163,13 +163,13 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkMenuItem" id="menuitem1">
<object class="GtkMenuItem" id="file_menuitem">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">_Файл</property>
<property name="use_underline">True</property>
<child type="submenu">
<object class="GtkMenu" id="menu1">
<object class="GtkMenu" id="file_menu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -233,46 +233,53 @@
</object>
</child>
<child>
<object class="GtkMenuItem" id="menuitem2">
<object class="GtkMenuItem" id="edit_menuitem">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">_Правка</property>
<property name="use_underline">True</property>
<child type="submenu">
<object class="GtkMenu" id="menu2">
<object class="GtkMenu" id="edit_menu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkImageMenuItem" id="imagemenuitem6">
<object class="GtkImageMenuItem" id="cut_menu_item">
<property name="label">gtk-cut</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_cut" object="fav_tree_view" swapped="no"/>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="imagemenuitem7">
<object class="GtkImageMenuItem" id="copy_menu_item">
<property name="label">gtk-copy</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_copy" object="services_tree_view" swapped="no"/>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="imagemenuitem8">
<object class="GtkImageMenuItem" id="paste_menu_item">
<property name="label">gtk-paste</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_paste" object="fav_tree_view" swapped="no"/>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="delete_menu_item">
<property name="label">gtk-delete</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
@@ -284,13 +291,13 @@
</object>
</child>
<child>
<object class="GtkMenuItem" id="menuitem3">
<object class="GtkMenuItem" id="tools_menuitem">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">_Инструменты</property>
<property name="use_underline">True</property>
<child type="submenu">
<object class="GtkMenu" id="menu4">
<object class="GtkMenu" id="tools_menu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -323,13 +330,13 @@
</object>
</child>
<child>
<object class="GtkMenuItem" id="menuitem4">
<object class="GtkMenuItem" id="help_menuitem">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">_Справка</property>
<property name="use_underline">True</property>
<child type="submenu">
<object class="GtkMenu" id="menu3">
<object class="GtkMenu" id="help_menu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -522,7 +529,7 @@
<property name="label" translatable="yes">Copy</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-copy</property>
<signal name="clicked" handler="on_copy" swapped="no"/>
<signal name="clicked" handler="on_copy" object="services_tree_view" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>