#ifndef NEWPROJECTDIALOG_H
#define NEWPROJECTDIALOG_H

#include <QDialog>
#include <QListWidget>
#include <QTabBar>
#include "projecttemplate.h"

namespace Ui {
class NewProjectDialog;
}

class NewProjectDialog : public QDialog
{
    Q_OBJECT

public:
    explicit NewProjectDialog(QWidget *parent = nullptr);
    ~NewProjectDialog();
    PProjectTemplate getTemplate();
    QString getLocation();
    QString getProjectName();
    bool useAsDefaultProjectDir();
    bool isCProject();
    bool isCppProject();
    bool makeProjectDefault();
private slots:
    void updateView();
    void updateProjectLocation();
    void on_lstTemplates_itemDoubleClicked(QListWidgetItem *item);

    void on_lstTemplates_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
    void on_btnBrowse_clicked();

private:
    void addTemplate(const QString& filename);
    void readTemplateDir();
    void rebuildTabs();
private:
    Ui::NewProjectDialog *ui;
    QList<PProjectTemplate> mTemplates;
    QTabBar* mTemplatesTabBar;
    QMap<QString,int> mCategories;
};

#endif // NEWPROJECTDIALOG_H