diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp index 81dc6e77b76..801855f59ad 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp @@ -43,11 +43,13 @@ #include "ui_maemopackagecreationwidget.h" #include "maemopackagecreationstep.h" +#include "maemotemplatesmanager.h" -#include +#include #include #include #include +#include #include #include @@ -63,14 +65,14 @@ MaemoPackageCreationWidget::MaemoPackageCreationWidget(MaemoPackageCreationStep m_ui->setupUi(this); m_ui->skipCheckBox->setChecked(!m_step->isPackagingEnabled()); setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - QTimer::singleShot(0, this, SLOT(initVersion())); + QTimer::singleShot(0, this, SLOT(initGui())); } void MaemoPackageCreationWidget::init() { } -void MaemoPackageCreationWidget::initVersion() +void MaemoPackageCreationWidget::initGui() { QString error; QString versionString = m_step->versionString(&error); @@ -86,6 +88,13 @@ void MaemoPackageCreationWidget::initVersion() connect(m_step, SIGNAL(packageFilePathChanged()), this, SIGNAL(updateSummary())); versionInfoChanged(); + + const QStringList &debianFiles = MaemoTemplatesManager::instance() + ->debianFiles(m_step->buildConfiguration()->target()->project()); + foreach (const QString &fileName, debianFiles) { + if (fileName != QLatin1String("compat")) + m_ui->debianFilesComboBox->addItem(fileName); + } } QString MaemoPackageCreationWidget::summaryText() const @@ -103,6 +112,8 @@ void MaemoPackageCreationWidget::handleSkipButtonToggled(bool checked) m_ui->major->setEnabled(!checked); m_ui->minor->setEnabled(!checked); m_ui->patch->setEnabled(!checked); + m_ui->debianFilesComboBox->setEnabled(!checked); + m_ui->editDebianFileButton->setEnabled(!checked); m_step->setPackagingEnabled(!checked); } @@ -116,5 +127,13 @@ void MaemoPackageCreationWidget::versionInfoChanged() QMessageBox::critical(this, tr("Could not set version number"), error); } +void MaemoPackageCreationWidget::editDebianFile() +{ + const QString debianFilePath = MaemoTemplatesManager::instance() + ->debianDirPath(m_step->buildConfiguration()->target()->project()) + + QLatin1Char('/') + m_ui->debianFilesComboBox->currentText(); + Core::EditorManager::instance()->openEditor(debianFilePath); +} + } // namespace Internal } // namespace Qt4ProjectManager diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.h b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.h index f73ac9a0eb3..1bbc429333c 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.h @@ -65,8 +65,9 @@ public: private slots: void handleSkipButtonToggled(bool checked); + void editDebianFile(); void versionInfoChanged(); - void initVersion(); + void initGui(); private: MaemoPackageCreationStep * const m_step; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.ui b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.ui index f415839e036..0fe29d8e8c7 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.ui +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.ui @@ -16,7 +16,7 @@ 1 - + @@ -28,27 +28,27 @@ - + Qt::Vertical - - QSizePolicy::Fixed - 20 - 5 + 40 - - + + + QFormLayout::AllNonFixedFieldsGrow + + - + 0 0 @@ -60,28 +60,12 @@ - Version number: + <b>Version number:</b> - + - - - - Qt::Horizontal - - - QSizePolicy::Fixed - - - - 13 - 13 - - - - @@ -175,21 +159,42 @@ + + + + <b>Adapt Debian file:</b> + + + + + + + + + + + + Edit + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + - - - - Qt::Vertical - - - - 20 - 40 - - - - @@ -217,8 +222,8 @@ versionInfoChanged() - 83 - 73 + 241 + 70 461 @@ -233,8 +238,8 @@ versionInfoChanged() - 233 - 94 + 338 + 70 5 @@ -249,8 +254,8 @@ versionInfoChanged() - 339 - 94 + 435 + 70 466 @@ -258,11 +263,28 @@ + + editDebianFileButton + clicked() + MaemoPackageCreationWidget + editDebianFile() + + + 293 + 94 + + + 8 + 86 + + + addFile() removeFile() handleSkipButtonToggled(bool) versionInfoChanged() + editDebianFile() diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.cpp index f990cde9825..b171ba2a6f0 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.cpp @@ -146,7 +146,10 @@ void MaemoTemplatesManager::createTemplatesIfNecessary(ProjectExplorer::Target * const QStringList &files = debianDir.entryList(QDir::Files); QStringList filesToAddToProject; foreach (const QString &fileName, files) { - if (fileName.endsWith(QLatin1String(".ex"), Qt::CaseInsensitive)) { + if (fileName.endsWith(QLatin1String(".ex"), Qt::CaseInsensitive) + || fileName.compare(QLatin1String("README.debian"), Qt::CaseInsensitive) == 0 + || fileName.compare(QLatin1String("dirs"), Qt::CaseInsensitive) == 0 + || fileName.compare(QLatin1String("docs"), Qt::CaseInsensitive) == 0) { debianDir.remove(fileName); } else filesToAddToProject << debianDir.absolutePath() @@ -185,8 +188,7 @@ QString MaemoTemplatesManager::version(const Project *project, QString *error) const { const QString changeLogFilePath - = project->projectDirectory() + QLatin1Char('/') + PackagingDirName - + QLatin1String("/debian/changelog"); + = debianDirPath(project) + QLatin1String("/changelog"); const QString nativePath = QDir::toNativeSeparators(changeLogFilePath); QFile changeLog(changeLogFilePath); if (!changeLog.exists()) { @@ -218,9 +220,8 @@ QString MaemoTemplatesManager::version(const Project *project, bool MaemoTemplatesManager::setVersion(const Project *project, const QString &version, QString *error) const { - const QString debianDir = project->projectDirectory() + QLatin1Char('/') - + PackagingDirName + QLatin1String("/debian/"); - const QString changeLogFilePath = debianDir + QLatin1String("changelog"); + const QString changeLogFilePath + = debianDirPath(project) + QLatin1String("/changelog"); const QString nativePath = QDir::toNativeSeparators(changeLogFilePath); QFile changeLog(changeLogFilePath); if (!changeLog.exists()) { @@ -247,6 +248,18 @@ bool MaemoTemplatesManager::setVersion(const Project *project, return true; } +QStringList MaemoTemplatesManager::debianFiles(const Project *project) const +{ + return QDir(debianDirPath(project)) + .entryList(QDir::Files, QDir::Name | QDir::IgnoreCase); +} + +QString MaemoTemplatesManager::debianDirPath(const Project *project) const +{ + return project->projectDirectory() + QLatin1Char('/') + + PackagingDirName + QLatin1String("/debian"); +} + void MaemoTemplatesManager::raiseError(const QString &reason) { QMessageBox::critical(0, tr("Error creating Maemo templates"), reason); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.h b/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.h index 15af028cd29..857ecbfdda3 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.h @@ -52,6 +52,9 @@ public: bool setVersion(const ProjectExplorer::Project *project, const QString &version, QString *error) const; + QString debianDirPath(const ProjectExplorer::Project *project) const; + QStringList debianFiles(const ProjectExplorer::Project *project) const; + static const QLatin1String PackagingDirName; private slots: