OSDN Git Service

Merge remote branch 'origin/1.3'
[qt-creator-jp/qt-creator-jp.git] / src / plugins / projectexplorer / miniprojecttargetselector.h
1 #ifndef MINIPROJECTTARGETSELECTOR_H
2 #define MINIPROJECTTARGETSELECTOR_H
3
4 #include <QtGui/QListWidget>
5
6
7 QT_BEGIN_NAMESPACE
8 class QComboBox;
9 class QLabel;
10 class QStackedWidget;
11 QT_END_NAMESPACE
12
13 namespace ProjectExplorer {
14 class Project;
15 class RunConfiguration;
16 class BuildConfiguration;
17
18 namespace Internal {
19
20 // helper classes
21
22 class ProjectListWidget : public QListWidget
23 {
24     Q_OBJECT
25 private:
26     ProjectExplorer::Project* m_project;
27
28 public:
29     ProjectListWidget(ProjectExplorer::Project *project, QWidget *parent = 0)
30         : QListWidget(parent), m_project(project)
31     {
32         setFocusPolicy(Qt::NoFocus);
33         setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
34         setAlternatingRowColors(false);
35     }
36
37     ProjectExplorer::Project *project() const
38     {
39         return m_project;
40     }
41
42 };
43
44 class MiniTargetWidget : public QWidget
45 {
46     Q_OBJECT
47 public:
48     // TODO: Pass target instead of project
49     MiniTargetWidget(Project *project, QWidget *parent = 0);
50
51
52 private slots:
53     void addRunConfiguration(ProjectExplorer::RunConfiguration *runConfig);
54     void removeRunConfiguration(ProjectExplorer::RunConfiguration *buildConfig);
55     void addBuildConfiguration(ProjectExplorer::BuildConfiguration *buildConfig);
56     void removeBuildConfiguration(ProjectExplorer::BuildConfiguration *buildConfig);
57
58     void setActiveBuildConfiguration(int index);
59     void setActiveRunConfiguration(int index);
60     void setActiveBuildConfiguration();
61     void setActiveRunConfiguration();
62
63     void updateDisplayName();
64
65 signals:
66     void activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration *buildConfig);
67
68 private:
69     QLabel *m_targetName;
70     QLabel *m_targetIcon;
71     QComboBox *m_runComboBox;
72     QComboBox *m_buildComboBox;
73     ProjectExplorer::Project* m_project;
74 };
75
76 // main class
77
78 class MiniProjectTargetSelector : public QWidget
79 {
80     Q_OBJECT
81 public:
82     MiniProjectTargetSelector(QAction *projectAction,QWidget *parent = 0);
83     void setVisible(bool visible);
84
85 signals:
86     void startupProjectChanged(ProjectExplorer::Project *project);
87
88 private slots:
89     void addProject(ProjectExplorer::Project *project);
90     void removeProject(ProjectExplorer::Project *project);
91     void emitStartupProjectChanged(int index);
92     void changeStartupProject(ProjectExplorer::Project *project);
93     void updateAction();
94
95 private:
96     QAction *m_projectAction;
97     QComboBox *m_projectsBox;
98     QStackedWidget *m_widgetStack;
99 };
100
101 };
102 };
103 #endif // MINIPROJECTTARGETSELECTOR_H