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