mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2026-05-05 21:15:36 +02:00
writing satellites.xml impl
This commit is contained in:
@@ -127,7 +127,10 @@ def on_to_fav_move(view):
|
||||
""" Move items from main to fav list """
|
||||
selection = get_selection(view)
|
||||
if selection:
|
||||
receive_selection(view=__fav_view, drop_info=None, data=selection)
|
||||
if is_bouquet_selected():
|
||||
receive_selection(view=__fav_view, drop_info=None, data=selection)
|
||||
else:
|
||||
show_message_dialog("Error. No bouquet is selected!")
|
||||
|
||||
|
||||
def get_selection(view):
|
||||
@@ -189,7 +192,10 @@ def on_fav_tree_view_drag_data_get(view, drag_context, data, info, time):
|
||||
|
||||
def on_fav_tree_view_drag_data_received(view, drag_context, x, y, data, info, time):
|
||||
""" DnD """
|
||||
receive_selection(view=view, drop_info=view.get_dest_row_at_pos(x, y), data=data.get_text())
|
||||
if is_bouquet_selected():
|
||||
receive_selection(view=view, drop_info=view.get_dest_row_at_pos(x, y), data=data.get_text())
|
||||
else:
|
||||
show_message_dialog("Error. No bouquet is selected!")
|
||||
|
||||
|
||||
def on_view_popup_menu(menu, event):
|
||||
@@ -231,26 +237,44 @@ def on_data_open(model):
|
||||
|
||||
|
||||
def on_services_selection(model, path, column):
|
||||
delete_selection(__fav_view, __bouquets_view)
|
||||
delete_selection(__fav_view)
|
||||
|
||||
|
||||
def on_fav_selection(model, path, column):
|
||||
delete_selection(__services_view, __bouquets_view)
|
||||
delete_selection(__services_view)
|
||||
|
||||
|
||||
def on_bouquets_selection(model, path, column):
|
||||
__fav_model.clear()
|
||||
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.
|
||||
bq = get_bouquet(__options["data_dir_path"], name, SERVICE_TYPE[1].lower())
|
||||
__fav_model.clear()
|
||||
for num, ch_id in enumerate(bq):
|
||||
channel = __channels.get(ch_id, None)
|
||||
__fav_model.append((num + 1, channel[0], channel[2], channel[9]))
|
||||
|
||||
|
||||
def is_bouquet_selected():
|
||||
""" Checks whether the bouquet is selected """
|
||||
selection = __bouquets_view.get_selection()
|
||||
model, path = selection.get_selected_rows()
|
||||
if len(path) < 1:
|
||||
return False
|
||||
return not model.iter_has_child(model.get_iter(path))
|
||||
|
||||
|
||||
def show_message_dialog(text):
|
||||
builder = Gtk.Builder()
|
||||
builder.add_from_file("ui/main_window.glade")
|
||||
dialog = builder.get_object("message_dialog")
|
||||
dialog.set_markup(text)
|
||||
dialog.run()
|
||||
dialog.destroy()
|
||||
|
||||
|
||||
def delete_selection(view, *args):
|
||||
""" Used for clear selection on given view(s) """
|
||||
for v in [view, *args]:
|
||||
|
||||
@@ -1022,8 +1022,11 @@
|
||||
<property name="transient_for">main_window</property>
|
||||
<property name="program_name">DemonEditor</property>
|
||||
<property name="version">0.1 Pre-alpha</property>
|
||||
<property name="copyright" translatable="yes">2017 Dmitriy Yefremov
|
||||
</property>
|
||||
<property name="comments" translatable="yes">Enigma2 channel list editor for GNU/Linux</property>
|
||||
<property name="authors">Dmitriy Yefremov</property>
|
||||
<property name="authors">Dmitriy Yefremov
|
||||
</property>
|
||||
<property name="logo_icon_name">accessories-text-editor</property>
|
||||
<property name="license_type">mit-x11</property>
|
||||
<child internal-child="vbox">
|
||||
@@ -1048,12 +1051,15 @@
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkMessageDialog" id="messagedialog1">
|
||||
<object class="GtkMessageDialog" id="message_dialog">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="default_width">320</property>
|
||||
<property name="default_height">240</property>
|
||||
<property name="icon_name">accessories-text-editor</property>
|
||||
<property name="type_hint">dialog</property>
|
||||
<property name="transient_for">main_window</property>
|
||||
<property name="message_type">question</property>
|
||||
<property name="buttons">ok-cancel</property>
|
||||
<property name="message_type">error</property>
|
||||
<property name="buttons">ok</property>
|
||||
<child internal-child="vbox">
|
||||
<object class="GtkBox" id="messagedialog-vbox">
|
||||
<property name="can_focus">False</property>
|
||||
|
||||
@@ -2,6 +2,39 @@
|
||||
<!-- Generated with glade 3.18.3 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.12"/>
|
||||
<object class="GtkMenu" id="popup_menu">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="reserve_toggle_size">False</property>
|
||||
<child>
|
||||
<object class="GtkImageMenuItem" id="add_popoup_menu_item">
|
||||
<property name="label">gtk-add</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_stock">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImageMenuItem" id="edit_popoup_menu_item">
|
||||
<property name="label">gtk-edit</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_stock">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImageMenuItem" id="remove_popup_menu_item">
|
||||
<property name="label">gtk-remove</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_remove" object="satellites_editor_tree_view" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkTreeStore" id="satellites_tree_store">
|
||||
<columns>
|
||||
<!-- column-name satelitte -->
|
||||
@@ -299,6 +332,7 @@
|
||||
<property name="can_focus">True</property>
|
||||
<property name="model">satellites_tree_store</property>
|
||||
<property name="search_column">0</property>
|
||||
<signal name="button-press-event" handler="on_popup_menu" object="popup_menu" swapped="no"/>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection" id="tree_view_selection">
|
||||
<property name="mode">multiple</property>
|
||||
@@ -390,6 +424,7 @@
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="pls_mode_column">
|
||||
<property name="visible">False</property>
|
||||
<property name="title" translatable="yes">Pls mode</property>
|
||||
<property name="expand">True</property>
|
||||
<child>
|
||||
@@ -402,6 +437,7 @@
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="pls_code_column">
|
||||
<property name="visible">False</property>
|
||||
<property name="title" translatable="yes">Pls code</property>
|
||||
<property name="expand">True</property>
|
||||
<child>
|
||||
@@ -414,6 +450,7 @@
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="is_id_column">
|
||||
<property name="visible">False</property>
|
||||
<property name="resizable">True</property>
|
||||
<property name="title" translatable="yes">Is ID</property>
|
||||
<property name="expand">True</property>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
from main.eparser import get_satellites
|
||||
from main.eparser.satxml import Satellite, Transponder
|
||||
from . import Gtk
|
||||
from main.eparser import get_satellites, write_satellites, Satellite, Transponder
|
||||
from . import Gtk, Gdk
|
||||
|
||||
__data_path = None
|
||||
|
||||
@@ -8,7 +7,9 @@ __data_path = None
|
||||
def show_satellites_dialog(transient, data_path):
|
||||
global __data_path
|
||||
__data_path = data_path
|
||||
handlers = {"on_satellites_list_load": on_satellites_list_load, "on_remove": on_remove, "on_save": on_save}
|
||||
handlers = {"on_satellites_list_load": on_satellites_list_load,
|
||||
"on_remove": on_remove, "on_save": on_save,
|
||||
"on_popup_menu": on_popup_menu}
|
||||
builder = Gtk.Builder()
|
||||
builder.add_from_file("./ui/satellites_dialog.glade")
|
||||
builder.connect_signals(handlers)
|
||||
@@ -41,8 +42,7 @@ def on_save(view):
|
||||
model = view.get_model()
|
||||
satellites = []
|
||||
model.foreach(parse_data, satellites)
|
||||
for sat in satellites:
|
||||
print(sat)
|
||||
write_satellites(satellites, __data_path)
|
||||
|
||||
|
||||
def parse_data(model, path, itr, sats):
|
||||
@@ -58,5 +58,10 @@ def parse_data(model, path, itr, sats):
|
||||
sats.append(satellite)
|
||||
|
||||
|
||||
def on_popup_menu(menu, event):
|
||||
if event.get_event_type() == Gdk.EventType.BUTTON_PRESS and event.button == Gdk.BUTTON_SECONDARY:
|
||||
menu.popup(None, None, None, None, event.button, event.time)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user