Skip to content
Snippets Groups Projects
Commit 7003a6d6 authored by Philipp Hörist's avatar Philipp Hörist
Browse files

Make Correction Work again

parent dc6ac2ad
No related branches found
No related tags found
No related merge requests found
...@@ -127,6 +127,7 @@ class StrikeSpan(StyleObject): ...@@ -127,6 +127,7 @@ class StrikeSpan(StyleObject):
@dataclass @dataclass
class ParsingResult: class ParsingResult:
text: str
blocks: list blocks: list
...@@ -144,7 +145,7 @@ def process(text, nested=False): ...@@ -144,7 +145,7 @@ def process(text, nested=False):
result = process(block.unquote(), nested=True) result = process(block.unquote(), nested=True)
block.blocks = result.blocks block.blocks = result.blocks
return ParsingResult(blocks) return ParsingResult(text, blocks)
def _parse_blocks(text, nested): def _parse_blocks(text, nested):
......
...@@ -24,8 +24,15 @@ def __init__(self, account): ...@@ -24,8 +24,15 @@ def __init__(self, account):
Gtk.Box.__init__(self, orientation=Gtk.Orientation.VERTICAL) Gtk.Box.__init__(self, orientation=Gtk.Orientation.VERTICAL)
self._account = account self._account = account
def add_content(self, blocks): self._content = None
for block in blocks:
def get_content(self):
return self._content
def add_content(self, content):
self.clear()
self._content = content
for block in content.blocks:
if block.name == 'plain': if block.name == 'plain':
widget = PlainWidget(self._account) widget = PlainWidget(self._account)
widget.add_content(block) widget.add_content(block)
...@@ -40,8 +47,13 @@ def add_content(self, blocks): ...@@ -40,8 +47,13 @@ def add_content(self, blocks):
if block.name == 'quote': if block.name == 'quote':
message_widget = MessageWidget(self._account) message_widget = MessageWidget(self._account)
message_widget.add_content(block.blocks) message_widget.add_content(block)
widget = QuoteWidget(self._account) widget = QuoteWidget(self._account)
widget.attach_message_widget(message_widget) widget.attach_message_widget(message_widget)
self.add(widget) self.add(widget)
continue continue
self.show_all()
def clear(self):
self.foreach(self.remove)
...@@ -60,7 +60,7 @@ def __init__(self, ...@@ -60,7 +60,7 @@ def __init__(self,
result = process(text) result = process(text)
message_widget = MessageWidget(account) message_widget = MessageWidget(account)
message_widget.add_content(result.blocks) message_widget.add_content(result)
self.grid.attach(message_widget, 1, 0, 1, 1) self.grid.attach(message_widget, 1, 0, 1, 1)
self.show_all() self.show_all()
...@@ -82,8 +82,8 @@ def __init__(self, ...@@ -82,8 +82,8 @@ def __init__(self,
'conversation-mention-highlight') 'conversation-mention-highlight')
result = process(text) result = process(text)
message_widget = MessageWidget(account) self._message_widget = MessageWidget(account)
message_widget.add_content(result.blocks) self._message_widget.add_content(result)
self._meta_box = Gtk.Box(spacing=6) self._meta_box = Gtk.Box(spacing=6)
self._meta_box.pack_start( self._meta_box.pack_start(
...@@ -129,7 +129,7 @@ def __init__(self, ...@@ -129,7 +129,7 @@ def __init__(self,
avatar_placeholder.add(self._avatar_surface) avatar_placeholder.add(self._avatar_surface)
bottom_box = Gtk.Box(spacing=6) bottom_box = Gtk.Box(spacing=6)
bottom_box.add(message_widget) bottom_box.add(self._message_widget)
bottom_box.add(MoreMenuButton(self, history_mode=history_mode)) bottom_box.add(MoreMenuButton(self, history_mode=history_mode))
self.grid.attach(avatar_placeholder, 0, 0, 1, 2) self.grid.attach(avatar_placeholder, 0, 0, 1, 2)
...@@ -214,21 +214,15 @@ def set_receipt(self): ...@@ -214,21 +214,15 @@ def set_receipt(self):
def set_displayed(self): def set_displayed(self):
self._has_displayed = True self._has_displayed = True
def set_correction(self, message_id, text, other_text_tags, kind, name, def set_correction(self, text, message_id):
additional_data=None): self._corrections.append(self._message_widget.get_content().text)
self._corrections.append(self.textview.get_text()) result = process(text)
self.textview.clear() self._message_widget.add_content(result)
self._has_receipt = False self._has_receipt = False
self._message_icons.set_receipt_icon_visible(False) self._message_icons.set_receipt_icon_visible(False)
self._message_icons.set_correction_icon_visible(True) self._message_icons.set_correction_icon_visible(True)
self.textview.print_text(
text,
other_text_tags=other_text_tags,
kind=kind,
name=name,
additional_data=additional_data)
corrections = '\n'.join(line for line in self._corrections) corrections = '\n'.join(line for line in self._corrections)
corrections = reduce_chars_newlines( corrections = reduce_chars_newlines(
corrections, max_chars=150, max_lines=10) corrections, max_chars=150, max_lines=10)
......
...@@ -150,14 +150,7 @@ def add_message(self, ...@@ -150,14 +150,7 @@ def add_message(self,
history_mode=self._history_mode) history_mode=self._history_mode)
else: else:
if correct_id: if correct_id:
self.correct_message( self.correct_message(correct_id, message_id, text)
correct_id,
message_id,
text,
other_text_tags,
kind,
name,
additional_data=additional_data)
return return
avatar = self._get_avatar(kind, name) avatar = self._get_avatar(kind, name)
...@@ -371,13 +364,10 @@ def scroll_to_end(self, force=False): ...@@ -371,13 +364,10 @@ def scroll_to_end(self, force=False):
if self.autoscroll or force: if self.autoscroll or force:
GLib.idle_add(scroll_to_end, self.get_parent().get_parent()) GLib.idle_add(scroll_to_end, self.get_parent().get_parent())
def correct_message(self, correct_id, message_id, text, def correct_message(self, correct_id, message_id, text):
other_text_tags, kind, name, additional_data=None):
message_row = self._get_row_by_message_id(correct_id) message_row = self._get_row_by_message_id(correct_id)
if message_row is not None: if message_row is not None:
message_row.set_correction( message_row.set_correction(text, message_id)
message_id, text, other_text_tags, kind, name,
additional_data=additional_data)
message_row.set_merged(False) message_row.set_merged(False)
def show_receipt(self, id_): def show_receipt(self, id_):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment