diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py
index 8ad29063..bd229fe8 100644
--- a/src/bitmessageqt/__init__.py
+++ b/src/bitmessageqt/__init__.py
@@ -128,6 +128,8 @@ class MyForm(QtGui.QMainWindow):
"triggered()"), self.click_actionRegenerateDeterministicAddresses)
QtCore.QObject.connect(self.ui.actionJoinChan, QtCore.SIGNAL(
"triggered()"), self.click_actionJoinChan) # also used for creating chans.
+ QtCore.QObject.connect(self.ui.pushButtonJoinCreateChan, QtCore.SIGNAL(
+ "clicked()"), self.click_actionJoinChan)
QtCore.QObject.connect(self.ui.pushButtonNewAddress, QtCore.SIGNAL(
"clicked()"), self.click_NewAddressDialog)
QtCore.QObject.connect(self.ui.comboBoxSendFrom, QtCore.SIGNAL(
@@ -189,31 +191,34 @@ class MyForm(QtGui.QMainWindow):
# Popup menu for the Your Identities tab
self.ui.addressContextMenuToolbar = QtGui.QToolBar()
# Actions
- self.actionNew = self.ui.addressContextMenuToolbar.addAction(_translate(
- "MainWindow", "New"), self.on_action_YourIdentitiesNew)
+ self.actionNewAddress = self.ui.addressContextMenuToolbar.addAction(_translate(
+ "MainWindow", "Create new Address"), self.on_action_YourIdentitiesNewAddress)
+ self.actionNewChan = self.ui.addressContextMenuToolbar.addAction(_translate(
+ "MainWindow", "Join / Create Chan"), self.on_action_YourIdentitiesNewChan)
self.actionEnable = self.ui.addressContextMenuToolbar.addAction(_translate(
"MainWindow", "Enable"), self.on_action_YourIdentitiesEnable)
self.actionDisable = self.ui.addressContextMenuToolbar.addAction(_translate(
"MainWindow", "Disable"), self.on_action_YourIdentitiesDisable)
self.actionClipboard = self.ui.addressContextMenuToolbar.addAction(_translate(
"MainWindow", "Copy address to clipboard"), self.on_action_YourIdentitiesClipboard)
- self.actionSendToChan = self.ui.addressContextMenuToolbar.addAction(_translate(
- "MainWindow", "Send message to this chan"), self.on_action_YourIdentitiesSendToChan)
+ self.actionYourIdentitiesSendToAddress = self.ui.addressContextMenuToolbar.addAction(_translate(
+ "MainWindow", "Send message to this address"), self.on_action_YourIdentitiesSendToAddress)
self.actionSpecialAddressBehavior = self.ui.addressContextMenuToolbar.addAction(_translate(
"MainWindow", "Special address behavior..."), self.on_action_SpecialAddressBehaviorDialog)
self.ui.tableWidgetYourIdentities.setContextMenuPolicy(
QtCore.Qt.CustomContextMenu)
self.connect(self.ui.tableWidgetYourIdentities, QtCore.SIGNAL(
'customContextMenuRequested(const QPoint&)'), self.on_context_menuYourIdentities)
- self.popMenu = QtGui.QMenu(self)
- self.popMenu.addAction(self.actionNew)
- self.popMenu.addSeparator()
- self.popMenu.addAction(self.actionClipboard)
- self.popMenu.addAction(self.actionSendToChan)
- self.popMenu.addSeparator()
- self.popMenu.addAction(self.actionEnable)
- self.popMenu.addAction(self.actionDisable)
- self.popMenu.addAction(self.actionSpecialAddressBehavior)
+ self.popMenuIdentities = QtGui.QMenu(self)
+ self.popMenuIdentities.addAction(self.actionNewAddress)
+ self.popMenuIdentities.addAction(self.actionNewChan)
+ self.popMenuIdentities.addSeparator()
+ self.popMenuIdentities.addAction(self.actionClipboard)
+ self.popMenuIdentities.addAction(self.actionYourIdentitiesSendToAddress)
+ self.popMenuIdentities.addSeparator()
+ self.popMenuIdentities.addAction(self.actionEnable)###
+ self.popMenuIdentities.addAction(self.actionDisable)
+ self.popMenuIdentities.addAction(self.actionSpecialAddressBehavior)
# Popup menu for the Address Book page
self.ui.addressBookContextMenuToolbar = QtGui.QToolBar()
@@ -326,6 +331,7 @@ class MyForm(QtGui.QMainWindow):
QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
if shared.safeConfigGetBoolean(addressInKeysFile, 'chan'):
newItem.setTextColor(QtGui.QColor(216, 119, 0)) # orange
+
if not isEnabled:
newItem.setTextColor(QtGui.QColor(128, 128, 128))
if shared.safeConfigGetBoolean(addressInKeysFile, 'mailinglist'):
@@ -2537,11 +2543,16 @@ class MyForm(QtGui.QMainWindow):
shared.workerQueue.put(('sendmessage', ''))
def on_action_SentClipboard(self):
- currentRow = self.ui.tableWidgetSent.currentRow()
- addressAtCurrentRow = str(self.ui.tableWidgetSent.item(
- currentRow, 0).data(Qt.UserRole).toPyObject())
+ listOfSelectedRows = {}
+ for i in range(len(self.ui.tableWidgetSent.selectedIndexes())):
+ listOfSelectedRows[
+ self.ui.tableWidgetSent.selectedIndexes()[i].row()] = 0
+ addressesArray = []
+ for currentRow in listOfSelectedRows:
+ addressesArray += [str(self.ui.tableWidgetSent.item(
+ currentRow, 0).text())]
clipboard = QtGui.QApplication.clipboard()
- clipboard.setText(str(addressAtCurrentRow))
+ clipboard.setText('; '.join(addressesArray))
# Group of functions for the Address Book dialog box
def on_action_AddressBookNew(self):
@@ -2568,20 +2579,16 @@ class MyForm(QtGui.QMainWindow):
self.rerenderSentToLabels()
def on_action_AddressBookClipboard(self):
- fullStringOfAddresses = ''
listOfSelectedRows = {}
for i in range(len(self.ui.tableWidgetAddressBook.selectedIndexes())):
listOfSelectedRows[
self.ui.tableWidgetAddressBook.selectedIndexes()[i].row()] = 0
+ addressesArray = []
for currentRow in listOfSelectedRows:
- addressAtCurrentRow = self.ui.tableWidgetAddressBook.item(
- currentRow, 1).text()
- if fullStringOfAddresses == '':
- fullStringOfAddresses = addressAtCurrentRow
- else:
- fullStringOfAddresses += ', ' + str(addressAtCurrentRow)
+ addressesArray += [str(self.ui.tableWidgetAddressBook.item(
+ currentRow, 1).text())]
clipboard = QtGui.QApplication.clipboard()
- clipboard.setText(fullStringOfAddresses)
+ clipboard.setText('; '.join(addressesArray))
def on_action_AddressBookSend(self):
listOfSelectedRows = {}
@@ -2645,11 +2652,16 @@ class MyForm(QtGui.QMainWindow):
shared.reloadBroadcastSendersForWhichImWatching()
def on_action_SubscriptionsClipboard(self):
- currentRow = self.ui.tableWidgetSubscriptions.currentRow()
- addressAtCurrentRow = self.ui.tableWidgetSubscriptions.item(
- currentRow, 1).text()
+ listOfSelectedRows = {}
+ for i in range(len(self.ui.tableWidgetSubscriptions.selectedIndexes())):
+ listOfSelectedRows[
+ self.ui.tableWidgetSubscriptions.selectedIndexes()[i].row()] = 0
+ addressesArray = []
+ for currentRow in listOfSelectedRows:
+ addressesArray += [str(self.ui.tableWidgetSubscriptions.item(
+ currentRow, 1).text())]
clipboard = QtGui.QApplication.clipboard()
- clipboard.setText(str(addressAtCurrentRow))
+ clipboard.setText('; '.join(addressesArray))
def on_action_SubscriptionsEnable(self):
currentRow = self.ui.tableWidgetSubscriptions.currentRow()
@@ -2722,11 +2734,16 @@ class MyForm(QtGui.QMainWindow):
self.ui.tableWidgetBlacklist.removeRow(currentRow)
def on_action_BlacklistClipboard(self):
- currentRow = self.ui.tableWidgetBlacklist.currentRow()
- addressAtCurrentRow = self.ui.tableWidgetBlacklist.item(
- currentRow, 1).text()
+ listOfSelectedRows = {}
+ for i in range(len(self.ui.tableWidgetBlacklist.selectedIndexes())):
+ listOfSelectedRows[
+ self.ui.tableWidgetBlacklist.selectedIndexes()[i].row()] = 0
+ addressesArray = []
+ for currentRow in listOfSelectedRows:
+ addressesArray += [str(self.ui.tableWidgetBlacklist.item(
+ currentRow, 1).text())]
clipboard = QtGui.QApplication.clipboard()
- clipboard.setText(str(addressAtCurrentRow))
+ clipboard.setText('; '.join(addressesArray))
def on_context_menuBlacklist(self, point):
self.popMenuBlacklist.exec_(
@@ -2779,8 +2796,11 @@ class MyForm(QtGui.QMainWindow):
shared.sqlLock.release()
# Group of functions for the Your Identities dialog box
- def on_action_YourIdentitiesNew(self):
+ def on_action_YourIdentitiesNewAddress(self):
self.click_NewAddressDialog()
+
+ def on_action_YourIdentitiesNewChan(self):
+ self.click_actionJoinChan()
def on_action_YourIdentitiesEnable(self):
listOfSelectedRows = {}
@@ -2829,46 +2849,66 @@ class MyForm(QtGui.QMainWindow):
shared.reloadMyAddressHashes()
def on_action_YourIdentitiesClipboard(self):
- currentRow = self.ui.tableWidgetYourIdentities.currentRow()
- addressAtCurrentRow = self.ui.tableWidgetYourIdentities.item(
- currentRow, 1).text()
- clipboard = QtGui.QApplication.clipboard()
- clipboard.setText(str(addressAtCurrentRow))
-
- def on_action_YourIdentitiesSendToChan(self):
- ###
listOfSelectedRows = {}
for i in range(len(self.ui.tableWidgetYourIdentities.selectedIndexes())):
listOfSelectedRows[
self.ui.tableWidgetYourIdentities.selectedIndexes()[i].row()] = 0
- count = 0
+ addressesArray = []
+ for currentRow in listOfSelectedRows:
+ addressesArray += [str(self.ui.tableWidgetYourIdentities.item(
+ currentRow, 1).text())]
+ clipboard = QtGui.QApplication.clipboard()
+ clipboard.setText('; '.join(addressesArray))
+
+ def on_action_YourIdentitiesSendToAddress(self):
+ ###
+ # already preparing this for use with multiple selected items
+ listOfSelectedRows = {}
+ for i in range(len(self.ui.tableWidgetYourIdentities.selectedIndexes())):
+ listOfSelectedRows[
+ self.ui.tableWidgetYourIdentities.selectedIndexes()[i].row()] = 0
+ chans = []
+ nonchans = []
for currentRow in listOfSelectedRows:
addressAtCurrentRow = self.ui.tableWidgetYourIdentities.item(
currentRow, 1).text()
if shared.safeConfigGetBoolean(str(addressAtCurrentRow), 'chan'):
- if self.ui.lineEditTo.text() == '':
- self.ui.lineEditTo.setText(str(addressAtCurrentRow))
- else:
- self.ui.lineEditTo.setText(str(
- self.ui.lineEditTo.text()) + '; ' + str(addressAtCurrentRow))
+ chans += [str(addressAtCurrentRow)]
else:
- count += 1
+ nonchans += [str(addressAtCurrentRow)]
+
+ old_recipients = str(self.ui.lineEditTo.text()).split(';')
+ old_recipients = [x.strip(' ') for x in old_recipients]
+ # filter out empty elements, like possibly the current lineEditTo.text()
+ old_recipients = filter(None, old_recipients)
+ recipients = old_recipients + chans
+ # filter out duplicate recipients
+ from collections import OrderedDict
+ recipients = list(OrderedDict.fromkeys(recipients))
+ # alternatively, if we don't need them sorted
+ # recipients = set(old_recipients + chans)
+ added = set(recipients) ^ set(old_recipients) # xor
+ already_recipient = set(recipients) & set(old_recipients) # and
+
+ message = _translate(
+ "MainWindow", "%1 address(es) added to recipients. %2 address(es) already in recipients. %3 own address(es) ignored.").arg(len(added)).arg(len(already_recipient)).arg(len(nonchans))
+ self.ui.lineEditTo.setText(
+ '; '.join(recipients))
if listOfSelectedRows == {}:
self.statusBar().showMessage(_translate(
"MainWindow", "No addresses selected."))
- elif count == len(listOfSelectedRows):
- self.statusBar().showMessage(_translate(
- "MainWindow", "%1 addresses were no chans and therefore not added as recipient, because the client cannot handle messages to yourself.").arg(str(count)))
else:
- if count > 0:
- self.statusBar().showMessage(_translate(
- "MainWindow", "%1 addresses were no chans and therefore not added as recipient, because the client cannot handle messages to yourself.").arg(str(count)))
- else:
- self.statusBar().showMessage('')
+ self.statusBar().showMessage(message)
+ if len(added) > 0:
self.ui.tabWidget.setCurrentIndex(1)
def on_context_menuYourIdentities(self, point):
- self.popMenu.exec_(
+ # disable certain context menu items for multiselection
+ is_singleselection = len(self.ui.tableWidgetYourIdentities.selectedIndexes())/3 <= 1
+ self.actionNewAddress.setEnabled(is_singleselection)
+ self.actionNewChan.setEnabled(is_singleselection)
+ self.actionSpecialAddressBehavior.setEnabled(is_singleselection)
+ self.popMenuIdentities.exec_(
self.ui.tableWidgetYourIdentities.mapToGlobal(point))
def on_context_menuInbox(self, point):
diff --git a/src/bitmessageqt/bitmessageui.py b/src/bitmessageqt/bitmessageui.py
index 825ded1f..a13a1b64 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: Wed Sep 04 14:20:25 2013
+# Created: Thu Sep 05 15:50:05 2013
# by: PyQt4 UI code generator 4.10.2
#
# WARNING! All changes made in this file will be lost!
@@ -26,7 +26,7 @@ except AttributeError:
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
- MainWindow.resize(795, 580)
+ MainWindow.resize(795, 579)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/can-icon-24px.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
@@ -230,10 +230,11 @@ class Ui_MainWindow(object):
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
self.pushButtonNewAddress = QtGui.QPushButton(self.youridentities)
self.pushButtonNewAddress.setObjectName(_fromUtf8("pushButtonNewAddress"))
- self.gridLayout_3.addWidget(self.pushButtonNewAddress, 0, 0, 1, 1)
+ self.gridLayout_3.addWidget(self.pushButtonNewAddress, 0, 1, 1, 1)
spacerItem2 = QtGui.QSpacerItem(689, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
- self.gridLayout_3.addItem(spacerItem2, 0, 1, 1, 1)
+ self.gridLayout_3.addItem(spacerItem2, 0, 3, 1, 1)
self.tableWidgetYourIdentities = QtGui.QTableWidget(self.youridentities)
+ self.tableWidgetYourIdentities.setStyleSheet(_fromUtf8(""))
self.tableWidgetYourIdentities.setFrameShadow(QtGui.QFrame.Sunken)
self.tableWidgetYourIdentities.setLineWidth(1)
self.tableWidgetYourIdentities.setAlternatingRowColors(True)
@@ -260,7 +261,10 @@ class Ui_MainWindow(object):
self.tableWidgetYourIdentities.verticalHeader().setDefaultSectionSize(26)
self.tableWidgetYourIdentities.verticalHeader().setSortIndicatorShown(False)
self.tableWidgetYourIdentities.verticalHeader().setStretchLastSection(False)
- self.gridLayout_3.addWidget(self.tableWidgetYourIdentities, 1, 0, 1, 2)
+ self.gridLayout_3.addWidget(self.tableWidgetYourIdentities, 1, 0, 1, 4)
+ self.pushButtonJoinCreateChan = QtGui.QPushButton(self.youridentities)
+ self.pushButtonJoinCreateChan.setObjectName(_fromUtf8("pushButtonJoinCreateChan"))
+ self.gridLayout_3.addWidget(self.pushButtonJoinCreateChan, 0, 2, 1, 1)
icon4 = QtGui.QIcon()
icon4.addPixmap(QtGui.QPixmap(_fromUtf8(":/newPrefix/images/identities.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.tabWidget.addTab(self.youridentities, icon4, _fromUtf8(""))
@@ -279,7 +283,7 @@ class Ui_MainWindow(object):
self.gridLayout_4.addItem(spacerItem3, 1, 1, 1, 1)
self.tableWidgetSubscriptions = QtGui.QTableWidget(self.subscriptions)
self.tableWidgetSubscriptions.setAlternatingRowColors(True)
- self.tableWidgetSubscriptions.setSelectionMode(QtGui.QAbstractItemView.SingleSelection)
+ self.tableWidgetSubscriptions.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection)
self.tableWidgetSubscriptions.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
self.tableWidgetSubscriptions.setObjectName(_fromUtf8("tableWidgetSubscriptions"))
self.tableWidgetSubscriptions.setColumnCount(2)
@@ -349,7 +353,7 @@ class Ui_MainWindow(object):
self.gridLayout_6.addItem(spacerItem5, 2, 1, 1, 1)
self.tableWidgetBlacklist = QtGui.QTableWidget(self.blackwhitelist)
self.tableWidgetBlacklist.setAlternatingRowColors(True)
- self.tableWidgetBlacklist.setSelectionMode(QtGui.QAbstractItemView.SingleSelection)
+ self.tableWidgetBlacklist.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection)
self.tableWidgetBlacklist.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
self.tableWidgetBlacklist.setObjectName(_fromUtf8("tableWidgetBlacklist"))
self.tableWidgetBlacklist.setColumnCount(2)
@@ -490,7 +494,7 @@ class Ui_MainWindow(object):
self.menubar.addAction(self.menuHelp.menuAction())
self.retranslateUi(MainWindow)
- self.tabWidget.setCurrentIndex(3)
+ self.tabWidget.setCurrentIndex(6)
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)
@@ -507,8 +511,7 @@ class Ui_MainWindow(object):
MainWindow.setTabOrder(self.textEditMessage, self.pushButtonSend)
MainWindow.setTabOrder(self.pushButtonSend, self.tableWidgetSent)
MainWindow.setTabOrder(self.tableWidgetSent, self.textEditSentMessage)
- MainWindow.setTabOrder(self.textEditSentMessage, self.pushButtonNewAddress)
- MainWindow.setTabOrder(self.pushButtonNewAddress, self.tableWidgetYourIdentities)
+ MainWindow.setTabOrder(self.textEditSentMessage, self.tableWidgetYourIdentities)
MainWindow.setTabOrder(self.tableWidgetYourIdentities, self.pushButtonAddSubscription)
MainWindow.setTabOrder(self.pushButtonAddSubscription, self.tableWidgetSubscriptions)
MainWindow.setTabOrder(self.tableWidgetSubscriptions, self.pushButtonAddAddressBook)
@@ -570,7 +573,7 @@ class Ui_MainWindow(object):
item = self.tableWidgetSent.horizontalHeaderItem(3)
item.setText(_translate("MainWindow", "Status", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.sent), _translate("MainWindow", "Sent", None))
- self.pushButtonNewAddress.setText(_translate("MainWindow", "New", None))
+ self.pushButtonNewAddress.setText(_translate("MainWindow", "Create new Address", None))
self.tableWidgetYourIdentities.setSortingEnabled(True)
item = self.tableWidgetYourIdentities.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "Label (not shown to anyone)", None))
@@ -578,6 +581,7 @@ class Ui_MainWindow(object):
item.setText(_translate("MainWindow", "Address", None))
item = self.tableWidgetYourIdentities.horizontalHeaderItem(2)
item.setText(_translate("MainWindow", "Stream", None))
+ self.pushButtonJoinCreateChan.setText(_translate("MainWindow", "Join / Create Chan", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.youridentities), _translate("MainWindow", "Your Identities", None))
self.label_5.setText(_translate("MainWindow", "Here you can subscribe to \'broadcast messages\' that are sent by other users. Messages will appear in your Inbox. Addresses here override those on the Blacklist tab.", None))
self.pushButtonAddSubscription.setText(_translate("MainWindow", "Add new Subscription", None))
diff --git a/src/bitmessageqt/bitmessageui.ui b/src/bitmessageqt/bitmessageui.ui
index e9af3c17..51790bc6 100644
--- a/src/bitmessageqt/bitmessageui.ui
+++ b/src/bitmessageqt/bitmessageui.ui
@@ -7,7 +7,7 @@
0
0
795
- 580
+ 579
@@ -57,7 +57,7 @@
QTabWidget::Rounded
- 3
+ 6
@@ -485,14 +485,14 @@ p, li { white-space: pre-wrap; }
Your Identities
- -
+
-
- New
+ Create new Address
- -
+
-
Qt::Horizontal
@@ -505,8 +505,11 @@ p, li { white-space: pre-wrap; }
- -
+
-
+
+
+
QFrame::Sunken
@@ -574,6 +577,13 @@ p, li { white-space: pre-wrap; }
+ -
+
+
+ Join / Create Chan
+
+
+
@@ -621,7 +631,7 @@ p, li { white-space: pre-wrap; }
true
- QAbstractItemView::SingleSelection
+ QAbstractItemView::ExtendedSelection
QAbstractItemView::SelectRows
@@ -795,7 +805,7 @@ p, li { white-space: pre-wrap; }
true
- QAbstractItemView::SingleSelection
+ QAbstractItemView::ExtendedSelection
QAbstractItemView::SelectRows
@@ -1173,7 +1183,6 @@ p, li { white-space: pre-wrap; }
pushButtonSend
tableWidgetSent
textEditSentMessage
- pushButtonNewAddress
tableWidgetYourIdentities
pushButtonAddSubscription
tableWidgetSubscriptions
@@ -1197,12 +1206,12 @@ p, li { white-space: pre-wrap; }
setEnabled(bool)
- 121
- 60
+ 37
+ 50
- 175
- 147
+ 37
+ 58
@@ -1213,12 +1222,12 @@ p, li { white-space: pre-wrap; }
hide()
- 95
- 59
+ 37
+ 50
- 129
- 528
+ 76
+ 69
@@ -1229,12 +1238,12 @@ p, li { white-space: pre-wrap; }
show()
- 108
- 84
+ 70
+ 53
- 177
- 519
+ 76
+ 69
diff --git a/src/bitmessageqt/settings.py b/src/bitmessageqt/settings.py
index 44ef36e2..4a2fd0f0 100644
--- a/src/bitmessageqt/settings.py
+++ b/src/bitmessageqt/settings.py
@@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'settings.ui'
#
-# Created: Wed Sep 04 14:20:27 2013
+# Created: Thu Sep 05 15:50:06 2013
# by: PyQt4 UI code generator 4.10.2
#
# WARNING! All changes made in this file will be lost!