-
-
Notifications
You must be signed in to change notification settings - Fork 115
Open
Description
Bug Report
Description
When using the "In a pop-up window (with follow-up support)" response mode, the "Copy as Markdown" button (2) copies only the first AI response instead of the latest/last response in the conversation.
Steps to Reproduce
- Select text and invoke Writing Tools
- Choose any action (e.g., "Rewrite")
- Set response mode to "In a pop-up window (with follow-up support)"
- Receive initial AI response
- Ask a follow-up question (e.g., "more info")
- Receive second response
- Click "Copy as Markdown" button
Expected: Copies the latest response (step 6)
Actual: Copies the first response (step 4)
Screenshots
Suggested Fix
The "Copy as Markdown" button should copy the last response in the conversation, not the first.
Feature Request: Improved UX for multi-response dialogs
Problem
When using follow-up mode, users often want to:
- Copy a specific response (not always the first or last)
- Use a specific response to replace the original text
Currently there's no easy way to do either.
Proposed Solution
Option A: Add buttons to each response block (Recommended)
Add two buttons next to each AI response:
┌─────────────────────────────────────────────────┐
│ Response 1: "Short version of the text..." │
│ [Copy] [Use] │
├─────────────────────────────────────────────────┤
│ Response 2: "Detailed version with bullets..." │
│ [Copy] [Use] │
└─────────────────────────────────────────────────┘
- [Copy] — Copy this specific response to clipboard
- [Use] / [Replace] — Replace original selected text with this response
Option B: Dropdown selector
Add a dropdown next to "Copy as Markdown":
[Copy as Markdown ▼]
├── Copy Response 1
├── Copy Response 2
└── Copy All
Option C: Click-to-select (minimal UI change)
- Click on a response block to select it (highlight border)
- "Copy as Markdown" copies the selected block
- Add "Use Selected" button to replace text
Recommended Implementation (Option A)
# Pseudocode for response block widget
class ResponseBlock(QWidget):
def __init__(self, response_text, index):
self.text = response_text
self.index = index
# Layout
self.copy_btn = QPushButton("📋") # Copy icon
self.use_btn = QPushButton("✓ Use") # Replace text
self.copy_btn.clicked.connect(self.copy_to_clipboard)
self.use_btn.clicked.connect(self.replace_original_text)
def copy_to_clipboard(self):
QApplication.clipboard().setText(self.text)
def replace_original_text(self):
# Send this response back to replace selected text
self.parent().apply_response(self.text)Benefits
- Clarity — User always knows what will be copied/used
- Flexibility — Can choose any response, not just first/last
- Efficiency — One click to replace text with chosen version
- Consistency — Similar UX pattern used by ChatGPT, Claude, etc.
Additional Suggestion
Consider adding keyboard shortcuts:
Ctrl+1,Ctrl+2, etc. — Copy response NEnterorCtrl+Enter— Use/apply the last response
Environment
- OS: Linux (Qubes OS 4.3, Debian 13)
- Writing Tools version: v8
- AI Provider: OpenAI
Thank you for this amazing tool! 🙏
Metadata
Metadata
Assignees
Labels
No labels