主窗口新增 VoiceInputService 生命周期管理,支持通过配置页面 的开关动态启停 CapsLock 语音输入功能,窗口关闭时自动清理。 设置页面新增两个复选框: - 调试录音:保存每次识别的原始音频到临时文件夹 - 快捷语音:启用 CapsLock 长按语音输入 转写页面和 STT 测试页面同步配置中的调试音频开关到引擎。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
44 lines
881 B
C++
44 lines
881 B
C++
#pragma once
|
|
|
|
#include <QMainWindow>
|
|
#include <QTabWidget>
|
|
#include <memory>
|
|
|
|
namespace impress {
|
|
|
|
class ConfigManager;
|
|
class STTTestPage;
|
|
class FileTranscribePage;
|
|
class SettingsPage;
|
|
class VoiceInputService;
|
|
|
|
/**
|
|
* @brief 主窗口
|
|
*
|
|
* 使用 Tab 页导航管理三个功能页面。
|
|
*/
|
|
class MainWindow : public QMainWindow {
|
|
Q_OBJECT
|
|
public:
|
|
explicit MainWindow(ConfigManager* configManager, QWidget* parent = nullptr);
|
|
~MainWindow() override;
|
|
|
|
protected:
|
|
void closeEvent(QCloseEvent* event) override;
|
|
|
|
private:
|
|
void setupUI();
|
|
void setupMenuBar();
|
|
void loadStyleSheet();
|
|
void onVoiceInputConfigChanged();
|
|
|
|
ConfigManager* configManager_;
|
|
VoiceInputService* voiceInputService_;
|
|
STTTestPage* sttPage_;
|
|
FileTranscribePage* transcribePage_;
|
|
SettingsPage* settingsPage_;
|
|
QTabWidget* tabWidget_;
|
|
};
|
|
|
|
} // namespace impress
|