OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
CreateProjectDialog.h
Go to the documentation of this file.
1
4// ###########################################################################################################################################################################################################################################################################################################################
5
6#pragma once
7
8// OpenTwin header
10#include "OTWidgets/Dialog.h"
11
12// Qt header
13#include <QtWidgets/qlistwidget.h>
14
15// std header
16#include <map>
17#include <list>
18
19namespace ot {
20
21 class Label;
22 class LineEdit;
23 class PushButton;
24 class CreateProjectDialog;
25
38
39 // ###########################################################################################################################################################################################################################################################################################################################
40
41 // ###########################################################################################################################################################################################################################################################################################################################
42
43 // ###########################################################################################################################################################################################################################################################################################################################
44
46 Q_OBJECT
48 public:
49 CreateProjectDialog(QWidget* _parentWidget = (QWidget*)nullptr);
50 virtual ~CreateProjectDialog();
51
52 void setProjectTemplates(const std::list<ProjectTemplateInformation>& _templates);
53 void setCurrentProjectName(const QString& _name);
54
55 std::string getProjectType(void) const;
56 std::string getTemplateName(bool _emptyIfDefault) const;
57 std::string getProjectName(void) const;
58
59 void setDefaultIcon(const QIcon& _icon) { m_defaultIcon = _icon; };
60 const QIcon& getDefaultIcon(void) const { return m_defaultIcon; };
61
62 void setDefaultIconMap(const std::map<std::string, std::string>& _projectNameToIconMap) { m_defaultIconMap = _projectNameToIconMap; };
63 const std::map<std::string, std::string>& getDefaultIconMap(void) const { return m_defaultIconMap; };
64
65 void setCustomIconMap(const std::map<std::string, std::string>& _projectNameToIconMap) { m_customIconMap = _projectNameToIconMap; };
66 const std::map<std::string, std::string>& getCustomIconMap(void) const { return m_customIconMap; };
67
68 protected:
69 virtual void showEvent(QShowEvent* _event) override;
70
71 Q_SIGNALS:
72 void createProject(const QString& _projectName, const std::string& _projectType, const std::string& _projectTemplate);
73
74 private Q_SLOTS:
75 void slotFocusName(void);
76 void slotShowInfo(void);
77 void slotSearch(void);
78 void slotCreate(void);
79 void slotCheckCreateEnabledState(void);
80
81 private:
82 bool isDataValid(void) const;
83 void clear(void);
84 void addListEntry(const ProjectTemplateInformation& _info);
85
86 QListWidget* m_list;
87 Label* m_info;
88
89 LineEdit* m_search;
90 LineEdit* m_name;
91 PushButton* m_createButton;
92
93 QIcon m_defaultIcon;
94 std::map<std::string, std::string> m_defaultIconMap;
95 std::map<std::string, std::string> m_customIconMap;
96 };
97
98}
#define OT_DECL_NODEFAULT(___class)
Removes the default copy constructor and assignment operator.
Definition OTClassHelper.h:22
#define OT_DECL_NOCOPY(___class)
Removes the default copy constructor and assignment operator.
Definition OTClassHelper.h:14
#define OT_WIDGETS_API_EXPORT
Definition OTWidgetsAPIExport.h:12
Definition CreateProjectDialog.h:26
virtual ~CreateProjectDialogEntry()
Definition CreateProjectDialog.h:31
const ProjectTemplateInformation & getInfo(void) const
Definition CreateProjectDialog.h:33
Definition CreateProjectDialog.h:45
const std::map< std::string, std::string > & getCustomIconMap(void) const
Definition CreateProjectDialog.h:66
void createProject(const QString &_projectName, const std::string &_projectType, const std::string &_projectTemplate)
void setDefaultIconMap(const std::map< std::string, std::string > &_projectNameToIconMap)
Definition CreateProjectDialog.h:62
const std::map< std::string, std::string > & getDefaultIconMap(void) const
Definition CreateProjectDialog.h:63
void setCustomIconMap(const std::map< std::string, std::string > &_projectNameToIconMap)
Definition CreateProjectDialog.h:65
const QIcon & getDefaultIcon(void) const
Definition CreateProjectDialog.h:60
void setDefaultIcon(const QIcon &_icon)
Definition CreateProjectDialog.h:59
Definition Dialog.h:19
Definition Label.h:17
Definition LineEdit.h:17
Definition ProjectTemplateInformation.h:20
Definition PushButton.h:17
Definition Connector.h:8