mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2026-06-23 00:59:57 +02:00
dnd skeleton
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from main.ui import start_app as start
|
||||
from main.ui.main_app_window import start_app as start
|
||||
|
||||
if __name__ == "__main__":
|
||||
start()
|
||||
|
||||
@@ -1 +1,7 @@
|
||||
from main.ui.main import start_app
|
||||
import gi
|
||||
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk, Gdk
|
||||
|
||||
if __name__ == "__main__":
|
||||
pass
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
import gi
|
||||
from threading import Thread
|
||||
|
||||
from main.eparser import get_channels, get_bouquets, get_bouquet
|
||||
from main.eparser.__constants import SERVICE_TYPE
|
||||
from main.properties import get_config, write_config
|
||||
from main.ftp import download_data, upload_data
|
||||
from main.properties import get_config
|
||||
from . import Gtk, Gdk
|
||||
from .satellites_dialog import show_satellites_dialog
|
||||
from .settings_dialog import show_settings_dialog
|
||||
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk, Gdk
|
||||
|
||||
__main_window = None
|
||||
__status_bar = None
|
||||
__options = get_config()
|
||||
@@ -48,7 +46,10 @@ def get_handlers():
|
||||
"on_cut": on_cut,
|
||||
"on_copy": on_copy,
|
||||
"on_paste": on_paste,
|
||||
"on_delete": on_delete
|
||||
"on_delete": on_delete,
|
||||
"on_services_tree_view_drag_data_get": on_services_tree_view_drag_data_get,
|
||||
"on_fav_tree_view_drag_data_get": on_fav_tree_view_drag_data_get,
|
||||
"on_fav_tree_view_drag_data_received": on_fav_tree_view_drag_data_received
|
||||
}
|
||||
|
||||
|
||||
@@ -76,12 +77,45 @@ 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))
|
||||
model, paths = selection.get_selected_rows()
|
||||
itrs = [model.get_iter(path) for path in paths]
|
||||
for itr in itrs:
|
||||
store.remove(itr)
|
||||
model.remove(itr)
|
||||
|
||||
|
||||
def on_services_tree_view_drag_data_get(view, drag_context, data, info, time):
|
||||
""" DnD """
|
||||
selection = view.get_selection()
|
||||
model, paths = selection.get_selected_rows()
|
||||
itrs = [model.get_iter(path) for path in paths]
|
||||
rows = [model.get(itr, *[x for x in range(view.get_n_columns())]) for itr in itrs]
|
||||
print(rows)
|
||||
data.set_text(str(rows), -1)
|
||||
|
||||
|
||||
def on_fav_tree_view_drag_data_get(view, drag_context, data, info, time):
|
||||
selection = view.get_selection()
|
||||
model, paths = selection.get_selected_rows()
|
||||
itrs = [model.get_iter(path) for path in paths]
|
||||
rows = [model.get(itr, *[x for x in range(view.get_n_columns())]) for itr in itrs]
|
||||
print(rows)
|
||||
data.set_text(str(rows), -1)
|
||||
|
||||
|
||||
def on_fav_tree_view_drag_data_received(view, drag_context, x, y, data, info, time):
|
||||
""" DnD """
|
||||
print(data.get_data())
|
||||
# Gtk.SelectionData().get_data
|
||||
model = view.get_model()
|
||||
dest_iter = None
|
||||
dest_tid = None
|
||||
drop_info = view.get_dest_row_at_pos(x, y)
|
||||
if drop_info:
|
||||
path, position = drop_info
|
||||
dest_iter = model.get_iter(path)
|
||||
if dest_iter:
|
||||
dest_tid = model.get_value(dest_iter, 0)
|
||||
print("Destination ", dest_tid)
|
||||
|
||||
|
||||
def on_satellite_editor_show(model):
|
||||
@@ -201,9 +235,20 @@ def init_ui():
|
||||
global __status_bar
|
||||
__status_bar = builder.get_object("status_bar")
|
||||
builder.connect_signals(get_handlers())
|
||||
init_drag_and_drop() # drag and drop
|
||||
__main_window.show_all()
|
||||
|
||||
|
||||
def init_drag_and_drop():
|
||||
""" Enable drag and drop """
|
||||
target_name = ""
|
||||
dnd_targets = [(target_name, Gtk.TargetFlags.SAME_APP, 0)]
|
||||
__services_view.enable_model_drag_source(Gdk.ModifierType.BUTTON1_MASK, dnd_targets, Gdk.DragAction.COPY)
|
||||
__fav_view.enable_model_drag_source(Gdk.ModifierType.BUTTON1_MASK, dnd_targets,
|
||||
Gdk.DragAction.DEFAULT | Gdk.DragAction.MOVE)
|
||||
__fav_view.enable_model_drag_dest(dnd_targets, Gdk.DragAction.DEFAULT | Gdk.DragAction.MOVE)
|
||||
|
||||
|
||||
def start_app():
|
||||
init_ui()
|
||||
Gtk.main()
|
||||
@@ -543,7 +543,7 @@
|
||||
<property name="margin_right">2</property>
|
||||
<property name="wide_handle">True</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="scrolledwindow1">
|
||||
<object class="GtkScrolledWindow" id="services_scrolled_window">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="shadow_type">in</property>
|
||||
@@ -554,6 +554,7 @@
|
||||
<property name="model">services_list_store</property>
|
||||
<property name="enable_grid_lines">both</property>
|
||||
<property name="activate_on_single_click">True</property>
|
||||
<signal name="drag-data-get" handler="on_services_tree_view_drag_data_get" swapped="no"/>
|
||||
<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">
|
||||
@@ -566,6 +567,7 @@
|
||||
<property name="resizable">True</property>
|
||||
<property name="sizing">autosize</property>
|
||||
<property name="title" translatable="yes">Service</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="reorderable">True</property>
|
||||
<property name="sort_column_id">0</property>
|
||||
<child>
|
||||
@@ -581,6 +583,7 @@
|
||||
<property name="resizable">True</property>
|
||||
<property name="sizing">autosize</property>
|
||||
<property name="title" translatable="yes">Package</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="reorderable">True</property>
|
||||
<property name="sort_column_id">1</property>
|
||||
<child>
|
||||
@@ -595,6 +598,7 @@
|
||||
<object class="GtkTreeViewColumn" id="service_type_column">
|
||||
<property name="resizable">True</property>
|
||||
<property name="title" translatable="yes">Type</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="reorderable">True</property>
|
||||
<property name="sort_column_id">2</property>
|
||||
<child>
|
||||
@@ -610,6 +614,7 @@
|
||||
<property name="resizable">True</property>
|
||||
<property name="sizing">autosize</property>
|
||||
<property name="title" translatable="yes">Ssid</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="reorderable">True</property>
|
||||
<property name="sort_column_id">3</property>
|
||||
<child>
|
||||
@@ -625,6 +630,7 @@
|
||||
<property name="resizable">True</property>
|
||||
<property name="sizing">autosize</property>
|
||||
<property name="title" translatable="yes">Freq</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="reorderable">True</property>
|
||||
<property name="sort_column_id">4</property>
|
||||
<child>
|
||||
@@ -640,6 +646,7 @@
|
||||
<property name="resizable">True</property>
|
||||
<property name="sizing">autosize</property>
|
||||
<property name="title" translatable="yes">Rate</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="reorderable">True</property>
|
||||
<property name="sort_column_id">5</property>
|
||||
<child>
|
||||
@@ -655,6 +662,7 @@
|
||||
<property name="resizable">True</property>
|
||||
<property name="sizing">autosize</property>
|
||||
<property name="title" translatable="yes">Pol</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="reorderable">True</property>
|
||||
<property name="sort_column_id">6</property>
|
||||
<child>
|
||||
@@ -670,6 +678,7 @@
|
||||
<property name="resizable">True</property>
|
||||
<property name="sizing">autosize</property>
|
||||
<property name="title" translatable="yes">FEC</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="reorderable">True</property>
|
||||
<property name="sort_column_id">7</property>
|
||||
<child>
|
||||
@@ -685,6 +694,7 @@
|
||||
<property name="resizable">True</property>
|
||||
<property name="sizing">autosize</property>
|
||||
<property name="title" translatable="yes">System</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="reorderable">True</property>
|
||||
<property name="sort_column_id">8</property>
|
||||
<child>
|
||||
@@ -699,7 +709,7 @@
|
||||
<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="expand">True</property>
|
||||
<property name="sort_column_id">9</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="pos_cellrenderertext1"/>
|
||||
@@ -760,6 +770,8 @@
|
||||
<property name="model">fav_list_store</property>
|
||||
<property name="enable_grid_lines">both</property>
|
||||
<property name="activate_on_single_click">True</property>
|
||||
<signal name="drag-data-get" handler="on_fav_tree_view_drag_data_get" swapped="no"/>
|
||||
<signal name="drag-data-received" handler="on_fav_tree_view_drag_data_received" swapped="no"/>
|
||||
<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">
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
import gi
|
||||
|
||||
from main.eparser import get_satellites
|
||||
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk
|
||||
from . import Gtk
|
||||
|
||||
__data_path = None
|
||||
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
import gi
|
||||
|
||||
from main.properties import write_config
|
||||
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk
|
||||
from . import Gtk
|
||||
|
||||
|
||||
def show_settings_dialog(transient, options):
|
||||
|
||||
Reference in New Issue
Block a user