Added some keyboard controls
This commit is contained in:
parent
85a9c5d899
commit
e4ac63e01d
@ -35,6 +35,8 @@
|
|||||||
<property name="default-height">830</property>
|
<property name="default-height">830</property>
|
||||||
<property name="icon">pyfm.png</property>
|
<property name="icon">pyfm.png</property>
|
||||||
<property name="gravity">center</property>
|
<property name="gravity">center</property>
|
||||||
|
<signal name="key-press-event" handler="global_key_press_controller" swapped="no"/>
|
||||||
|
<signal name="key-release-event" handler="global_key_release_controller" swapped="no"/>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
@ -140,6 +142,7 @@
|
|||||||
<property name="can-focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="use-underline">True</property>
|
<property name="use-underline">True</property>
|
||||||
<property name="use-stock">True</property>
|
<property name="use-stock">True</property>
|
||||||
|
<signal name="button-release-event" handler="menu_bar_copy" swapped="no"/>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
@ -307,7 +310,7 @@
|
|||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can-focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton">
|
<object class="GtkButton" id="go_home">
|
||||||
<property name="label">gtk-home</property>
|
<property name="label">gtk-home</property>
|
||||||
<property name="name">go_home</property>
|
<property name="name">go_home</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
@ -324,7 +327,7 @@
|
|||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton">
|
<object class="GtkButton" id="refresh_view">
|
||||||
<property name="label">gtk-refresh</property>
|
<property name="label">gtk-refresh</property>
|
||||||
<property name="name">refresh_view</property>
|
<property name="name">refresh_view</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
@ -341,7 +344,7 @@
|
|||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton">
|
<object class="GtkButton" id="go_up">
|
||||||
<property name="label">gtk-go-up</property>
|
<property name="label">gtk-go-up</property>
|
||||||
<property name="name">go_up</property>
|
<property name="name">go_up</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
@ -373,7 +376,7 @@
|
|||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton">
|
<object class="GtkButton" id="create_tab">
|
||||||
<property name="label">gtk-add</property>
|
<property name="label">gtk-add</property>
|
||||||
<property name="name">create_tab</property>
|
<property name="name">create_tab</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
@ -417,6 +420,7 @@
|
|||||||
<property name="name">notebook1</property>
|
<property name="name">notebook1</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can-focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
|
<property name="has-focus">True</property>
|
||||||
<property name="margin-left">5</property>
|
<property name="margin-left">5</property>
|
||||||
<property name="margin-right">5</property>
|
<property name="margin-right">5</property>
|
||||||
<property name="margin-top">5</property>
|
<property name="margin-top">5</property>
|
||||||
|
@ -4,7 +4,9 @@ import threading, subprocess, signal, inspect, os, time
|
|||||||
# Gtk imports
|
# Gtk imports
|
||||||
import gi
|
import gi
|
||||||
gi.require_version('Gtk', '3.0')
|
gi.require_version('Gtk', '3.0')
|
||||||
from gi.repository import Gtk as gtk
|
gi.require_version('Gdk', '3.0')
|
||||||
|
from gi.repository import Gtk
|
||||||
|
from gi.repository import Gdk
|
||||||
from gi.repository import GLib
|
from gi.repository import GLib
|
||||||
|
|
||||||
# Application imports
|
# Application imports
|
||||||
@ -19,7 +21,7 @@ def threaded(fn):
|
|||||||
return wrapper
|
return wrapper
|
||||||
|
|
||||||
|
|
||||||
class Signals(WindowMixin, PaneMixin):
|
class Signals(PaneMixin, WindowMixin):
|
||||||
def __init__(self, settings):
|
def __init__(self, settings):
|
||||||
self.settings = settings
|
self.settings = settings
|
||||||
self.builder = self.settings.builder
|
self.builder = self.settings.builder
|
||||||
@ -41,6 +43,10 @@ class Signals(WindowMixin, PaneMixin):
|
|||||||
self.is_pane3_hidden = False
|
self.is_pane3_hidden = False
|
||||||
self.is_pane4_hidden = False
|
self.is_pane4_hidden = False
|
||||||
|
|
||||||
|
self.ctrlDown = False
|
||||||
|
self.shiftDown = False
|
||||||
|
self.altDown = False
|
||||||
|
|
||||||
self.window.show()
|
self.window.show()
|
||||||
self.generate_windows(self.state)
|
self.generate_windows(self.state)
|
||||||
|
|
||||||
@ -73,11 +79,63 @@ class Signals(WindowMixin, PaneMixin):
|
|||||||
self.load_store(view, store)
|
self.load_store(view, store)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def global_key_press_controller(self, eve, user_data):
|
||||||
|
keyname = Gdk.keyval_name(user_data.keyval).lower()
|
||||||
|
if "control" in keyname or "alt" in keyname or "shift" in keyname:
|
||||||
|
if "control" in keyname:
|
||||||
|
self.ctrlDown = True
|
||||||
|
if "shift" in keyname:
|
||||||
|
self.shiftDown = True
|
||||||
|
if "alt" in keyname:
|
||||||
|
self.altDown = True
|
||||||
|
|
||||||
|
# NOTE: Yes, this should actually be mapped to some key
|
||||||
|
# controller setting file or something. Sue me.
|
||||||
|
def global_key_release_controller(self, eve, user_data):
|
||||||
|
keyname = Gdk.keyval_name(user_data.keyval).lower()
|
||||||
|
if debug:
|
||||||
|
print(f"global_key_release_controller > key > {keyname}")
|
||||||
|
|
||||||
|
if "control" in keyname or "alt" in keyname or "shift" in keyname:
|
||||||
|
if "control" in keyname:
|
||||||
|
self.ctrlDown = False
|
||||||
|
if "shift" in keyname:
|
||||||
|
self.shiftDown = False
|
||||||
|
if "alt" in keyname:
|
||||||
|
self.altDown = False
|
||||||
|
|
||||||
|
if (self.ctrlDown and keyname == "h") or keyname == "home":
|
||||||
|
self.builder.get_object("go_home").released()
|
||||||
|
if self.ctrlDown and keyname == "r":
|
||||||
|
self.builder.get_object("refresh_view").released()
|
||||||
|
if (self.ctrlDown and keyname == "up") or (self.ctrlDown and keyname == "up"):
|
||||||
|
self.builder.get_object("go_up").released()
|
||||||
|
if self.ctrlDown and keyname == "l":
|
||||||
|
self.builder.get_object("path_entry").grab_focus()
|
||||||
|
if self.ctrlDown and keyname == "t":
|
||||||
|
self.builder.get_object("create_tab").released()
|
||||||
|
if self.ctrlDown and keyname == "w":
|
||||||
|
print("[close tab] stub...")
|
||||||
|
|
||||||
|
if self.ctrlDown and keyname == "period":
|
||||||
|
wid, tid = self.window_controller.get_active_data()
|
||||||
|
view = self.get_fm_window(wid).get_view_by_id(tid)
|
||||||
|
view.hide_hidden = not view.hide_hidden
|
||||||
|
view.load_directory()
|
||||||
|
self.builder.get_object("refresh_view").released()
|
||||||
|
if self.ctrlDown and keyname == "c":
|
||||||
|
print("[copy] stub...")
|
||||||
|
if self.ctrlDown and keyname == "v":
|
||||||
|
print("[paste] stub...")
|
||||||
|
|
||||||
|
|
||||||
def tear_down(self, widget=None, eve=None):
|
def tear_down(self, widget=None, eve=None):
|
||||||
self.window_controller.save_state()
|
self.window_controller.save_state()
|
||||||
event_system.monitor_events = False
|
event_system.monitor_events = False
|
||||||
time.sleep(event_sleep_time)
|
time.sleep(event_sleep_time)
|
||||||
gtk.main_quit()
|
Gtk.main_quit()
|
||||||
|
|
||||||
def generate_windows(self, data = None):
|
def generate_windows(self, data = None):
|
||||||
if data:
|
if data:
|
||||||
|
@ -34,7 +34,7 @@ class TabMixin(WidgetMixin):
|
|||||||
def close_tab(self, widget, eve):
|
def close_tab(self, widget, eve):
|
||||||
notebook = widget.get_parent().get_parent()
|
notebook = widget.get_parent().get_parent()
|
||||||
page = notebook.get_current_page()
|
page = notebook.get_current_page()
|
||||||
tid = self.get_tab_id_from_widget(widget.get_parent())
|
tid = self.get_tab_id_from_tab_box(widget.get_parent())
|
||||||
wid = int(notebook.get_name()[-1])
|
wid = int(notebook.get_name()[-1])
|
||||||
|
|
||||||
self.get_fm_window(wid).delete_view_by_id(tid)
|
self.get_fm_window(wid).delete_view_by_id(tid)
|
||||||
@ -43,17 +43,20 @@ class TabMixin(WidgetMixin):
|
|||||||
self.set_window_title()
|
self.set_window_title()
|
||||||
|
|
||||||
def on_tab_switch_update(self, notebook, content=None, index=None):
|
def on_tab_switch_update(self, notebook, content=None, index=None):
|
||||||
wid, tid = content.get_children()[0].get_name().split("|")
|
wid, tid = content.get_children()[0].get_name().split("|")
|
||||||
self.window_controller.set_active_data(wid, tid)
|
self.window_controller.set_active_data(wid, tid)
|
||||||
self.set_path_text(wid, tid)
|
self.set_path_text(wid, tid)
|
||||||
self.set_window_title()
|
self.set_window_title()
|
||||||
|
|
||||||
def get_tab_id_from_widget(self, tab_box):
|
def get_tab_id_from_tab_box(self, tab_box):
|
||||||
tid = tab_box.get_children()[2]
|
tid = tab_box.get_children()[2]
|
||||||
return tid.get_text()
|
return tid.get_text()
|
||||||
|
|
||||||
def get_tab_label_widget_from_widget(self, notebook, widget):
|
def get_tab_label(self, notebook, iconview):
|
||||||
return notebook.get_tab_label(widget.get_parent()).get_children()[0]
|
return notebook.get_tab_label(iconview.get_parent()).get_children()[0]
|
||||||
|
|
||||||
|
def get_tab_iconview_from_notebook(self, notebook):
|
||||||
|
return notebook.get_children()[1].get_children()[0]
|
||||||
|
|
||||||
|
|
||||||
def do_action_from_bar_controls(self, widget, eve=None):
|
def do_action_from_bar_controls(self, widget, eve=None):
|
||||||
@ -74,7 +77,11 @@ class TabMixin(WidgetMixin):
|
|||||||
self.create_tab(wid, dir)
|
self.create_tab(wid, dir)
|
||||||
return
|
return
|
||||||
if action == "path_entry":
|
if action == "path_entry":
|
||||||
path = widget.get_text()
|
path = widget.get_text()
|
||||||
|
dir = view.get_current_directory() + "/"
|
||||||
|
if path == dir :
|
||||||
|
return
|
||||||
|
|
||||||
traversed = view.set_path(path)
|
traversed = view.set_path(path)
|
||||||
if not traversed:
|
if not traversed:
|
||||||
return
|
return
|
||||||
@ -86,6 +93,17 @@ class TabMixin(WidgetMixin):
|
|||||||
|
|
||||||
|
|
||||||
# File control events
|
# File control events
|
||||||
|
def get_uris(self, store, treePaths=None):
|
||||||
|
uris = []
|
||||||
|
|
||||||
|
for path in treePaths:
|
||||||
|
itr = store.get_iter(path)
|
||||||
|
file = store.get(itr, 1)[0]
|
||||||
|
fpath = f"file://{dir}/{file}"
|
||||||
|
uris.append(fpath)
|
||||||
|
|
||||||
|
return uris
|
||||||
|
|
||||||
def create_file(self):
|
def create_file(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -103,8 +121,28 @@ class TabMixin(WidgetMixin):
|
|||||||
def move_file(self, view, fFile, tFile):
|
def move_file(self, view, fFile, tFile):
|
||||||
view.move_file(fFile.replace("file://", ""), tFile)
|
view.move_file(fFile.replace("file://", ""), tFile)
|
||||||
|
|
||||||
|
def menu_bar_copy(self, widget, eve):
|
||||||
|
self.copy_file()
|
||||||
|
|
||||||
def copy_file(self):
|
def copy_file(self):
|
||||||
pass
|
wid, tid = self.window_controller.get_active_data()
|
||||||
|
print(wid)
|
||||||
|
print(tid)
|
||||||
|
notebook = self.builder.get_object(f"window_{wid}")
|
||||||
|
iconview = self.get_tab_iconview_from_notebook(notebook)
|
||||||
|
print(iconview)
|
||||||
|
store = iconview.get_model()
|
||||||
|
treePaths = iconview.get_selected_items()
|
||||||
|
|
||||||
|
print(len(treePaths))
|
||||||
|
for path in treePaths:
|
||||||
|
itr = store.get_iter(path)
|
||||||
|
file = store.get(itr, 1)[0]
|
||||||
|
# print(file)
|
||||||
|
|
||||||
|
# uris = self.get_uris(store, treePaths)
|
||||||
|
# print(uris)
|
||||||
|
|
||||||
|
|
||||||
def cut_file(self):
|
def cut_file(self):
|
||||||
pass
|
pass
|
||||||
|
@ -51,7 +51,10 @@ class WidgetMixin:
|
|||||||
if not icon:
|
if not icon:
|
||||||
icon = self.get_system_thumbnail(fpath, view.SYS_ICON_WH[0])
|
icon = self.get_system_thumbnail(fpath, view.SYS_ICON_WH[0])
|
||||||
if not icon:
|
if not icon:
|
||||||
icon = GdkPixbuf.Pixbuf.new_from_file(view.DEFAULT_ICON)
|
if fpath.endswith(".gif"):
|
||||||
|
icon = GdkPixbuf.PixbufAnimation.get_static_image(fpath)
|
||||||
|
else:
|
||||||
|
icon = GdkPixbuf.Pixbuf.new_from_file(view.DEFAULT_ICON)
|
||||||
|
|
||||||
store.set_value(itr, 0, icon)
|
store.set_value(itr, 0, icon)
|
||||||
|
|
||||||
@ -143,34 +146,47 @@ class WidgetMixin:
|
|||||||
scroll = Gtk.ScrolledWindow()
|
scroll = Gtk.ScrolledWindow()
|
||||||
grid = Gtk.TreeView()
|
grid = Gtk.TreeView()
|
||||||
store = Gtk.ListStore(GdkPixbuf.Pixbuf, str)
|
store = Gtk.ListStore(GdkPixbuf.Pixbuf, str)
|
||||||
|
# store = Gtk.TreeStore(GdkPixbuf.Pixbuf, str)
|
||||||
column = Gtk.TreeViewColumn("Icons")
|
column = Gtk.TreeViewColumn("Icons")
|
||||||
icon = Gtk.CellRendererPixbuf()
|
icon = Gtk.CellRendererPixbuf()
|
||||||
name = Gtk.CellRendererText()
|
name = Gtk.CellRendererText()
|
||||||
|
selec = grid.get_selection()
|
||||||
|
|
||||||
grid.set_model(store)
|
grid.set_model(store)
|
||||||
|
selec.set_mode(3)
|
||||||
column.pack_start(icon, False)
|
column.pack_start(icon, False)
|
||||||
column.pack_start(name, True)
|
column.pack_start(name, True)
|
||||||
column.add_attribute(icon, "pixbuf", 0)
|
column.add_attribute(icon, "pixbuf", 0)
|
||||||
column.add_attribute(name, "text", 1)
|
column.add_attribute(name, "text", 1)
|
||||||
column.set_expand(True)
|
column.set_expand(False)
|
||||||
|
column.set_sizing(2)
|
||||||
|
column.set_min_width(120)
|
||||||
|
column.set_max_width(74)
|
||||||
|
|
||||||
grid.append_column(column)
|
grid.append_column(column)
|
||||||
grid.set_search_column(1)
|
grid.set_search_column(1)
|
||||||
grid.set_rubber_banding(True)
|
grid.set_rubber_banding(True)
|
||||||
grid.set_headers_visible(False)
|
grid.set_headers_visible(False)
|
||||||
grid.set_enable_tree_lines(False)
|
grid.set_enable_tree_lines(False)
|
||||||
grid.set_visible(True)
|
|
||||||
|
|
||||||
grid.connect("button_release_event", self.grid_icon_single_left_click)
|
grid.connect("button_release_event", self.grid_icon_single_left_click)
|
||||||
grid.connect("item-activated", self.grid_icon_double_left_click)
|
grid.connect("row-activated", self.grid_icon_double_left_click)
|
||||||
|
grid.connect("drag-data-get", self.grid_on_drag_set)
|
||||||
|
grid.connect("drag-data-received", self.grid_on_drag_data_received)
|
||||||
|
grid.connect("drag-motion", self.grid_on_drag_motion)
|
||||||
|
|
||||||
|
URI_TARGET_TYPE = 80
|
||||||
|
uri_target = Gtk.TargetEntry.new('text/uri-list', Gtk.TargetFlags(0), URI_TARGET_TYPE)
|
||||||
|
targets = [ uri_target ]
|
||||||
|
action = Gdk.DragAction.COPY
|
||||||
|
grid.enable_model_drag_dest(targets, action)
|
||||||
|
grid.enable_model_drag_source(0, targets, action)
|
||||||
|
|
||||||
column.set_visible(True)
|
|
||||||
icon.set_visible(True)
|
|
||||||
name.set_visible(True)
|
|
||||||
|
|
||||||
grid.show_all()
|
grid.show_all()
|
||||||
scroll.add(grid)
|
scroll.add(grid)
|
||||||
grid.set_name(f"{wid}|{view.id}")
|
grid.set_name(f"{wid}|{view.id}")
|
||||||
|
grid.columns_autosize()
|
||||||
return scroll, store
|
return scroll, store
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,16 +24,16 @@ class WindowMixin(TabMixin):
|
|||||||
wid, tid = self.window_controller.get_active_data()
|
wid, tid = self.window_controller.get_active_data()
|
||||||
view = self.get_fm_window(wid).get_view_by_id(tid)
|
view = self.get_fm_window(wid).get_view_by_id(tid)
|
||||||
dir = view.get_current_directory()
|
dir = view.get_current_directory()
|
||||||
self.window.set_title(dir)
|
self.window.set_title("PyFM ~ " + dir)
|
||||||
|
|
||||||
def set_path_text(self, wid, tid):
|
def set_path_text(self, wid, tid):
|
||||||
path_entry = self.builder.get_object("path_entry")
|
path_entry = self.builder.get_object("path_entry")
|
||||||
view = self.get_fm_window(wid).get_view_by_id(tid)
|
view = self.get_fm_window(wid).get_view_by_id(tid)
|
||||||
path_entry.set_text(view.get_current_directory())
|
path_entry.set_text(view.get_current_directory())
|
||||||
|
|
||||||
def grid_icon_single_left_click(self, widget, eve):
|
def grid_icon_single_left_click(self, iconview, eve):
|
||||||
try:
|
try:
|
||||||
wid, tid = widget.get_name().split("|")
|
wid, tid = iconview.get_name().split("|")
|
||||||
self.window_controller.set_active_data(wid, tid)
|
self.window_controller.set_active_data(wid, tid)
|
||||||
|
|
||||||
if eve.type == Gdk.EventType.BUTTON_RELEASE and eve.button == 1: # l-click
|
if eve.type == Gdk.EventType.BUTTON_RELEASE and eve.button == 1: # l-click
|
||||||
@ -41,7 +41,7 @@ class WindowMixin(TabMixin):
|
|||||||
self.set_window_title()
|
self.set_window_title()
|
||||||
|
|
||||||
if self.single_click_open: # FIXME: need to find a way to pass the model index
|
if self.single_click_open: # FIXME: need to find a way to pass the model index
|
||||||
self.grid_icon_double_left_click(widget)
|
self.grid_icon_double_left_click(iconview)
|
||||||
elif eve.type == Gdk.EventType.BUTTON_RELEASE and eve.button == 3: # r-click
|
elif eve.type == Gdk.EventType.BUTTON_RELEASE and eve.button == 3: # r-click
|
||||||
pass
|
pass
|
||||||
# input = self.builder.get_object("filenameInput")
|
# input = self.builder.get_object("filenameInput")
|
||||||
@ -73,15 +73,15 @@ class WindowMixin(TabMixin):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(repr(e))
|
print(repr(e))
|
||||||
|
|
||||||
def grid_icon_double_left_click(self, widget, item):
|
def grid_icon_double_left_click(self, iconview, item, data=None):
|
||||||
try:
|
try:
|
||||||
wid, tid = self.window_controller.get_active_data()
|
wid, tid = self.window_controller.get_active_data()
|
||||||
notebook = self.builder.get_object(f"window_{wid}")
|
notebook = self.builder.get_object(f"window_{wid}")
|
||||||
path_entry = self.builder.get_object(f"path_entry")
|
path_entry = self.builder.get_object(f"path_entry")
|
||||||
tab_label = self.get_tab_label_widget_from_widget(notebook, widget)
|
tab_label = self.get_tab_label(notebook, iconview)
|
||||||
|
|
||||||
view = self.get_fm_window(wid).get_view_by_id(tid)
|
view = self.get_fm_window(wid).get_view_by_id(tid)
|
||||||
model = widget.get_model()
|
model = iconview.get_model()
|
||||||
|
|
||||||
fileName = model[item][1]
|
fileName = model[item][1]
|
||||||
dir = view.get_current_directory()
|
dir = view.get_current_directory()
|
||||||
@ -101,10 +101,12 @@ class WindowMixin(TabMixin):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(repr(e))
|
print(repr(e))
|
||||||
|
|
||||||
def grid_on_drag_set(self, widget, drag_context, data, info, time):
|
|
||||||
action = widget.get_name()
|
|
||||||
store = widget.get_model()
|
def grid_on_drag_set(self, iconview, drag_context, data, info, time):
|
||||||
treePaths = widget.get_selected_items()
|
action = iconview.get_name()
|
||||||
|
store = iconview.get_model()
|
||||||
|
treePaths = iconview.get_selected_items()
|
||||||
wid, tid = action.split("|")
|
wid, tid = action.split("|")
|
||||||
view = self.get_fm_window(wid).get_view_by_id(tid)
|
view = self.get_fm_window(wid).get_view_by_id(tid)
|
||||||
dir = view.get_current_directory()
|
dir = view.get_current_directory()
|
||||||
@ -119,8 +121,8 @@ class WindowMixin(TabMixin):
|
|||||||
data.set_uris(uris)
|
data.set_uris(uris)
|
||||||
event_system.push_gui_event(["refresh_tab", None, action])
|
event_system.push_gui_event(["refresh_tab", None, action])
|
||||||
|
|
||||||
def grid_on_drag_motion(self, widget, drag_context, x, y, data):
|
def grid_on_drag_motion(self, iconview, drag_context, x, y, data):
|
||||||
wid, tid = widget.get_name().split("|")
|
wid, tid = iconview.get_name().split("|")
|
||||||
self.window_controller.set_active_data(wid, tid)
|
self.window_controller.set_active_data(wid, tid)
|
||||||
|
|
||||||
def grid_on_drag_data_received(self, widget, drag_context, x, y, data, info, time):
|
def grid_on_drag_data_received(self, widget, drag_context, x, y, data, info, time):
|
||||||
@ -128,8 +130,8 @@ class WindowMixin(TabMixin):
|
|||||||
wid, tid = self.window_controller.get_active_data()
|
wid, tid = self.window_controller.get_active_data()
|
||||||
notebook = self.builder.get_object(f"window_{wid}")
|
notebook = self.builder.get_object(f"window_{wid}")
|
||||||
store, tab_label = self.get_store_and_label_from_notebook(notebook, f"{wid}|{tid}")
|
store, tab_label = self.get_store_and_label_from_notebook(notebook, f"{wid}|{tid}")
|
||||||
|
view = self.get_fm_window(wid).get_view_by_id(tid)
|
||||||
|
|
||||||
view = self.get_fm_window(wid).get_view_by_id(tid)
|
|
||||||
uris = data.get_uris()
|
uris = data.get_uris()
|
||||||
dest = view.get_current_directory()
|
dest = view.get_current_directory()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user