MCPcopy Create free account
hub / github.com/Palm1r/QodeAssist / createProjectPanel

Function createProjectPanel

settings/ProjectSettingsPanel.cpp:36–108  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34};
35
36static ProjectSettingsWidget *createProjectPanel(Project *project)
37{
38 using namespace Layouting;
39
40 auto widget = new ProjectSettingsWidget;
41 auto settings = new ProjectSettings(project);
42 settings->setParent(widget);
43
44 QObject::connect(
45 widget,
46 &ProjectSettingsWidget::useGlobalSettingsChanged,
47 settings,
48 &ProjectSettings::setUseGlobalSettings);
49
50 widget->setUseGlobalSettings(settings->useGlobalSettings());
51
52 auto generalWidget = new QWidget;
53 Column{
54 settings->enableQodeAssist,
55 Space{8},
56 settings->chatHistoryPath,
57 }
58 .attachTo(generalWidget);
59
60 generalWidget->setEnabled(!settings->useGlobalSettings());
61 QObject::connect(
62 widget,
63 &ProjectSettingsWidget::useGlobalSettingsChanged,
64 generalWidget,
65 [generalWidget](bool useGlobal) { generalWidget->setEnabled(!useGlobal); });
66
67 auto skillsList = new QListWidget;
68 skillsList->setSelectionMode(QAbstractItemView::NoSelection);
69 skillsList->setMaximumHeight(160);
70
71 auto refreshSkills = [skillsList, project, settings] {
72 skillsList->clear();
73
74 // Project-only roots: the global page shows global skills separately.
75 const QStringList roots = Skills::SkillsManager::resolveRoots(
76 project->projectDirectory().toFSPathString(),
77 {},
78 SkillsSettings::splitLines(settings->projectSkillDirs()));
79
80 const QVector<Skills::AgentSkill> skills = Skills::SkillsLoader::scan(roots);
81 for (const Skills::AgentSkill &skill : skills) {
82 auto *item = new QListWidgetItem(
83 QStringLiteral("%1 — %2").arg(skill.name, skill.description), skillsList);
84 item->setToolTip(skill.skillDir);
85 }
86 if (skills.isEmpty())
87 new QListWidgetItem(Tr::tr("No skills discovered."), skillsList);
88 };
89 refreshSkills();
90 QObject::connect(
91 &settings->projectSkillDirs, &Utils::BaseAspect::changed, skillsList, refreshSkills);
92
93 Column{

Callers

nothing calls this directly

Calls 3

setUseGlobalSettingsMethod · 0.80
clearMethod · 0.45
isEmptyMethod · 0.45

Tested by

no test coverage detected