diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index e6b4243d..d35066d7 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -735,6 +735,16 @@ class MainWindow(Window): tableWidget.horizontalHeaderItem(3).setText(_translate("MainWindow", "Sent", None)) tableWidget.setUpdatesEnabled(True) + def switchMessagelist( + self, view, account, + folder='inbox', search_option=None, search_line=None + ): + model = view.model() + update = {'folder': folder} + if account: + update['toaddress'] = account + model.updateFilter(update) + # Load messages from database file def loadMessagelist(self, tableWidget, account, folder="inbox", where="", what="", unreadOnly = False): if folder == 'sent': @@ -2883,7 +2893,7 @@ class MainWindow(Window): return self.treeWidgetYourIdentities def getCurrentMessagelist(self): - currentIndex = self.tabWidget.currentIndex(); + currentIndex = self.tabWidget.currentIndex() messagelistList = ( self.tableWidgetInboxSubscriptions, self.tableWidgetInboxChans, @@ -3369,14 +3379,18 @@ class MainWindow(Window): messageTextedit = self.getCurrentMessageTextedit() if messageTextedit: messageTextedit.setPlainText(QtCore.QString("")) - messagelist = self.getCurrentMessagelist() - if messagelist: - account = self.getCurrentAccount() - folder = self.getCurrentFolder() - treeWidget = self.getCurrentTreeWidget() - # refresh count indicator - self.propagateUnreadCount(account.address if hasattr(account, 'address') else None, folder, treeWidget, 0) - self.loadMessagelist(messagelist, account, folder, searchOption, searchLine) + messagelist = self.getCurrentMessagelist() or self.messagelistInbox + # ?? + account = self.getCurrentAccount() + folder = self.getCurrentFolder() + treeWidget = self.getCurrentTreeWidget() + if isinstance(messagelist, QtGui.QTableView): + self.switchMessagelist( + messagelist, account, folder, searchOption, searchLine) + return + # refresh count indicator + self.propagateUnreadCount(account.address if hasattr(account, 'address') else None, folder, treeWidget, 0) + self.loadMessagelist(messagelist, account, folder, searchOption, searchLine) def treeWidgetItemChanged(self, item, column): # only for manual edits. automatic edits (setText) are ignored diff --git a/src/bitmessageqt/messagelist.py b/src/bitmessageqt/messagelist.py index 05217b4c..77e8720d 100644 --- a/src/bitmessageqt/messagelist.py +++ b/src/bitmessageqt/messagelist.py @@ -78,7 +78,7 @@ class AccountFormatter(object): class InboxTableModel(QtCore.QAbstractTableModel): table = 'inbox' fields = ( - 'msgid', 'toaddress', 'fromaddress', 'subject', 'received', 'read') + 'msgid', 'folder', 'toaddress', 'fromaddress', 'subject', 'received', 'read') header = ( {'field': 'fromaddress', 'label': _translate("MainWindow", "From"), @@ -158,6 +158,10 @@ class InboxTableModel(QtCore.QAbstractTableModel): 'SELECT message FROM inbox WHERE msgid = ?', msgid )[0][0] + def updateFilter(self, *args, **kwargs): + self.filter.update(*args, **kwargs) + self.emit(QtCore.SIGNAL("layoutChanged()")) + class InboxMessagelist(QtGui.QTableView): def __init__(self, parent=None):