def ScrollThingy() :
  if has_hildon:
    try:
      #this will only work on maemo5; f**k Nokia's shitty documentation
      the_scroll_thing = hildon.PannableArea()
    except:
      # a simple version check would be better, but the documentation is crap
      the_scroll_thing = gtk.ScrolledWindow()
      hildon.hildon_helper_set_thumb_scrollbar(the_scroll_thing, True)
      the_scroll_thing.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
      the_scroll_thing.set_shadow_type(gtk.SHADOW_NONE)
  else:
    the_scroll_thing = gtk.ScrolledWindow()
    the_scroll_thing.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
    the_scroll_thing.set_shadow_type(gtk.SHADOW_NONE)
  return the_scroll_thing
Example #2
0
	def Show(self):
		main_vbox = gtk.VBox()
		
		vbox = gtk.VBox()
		self._hpaned = gtk.HPaned()
		self._player_vbox = gtk.VBox()
		self._drawing_area = gtk.DrawingArea()
		
		color = gtk.gdk.Color(0, 0, 0)
		self._drawing_area.modify_bg(gtk.STATE_NORMAL, color)
		self._drawing_area.connect('expose-event', self._on_drawing_area_exposed)
		self._player_vbox.pack_start(self._drawing_area)
		vbox.pack_start(self._player_vbox, True)
		
		self._seek_scale = gtk.HScale()
		self._seek_scale.set_range(0, 1)
		self._seek_scale.set_draw_value(False)
		self._seek_scale.connect('value-changed', self._on_seek_value_changed)
		vbox.pack_start(self._seek_scale, False)
		
		self._hpaned.add1(vbox)
		
		self._sidepane_vbox = gtk.VBox()
		s_w = gtk.ScrolledWindow()
		s_w.set_shadow_type(gtk.SHADOW_IN)
		s_w.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
		if RUNNING_HILDON:
			hildon.hildon_helper_set_thumb_scrollbar(s_w, True)
		self._queue_listview = gtk.TreeView()
		model = gtk.ListStore(str, str, str, gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT) #uri, title to display, current track indicator, current pos, user data
		self._queue_listview.set_model(model)
		
		column = gtk.TreeViewColumn(_(""))
		renderer = gtk.CellRendererText()
		column.pack_start(renderer, True)
		column.set_attributes(renderer, markup=2)
		self._queue_listview.append_column(column)
		
		column = gtk.TreeViewColumn(_("Playlist"))
		renderer = gtk.CellRendererText()
		column.pack_start(renderer, True)
		column.set_attributes(renderer, markup=1)
		self._queue_listview.append_column(column)
		self._queue_listview.connect('row-activated', self._on_queue_row_activated)
		self._queue_listview.connect('button-press-event', self._on_queue_row_button_press)
		self._queue_listview.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
		#dnd reorder
		self._TARGET_TYPE_REORDER = 80
		self._TARGET_TYPE_URI_LIST = 81
		drop_types = [('reorder',gtk.TARGET_SAME_WIDGET, self._TARGET_TYPE_REORDER),
					  ('text/uri-list',0,self._TARGET_TYPE_URI_LIST)]
		#for removing items from favorites and reordering
		self._queue_listview.enable_model_drag_source(gtk.gdk.BUTTON1_MASK, drop_types, gtk.gdk.ACTION_MOVE)
		self._queue_listview.enable_model_drag_dest(drop_types, gtk.gdk.ACTION_DEFAULT)
		self._queue_listview.connect('drag-data-received', self._on_queue_drag_data_received)
		
		s_w.add(self._queue_listview)
		self._sidepane_vbox.pack_start(s_w, True)
		
		button = gtk.Button(stock='gtk-remove')
		button.connect("clicked", self._on_remove_clicked)
		if not RUNNING_HILDON:
			button_box = gtk.HButtonBox()
			button_box.set_property('layout-style', gtk.BUTTONBOX_END)
			button_box.add(button)
			self._sidepane_vbox.pack_start(button_box, False)
		else:
			list_bottom_hbox = gtk.HBox(False)
			list_bottom_hbox.pack_start(button, False)
			self._sidepane_vbox.pack_start(list_bottom_hbox, False)
		
		self._hpaned.add2(self._sidepane_vbox)
		
		main_vbox.add(self._hpaned)
		
		self._controls_hbox = gtk.HBox()
		self._controls_hbox.set_spacing(6)
		
		button_box = gtk.HButtonBox()
		button_box.set_homogeneous(False)
		button_box.set_property('layout-style', gtk.BUTTONBOX_START)

		if not RUNNING_HILDON:
			image = gtk.Image()
			image.set_from_stock("gtk-media-previous",gtk.ICON_SIZE_BUTTON)
			button = gtk.Button()
			button.set_image(image)
		else:
			button = gtk.Button()
			label = gtk.Label(_("Prev"))
			label.set_use_markup(True)
			button.add(label)
			label.show()
		button.set_property('can-focus', False)
		button.connect("clicked", self._on_prev_clicked)
		button_box.pack_start(button, True, True)
		
		if not RUNNING_HILDON:
			image = gtk.Image()
			image.set_from_stock("gtk-media-rewind",gtk.ICON_SIZE_BUTTON)
			button = gtk.Button()
			button.set_image(image)
		else:
			button = gtk.Button(_("Rew"))
		button.set_property('can-focus', False)
		button.connect("clicked", self._on_rewind_clicked)
		button_box.pack_start(button, True, True)
		
		if not RUNNING_HILDON:
			image = gtk.Image()
			image.set_from_stock("gtk-media-play",gtk.ICON_SIZE_BUTTON)
			self._play_pause_button = gtk.Button()
			self._play_pause_button.set_image(image)
		else:
			self._play_pause_button = gtk.Button(_("Play"))
		self._play_pause_button.set_property('can-focus', False)
		self._play_pause_button.connect("clicked", self._on_play_pause_toggle_clicked)
		button_box.pack_start(self._play_pause_button, True, True)
	
		if not RUNNING_HILDON:
			image = gtk.Image()
			image.set_from_stock("gtk-media-stop",gtk.ICON_SIZE_BUTTON)
			button = gtk.Button()
			button.set_image(image)
		else:
			button = gtk.Button(_("Stop"))
		button.set_property('can-focus', False)
		button.connect("clicked", self._on_stop_clicked)
		button_box.pack_start(button, True, True)
		
		if not RUNNING_HILDON:
			image = gtk.Image()
			image.set_from_stock("gtk-media-forward",gtk.ICON_SIZE_BUTTON)
			button = gtk.Button()
			button.set_image(image)
		else:
			button = gtk.Button(_("FF"))
		button.set_property('can-focus', False)
		button.connect("clicked", self._on_forward_clicked)
		button_box.pack_start(button, True, True)
		
		if not RUNNING_HILDON:
			image = gtk.Image()
			image.set_from_stock("gtk-media-next",gtk.ICON_SIZE_BUTTON)
			button = gtk.Button()
			button.set_image(image)
		else:
			button = gtk.Button(_("Next"))
		button.set_property('can-focus', False)
		button.connect("clicked", self._on_next_clicked)
		button_box.pack_start(button, True, True)
		
		self._controls_hbox.pack_start(button_box, False)
		
		self._time_label = gtk.Label("")
		self._time_label.set_alignment(0.0,0.5)
		
		if not RUNNING_HILDON:
			self._controls_hbox.pack_start(self._time_label, True)
		else:
			list_bottom_hbox.pack_start(self._time_label, True)
			list_bottom_hbox.reorder_child(self._time_label, 0)
		
		main_vbox.pack_start(self._controls_hbox, False)
		self._layout_dock.add(main_vbox)
		
		self.gstreamer_init()
	
		self._layout_dock.show_all()
Example #3
0
    def Show(self):
        widget_tree = gtk.glade.XML(self._gladefile, 'download_view',
                                    'penguintv')
        for key in dir(self.__class__):  #python insaneness
            if key[:3] == 'on_':
                widget_tree.signal_connect(key, getattr(self, key))

        if utils.RUNNING_SUGAR:
            widget_tree.get_widget('stop_toolbutton').set_stock_id(None)
            widget_tree.get_widget('stop_toolbutton').set_icon_name(
                'stock-close')
            widget_tree.get_widget('pause_toolbutton').set_stock_id(None)
            widget_tree.get_widget('pause_toolbutton').set_icon_name(
                'stock-media-pause')
            widget_tree.get_widget('resume_toolbutton').set_stock_id(None)
            widget_tree.get_widget('resume_toolbutton').set_icon_name(
                'stock-go-down')

        if utils.RUNNING_HILDON:
            sw = widget_tree.get_widget('d_v_scrolledwindow')
            hildon.hildon_helper_set_thumb_scrollbar(sw, True)

        self._widget = widget_tree.get_widget('download_view')
        self._resume_button = widget_tree.get_widget('resume_toolbutton')
        self._resume_button.set_sensitive(False)

        self._downloads_listview = widget_tree.get_widget('download_list')
        try:
            self._downloads_listview.set_rubber_banding(True)
        except:
            pass  #not everyone can do this
        selection = self._downloads_listview.get_selection()
        selection.set_mode(gtk.SELECTION_MULTIPLE)
        selection.connect("changed", self._on_selection_changed)

        column = gtk.TreeViewColumn(_(''))
        column.set_resizable(True)
        renderer = gtk.CellRendererPixbuf()
        column.pack_start(renderer, True)
        column.set_attributes(renderer, pixbuf=D_PIXBUF)
        self._downloads_listview.append_column(column)

        column = gtk.TreeViewColumn(_('Progress'))
        column.set_resizable(True)
        renderer = gtk.CellRendererProgress()
        column.pack_start(renderer, True)
        column.set_attributes(renderer, value=D_PROGRESS)
        self._downloads_listview.append_column(column)

        column = gtk.TreeViewColumn(_('Description'))
        column.set_resizable(True)
        renderer = gtk.CellRendererText()
        column.pack_start(renderer, True)
        column.set_attributes(renderer, markup=D_DESCRIPTION_MARKUP)
        self._downloads_listview.append_column(column)

        column = gtk.TreeViewColumn(_('Size'))
        column.set_resizable(True)
        renderer = gtk.CellRendererText()
        column.pack_start(renderer, True)
        column.set_attributes(renderer, markup=D_SIZE_MARKUP)
        self._downloads_listview.append_column(column)

        column = gtk.TreeViewColumn(_('Status'))
        column.set_resizable(True)
        renderer = gtk.CellRendererText()
        column.pack_start(renderer, True)
        column.set_attributes(renderer, markup=D_STATUS_MARKUP)
        self._downloads_listview.append_column(column)
        self._downloads_listview.columns_autosize()
        self._downloads_listview.set_model(self._downloads_liststore)
        self._widget.show_all()
Example #4
0
    def __init__(self,
                 dock_widget,
                 main_window,
                 db,
                 share_path,
                 feed_list_view=None,
                 app=None,
                 renderer=EntryFormatter.WEBKIT):
        gobject.GObject.__init__(self)
        #public
        self.presently_selecting = False

        #protected
        self._app = app
        if self._app is not None:
            self._mm = self._app.mediamanager
        else:
            self._mm = None

        self._main_window = main_window
        self._db = db
        self._renderer = renderer
        #self._renderer = EntryFormatter.GTKHTML
        self._current_feed_id = -1
        self._feed_title = ""
        self._state = S_DEFAULT
        self._auth_info = (-1, "", "")  #user:pass, url
        self._custom_message = ""
        self._last_link = ""
        self._current_link = None
        self._search_query = None
        self._filter_feed = None
        self._hide_viewed = False
        self._ignore_next_event = False
        self._USING_AJAX = False

        self._entrylist = []
        self._entry_store = {}
        self._convert_newlines = False

        self._first_entry = 0  #first entry visible

        self._html_dock = dock_widget
        self._scrolled_window = gtk.ScrolledWindow()
        if utils.RUNNING_HILDON:
            hildon.hildon_helper_set_thumb_scrollbar(self._scrolled_window,
                                                     True)
        self._html_dock.add(self._scrolled_window)
        self._scrolled_window.set_property("hscrollbar-policy",
                                           gtk.POLICY_AUTOMATIC)
        self._scrolled_window.set_property("vscrollbar-policy",
                                           gtk.POLICY_AUTOMATIC)
        self._scrolled_window.set_flags(self._scrolled_window.flags()
                                        & gtk.CAN_FOCUS)
        if self._renderer == EntryFormatter.WEBKIT:
            self._scrolled_window.set_shadow_type(gtk.SHADOW_IN)

        style = self._html_dock.get_style().copy()
        self._background_color = "#%.2x%.2x%.2x;" % (
            style.base[gtk.STATE_NORMAL].red / 256,
            style.base[gtk.STATE_NORMAL].blue / 256,
            style.base[gtk.STATE_NORMAL].green / 256)

        self._foreground_color = "#%.2x%.2x%.2x;" % (
            style.text[gtk.STATE_NORMAL].red / 256,
            style.text[gtk.STATE_NORMAL].blue / 256,
            style.text[gtk.STATE_NORMAL].green / 256)

        self._insensitive_color = "#%.2x%.2x%.2x;" % (
            style.base[gtk.STATE_INSENSITIVE].red / 256,
            style.base[gtk.STATE_INSENSITIVE].blue / 256,
            style.base[gtk.STATE_INSENSITIVE].green / 256)

        if self._renderer == EntryFormatter.WEBKIT:
            import html.PTVWebkit
            self._html_widget = html.PTVWebkit.PTVWebkit(
                self, self._db.home, share_path)
        elif self._renderer == EntryFormatter.MOZILLA:
            import html.PTVMozilla
            self._html_widget = html.PTVMozilla.PTVMozilla(
                self, self._db.home, share_path)
        elif self._renderer == EntryFormatter.GTKHTML:
            import html.PTVGtkHtml
            self._html_widget = html.PTVGtkHtml.PTVGtkHtml(
                self, self._db.home, share_path)

        #signals
        self._handlers = []
        if feed_list_view is not None:
            h_id = feed_list_view.connect('feed-selected',
                                          self.__feedlist_feed_selected_cb)
            self._handlers.append((feed_list_view.disconnect, h_id))
            h_id = feed_list_view.connect(
                'search-feed-selected',
                self.__feedlist_search_feed_selected_cb)
            self._handlers.append((feed_list_view.disconnect, h_id))
            h_id = feed_list_view.connect('no-feed-selected',
                                          self.__feedlist_none_selected_cb)
            self._handlers.append((feed_list_view.disconnect, h_id))
        if self._app is not None:
            h_id = self._app.connect('feed-added', self.__feed_added_cb)
            self._handlers.append((self._app.disconnect, h_id))
            h_id = self._app.connect('feed-removed', self.__feed_removed_cb)
            self._handlers.append((self._app.disconnect, h_id))
            h_id = self._app.connect('feed-polled', self.__feed_polled_cb)
            self._handlers.append((self._app.disconnect, h_id))
            h_id = self._app.connect('feed-name-changed',
                                     self.__feed_name_changed_cb)
            self._handlers.append((self._app.disconnect, h_id))
            h_id = self._app.connect('entry-updated', self.__entry_updated_cb)
            self._handlers.append((self._app.disconnect, h_id))
            h_id = self._app.connect('render-ops-updated',
                                     self.__render_ops_updated_cb)
            self._handlers.append((self._app.disconnect, h_id))
            h_id = self._app.connect('state-changed', self.__state_changed_cb)
            self._handlers.append((self._app.disconnect, h_id))
            h_id = self._app.connect('entries-viewed',
                                     self.__entries_updated_cb)
            self._handlers.append((self._app.disconnect, h_id))
            h_id = self._app.connect('entries-unviewed',
                                     self.__entries_updated_cb)
            self._handlers.append((self._app.disconnect, h_id))
            h_id = app.connect('new-database', self.__new_database_cb)
            self._handlers.append((app.disconnect, h_id))
        screen = gtk.gdk.screen_get_default()
        h_id = screen.connect('size-changed', self.__size_changed_cb)
        self._handlers.append((screen.disconnect, h_id))
Example #5
0
	def __init__(self, widget_tree, app, fancy=False):
		gobject.GObject.__init__(self)
		self._app = app
		self._icon_manager = IconManager.IconManager(self._app.db.home)
		self._scrolled_window = widget_tree.get_widget('feed_scrolled_window')
		if utils.RUNNING_HILDON:
			hildon.hildon_helper_set_thumb_scrollbar(self._scrolled_window, True)
		self._va = self._scrolled_window.get_vadjustment()
		self._widget = widget_tree.get_widget('feedlistview')
		self._entry_list_widget = widget_tree.get_widget('entrylistview')
		
		self._feedlist = gtk.ListStore(str,            #title
									   str,            #markup title
									   int,            #feed_id
									   str,            #stockid
									   str,            #readinfo
									   gtk.gdk.Pixbuf, #pixbuf 
									   bool,           #details loaded
									   int,            #unread
									   int,            #total
									   int,            #flag
									   bool,           #visible
									   bool,           #pollfail
									   str)            #first entry title
		self._last_selected=None
		self._last_feed=None
		self.filter_setting=ALL
		self.filter_name = _("All Feeds")
		self._selecting_misfiltered=False
		self._filter_unread = False
		self._cancel_load = [False,False] #loading feeds, loading details
		self._loading_details = 0
		self._state = S_DEFAULT
		self._fancy = fancy
		self.__widget_width = 0
		self.__resetting_columns = False
		self.__displayed_context_menu = False #for hildon
		
		#build list view
		
		self._feed_filter = self._feedlist.filter_new()
		self._feed_filter.set_visible_column(VISIBLE)
		self._widget.set_model(self._feed_filter)
		
		# Icon Column
		self._icon_renderer = gtk.CellRendererPixbuf()
		self._icon_column = gtk.TreeViewColumn(_('Icon'))
		self._icon_column.pack_start(self._icon_renderer, False)
		self._icon_column.set_attributes(self._icon_renderer, stock_id=STOCKID)
		if utils.RUNNING_HILDON:
			self._icon_column.set_sizing(gtk.TREE_VIEW_COLUMN_AUTOSIZE)
		else:
			self._icon_column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
			self._icon_column.set_min_width(32)
		self._widget.append_column(self._icon_column)
		
		# Feed Column
		renderer = gtk.CellRendererText()
		renderer.set_property("ellipsize", pango.ELLIPSIZE_END)
		self._feed_column = gtk.TreeViewColumn(_('Feeds'))
		self._feed_column.pack_start(renderer, True)
		self._feed_column.set_attributes(renderer, markup=MARKUPTITLE)
		self._feed_column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
		self._feed_column.set_resizable(True)
		self._feed_column.set_expand(True)
		self._widget.append_column(self._feed_column)
		
		# Articles column
		self._articles_renderer = gtk.CellRendererText()
		self._articles_column = gtk.TreeViewColumn(_(''))
		self._articles_column.set_resizable(False)
		self._articles_column.pack_start(self._articles_renderer, False)
		self._articles_column.set_attributes(self._articles_renderer, markup=READINFO)		
		self._articles_column.set_sizing(gtk.TREE_VIEW_COLUMN_AUTOSIZE)
		self._articles_column.set_expand(False)
		self._widget.append_column(self._articles_column)
		
		# Image Column
		feed_image_renderer = gtk.CellRendererPixbuf()
		self._image_column = gtk.TreeViewColumn(_('Image'))
		self._image_column.pack_start(feed_image_renderer, False)
		self._image_column.set_attributes(feed_image_renderer, pixbuf=PIXBUF)
		self._image_column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
		self._image_column.set_min_width(MAX_WIDTH + 10)
		self._image_column.set_max_width(MAX_WIDTH + 10)
		self._image_column.set_expand(False)
		if self._fancy:
			self._widget.append_column(self._image_column)
		
		self.resize_columns()
		
		#signals are MANUAL ONLY
		self._widget.get_selection().connect("changed", self._item_selection_changed)
		self._widget.connect("row-activated", self.on_row_activated)
		self._widget.connect("button-press-event", self._on_button_press_event)
		self._widget.connect("button-release-event", self._on_button_release_event)
		if utils.RUNNING_HILDON:
			self._widget.tap_and_hold_setup(menu=self._get_context_menu(False))
		
		self._handlers = []
		h_id = self._app.connect('feed-polled', self.__feed_polled_cb)
		self._handlers.append((self._app.disconnect, h_id))
		h_id = self._app.connect('feed-added', self.__feed_added_cb)
		self._handlers.append((self._app.disconnect, h_id))
		h_id = self._app.connect('feed-removed', self.__feed_removed_cb)
		self._handlers.append((self._app.disconnect, h_id))
		h_id = self._app.connect('feed-name-changed', self.__feed_name_changed_cb)
		self._handlers.append((self._app.disconnect, h_id))
		h_id = self._app.connect('entry-updated', self.__entry_updated_cb)
		self._handlers.append((self._app.disconnect, h_id))
		h_id = self._app.connect('tags-changed', self.__tags_changed_cb)
		self._handlers.append((self._app.disconnect, h_id))
		h_id = self._app.connect('state_changed', self.__state_changed_cb)
		self._handlers.append((self._app.disconnect, h_id))
		h_id = self._app.connect('entries-viewed', self.__entries_viewed_cb)
		self._handlers.append((self._app.disconnect, h_id))
		h_id = self._app.connect('entries-unviewed', self.__entries_unviewed_cb)
		self._handlers.append((self._app.disconnect, h_id))
		
		#init style
		if self._fancy:
			if utils.RUNNING_SUGAR:
				self._icon_renderer.set_property('stock-size',gtk.ICON_SIZE_SMALL_TOOLBAR)
			elif utils.RUNNING_HILDON:
				self._icon_renderer.set_property('stock-size',gtk.ICON_SIZE_BUTTON)
			else:
				self._icon_renderer.set_property('stock-size',gtk.ICON_SIZE_LARGE_TOOLBAR)
			self._widget.set_property('rules-hint', True)
Example #6
0
	def __init__(self, dock_widget, main_window, db, share_path, feed_list_view=None, app=None, renderer=EntryFormatter.WEBKIT):
		gobject.GObject.__init__(self)
		#public
		self.presently_selecting = False
		
		#protected
		self._app = app
		if self._app is not None:
			self._mm = self._app.mediamanager
		else:
			self._mm = None
		
		self._main_window = main_window
		self._db = db
		self._renderer = renderer
		#self._renderer = EntryFormatter.GTKHTML
		self._current_feed_id = -1
		self._feed_title=""
		self._state = S_DEFAULT
		self._auth_info = (-1, "","") #user:pass, url
		self._custom_message = ""
		self._last_link = ""
		self._current_link = None
		self._search_query = None
		self._filter_feed = None
		self._hide_viewed = False
		self._ignore_next_event = False
		self._USING_AJAX = False
		
		self._entrylist = []
		self._entry_store = {}
		self._convert_newlines = False
		
		self._first_entry = 0 #first entry visible
		
		self._html_dock = dock_widget
		self._scrolled_window = gtk.ScrolledWindow()
		if utils.RUNNING_HILDON:
			hildon.hildon_helper_set_thumb_scrollbar(self._scrolled_window, True)
		self._html_dock.add(self._scrolled_window)
		self._scrolled_window.set_property("hscrollbar-policy",gtk.POLICY_AUTOMATIC)
		self._scrolled_window.set_property("vscrollbar-policy",gtk.POLICY_AUTOMATIC)
		self._scrolled_window.set_flags(self._scrolled_window.flags() & gtk.CAN_FOCUS) 
		if self._renderer == EntryFormatter.WEBKIT:
			self._scrolled_window.set_shadow_type(gtk.SHADOW_IN)

		style = self._html_dock.get_style().copy()
		self._background_color = "#%.2x%.2x%.2x;" % (
				style.base[gtk.STATE_NORMAL].red / 256,
				style.base[gtk.STATE_NORMAL].blue / 256,
				style.base[gtk.STATE_NORMAL].green / 256)
				
		self._foreground_color = "#%.2x%.2x%.2x;" % (
				style.text[gtk.STATE_NORMAL].red / 256,
				style.text[gtk.STATE_NORMAL].blue / 256,
				style.text[gtk.STATE_NORMAL].green / 256)
				
		self._insensitive_color = "#%.2x%.2x%.2x;" % (
				style.base[gtk.STATE_INSENSITIVE].red / 256,
				style.base[gtk.STATE_INSENSITIVE].blue / 256,
				style.base[gtk.STATE_INSENSITIVE].green / 256)
		
		
		if self._renderer == EntryFormatter.WEBKIT:
			import html.PTVWebkit
			self._html_widget = html.PTVWebkit.PTVWebkit(self, self._db.home, share_path)
		elif self._renderer == EntryFormatter.MOZILLA:
			import html.PTVMozilla
			self._html_widget = html.PTVMozilla.PTVMozilla(self, self._db.home, share_path)
		elif self._renderer == EntryFormatter.GTKHTML:
			import html.PTVGtkHtml
			self._html_widget = html.PTVGtkHtml.PTVGtkHtml(self, self._db.home, share_path)
				
		#signals
		self._handlers = []
		if feed_list_view is not None:
			h_id = feed_list_view.connect('feed-selected', self.__feedlist_feed_selected_cb)
			self._handlers.append((feed_list_view.disconnect, h_id))
			h_id = feed_list_view.connect('search-feed-selected', self.__feedlist_search_feed_selected_cb)
			self._handlers.append((feed_list_view.disconnect, h_id))
			h_id = feed_list_view.connect('no-feed-selected', self.__feedlist_none_selected_cb)
			self._handlers.append((feed_list_view.disconnect, h_id))
		if self._app is not None:
			h_id = self._app.connect('feed-added',self.__feed_added_cb)
			self._handlers.append((self._app.disconnect, h_id))
			h_id = self._app.connect('feed-removed', self.__feed_removed_cb)
			self._handlers.append((self._app.disconnect, h_id))
			h_id = self._app.connect('feed-polled', self.__feed_polled_cb)
			self._handlers.append((self._app.disconnect, h_id))
			h_id = self._app.connect('feed-name-changed', self.__feed_name_changed_cb)
			self._handlers.append((self._app.disconnect, h_id))
			h_id = self._app.connect('entry-updated', self.__entry_updated_cb)
			self._handlers.append((self._app.disconnect, h_id))
			h_id = self._app.connect('render-ops-updated', self.__render_ops_updated_cb)
			self._handlers.append((self._app.disconnect, h_id))
			h_id = self._app.connect('state-changed', self.__state_changed_cb)
			self._handlers.append((self._app.disconnect, h_id))
			h_id = self._app.connect('entries-viewed', self.__entries_updated_cb)
			self._handlers.append((self._app.disconnect, h_id))
			h_id = self._app.connect('entries-unviewed', self.__entries_updated_cb)
			self._handlers.append((self._app.disconnect, h_id))
			h_id = app.connect('new-database', self.__new_database_cb)
			self._handlers.append((app.disconnect, h_id))
		screen = gtk.gdk.screen_get_default()
		h_id = screen.connect('size-changed', self.__size_changed_cb)
		self._handlers.append((screen.disconnect, h_id))
Example #7
0
	def Show(self):
		widget_tree = gtk.glade.XML(self._gladefile, 'download_view','penguintv')
		for key in dir(self.__class__): #python insaneness
			if key[:3] == 'on_':
				widget_tree.signal_connect(key, getattr(self, key))
				
		if utils.RUNNING_SUGAR:
			widget_tree.get_widget('stop_toolbutton').set_stock_id(None)
			widget_tree.get_widget('stop_toolbutton').set_icon_name('stock-close')
			widget_tree.get_widget('pause_toolbutton').set_stock_id(None)
			widget_tree.get_widget('pause_toolbutton').set_icon_name('stock-media-pause')
			widget_tree.get_widget('resume_toolbutton').set_stock_id(None)
			widget_tree.get_widget('resume_toolbutton').set_icon_name('stock-go-down')

		if utils.RUNNING_HILDON:
			sw = widget_tree.get_widget('d_v_scrolledwindow')
			hildon.hildon_helper_set_thumb_scrollbar(sw, True)
				
		self._widget = widget_tree.get_widget('download_view')
		self._resume_button = widget_tree.get_widget('resume_toolbutton')
		self._resume_button.set_sensitive(False)
		
		self._downloads_listview = widget_tree.get_widget('download_list')
		try:
			self._downloads_listview.set_rubber_banding(True)
		except:
			pass #not everyone can do this
		selection = self._downloads_listview.get_selection()
		selection.set_mode(gtk.SELECTION_MULTIPLE)
		selection.connect("changed", self._on_selection_changed)
		
		column = gtk.TreeViewColumn(_(''))
		column.set_resizable(True)
		renderer = gtk.CellRendererPixbuf()
		column.pack_start(renderer, True)
		column.set_attributes(renderer, pixbuf=D_PIXBUF)
		self._downloads_listview.append_column(column)

		column = gtk.TreeViewColumn(_('Progress'))
		column.set_resizable(True)
		renderer = gtk.CellRendererProgress()
		column.pack_start(renderer, True)
		column.set_attributes(renderer, value=D_PROGRESS)
		self._downloads_listview.append_column(column)
				
		column = gtk.TreeViewColumn(_('Description'))
		column.set_resizable(True)
		renderer = gtk.CellRendererText()
		column.pack_start(renderer, True)
		column.set_attributes(renderer, markup=D_DESCRIPTION_MARKUP)
		self._downloads_listview.append_column(column)
		
		column = gtk.TreeViewColumn(_('Size'))
		column.set_resizable(True)
		renderer = gtk.CellRendererText()
		column.pack_start(renderer, True)
		column.set_attributes(renderer, markup=D_SIZE_MARKUP)
		self._downloads_listview.append_column(column)
		
		column = gtk.TreeViewColumn(_('Status'))
		column.set_resizable(True)
		renderer = gtk.CellRendererText()
		column.pack_start(renderer, True)
		column.set_attributes(renderer, markup=D_STATUS_MARKUP)
		self._downloads_listview.append_column(column)
		self._downloads_listview.columns_autosize()
		self._downloads_listview.set_model(self._downloads_liststore)
		self._widget.show_all()