1 /*
2     SPDX-FileCopyrightText: 2007 Alexander Dymo <adymo@kdevelop.org>
3 
4     SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #ifndef _PROJECTSELECTIONPAGE_H_
8 #define _PROJECTSELECTIONPAGE_H_
9 
10 #include "appwizardpagewidget.h"
11 #include "appwizarddialog.h"
12 
13 namespace Ui {
14 class ProjectSelectionPage;
15 }
16 
17 class ProjectTemplatesModel;
18 class QModelIndex;
19 class QStandardItem;
20 class QUrl;
21 
22 class ProjectSelectionPage : public AppWizardPageWidget {
23 Q_OBJECT
24 public:
25     explicit ProjectSelectionPage(ProjectTemplatesModel *templatesModel, AppWizardDialog *wizardDialog);
26     ~ProjectSelectionPage() override;
27 
28     bool shouldContinue() override;
29 
30     QString selectedTemplate();
31     QString projectName();
32     QUrl location();
33 Q_SIGNALS:
34     void locationChanged( const QUrl& );
35     void valid();
36     void invalid();
37 private Q_SLOTS:
38     void itemChanged( const QModelIndex& current );
39     void urlEdited();
40     void validateData();
41     void nameChanged();
42     void typeChanged(const QModelIndex& idx);
43     void templateChanged(int);
44 
45     void loadFileClicked();
46     void moreTemplatesClicked();
47 
48 
49 private:
50     inline QByteArray encodedProjectName();
51     inline QStandardItem* currentItem() const;
52     void setCurrentTemplate(const QString& fileName);
53 
54     Ui::ProjectSelectionPage *ui;
55     ProjectTemplatesModel *m_templatesModel;
56     AppWizardDialog *m_wizardDialog;
57 };
58 
59 #endif
60