diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp
index 6f54b544b34..43e630da7ac 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp
@@ -103,6 +103,9 @@ void MaemoPackageCreationWidget::initGui()
SIGNAL(controlChanged(const ProjectExplorer::Project*)), this,
SLOT(handleControlFileUpdate(const ProjectExplorer::Project*)));
connect(m_ui->nameLineEdit, SIGNAL(editingFinished()), SLOT(setName()));
+ m_ui->shortDescriptionLineEdit->setMaxLength(60);
+ connect(m_ui->shortDescriptionLineEdit, SIGNAL(editingFinished()),
+ SLOT(setShortDescription()));
}
void MaemoPackageCreationWidget::updateDebianFileList(const ProjectExplorer::Project *project)
@@ -164,8 +167,8 @@ void MaemoPackageCreationWidget::updateName(const Project *project)
void MaemoPackageCreationWidget::updateShortDescription(const Project *project)
{
- // TODO: Implment
- Q_UNUSED(project);
+ m_ui->shortDescriptionLineEdit
+ ->setText(MaemoTemplatesManager::instance()->shortDescription(project));
}
void MaemoPackageCreationWidget::setPackageManagerIcon()
@@ -197,7 +200,11 @@ void MaemoPackageCreationWidget::setName()
void MaemoPackageCreationWidget::setShortDescription()
{
-
+ if (!MaemoTemplatesManager::instance()->setShortDescription(thisProject(),
+ m_ui->shortDescriptionLineEdit->text())) {
+ QMessageBox::critical(this, tr("File Error"),
+ tr("Could not set project description."));
+ }
}
void MaemoPackageCreationWidget::handleToolchainChanged()
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.ui b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.ui
index 628289acc12..0eabf98803f 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.ui
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.ui
@@ -6,8 +6,8 @@
0
0
- 505
- 189
+ 584
+ 230
@@ -27,22 +27,22 @@
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
-
-
-
+
-
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+ -
@@ -61,7 +61,7 @@
- -
+
-
-
@@ -156,14 +156,14 @@
- -
+
-
<b>Name for Package Manager:</b>
- -
+
-
-
@@ -183,7 +183,34 @@
- -
+
-
+
+
+ <b>Short description for Package Manager:</b>
+
+
+
+ -
+
+
-
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
@@ -196,7 +223,7 @@
- -
+
-
-
@@ -235,14 +262,14 @@
- -
+
-
<b>Adapt Debian file:</b>
- -
+
-
-
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.cpp
index 317692926f0..b9abc708cae 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.cpp
@@ -62,7 +62,8 @@ namespace Internal {
namespace {
const QByteArray IconFieldName("XB-Maemo-Icon-26:");
-const QByteArray DescriptionFieldName("XB-Maemo-Display-Name");
+const QByteArray NameFieldName("XB-Maemo-Display-Name");
+const QByteArray ShortDescriptionFieldName("Description");
const QLatin1String PackagingDirName("qtc_packaging");
const QLatin1String DebianDirNameFremantle("debian_fremantle");
} // anonymous namespace
@@ -261,7 +262,7 @@ bool MaemoTemplatesManager::adaptControlFile(const Project *project)
adaptControlFileField(controlContents, "Section", "user/hidden");
adaptControlFileField(controlContents, "Priority", "optional");
- adaptControlFileField(controlContents, DescriptionFieldName,
+ adaptControlFileField(controlContents, NameFieldName,
project->displayName().toUtf8());
const int buildDependsOffset = controlContents.indexOf("Build-Depends:");
if (buildDependsOffset == -1) {
@@ -288,21 +289,29 @@ bool MaemoTemplatesManager::adaptControlFile(const Project *project)
return true;
}
-void MaemoTemplatesManager::adaptControlFileField(QByteArray &document,
+bool MaemoTemplatesManager::adaptControlFileField(QByteArray &document,
const QByteArray &fieldName, const QByteArray &newFieldValue)
{
QByteArray adaptedLine = fieldName + ": " + newFieldValue;
const int lineOffset = document.indexOf(fieldName + ":");
if (lineOffset == -1) {
document.append(adaptedLine).append('\n');
- } else {
- int newlineOffset = document.indexOf('\n', lineOffset);
- if (newlineOffset == -1) {
- newlineOffset = document.length();
- adaptedLine += '\n';
- }
- document.replace(lineOffset, newlineOffset - lineOffset, adaptedLine);
+ return true;
}
+
+ int newlineOffset = document.indexOf('\n', lineOffset);
+ bool updated = false;
+ if (newlineOffset == -1) {
+ newlineOffset = document.length();
+ adaptedLine += '\n';
+ updated = true;
+ }
+ const int replaceCount = newlineOffset - lineOffset;
+ if (!updated && document.mid(lineOffset, replaceCount) != adaptedLine)
+ updated = true;
+ if (updated)
+ document.replace(lineOffset, replaceCount, adaptedLine);
+ return updated;
}
bool MaemoTemplatesManager::updateDesktopFiles(const Qt4Target *target)
@@ -571,19 +580,37 @@ bool MaemoTemplatesManager::setPackageManagerIcon(const Project *project,
QString MaemoTemplatesManager::name(const Project *project) const
{
- return controlFileFieldValue(project, DescriptionFieldName);
+ return controlFileFieldValue(project, NameFieldName);
}
-bool MaemoTemplatesManager::setName(const Project *project,
+bool MaemoTemplatesManager::setName(const Project *project, const QString &name)
+{
+ return setFieldValue(project, NameFieldName, name.toUtf8());
+}
+
+QString MaemoTemplatesManager::shortDescription(const Project *project) const
+{
+ return controlFileFieldValue(project, ShortDescriptionFieldName);
+}
+
+bool MaemoTemplatesManager::setShortDescription(const Project *project,
const QString &description)
+{
+ return setFieldValue(project, ShortDescriptionFieldName,
+ description.toUtf8());
+}
+
+bool MaemoTemplatesManager::setFieldValue(const Project *project,
+ const QByteArray &fieldName, const QByteArray &fieldValue)
{
QFile controlFile(controlFilePath(project));
if (!controlFile.open(QIODevice::ReadWrite))
return false;
QByteArray contents = controlFile.readAll();
- adaptControlFileField(contents, DescriptionFieldName, description.toUtf8());
- controlFile.resize(0);
- controlFile.write(contents);
+ if (adaptControlFileField(contents, fieldName, fieldValue)) {
+ controlFile.resize(0);
+ controlFile.write(contents);
+ }
return true;
}
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.h b/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.h
index cd7e021855d..08c44e9a069 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemotemplatesmanager.h
@@ -73,6 +73,10 @@ public:
QString name(const ProjectExplorer::Project *project) const;
bool setName(const ProjectExplorer::Project *project,
+ const QString &name);
+
+ QString shortDescription(const ProjectExplorer::Project *project) const;
+ bool setShortDescription(const ProjectExplorer::Project *project,
const QString &description);
QString controlFileFieldValue(const ProjectExplorer::Project *project,
@@ -105,10 +109,12 @@ private:
int &lineEndPos, int &valuePos);
bool adaptRulesFile(const ProjectExplorer::Project *project);
bool adaptControlFile(const ProjectExplorer::Project *project);
- void adaptControlFileField(QByteArray &document, const QByteArray &fieldName,
+ bool adaptControlFileField(QByteArray &document, const QByteArray &fieldName,
const QByteArray &newFieldValue);
QSharedPointer openFile(const QString &filePath,
QIODevice::OpenMode mode, QString *error) const;
+ bool setFieldValue(const ProjectExplorer::Project *project,
+ const QByteArray &fieldName, const QByteArray &fieldValue);
static MaemoTemplatesManager *m_instance;