diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py
index ce477836..cd5c6f28 100644
--- a/src/bitmessageqt/__init__.py
+++ b/src/bitmessageqt/__init__.py
@@ -29,6 +29,7 @@ import os
from pyelliptic.openssl import OpenSSL
import pickle
import platform
+import textwrap
try:
from PyQt4 import QtCore, QtGui
@@ -2028,6 +2029,26 @@ class MyForm(QtGui.QMainWindow):
content = content.replace('\n\n', '
')
self.ui.textEditInboxMessage.setHtml(QtCore.QString(content))
+ # Helper for formatting quotes.
+ quoteWrapper = textwrap.TextWrapper(replace_whitespace = False,
+ initial_indent = '> ',
+ subsequent_indent = '> ',
+ break_long_words = False,
+ break_on_hyphens = False)
+
+ def quoted_text(self, message):
+ 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 self.quoteWrapper.fill(line)
+ return '\n'.join([quote_line(l) for l in message.splitlines()])
+
def on_action_InboxReply(self):
currentInboxRow = self.ui.tableWidgetInbox.currentRow()
toAddressAtCurrentInboxRow = str(self.ui.tableWidgetInbox.item(
@@ -2049,8 +2070,10 @@ class MyForm(QtGui.QMainWindow):
self.ui.lineEditTo.setText(str(fromAddressAtCurrentInboxRow))
self.ui.comboBoxSendFrom.setCurrentIndex(0)
# self.ui.comboBoxSendFrom.setEditText(str(self.ui.tableWidgetInbox.item(currentInboxRow,0).text))
- self.ui.textEditMessage.setText('\n\n------------------------------------------------------\n' + self.ui.tableWidgetInbox.item(
- currentInboxRow, 2).data(Qt.UserRole).toPyObject())
+ originalMessage = self.ui.tableWidgetInbox.item(currentInboxRow, 2)
+ originalMessageText = originalMessage.data(Qt.UserRole).toPyObject()
+ quotedText = self.quoted_text(str(originalMessageText))
+ self.ui.textEditMessage.setText(quotedText + '\n\n')
if self.ui.tableWidgetInbox.item(currentInboxRow, 2).text()[0:3] == 'Re:':
self.ui.lineEditSubject.setText(
self.ui.tableWidgetInbox.item(currentInboxRow, 2).text())