ontv r447 - trunk/ontv
- From: johans svn gnome org
- To: svn-commits-list gnome org
- Subject: ontv r447 - trunk/ontv
- Date: Sat, 9 Feb 2008 22:51:47 +0000 (GMT)
Author: johans
Date: Sat Feb 9 22:51:47 2008
New Revision: 447
URL: http://svn.gnome.org/viewvc/ontv?rev=447&view=rev
Log:
Added context menu to the program window.
Modified:
trunk/ontv/GUI.py
trunk/ontv/PreferencesDialog.py
trunk/ontv/ProgramWindow.py
trunk/ontv/SearchDialog.py
Modified: trunk/ontv/GUI.py
==============================================================================
--- trunk/ontv/GUI.py (original)
+++ trunk/ontv/GUI.py Sat Feb 9 22:51:47 2008
@@ -25,6 +25,8 @@
import gtk.gdk
import gtk.glade
+from ProgramDialog import ProgramDialog
+from Reminders import Reminder
from ontv import NAME, DATA_DIR, LOCALE_DIR, IMAGES_DIR
gtk.glade.bindtextdomain(NAME.lower(), LOCALE_DIR)
@@ -94,6 +96,41 @@
combobox.prepend_text(string)
set_active_from_string(combobox, string)
+class ProgramContextMenu(gtk.Menu):
+ def __init__(self, get_program, reminders, reminders_model):
+ gtk.Menu.__init__(self)
+
+ self.get_program = get_program
+ self.reminders = reminders
+ self.reminders_model = reminders_model
+
+ self.details_imi = gtk.ImageMenuItem(gtk.STOCK_INFO)
+ self.details_imi.child.set_markup_with_mnemonic(_("_Details"))
+ self.details_imi.show()
+ self.append(self.details_imi)
+
+ self.add_reminder_imi = gtk.ImageMenuItem("gnome-stock-timer")
+ self.add_reminder_imi.child.set_markup_with_mnemonic(_("_Add reminder"))
+ self.add_reminder_imi.show()
+ self.append(self.add_reminder_imi)
+
+ self.details_imi.connect("activate", self.__details_imi_activate)
+ self.add_reminder_imi.connect("activate",
+ self.__add_reminder_imi_activate)
+
+ def __details_imi_activate(self, menuitem):
+ program = self.get_program()
+ pd = ProgramDialog(program)
+ pd.show()
+
+ def __add_reminder_imi_activate(self, menuitem):
+ program = self.get_program()
+ reminder = Reminder(program.title, program.channel.markup_escaped_name)
+ if self.reminders.add(reminder):
+ self.reminders_model.append([reminder])
+ self.reminders.save()
+ self.add_reminder_imi.set_sensitive(False)
+
class FileChooserDialog(gtk.FileChooserDialog):
def __init__(self, title, filters=None):
gtk.FileChooserDialog.__init__(self, title=title,
Modified: trunk/ontv/PreferencesDialog.py
==============================================================================
--- trunk/ontv/PreferencesDialog.py (original)
+++ trunk/ontv/PreferencesDialog.py Sat Feb 9 22:51:47 2008
@@ -58,7 +58,8 @@
self.__make_channels_treeview()
self.__make_reminders_treeview()
- self.sd.reminders_model = self.reminders_treeview.get_model()
+ self.sd.create_search_treeview_menu(self.reminders_treeview.get_model())
+ self.pw.set_reminders_model(self.reminders_treeview.get_model())
self.channels_combobox_model = gtk.ListStore(str)
self.channels_combobox_model.set_sort_func(0, self.__channels_model_sort_func, False)
Modified: trunk/ontv/ProgramWindow.py
==============================================================================
--- trunk/ontv/ProgramWindow.py (original)
+++ trunk/ontv/ProgramWindow.py Sat Feb 9 22:51:47 2008
@@ -28,6 +28,7 @@
import GUI
from Configuration import Configuration
+from GUI import ProgramContextMenu
from Reminders import Reminders, Reminder
from Notification import Notification
@@ -64,6 +65,8 @@
self.filled_programs = []
self.update_ids = []
+ self.reminders_model = None
+
gobject.timeout_add(TIMEOUT, self.__refresh)
def __refresh(self):
@@ -127,6 +130,9 @@
self._attach(widget, column, row, xoptions=gtk.SHRINK|gtk.FILL)
def __add_program(self, program, column, row):
+ g = lambda : program
+ menu = ProgramContextMenu(g, Reminders(), self.reminders_model)
+
label = gtk.Label()
label.set_ellipsize(pango.ELLIPSIZE_END)
label.set_max_width_chars(80)
@@ -136,6 +142,7 @@
eb = gtk.EventBox()
eb.add(label)
+ eb.connect("button-press-event", self.__eb_button_press_event, menu)
eb.show()
if program.description and program.description != "":
self.tooltips.set_tip(eb, program.description)
@@ -146,6 +153,11 @@
self.table.attach(widget, column, column + 1, row, row + 1,
xoptions=xoptions)
+ def __eb_button_press_event(self, event_box, event, menu):
+ if event.type == gtk.gdk.BUTTON_PRESS and event.button == 3:
+ if menu is not None:
+ menu.popup(None, None, None, event.button, event.time)
+
class CurrentProgramTable(ProgramTable):
def __init__(self, listings):
self.title = _("Now Playing...")
@@ -337,6 +349,10 @@
self.hbox.pack_start(self.upt)
self.update()
+ def set_reminders_model(self, reminders_model):
+ self.cpt.reminders_model = reminders_model
+ self.upt.reminders_model = reminders_model
+
def update(self):
self.cpt.update(True)
self.upt.update(True)
Modified: trunk/ontv/SearchDialog.py
==============================================================================
--- trunk/ontv/SearchDialog.py (original)
+++ trunk/ontv/SearchDialog.py Sat Feb 9 22:51:47 2008
@@ -24,6 +24,7 @@
import gobject
import GUI
+from GUI import ProgramContextMenu
from ProgramDialog import ProgramDialog
from Reminders import Reminder
from ontv import NAME
@@ -80,17 +81,6 @@
program_column.set_cell_data_func(crtext, self.__crtext_cell_data_func)
self.search_treeview.append_column(program_column)
- self.search_treeview_menu = gtk.Menu()
- self.details_imi = gtk.ImageMenuItem(gtk.STOCK_INFO)
- self.details_imi.child.set_markup_with_mnemonic(_("_Details"))
- self.details_imi.show()
- self.search_treeview_menu.append(self.details_imi)
-
- self.add_reminder_imi = gtk.ImageMenuItem("gnome-stock-timer")
- self.add_reminder_imi.child.set_markup_with_mnemonic(_("_Add reminder"))
- self.add_reminder_imi.show()
- self.search_treeview_menu.append(self.add_reminder_imi)
-
def __crt_cell_data_func(self, column, cell, model, iter):
program = model.get_value(iter, 0)
markup = "<b>%s-%s</b>\n<i>%s</i>"
@@ -112,12 +102,6 @@
selection.connect("changed", self.__search_treeview_selection_changed)
self.search_treeview.connect("row-activated",
self.__search_treeview_row_activated)
- self.search_treeview.connect("button-press-event",
- self.__search_treeview_button_press,
- self.search_treeview_menu)
- self.details_imi.connect("activate", self.__details_imi_activate)
- self.add_reminder_imi.connect("activate",
- self.__add_reminder_imi_activate)
self.close_button.connect("clicked", self.__close_button_clicked)
self.details_button.connect("clicked", self.__details_button_clicked)
@@ -168,12 +152,12 @@
reminder = Reminder(program.title,
program.channel.markup_escaped_name)
if not reminder in self.reminders.reminders:
- self.add_reminder_imi.set_sensitive(True)
+ self.search_treeview_menu.add_reminder_imi.set_sensitive(True)
else:
- self.add_reminder_imi.set_sensitive(False)
+ self.search_treeview_menu.add_reminder_imi.set_sensitive(False)
else:
self.details_button.set_sensitive(False)
- self.add_reminder_imi.set_sensitive(False)
+ self.search_treeview_menu.add_reminder_imi.set_sensitive(False)
def __search_treeview_row_activated(self, treeview, path, column):
self.details_button.emit("clicked")
@@ -184,24 +168,12 @@
path = treeview.get_path_at_pos(int(event.x), int(event.y))[0]
program = search_model[path][0]
if program.description and program.description != "":
- self.details_imi.set_sensitive(True)
+ self.search_treeview_menu.details_imi.set_sensitive(True)
else:
- self.details_imi.set_sensitive(False)
+ self.search_treeview_menu.details_imi.set_sensitive(False)
menu.popup(None, None, None, event.button, event.time)
- def __details_imi_activate(self, menuitem):
- program = GUI.get_selected_value(self.search_treeview)
- self.__show_program_dialog(program)
-
- def __add_reminder_imi_activate(self, menuitem):
- program = GUI.get_selected_value(self.search_treeview)
- reminder = Reminder(program.title, program.channel.markup_escaped_name)
- if self.reminders.add(reminder):
- self.reminders_model.append([reminder])
- self.reminders.save()
- self.add_reminder_imi.set_sensitive(False)
-
def __close_button_clicked(self, button):
self.dialog.hide()
@@ -227,6 +199,17 @@
break
channels_iter = channels_model.iter_next(channels_iter)
+ def create_search_treeview_menu(self, reminders_model):
+ self.search_treeview_menu = ProgramContextMenu(self.get_program,
+ self.reminders,
+ reminders_model)
+ self.search_treeview.connect("button-press-event",
+ self.__search_treeview_button_press,
+ self.search_treeview_menu)
+
+ def get_program(self):
+ return GUI.get_selected_value(self.search_treeview)
+
def show(self, uicomponent=None, verb=None):
self.present()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]