From da7c1514649611074e8bfc4ad2c8ab776d22670b Mon Sep 17 00:00:00 2001 From: Justus Ranvier Date: Tue, 4 Jun 2013 15:13:16 -0500 Subject: [PATCH 1/4] Update Makefile to correct sandbox violations when built via Portage (Gentoo) --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 6f415786..6485c2c9 100755 --- a/Makefile +++ b/Makefile @@ -34,7 +34,7 @@ install: install -m 644 src/pyelliptic/*.py $(DEST_APP)/pyelliptic install -m 644 src/socks/*.py $(DEST_APP)/socks install -m 644 src/bitmessageqt/*.py $(DEST_APP)/bitmessageqt - install -m 755 debian/pybm /usr/bin/pybitmessage + install -m 755 debian/pybm $(DESTDIR)/usr/bin/$(APP) install -m 644 desktop/$(APP).desktop $(DEST_SHARE)/applications/$(APP).desktop install -m 644 src/images/can-icon-24px.png $(DEST_SHARE)/icons/hicolor/24x24/apps/$(APP).png -- 2.45.1 From 354c82d85b68ca155a5ae83b3f04b602e77505a4 Mon Sep 17 00:00:00 2001 From: Justus Ranvier Date: Tue, 4 Jun 2013 15:21:53 -0500 Subject: [PATCH 2/4] Ensure $(DESTDIR)/usr/bin exists --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 6485c2c9..d49f63fc 100755 --- a/Makefile +++ b/Makefile @@ -11,6 +11,7 @@ source: tar -cvzf ../$(APP)_$(VERSION).orig.tar.gz ../$(APP)-$(VERSION) --exclude-vcs install: + mkdir -m 755 -p $(DESTDIR)/usr/bin mkdir -m 755 -p $(DEST_APP) mkdir -m 755 -p $(DEST_SHARE)/applications mkdir -m 755 -p $(DEST_APP)/images -- 2.45.1 From 41792697b63dfd1de242ac04d691e1ea01708b12 Mon Sep 17 00:00:00 2001 From: Justus Ranvier Date: Tue, 4 Jun 2013 15:32:14 -0500 Subject: [PATCH 3/4] Add missing trailing semicolons to pybitmessage.desktop --- desktop/pybitmessage.desktop | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/desktop/pybitmessage.desktop b/desktop/pybitmessage.desktop index 363908dd..2b1b6902 100644 --- a/desktop/pybitmessage.desktop +++ b/desktop/pybitmessage.desktop @@ -7,12 +7,12 @@ Comment=Send encrypted messages to another person or to many subscribers Exec=pybitmessage %U Icon=pybitmessage Terminal=false -Categories=Network;Email;Application -Keywords=Email;E-mail;Newsgroup;Messaging +Categories=Network;Email;Application; +Keywords=Email;E-mail;Newsgroup;Messaging; X-MessagingMenu-UsesChatSection=true X-Ubuntu-Gettext-Domain=pybitmessage -Actions=Send;Subscribe;AddressBook +Actions=Send;Subscribe;AddressBook; [Desktop Action Send] Name=Send @@ -27,4 +27,4 @@ OnlyShowIn=Unity; [Desktop Action AddressBook] Name=Address Book Exec=pybitmessage -a -OnlyShowIn=Unity; \ No newline at end of file +OnlyShowIn=Unity; -- 2.45.1 From b6113369c6a209367b7bf690e334cd95d05f99dd Mon Sep 17 00:00:00 2001 From: Jonathan Warren Date: Wed, 5 Jun 2013 17:15:26 -0400 Subject: [PATCH 4/4] Remove inbox item from GUI when using API command trashMessage --- src/bitmessagemain.py | 12 ++---------- src/bitmessageqt/__init__.py | 10 ++++++++++ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/bitmessagemain.py b/src/bitmessagemain.py index c12be4d3..e53fee3a 100755 --- a/src/bitmessagemain.py +++ b/src/bitmessagemain.py @@ -483,20 +483,12 @@ class receiveDataThread(threading.Thread): hash, = row if hash not in self.objectsOfWhichThisRemoteNodeIsAlreadyAware: bigInvList[hash] = 0 - else: - shared.printLock.acquire() - print 'Not including an object hash in a big inv message because the remote node is already aware of it.'#This line is here to check that this feature is working. - shared.printLock.release() #We also have messages in our inventory in memory (which is a python dictionary). Let's fetch those too. for hash, storedValue in shared.inventory.items(): if hash not in self.objectsOfWhichThisRemoteNodeIsAlreadyAware: objectType, streamNumber, payload, receivedTime = storedValue if streamNumber == self.streamNumber and receivedTime > int(time.time())-maximumAgeOfObjectsThatIAdvertiseToOthers: bigInvList[hash] = 0 - else: - shared.printLock.acquire() - print 'Not including an object hash in a big inv message because the remote node is already aware of it.'#This line is here to check that this feature is working. - shared.printLock.release() numberOfObjectsInInvMessage = 0 payload = '' #Now let us start appending all of these hashes together. They will be sent out in a big inv message to our new peer. @@ -3692,8 +3684,8 @@ class MySimpleXMLRPCRequestHandler(SimpleXMLRPCRequestHandler): shared.sqlReturnQueue.get() shared.sqlSubmitQueue.put('commit') shared.sqlLock.release() - shared.UISignalQueue.put(('updateStatusBar','Per API: Trashed message (assuming message existed). UI not updated.')) - return 'Trashed message (assuming message existed). UI not updated. To double check, run getAllInboxMessages to see that the message disappeared, or restart Bitmessage and look in the normal Bitmessage GUI.' + shared.UISignalQueue.put(('removeInboxRowByMsgid',msgid)) + return 'Trashed message (assuming message existed).' elif method == 'sendMessage': if len(params) == 0: return 'API Error 0000: I need parameters!' diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index 435ebec5..bc971563 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -427,6 +427,7 @@ class MyForm(QtGui.QMainWindow): QtCore.QObject.connect(self.UISignalThread, QtCore.SIGNAL("setStatusIcon(PyQt_PyObject)"), self.setStatusIcon) QtCore.QObject.connect(self.UISignalThread, QtCore.SIGNAL("rerenderInboxFromLabels()"), self.rerenderInboxFromLabels) QtCore.QObject.connect(self.UISignalThread, QtCore.SIGNAL("rerenderSubscriptions()"), self.rerenderSubscriptions) + QtCore.QObject.connect(self.UISignalThread, QtCore.SIGNAL("removeInboxRowByMsgid(PyQt_PyObject)"), self.removeInboxRowByMsgid) self.UISignalThread.start() #Below this point, it would be good if all of the necessary global data structures were initialized. @@ -937,6 +938,13 @@ class MyForm(QtGui.QMainWindow): #self.ui.tableWidgetSent.item(i,3).setText(unicode(textToDisplay,'utf-8')) self.ui.tableWidgetSent.item(i,3).setText(textToDisplay) + def removeInboxRowByMsgid(self,msgid):#msgid and inventoryHash are the same thing + for i in range(self.ui.tableWidgetInbox.rowCount()): + if msgid == str(self.ui.tableWidgetInbox.item(i,3).data(Qt.UserRole).toPyObject()): + self.statusBar().showMessage('Message trashed') + self.ui.tableWidgetInbox.removeRow(i) + break + def rerenderInboxFromLabels(self): for i in range(self.ui.tableWidgetInbox.rowCount()): addressToLookup = str(self.ui.tableWidgetInbox.item(i,1).data(Qt.UserRole).toPyObject()) @@ -2291,6 +2299,8 @@ class UISignaler(QThread): self.emit(SIGNAL("rerenderInboxFromLabels()")) elif command == 'rerenderSubscriptions': self.emit(SIGNAL("rerenderSubscriptions()")) + elif command == 'removeInboxRowByMsgid': + self.emit(SIGNAL("removeInboxRowByMsgid(PyQt_PyObject)"),data) else: sys.stderr.write('Command sent to UISignaler not recognized: %s\n' % command) -- 2.45.1