1 /**************************************************************************
3 ** This file is part of Qt Creator
5 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
7 ** Contact: Nokia Corporation (qt-info@nokia.com)
11 ** This file contains pre-release code and may not be distributed.
12 ** You may use this file in accordance with the terms and conditions
13 ** contained in the Technology Preview License Agreement accompanying
16 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25 ** In addition, as a special exception, Nokia gives you certain additional
26 ** rights. These rights are described in the Nokia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29 ** If you have questions regarding the use of this file, please contact
30 ** Nokia at qt-info@nokia.com.
32 **************************************************************************/
34 #ifndef DEPENDENCIESDIALOG_H
35 #define DEPENDENCIESDIALOG_H
37 #include "iprojectproperties.h"
39 #include <QtCore/QAbstractListModel>
41 #include <QtGui/QTreeView>
47 namespace ProjectExplorer {
54 const char * const DEPENDENCIES_PANEL_ID("ProjectExplorer.DependenciesPanel");
56 class DependenciesWidget;
58 class DependenciesPanelFactory : public IProjectPanelFactory
61 DependenciesPanelFactory(SessionManager *session);
64 QString displayName() const;
65 bool supports(Project *project);
66 IPropertiesPanel *createPanel(Project *project);
68 SessionManager *m_session;
72 class DependenciesPanel : public IPropertiesPanel
75 DependenciesPanel(SessionManager *session, Project *project);
77 QString displayName() const;
78 QWidget *widget() const;
82 DependenciesWidget *m_widget;
90 class DependenciesModel : public QAbstractListModel
94 DependenciesModel(SessionManager *session, Project *project, QObject *parent = 0);
97 int rowCount(const QModelIndex &index) const;
98 int columnCount(const QModelIndex &index) const;
99 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
100 bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
101 Qt::ItemFlags flags(const QModelIndex &index) const;
107 SessionManager *m_session;
109 QList<Project *> m_projects;
112 class DependenciesView : public QTreeView
116 DependenciesView(QWidget *parent);
118 virtual QSize sizeHint() const;
119 virtual void setModel(QAbstractItemModel *model);
121 void updateSizeHint();
126 class DependenciesWidget : public QWidget
130 DependenciesWidget(SessionManager *session, Project *project,
131 QWidget *parent = 0);
133 SessionManager *m_session;
135 DependenciesModel *m_model;
136 Utils::DetailsWidget *m_detailsContainer;
139 } // namespace Internal
140 } // namespace ProjectExplorer
142 #endif // DEPENDENCIESDIALOG_H