From 7364824aee94ea774320584820307b608ebae1bd Mon Sep 17 00:00:00 2001 From: Dmitri Bogomolov <4glitch@gmail.com> Date: Fri, 8 Feb 2019 18:50:07 +0200 Subject: [PATCH] TimestampRole == 33 for timestamp data in myTableWidgetItem --- src/bitmessageqt/__init__.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index 182bfc7c..f12faf2b 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -57,6 +57,8 @@ try: except ImportError: get_plugins = False +TimestampRole = 33 + # TODO: rewrite def powQueueSize(): @@ -1135,7 +1137,7 @@ class MyForm(settingsmixin.SMainWindow): newItem = myTableWidgetItem(statusText) newItem.setToolTip(statusText) newItem.setData(QtCore.Qt.UserRole, ackdata) - newItem.setData(33, int(lastactiontime)) + newItem.setData(TimestampRole, int(lastactiontime)) newItem.setFlags( QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) items.append(newItem) @@ -1167,7 +1169,7 @@ class MyForm(settingsmixin.SMainWindow): time_item = myTableWidgetItem(l10n.formatTimestamp(received)) time_item.setToolTip(l10n.formatTimestamp(received)) time_item.setData(QtCore.Qt.UserRole, msgid) - time_item.setData(33, int(received)) + time_item.setData(TimestampRole, int(received)) time_item.setFlags( QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) if not read: @@ -4277,16 +4279,25 @@ class MyForm(settingsmixin.SMainWindow): # correctly (rather than alphabetically), we need to overload the < # operator and use this class instead of QTableWidgetItem. class myTableWidgetItem(QtWidgets.QTableWidgetItem): + """ + A subclass of QTableWidgetItem for received field. + '<' operator is overloaded to sort by TimestampRole == 33 + msgid is stored in instance variable _data + """ + _data = None def __lt__(self, other): - return self.data(33) < other.data(33) + return self.data(TimestampRole) < other.data(TimestampRole) def setData(self, role, value): + """Stores data for QtCore.Qt.UserRole in _data""" if role == QtCore.Qt.UserRole: self._data = value - return super(myTableWidgetItem, self).setData(role, value) + else: + super(myTableWidgetItem, self).setData(role, value) def data(self, role): + """Returns raw msgid string for QtCore.Qt.UserRole stored in _data""" if role == QtCore.Qt.UserRole: return self._data return super(myTableWidgetItem, self).data(role)