1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
/***************************************************************************
* Copyright 2007 Alexander Dymo <adymo@kdevelop.org> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef _PROJECTSELECTIONPAGE_H_
#define _PROJECTSELECTIONPAGE_H_
#include "appwizardpagewidget.h"
#include "appwizarddialog.h"
namespace Ui {
class ProjectSelectionPage;
}
class ProjectTemplatesModel;
class QModelIndex;
class QStandardItem;
class QUrl;
class ProjectSelectionPage : public AppWizardPageWidget {
Q_OBJECT
public:
explicit ProjectSelectionPage(ProjectTemplatesModel *templatesModel, AppWizardDialog *wizardDialog);
~ProjectSelectionPage() override;
bool shouldContinue() override;
QString selectedTemplate();
QString projectName();
QUrl location();
Q_SIGNALS:
void locationChanged( const QUrl& );
void valid();
void invalid();
private Q_SLOTS:
void itemChanged( const QModelIndex& current );
void urlEdited();
void validateData();
void nameChanged();
void typeChanged(const QModelIndex& idx);
void templateChanged(int);
void loadFileClicked();
void moreTemplatesClicked();
private:
inline QByteArray encodedProjectName();
inline QStandardItem* currentItem() const;
void setCurrentTemplate(const QString& fileName);
Ui::ProjectSelectionPage *ui;
ProjectTemplatesModel *m_templatesModel;
AppWizardDialog *m_wizardDialog;
};
#endif
|