diff --git a/libprs500/gui/main.py b/libprs500/gui/main.py index 9cc2653266..165d946721 100644 --- a/libprs500/gui/main.py +++ b/libprs500/gui/main.py @@ -200,7 +200,6 @@ class Main(QObject, Ui_MainWindow): self.write_settings() e.accept() - @report_error def add(self, action): settings = QSettings() _dir = settings.value("add books dialog dir", \ @@ -215,20 +214,26 @@ class Main(QObject, Ui_MainWindow): files = unicode(files.join("|||").toUtf8(), 'utf-8').split("|||") self.add_books(files) + @report_error def add_books(self, files): self.window.setCursor(Qt.WaitCursor) - for _file in files: - _file = os.path.abspath(_file) - self.library_view.model().add_book(_file) - if self.library_view.isVisible(): - self.search.clear() - else: - self.library_model.search("") - hv = self.library_view.horizontalHeader() - col = hv.sortIndicatorSection() - order = hv.sortIndicatorOrder() - self.library_view.model().sort(col, order) - self.window.setCursor(Qt.ArrowCursor) + try: + for _file in files: + _file = os.path.abspath(_file) + self.library_view.model().add_book(_file) + if self.library_view.isVisible(): + if len(str(self.search.text())): + self.search.clear() + else: + self.library_model.search("") + else: + self.library_model.search("") + hv = self.library_view.horizontalHeader() + col = hv.sortIndicatorSection() + order = hv.sortIndicatorOrder() + self.library_view.model().sort(col, order) + finally: + self.window.setCursor(Qt.ArrowCursor) @report_error def edit(self, action): @@ -292,9 +297,12 @@ class Main(QObject, Ui_MainWindow): order = hv.sortIndicatorOrder() model = self.card_model if oncard else self.reader_model model.sort(col, order) - if self.device_view.isVisible() and self.device_view.model()\ - == model: - self.search.clear() + if self.device_view.isVisible() and \ + self.device_view.model() == model: + if len(str(self.search.text())): + self.search.clear() + else: + self.device_view.model().search("") else: model.search("") diff --git a/libprs500/gui/widgets.py b/libprs500/gui/widgets.py index f56820fb96..e63565a079 100644 --- a/libprs500/gui/widgets.py +++ b/libprs500/gui/widgets.py @@ -165,7 +165,7 @@ class TableView(FileDragAndDrop, QTableView): @classmethod def wrap(cls, s, width=20): - cls.wrapper.width = 20 + cls.wrapper.width = width return cls.wrapper.fill(s) @classmethod @@ -566,12 +566,12 @@ class LibraryBooksModel(QAbstractTableModel): r = 5 return QVariant(r) if col == 0: - text = TableView.wrap(row["title"], width=25) + text = TableView.wrap(row["title"], width=35) elif col == 1: au = row["authors"] if au: au = au.split("&") - jau = [ TableView.wrap(a, width=25).strip() for a in au ] + jau = [ TableView.wrap(a, width=30).strip() for a in au ] text = "\n".join(jau) elif col == 2: text = TableView.human_readable(row["size"]) @@ -587,7 +587,7 @@ class LibraryBooksModel(QAbstractTableModel): return QVariant(text) elif role == Qt.TextAlignmentRole and index.column() in [2,3,4]: return QVariant(Qt.AlignRight | Qt.AlignVCenter) - elif role == Qt.ToolTipRole: + elif role == Qt.ToolTipRole and index.isValid(): if index.column() in [0, 1, 4, 5]: edit = "Double click to edit me

" else: @@ -780,21 +780,25 @@ class DeviceBooksModel(QAbstractTableModel): class DeviceModel(QAbstractListModel): - memory_free = 0 + memory_free = 0 card_free = 0 - show_reader = False - show_card = False + show_reader = False + show_card = False def update_devices(self, reader=None, card=None): if reader != None: self.show_reader = reader if card != None: self.show_card = card - self.emit(SIGNAL("dataChanged(QModelIndex, QModelIndex)"), \ - self.index(1), self.index(2)) + self.emit(SIGNAL("layoutChanged()")) - def rowCount(self, parent): - return 3 + def rowCount(self, parent): + base = 1 + if self.show_reader: + base += 1 + if self.show_card: + base += 1 + return base def update_free_space(self, reader, card): self.memory_free = reader