summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp1
-rw-r--r--src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.cpp28
-rw-r--r--src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.h1
3 files changed, 30 insertions, 0 deletions
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp
index 240da923da..4c718cf007 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp
@@ -149,6 +149,7 @@ MaemoGlobal::MaemoVersion MaemoGlobal::version(const QtVersion *qtVersion)
bool MaemoGlobal::removeRecursively(const QString &filePath, QString &error)
{
+ error.clear();
QFileInfo fileInfo(filePath);
if (!fileInfo.exists())
return true;
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.cpp
index 43037f41f1..e7b4af5e9c 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.cpp
@@ -104,6 +104,8 @@ void MaemoTemplatesManager::handleActiveProjectChanged(ProjectExplorer::Project
this, SLOT(handleTarget(ProjectExplorer::Target*)));
connect(project, SIGNAL(activeTargetChanged(ProjectExplorer::Target*)),
this, SLOT(handleTarget(ProjectExplorer::Target*)));
+ connect(project, SIGNAL(removedTarget(ProjectExplorer::Target*)),
+ SLOT(handleTargetRemoved(ProjectExplorer::Target*)));
const QList<Target *> &targets = project->targets();
foreach (Target * const target, targets)
handleTarget(target);
@@ -143,6 +145,32 @@ bool MaemoTemplatesManager::handleTarget(ProjectExplorer::Target *target)
return true;
}
+void MaemoTemplatesManager::handleTargetRemoved(ProjectExplorer::Target *target)
+{
+ if (target->id() != QLatin1String(Constants::MAEMO_DEVICE_TARGET_ID))
+ return;
+ const QString debianPath = debianDirPath(target->project());
+ if (!QFileInfo(debianPath).exists())
+ return;
+ const int answer = QMessageBox::warning(0, tr("Qt Creator"),
+ tr("Do you want to remove the packaging directory\n"
+ "associated with the target?"),
+ QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
+ if (answer == QMessageBox::No)
+ return;
+ QString error;
+ if (!MaemoGlobal::removeRecursively(debianPath, error))
+ qDebug("%s", qPrintable(error));
+ const QString packagingPath = target->project()->projectDirectory()
+ + QLatin1Char('/') + PackagingDirName;
+ const QStringList otherContents = QDir(packagingPath).entryList(QDir::Dirs
+ | QDir::Files | QDir::Hidden | QDir::NoDotAndDotDot);
+ if (otherContents.isEmpty()) {
+ if (!MaemoGlobal::removeRecursively(packagingPath, error))
+ qDebug("%s", qPrintable(error));
+ }
+}
+
bool MaemoTemplatesManager::createDebianTemplatesIfNecessary(const ProjectExplorer::Target *target)
{
Project * const project = target->project();
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.h b/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.h
index afc2ee1062..1b0c74e99e 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.h
@@ -95,6 +95,7 @@ private slots:
void handleDebianFileChanged(const QString &filePath);
void handleProjectToBeRemoved(ProjectExplorer::Project *project);
void handleProFileUpdated();
+ void handleTargetRemoved(ProjectExplorer::Target *target);
private:
explicit MaemoTemplatesManager(QObject *parent);