diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index ffba42c3..5cb90aae 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -29,6 +29,8 @@ import os from pyelliptic.openssl import OpenSSL import pickle import platform +import base64 + try: from PyQt4 import QtCore, QtGui @@ -57,6 +59,9 @@ class MyForm(QtGui.QMainWindow): self.ui = Ui_MainWindow() self.ui.setupUi(self) + #init attach array + self.attach=[] + # Ask the user if we may delete their old version 1 addresses if they # have any. configSections = shared.config.sections() @@ -543,6 +548,13 @@ class MyForm(QtGui.QMainWindow): "itemChanged(QTableWidgetItem *)"), self.tableWidgetSubscriptionsItemChanged) QtCore.QObject.connect(self.ui.tableWidgetInbox, QtCore.SIGNAL( "itemSelectionChanged ()"), self.tableWidgetInboxItemClicked) + + QtCore.QObject.connect(self.ui.textEditInboxMessage, + QtCore.SIGNAL("anchorClicked(const QUrl&)"), self.openURL) + + QtCore.QObject.connect(self.ui.AddAttach, QtCore.SIGNAL("clicked()"), self.AddAttach) + + QtCore.QObject.connect(self.ui.tableWidgetSent, QtCore.SIGNAL( "itemSelectionChanged ()"), self.tableWidgetSentItemClicked) @@ -615,6 +627,43 @@ class MyForm(QtGui.QMainWindow): # The most recent broadcast newBroadcastItem = None + + def openURL(self,link): + print "jest link" + + def AddAttach(self): + attachFile=QtGui.QFileDialog.getOpenFileName(self, 'Open file', '') + f = open(attachFile, 'r') + + + attachFile=str(attachFile) + AFile = attachFile.split("/")[-1] + + ext = AFile.split(".")[-1] + + ext = ext.lower() + + with f: + data = f.read() + + if ext == 'jpg' or ext == 'png' or ext == 'gif': + if ext == 'jpg' or ext == 'jpeg': + t='image/jpeg' + else: + t='image/'+ext + else: + t='application/octet-stream;' + + #encode base64 file + dataenc = base64.b64encode(data) + content = "\nContent-Type: image/pjpeg;" + content+="name=\""+AFile+"\"" + content+="\nContent-Transfer-Encoding: base64\n" + content+="Content-Disposition: attachment; filename=\""+AFile+"\"\n\n" + content+=dataenc + self.ui.attachmentListSend.addItem(AFile) + self.attach.append(content) + # show the application window def appIndicatorShow(self): if self.actionShow is None: @@ -1277,7 +1326,13 @@ class MyForm(QtGui.QMainWindow): fromAddress = str(self.ui.labelFrom.text()) subject = str(self.ui.lineEditSubject.text().toUtf8()) message = str( - self.ui.textEditMessage.document().toPlainText().toUtf8()) + self.ui.textEditMessage.document().toPlainText().toUtf8()) + message+=str("\n".join(self.attach)+"\n") + self.attach=[] + #self.ui.attachmentListSend + + + if self.ui.radioButtonSpecific.isChecked(): # To send a message to specific people (rather than broadcast) toAddressesList = [s.strip() for s in toAddresses.replace(',', ';').split(';')] diff --git a/src/bitmessageqt/bitmessageui.py b/src/bitmessageqt/bitmessageui.py index 1186e814..9ebbe4f5 100644 --- a/src/bitmessageqt/bitmessageui.py +++ b/src/bitmessageqt/bitmessageui.py @@ -2,8 +2,8 @@ # Form implementation generated from reading ui file 'bitmessageui.ui' # -# Created: Thu Jun 13 01:02:50 2013 -# by: PyQt4 UI code generator 4.10.1 +# Created: Fri Jul 12 22:39:30 2013 +# by: PyQt4 UI code generator 4.9.3 # # WARNING! All changes made in this file will be lost! @@ -12,21 +12,12 @@ from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: - def _fromUtf8(s): - return s - -try: - _encoding = QtGui.QApplication.UnicodeUTF8 - def _translate(context, text, disambig): - return QtGui.QApplication.translate(context, text, disambig, _encoding) -except AttributeError: - def _translate(context, text, disambig): - return QtGui.QApplication.translate(context, text, disambig) + _fromUtf8 = lambda s: s class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) - MainWindow.resize(795, 561) + MainWindow.resize(835, 578) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/can-icon-24px.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) MainWindow.setWindowIcon(icon) @@ -55,6 +46,11 @@ class Ui_MainWindow(object): self.verticalLayout_2 = QtGui.QVBoxLayout(self.inbox) self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) self.tableWidgetInbox = QtGui.QTableWidget(self.inbox) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.tableWidgetInbox.sizePolicy().hasHeightForWidth()) + self.tableWidgetInbox.setSizePolicy(sizePolicy) self.tableWidgetInbox.setAlternatingRowColors(True) self.tableWidgetInbox.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) self.tableWidgetInbox.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) @@ -79,8 +75,14 @@ class Ui_MainWindow(object): self.tableWidgetInbox.verticalHeader().setVisible(False) self.tableWidgetInbox.verticalHeader().setDefaultSectionSize(26) self.verticalLayout_2.addWidget(self.tableWidgetInbox) - self.textEditInboxMessage = QtGui.QTextEdit(self.inbox) + self.textEditInboxMessage = QtGui.QTextBrowser(self.inbox) + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.textEditInboxMessage.sizePolicy().hasHeightForWidth()) + self.textEditInboxMessage.setSizePolicy(sizePolicy) self.textEditInboxMessage.setBaseSize(QtCore.QSize(0, 500)) + self.textEditInboxMessage.setOpenLinks(False) self.textEditInboxMessage.setObjectName(_fromUtf8("textEditInboxMessage")) self.verticalLayout_2.addWidget(self.textEditInboxMessage) icon1 = QtGui.QIcon() @@ -90,56 +92,44 @@ class Ui_MainWindow(object): self.send.setObjectName(_fromUtf8("send")) self.gridLayout_2 = QtGui.QGridLayout(self.send) self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2")) - self.pushButtonLoadFromAddressBook = QtGui.QPushButton(self.send) - font = QtGui.QFont() - font.setPointSize(7) - self.pushButtonLoadFromAddressBook.setFont(font) - self.pushButtonLoadFromAddressBook.setObjectName(_fromUtf8("pushButtonLoadFromAddressBook")) - self.gridLayout_2.addWidget(self.pushButtonLoadFromAddressBook, 3, 2, 1, 2) self.label_4 = QtGui.QLabel(self.send) self.label_4.setObjectName(_fromUtf8("label_4")) - self.gridLayout_2.addWidget(self.label_4, 5, 0, 1, 1) + self.gridLayout_2.addWidget(self.label_4, 10, 0, 1, 1) self.comboBoxSendFrom = QtGui.QComboBox(self.send) self.comboBoxSendFrom.setMinimumSize(QtCore.QSize(300, 0)) self.comboBoxSendFrom.setObjectName(_fromUtf8("comboBoxSendFrom")) self.gridLayout_2.addWidget(self.comboBoxSendFrom, 2, 1, 1, 1) self.label_3 = QtGui.QLabel(self.send) self.label_3.setObjectName(_fromUtf8("label_3")) - self.gridLayout_2.addWidget(self.label_3, 4, 0, 1, 1) - self.labelFrom = QtGui.QLabel(self.send) - self.labelFrom.setText(_fromUtf8("")) - self.labelFrom.setObjectName(_fromUtf8("labelFrom")) - self.gridLayout_2.addWidget(self.labelFrom, 2, 2, 1, 3) + self.gridLayout_2.addWidget(self.label_3, 9, 0, 1, 1) self.radioButtonSpecific = QtGui.QRadioButton(self.send) self.radioButtonSpecific.setChecked(True) self.radioButtonSpecific.setObjectName(_fromUtf8("radioButtonSpecific")) self.gridLayout_2.addWidget(self.radioButtonSpecific, 0, 1, 1, 1) self.lineEditTo = QtGui.QLineEdit(self.send) self.lineEditTo.setObjectName(_fromUtf8("lineEditTo")) - self.gridLayout_2.addWidget(self.lineEditTo, 3, 1, 1, 1) + self.gridLayout_2.addWidget(self.lineEditTo, 6, 1, 1, 1) self.textEditMessage = QtGui.QTextEdit(self.send) self.textEditMessage.setObjectName(_fromUtf8("textEditMessage")) - self.gridLayout_2.addWidget(self.textEditMessage, 5, 1, 2, 5) + self.gridLayout_2.addWidget(self.textEditMessage, 10, 1, 2, 5) + self.radioButtonBroadcast = QtGui.QRadioButton(self.send) + self.radioButtonBroadcast.setObjectName(_fromUtf8("radioButtonBroadcast")) + self.gridLayout_2.addWidget(self.radioButtonBroadcast, 1, 1, 1, 3) self.label = QtGui.QLabel(self.send) self.label.setObjectName(_fromUtf8("label")) - self.gridLayout_2.addWidget(self.label, 3, 0, 1, 1) + self.gridLayout_2.addWidget(self.label, 6, 0, 1, 1) self.label_2 = QtGui.QLabel(self.send) self.label_2.setObjectName(_fromUtf8("label_2")) self.gridLayout_2.addWidget(self.label_2, 2, 0, 1, 1) spacerItem = QtGui.QSpacerItem(20, 297, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.gridLayout_2.addItem(spacerItem, 6, 0, 1, 1) - self.radioButtonBroadcast = QtGui.QRadioButton(self.send) - self.radioButtonBroadcast.setObjectName(_fromUtf8("radioButtonBroadcast")) - self.gridLayout_2.addWidget(self.radioButtonBroadcast, 1, 1, 1, 3) + self.gridLayout_2.addItem(spacerItem, 11, 0, 1, 1) self.lineEditSubject = QtGui.QLineEdit(self.send) self.lineEditSubject.setText(_fromUtf8("")) self.lineEditSubject.setObjectName(_fromUtf8("lineEditSubject")) - self.gridLayout_2.addWidget(self.lineEditSubject, 4, 1, 1, 5) - spacerItem1 = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.gridLayout_2.addItem(spacerItem1, 3, 4, 1, 1) + self.gridLayout_2.addWidget(self.lineEditSubject, 9, 1, 1, 5) self.pushButtonSend = QtGui.QPushButton(self.send) self.pushButtonSend.setObjectName(_fromUtf8("pushButtonSend")) - self.gridLayout_2.addWidget(self.pushButtonSend, 7, 5, 1, 1) + self.gridLayout_2.addWidget(self.pushButtonSend, 12, 5, 1, 1) self.labelSendBroadcastWarning = QtGui.QLabel(self.send) self.labelSendBroadcastWarning.setEnabled(True) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Ignored, QtGui.QSizePolicy.Preferred) @@ -149,7 +139,26 @@ class Ui_MainWindow(object): self.labelSendBroadcastWarning.setSizePolicy(sizePolicy) self.labelSendBroadcastWarning.setIndent(-1) self.labelSendBroadcastWarning.setObjectName(_fromUtf8("labelSendBroadcastWarning")) - self.gridLayout_2.addWidget(self.labelSendBroadcastWarning, 7, 1, 1, 4) + self.gridLayout_2.addWidget(self.labelSendBroadcastWarning, 12, 1, 1, 4) + self.pushButtonLoadFromAddressBook = QtGui.QPushButton(self.send) + font = QtGui.QFont() + font.setPointSize(7) + self.pushButtonLoadFromAddressBook.setFont(font) + self.pushButtonLoadFromAddressBook.setObjectName(_fromUtf8("pushButtonLoadFromAddressBook")) + self.gridLayout_2.addWidget(self.pushButtonLoadFromAddressBook, 6, 2, 1, 2) + self.attachmentListSend = QtGui.QListWidget(self.send) + self.attachmentListSend.setObjectName(_fromUtf8("attachmentListSend")) + self.gridLayout_2.addWidget(self.attachmentListSend, 0, 4, 4, 2) + self.DelAttach = QtGui.QPushButton(self.send) + self.DelAttach.setObjectName(_fromUtf8("DelAttach")) + self.gridLayout_2.addWidget(self.DelAttach, 6, 5, 1, 1) + self.AddAttach = QtGui.QPushButton(self.send) + self.AddAttach.setObjectName(_fromUtf8("AddAttach")) + self.gridLayout_2.addWidget(self.AddAttach, 6, 4, 1, 1) + self.labelFrom = QtGui.QLabel(self.send) + self.labelFrom.setText(_fromUtf8("")) + self.labelFrom.setObjectName(_fromUtf8("labelFrom")) + self.gridLayout_2.addWidget(self.labelFrom, 3, 1, 1, 1) icon2 = QtGui.QIcon() icon2.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/send.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.tabWidget.addTab(self.send, icon2, _fromUtf8("")) @@ -195,8 +204,8 @@ class Ui_MainWindow(object): self.pushButtonNewAddress = QtGui.QPushButton(self.youridentities) self.pushButtonNewAddress.setObjectName(_fromUtf8("pushButtonNewAddress")) self.gridLayout_3.addWidget(self.pushButtonNewAddress, 0, 0, 1, 1) - spacerItem2 = QtGui.QSpacerItem(689, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.gridLayout_3.addItem(spacerItem2, 0, 1, 1, 1) + spacerItem1 = QtGui.QSpacerItem(689, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.gridLayout_3.addItem(spacerItem1, 0, 1, 1, 1) self.tableWidgetYourIdentities = QtGui.QTableWidget(self.youridentities) self.tableWidgetYourIdentities.setFrameShadow(QtGui.QFrame.Sunken) self.tableWidgetYourIdentities.setLineWidth(1) @@ -239,8 +248,8 @@ class Ui_MainWindow(object): self.pushButtonAddSubscription = QtGui.QPushButton(self.subscriptions) self.pushButtonAddSubscription.setObjectName(_fromUtf8("pushButtonAddSubscription")) self.gridLayout_4.addWidget(self.pushButtonAddSubscription, 1, 0, 1, 1) - spacerItem3 = QtGui.QSpacerItem(689, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.gridLayout_4.addItem(spacerItem3, 1, 1, 1, 1) + spacerItem2 = QtGui.QSpacerItem(689, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.gridLayout_4.addItem(spacerItem2, 1, 1, 1, 1) self.tableWidgetSubscriptions = QtGui.QTableWidget(self.subscriptions) self.tableWidgetSubscriptions.setAlternatingRowColors(True) self.tableWidgetSubscriptions.setSelectionMode(QtGui.QAbstractItemView.SingleSelection) @@ -273,8 +282,8 @@ class Ui_MainWindow(object): self.pushButtonAddAddressBook = QtGui.QPushButton(self.addressbook) self.pushButtonAddAddressBook.setObjectName(_fromUtf8("pushButtonAddAddressBook")) self.gridLayout_5.addWidget(self.pushButtonAddAddressBook, 1, 0, 1, 1) - spacerItem4 = QtGui.QSpacerItem(689, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.gridLayout_5.addItem(spacerItem4, 1, 1, 1, 1) + spacerItem3 = QtGui.QSpacerItem(689, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.gridLayout_5.addItem(spacerItem3, 1, 1, 1, 1) self.tableWidgetAddressBook = QtGui.QTableWidget(self.addressbook) self.tableWidgetAddressBook.setAlternatingRowColors(True) self.tableWidgetAddressBook.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) @@ -309,8 +318,8 @@ class Ui_MainWindow(object): self.pushButtonAddBlacklist = QtGui.QPushButton(self.blackwhitelist) self.pushButtonAddBlacklist.setObjectName(_fromUtf8("pushButtonAddBlacklist")) self.gridLayout_6.addWidget(self.pushButtonAddBlacklist, 2, 0, 1, 1) - spacerItem5 = QtGui.QSpacerItem(689, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.gridLayout_6.addItem(spacerItem5, 2, 1, 1, 1) + spacerItem4 = QtGui.QSpacerItem(689, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.gridLayout_6.addItem(spacerItem4, 2, 1, 1, 1) self.tableWidgetBlacklist = QtGui.QTableWidget(self.blackwhitelist) self.tableWidgetBlacklist.setAlternatingRowColors(True) self.tableWidgetBlacklist.setSelectionMode(QtGui.QAbstractItemView.SingleSelection) @@ -392,7 +401,7 @@ class Ui_MainWindow(object): self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) - self.menubar.setGeometry(QtCore.QRect(0, 0, 795, 18)) + self.menubar.setGeometry(QtCore.QRect(0, 0, 835, 25)) self.menubar.setObjectName(_fromUtf8("menubar")) self.menuFile = QtGui.QMenu(self.menubar) self.menuFile.setObjectName(_fromUtf8("menuFile")) @@ -466,106 +475,98 @@ class Ui_MainWindow(object): MainWindow.setTabOrder(self.tableWidgetConnectionCount, self.pushButtonStatusIcon) def retranslateUi(self, MainWindow): - MainWindow.setWindowTitle(_translate("MainWindow", "Bitmessage", None)) + MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Bitmessage", None, QtGui.QApplication.UnicodeUTF8)) self.tableWidgetInbox.setSortingEnabled(True) item = self.tableWidgetInbox.horizontalHeaderItem(0) - item.setText(_translate("MainWindow", "To", None)) + item.setText(QtGui.QApplication.translate("MainWindow", "To", None, QtGui.QApplication.UnicodeUTF8)) item = self.tableWidgetInbox.horizontalHeaderItem(1) - item.setText(_translate("MainWindow", "From", None)) + item.setText(QtGui.QApplication.translate("MainWindow", "From", None, QtGui.QApplication.UnicodeUTF8)) item = self.tableWidgetInbox.horizontalHeaderItem(2) - item.setText(_translate("MainWindow", "Subject", None)) + item.setText(QtGui.QApplication.translate("MainWindow", "Subject", None, QtGui.QApplication.UnicodeUTF8)) item = self.tableWidgetInbox.horizontalHeaderItem(3) - item.setText(_translate("MainWindow", "Received", None)) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.inbox), _translate("MainWindow", "Inbox", None)) - self.pushButtonLoadFromAddressBook.setText(_translate("MainWindow", "Load from Address book", None)) - self.label_4.setText(_translate("MainWindow", "Message:", None)) - self.label_3.setText(_translate("MainWindow", "Subject:", None)) - self.radioButtonSpecific.setText(_translate("MainWindow", "Send to one or more specific people", None)) - self.textEditMessage.setHtml(_translate("MainWindow", "\n" + item.setText(QtGui.QApplication.translate("MainWindow", "Received", None, QtGui.QApplication.UnicodeUTF8)) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.inbox), QtGui.QApplication.translate("MainWindow", "Inbox", None, QtGui.QApplication.UnicodeUTF8)) + self.label_4.setText(QtGui.QApplication.translate("MainWindow", "Message:", None, QtGui.QApplication.UnicodeUTF8)) + self.label_3.setText(QtGui.QApplication.translate("MainWindow", "Subject:", None, QtGui.QApplication.UnicodeUTF8)) + self.radioButtonSpecific.setText(QtGui.QApplication.translate("MainWindow", "Send to one or more specific people", None, QtGui.QApplication.UnicodeUTF8)) + self.textEditMessage.setHtml(QtGui.QApplication.translate("MainWindow", "\n" "
\n" -"