diff options
author | Tobias Nätterlund <tobias.naetterlund.qnx@kdab.com> | 2014-02-10 14:16:55 +0100 |
---|---|---|
committer | Tobias Nätterlund <tobias.naetterlund@kdab.com> | 2014-02-13 09:29:38 +0100 |
commit | 6b8b60cef6cb286186d09cdb4ee999b12615935c (patch) | |
tree | 0953454025cf2b3d3a2c331ce8c998293960f891 /src/plugins/qnx/blackberrycreatepackagestepconfigwidget.cpp | |
parent | 2128b289efb99cf8477774f383841150fc4309ed (diff) | |
download | qt-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.cpp | 87 |
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()); +} |