summaryrefslogtreecommitdiff
path: root/src/plugins/qnx/blackberrycreatepackagestepconfigwidget.cpp
diff options
context:
space:
mode:
authorTobias Nätterlund <tobias.naetterlund.qnx@kdab.com>2014-02-10 14:16:55 +0100
committerTobias Nätterlund <tobias.naetterlund@kdab.com>2014-02-13 09:29:38 +0100
commit6b8b60cef6cb286186d09cdb4ee999b12615935c (patch)
tree0953454025cf2b3d3a2c331ce8c998293960f891 /src/plugins/qnx/blackberrycreatepackagestepconfigwidget.cpp
parent2128b289efb99cf8477774f383841150fc4309ed (diff)
downloadqt-creator-6b8b60cef6cb286186d09cdb4ee999b12615935c.tar.gz
BlackBerry: Improve handling of Qt libraries when creating package
This lets the user choose between bundling the Qt libraries in the bar package, use the libraries shipped with the device, or use libraries deployed to the device by the user. From the user's choice, the correct assets will be added to the bar package, and the correct environment will be set up, so those does not have to be pre-filled in the bar-descriptor.xml template any longer. Task-number: QTCREATORBUG-11376 Change-Id: If44a9f9868d068f2ccbbeca3e25447496a336648 Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Diffstat (limited to 'src/plugins/qnx/blackberrycreatepackagestepconfigwidget.cpp')
-rw-r--r--src/plugins/qnx/blackberrycreatepackagestepconfigwidget.cpp87
1 files changed, 81 insertions, 6 deletions
diff --git a/src/plugins/qnx/blackberrycreatepackagestepconfigwidget.cpp b/src/plugins/qnx/blackberrycreatepackagestepconfigwidget.cpp
index 1970dc2ec5..e1663eaa3d 100644
--- a/src/plugins/qnx/blackberrycreatepackagestepconfigwidget.cpp
+++ b/src/plugins/qnx/blackberrycreatepackagestepconfigwidget.cpp
@@ -32,6 +32,12 @@
#include "blackberrycreatepackagestepconfigwidget.h"
#include "ui_blackberrycreatepackagestepconfigwidget.h"
#include "blackberrycreatepackagestep.h"
+#include "blackberrydeployqtlibrariesdialog.h"
+
+#include <projectexplorer/kitinformation.h>
+#include <projectexplorer/target.h>
+#include <qtsupport/qtkitinformation.h>
+#include <utils/qtcassert.h>
using namespace Qnx;
using namespace Qnx::Internal;
@@ -43,22 +49,46 @@ BlackBerryCreatePackageStepConfigWidget::BlackBerryCreatePackageStepConfigWidget
m_ui = new Ui::BlackBerryCreatePackageStepConfigWidget;
m_ui->setupUi(this);
- m_ui->signPackages->setChecked(m_step->packageMode() == BlackBerryCreatePackageStep::SigningPackageMode);
- m_ui->developmentMode->setChecked(m_step->packageMode() == BlackBerryCreatePackageStep::DevelopmentMode);
-
m_ui->cskPassword->setText(m_step->cskPassword());
m_ui->keystorePassword->setText(m_step->keystorePassword());
m_ui->savePasswords->setChecked(m_step->savePasswords());
+ m_ui->qtLibraryPath->setText(m_step->qtLibraryPath());
+
+ m_qtLibraryExplanations[0] = tr("Use the Qt libraries shipped with the BlackBerry device.");
+ m_qtLibraryExplanations[1] = tr("Include Qt libraries in the package. "
+ "This will increase the package size.");
+ m_qtLibraryExplanations[2] = tr("Use deployed Qt libraries on the device.");
+ m_ui->qtLibrary->addItem(tr("Use pre-installed Qt"), BlackBerryCreatePackageStep::PreInstalledQt);
+ m_ui->qtLibrary->addItem(tr("Bundle Qt in package"), BlackBerryCreatePackageStep::BundleQt);
+ m_ui->qtLibrary->addItem(tr("Use deployed Qt"), BlackBerryCreatePackageStep::DeployedQt);
connect(m_ui->signPackages, SIGNAL(toggled(bool)), this, SLOT(setPackageMode(bool)));
connect(m_ui->cskPassword, SIGNAL(textChanged(QString)), m_step, SLOT(setCskPassword(QString)));
- connect(m_ui->keystorePassword, SIGNAL(textChanged(QString)), m_step, SLOT(setKeystorePassword(QString)));
+ connect(m_ui->keystorePassword, SIGNAL(textChanged(QString)),
+ m_step, SLOT(setKeystorePassword(QString)));
connect(m_ui->showPasswords, SIGNAL(toggled(bool)), this, SLOT(showPasswords(bool)));
connect(m_ui->savePasswords, SIGNAL(toggled(bool)), m_step, SLOT(setSavePasswords(bool)));
+ connect(m_ui->qtLibrary, SIGNAL(currentIndexChanged(int)), this, SLOT(setBundleMode(int)));
+ connect(m_ui->qtLibrary, SIGNAL(currentIndexChanged(int)), this, SLOT(updateDeployWidgetsState()));
+ connect(m_ui->qtLibraryPath, SIGNAL(textChanged(QString)),
+ m_step, SLOT(setQtLibraryPath(QString)));
+ connect(m_ui->qtLibraryPath, SIGNAL(textChanged(QString)),
+ this, SLOT(updateDeployWidgetsState()));
+ connect(m_ui->deployNowButton, SIGNAL(clicked()), this, SLOT(deployLibraries()));
+ connect(ProjectExplorer::KitManager::instance(), SIGNAL(kitsChanged()), this, SLOT(updateDeployWidgetsState()));
+
connect(m_step, SIGNAL(cskPasswordChanged(QString)), m_ui->cskPassword, SLOT(setText(QString)));
- connect(m_step, SIGNAL(keystorePasswordChanged(QString)), m_ui->keystorePassword, SLOT(setText(QString)));
+ connect(m_step, SIGNAL(keystorePasswordChanged(QString)),
+ m_ui->keystorePassword, SLOT(setText(QString)));
+
+ m_ui->signPackages->setChecked(m_step->packageMode() ==
+ BlackBerryCreatePackageStep::SigningPackageMode);
+ m_ui->developmentMode->setChecked(m_step->packageMode() ==
+ BlackBerryCreatePackageStep::DevelopmentMode);
- m_ui->signPackagesWidget->setEnabled(m_ui->signPackages->isChecked());
+ m_ui->qtLibrary->setCurrentIndex(m_ui->qtLibrary->findData(m_step->bundleMode()));
+ setBundleMode(m_step->bundleMode());
+ updateDeployWidgetsState();
}
BlackBerryCreatePackageStepConfigWidget::~BlackBerryCreatePackageStepConfigWidget()
@@ -92,3 +122,48 @@ void BlackBerryCreatePackageStepConfigWidget::showPasswords(bool show)
m_ui->cskPassword->setEchoMode(show ? QLineEdit::Normal : QLineEdit::Password);
m_ui->keystorePassword->setEchoMode(show ? QLineEdit::Normal : QLineEdit::Password);
}
+
+void BlackBerryCreatePackageStepConfigWidget::setBundleMode(int qtLibraryIndex)
+{
+ QTC_ASSERT(m_qtLibraryExplanations.contains(qtLibraryIndex), return);
+
+ BlackBerryCreatePackageStep::BundleMode bundleMode =
+ static_cast<BlackBerryCreatePackageStep::BundleMode>(
+ m_ui->qtLibrary->itemData(qtLibraryIndex).toInt());
+
+ m_step->setBundleMode(bundleMode);
+ m_ui->qtLibraryExplanationLabel->setText(m_qtLibraryExplanations[qtLibraryIndex]);
+ m_ui->qtLibraryPath->setVisible(bundleMode == BlackBerryCreatePackageStep::DeployedQt);
+ m_ui->qtLibraryLabel->setVisible(bundleMode == BlackBerryCreatePackageStep::DeployedQt);
+}
+
+void BlackBerryCreatePackageStepConfigWidget::updateDeployWidgetsState()
+{
+ BlackBerryCreatePackageStep::BundleMode bundleMode =
+ static_cast<BlackBerryCreatePackageStep::BundleMode>(
+ m_ui->qtLibrary->itemData(m_ui->qtLibrary->currentIndex()).toInt());
+
+ ProjectExplorer::Kit *kit = m_step->target()->kit();
+ ProjectExplorer::IDevice::ConstPtr device = ProjectExplorer::DeviceKitInformation::device(kit);
+
+ const bool enableButton = !m_ui->qtLibraryPath->text().isEmpty()
+ && bundleMode == BlackBerryCreatePackageStep::DeployedQt
+ && !device.isNull();
+ const bool visibleButton = bundleMode == BlackBerryCreatePackageStep::DeployedQt;
+ const bool visibleLabels = bundleMode == BlackBerryCreatePackageStep::DeployedQt
+ && device.isNull();
+
+ m_ui->deployNowButton->setEnabled(enableButton);
+ m_ui->deployNowButton->setVisible(visibleButton);
+
+ m_ui->deployErrorPixmap->setVisible(visibleLabels);
+ m_ui->deployErrorLabel->setVisible(visibleLabels);
+}
+
+void BlackBerryCreatePackageStepConfigWidget::deployLibraries()
+{
+ ProjectExplorer::Kit *kit = m_step->target()->kit();
+ BlackBerryDeployQtLibrariesDialog dlg(ProjectExplorer::DeviceKitInformation::device(kit),
+ this);
+ dlg.execAndDeploy(QtSupport::QtKitInformation::qtVersionId(kit), m_ui->qtLibraryPath->text());
+}