File indexing completed on 2024-05-19 11:32:52
0001 /* 0002 This file is part of KDE. 0003 0004 SPDX-FileCopyrightText: 2010 Sebastian Kügler <sebas@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #ifndef PROJECTTEST_H 0010 #define PROJECTTEST_H 0011 0012 #include "ui_editproject.h" 0013 0014 #include <QLabel> 0015 #include <QMainWindow> 0016 0017 #include <project.h> 0018 #include <providermanager.h> 0019 0020 namespace Attica 0021 { 0022 class Project; 0023 class BaseJob; 0024 class Provider; 0025 } 0026 0027 class ProjectTest : public QMainWindow 0028 { 0029 Q_OBJECT 0030 public: 0031 ProjectTest(); 0032 ~ProjectTest() override; 0033 0034 private Q_SLOTS: 0035 void providerAdded(const Attica::Provider &provider); 0036 0037 void projectListResult(Attica::BaseJob *); 0038 void projectResult(Attica::BaseJob *); 0039 void createProjectResult(Attica::BaseJob *j); 0040 void saveProjectResult(Attica::BaseJob *j); 0041 void deleteProjectResult(Attica::BaseJob *j); 0042 0043 void buildServiceListResult(Attica::BaseJob *); 0044 void buildServiceJobListResult(Attica::BaseJob *); 0045 0046 void save(); 0047 void create(); 0048 void deleteProject(); // don't clashs with keyword 0049 0050 void selectedBuildServiceChanged(QListWidgetItem *current, QListWidgetItem *previous); 0051 void createBuildServiceJob(); 0052 void buildServiceJobCreated(Attica::BaseJob *j); 0053 void cancelBuildServiceJob(); 0054 void buildServiceJobCanceled(Attica::BaseJob *j); 0055 0056 void updateCurrentProject(); 0057 0058 private: 0059 void initOcs(); 0060 void getProject(QString id); 0061 void deleteProject(QString id); 0062 void listProjects(); 0063 void listBuildServices(); 0064 void listBuildServiceJobs(const Attica::Project &p); 0065 0066 void setStatus(QString status); 0067 Attica::Project uiToProject(); 0068 void projectToUi(const Attica::Project &p); 0069 QString currentProject(); 0070 0071 Attica::ProviderManager m_pm; 0072 Attica::Provider m_provider; 0073 QHash<QString, QSharedPointer<Attica::Provider>> m_providers; 0074 0075 QString m_currentProjectId; 0076 0077 QWidget *m_mainWidget; 0078 0079 Ui::EditProject *m_editor; 0080 0081 QHash<QString, Attica::BuildService> m_buildServices; 0082 QHash<QString, Attica::BuildServiceJob> m_buildServiceJobs; 0083 QHash<QString, Attica::Project> m_projects; 0084 }; 0085 0086 #endif // PROJECTTEST_H