Channel + episode info dialog, bugfixes
git-svn-id: svn://svn.berlios.de/gpodder@38 b0d088ad-0a06-0410-aad2-9ed5178a7e87
This commit is contained in:
parent
2dd434bde3
commit
770554507c
11
ChangeLog
11
ChangeLog
|
@ -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
1
TODO
|
@ -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
|
||||
|
|
|
@ -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"><b>(unknown)</b></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"><b><big>The gPodder Episode Title</big></b></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>
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue