Channel + episode info dialog, bugfixes

git-svn-id: svn://svn.berlios.de/gpodder@38 b0d088ad-0a06-0410-aad2-9ed5178a7e87
This commit is contained in:
Thomas Perl 2006-03-04 20:45:01 +00:00
parent 2dd434bde3
commit 770554507c
7 changed files with 503 additions and 62 deletions

View File

@ -1,3 +1,14 @@
Sat, 04 Mar 2006 21:36:56 +0100 <thp@perli.net>
+ Added channel info + general/advanced tabs to channel editor
+ Added channel info/edit button to gPodder main window view
+ Added episode info dialog + open on double-click (available list)
* Fixed getPodcastFilename (returned wrong value)
+ Added Adrien Beaucreux to list of authors/contributors
+ Added Tooltips object + tooltip for info/edit button
* Fixed addDownloadedItem (getChannelIndexFiles doesn't exist anymore)
* Removed URL display in gPodder main window channel combobox
* Updated TODO-List
Fri, 03 Mar 2006 20:59:17 +0100 <thp@perli.net>
* Applied patch from informancer@web.de (see below)
- Reverted to old-style channel properties dialog for now

1
TODO
View File

@ -8,6 +8,7 @@
* viewing pod info such as pubdate/description
would've been nice.. It would give a better over view on your
downloaded episodes. (suggested by mattias@hedenskog.se)
--> DONE on available podcasts, TODO on downloaded ones (trivial?)
* Downloads should be stored (at least optionally) in a
directory that is not hidden. This will make the files

View File

@ -371,6 +371,33 @@
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="btnEditChannel">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_btnEditChannel_clicked" last_modification_time="Sat, 04 Mar 2006 19:29:18 GMT"/>
<child>
<widget class="GtkImage" id="image174">
<property name="visible">True</property>
<property name="stock">gtk-dialog-info</property>
<property name="icon_size">4</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -1202,62 +1229,232 @@
<widget class="GtkWindow" id="gPodderChannel">
<property name="border_width">10</property>
<property name="visible">True</property>
<property name="title" translatable="yes">gPodder - Add/Modify Channel</property>
<property name="title" translatable="yes">gPodder Channel Editor</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_CENTER</property>
<property name="modal">False</property>
<property name="default_width">500</property>
<property name="default_height">300</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="focus_on_map">True</property>
<property name="urgency_hint">False</property>
<signal name="destroy" handler="on_gPodderChannel_destroy" last_modification_time="Mon, 31 Oct 2005 09:23:41 GMT"/>
<child>
<widget class="GtkVBox" id="vboxMain">
<widget class="GtkVBox" id="vboxChannelEditorMain">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">5</property>
<child>
<widget class="GtkLabel" id="labelIntroduction">
<widget class="GtkNotebook" id="notebookChannelEditor">
<property name="visible">True</property>
<property name="label" translatable="yes">To add a new feed to gPodder, simply enter its URL here and click OK.</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkHBox" id="hboxWidgets">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">5</property>
<property name="can_focus">True</property>
<property name="show_tabs">True</property>
<property name="show_border">True</property>
<property name="tab_pos">GTK_POS_TOP</property>
<property name="scrollable">False</property>
<property name="enable_popup">False</property>
<child>
<widget class="GtkLabel" id="label11">
<widget class="GtkTable" id="table1">
<property name="border_width">10</property>
<property name="visible">True</property>
<property name="label" translatable="yes">URL:</property>
<property name="n_rows">3</property>
<property name="n_columns">2</property>
<property name="homogeneous">False</property>
<property name="row_spacing">10</property>
<property name="column_spacing">5</property>
<child>
<widget class="GtkLabel" id="label11">
<property name="visible">True</property>
<property name="label" translatable="yes">Feed URL:</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">1</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="entryURL">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label21">
<property name="visible">True</property>
<property name="label" translatable="yes">Title:</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">1</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="channel_title">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;(unknown)&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label22">
<property name="visible">True</property>
<property name="label" translatable="yes">Description:</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">1</property>
<property name="yalign">0</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkScrolledWindow" id="scrolledwindow3">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
<property name="vscrollbar_policy">GTK_POLICY_NEVER</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
<widget class="GtkTextView" id="channel_description">
<property name="border_width">5</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="editable">False</property>
<property name="overwrite">False</property>
<property name="accepts_tab">True</property>
<property name="justification">GTK_JUSTIFY_LEFT</property>
<property name="wrap_mode">GTK_WRAP_WORD</property>
<property name="cursor_visible">True</property>
<property name="pixels_above_lines">0</property>
<property name="pixels_below_lines">0</property>
<property name="pixels_inside_wrap">0</property>
<property name="left_margin">0</property>
<property name="right_margin">0</property>
<property name="indent">0</property>
<property name="text" translatable="yes">(unknown)</property>
</widget>
</child>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">fill</property>
<property name="y_options">fill</property>
</packing>
</child>
</widget>
<packing>
<property name="tab_expand">False</property>
<property name="tab_fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label19">
<property name="visible">True</property>
<property name="label" translatable="yes">General</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -1273,28 +1470,54 @@
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="type">tab</property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="entryURL">
<widget class="GtkLabel" id="label23">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
<property name="label" translatable="yes">TODO :)</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="tab_expand">False</property>
<property name="tab_fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label20">
<property name="visible">True</property>
<property name="label" translatable="yes">Advanced</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="type">tab</property>
</packing>
</child>
</widget>
@ -1354,7 +1577,7 @@
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
@ -1633,4 +1856,128 @@ you can use the usual format of the environment variables:
</child>
</widget>
<widget class="GtkWindow" id="gPodderEpisode">
<property name="border_width">10</property>
<property name="visible">True</property>
<property name="title" translatable="yes">Episode Information</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_CENTER</property>
<property name="modal">True</property>
<property name="default_width">400</property>
<property name="default_height">300</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="focus_on_map">True</property>
<property name="urgency_hint">False</property>
<child>
<widget class="GtkVBox" id="vboxEpisodeInfo">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">5</property>
<child>
<widget class="GtkLabel" id="episode_title">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;&lt;big&gt;The gPodder Episode Title&lt;/big&gt;&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkScrolledWindow" id="scrolledwindow4">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
<widget class="GtkTextView" id="episode_description">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">False</property>
<property name="overwrite">False</property>
<property name="accepts_tab">True</property>
<property name="justification">GTK_JUSTIFY_LEFT</property>
<property name="wrap_mode">GTK_WRAP_WORD</property>
<property name="cursor_visible">True</property>
<property name="pixels_above_lines">5</property>
<property name="pixels_below_lines">5</property>
<property name="pixels_inside_wrap">0</property>
<property name="left_margin">5</property>
<property name="right_margin">5</property>
<property name="indent">0</property>
<property name="text" translatable="yes">Description of the episode currently selected in gPodder</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkHBox" id="hbox7">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<placeholder/>
</child>
<child>
<widget class="GtkButton" id="btnCloseWindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-close</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_btnCloseWindow_clicked" last_modification_time="Sat, 04 Mar 2006 19:49:53 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="pack_type">GTK_PACK_END</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
</glade-interface>

View File

@ -3,7 +3,7 @@
# Python module src/gpodder/gpodder.py
# Autogenerated from gpodder.glade
# Generated on Sun Feb 5 08:53:31 2006
# Generated on Sat Mar 4 21:07:30 2006
# Warning: Do not modify any context comment such as #--
# They are required to keep user's code
@ -18,7 +18,9 @@ import os
import gtk
import gobject
import sys
from threading import Event
from string import strip
from SimpleGladeApp import SimpleGladeApp
@ -45,7 +47,7 @@ import libgpodder
app_name = "gpodder"
app_version = "unknown" # will be set in main() call
app_authors = [ "Thomas Perl <thp@perli.net>", "Peter Hoffmann <tosh@cs.tu-berlin.de>" ]
app_authors = [ "Thomas Perl <thp@perli.net>", "Peter Hoffmann <tosh@cs.tu-berlin.de>", "Adrien Beaucreux <informancer@web.de>" ]
app_copyright = "Copyright (c) 2005-2006 Thomas Perl"
app_website = "http://perli.net/projekte/gpodder/"
@ -69,6 +71,7 @@ class Gpodder(SimpleGladeApp):
channels_loaded = False
download_status_manager = None
tooltips = None
def __init__(self, path="gpodder.glade",
root="gPodder",
@ -145,6 +148,11 @@ class Gpodder(SimpleGladeApp):
# update view
self.updateComboBox()
self.updateDownloadedComboBox()
# tooltips :)
self.tooltips = gtk.Tooltips()
self.tooltips.set_delay( 500)
self.tooltips.set_tip( self.btnEditChannel, "Channel Info")
#Add Drag and Drop Support
targets = [("text/plain", 0, 2), ('STRING', 0, 3), ('TEXT', 0, 4)]
@ -312,8 +320,10 @@ class Gpodder(SimpleGladeApp):
# IMPLEMENTED 20051208 self.not_implemented( "the edit channel dialog")
active = self.active_channel
url_old = self.channels[active].url
title_old = self.channels[active].title
desc_old = self.channels[active].description
result = Gpodderchannel().requestURL( message = "Please edit the URL of the currently selected feed, then click OK.", preset = url_old)
result = Gpodderchannel().requestURL( preset = url_old, title = title_old, description = desc_old)
if result != None and result != "" and (result[:4] == "http" or result[:3] == "ftp"):
if libgpodder.isDebugging():
print "will EDIT ID " + str(active) + " FROM " + url_old + " TO " + result
@ -414,6 +424,13 @@ class Gpodder(SimpleGladeApp):
self.updateTreeView()
#-- Gpodder.on_comboAvailable_changed }
#-- Gpodder.on_btnEditChannel_clicked {
def on_btnEditChannel_clicked(self, widget, *args):
if libgpodder.isDebugging():
print "on_btnEditChannel_clicked called with self.%s" % widget.get_name()
self.on_itemEditChannel_activate( widget, args)
#-- Gpodder.on_btnEditChannel_clicked }
#-- Gpodder.on_treeAvailable_row_activated {
def on_treeAvailable_row_activated(self, widget, *args):
if libgpodder.isDebugging():
@ -427,6 +444,9 @@ class Gpodder(SimpleGladeApp):
current_channel = self.channels[self.active_channel]
current_podcast = current_channel.items[self.active_item]
filename = gPodderLib().getPodcastFilename( current_channel, current_podcast.url)
if widget.get_name() == "treeAvailable":
Gpodderepisode().set_episode( current_podcast)
return
if os.path.exists( filename) == False and self.download_status_manager.is_download_in_progress( current_podcast.url) == False:
downloadThread( current_podcast.url, filename, None, self.download_status_manager, current_podcast.title, current_channel, current_podcast).download()
@ -582,12 +602,14 @@ class Gpodderchannel(SimpleGladeApp):
#-- Gpodderchannel custom methods {
# Write your own methods here
def requestURL( self, message = None, preset = None):
if message != None:
self.labelIntroduction.set_text( message)
def requestURL( self, preset = None, title = "(unknown)", description = "(unknown)"):
if preset != None:
self.entryURL.set_text( preset)
self.channel_title.set_markup( "<b>%s</b>" % title)
b = gtk.TextBuffer()
b.set_text( description)
self.channel_description.set_buffer( b)
self.waiting = Event()
while self.waiting.isSet() == False:
@ -679,17 +701,49 @@ class Gpodderproperties(SimpleGladeApp):
#-- Gpodderproperties.on_btnCancel_clicked }
class Gpodderepisode(SimpleGladeApp):
def __init__(self, path="gpodder.glade",
root="gPodderEpisode",
domain=app_name, **kwargs):
path = os.path.join(glade_dir, path)
SimpleGladeApp.__init__(self, path, root, domain, **kwargs)
#-- Gpodderepisode.new {
def new( self):
if libgpodder.isDebugging():
print "A new %s has been created" % self.__class__.__name__
#-- Gpodderepisode.new }
#-- Gpodderepisode custom methods {
# Write your own methods here
def set_episode( self, episode):
self.episode_title.set_markup( '<big><b>%s</b></big>' % episode.title)
b = gtk.TextBuffer()
b.set_text( strip( episode.description))
self.episode_description.set_buffer( b)
#-- Gpodderepisode custom methods }
#-- Gpodderepisode.on_btnCloseWindow_clicked {
def on_btnCloseWindow_clicked(self, widget, *args):
if libgpodder.isDebugging():
print "on_btnCloseWindow_clicked called with self.%s" % widget.get_name()
self.gPodderEpisode.destroy()
#-- Gpodderepisode.on_btnCloseWindow_clicked }
#-- main {
def main( __version__ = None):
global app_version
gtk.gdk.threads_init()
app_version = __version__
g_podder = Gpodder()
#g_podder_status = Gpodderstatus()
#g_podder_channel = Gpodderchannel()
#g_podder_properties = Gpodderproperties()
#g_podder_episode = Gpodderepisode()
g_podder.set_icon()
g_podder.run()

View File

@ -3,7 +3,7 @@
# Python module src/gpodder/gpodder.py
# Autogenerated from gpodder.glade
# Generated on Sun Feb 26 00:30:36 2006
# Generated on Sat Mar 4 21:07:30 2006
# Warning: Do not modify any context comment such as #--
# They are required to keep user's code
@ -91,6 +91,11 @@ class Gpodder(SimpleGladeApp):
print "on_comboAvailable_changed called with self.%s" % widget.get_name()
#-- Gpodder.on_comboAvailable_changed }
#-- Gpodder.on_btnEditChannel_clicked {
def on_btnEditChannel_clicked(self, widget, *args):
print "on_btnEditChannel_clicked called with self.%s" % widget.get_name()
#-- Gpodder.on_btnEditChannel_clicked }
#-- Gpodder.on_treeAvailable_row_activated {
def on_treeAvailable_row_activated(self, widget, *args):
print "on_treeAvailable_row_activated called with self.%s" % widget.get_name()
@ -221,6 +226,29 @@ class Gpodderproperties(SimpleGladeApp):
#-- Gpodderproperties.on_btnCancel_clicked }
class Gpodderepisode(SimpleGladeApp):
def __init__(self, path="gpodder.glade",
root="gPodderEpisode",
domain=app_name, **kwargs):
path = os.path.join(glade_dir, path)
SimpleGladeApp.__init__(self, path, root, domain, **kwargs)
#-- Gpodderepisode.new {
def new(self):
print "A new %s has been created" % self.__class__.__name__
#-- Gpodderepisode.new }
#-- Gpodderepisode custom methods {
# Write your own methods here
#-- Gpodderepisode custom methods }
#-- Gpodderepisode.on_btnCloseWindow_clicked {
def on_btnCloseWindow_clicked(self, widget, *args):
print "on_btnCloseWindow_clicked called with self.%s" % widget.get_name()
#-- Gpodderepisode.on_btnCloseWindow_clicked }
#-- main {
def main():
@ -228,6 +256,7 @@ def main():
g_podder_status = Gpodderstatus()
g_podder_channel = Gpodderchannel()
g_podder_properties = Gpodderproperties()
g_podder_episode = Gpodderepisode()
g_podder.run()

View File

@ -124,8 +124,7 @@ class gPodderLib( object):
filename = filename[:indexOfQuestionMark]
# end strip questionmark
channel.download_dir
print "getPodcastFilename: ", channel.download_dir + filename
return channel.download_dir + filename
return channel.save_dir + filename
def podcastFilenameExists( self, channel, url):
return exists( self.getPodcastFilename( channel, url))

View File

@ -63,7 +63,7 @@ class podcastChannel(object):
self.items.append( item)
def addDownloadedItem( self, item):
localdb = libgpodder.gPodderLib().getChannelIndexFile( self)
localdb = self.index_file
if libgpodder.isDebugging():
print "localdb: " + localdb
@ -203,7 +203,7 @@ def channelsToModel( channels):
for channel in channels:
new_iter = new_model.append()
new_model.set( new_iter, 0, channel.url)
new_model.set( new_iter, 1, channel.title + " ("+channel.url+")")
new_model.set( new_iter, 1, channel.title) # + " ("+channel.url+")")
#if channel.image != None:
# new_model.set( new_iter, 2, gtk.gdk.pixbuf_new_from_file_at_size( channel.image, 60, 60))
#else: