summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@digia.com>2013-10-08 14:44:29 +0200
committerDaniel Teske <daniel.teske@digia.com>2013-10-09 15:38:40 +0200
commit37edb06c1ea834caf781d690f7f2bd88436612f1 (patch)
tree97179cbbf4246a7209a4598695a9b1ecc2e8d787
parent0e4deaba2356e0baec5d6e65dabf503bf6f7c3bc (diff)
downloadqt-creator-37edb06c1ea834caf781d690f7f2bd88436612f1.tar.gz
Android Manifest Editor: Fix various issues around min/target sdk level
Change-Id: I9b9239055301296b572e0c36c40f179b0e98c67d Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
-rw-r--r--src/plugins/android/androidmanifesteditorwidget.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/plugins/android/androidmanifesteditorwidget.cpp b/src/plugins/android/androidmanifesteditorwidget.cpp
index a7a8af0531..1bcb334c54 100644
--- a/src/plugins/android/androidmanifesteditorwidget.cpp
+++ b/src/plugins/android/androidmanifesteditorwidget.cpp
@@ -504,6 +504,9 @@ void AndroidManifestEditorWidget::resizeEvent(QResizeEvent *event)
bool AndroidManifestEditorWidget::open(QString *errorString, const QString &fileName, const QString &realFileName)
{
bool result = PlainTextEditorWidget::open(errorString, fileName, realFileName);
+
+ updateSdkVersions();
+
if (!result)
return result;
@@ -521,7 +524,6 @@ bool AndroidManifestEditorWidget::open(QString *errorString, const QString &file
}
// some error occured
updateInfoBar(error, errorLine, errorColumn);
- updateSdkVersions();
setActivePage(Source);
return true;
@@ -697,7 +699,8 @@ void AndroidManifestEditorWidget::updateInfoBar()
void AndroidManifestEditorWidget::updateSdkVersions()
{
const QString docPath(static_cast<AndroidManifestDocument *>(editor()->document())->filePath());
- QPair<int, int> apiLevels = AndroidManager::apiLevelRange(androidProject(docPath)->activeTarget());
+ Project *project = androidProject(docPath);
+ QPair<int, int> apiLevels = AndroidManager::apiLevelRange(project ? project->activeTarget() : 0);
for (int i = apiLevels.first; i < apiLevels.second + 1; ++i)
m_androidMinSdkVersion->addItem(tr("API %1: %2")
.arg(i)
@@ -865,6 +868,16 @@ void setUsesSdk(QDomDocument &doc, QDomElement &manifest, int minimumSdk, int ta
}
}
+int extractVersion(const QString &string)
+{
+ if (!string.startsWith(QLatin1String("API")))
+ return 0;
+ int index = string.indexOf(QLatin1Char(':'));
+ if (index == -1)
+ return 0;
+ return string.midRef(4, index - 4).toInt();
+}
+
void AndroidManifestEditorWidget::syncToEditor()
{
QDomDocument doc;
@@ -879,8 +892,8 @@ void AndroidManifestEditorWidget::syncToEditor()
manifest.setAttribute(QLatin1String("android:versionCode"), m_versionCode->value());
manifest.setAttribute(QLatin1String("android:versionName"), m_versionNameLinedit->text());
- setUsesSdk(doc, manifest, m_androidMinSdkVersion->currentText().toInt(),
- m_androidTargetSdkVersion->currentText().toInt());
+ setUsesSdk(doc, manifest, extractVersion(m_androidMinSdkVersion->currentText()),
+ extractVersion(m_androidTargetSdkVersion->currentText()));
setAndroidAppLibName(doc, manifest.firstChildElement(QLatin1String("application"))
.firstChildElement(QLatin1String("activity")),