From 295042eefec672e4cd46faa7004fc82a9117161f Mon Sep 17 00:00:00 2001 From: Arnukk Date: Sun, 17 Nov 2013 00:54:29 +0400 Subject: [PATCH] Implementing sorting of starred messages. Code refactoring. --- .idea/PyBitmessage.iml | 16 ++ .idea/encodings.xml | 5 + .idea/misc.xml | 5 + .idea/modules.xml | 9 + .idea/scopes/scope_settings.xml | 5 + .idea/vcs.xml | 7 + .idea/workspace.xml | 478 ++++++++++++++++++++++++++++++++ src/bitmessageqt/__init__.py | 70 ++--- 8 files changed, 554 insertions(+), 41 deletions(-) create mode 100644 .idea/PyBitmessage.iml create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/scopes/scope_settings.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml diff --git a/.idea/PyBitmessage.iml b/.idea/PyBitmessage.iml new file mode 100644 index 00000000..cb7a8494 --- /dev/null +++ b/.idea/PyBitmessage.iml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 00000000..e206d70d --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..f4555105 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 00000000..b0f7c574 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml new file mode 100644 index 00000000..922003b8 --- /dev/null +++ b/.idea/scopes/scope_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..c80f2198 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 00000000..dc27f306 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,478 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1383738823543 + 1383738823543 + + + 1384635076980 + 1384635076980 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index b773112a..f5ea52e5 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -38,6 +38,7 @@ from debug import logger import subprocess import datetime from helper_sql import * +import functools try: from PyQt4 import QtCore, QtGui @@ -278,9 +279,9 @@ class MyForm(QtGui.QMainWindow): self.actionMarkUnread = self.ui.inboxContextMenuToolbar.addAction(_translate( "MainWindow", "Mark Unread"), self.on_action_InboxMarkUnread) self.actionAddStar = self.ui.inboxContextMenuToolbar.addAction(_translate( - "MainWindow", "Add Star"), self.on_action_InboxAddStar) + "MainWindow", "Star"), functools.partial(self.on_action_AddStar, "inbox", self.ui.tableWidgetInbox, self.loadInbox)) self.actionRemoveStar = self.ui.inboxContextMenuToolbar.addAction(_translate( - "MainWindow", "Remove Star"), self.on_action_InboxRemoveStar) + "MainWindow", "Unstar"), functools.partial(self.on_action_RemoveStar, "inbox", self.ui.tableWidgetInbox, self.loadInbox)) self.ui.tableWidgetInbox.setContextMenuPolicy( QtCore.Qt.CustomContextMenu) @@ -396,9 +397,9 @@ class MyForm(QtGui.QMainWindow): 'customContextMenuRequested(const QPoint&)'), self.on_context_menuSent) self.actionSentAddStar = self.ui.sentContextMenuToolbar.addAction(_translate( - "MainWindow", "Add Star"), self.on_action_SentAddStar) + "MainWindow", "Star"), functools.partial(self.on_action_AddStar, "sent", self.ui.tableWidgetSent, self.loadSent)) self.actionSentRemoveStar = self.ui.sentContextMenuToolbar.addAction(_translate( - "MainWindow", "Remove Star"), self.on_action_SentRemoveStar) + "MainWindow", "Unstar"), functools.partial(self.on_action_RemoveStar, "sent", self.ui.tableWidgetSent, self.loadSent)) # self.popMenuSent = QtGui.QMenu( self ) # self.popMenuSent.addAction( self.actionSentClipboard ) @@ -807,14 +808,14 @@ class MyForm(QtGui.QMainWindow): newItem.setFlags( QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) self.ui.tableWidgetSent.setItem(0, 3, newItem) - - newItem = QtGui.QTableWidgetItem(str(starred)) + #starred if starred == 1: iconStar = QtGui.QIcon(":/newPrefix/images/star1.png") + newItem = QtGui.QTableWidgetItem(u"\u200B") else: iconStar = QtGui.QIcon(":/newPrefix/images/star2.png") + newItem = QtGui.QTableWidgetItem() newItem.setIcon(iconStar) - newItem.setForeground(Qt.white) self.ui.tableWidgetSent.setItem(0, 4, newItem) self.ui.tableWidgetSent.sortItems(3, Qt.DescendingOrder) @@ -930,18 +931,14 @@ class MyForm(QtGui.QMainWindow): if not read: newItem.setFont(font) self.ui.tableWidgetInbox.setItem(0, 3, newItem) - - newItem = QtGui.QTableWidgetItem() + #starred if starred == 1: iconStar = QtGui.QIcon(":/newPrefix/images/star1.png") + newItem = QtGui.QTableWidgetItem(u"\u200B") else: iconStar = QtGui.QIcon(":/newPrefix/images/star2.png") - newItem.setData(Qt.UserRole, str(starred)) + newItem = QtGui.QTableWidgetItem() newItem.setIcon(iconStar) - newItem.setForeground(Qt.white) - - if not read: - newItem.setFont(font) self.ui.tableWidgetInbox.setItem(0, 4, newItem) self.ui.tableWidgetInbox.sortItems(3, Qt.DescendingOrder) @@ -2494,38 +2491,29 @@ class MyForm(QtGui.QMainWindow): content = content.replace('\n\n', '

') self.ui.textEditInboxMessage.setHtml(QtCore.QString(content)) - def on_action_InboxAddStar(self): - currentRow = self.ui.tableWidgetInbox.currentRow() - inventoryHashToAddStar = str(self.ui.tableWidgetInbox.item( - currentRow, 3).data(Qt.UserRole).toPyObject()) - sqlExecute('''UPDATE inbox SET starred=1 WHERE msgid=?''', inventoryHashToAddStar) + def on_action_AddStar(self, dbTableName, TableWidget, LoadFunction): - self.loadInbox() + for i in TableWidget.selectedItems()[0::TableWidget.columnCount()]: + selectedRowNumber = TableWidget.row(i) + inventoryHashToAddStar = str(TableWidget.item(selectedRowNumber, 3).data(Qt.UserRole).toPyObject()) + if dbTableName == "inbox": + sqlExecute('''UPDATE inbox SET starred=1 WHERE msgid=?''', inventoryHashToAddStar) + elif dbTableName == "sent": + sqlExecute('''UPDATE sent SET starred=1 WHERE ackdata=?''', inventoryHashToAddStar) - def on_action_InboxRemoveStar(self): - currentRow = self.ui.tableWidgetInbox.currentRow() - inventoryHashToRemoveStar = str(self.ui.tableWidgetInbox.item( - currentRow, 3).data(Qt.UserRole).toPyObject()) - sqlExecute('''UPDATE inbox SET starred=0 WHERE msgid=?''', inventoryHashToRemoveStar) + LoadFunction() - self.loadInbox() + def on_action_RemoveStar(self, dbTableName, TableWidget, LoadFunction): - def on_action_SentAddStar(self): - currentRow = self.ui.tableWidgetSent.currentRow() + for i in TableWidget.selectedItems()[0::TableWidget.columnCount()]: + selectedRowNumber = TableWidget.row(i) + inventoryHashToRemoveStar = str(TableWidget.item(selectedRowNumber, 3).data(Qt.UserRole).toPyObject()) + if dbTableName == "inbox": + sqlExecute('''UPDATE inbox SET starred=0 WHERE msgid=?''', inventoryHashToRemoveStar) + elif dbTableName == "sent": + sqlExecute('''UPDATE sent SET starred=0 WHERE ackdata=?''', inventoryHashToRemoveStar) - ackdataToAddStar = str(self.ui.tableWidgetSent.item( - currentRow, 3).data(Qt.UserRole).toPyObject()) - sqlExecute('''UPDATE sent SET starred=1 WHERE ackdata=?''', ackdataToAddStar) - - self.loadSent() - - def on_action_SentRemoveStar(self): - currentRow = self.ui.tableWidgetSent.currentRow() - ackdataToRemoveStar = str(self.ui.tableWidgetSent.item( - currentRow, 3).data(Qt.UserRole).toPyObject()) - sqlExecute('''UPDATE sent SET starred=0 WHERE ackdata=?''', ackdataToRemoveStar) - - self.loadSent() + LoadFunction() def on_action_InboxMarkUnread(self): font = QFont()