@@ -140,7 +140,7 @@ def __init__(
140140 self .set_text (text )
141141
142142 # self.message_label.setSizePolicy(
143- # QSizePolicy.Policy.Maximum , QSizePolicy.Policy.Minimum
143+ # QSizePolicy.Policy.Expanding , QSizePolicy.Policy.Minimum
144144 # )
145145
146146 if text is not None :
@@ -314,7 +314,7 @@ def add_streaming_chunk(self, chunk_queue: list):
314314
315315 # Start the streaming timer if not active
316316 if not self .streaming_timer .isActive ():
317- self .streaming_timer .start (24 )
317+ self .streaming_timer .start (40 )
318318
319319 # Add characters to queue for smooth rendering
320320 self .character_queue = chunk_queue
@@ -328,11 +328,11 @@ def _render_next_character(self):
328328
329329 # Adaptive rendering speed based on queue size
330330 if len (self .character_queue ) > 100 :
331- chars_per_frame = 21 # Speed up for large queues
331+ chars_per_frame = 40 # Speed up for large queues
332332 elif len (self .character_queue ) > 50 :
333- chars_per_frame = 15
333+ chars_per_frame = 30
334334 else :
335- chars_per_frame = 10 # Slower for natural effect
335+ chars_per_frame = 20 # Slower for natural effect
336336
337337 # Render characters for this frame
338338 new_chars = ""
@@ -354,6 +354,10 @@ def _finalize_streaming(self):
354354
355355 self .message_label .setTextFormat (Qt .TextFormat .RichText )
356356 # Now convert to markdown with full formatting
357+ self .message_label .setTextInteractionFlags (
358+ Qt .TextInteractionFlag .TextSelectableByMouse
359+ | Qt .TextInteractionFlag .LinksAccessibleByMouse
360+ )
357361 self .set_text (self .raw_text_buffer )
358362
359363 def stop_streaming (self ):
0 commit comments