added "select all" buttons to all three main tabs

version and date bump to svn version again
debugging set back to "True"


git-svn-id: svn://svn.berlios.de/gpodder/trunk@138 b0d088ad-0a06-0410-aad2-9ed5178a7e87
This commit is contained in:
Thomas Perl 2006-07-20 13:19:19 +00:00
parent f228d9530e
commit fe4dd0a446
6 changed files with 372 additions and 8 deletions

View File

@ -1,3 +1,19 @@
Thu, 20 Jul 2006 15:11:57 +0200 <thp@perli.net>
* Starting integrating changes and fixes suggested by
feedback on gPodder 0.7.9
* Thanks to Haim Roitgrund (and his son :) for suggesting
the "select all" features (see next three entries)
* Added "download all" button that downloads not-already
downloaded episodes from available podcast list
* Added "cancel all" button that cancels all current
running downloads to the downloads tab
* Added "delete all" (cleanup) button to the downloaded
podcast list - deletes all episodes in currently
selected channel (and removes the empty channel)
* Bumped version + date to a SVN devel version
* Debugging variable set to "True" for the next few
days now before the 0.8.0 release
Mon, 17 Jul 2006 17:02:15 +0200 <thp@perli.net>
* Set update_on_startup in gPodderLib so gPodder doesn't
crash for first-time users with no gPodder configuration

View File

@ -26,8 +26,8 @@
# PLEASE DO NOT CHANGE FORMAT OF __version__ LINE (setup.py reads this)
__author__ = "Thomas Perl <thp@perli.net>"
__version__ = "0.7.9"
__date__ = "2006-07-17"
__version__ = "0.7.9+svn20060720"
__date__ = "2006-07-20"
__copyright__ = "Copyright (c) 2005-2006 %s. All rights reserved." % __author__
__licence__ = "GPL"

View File

@ -583,7 +583,7 @@
<child>
<widget class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="label" translatable="yes">Download Pod_cast</property>
<property name="label" translatable="yes">Download _selected</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -635,6 +635,85 @@
<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>
</packing>
</child>
<child>
<widget class="GtkButton" id="btnSelectAllAvailable">
<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_btnSelectAllAvailable_clicked" last_modification_time="Thu, 20 Jul 2006 12:43:20 GMT"/>
<child>
<widget class="GtkAlignment" id="alignment5">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
<property name="left_padding">0</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkHBox" id="hbox10">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image398">
<property name="visible">True</property>
<property name="stock">gtk-go-forward</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>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label44">
<property name="visible">True</property>
<property name="label" translatable="yes">Download _all</property>
<property name="use_underline">True</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">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
@ -729,12 +808,156 @@
<child>
<widget class="GtkButton" id="btnCancelDownloadStatus">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Cancels the selected downloads</property>
<property name="can_focus">True</property>
<property name="label">gtk-cancel</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_btnCancelDownloadStatus_clicked" last_modification_time="Wed, 23 Nov 2005 19:02:29 GMT"/>
<child>
<widget class="GtkAlignment" id="alignment7">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
<property name="left_padding">0</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkHBox" id="hbox12">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image400">
<property name="visible">True</property>
<property name="stock">gtk-cancel</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>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label46">
<property name="visible">True</property>
<property name="label">Canc_el</property>
<property name="use_underline">True</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">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
</child>
</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>
<child>
<widget class="GtkButton" id="btnCancelAll">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Cancels all running downloads</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_btnCancelAll_clicked" last_modification_time="Thu, 20 Jul 2006 12:48:14 GMT"/>
<child>
<widget class="GtkAlignment" id="alignment6">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
<property name="left_padding">0</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkHBox" id="hbox11">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image399">
<property name="visible">True</property>
<property name="stock">gtk-stop</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>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label45">
<property name="visible">True</property>
<property name="label" translatable="yes">Cancel _all</property>
<property name="use_underline">True</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">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -883,6 +1106,7 @@
<child>
<widget class="GtkButton" id="btnDownloadedExecute">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Plays the current selection in the media player</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
@ -926,7 +1150,7 @@
<child>
<widget class="GtkLabel" id="label17">
<property name="visible">True</property>
<property name="label" translatable="yes">Play selected item</property>
<property name="label" translatable="yes">_Play</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -963,6 +1187,7 @@
<child>
<widget class="GtkButton" id="btnDownloadedDelete">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Deletes the current selection</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
@ -1006,7 +1231,88 @@
<child>
<widget class="GtkLabel" id="label16">
<property name="visible">True</property>
<property name="label" translatable="yes">Delete selected item</property>
<property name="label" translatable="yes">_Delete</property>
<property name="use_underline">True</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">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
</child>
</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>
<child>
<widget class="GtkButton" id="btnDeleteAll">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Deletes all downloaded episodes in this channel</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_btnDeleteAll_clicked" last_modification_time="Thu, 20 Jul 2006 12:54:21 GMT"/>
<child>
<widget class="GtkAlignment" id="alignment8">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
<property name="left_padding">0</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkHBox" id="hbox13">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image401">
<property name="visible">True</property>
<property name="stock">gtk-clear</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>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label47">
<property name="visible">True</property>
<property name="label" translatable="yes">Delete _all</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>

View File

@ -658,6 +658,15 @@ class Gpodder(SimpleGladeApp):
self.on_treeAvailable_row_activated( widget, args)
#-- Gpodder.on_btnDownload_clicked }
#-- Gpodder.on_btnSelectAllAvailable_clicked {
def on_btnSelectAllAvailable_clicked(self, widget, *args):
if libgpodder.isDebugging():
print "on_btnSelectAllAvailable_clicked called with self.%s" % widget.get_name()
self.treeAvailable.get_selection().select_all()
self.on_treeAvailable_row_activated( self.btnDownload, args)
self.treeAvailable.get_selection().unselect_all()
#-- Gpodder.on_btnSelectAllAvailable_clicked }
#-- Gpodder.on_treeDownloads_row_activated {
def on_treeDownloads_row_activated(self, widget, *args):
if libgpodder.isDebugging():
@ -692,6 +701,15 @@ class Gpodder(SimpleGladeApp):
self.on_treeDownloads_row_activated( widget, None)
#-- Gpodder.on_btnCancelDownloadStatus_clicked }
#-- Gpodder.on_btnCancelAll_clicked {
def on_btnCancelAll_clicked(self, widget, *args):
if libgpodder.isDebugging():
print "on_btnCancelAll_clicked called with self.%s" % widget.get_name()
self.treeDownloads.get_selection().select_all()
self.on_treeDownloads_row_activated( self.btnCancelDownloadStatus, None)
self.treeDownloads.get_selection().unselect_all()
#-- Gpodder.on_btnCancelAll_clicked }
#-- Gpodder.on_comboDownloaded_changed {
def on_comboDownloaded_changed(self, widget, *args):
if libgpodder.isDebugging():
@ -784,6 +802,15 @@ class Gpodder(SimpleGladeApp):
print "error while deleting (some) downloads"
#-- Gpodder.on_btnDownloadedDelete_clicked }
#-- Gpodder.on_btnDeleteAll_clicked {
def on_btnDeleteAll_clicked(self, widget, *args):
if libgpodder.isDebugging():
print "on_btnDeleteAll_clicked called with self.%s" % widget.get_name()
self.treeDownloaded.get_selection().select_all()
self.on_btnDownloadedDelete_clicked( widget, args)
self.treeDownloaded.get_selection().unselect_all()
#-- Gpodder.on_btnDeleteAll_clicked }
class Gpodderchannel(SimpleGladeApp):
event = None

View File

@ -120,6 +120,11 @@ class Gpodder(SimpleGladeApp):
print "on_btnDownload_clicked called with self.%s" % widget.get_name()
#-- Gpodder.on_btnDownload_clicked }
#-- Gpodder.on_btnSelectAllAvailable_clicked {
def on_btnSelectAllAvailable_clicked(self, widget, *args):
print "on_btnSelectAllAvailable_clicked called with self.%s" % widget.get_name()
#-- Gpodder.on_btnSelectAllAvailable_clicked }
#-- Gpodder.on_treeDownloads_row_activated {
def on_treeDownloads_row_activated(self, widget, *args):
print "on_treeDownloads_row_activated called with self.%s" % widget.get_name()
@ -130,6 +135,11 @@ class Gpodder(SimpleGladeApp):
print "on_btnCancelDownloadStatus_clicked called with self.%s" % widget.get_name()
#-- Gpodder.on_btnCancelDownloadStatus_clicked }
#-- Gpodder.on_btnCancelAll_clicked {
def on_btnCancelAll_clicked(self, widget, *args):
print "on_btnCancelAll_clicked called with self.%s" % widget.get_name()
#-- Gpodder.on_btnCancelAll_clicked }
#-- Gpodder.on_comboDownloaded_changed {
def on_comboDownloaded_changed(self, widget, *args):
print "on_comboDownloaded_changed called with self.%s" % widget.get_name()
@ -150,6 +160,11 @@ class Gpodder(SimpleGladeApp):
print "on_btnDownloadedDelete_clicked called with self.%s" % widget.get_name()
#-- Gpodder.on_btnDownloadedDelete_clicked }
#-- Gpodder.on_btnDeleteAll_clicked {
def on_btnDeleteAll_clicked(self, widget, *args):
print "on_btnDeleteAll_clicked called with self.%s" % widget.get_name()
#-- Gpodder.on_btnDeleteAll_clicked }
class Gpodderchannel(SimpleGladeApp):

View File

@ -61,7 +61,7 @@ from xml.sax import saxutils
# global debugging variable, set to False on release
# TODO: while developing a new version, set this to "True"
debugging = False
debugging = True
# global recursive lock for thread exclusion
globalLock = threading.RLock()