From ea0920053f9c89909b70ebaf084b9b0fc0ea7950 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 26 May 2011 10:50:57 -0600 Subject: [PATCH] Fix #774849 (Schedule news download: inconsistent save behaviour) --- src/calibre/gui2/dialogs/scheduler.py | 18 +++--- src/calibre/gui2/dialogs/scheduler.ui | 79 ++++++++++++++++----------- 2 files changed, 55 insertions(+), 42 deletions(-) diff --git a/src/calibre/gui2/dialogs/scheduler.py b/src/calibre/gui2/dialogs/scheduler.py index b25d66979d..7d1d87b472 100644 --- a/src/calibre/gui2/dialogs/scheduler.py +++ b/src/calibre/gui2/dialogs/scheduler.py @@ -207,8 +207,9 @@ class SchedulerDialog(QDialog, Ui_Dialog): self.recipe_model.searched.connect(self.search.search_done, type=Qt.QueuedConnection) self.recipe_model.searched.connect(self.search_done) - self.search.setFocus(Qt.OtherFocusReason) + self.recipes.setFocus(Qt.OtherFocusReason) self.commit_on_change = True + self.previous_urn = None self.recipes.setModel(self.recipe_model) self.detail_box.setVisible(False) @@ -228,6 +229,9 @@ class SchedulerDialog(QDialog, Ui_Dialog): self.old_news.setValue(gconf['oldest_news']) + self.go_button.clicked.connect(self.search.do_search) + self.clear_search_button.clicked.connect(self.search.clear_clicked) + def set_pw_echo_mode(self, state): self.password.setEchoMode(self.password.Normal if state == Qt.Checked else self.password.Password) @@ -265,14 +269,9 @@ class SchedulerDialog(QDialog, Ui_Dialog): self.last_downloaded.setVisible(enabled) def current_changed(self, current, previous): - if self.commit_on_change: - if previous.isValid(): - if not self.commit(urn=getattr(previous.internalPointer(), - 'urn', None)): - self.commit_on_change = False - self.recipes.setCurrentIndex(previous) - else: - self.commit_on_change = True + if self.previous_urn is not None: + self.commit(urn=self.previous_urn) + self.previous_urn = None urn = self.current_urn if urn is not None: @@ -332,6 +331,7 @@ class SchedulerDialog(QDialog, Ui_Dialog): return True def initialize_detail_box(self, urn): + self.previous_urn = urn self.detail_box.setVisible(True) self.download_button.setVisible(True) self.detail_box.setCurrentIndex(0) diff --git a/src/calibre/gui2/dialogs/scheduler.ui b/src/calibre/gui2/dialogs/scheduler.ui index f26bfc7285..6acbb01dd8 100644 --- a/src/calibre/gui2/dialogs/scheduler.ui +++ b/src/calibre/gui2/dialogs/scheduler.ui @@ -17,21 +17,30 @@ :/images/scheduler.png:/images/scheduler.png - + - - - &Search: - - - search - - + + + + + + + + Go + + + + + + + + :/images/clear_left.png:/images/clear_left.png + + + + - - - - + QFrame::NoFrame @@ -44,7 +53,7 @@ 0 0 - 486 + 524 504 @@ -320,7 +329,7 @@ - + @@ -345,7 +354,17 @@ - + + + + + + + Qt::AlignCenter + + + + @@ -376,17 +395,7 @@ - - - - Qt::Horizontal - - - QDialogButtonBox::Save - - - - + Download all scheduled news sources at once @@ -394,15 +403,19 @@ Download &all scheduled + + + :/images/news.png:/images/news.png + - - - - + + + + Qt::Horizontal - - Qt::AlignCenter + + QDialogButtonBox::Save