diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py
index 7125cb60..ba0ce42b 100644
--- a/src/bitmessageqt/__init__.py
+++ b/src/bitmessageqt/__init__.py
@@ -39,6 +39,7 @@ from debug import logger
import subprocess
import datetime
from helper_sql import *
+import base64
try:
from PyQt4 import QtCore, QtGui
@@ -177,7 +178,9 @@ class MyForm(QtGui.QMainWindow):
str_broadcast_subscribers = '[Broadcast subscribers]'
str_chan = '[chan]'
-
+
+ images_dir=os.path.expanduser("~")
+
def init_file_menu(self):
QtCore.QObject.connect(self.ui.actionExit, QtCore.SIGNAL(
"triggered()"), self.quit)
@@ -204,6 +207,8 @@ class MyForm(QtGui.QMainWindow):
"clicked()"), self.click_pushButtonAddSubscription)
QtCore.QObject.connect(self.ui.pushButtonAddBlacklist, QtCore.SIGNAL(
"clicked()"), self.click_pushButtonAddBlacklist)
+ QtCore.QObject.connect(self.ui.pushButtonAddImage, QtCore.SIGNAL(
+ "clicked()"), self.click_pushButtonAddImage)
QtCore.QObject.connect(self.ui.pushButtonSend, QtCore.SIGNAL(
"clicked()"), self.click_pushButtonSend)
QtCore.QObject.connect(self.ui.pushButtonLoadFromAddressBook,
@@ -445,7 +450,7 @@ class MyForm(QtGui.QMainWindow):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
-
+
# Ask the user if we may delete their old version 1 addresses if they
# have any.
configSections = shared.config.sections()
@@ -1810,6 +1815,37 @@ class MyForm(QtGui.QMainWindow):
newItem.setTextColor(QtGui.QColor(128, 128, 128))
self.ui.tableWidgetSubscriptions.setItem(0, 1, newItem)
+ def click_pushButtonAddImage(self):
+ file_name=QtGui.QFileDialog.getOpenFileName(
+ self,"Select an image",self.images_dir,"Image (*.png *.jpg *.jepg *.gif)")
+ if file_name.isNull(): # Operation was canceled
+ return
+
+ file_info=QFileInfo(file_name)
+ self.images_dir=file_info.dir().absolutePath() #coz os.path.dirname does not support unicode
+ file_ext=file_info.suffix() #get an extension
+
+ image=QImage()
+ if image.load(file_name):
+ if image.height()*image.width()>300*300:
+ #Do we need to resize it?
+ r=QtGui.QMessageBox.question(
+ self,"Image","This image is to big.\nShould it be scaled?",
+ QtGui.QMessageBox.Yes,QtGui.QMessageBox.No) # Why I cannot put Yes button before No button? That is sux
+ if r==QtGui.QMessageBox.Yes:
+ if image.height()>=image.width():
+ image=image.scaledToHeight(300)
+ else:
+ image=image.scaledToWidth(300)
+
+ buf=QBuffer()
+ image.save(buf,"PNG")
+ encoded_data=buf.buffer().toBase64().data()
+ html_data=""
+ self.ui.textEditMessage.insertPlainText("\n"+html_data)
+ else:
+ QtGui.QMessageBox.information(self,"Error","Could not open an image")
+
def click_pushButtonSend(self):
self.statusBar().showMessage('')
toAddresses = str(self.ui.lineEditTo.text())
diff --git a/src/bitmessageqt/bitmessageui.py b/src/bitmessageqt/bitmessageui.py
index b80367dd..68280d8d 100644
--- a/src/bitmessageqt/bitmessageui.py
+++ b/src/bitmessageqt/bitmessageui.py
@@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'bitmessageui.ui'
#
-# Created: Sat Nov 2 18:01:09 2013
+# Created: Sat Apr 5 16:04:46 2014
# by: PyQt4 UI code generator 4.10
#
# WARNING! All changes made in this file will be lost!
@@ -109,12 +109,6 @@ 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, 1)
self.pushButtonFetchNamecoinID = QtGui.QPushButton(self.send)
font = QtGui.QFont()
font.setPointSize(7)
@@ -145,14 +139,20 @@ class Ui_MainWindow(object):
self.textEditMessage = QtGui.QTextEdit(self.send)
self.textEditMessage.setObjectName(_fromUtf8("textEditMessage"))
self.gridLayout_2.addWidget(self.textEditMessage, 5, 1, 2, 5)
+ spacerItem = QtGui.QSpacerItem(20, 297, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
+ self.gridLayout_2.addItem(spacerItem, 6, 0, 1, 1)
self.label = QtGui.QLabel(self.send)
self.label.setObjectName(_fromUtf8("label"))
self.gridLayout_2.addWidget(self.label, 3, 0, 1, 1)
+ 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, 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)
@@ -164,7 +164,7 @@ class Ui_MainWindow(object):
self.gridLayout_2.addItem(spacerItem1, 3, 4, 1, 1)
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, 8, 5, 1, 1)
self.labelSendBroadcastWarning = QtGui.QLabel(self.send)
self.labelSendBroadcastWarning.setEnabled(True)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Ignored, QtGui.QSizePolicy.Preferred)
@@ -174,7 +174,10 @@ 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, 8, 1, 1, 4)
+ self.pushButtonAddImage = QtGui.QPushButton(self.send)
+ self.pushButtonAddImage.setObjectName(_fromUtf8("pushButtonAddImage"))
+ self.gridLayout_2.addWidget(self.pushButtonAddImage, 7, 5, 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(""))
@@ -439,7 +442,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, 885, 27))
+ self.menubar.setGeometry(QtCore.QRect(0, 0, 885, 22))
self.menubar.setObjectName(_fromUtf8("menubar"))
self.menuFile = QtGui.QMenu(self.menubar)
self.menuFile.setObjectName(_fromUtf8("menuFile"))
@@ -501,7 +504,7 @@ class Ui_MainWindow(object):
self.menubar.addAction(self.menuHelp.menuAction())
self.retranslateUi(MainWindow)
- self.tabWidget.setCurrentIndex(0)
+ self.tabWidget.setCurrentIndex(1)
QtCore.QObject.connect(self.radioButtonSpecific, QtCore.SIGNAL(_fromUtf8("toggled(bool)")), self.lineEditTo.setEnabled)
QtCore.QObject.connect(self.radioButtonSpecific, QtCore.SIGNAL(_fromUtf8("clicked(bool)")), self.labelSendBroadcastWarning.hide)
QtCore.QObject.connect(self.radioButtonBroadcast, QtCore.SIGNAL(_fromUtf8("clicked()")), self.labelSendBroadcastWarning.show)
@@ -549,7 +552,6 @@ class Ui_MainWindow(object):
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.pushButtonFetchNamecoinID.setText(_translate("MainWindow", "Fetch Namecoin ID", None))
self.label_4.setText(_translate("MainWindow", "Message:", None))
self.label_3.setText(_translate("MainWindow", "Subject:", None))
@@ -557,13 +559,15 @@ class Ui_MainWindow(object):
self.textEditMessage.setHtml(_translate("MainWindow", "\n"
"