• R/O
  • HTTP
  • SSH
  • HTTPS

fukui-no-namari: Commit

Fukui no Namari


Commit MetaInfo

Revisionae595951dfb27bddcdde33ab4d4af0c902de5ff9 (tree)
Time2009-04-19 16:18:50
AuthorAiwota Programmer <aiwotaprog@tett...>
CommiterAiwota Programmer

Log Message

Refactoring menu items and toolbuttons commands in ThreadWindow.

Change Summary

Incremental Difference

--- a/src/FukuiNoNamari/thread_window.py
+++ b/src/FukuiNoNamari/thread_window.py
@@ -51,6 +51,7 @@ import bookmark_list
5151 import bookmark_window
5252 import thread_view
5353 import thread_popup
54+import submit_window
5455
5556 GLADE_FILENAME = "thread_window.glade"
5657
@@ -140,11 +141,10 @@ class WinWrap(winwrapbase.WinWrapBase):
140141
141142 glade_path = os.path.join(config.glade_dir, GLADE_FILENAME)
142143 self.widget_tree = gtk.glade.XML(glade_path)
143- self.window = self.widget_tree.get_widget("thread_window")
144- self.toolbar = self.widget_tree.get_widget("toolbar")
144+ self._get_widgets()
145+ self.widget_tree.signal_autoconnect(self)
146+
145147 self.toolbar.unset_style()
146- self.statusbar = self.widget_tree.get_widget("statusbar")
147- self.vbox = self.widget_tree.get_widget("vbox")
148148
149149 self.threadview = thread_view.ThreadView()
150150 self.threadpopup = thread_popup.ThreadPopup(self.bbs_type)
@@ -153,15 +153,31 @@ class WinWrap(winwrapbase.WinWrapBase):
153153 self.vbox.reorder_child(self.threadview, 2)
154154 self.window.set_focus(self.threadview.drawingarea)
155155
156- self.threadview.connect("uri-clicked-event", self.on_threadview_uri_clicked)
156+ self._get_popupmenu_widgets()
157+
158+ self.threadview.connect(
159+ "uri-clicked-event", self.on_thread_view_uri_clicked)
157160 self.threadpopup.connect(
158- "uri-clicked-event",
159- lambda widget, threadview, uri: self.on_threadview_uri_clicked(threadview, uri))
161+ "uri-clicked-event", self.on_thread_popup_uri_clicked)
160162
161163 self.statusbar_context_id = self.statusbar.get_context_id(
162164 "Thread Window Status")
163165 self.statusbar.push(self.statusbar_context_id, "OK.")
164166
167+ self.initialize_buffer()
168+
169+ self.restore()
170+ self.window.show_all()
171+
172+ self.created()
173+
174+ def _get_widgets(self):
175+ self.window = self.widget_tree.get_widget("thread_window")
176+ self.toolbar = self.widget_tree.get_widget("toolbar")
177+ self.statusbar = self.widget_tree.get_widget("statusbar")
178+ self.vbox = self.widget_tree.get_widget("vbox")
179+
180+ def _get_popupmenu_widgets(self):
165181 self.threadview.popupmenu = self.widget_tree.get_widget(
166182 "popup_threadview_menu")
167183 self.threadview.menu_openuri = self.widget_tree.get_widget(
@@ -177,40 +193,6 @@ class WinWrap(winwrapbase.WinWrapBase):
177193 self.threadview.menu_separator_selection = self.widget_tree.get_widget(
178194 "popup_threadview_menu_separator_selection")
179195
180- self.initialize_buffer()
181-
182- sigdic = {"on_refresh_activate": self.update,
183- "on_compose_activate": self.on_compose_clicked,
184- "on_toolbar_activate": self.on_toolbar_activate,
185- "on_statusbar_activate": self.on_statusbar_activate,
186- "on_refresh_activate": self.update,
187- "on_close_activate": self.on_close_activate,
188- "on_quit_activate": self.on_quit_activate,
189- "on_show_board_activate": self.on_show_board_activate,
190- "on_delete_activate": self.on_delete_activate,
191- "on_thread_window_delete_event":
192- self.on_thread_window_delete_event,
193- "on_add_bookmark_activate": self.on_add_bookmark_activate,
194- "on_manage_bookmarks_activate": \
195- self.on_manage_bookmarks_activate,
196- "on_popup_threadview_menu_openuri_activate":
197- self.on_popup_threadview_menu_openuri_activate,
198- "on_popup_threadview_menu_copylinkaddress_activate":
199- self.on_popup_threadview_menu_copylinkaddress_activate,
200- "on_popup_threadview_menu_copyselection_activate":
201- self.on_popup_threadview_menu_copyselection_activate,
202- "on_popup_threadview_menu_openasuri_activate":
203- self.on_popup_threadview_menu_openasuri_activate,
204- "on_popup_threadview_menu_refresh_activate":
205- self.on_popup_threadview_menu_refresh_activate,
206- "on_thread_window_destroy": self.on_thread_window_destroy}
207- self.widget_tree.signal_autoconnect(sigdic)
208-
209- self.restore()
210- self.window.show_all()
211-
212- self.created()
213-
214196 def initialize_buffer(self):
215197 self.threadview.initialize_buffer()
216198
@@ -221,46 +203,38 @@ class WinWrap(winwrapbase.WinWrapBase):
221203 def get_uri(self):
222204 return self.bbs_type.get_thread_uri()
223205
224- def on_compose_clicked(self, widget):
225- import submit_window
206+ def _show_submit_window(self):
226207 submit_window.open(self.bbs_type.get_thread_uri())
227208
228- def on_toolbar_activate(self, widget):
209+ def _toggle_toolbar(self):
229210 if self.toolbar.get_property("visible"):
230211 self.toolbar.hide()
231212 else:
232213 self.toolbar.show()
233214
234- def on_statusbar_activate(self, widget):
215+ def _toggle_statusbar(self):
235216 if self.statusbar.get_property("visible"):
236217 self.statusbar.hide()
237218 else:
238219 self.statusbar.show()
239220
240- def on_close_activate(self, widget):
221+ def _close_window(self):
241222 self.destroy()
242223
243- def on_thread_window_delete_event(self, widget, event):
244- self.save()
245- return False
246-
247- def on_thread_window_destroy(self, widget):
248- self.destroyed()
249-
250- def on_quit_activate(self, widget):
224+ def _quit_session(self):
251225 session.main_quit()
252226
253- def on_add_bookmark_activate(self, widget):
227+ def _regist_as_bookmark(self):
254228 bookmark_list.bookmark_list.add_bookmark_with_edit(
255229 name=self.title, uri=self.bbs_type.uri)
256230
257- def on_manage_bookmarks_activate(self, widget):
231+ def _manage_bookmarks(self):
258232 bookmark_window.open()
259233
260- def on_show_board_activate(self, widget):
234+ def _show_board(self):
261235 board_window.open_board(self.bbs_type.get_uri_base())
262236
263- def on_delete_activate(self, widget):
237+ def _delete_log(self):
264238 try:
265239 dat_path = misc.get_thread_dat_path(self.bbs_type)
266240 os.remove(dat_path)
@@ -277,8 +251,7 @@ class WinWrap(winwrapbase.WinWrapBase):
277251 except OSError:
278252 traceback.print_exc()
279253
280- def on_threadview_uri_clicked(self, widget, uri):
281-
254+ def _open_uri(self, uri):
282255 if not uri.startswith("http://"):
283256 # maybe a relative uri.
284257 uri = urlparse.urljoin(self.bbs_type.get_uri_base(), uri)
@@ -288,29 +261,17 @@ class WinWrap(winwrapbase.WinWrapBase):
288261 except bbs_type_exception.BbsTypeError:
289262 # not supported, show with the web browser.
290263 gnome.url_show(uri)
291-
292- def on_popup_threadview_menu_openuri_activate(self, widget):
293- self.on_threadview_uri_clicked(widget.uri)
294264
295- def on_popup_threadview_menu_copylinkaddress_activate(self, widget):
296- clip = gtk.Clipboard()
297- clip.set_text(widget.uri, len(widget.uri))
298-
299- def on_popup_threadview_menu_copyselection_activate(self, widget):
300- text = self.threadview.get_selected_text()
265+ def _copy_text_to_clipboard(self, text):
301266 if text and len(text) > 0:
302267 clip = gtk.Clipboard()
303268 text = text.encode("utf8")
304269 clip.set_text(text, len(text))
305270
306- def on_popup_threadview_menu_openasuri_activate(self, widget):
307- text = self.threadview.get_selected_text()
308- if not text.startswith("http://"):
309- text = "http://" + text
310- self.on_threadview_uri_clicked(text)
311-
312- def on_popup_threadview_menu_refresh_activate(self, widget):
313- self.update(widget)
271+ def _modify_uri(self, uri):
272+ if not uri.startswith("http://"):
273+ uri = "http://" + uri
274+ return uri
314275
315276 def http_get_dat(self, on_get_res):
316277 datfile_url = self.bbs_type.get_dat_uri()
@@ -389,7 +350,7 @@ class WinWrap(winwrapbase.WinWrapBase):
389350 gobject.idle_add(session.thread_idx_updated,
390351 self.bbs_type.get_thread_uri(), idx_dic)
391352
392- def update(self, widget=None):
353+ def update(self):
393354
394355 self.jump_request_num = 0
395356
@@ -675,3 +636,94 @@ class WinWrap(winwrapbase.WinWrapBase):
675636 priority=gobject.PRIORITY_HIGH)
676637 except:
677638 traceback.print_exc()
639+
640+
641+ # signal handlers
642+
643+ def on_thread_view_uri_clicked(self, widget, uri):
644+ self._open_uri(uri)
645+
646+ def on_thread_popup_uri_clicked(self, widget, threadview, uri):
647+ self._open_uri(uri)
648+
649+ def on_thread_window_delete_event(self, widget, event):
650+ self.save()
651+ return False
652+
653+ def on_thread_window_destroy(self, widget):
654+ self.destroyed()
655+
656+
657+
658+
659+ # menu commands
660+
661+ # menu file
662+
663+ def on_menu_file_show_board_activate(self, widget):
664+ self._show_board()
665+
666+ def on_menu_file_compose_activate(self, widget):
667+ self._show_submit_window()
668+
669+ def on_menu_file_delete_activate(self, widget):
670+ self._delete_log()
671+
672+ def on_menu_file_close_activate(self, widget):
673+ self._close_window()
674+
675+ def on_menu_file_quit_activate(self, widget):
676+ self._quit_session()
677+
678+ # menu view
679+
680+ def on_menu_view_refresh_activate(self, widget):
681+ self.update()
682+
683+ def on_menu_view_toolbar_activate(self, widget):
684+ self._toggle_toolbar()
685+
686+ def on_menu_view_statusbar_activate(self, widget):
687+ self._toggle_statusbar()
688+
689+ # menu bookmarks
690+
691+ def on_menu_bookmarks_bookmarkthispage_activate(self, widget):
692+ self._regist_as_bookmark()
693+
694+ def on_menu_bookmarks_showbookmarks_activate(self, widget):
695+ self._manage_bookmarks()
696+
697+ # toolbuttons
698+
699+ def on_toolbutton_refresh_activate(self, widget):
700+ self.update()
701+
702+ def on_toolbutton_showboard_activate(self, widget):
703+ self._show_board()
704+
705+ def on_toolbutton_compose_activate(self, widget):
706+ self._show_submit_window()
707+
708+ def on_toolbutton_delete_activate(self, widget):
709+ self._delete_log()
710+
711+ # popup menus
712+
713+ def on_popup_threadview_menu_openuri_activate(self, widget):
714+ self._open_uri(widget.uri)
715+
716+ def on_popup_threadview_menu_copylinkaddress_activate(self, widget):
717+ self._copy_text_to_clipboard(widget.uri)
718+
719+ def on_popup_threadview_menu_copyselection_activate(self, widget):
720+ text = self.threadview.get_selected_text()
721+ self._copy_text_to_clipboard(text)
722+
723+ def on_popup_threadview_menu_openasuri_activate(self, widget):
724+ text = self.threadview.get_selected_text()
725+ uri = self._modify_uri(text)
726+ self._open_uri(uri)
727+
728+ def on_popup_threadview_menu_refresh_activate(self, widget):
729+ self.update()
--- a/src/data/thread_window.glade
+++ b/src/data/thread_window.glade
@@ -30,7 +30,7 @@
3030 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
3131 <property name="label" translatable="yes">Show Board</property>
3232 <property name="use_underline">True</property>
33- <signal name="activate" handler="on_show_board_activate"/>
33+ <signal name="activate" handler="on_menu_file_show_board_activate"/>
3434 <child internal-child="image">
3535 <widget class="GtkImage" id="menu-item-image11">
3636 <property name="stock">gtk-go-up</property>
@@ -44,7 +44,7 @@
4444 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
4545 <property name="label" translatable="yes">_Compose Message</property>
4646 <property name="use_underline">True</property>
47- <signal name="activate" handler="on_compose_activate"/>
47+ <signal name="activate" handler="on_menu_file_compose_activate"/>
4848 <accelerator key="S" modifiers="GDK_CONTROL_MASK" signal="activate"/>
4949 <child internal-child="image">
5050 <widget class="GtkImage" id="menu-item-image12">
@@ -60,7 +60,7 @@
6060 <property name="label" translatable="yes">gtk-delete</property>
6161 <property name="use_underline">True</property>
6262 <property name="use_stock">True</property>
63- <signal name="activate" handler="on_delete_activate"/>
63+ <signal name="activate" handler="on_menu_file_delete_activate"/>
6464 </widget>
6565 </child>
6666 <child>
@@ -76,7 +76,7 @@
7676 <property name="label" translatable="yes">gtk-close</property>
7777 <property name="use_underline">True</property>
7878 <property name="use_stock">True</property>
79- <signal name="activate" handler="on_close_activate"/>
79+ <signal name="activate" handler="on_menu_file_close_activate"/>
8080 </widget>
8181 </child>
8282 <child>
@@ -92,7 +92,7 @@
9292 <property name="label" translatable="yes">gtk-quit</property>
9393 <property name="use_underline">True</property>
9494 <property name="use_stock">True</property>
95- <signal name="activate" handler="on_quit_activate"/>
95+ <signal name="activate" handler="on_menu_file_quit_activate"/>
9696 </widget>
9797 </child>
9898 </widget>
@@ -124,7 +124,7 @@
124124 <property name="label" translatable="yes">gtk-refresh</property>
125125 <property name="use_underline">True</property>
126126 <property name="use_stock">True</property>
127- <signal name="activate" handler="on_refresh_activate"/>
127+ <signal name="activate" handler="on_menu_view_refresh_activate"/>
128128 <accelerator key="R" modifiers="GDK_CONTROL_MASK" signal="activate"/>
129129 </widget>
130130 </child>
@@ -140,7 +140,7 @@
140140 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
141141 <property name="label" translatable="yes">_Toolbar</property>
142142 <property name="use_underline">True</property>
143- <signal name="activate" handler="on_toolbar_activate"/>
143+ <signal name="activate" handler="on_menu_view_toolbar_activate"/>
144144 </widget>
145145 </child>
146146 <child>
@@ -149,7 +149,7 @@
149149 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
150150 <property name="label" translatable="yes">_Statusbar</property>
151151 <property name="use_underline">True</property>
152- <signal name="activate" handler="on_statusbar_activate"/>
152+ <signal name="activate" handler="on_menu_view_statusbar_activate"/>
153153 </widget>
154154 </child>
155155 </widget>
@@ -172,7 +172,7 @@
172172 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
173173 <property name="label" translatable="yes">Bookmark This Page</property>
174174 <property name="use_underline">True</property>
175- <signal name="activate" handler="on_add_bookmark_activate"/>
175+ <signal name="activate" handler="on_menu_bookmarks_bookmarkthispage_activate"/>
176176 </widget>
177177 </child>
178178 <child>
@@ -181,7 +181,7 @@
181181 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
182182 <property name="label" translatable="yes">_Show Bookmarks</property>
183183 <property name="use_underline">True</property>
184- <signal name="activate" handler="on_manage_bookmarks_activate"/>
184+ <signal name="activate" handler="on_menu_bookmarks_showbookmarks_activate"/>
185185 </widget>
186186 </child>
187187 </widget>
@@ -224,7 +224,7 @@
224224 <widget class="GtkToolButton" id="toolbutton_refresh">
225225 <property name="visible">True</property>
226226 <property name="stock_id">gtk-refresh</property>
227- <signal name="clicked" handler="on_refresh_activate"/>
227+ <signal name="clicked" handler="on_toolbutton_refresh_activate"/>
228228 </widget>
229229 <packing>
230230 <property name="expand">False</property>
@@ -236,7 +236,7 @@
236236 <property name="label" translatable="yes">Board</property>
237237 <property name="use_underline">True</property>
238238 <property name="stock_id">gtk-go-up</property>
239- <signal name="clicked" handler="on_show_board_activate"/>
239+ <signal name="clicked" handler="on_toolbutton_showboard_activate"/>
240240 </widget>
241241 <packing>
242242 <property name="expand">False</property>
@@ -248,7 +248,7 @@
248248 <property name="label" translatable="yes">Compose</property>
249249 <property name="use_underline">True</property>
250250 <property name="stock_id">gnome-stock-mail-new</property>
251- <signal name="clicked" handler="on_compose_activate"/>
251+ <signal name="clicked" handler="on_toolbutton_compose_activate"/>
252252 </widget>
253253 <packing>
254254 <property name="expand">False</property>
@@ -258,7 +258,7 @@
258258 <widget class="GtkToolButton" id="toolbutton_delete">
259259 <property name="visible">True</property>
260260 <property name="stock_id">gtk-delete</property>
261- <signal name="clicked" handler="on_delete_activate"/>
261+ <signal name="clicked" handler="on_toolbutton_delete_activate"/>
262262 </widget>
263263 <packing>
264264 <property name="expand">False</property>
Show on old repository browser