OSDN Git Service

Popup menu for ThreadView is not prepared by the glade xml. (#16526)
[fukui-no-namari/fukui-no-namari.git] / src / FukuiNoNamari / thread_window.py
index 7d93d13..3ec0869 100644 (file)
@@ -156,8 +156,8 @@ class WinWrap(winwrapbase.WinWrapBase):
         self.vbox.reorder_child(container, 2)
         self.window.set_focus(self.threadview)
 
-        self._get_popupmenu_widgets()
-
+        self.threadview.connect(
+            "populate-popup", self.on_thread_view_populate_popup)
         self.threadview.connect(
             "uri-clicked-event", self.on_thread_view_uri_clicked)
         self.threadpopup.connect(
@@ -180,22 +180,6 @@ class WinWrap(winwrapbase.WinWrapBase):
         self.statusbar = self.widget_tree.get_widget("statusbar")
         self.vbox = self.widget_tree.get_widget("vbox")
 
-    def _get_popupmenu_widgets(self):
-        self.threadview.popupmenu = self.widget_tree.get_widget(
-            "popup_threadview_menu")
-        self.threadview.menu_openuri = self.widget_tree.get_widget(
-            "popup_threadview_menu_openuri")
-        self.threadview.menu_copylinkaddress = self.widget_tree.get_widget(
-            "popup_threadview_menu_copylinkaddress")
-        self.threadview.menu_separator_link = self.widget_tree.get_widget(
-            "popup_threadview_menu_separator_link")
-        self.threadview.menu_copyselection = self.widget_tree.get_widget(
-            "popup_threadview_menu_copyselection")
-        self.threadview.menu_openasuri = self.widget_tree.get_widget(
-            "popup_threadview_menu_openasuri")
-        self.threadview.menu_separator_selection = self.widget_tree.get_widget(
-            "popup_threadview_menu_separator_selection")
-
     def initialize_buffer(self):
         self.threadview.initialize_buffer()
 
@@ -649,6 +633,12 @@ class WinWrap(winwrapbase.WinWrapBase):
 
     # signal handlers
     
+    def on_thread_view_populate_popup(self, widget, menu):
+        menuitem = gtk.ImageMenuItem(gtk.STOCK_REFRESH)
+        menuitem.connect("activate",
+                         self.on_popup_threadview_menu_refresh_activate)
+        menu.append(menuitem)
+
     def on_thread_view_uri_clicked(self, widget, uri):
         self._open_uri(uri)
 
@@ -719,20 +709,5 @@ class WinWrap(winwrapbase.WinWrapBase):
 
     # popup menus
     
-    def on_popup_threadview_menu_openuri_activate(self, widget):
-        self._open_uri(widget.uri)
-
-    def on_popup_threadview_menu_copylinkaddress_activate(self, widget):
-        self._copy_text_to_clipboard(widget.uri)
-
-    def on_popup_threadview_menu_copyselection_activate(self, widget):
-        text = self.threadview.get_selected_text()
-        self._copy_text_to_clipboard(text)
-
-    def on_popup_threadview_menu_openasuri_activate(self, widget):
-        text = self.threadview.get_selected_text()
-        uri = self._modify_uri(text)
-        self._open_uri(uri)
-
     def on_popup_threadview_menu_refresh_activate(self, widget):
         self.update()