From a75549107b28a2d112ef763deeab7c6b5fd9eb4a Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 23 Nov 2014 09:57:26 +0530 Subject: [PATCH] Implement removal of recipes --- src/calibre/gui2/dialogs/custom_recipes.py | 23 ++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/calibre/gui2/dialogs/custom_recipes.py b/src/calibre/gui2/dialogs/custom_recipes.py index 5cc786e2c7..830bc45975 100644 --- a/src/calibre/gui2/dialogs/custom_recipes.py +++ b/src/calibre/gui2/dialogs/custom_recipes.py @@ -144,7 +144,7 @@ def options_to_recipe_source(title, oldest_article, max_articles_per_feed, feeds max_articles_per_feed=max_articles_per_feed, base='AutomaticNewsRecipe') return src -class RecipeList(QWidget): +class RecipeList(QWidget): # {{{ edit_recipe = pyqtSignal(object) @@ -179,17 +179,22 @@ class RecipeList(QWidget): b.setSizePolicy(QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)) b.clicked.connect(self.edit_requested) l.addWidget(b) - # TODO: Implement this button self.remove_button = b = QPushButton(QIcon(I('list_remove.png')), _('&Remove this recipe'), w) + b.clicked.connect(self.remove) b.setSizePolicy(QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)) l.addWidget(b) + self.select_first() + v.selectionModel().currentRowChanged.connect(self.recipe_selected) + + def select_first(self): + v = self.view if v.model().rowCount() > 0: idx = v.model().index(0) if idx.isValid(): v.selectionModel().select(idx, v.selectionModel().ClearAndSelect) - self.recipe_selected(v.currentIndex()) - v.selectionModel().currentRowChanged.connect(self.recipe_selected) + v.setCurrentIndex(idx) + self.recipe_selected(idx) @property def model(self): @@ -199,6 +204,8 @@ class RecipeList(QWidget): if cur.isValid(): self.stacks.setCurrentIndex(1) self.title.setText('

%s

' % self.model.title(cur)) + else: + self.stacks.setCurrentIndex(0) def edit_requested(self): idx = self.view.currentIndex() @@ -207,6 +214,13 @@ class RecipeList(QWidget): if src is not None: self.edit_recipe.emit(src) + def remove(self): + idx = self.view.currentIndex() + if idx.isValid(): + self.model.remove((idx.row(),)) + self.select_first() +# }}} + class BasicRecipe(QWidget): def __init__(self, parent): @@ -224,6 +238,7 @@ class BasicRecipe(QWidget): self.title = t = QLineEdit(self) l.addRow(_('Recipe &title:'), t) + t.setStyleSheet('QLineEdit { font-weight: bold }') self.oldest_article = o = QSpinBox(self) o.setSuffix(' ' + _('day(s)'))