优化聊天输入和对话气泡交互

This commit is contained in:
2026-05-29 12:35:51 +08:00
parent cc517e149d
commit 27d63965f4
9 changed files with 585 additions and 28 deletions
+9
View File
@@ -14,9 +14,11 @@
#include <memory>
class QMenu;
class QHideEvent;
class QMoveEvent;
class QPixmap;
class ChatBubble;
class ChatInputDialog;
class ConversationManager;
class LLMProvider;
class PetView;
@@ -35,6 +37,8 @@ public:
protected:
void contextMenuEvent(QContextMenuEvent *event) override;
void hideEvent(QHideEvent *event) override;
void mouseDoubleClickEvent(QMouseEvent *event) override;
void mouseMoveEvent(QMouseEvent *event) override;
void mousePressEvent(QMouseEvent *event) override;
void mouseReleaseEvent(QMouseEvent *event) override;
@@ -46,9 +50,13 @@ private:
void addStateTestActions(QMenu *menu);
void startAITest();
void startChat();
bool submitChatMessage(const QString &message);
void clearConversation();
void cancelActiveAIRequest();
void showConversationHistory();
bool hasActiveAIRequest() const;
void resetBubbleAutoHideTimer();
QPoint chatInputAnchorPosition() const;
void updateBubblePosition();
QPoint bubbleAnchorPosition() const;
void playState(const QString &stateName, bool centerWindow);
@@ -62,6 +70,7 @@ private:
void setAlwaysOnTop(bool enabled);
std::unique_ptr<ChatBubble> m_chatBubble;
std::unique_ptr<ChatInputDialog> m_chatInputDialog;
std::unique_ptr<ConversationManager> m_conversationManager;
std::unique_ptr<LLMProvider> m_aiTestProvider;
PetView *m_petView;