TimestampRole == 33 for timestamp data in myTableWidgetItem

This commit is contained in:
Dmitri Bogomolov 2019-02-08 18:50:07 +02:00
parent 2445b71b20
commit 7364824aee
Signed by untrusted user: g1itch
GPG Key ID: 720A756F18DEED13

View File

@ -57,6 +57,8 @@ try:
except ImportError: except ImportError:
get_plugins = False get_plugins = False
TimestampRole = 33
# TODO: rewrite # TODO: rewrite
def powQueueSize(): def powQueueSize():
@ -1135,7 +1137,7 @@ class MyForm(settingsmixin.SMainWindow):
newItem = myTableWidgetItem(statusText) newItem = myTableWidgetItem(statusText)
newItem.setToolTip(statusText) newItem.setToolTip(statusText)
newItem.setData(QtCore.Qt.UserRole, ackdata) newItem.setData(QtCore.Qt.UserRole, ackdata)
newItem.setData(33, int(lastactiontime)) newItem.setData(TimestampRole, int(lastactiontime))
newItem.setFlags( newItem.setFlags(
QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
items.append(newItem) items.append(newItem)
@ -1167,7 +1169,7 @@ class MyForm(settingsmixin.SMainWindow):
time_item = myTableWidgetItem(l10n.formatTimestamp(received)) time_item = myTableWidgetItem(l10n.formatTimestamp(received))
time_item.setToolTip(l10n.formatTimestamp(received)) time_item.setToolTip(l10n.formatTimestamp(received))
time_item.setData(QtCore.Qt.UserRole, msgid) time_item.setData(QtCore.Qt.UserRole, msgid)
time_item.setData(33, int(received)) time_item.setData(TimestampRole, int(received))
time_item.setFlags( time_item.setFlags(
QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
if not read: if not read:
@ -4277,16 +4279,25 @@ class MyForm(settingsmixin.SMainWindow):
# correctly (rather than alphabetically), we need to overload the < # correctly (rather than alphabetically), we need to overload the <
# operator and use this class instead of QTableWidgetItem. # operator and use this class instead of QTableWidgetItem.
class myTableWidgetItem(QtWidgets.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): def __lt__(self, other):
return self.data(33) < other.data(33) return self.data(TimestampRole) < other.data(TimestampRole)
def setData(self, role, value): def setData(self, role, value):
"""Stores data for QtCore.Qt.UserRole in _data"""
if role == QtCore.Qt.UserRole: if role == QtCore.Qt.UserRole:
self._data = value self._data = value
return super(myTableWidgetItem, self).setData(role, value) else:
super(myTableWidgetItem, self).setData(role, value)
def data(self, role): def data(self, role):
"""Returns raw msgid string for QtCore.Qt.UserRole stored in _data"""
if role == QtCore.Qt.UserRole: if role == QtCore.Qt.UserRole:
return self._data return self._data
return super(myTableWidgetItem, self).data(role) return super(myTableWidgetItem, self).data(role)