mirror of
https://github.com/Palm1r/QodeAssist.git
synced 2026-05-30 02:49:12 -04:00
feat: Add agents and agents settings
This commit is contained in:
91
settings/AgentDetailPane.hpp
Normal file
91
settings/AgentDetailPane.hpp
Normal file
@@ -0,0 +1,91 @@
|
||||
// Copyright (C) 2024-2026 Petr Mironychev
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QPointer>
|
||||
#include <QStringList>
|
||||
#include <QWidget>
|
||||
|
||||
#include <AgentConfig.hpp>
|
||||
|
||||
class QComboBox;
|
||||
class QLabel;
|
||||
class QLineEdit;
|
||||
class QPlainTextEdit;
|
||||
class QPushButton;
|
||||
class QToolButton;
|
||||
|
||||
namespace QodeAssist::Providers {
|
||||
class ProviderInstanceFactory;
|
||||
}
|
||||
|
||||
namespace QodeAssist::Settings {
|
||||
|
||||
class SectionBox;
|
||||
|
||||
class AgentDetailPane : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit AgentDetailPane(QWidget *parent = nullptr);
|
||||
|
||||
void setInstanceFactory(Providers::ProviderInstanceFactory *factory);
|
||||
void setAgent(const AgentConfig &cfg);
|
||||
void clear();
|
||||
void setLoadDiagnostics(const QStringList &errors, const QStringList &warnings);
|
||||
|
||||
signals:
|
||||
void openInEditorRequested(const AgentConfig &cfg);
|
||||
void customizeRequested(const AgentConfig &cfg);
|
||||
void deleteRequested(const AgentConfig &cfg);
|
||||
|
||||
protected:
|
||||
void changeEvent(QEvent *event) override;
|
||||
|
||||
private:
|
||||
QLineEdit *makeReadOnlyLine(bool mono = false);
|
||||
void applyCodePalette();
|
||||
void populateProviderCombo();
|
||||
|
||||
bool m_inApplyPalette = false;
|
||||
bool m_providerComboPopulated = false;
|
||||
bool m_providerComboHasSentinel = false;
|
||||
|
||||
AgentConfig m_currentStorage;
|
||||
const AgentConfig *m_current = nullptr;
|
||||
|
||||
QLabel *m_name = nullptr;
|
||||
QLabel *m_path = nullptr;
|
||||
QPushButton *m_openBtn = nullptr;
|
||||
QPushButton *m_dupBtn = nullptr;
|
||||
QPushButton *m_deleteBtn = nullptr;
|
||||
QLabel *m_description = nullptr;
|
||||
|
||||
QLineEdit *m_nameValue = nullptr;
|
||||
QLabel *m_extendsLabel = nullptr;
|
||||
QWidget *m_extendsHolder = nullptr;
|
||||
QLineEdit *m_extendsValue = nullptr;
|
||||
QPlainTextEdit *m_descriptionEdit = nullptr;
|
||||
QLineEdit *m_tagsValue = nullptr;
|
||||
|
||||
QComboBox *m_providerCombo = nullptr;
|
||||
QPointer<Providers::ProviderInstanceFactory> m_instanceFactory;
|
||||
QLineEdit *m_endpointValue = nullptr;
|
||||
QLineEdit *m_modelValue = nullptr;
|
||||
QLabel *m_effectiveUrl = nullptr;
|
||||
|
||||
QLineEdit *m_filePatternsValue = nullptr;
|
||||
|
||||
QPlainTextEdit *m_roleText = nullptr;
|
||||
QPlainTextEdit *m_contextText = nullptr;
|
||||
QPlainTextEdit *m_messageFormat = nullptr;
|
||||
|
||||
SectionBox *m_diagnostics = nullptr;
|
||||
QPlainTextEdit *m_diagnosticsView = nullptr;
|
||||
|
||||
QToolButton *m_rawToggle = nullptr;
|
||||
QPlainTextEdit *m_rawToml = nullptr;
|
||||
};
|
||||
|
||||
} // namespace QodeAssist::Settings
|
||||
Reference in New Issue
Block a user