blob: cfd5a7740e06e9db07eeef0ff3f83930450855bb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
// Copyright (C) 2025 David M. Cotter
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#pragma once
#include <QMap>
#include <QObject>
#include <QStringList>
namespace Mcp::Internal {
class IssuesManager;
class McpCommands : public QObject
{
Q_OBJECT
public:
explicit McpCommands(QObject *parent = nullptr);
// Core MCP commands
bool build();
QString debug();
QString stopDebug();
bool openFile(const QString &path);
QStringList listProjects();
QStringList listBuildConfigs();
bool switchToBuildConfig(const QString &name);
bool quit();
QString getVersion();
QString getBuildStatus();
// Additional useful commands
QString getCurrentProject();
QString getCurrentBuildConfig();
bool runProject();
bool cleanProject();
QStringList listOpenFiles();
// Session management commands
QStringList listSessions();
QString getCurrentSession();
bool loadSession(const QString &sessionName);
bool saveSession();
// Issue management commands
QStringList listIssues();
// Method metadata management
QString getMethodMetadata();
QString setMethodMetadata(const QString &method, int timeoutSeconds);
int getMethodTimeout(const QString &method) const;
// Debugging management helpers
bool isDebuggingActive();
QString abortDebug();
bool killDebuggedProcesses();
void performDebuggingCleanup();
bool performDebuggingCleanupSync();
signals:
void sessionLoadRequested(const QString &sessionName);
private slots:
void handleSessionLoadRequest(const QString &sessionName);
private:
bool hasValidProject() const;
bool m_sessionLoadResult;
// Method timeout storage
QMap<QString, int> m_methodTimeouts;
// Issues management
IssuesManager *m_issuesManager;
};
} // namespace Mcp::Internal
|