add pop-up right-click context menu to contents treeview with "Copy URL" menu item
This commit is contained in:
parent
2dead0fb75
commit
162c3c84fb
@ -5,7 +5,7 @@ import sys
|
|||||||
import tempfile
|
import tempfile
|
||||||
import gi
|
import gi
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk, Gdk
|
||||||
from .version import VERSION
|
from .version import VERSION
|
||||||
from .run_svn import run_svn
|
from .run_svn import run_svn
|
||||||
from .cache_file import CacheFile
|
from .cache_file import CacheFile
|
||||||
@ -18,6 +18,7 @@ class MainWindow(Gtk.Window):
|
|||||||
self.current_url = None
|
self.current_url = None
|
||||||
self.cache_file = CacheFile()
|
self.cache_file = CacheFile()
|
||||||
self.directory_buttons = []
|
self.directory_buttons = []
|
||||||
|
self.clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
|
||||||
|
|
||||||
if (self.cache_file["width"] is not None and
|
if (self.cache_file["width"] is not None and
|
||||||
self.cache_file["height"] is not None):
|
self.cache_file["height"] is not None):
|
||||||
@ -39,6 +40,7 @@ class MainWindow(Gtk.Window):
|
|||||||
self.contents_treeview = Gtk.TreeView.new_with_model(self.contents_model)
|
self.contents_treeview = Gtk.TreeView.new_with_model(self.contents_model)
|
||||||
self.contents_treeview.set_headers_visible(False)
|
self.contents_treeview.set_headers_visible(False)
|
||||||
self.contents_treeview.connect("row-activated", self.__on_contents_treeview_row_activated)
|
self.contents_treeview.connect("row-activated", self.__on_contents_treeview_row_activated)
|
||||||
|
self.contents_treeview.connect("button-release-event", self.__on_contents_treeview_button_press)
|
||||||
icon_renderer = Gtk.CellRendererPixbuf()
|
icon_renderer = Gtk.CellRendererPixbuf()
|
||||||
column = Gtk.TreeViewColumn("Icon", icon_renderer, icon_name = 0)
|
column = Gtk.TreeViewColumn("Icon", icon_renderer, icon_name = 0)
|
||||||
self.contents_treeview.append_column(column)
|
self.contents_treeview.append_column(column)
|
||||||
@ -187,3 +189,17 @@ class MainWindow(Gtk.Window):
|
|||||||
subprocess.run(["xdg-open", temp_fname])
|
subprocess.run(["xdg-open", temp_fname])
|
||||||
else:
|
else:
|
||||||
sys.stderr.write("Unable to export file.\n")
|
sys.stderr.write("Unable to export file.\n")
|
||||||
|
|
||||||
|
def __on_contents_treeview_button_press(self, widget, event):
|
||||||
|
if event.button == 3:
|
||||||
|
selected_iterator = self.contents_treeview.get_selection().get_selected()
|
||||||
|
if selected_iterator is not None and selected_iterator[1] is not None:
|
||||||
|
entry_name = selected_iterator[0].get_value(selected_iterator[1], 1)
|
||||||
|
entry_url = self.current_url + "/" + entry_name
|
||||||
|
self.popup_menu = Gtk.Menu()
|
||||||
|
mi = Gtk.MenuItem(label = "Copy URL")
|
||||||
|
handler = lambda widget: self.clipboard.set_text(entry_url, -1)
|
||||||
|
mi.connect("activate", handler)
|
||||||
|
self.popup_menu.append(mi)
|
||||||
|
self.popup_menu.show_all()
|
||||||
|
self.popup_menu.popup(None, None, None, None, event.button, event.time)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user