forked from qt-creator/qt-creator
Allow to link current project to a dashboard project. Change-Id: If73caab0e26b4b5151dbab1a6c9db72857fddacc Reviewed-by: David Schulz <david.schulz@qt.io>
68 lines
1.7 KiB
C++
68 lines
1.7 KiB
C++
// Copyright (C) 2022 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial
|
|
|
|
#pragma once
|
|
|
|
#include "axivionsettings.h"
|
|
|
|
#include <projectexplorer/projectsettingswidget.h>
|
|
|
|
#include <QObject>
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
class QLabel;
|
|
class QPushButton;
|
|
class QTreeWidget;
|
|
QT_END_NAMESPACE
|
|
|
|
namespace ProjectExplorer { class Project; }
|
|
|
|
namespace Utils { class InfoLabel; }
|
|
|
|
namespace Axivion::Internal {
|
|
|
|
class DashboardInfo;
|
|
|
|
class AxivionProjectSettings : public QObject
|
|
{
|
|
public:
|
|
explicit AxivionProjectSettings(ProjectExplorer::Project *project);
|
|
|
|
void setDashboardProjectName(const QString &name) { m_dashboardProjectName = name; }
|
|
QString dashboardProjectName() const { return m_dashboardProjectName; }
|
|
|
|
private:
|
|
void load();
|
|
void save();
|
|
|
|
ProjectExplorer::Project *m_project = nullptr;
|
|
QString m_dashboardProjectName;
|
|
};
|
|
|
|
class AxivionProjectSettingsWidget : public ProjectExplorer::ProjectSettingsWidget
|
|
{
|
|
public:
|
|
explicit AxivionProjectSettingsWidget(ProjectExplorer::Project *project,
|
|
QWidget *parent = nullptr);
|
|
|
|
private:
|
|
void fetchProjects();
|
|
void onDashboardInfoReceived(const DashboardInfo &info);
|
|
void onSettingsChanged();
|
|
void linkProject();
|
|
void unlinkProject();
|
|
void updateUi();
|
|
void updateEnabledStates();
|
|
|
|
AxivionProjectSettings *m_projectSettings = nullptr;
|
|
AxivionSettings *m_globalSettings;
|
|
QLabel *m_linkedProject = nullptr;
|
|
QTreeWidget *m_dashboardProjects = nullptr;
|
|
QPushButton *m_fetchProjects = nullptr;
|
|
QPushButton *m_link = nullptr;
|
|
QPushButton *m_unlink = nullptr;
|
|
Utils::InfoLabel *m_infoLabel = nullptr;
|
|
};
|
|
|
|
} // Axivion::Internal
|