From 9d7fc860bfbc41bd6f8bfbc317f7d276dc3069cb Mon Sep 17 00:00:00 2001 From: ck <qt-info@nokia.com> Date: Thu, 8 Jul 2010 12:17:54 +0200 Subject: [PATCH] Maemo: Add watcher for project files. Reviewed-by: kh1 --- .../qt-maemo/maemodeployablelistmodel.cpp | 2 +- .../qt4projectmanager/qt-maemo/maemodeployables.cpp | 12 ++++++++++-- .../qt4projectmanager/qt-maemo/maemodeployables.h | 2 ++ .../qt-maemo/maemopackagecreationwidget.cpp | 10 ++++------ 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeployablelistmodel.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodeployablelistmodel.cpp index caae7b25b03..920c61f075c 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeployablelistmodel.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeployablelistmodel.cpp @@ -219,7 +219,7 @@ QString MaemoDeployableListModel::projectName() const QString MaemoDeployableListModel::projectDir() const { - return m_proFileNode->path(); + return QFileInfo(m_proFileNode->path()).dir().path(); } } // namespace Qt4ProjectManager diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeployables.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodeployables.cpp index 52e8da93d99..203b0333a04 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeployables.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeployables.cpp @@ -56,16 +56,24 @@ namespace Qt4ProjectManager { namespace Internal { MaemoDeployables::MaemoDeployables(MaemoPackageCreationStep *packagingStep) - : m_packagingStep(packagingStep) + : m_packagingStep(packagingStep), m_proFilesWatcher(0) { QTimer::singleShot(0, this, SLOT(createModels())); } void MaemoDeployables::createModels() { - const Qt4ProFileNode *rootNode = m_packagingStep->qt4BuildConfiguration() + m_listModels.clear(); + Qt4ProFileNode *rootNode = m_packagingStep->qt4BuildConfiguration() ->qt4Target()->qt4Project()->rootProjectNode(); createModels(rootNode); + if (!m_proFilesWatcher) { + m_proFilesWatcher = new Qt4NodesWatcher(this); + connect(m_proFilesWatcher, + SIGNAL(proFileUpdated(Qt4ProjectManager::Internal::Qt4ProFileNode*)), + this, SLOT(createModels())); + rootNode->registerWatcher(m_proFilesWatcher); + } emit modelsCreated(); } diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodeployables.h b/src/plugins/qt4projectmanager/qt-maemo/maemodeployables.h index 7c66c5d39ee..d732882f690 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemodeployables.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemodeployables.h @@ -51,6 +51,7 @@ namespace Qt4ProjectManager { namespace Internal { class MaemoDeployableListModel; class MaemoPackageCreationStep; +class Qt4NodesWatcher; class Qt4ProFileNode; class MaemoDeployables : public QObject @@ -75,6 +76,7 @@ private: QList<MaemoDeployableListModel *> m_listModels; MaemoPackageCreationStep * const m_packagingStep; + Qt4NodesWatcher *m_proFilesWatcher; }; } // namespace Qt4ProjectManager diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp index 4360badbbfe..6c0c5cf13f6 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp @@ -71,12 +71,9 @@ MaemoPackageCreationWidget::MaemoPackageCreationWidget(MaemoPackageCreationStep m_ui->patch->setValue(list.value(2, QLatin1String("0")).toInt()); versionInfoChanged(); - if (step->deployables()->modelCount() > 0) { - handleModelsCreated(); - } else { - connect(m_step->deployables(), SIGNAL(modelsCreated()), this, - SLOT(handleModelsCreated())); - } + connect(m_step->deployables(), SIGNAL(modelsCreated()), this, + SLOT(handleModelsCreated())); + handleModelsCreated(); } void MaemoPackageCreationWidget::init() @@ -107,6 +104,7 @@ void MaemoPackageCreationWidget::versionInfoChanged() void MaemoPackageCreationWidget::handleModelsCreated() { + m_ui->tabWidget->clear(); for (int i = 0; i < m_step->deployables()->modelCount(); ++i) { MaemoDeployableListModel * const model = m_step->deployables()->modelAt(i); -- GitLab