diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index 5e2ec982..10cbc8f9 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -27,7 +27,6 @@ from newaddresswizard import * from messageview import MessageView from migrationwizard import * from foldertree import * -from newsubscriptiondialog import * from regenerateaddresses import * from newchandialog import * from safehtmlparser import * @@ -51,14 +50,14 @@ import debug import random import string from datetime import datetime, timedelta -from helper_sql import * from helper_ackPayload import genAckPayload +from helper_sql import sqlQuery, sqlExecute, sqlExecuteChunked, sqlStoredProcedure import helper_search import l10n import openclpow from utils import str_broadcast_subscribers, avatarize from account import * -from dialogs import AddAddressDialog +import dialogs from helper_generic import powQueueSize from inventory import ( Inventory, PendingDownloadQueue, PendingUpload, @@ -2140,71 +2139,85 @@ class MyForm(settingsmixin.SMainWindow): def click_pushButtonAddAddressBook(self, dialog=None): if not dialog: - dialog = AddAddressDialog(self) + dialog = dialogs.AddAddressDialog(self) if dialog.exec_(): - if dialog.ui.labelAddressCheck.text() == \ - _translate("MainWindow", "Address is valid."): - # First we must check to see if the address is already in the - # address book. The user cannot add it again or else it will - # cause problems when updating and deleting the entry. - address = addBMIfNotPresent( - str(dialog.ui.lineEditAddress.text())) - label = str(dialog.ui.newAddressLabel.text().toUtf8()) - self.addEntryToAddressBook(address, label) - else: + if not dialog.valid: self.statusBar().showMessage(_translate( "MainWindow", "The address you entered was invalid. Ignoring it." - ), 10000) + ), 10000) + return + + address = addBMIfNotPresent(str(dialog.lineEditAddress.text())) + # First we must check to see if the address is already in the + # address book. The user cannot add it again or else it will + # cause problems when updating and deleting the entry. + if shared.isAddressInMyAddressBook(address): + self.statusBar().showMessage(_translate( + "MainWindow", + "Error: You cannot add the same address to your" + " address book twice. Try renaming the existing one" + " if you want." + ), 10000) + return + label = str(dialog.lineEditLabel.text().toUtf8()) + self.addEntryToAddressBook(address, label) def addEntryToAddressBook(self, address, label): - queryreturn = sqlQuery( - '''select * from addressbook where address=?''', address) - if queryreturn == []: - sqlExecute('''INSERT INTO addressbook VALUES (?,?)''', - label, address) - self.rerenderMessagelistFromLabels() - self.rerenderMessagelistToLabels() - self.rerenderAddressBook() - else: - self.statusBar().showMessage(_translate( - "MainWindow", "Error: You cannot add the same address to your address book twice. Try renaming the existing one if you want."), 10000) + if shared.isAddressInMyAddressBook(address): + return + sqlExecute('''INSERT INTO addressbook VALUES (?,?)''', label, address) + self.rerenderMessagelistFromLabels() + self.rerenderMessagelistToLabels() + self.rerenderAddressBook() def addSubscription(self, address, label): - address = addBMIfNotPresent(address) - #This should be handled outside of this function, for error displaying and such, but it must also be checked here. + # This should be handled outside of this function, for error displaying + # and such, but it must also be checked here. if shared.isAddressInMySubscriptionsList(address): return - #Add to database (perhaps this should be separated from the MyForm class) - sqlExecute('''INSERT INTO subscriptions VALUES (?,?,?)''',str(label),address,True) + # Add to database (perhaps this should be separated from the MyForm class) + sqlExecute( + '''INSERT INTO subscriptions VALUES (?,?,?)''', + label, address, True + ) self.rerenderMessagelistFromLabels() shared.reloadBroadcastSendersForWhichImWatching() self.rerenderAddressBook() self.rerenderTabTreeSubscriptions() def click_pushButtonAddSubscription(self): - self.NewSubscriptionDialogInstance = NewSubscriptionDialog(self) - if self.NewSubscriptionDialogInstance.exec_(): - if self.NewSubscriptionDialogInstance.ui.labelAddressCheck.text() != _translate("MainWindow", "Address is valid."): - self.statusBar().showMessage(_translate("MainWindow", "The address you entered was invalid. Ignoring it."), 10000) + dialog = dialogs.NewSubscriptionDialog(self) + if dialog.exec_(): + if not dialog.valid: + self.statusBar().showMessage(_translate( + "MainWindow", + "The address you entered was invalid. Ignoring it." + ), 10000) return - address = addBMIfNotPresent(str(self.NewSubscriptionDialogInstance.ui.lineEditSubscriptionAddress.text())) - # We must check to see if the address is already in the subscriptions list. The user cannot add it again or else it will cause problems when updating and deleting the entry. + + address = addBMIfNotPresent(str(dialog.lineEditAddress.text())) + # We must check to see if the address is already in the + # subscriptions list. The user cannot add it again or else it + # will cause problems when updating and deleting the entry. if shared.isAddressInMySubscriptionsList(address): - self.statusBar().showMessage(_translate("MainWindow", "Error: You cannot add the same address to your subscriptions twice. Perhaps rename the existing one if you want."), 10000) + self.statusBar().showMessage(_translate( + "MainWindow", + "Error: You cannot add the same address to your" + " subscriptions twice. Perhaps rename the existing one" + " if you want." + ), 10000) return - label = self.NewSubscriptionDialogInstance.ui.newsubscriptionlabel.text().toUtf8() + label = str(dialog.lineEditLabel.text().toUtf8()) self.addSubscription(address, label) - # Now, if the user wants to display old broadcasts, let's get them out of the inventory and put them - # in the objectProcessorQueue to be processed - if self.NewSubscriptionDialogInstance.ui.checkBoxDisplayMessagesAlreadyInInventory.isChecked(): - status, addressVersion, streamNumber, ripe = decodeAddress(address) - Inventory().flush() - doubleHashOfAddressData = hashlib.sha512(hashlib.sha512(encodeVarint( - addressVersion) + encodeVarint(streamNumber) + ripe).digest()).digest() - tag = doubleHashOfAddressData[32:] - for value in Inventory().by_type_and_tag(3, tag): - queues.objectProcessorQueue.put((value.type, value.payload)) + # Now, if the user wants to display old broadcasts, let's get + # them out of the inventory and put them + # to the objectProcessorQueue to be processed + if dialog.checkBoxDisplayMessagesAlreadyInInventory.isChecked(): + for value in dialog.recent: + queues.objectProcessorQueue.put(( + value.type, value.payload + )) def click_pushButtonStatusIcon(self): logger.debug('click_pushButtonStatusIcon') @@ -2942,8 +2955,8 @@ class MyForm(settingsmixin.SMainWindow): addressAtCurrentInboxRow = tableWidget.item( currentInboxRow, 1).data(Qt.UserRole) self.ui.tabWidget.setCurrentIndex(1) - dialog = AddAddressDialog(self) - dialog.ui.lineEditAddress.setText(addressAtCurrentInboxRow) + dialog = dialogs.AddAddressDialog(self) + dialog.lineEditAddress.setText(addressAtCurrentInboxRow) self.click_pushButtonAddAddressBook(dialog) def on_action_InboxAddSenderToBlackList(self): @@ -4280,64 +4293,6 @@ class EmailGatewayRegistrationDialog(QtGui.QDialog): QtGui.QWidget.resize(self, QtGui.QWidget.sizeHint(self)) -class NewSubscriptionDialog(QtGui.QDialog): - - def __init__(self, parent): - QtGui.QWidget.__init__(self, parent) - self.ui = Ui_NewSubscriptionDialog() - self.ui.setupUi(self) - self.parent = parent - QtCore.QObject.connect(self.ui.lineEditSubscriptionAddress, QtCore.SIGNAL( - "textChanged(QString)"), self.addressChanged) - self.ui.checkBoxDisplayMessagesAlreadyInInventory.setText( - _translate("MainWindow", "Enter an address above.")) - - def addressChanged(self, QString): - self.ui.checkBoxDisplayMessagesAlreadyInInventory.setEnabled(False) - self.ui.checkBoxDisplayMessagesAlreadyInInventory.setChecked(False) - status, addressVersion, streamNumber, ripe = decodeAddress(str(QString)) - if status == 'missingbm': - self.ui.labelAddressCheck.setText(_translate( - "MainWindow", "The address should start with ''BM-''")) - elif status == 'checksumfailed': - self.ui.labelAddressCheck.setText(_translate( - "MainWindow", "The address is not typed or copied correctly (the checksum failed).")) - elif status == 'versiontoohigh': - self.ui.labelAddressCheck.setText(_translate( - "MainWindow", "The version number of this address is higher than this software can support. Please upgrade Bitmessage.")) - elif status == 'invalidcharacters': - self.ui.labelAddressCheck.setText(_translate( - "MainWindow", "The address contains invalid characters.")) - elif status == 'ripetooshort': - self.ui.labelAddressCheck.setText(_translate( - "MainWindow", "Some data encoded in the address is too short.")) - elif status == 'ripetoolong': - self.ui.labelAddressCheck.setText(_translate( - "MainWindow", "Some data encoded in the address is too long.")) - elif status == 'varintmalformed': - self.ui.labelAddressCheck.setText(_translate( - "MainWindow", "Some data encoded in the address is malformed.")) - elif status == 'success': - self.ui.labelAddressCheck.setText( - _translate("MainWindow", "Address is valid.")) - if addressVersion <= 3: - self.ui.checkBoxDisplayMessagesAlreadyInInventory.setText( - _translate("MainWindow", "Address is an old type. We cannot display its past broadcasts.")) - else: - Inventory().flush() - doubleHashOfAddressData = hashlib.sha512(hashlib.sha512(encodeVarint( - addressVersion) + encodeVarint(streamNumber) + ripe).digest()).digest() - tag = doubleHashOfAddressData[32:] - count = len(Inventory().by_type_and_tag(3, tag)) - if count == 0: - self.ui.checkBoxDisplayMessagesAlreadyInInventory.setText( - _translate("MainWindow", "There are no recent broadcasts from this address to display.")) - else: - self.ui.checkBoxDisplayMessagesAlreadyInInventory.setEnabled(True) - self.ui.checkBoxDisplayMessagesAlreadyInInventory.setText( - _translate("MainWindow", "Display the %1 recent broadcast(s) from this address.").arg(count)) - - class NewAddressDialog(QtGui.QDialog): def __init__(self, parent): diff --git a/src/bitmessageqt/addaddressdialog.py b/src/bitmessageqt/addaddressdialog.py deleted file mode 100644 index 5ed19e0a..00000000 --- a/src/bitmessageqt/addaddressdialog.py +++ /dev/null @@ -1,65 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'addaddressdialog.ui' -# -# Created: Sat Nov 30 20:35:38 2013 -# by: PyQt4 UI code generator 4.10.3 -# -# WARNING! All changes made in this file will be lost! - -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) - -class Ui_AddAddressDialog(object): - def setupUi(self, AddAddressDialog): - AddAddressDialog.setObjectName(_fromUtf8("AddAddressDialog")) - AddAddressDialog.resize(368, 162) - self.formLayout = QtGui.QFormLayout(AddAddressDialog) - self.formLayout.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow) - self.formLayout.setObjectName(_fromUtf8("formLayout")) - self.label_2 = QtGui.QLabel(AddAddressDialog) - self.label_2.setObjectName(_fromUtf8("label_2")) - self.formLayout.setWidget(0, QtGui.QFormLayout.SpanningRole, self.label_2) - self.newAddressLabel = QtGui.QLineEdit(AddAddressDialog) - self.newAddressLabel.setObjectName(_fromUtf8("newAddressLabel")) - self.formLayout.setWidget(2, QtGui.QFormLayout.SpanningRole, self.newAddressLabel) - self.label = QtGui.QLabel(AddAddressDialog) - self.label.setObjectName(_fromUtf8("label")) - self.formLayout.setWidget(4, QtGui.QFormLayout.LabelRole, self.label) - self.lineEditAddress = QtGui.QLineEdit(AddAddressDialog) - self.lineEditAddress.setObjectName(_fromUtf8("lineEditAddress")) - self.formLayout.setWidget(5, QtGui.QFormLayout.SpanningRole, self.lineEditAddress) - self.labelAddressCheck = QtGui.QLabel(AddAddressDialog) - self.labelAddressCheck.setText(_fromUtf8("")) - self.labelAddressCheck.setWordWrap(True) - self.labelAddressCheck.setObjectName(_fromUtf8("labelAddressCheck")) - self.formLayout.setWidget(6, QtGui.QFormLayout.SpanningRole, self.labelAddressCheck) - self.buttonBox = QtGui.QDialogButtonBox(AddAddressDialog) - self.buttonBox.setOrientation(QtCore.Qt.Horizontal) - self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) - self.buttonBox.setObjectName(_fromUtf8("buttonBox")) - self.formLayout.setWidget(7, QtGui.QFormLayout.FieldRole, self.buttonBox) - - self.retranslateUi(AddAddressDialog) - QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), AddAddressDialog.accept) - QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), AddAddressDialog.reject) - QtCore.QMetaObject.connectSlotsByName(AddAddressDialog) - - def retranslateUi(self, AddAddressDialog): - AddAddressDialog.setWindowTitle(_translate("AddAddressDialog", "Add new entry", None)) - self.label_2.setText(_translate("AddAddressDialog", "Label", None)) - self.label.setText(_translate("AddAddressDialog", "Address", None)) - diff --git a/src/bitmessageqt/addaddressdialog.ui b/src/bitmessageqt/addaddressdialog.ui index d7963e0a..09701fa4 100644 --- a/src/bitmessageqt/addaddressdialog.ui +++ b/src/bitmessageqt/addaddressdialog.ui @@ -7,9 +7,15 @@ 0 0 368 - 162 + 232 + + + 368 + 200 + + Add new entry @@ -25,7 +31,7 @@ - + @@ -47,7 +53,7 @@ - + Qt::Horizontal @@ -57,6 +63,19 @@ + + + + Qt::Vertical + + + + 20 + 40 + + + + diff --git a/src/bitmessageqt/dialogs.py b/src/bitmessageqt/dialogs.py index d8133eb1..5eeaaadd 100644 --- a/src/bitmessageqt/dialogs.py +++ b/src/bitmessageqt/dialogs.py @@ -1,42 +1,107 @@ from PyQt4 import QtCore, QtGui -from addaddressdialog import Ui_AddAddressDialog -from addresses import decodeAddress +from addresses import decodeAddress, encodeVarint from tr import _translate +from retranslateui import RetranslateMixin +import widgets + +import hashlib +from inventory import Inventory -class AddAddressDialog(QtGui.QDialog): +class AddressCheckMixin(object): - def __init__(self, parent): - QtGui.QWidget.__init__(self, parent) - self.ui = Ui_AddAddressDialog() - self.ui.setupUi(self) - self.parent = parent - QtCore.QObject.connect(self.ui.lineEditAddress, QtCore.SIGNAL( + def __init__(self): + self.valid = False + QtCore.QObject.connect(self.lineEditAddress, QtCore.SIGNAL( "textChanged(QString)"), self.addressChanged) + def _onSuccess(self, addressVersion, streamNumber, ripe): + pass + def addressChanged(self, QString): - status, a, b, c = decodeAddress(str(QString)) - if status == 'missingbm': - self.ui.labelAddressCheck.setText(_translate( + status, addressVersion, streamNumber, ripe = decodeAddress( + str(QString)) + self.valid = status == 'success' + if self.valid: + self.labelAddressCheck.setText( + _translate("MainWindow", "Address is valid.")) + self._onSuccess(addressVersion, streamNumber, ripe) + elif status == 'missingbm': + self.labelAddressCheck.setText(_translate( "MainWindow", "The address should start with ''BM-''")) elif status == 'checksumfailed': - self.ui.labelAddressCheck.setText(_translate( - "MainWindow", "The address is not typed or copied correctly (the checksum failed).")) + self.labelAddressCheck.setText(_translate( + "MainWindow", + "The address is not typed or copied correctly" + " (the checksum failed)." + )) elif status == 'versiontoohigh': - self.ui.labelAddressCheck.setText(_translate( - "MainWindow", "The version number of this address is higher than this software can support. Please upgrade Bitmessage.")) + self.labelAddressCheck.setText(_translate( + "MainWindow", + "The version number of this address is higher than this" + " software can support. Please upgrade Bitmessage." + )) elif status == 'invalidcharacters': - self.ui.labelAddressCheck.setText(_translate( + self.labelAddressCheck.setText(_translate( "MainWindow", "The address contains invalid characters.")) elif status == 'ripetooshort': - self.ui.labelAddressCheck.setText(_translate( - "MainWindow", "Some data encoded in the address is too short.")) + self.labelAddressCheck.setText(_translate( + "MainWindow", + "Some data encoded in the address is too short." + )) elif status == 'ripetoolong': - self.ui.labelAddressCheck.setText(_translate( + self.labelAddressCheck.setText(_translate( "MainWindow", "Some data encoded in the address is too long.")) elif status == 'varintmalformed': - self.ui.labelAddressCheck.setText(_translate( - "MainWindow", "Some data encoded in the address is malformed.")) - elif status == 'success': - self.ui.labelAddressCheck.setText( - _translate("MainWindow", "Address is valid.")) + self.labelAddressCheck.setText(_translate( + "MainWindow", + "Some data encoded in the address is malformed." + )) + + +class AddAddressDialog(QtGui.QDialog, RetranslateMixin, AddressCheckMixin): + + def __init__(self, parent=None): + super(AddAddressDialog, self).__init__(parent) + widgets.load('addaddressdialog.ui', self) + AddressCheckMixin.__init__(self) + + +class NewSubscriptionDialog( + QtGui.QDialog, RetranslateMixin, AddressCheckMixin): + + def __init__(self, parent=None): + super(NewSubscriptionDialog, self).__init__(parent) + widgets.load('newsubscriptiondialog.ui', self) + AddressCheckMixin.__init__(self) + + def _onSuccess(self, addressVersion, streamNumber, ripe): + if addressVersion <= 3: + self.checkBoxDisplayMessagesAlreadyInInventory.setText(_translate( + "MainWindow", + "Address is an old type. We cannot display its past" + " broadcasts." + )) + else: + Inventory().flush() + doubleHashOfAddressData = hashlib.sha512(hashlib.sha512( + encodeVarint(addressVersion) + + encodeVarint(streamNumber) + ripe + ).digest()).digest() + tag = doubleHashOfAddressData[32:] + self.recent = Inventory().by_type_and_tag(3, tag) + count = len(self.recent) + if count == 0: + self.checkBoxDisplayMessagesAlreadyInInventory.setText( + _translate( + "MainWindow", + "There are no recent broadcasts from this address" + " to display." + )) + else: + self.checkBoxDisplayMessagesAlreadyInInventory.setEnabled(True) + self.checkBoxDisplayMessagesAlreadyInInventory.setText( + _translate( + "MainWindow", + "Display the %1 recent broadcast(s) from this address." + ).arg(count)) diff --git a/src/bitmessageqt/newsubscriptiondialog.py b/src/bitmessageqt/newsubscriptiondialog.py deleted file mode 100644 index a63cce4a..00000000 --- a/src/bitmessageqt/newsubscriptiondialog.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'newsubscriptiondialog.ui' -# -# Created: Sat Nov 30 21:53:38 2013 -# by: PyQt4 UI code generator 4.10.3 -# -# WARNING! All changes made in this file will be lost! - -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) - -class Ui_NewSubscriptionDialog(object): - def setupUi(self, NewSubscriptionDialog): - NewSubscriptionDialog.setObjectName(_fromUtf8("NewSubscriptionDialog")) - NewSubscriptionDialog.resize(368, 173) - self.formLayout = QtGui.QFormLayout(NewSubscriptionDialog) - self.formLayout.setObjectName(_fromUtf8("formLayout")) - self.label_2 = QtGui.QLabel(NewSubscriptionDialog) - self.label_2.setObjectName(_fromUtf8("label_2")) - self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.label_2) - self.newsubscriptionlabel = QtGui.QLineEdit(NewSubscriptionDialog) - self.newsubscriptionlabel.setObjectName(_fromUtf8("newsubscriptionlabel")) - self.formLayout.setWidget(1, QtGui.QFormLayout.SpanningRole, self.newsubscriptionlabel) - self.label = QtGui.QLabel(NewSubscriptionDialog) - self.label.setObjectName(_fromUtf8("label")) - self.formLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.label) - self.lineEditSubscriptionAddress = QtGui.QLineEdit(NewSubscriptionDialog) - self.lineEditSubscriptionAddress.setObjectName(_fromUtf8("lineEditSubscriptionAddress")) - self.formLayout.setWidget(3, QtGui.QFormLayout.SpanningRole, self.lineEditSubscriptionAddress) - self.labelAddressCheck = QtGui.QLabel(NewSubscriptionDialog) - self.labelAddressCheck.setText(_fromUtf8("")) - self.labelAddressCheck.setWordWrap(True) - self.labelAddressCheck.setObjectName(_fromUtf8("labelAddressCheck")) - self.formLayout.setWidget(4, QtGui.QFormLayout.SpanningRole, self.labelAddressCheck) - self.checkBoxDisplayMessagesAlreadyInInventory = QtGui.QCheckBox(NewSubscriptionDialog) - self.checkBoxDisplayMessagesAlreadyInInventory.setEnabled(False) - self.checkBoxDisplayMessagesAlreadyInInventory.setObjectName(_fromUtf8("checkBoxDisplayMessagesAlreadyInInventory")) - self.formLayout.setWidget(5, QtGui.QFormLayout.SpanningRole, self.checkBoxDisplayMessagesAlreadyInInventory) - self.buttonBox = QtGui.QDialogButtonBox(NewSubscriptionDialog) - self.buttonBox.setOrientation(QtCore.Qt.Horizontal) - self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok) - self.buttonBox.setObjectName(_fromUtf8("buttonBox")) - self.formLayout.setWidget(6, QtGui.QFormLayout.FieldRole, self.buttonBox) - - self.retranslateUi(NewSubscriptionDialog) - QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), NewSubscriptionDialog.accept) - QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), NewSubscriptionDialog.reject) - QtCore.QMetaObject.connectSlotsByName(NewSubscriptionDialog) - - def retranslateUi(self, NewSubscriptionDialog): - NewSubscriptionDialog.setWindowTitle(_translate("NewSubscriptionDialog", "Add new entry", None)) - self.label_2.setText(_translate("NewSubscriptionDialog", "Label", None)) - self.label.setText(_translate("NewSubscriptionDialog", "Address", None)) - self.checkBoxDisplayMessagesAlreadyInInventory.setText(_translate("NewSubscriptionDialog", "Enter an address above.", None)) - diff --git a/src/bitmessageqt/newsubscriptiondialog.ui b/src/bitmessageqt/newsubscriptiondialog.ui index ed8615f4..ec67efa3 100644 --- a/src/bitmessageqt/newsubscriptiondialog.ui +++ b/src/bitmessageqt/newsubscriptiondialog.ui @@ -7,9 +7,15 @@ 0 0 368 - 173 + 254 + + + 368 + 200 + + Add new entry @@ -22,7 +28,7 @@ - + @@ -32,7 +38,7 @@ - + @@ -44,17 +50,17 @@ - + false - CheckBox + Enter an address above. - + Qt::Horizontal @@ -64,6 +70,19 @@ + + + + Qt::Vertical + + + + 20 + 40 + + + +