added delete in views

This commit is contained in:
DYefremov
2017-10-14 00:24:08 +03:00
parent 44a9fd58b9
commit 005934e3dd
2 changed files with 107 additions and 8 deletions

View File

@@ -220,12 +220,13 @@
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="imagemenuitem9">
<object class="GtkImageMenuItem" id="delete_menu_item">
<property name="label">gtk-delete</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_delete" swapped="no"/>
</object>
</child>
</object>
@@ -400,6 +401,7 @@
<property name="label" translatable="yes">Up</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-go-up</property>
<signal name="clicked" handler="on_up" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -413,6 +415,7 @@
<property name="label" translatable="yes">Down</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-go-down</property>
<signal name="clicked" handler="on_down" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -420,12 +423,13 @@
</packing>
</child>
<child>
<object class="GtkToolButton" id="cat_tool_button">
<object class="GtkToolButton" id="cut_tool_button">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Cut</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-cut</property>
<signal name="clicked" handler="on_cut" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -439,6 +443,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"/>
</object>
<packing>
<property name="expand">False</property>
@@ -465,6 +470,7 @@
<property name="label" translatable="yes">Remove</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-remove</property>
<signal name="clicked" handler="on_delete" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -571,9 +577,11 @@
<property name="can_focus">True</property>
<property name="model">services_list_store</property>
<property name="enable_grid_lines">both</property>
<property name="activate_on_single_click">True</property>
<signal name="key-release-event" handler="on_tree_view_key_release" object="services_list_store" swapped="no"/>
<signal name="row-activated" handler="on_services_selection" object="services_list_store" swapped="no"/>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection1">
<object class="GtkTreeSelection" id="services_selection">
<property name="mode">multiple</property>
</object>
</child>
@@ -582,6 +590,8 @@
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Service</property>
<property name="reorderable">True</property>
<property name="sort_column_id">0</property>
<child>
<object class="GtkCellRendererText" id="service_cellrenderertext"/>
<attributes>
@@ -595,6 +605,8 @@
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Package</property>
<property name="reorderable">True</property>
<property name="sort_column_id">1</property>
<child>
<object class="GtkCellRendererText" id="package_cellrenderertext"/>
<attributes>
@@ -607,6 +619,8 @@
<object class="GtkTreeViewColumn" id="service_type_column">
<property name="resizable">True</property>
<property name="title" translatable="yes">Type</property>
<property name="reorderable">True</property>
<property name="sort_column_id">2</property>
<child>
<object class="GtkCellRendererText" id="type_cellrenderertex"/>
<attributes>
@@ -620,6 +634,8 @@
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Ssid</property>
<property name="reorderable">True</property>
<property name="sort_column_id">3</property>
<child>
<object class="GtkCellRendererText" id="ssid_cellrenderertext"/>
<attributes>
@@ -633,6 +649,8 @@
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Freq</property>
<property name="reorderable">True</property>
<property name="sort_column_id">4</property>
<child>
<object class="GtkCellRendererText" id="freq_cellrenderertext"/>
<attributes>
@@ -646,6 +664,8 @@
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Rate</property>
<property name="reorderable">True</property>
<property name="sort_column_id">5</property>
<child>
<object class="GtkCellRendererText" id="rate_cellrenderertext"/>
<attributes>
@@ -659,6 +679,8 @@
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Pol</property>
<property name="reorderable">True</property>
<property name="sort_column_id">6</property>
<child>
<object class="GtkCellRendererText" id="pol_cellrenderertext"/>
<attributes>
@@ -672,6 +694,8 @@
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">FEC</property>
<property name="reorderable">True</property>
<property name="sort_column_id">7</property>
<child>
<object class="GtkCellRendererText" id="fec_cellrenderertext"/>
<attributes>
@@ -685,6 +709,8 @@
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">System</property>
<property name="reorderable">True</property>
<property name="sort_column_id">8</property>
<child>
<object class="GtkCellRendererText" id="system_cellrenderertex"/>
<attributes>
@@ -697,6 +723,8 @@
<object class="GtkTreeViewColumn" id="pos_column1">
<property name="resizable">True</property>
<property name="title" translatable="yes">Pos</property>
<property name="reorderable">True</property>
<property name="sort_column_id">9</property>
<child>
<object class="GtkCellRendererText" id="pos_cellrenderertext1"/>
<attributes>
@@ -708,6 +736,7 @@
<child>
<object class="GtkTreeViewColumn" id="data_id_column">
<property name="visible">False</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">data_id</property>
<child>
<object class="GtkCellRendererText" id="data_id_cellrenderertext"/>
@@ -720,6 +749,7 @@
<child>
<object class="GtkTreeViewColumn" id="fav_id_column">
<property name="visible">False</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">fav_id</property>
<child>
<object class="GtkCellRendererText" id="fav_id_cellrenderertext"/>
@@ -753,9 +783,11 @@
<property name="can_focus">True</property>
<property name="model">fav_list_store</property>
<property name="enable_grid_lines">both</property>
<property name="activate_on_single_click">True</property>
<signal name="key-release-event" handler="on_tree_view_key_release" object="fav_list_store" swapped="no"/>
<signal name="row-activated" handler="on_fav_selection" object="fav_list_store" swapped="no"/>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection2">
<object class="GtkTreeSelection" id="fav_selection">
<property name="mode">multiple</property>
</object>
</child>
@@ -829,7 +861,7 @@
<property name="activate_on_single_click">True</property>
<signal name="row-activated" handler="on_bouquets_selection" object="bouquets_tree_store" swapped="no"/>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection5"/>
<object class="GtkTreeSelection" id="bouquets_selection"/>
</child>
<child>
<object class="GtkTreeViewColumn" id="bouquets_column">

View File

@@ -16,6 +16,9 @@ __options = get_config()
__services_model = None
__bouquets_model = None
__fav_model = None
__services_view = None
__fav_view = None
__bouquets_view = None
__DATA_FILES_LIST = ("tv", "radio", "lamedb")
__channels = {}
@@ -40,10 +43,50 @@ def get_handlers():
"on_tree_view_key_release": on_tree_view_key_release,
"on_bouquets_selection": on_bouquets_selection,
"on_satellite_editor_show": on_satellite_editor_show,
"on_satellites_list_load": on_satellites_list_load
"on_satellites_list_load": on_satellites_list_load,
"on_services_selection": on_services_selection,
"on_fav_selection": on_fav_selection,
"on_up": on_up,
"on_down": on_down,
"on_cut": on_cut,
"on_copy": on_copy,
"on_paste": on_paste,
"on_delete": on_delete
}
def on_up(item):
pass
def on_down(item):
pass
def on_cut(item):
pass
def on_copy(item):
pass
def on_paste(item):
pass
def on_delete(item):
""" Delete selected items from views """
for view in [__services_view, __fav_view, __bouquets_view]:
selection = view.get_selection()
store, paths = selection.get_selected_rows()
itrs = []
for path in paths:
itrs.append(store.get_iter(path))
for itr in itrs:
store.remove(itr)
def on_satellite_editor_show(model):
""" Shows satellites editor dialog """
builder = Gtk.Builder()
@@ -91,8 +134,17 @@ def on_data_open(model):
task.start()
def on_services_selection(model, path, column):
delete_selection(__fav_view, __bouquets_view)
def on_fav_selection(model, path, column):
delete_selection(__services_view, __bouquets_view)
def on_bouquets_selection(model, path, column):
if len(path) > 1:
delete_selection(__services_view)
tree_iter = model.get_iter(path)
name = model.get_value(tree_iter, 0)
# 'tv' Temporary! It is necessary to implement a row type attribute.
@@ -103,6 +155,12 @@ def on_bouquets_selection(model, path, column):
__fav_model.append((num + 1, channel[0], channel[2], channel[9]))
def delete_selection(view, *args):
""" Used for clear selection on given view(s) """
for v in [view, *args]:
v.get_selection().unselect_all()
def on_path_open(*args):
builder = Gtk.Builder()
builder.add_from_file("editor_ui.glade")
@@ -154,13 +212,12 @@ def on_tree_view_key_release(widget, event):
print("Tab")
if key == Gdk.KEY_Delete:
print("Delete")
on_delete(widget)
if key == Gdk.KEY_Up:
print("Up")
if key == Gdk.KEY_Down:
print("Down")
print(widget.get_name())
def on_upload(item):
connect(__options, False)
@@ -220,6 +277,16 @@ def init_ui():
builder = Gtk.Builder()
builder.add_from_file("editor_ui.glade")
main_window = builder.get_object("main_window")
global __services_view
__services_view = builder.get_object("services_tree_view")
global __fav_view
__fav_view = builder.get_object("fav_tree_view")
global __bouquets_view
__bouquets_view = builder.get_object("bouquets_tree_view")
# global __services_model
# __services_model = builder.get_object("services_list_store")
# global __bouquets_model
# __bouquets_model = builder.get_object("bouquets_tree_store")
global __fav_model
__fav_model = builder.get_object("fav_list_store")
global __status_bar