diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index c20d955b..297e44b4 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -34,6 +34,7 @@ import hashlib from pyelliptic.openssl import OpenSSL import pickle import platform +import textwrap import debug from debug import logger import subprocess @@ -2250,6 +2251,8 @@ class MyForm(QtGui.QMainWindow): self.settingsDialogInstance.ui.checkBoxWillinglySendToMobile.isChecked())) shared.config.set('bitmessagesettings', 'useidenticons', str( self.settingsDialogInstance.ui.checkBoxUseIdenticons.isChecked())) + shared.config.set('bitmessagesettings', 'replybelow', str( + self.settingsDialogInstance.ui.checkBoxReplyBelow.isChecked())) lang_ind = int(self.settingsDialogInstance.ui.languageComboBox.currentIndex()) if not languages[lang_ind] == 'other': @@ -2613,6 +2616,28 @@ class MyForm(QtGui.QMainWindow): # We could also select upwards, but then our problem would be with the topmost message. # self.ui.tableWidgetInbox.clearSelection() manages to mark the message as read again. + # Format predefined text on message reply. + def quoted_text(self, message): + if not shared.safeConfigGetBoolean('bitmessagesettings', 'replybelow'): + return '\n\n------------------------------------------------------\n' + message + + quoteWrapper = textwrap.TextWrapper(replace_whitespace = False, + initial_indent = '> ', + subsequent_indent = '> ', + break_long_words = False, + break_on_hyphens = False) + def quote_line(line): + # Do quote empty lines. + if line == '' or line.isspace(): + return '> ' + # Quote already quoted lines, but do not wrap them. + elif line[0:2] == '> ': + return '> ' + line + # Wrap and quote lines/paragraphs new to this message. + else: + return quoteWrapper.fill(line) + return '\n'.join([quote_line(l) for l in message.splitlines()]) + '\n\n' + def on_action_InboxReply(self): currentInboxRow = self.ui.tableWidgetInbox.currentRow() toAddressAtCurrentInboxRow = str(self.ui.tableWidgetInbox.item( @@ -2655,7 +2680,8 @@ class MyForm(QtGui.QMainWindow): else: self.ui.comboBoxSendFrom.setCurrentIndex(0) - self.ui.textEditMessage.setText('\n\n------------------------------------------------------\n' + unicode(messageAtCurrentInboxRow, 'utf-8)')) + quotedText = self.quoted_text(unicode(messageAtCurrentInboxRow, 'utf-8')) + self.ui.textEditMessage.setText(quotedText) if self.ui.tableWidgetInbox.item(currentInboxRow, 2).text()[0:3] in ['Re:', 'RE:']: self.ui.lineEditSubject.setText( self.ui.tableWidgetInbox.item(currentInboxRow, 2).text()) @@ -3318,6 +3344,8 @@ class settingsDialog(QtGui.QDialog): shared.safeConfigGetBoolean('bitmessagesettings', 'willinglysendtomobile')) self.ui.checkBoxUseIdenticons.setChecked( shared.safeConfigGetBoolean('bitmessagesettings', 'useidenticons')) + self.ui.checkBoxReplyBelow.setChecked( + shared.safeConfigGetBoolean('bitmessagesettings', 'replybelow')) global languages languages = ['system','en','eo','fr','de','es','ru','no','ar','zh_cn','en_pirate','other'] diff --git a/src/bitmessageqt/settings.py b/src/bitmessageqt/settings.py index 293c133b..a79976cd 100644 --- a/src/bitmessageqt/settings.py +++ b/src/bitmessageqt/settings.py @@ -2,8 +2,8 @@ # Form implementation generated from reading ui file 'settings.ui' # -# Created: Mon Jan 20 14:26:31 2014 -# by: PyQt4 UI code generator 4.10.3 +# Created: Tue Jan 28 20:46:24 2014 +# by: PyQt4 UI code generator 4.9.3 # # WARNING! All changes made in this file will be lost! @@ -12,16 +12,7 @@ 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_settingsDialog(object): def setupUi(self, settingsDialog): @@ -72,6 +63,9 @@ class Ui_settingsDialog(object): self.checkBoxUseIdenticons = QtGui.QCheckBox(self.tabUserInterface) self.checkBoxUseIdenticons.setObjectName(_fromUtf8("checkBoxUseIdenticons")) self.formLayout.setWidget(7, QtGui.QFormLayout.LabelRole, self.checkBoxUseIdenticons) + self.checkBoxReplyBelow = QtGui.QCheckBox(self.tabUserInterface) + self.checkBoxReplyBelow.setObjectName(_fromUtf8("checkBoxReplyBelow")) + self.formLayout.setWidget(8, QtGui.QFormLayout.LabelRole, self.checkBoxReplyBelow) self.groupBox = QtGui.QGroupBox(self.tabUserInterface) self.groupBox.setObjectName(_fromUtf8("groupBox")) self.formLayout_2 = QtGui.QFormLayout(self.groupBox) @@ -92,7 +86,7 @@ class Ui_settingsDialog(object): self.languageComboBox.addItem(_fromUtf8("")) self.languageComboBox.addItem(_fromUtf8("")) self.formLayout_2.setWidget(0, QtGui.QFormLayout.LabelRole, self.languageComboBox) - self.formLayout.setWidget(8, QtGui.QFormLayout.FieldRole, self.groupBox) + self.formLayout.setWidget(9, QtGui.QFormLayout.FieldRole, self.groupBox) self.tabWidgetSettings.addTab(self.tabUserInterface, _fromUtf8("")) self.tabNetworkSettings = QtGui.QWidget() self.tabNetworkSettings.setObjectName(_fromUtf8("tabNetworkSettings")) @@ -383,68 +377,69 @@ class Ui_settingsDialog(object): settingsDialog.setTabOrder(self.checkBoxSocksListen, self.buttonBox) def retranslateUi(self, settingsDialog): - settingsDialog.setWindowTitle(_translate("settingsDialog", "Settings", None)) - self.checkBoxStartOnLogon.setText(_translate("settingsDialog", "Start Bitmessage on user login", None)) - self.checkBoxStartInTray.setText(_translate("settingsDialog", "Start Bitmessage in the tray (don\'t show main window)", None)) - self.checkBoxMinimizeToTray.setText(_translate("settingsDialog", "Minimize to tray", None)) - self.checkBoxShowTrayNotifications.setText(_translate("settingsDialog", "Show notification when message received", None)) - self.checkBoxPortableMode.setText(_translate("settingsDialog", "Run in Portable Mode", None)) - self.PortableModeDescription.setText(_translate("settingsDialog", "In Portable Mode, messages and config files are stored in the same directory as the program rather than the normal application-data folder. This makes it convenient to run Bitmessage from a USB thumb drive.", None)) - self.checkBoxWillinglySendToMobile.setText(_translate("settingsDialog", "Willingly include unencrypted destination address when sending to a mobile device", None)) - self.checkBoxUseIdenticons.setText(_translate("settingsDialog", "Use Identicons", None)) - self.groupBox.setTitle(_translate("settingsDialog", "Interface Language", None)) - self.languageComboBox.setItemText(0, _translate("settingsDialog", "System Settings", "system")) - self.languageComboBox.setItemText(1, _translate("settingsDialog", "English", "en")) - self.languageComboBox.setItemText(2, _translate("settingsDialog", "Esperanto", "eo")) - self.languageComboBox.setItemText(3, _translate("settingsDialog", "Français", "fr")) - self.languageComboBox.setItemText(4, _translate("settingsDialog", "Deutsch", "de")) - self.languageComboBox.setItemText(5, _translate("settingsDialog", "Españl", "es")) - self.languageComboBox.setItemText(6, _translate("settingsDialog", "русский язык", "ru")) - self.languageComboBox.setItemText(7, _translate("settingsDialog", "Norsk", "no")) - self.languageComboBox.setItemText(8, _translate("settingsDialog", "العربية", "ar")) - self.languageComboBox.setItemText(9, _translate("settingsDialog", "简体中文", "zh_cn")) - self.languageComboBox.setItemText(10, _translate("settingsDialog", "Pirate English", "en_pirate")) - self.languageComboBox.setItemText(11, _translate("settingsDialog", "Other (set in keys.dat)", "other")) - self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabUserInterface), _translate("settingsDialog", "User Interface", None)) - self.groupBox1.setTitle(_translate("settingsDialog", "Listening port", None)) - self.label.setText(_translate("settingsDialog", "Listen for connections on port:", None)) - self.groupBox_2.setTitle(_translate("settingsDialog", "Proxy server / Tor", None)) - self.label_2.setText(_translate("settingsDialog", "Type:", None)) - self.label_3.setText(_translate("settingsDialog", "Server hostname:", None)) - self.label_4.setText(_translate("settingsDialog", "Port:", None)) - self.checkBoxAuthentication.setText(_translate("settingsDialog", "Authentication", None)) - self.label_5.setText(_translate("settingsDialog", "Username:", None)) - self.label_6.setText(_translate("settingsDialog", "Pass:", None)) - self.checkBoxSocksListen.setText(_translate("settingsDialog", "Listen for incoming connections when using proxy", None)) - self.comboBoxProxyType.setItemText(0, _translate("settingsDialog", "none", None)) - self.comboBoxProxyType.setItemText(1, _translate("settingsDialog", "SOCKS4a", None)) - self.comboBoxProxyType.setItemText(2, _translate("settingsDialog", "SOCKS5", None)) - self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabNetworkSettings), _translate("settingsDialog", "Network Settings", None)) - self.label_9.setText(_translate("settingsDialog", "Total difficulty:", None)) - self.label_10.setText(_translate("settingsDialog", "The \'Total difficulty\' affects the absolute amount of work the sender must complete. Doubling this value doubles the amount of work.", None)) - self.label_11.setText(_translate("settingsDialog", "Small message difficulty:", None)) - self.label_8.setText(_translate("settingsDialog", "When someone sends you a message, their computer must first complete some work. The difficulty of this work, by default, is 1. You may raise this default for new addresses you create by changing the values here. Any new addresses you create will require senders to meet the higher difficulty. There is one exception: if you add a friend or acquaintance to your address book, Bitmessage will automatically notify them when you next send a message that they need only complete the minimum amount of work: difficulty 1. ", None)) - self.label_12.setText(_translate("settingsDialog", "The \'Small message difficulty\' mostly only affects the difficulty of sending small messages. Doubling this value makes it almost twice as difficult to send a small message but doesn\'t really affect large messages.", None)) - self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabDemandedDifficulty), _translate("settingsDialog", "Demanded difficulty", None)) - self.label_15.setText(_translate("settingsDialog", "Here you may set the maximum amount of work you are willing to do to send a message to another person. Setting these values to 0 means that any value is acceptable.", None)) - self.label_13.setText(_translate("settingsDialog", "Maximum acceptable total difficulty:", None)) - self.label_14.setText(_translate("settingsDialog", "Maximum acceptable small message difficulty:", None)) - self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabMaxAcceptableDifficulty), _translate("settingsDialog", "Max acceptable difficulty", None)) - self.label_16.setText(_translate("settingsDialog", "
Bitmessage can utilize a different Bitcoin-based program called Namecoin to make addresses human-friendly. For example, instead of having to tell your friend your long Bitmessage address, you can simply tell him to send a message to test.
(Getting your own Bitmessage address into Namecoin is still rather difficult).
Bitmessage can use either namecoind directly or a running nmcontrol instance.
", None)) - self.label_17.setText(_translate("settingsDialog", "Host:", None)) - self.label_18.setText(_translate("settingsDialog", "Port:", None)) - self.labelNamecoinUser.setText(_translate("settingsDialog", "Username:", None)) - self.labelNamecoinPassword.setText(_translate("settingsDialog", "Password:", None)) - self.pushButtonNamecoinTest.setText(_translate("settingsDialog", "Test", None)) - self.label_21.setText(_translate("settingsDialog", "Connect to:", None)) - self.radioButtonNamecoinNamecoind.setText(_translate("settingsDialog", "Namecoind", None)) - self.radioButtonNamecoinNmcontrol.setText(_translate("settingsDialog", "NMControl", None)) - self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabNamecoin), _translate("settingsDialog", "Namecoin integration", None)) - self.label_7.setText(_translate("settingsDialog", "By default, if you send a message to someone and he is offline for more than two days, Bitmessage will send the message again after an additional two days. This will be continued with exponential backoff forever; messages will be resent after 5, 10, 20 days ect. until the receiver acknowledges them. Here you may change that behavior by having Bitmessage give up after a certain number of days or months.
Leave these input fields blank for the default behavior.
", None)) - self.label_19.setText(_translate("settingsDialog", "Give up after", None)) - self.label_20.setText(_translate("settingsDialog", "and", None)) - self.label_22.setText(_translate("settingsDialog", "days", None)) - self.label_23.setText(_translate("settingsDialog", "months.", None)) - self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabResendsExpire), _translate("settingsDialog", "Resends Expire", None)) + settingsDialog.setWindowTitle(QtGui.QApplication.translate("settingsDialog", "Settings", None, QtGui.QApplication.UnicodeUTF8)) + self.checkBoxStartOnLogon.setText(QtGui.QApplication.translate("settingsDialog", "Start Bitmessage on user login", None, QtGui.QApplication.UnicodeUTF8)) + self.checkBoxStartInTray.setText(QtGui.QApplication.translate("settingsDialog", "Start Bitmessage in the tray (don\'t show main window)", None, QtGui.QApplication.UnicodeUTF8)) + self.checkBoxMinimizeToTray.setText(QtGui.QApplication.translate("settingsDialog", "Minimize to tray", None, QtGui.QApplication.UnicodeUTF8)) + self.checkBoxShowTrayNotifications.setText(QtGui.QApplication.translate("settingsDialog", "Show notification when message received", None, QtGui.QApplication.UnicodeUTF8)) + self.checkBoxPortableMode.setText(QtGui.QApplication.translate("settingsDialog", "Run in Portable Mode", None, QtGui.QApplication.UnicodeUTF8)) + self.PortableModeDescription.setText(QtGui.QApplication.translate("settingsDialog", "In Portable Mode, messages and config files are stored in the same directory as the program rather than the normal application-data folder. This makes it convenient to run Bitmessage from a USB thumb drive.", None, QtGui.QApplication.UnicodeUTF8)) + self.checkBoxWillinglySendToMobile.setText(QtGui.QApplication.translate("settingsDialog", "Willingly include unencrypted destination address when sending to a mobile device", None, QtGui.QApplication.UnicodeUTF8)) + self.checkBoxUseIdenticons.setText(QtGui.QApplication.translate("settingsDialog", "Use Identicons", None, QtGui.QApplication.UnicodeUTF8)) + self.checkBoxReplyBelow.setText(QtGui.QApplication.translate("settingsDialog", "Reply below Quote", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox.setTitle(QtGui.QApplication.translate("settingsDialog", "Interface Language", None, QtGui.QApplication.UnicodeUTF8)) + self.languageComboBox.setItemText(0, QtGui.QApplication.translate("settingsDialog", "System Settings", "system", QtGui.QApplication.UnicodeUTF8)) + self.languageComboBox.setItemText(1, QtGui.QApplication.translate("settingsDialog", "English", "en", QtGui.QApplication.UnicodeUTF8)) + self.languageComboBox.setItemText(2, QtGui.QApplication.translate("settingsDialog", "Esperanto", "eo", QtGui.QApplication.UnicodeUTF8)) + self.languageComboBox.setItemText(3, QtGui.QApplication.translate("settingsDialog", "Français", "fr", QtGui.QApplication.UnicodeUTF8)) + self.languageComboBox.setItemText(4, QtGui.QApplication.translate("settingsDialog", "Deutsch", "de", QtGui.QApplication.UnicodeUTF8)) + self.languageComboBox.setItemText(5, QtGui.QApplication.translate("settingsDialog", "Españl", "es", QtGui.QApplication.UnicodeUTF8)) + self.languageComboBox.setItemText(6, QtGui.QApplication.translate("settingsDialog", "русский язык", "ru", QtGui.QApplication.UnicodeUTF8)) + self.languageComboBox.setItemText(7, QtGui.QApplication.translate("settingsDialog", "Norsk", "no", QtGui.QApplication.UnicodeUTF8)) + self.languageComboBox.setItemText(8, QtGui.QApplication.translate("settingsDialog", "العربية", "ar", QtGui.QApplication.UnicodeUTF8)) + self.languageComboBox.setItemText(9, QtGui.QApplication.translate("settingsDialog", "简体中文", "zh_cn", QtGui.QApplication.UnicodeUTF8)) + self.languageComboBox.setItemText(10, QtGui.QApplication.translate("settingsDialog", "Pirate English", "en_pirate", QtGui.QApplication.UnicodeUTF8)) + self.languageComboBox.setItemText(11, QtGui.QApplication.translate("settingsDialog", "Other (set in keys.dat)", "other", QtGui.QApplication.UnicodeUTF8)) + self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabUserInterface), QtGui.QApplication.translate("settingsDialog", "User Interface", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox1.setTitle(QtGui.QApplication.translate("settingsDialog", "Listening port", None, QtGui.QApplication.UnicodeUTF8)) + self.label.setText(QtGui.QApplication.translate("settingsDialog", "Listen for connections on port:", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox_2.setTitle(QtGui.QApplication.translate("settingsDialog", "Proxy server / Tor", None, QtGui.QApplication.UnicodeUTF8)) + self.label_2.setText(QtGui.QApplication.translate("settingsDialog", "Type:", None, QtGui.QApplication.UnicodeUTF8)) + self.label_3.setText(QtGui.QApplication.translate("settingsDialog", "Server hostname:", None, QtGui.QApplication.UnicodeUTF8)) + self.label_4.setText(QtGui.QApplication.translate("settingsDialog", "Port:", None, QtGui.QApplication.UnicodeUTF8)) + self.checkBoxAuthentication.setText(QtGui.QApplication.translate("settingsDialog", "Authentication", None, QtGui.QApplication.UnicodeUTF8)) + self.label_5.setText(QtGui.QApplication.translate("settingsDialog", "Username:", None, QtGui.QApplication.UnicodeUTF8)) + self.label_6.setText(QtGui.QApplication.translate("settingsDialog", "Pass:", None, QtGui.QApplication.UnicodeUTF8)) + self.checkBoxSocksListen.setText(QtGui.QApplication.translate("settingsDialog", "Listen for incoming connections when using proxy", None, QtGui.QApplication.UnicodeUTF8)) + self.comboBoxProxyType.setItemText(0, QtGui.QApplication.translate("settingsDialog", "none", None, QtGui.QApplication.UnicodeUTF8)) + self.comboBoxProxyType.setItemText(1, QtGui.QApplication.translate("settingsDialog", "SOCKS4a", None, QtGui.QApplication.UnicodeUTF8)) + self.comboBoxProxyType.setItemText(2, QtGui.QApplication.translate("settingsDialog", "SOCKS5", None, QtGui.QApplication.UnicodeUTF8)) + self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabNetworkSettings), QtGui.QApplication.translate("settingsDialog", "Network Settings", None, QtGui.QApplication.UnicodeUTF8)) + self.label_9.setText(QtGui.QApplication.translate("settingsDialog", "Total difficulty:", None, QtGui.QApplication.UnicodeUTF8)) + self.label_10.setText(QtGui.QApplication.translate("settingsDialog", "The \'Total difficulty\' affects the absolute amount of work the sender must complete. Doubling this value doubles the amount of work.", None, QtGui.QApplication.UnicodeUTF8)) + self.label_11.setText(QtGui.QApplication.translate("settingsDialog", "Small message difficulty:", None, QtGui.QApplication.UnicodeUTF8)) + self.label_8.setText(QtGui.QApplication.translate("settingsDialog", "When someone sends you a message, their computer must first complete some work. The difficulty of this work, by default, is 1. You may raise this default for new addresses you create by changing the values here. Any new addresses you create will require senders to meet the higher difficulty. There is one exception: if you add a friend or acquaintance to your address book, Bitmessage will automatically notify them when you next send a message that they need only complete the minimum amount of work: difficulty 1. ", None, QtGui.QApplication.UnicodeUTF8)) + self.label_12.setText(QtGui.QApplication.translate("settingsDialog", "The \'Small message difficulty\' mostly only affects the difficulty of sending small messages. Doubling this value makes it almost twice as difficult to send a small message but doesn\'t really affect large messages.", None, QtGui.QApplication.UnicodeUTF8)) + self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabDemandedDifficulty), QtGui.QApplication.translate("settingsDialog", "Demanded difficulty", None, QtGui.QApplication.UnicodeUTF8)) + self.label_15.setText(QtGui.QApplication.translate("settingsDialog", "Here you may set the maximum amount of work you are willing to do to send a message to another person. Setting these values to 0 means that any value is acceptable.", None, QtGui.QApplication.UnicodeUTF8)) + self.label_13.setText(QtGui.QApplication.translate("settingsDialog", "Maximum acceptable total difficulty:", None, QtGui.QApplication.UnicodeUTF8)) + self.label_14.setText(QtGui.QApplication.translate("settingsDialog", "Maximum acceptable small message difficulty:", None, QtGui.QApplication.UnicodeUTF8)) + self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabMaxAcceptableDifficulty), QtGui.QApplication.translate("settingsDialog", "Max acceptable difficulty", None, QtGui.QApplication.UnicodeUTF8)) + self.label_16.setText(QtGui.QApplication.translate("settingsDialog", "Bitmessage can utilize a different Bitcoin-based program called Namecoin to make addresses human-friendly. For example, instead of having to tell your friend your long Bitmessage address, you can simply tell him to send a message to test.
(Getting your own Bitmessage address into Namecoin is still rather difficult).
Bitmessage can use either namecoind directly or a running nmcontrol instance.
", None, QtGui.QApplication.UnicodeUTF8)) + self.label_17.setText(QtGui.QApplication.translate("settingsDialog", "Host:", None, QtGui.QApplication.UnicodeUTF8)) + self.label_18.setText(QtGui.QApplication.translate("settingsDialog", "Port:", None, QtGui.QApplication.UnicodeUTF8)) + self.labelNamecoinUser.setText(QtGui.QApplication.translate("settingsDialog", "Username:", None, QtGui.QApplication.UnicodeUTF8)) + self.labelNamecoinPassword.setText(QtGui.QApplication.translate("settingsDialog", "Password:", None, QtGui.QApplication.UnicodeUTF8)) + self.pushButtonNamecoinTest.setText(QtGui.QApplication.translate("settingsDialog", "Test", None, QtGui.QApplication.UnicodeUTF8)) + self.label_21.setText(QtGui.QApplication.translate("settingsDialog", "Connect to:", None, QtGui.QApplication.UnicodeUTF8)) + self.radioButtonNamecoinNamecoind.setText(QtGui.QApplication.translate("settingsDialog", "Namecoind", None, QtGui.QApplication.UnicodeUTF8)) + self.radioButtonNamecoinNmcontrol.setText(QtGui.QApplication.translate("settingsDialog", "NMControl", None, QtGui.QApplication.UnicodeUTF8)) + self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabNamecoin), QtGui.QApplication.translate("settingsDialog", "Namecoin integration", None, QtGui.QApplication.UnicodeUTF8)) + self.label_7.setText(QtGui.QApplication.translate("settingsDialog", "By default, if you send a message to someone and he is offline for more than two days, Bitmessage will send the message again after an additional two days. This will be continued with exponential backoff forever; messages will be resent after 5, 10, 20 days ect. until the receiver acknowledges them. Here you may change that behavior by having Bitmessage give up after a certain number of days or months.
Leave these input fields blank for the default behavior.
", None, QtGui.QApplication.UnicodeUTF8)) + self.label_19.setText(QtGui.QApplication.translate("settingsDialog", "Give up after", None, QtGui.QApplication.UnicodeUTF8)) + self.label_20.setText(QtGui.QApplication.translate("settingsDialog", "and", None, QtGui.QApplication.UnicodeUTF8)) + self.label_22.setText(QtGui.QApplication.translate("settingsDialog", "days", None, QtGui.QApplication.UnicodeUTF8)) + self.label_23.setText(QtGui.QApplication.translate("settingsDialog", "months.", None, QtGui.QApplication.UnicodeUTF8)) + self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabResendsExpire), QtGui.QApplication.translate("settingsDialog", "Resends Expire", None, QtGui.QApplication.UnicodeUTF8)) import bitmessage_icons_rc diff --git a/src/bitmessageqt/settings.ui b/src/bitmessageqt/settings.ui index 2af19613..4cb8fb4e 100644 --- a/src/bitmessageqt/settings.ui +++ b/src/bitmessageqt/settings.ui @@ -105,7 +105,14 @@ -