diff options
Diffstat (limited to 'src/plugins/copilot/copilotprojectpanel.cpp')
-rw-r--r-- | src/plugins/copilot/copilotprojectpanel.cpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/plugins/copilot/copilotprojectpanel.cpp b/src/plugins/copilot/copilotprojectpanel.cpp new file mode 100644 index 00000000000..f1eb5d119e8 --- /dev/null +++ b/src/plugins/copilot/copilotprojectpanel.cpp @@ -0,0 +1,59 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "copilotprojectpanel.h" +#include "copilotconstants.h" +#include "copilotsettings.h" + +#include <projectexplorer/project.h> +#include <projectexplorer/projectsettingswidget.h> + +#include <utils/layoutbuilder.h> + +#include <QWidget> + +using namespace ProjectExplorer; + +namespace Copilot::Internal { + +class CopilotProjectSettingsWidget : public ProjectExplorer::ProjectSettingsWidget +{ +public: + CopilotProjectSettingsWidget() + { + setGlobalSettingsId(Constants::COPILOT_GENERAL_OPTIONS_ID); + setUseGlobalSettingsCheckBoxVisible(true); + } +}; + +ProjectSettingsWidget *createCopilotProjectPanel(Project *project) +{ + using namespace Layouting; + using namespace ProjectExplorer; + + auto widget = new CopilotProjectSettingsWidget; + auto settings = new CopilotProjectSettings(project, widget); + + QObject::connect(widget, + &ProjectSettingsWidget::useGlobalSettingsChanged, + settings, + &CopilotProjectSettings::setUseGlobalSettings); + + widget->setUseGlobalSettings(settings->useGlobalSettings()); + widget->setEnabled(!settings->useGlobalSettings()); + + QObject::connect(widget, + &ProjectSettingsWidget::useGlobalSettingsChanged, + widget, + [widget](bool useGlobal) { widget->setEnabled(!useGlobal); }); + + // clang-format off + Column { + settings->enableCopilot, + }.attachTo(widget); + // clang-format on + + return widget; +} + +} // namespace Copilot::Internal |