Check Qt assets present in the bar descriptor file when loading
[qt-creator:qnx-qt-creator.git] / src / plugins / qnx / bardescriptoreditorwidget.h
1 /**************************************************************************
2 **
3 ** This file is part of Qt Creator
4 **
5 ** Copyright (C) 2011 - 2012 Research In Motion
6 **
7 ** Contact: Research In Motion (blackberry-qt@qnx.com)
8 ** Contact: KDAB (info@kdab.com)
9 **
10 **
11 ** GNU Lesser General Public License Usage
12 **
13 ** This file may be used under the terms of the GNU Lesser General Public
14 ** License version 2.1 as published by the Free Software Foundation and
15 ** appearing in the file LICENSE.LGPL included in the packaging of this file.
16 ** Please review the following information to ensure the GNU Lesser General
17 ** Public License version 2.1 requirements will be met:
18 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
19 **
20 ** In addition, as a special exception, Nokia gives you certain additional
21 ** rights. These rights are described in the Nokia Qt LGPL Exception
22 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
23 **
24 ** Other Usage
25 **
26 ** Alternatively, this file may be used in accordance with the terms and
27 ** conditions contained in a signed written agreement between you and Nokia.
28 **
29 ** If you have questions regarding the use of this file, please contact
30 ** Nokia at info@qt.nokia.com.
31 **
32 **************************************************************************/
33
34 #ifndef QNX_INTERNAL_BARDESCRIPTOREDITORWIDGET_H
35 #define QNX_INTERNAL_BARDESCRIPTOREDITORWIDGET_H
36
37 #include <QtGui/QStackedWidget>
38
39 class QLineEdit;
40
41 namespace Core {
42 class IEditor;
43 }
44
45 namespace Qnx {
46 namespace Internal {
47
48 namespace Ui {
49 class BarDescriptorEditorWidget;
50 }
51
52 class BarDescriptorEditor;
53 class BarDescriptorQtAssetsModel;
54 class BarDescriptorQtAssetsProxyModel;
55
56 class BarDescriptorEditorWidget : public QStackedWidget
57 {
58     Q_OBJECT
59     
60 public:
61     typedef QPair<QString, QString>  QtAssetsPair;
62
63     explicit BarDescriptorEditorWidget(QWidget *parent = 0);
64     ~BarDescriptorEditorWidget();
65
66     Core::IEditor *editor() const;
67
68     QString packageId() const;
69     void setPackageId(const QString &packageId);
70
71     QString packageVersion() const;
72     void setPackageVersion(const QString &packageVersion);
73
74     QString packageBuildId() const;
75     void setPackageBuildId(const QString &packageBuildId);
76
77     QString applicationName() const;
78     void setApplicationName(const QString &applicationName);
79
80     void clearAssets();
81     void addAsset(const QString &path, const QString &dest);
82     void addQtAsset(int qtVersionId, const QString &path);
83     QList<QtAssetsPair> qtAssets() const;
84
85     void setXmlSource(const QString &xmlSource);
86
87     bool isDirty() const;
88
89 public slots:
90     void setDirty(bool dirty = true);
91
92 signals:
93     void changed();
94
95 private slots:
96     void updateQtAssetsTree(int index);
97
98 private:
99     BarDescriptorEditor *createEditor();
100
101     void setTextBlocked(QLineEdit *lineEdit, const QString &value);
102
103     mutable Core::IEditor *m_editor;
104
105     bool m_dirty;
106
107     BarDescriptorQtAssetsModel *m_qtAssetsModel;
108     BarDescriptorQtAssetsProxyModel *m_qtAssetsProxyModel;
109
110     Ui::BarDescriptorEditorWidget *m_ui;
111 };
112
113
114 } // namespace Internal
115 } // namespace Qnx
116 #endif // QNX_INTERNAL_BARDESCRIPTOREDITORWIDGET_H