52
52
namespace Internal {
54
static QIcon invalidConfigIcon(QLatin1String(":/projectexplorer/images/compile_error.png"));
54
56
BlackBerryNDKSettingsWidget::BlackBerryNDKSettingsWidget(QWidget *parent) :
56
58
m_ui(new Ui_BlackBerryNDKSettingsWidget),
59
m_bbConfigManager(BlackBerryConfigurationManager::instance()),
57
60
m_autoDetectedNdks(0),
60
m_bbConfigManager = &BlackBerryConfigurationManager::instance();
61
63
m_ui->setupUi(this);
63
m_ui->activateNdkTargetButton->setEnabled(false);
64
m_ui->deactivateNdkTargetButton->setEnabled(false);
66
m_activatedTargets << m_bbConfigManager->activeConfigurations();
67
m_activatedApiLevel << m_bbConfigManager->activeApiLevels();
68
69
m_ui->ndksTreeWidget->header()->setResizeMode(QHeaderView::Stretch);
69
70
m_ui->ndksTreeWidget->header()->setStretchLastSection(false);
70
m_ui->ndksTreeWidget->setHeaderItem(new QTreeWidgetItem(QStringList() << tr("NDK") << tr("NDK Environment File")));
71
m_ui->ndksTreeWidget->setHeaderItem(new QTreeWidgetItem(QStringList() << tr("Configuration")));
71
72
m_ui->ndksTreeWidget->setTextElideMode(Qt::ElideNone);
72
m_ui->ndksTreeWidget->setColumnCount(2);
73
m_autoDetectedNdks = new QTreeWidgetItem(m_ui->ndksTreeWidget);
73
m_ui->ndksTreeWidget->setColumnCount(1);
75
m_apiLevels = new QTreeWidgetItem(m_ui->ndksTreeWidget);
76
m_apiLevels->setText(0, tr("API Levels"));
77
m_runtimes = new QTreeWidgetItem(m_ui->ndksTreeWidget);
78
m_runtimes->setText(0, tr("Runtimes"));
80
m_autoDetectedNdks = new QTreeWidgetItem(m_apiLevels);
74
81
m_autoDetectedNdks->setText(0, tr("Auto-Detected"));
75
82
m_autoDetectedNdks->setFirstColumnSpanned(true);
76
83
m_autoDetectedNdks->setFlags(Qt::ItemIsEnabled);
77
m_manualNdks = new QTreeWidgetItem(m_ui->ndksTreeWidget);
78
m_manualNdks->setText(0, tr("Manual"));
79
m_manualNdks->setFirstColumnSpanned(true);
80
m_manualNdks->setFlags(Qt::ItemIsEnabled);
84
m_manualApiLevel = new QTreeWidgetItem(m_apiLevels);
85
m_manualApiLevel->setText(0, tr("Manual"));
86
m_manualApiLevel->setFirstColumnSpanned(true);
87
m_manualApiLevel->setFlags(Qt::ItemIsEnabled);
82
89
m_ui->ndksTreeWidget->expandAll();
91
connect(m_ui->addConfigButton, SIGNAL(clicked()), this, SLOT(addConfiguration()));
92
connect(m_ui->removeConfigButton, SIGNAL(clicked()), this, SLOT(removeConfiguration()));
93
connect(m_ui->activateNdkTargetButton, SIGNAL(clicked()), this, SLOT(activateApiLevel()));
94
connect(m_ui->deactivateNdkTargetButton, SIGNAL(clicked()), this, SLOT(deactivateApiLevel()));
86
connect(m_ui->wizardButton, SIGNAL(clicked()), this, SLOT(launchBlackBerrySetupWizard()));
87
connect(m_ui->addNdkButton, SIGNAL(clicked()), this, SLOT(addNdkTarget()));
88
connect(m_ui->removeNdkButton, SIGNAL(clicked()), this, SLOT(removeNdkTarget()));
89
connect(m_ui->activateNdkTargetButton, SIGNAL(clicked()), this, SLOT(activateNdkTarget()));
90
connect(m_ui->deactivateNdkTargetButton, SIGNAL(clicked()), this, SLOT(deactivateNdkTarget()));
96
connect(m_ui->cleanUpButton, SIGNAL(clicked()), this, SLOT(cleanUp()));
91
97
connect(m_ui->ndksTreeWidget, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), this, SLOT(updateInfoTable(QTreeWidgetItem*)));
94
void BlackBerryNDKSettingsWidget::setWizardMessageVisible(bool visible)
96
m_ui->wizardLabel->setVisible(visible);
97
m_ui->wizardButton->setVisible(visible);
98
connect(this, SIGNAL(configurationsUpdated()), this, SLOT(populateDefaultConfigurationCombo()));
100
// BlackBerryConfigurationManager.settingsChanged signal may be emitted multiple times
101
// during the same event handling. This would result in multiple updatePage() calls even through
102
// just one is needed.
103
// QTimer allows to merge those multiple signal emits into a single updatePage() call.
104
m_timer.setSingleShot(true);
105
connect(&m_timer, SIGNAL(timeout()), this, SLOT(updatePage()));
108
connect(m_bbConfigManager, SIGNAL(settingsChanged()), &m_timer, SLOT(start()));
100
111
bool BlackBerryNDKSettingsWidget::hasActiveNdk() const
102
return !m_bbConfigManager->configurations().isEmpty();
105
QList<BlackBerryConfiguration *> BlackBerryNDKSettingsWidget::activatedTargets()
107
return m_activatedTargets;
110
QList<BlackBerryConfiguration *> BlackBerryNDKSettingsWidget::deactivatedTargets()
112
return m_deactivatedTargets;
115
void BlackBerryNDKSettingsWidget::launchBlackBerrySetupWizard() const
117
BlackBerrySigningUtils &blackBerryUtils = BlackBerrySigningUtils::instance();
118
const bool alreadyConfigured = blackBerryUtils.hasRegisteredKeys() && blackBerryUtils.hasDefaultCertificate();
120
if (alreadyConfigured) {
121
QMessageBox::information(0, tr("Qt Creator"),
122
tr("It appears that your BlackBerry environment has already been configured."));
126
BlackBerrySetupWizard wizard(Core::ICore::mainWindow());
127
connect(&wizard, SIGNAL(ndkTargetsUpdated()), this, SLOT(updateNdkList()));
113
return !m_bbConfigManager->apiLevels().isEmpty();
116
QList<BlackBerryApiLevelConfiguration *> BlackBerryNDKSettingsWidget::activatedApiLevels()
118
return m_activatedApiLevel;
121
QList<BlackBerryApiLevelConfiguration *> BlackBerryNDKSettingsWidget::deactivatedApiLevels()
123
return m_deactivatedApiLevel;
126
BlackBerryApiLevelConfiguration *BlackBerryNDKSettingsWidget::defaultApiLevel() const
128
const int currentIndex = m_ui->apiLevelCombo->currentIndex();
130
return static_cast<BlackBerryApiLevelConfiguration*>(
131
m_ui->apiLevelCombo->itemData(currentIndex).value<void*>());
131
134
void BlackBerryNDKSettingsWidget::updateInfoTable(QTreeWidgetItem* currentItem)
136
updateUi(currentItem);
133
137
if (!currentItem)
136
QString envFilePath = currentItem->text(1);
137
if (envFilePath.isEmpty()) {
138
m_ui->removeNdkButton->setEnabled(false);
139
m_ui->activateNdkTargetButton->setEnabled(false);
140
m_ui->deactivateNdkTargetButton->setEnabled(false);
144
BlackBerryConfiguration *config = m_bbConfigManager->configurationFromEnvFile(Utils::FileName::fromString(envFilePath));
148
m_ui->baseNameLabel->setText(config->displayName());
149
m_ui->ndkPathLabel->setText(QDir::toNativeSeparators(config->ndkPath()));
150
m_ui->hostLabel->setText(QDir::toNativeSeparators(config->qnxHost()));
151
m_ui->targetLabel->setText(QDir::toNativeSeparators(config->sysRoot().toString()));
152
m_ui->versionLabel->clear();
153
// TODO: Add a versionNumber attribute for the BlackBerryConfiguration class
154
if (config->isAutoDetected()) {
155
foreach (const NdkInstallInformation &ndkInfo, QnxUtils::installedNdks()) {
156
if (ndkInfo.name == config->displayName()) {
157
m_ui->versionLabel->setText(ndkInfo.version);
140
if (currentItem->parent() == m_runtimes) {
141
BlackBerryRuntimeConfiguration *runtime = static_cast<BlackBerryRuntimeConfiguration*>(
142
currentItem->data(0, Qt::UserRole).value<void*>());
144
m_ui->baseName->setText(runtime->displayName());
145
m_ui->version->setText(runtime->version().toString());
146
m_ui->path->setText(runtime->path());
148
m_ui->removeConfigButton->setEnabled(runtime);
149
m_ui->activateNdkTargetButton->setEnabled(false);
150
m_ui->deactivateNdkTargetButton->setEnabled(false);
154
} else if (currentItem->parent() == m_autoDetectedNdks || currentItem->parent() == m_manualApiLevel) {
155
BlackBerryApiLevelConfiguration *config = static_cast<BlackBerryApiLevelConfiguration*>(
156
currentItem->data(0, Qt::UserRole).value<void*>());
158
m_ui->path->setText(config->ndkEnvFile().toString());
159
m_ui->baseName->setText(config->displayName());
160
m_ui->host->setText(QDir::toNativeSeparators(config->qnxHost()));
161
m_ui->target->setText(QDir::toNativeSeparators(config->sysRoot().toString()));
162
m_ui->version->setText(config->version().toString());
163
updateUi(currentItem, config);
166
void BlackBerryNDKSettingsWidget::updateNdkList()
166
void BlackBerryNDKSettingsWidget::updateConfigurationList()
168
m_activatedApiLevel.clear();
169
m_activatedApiLevel << m_bbConfigManager->activeApiLevels();
170
m_deactivatedApiLevel.clear();
168
172
qDeleteAll(m_autoDetectedNdks->takeChildren());
169
qDeleteAll(m_manualNdks->takeChildren());
173
qDeleteAll(m_manualApiLevel->takeChildren());
174
qDeleteAll(m_runtimes->takeChildren());
171
foreach (BlackBerryConfiguration *config, m_bbConfigManager->configurations()) {
172
QTreeWidgetItem *parent = config->isAutoDetected() ? m_autoDetectedNdks : m_manualNdks;
176
bool enableCleanUp = false;
177
foreach (BlackBerryApiLevelConfiguration *config, m_bbConfigManager->apiLevels()) {
178
QTreeWidgetItem *parent = config->isAutoDetected() ? m_autoDetectedNdks : m_manualApiLevel;
173
179
QTreeWidgetItem *item = new QTreeWidgetItem(parent);
174
180
item->setText(0, config->displayName());
175
item->setText(1, config->ndkEnvFile().toString());
177
font.setBold(config->isActive() || m_activatedTargets.contains(config));
178
item->setFont(0, font);
179
item->setFont(1, font);
182
if (m_autoDetectedNdks->child(0)) {
183
m_autoDetectedNdks->child(0)->setSelected(true);
184
updateInfoTable(m_autoDetectedNdks->child(0));
188
void BlackBerryNDKSettingsWidget::addNdkTarget()
190
launchBlackBerryInstallerWizard(BlackBerryInstallerDataHandler::InstallMode);
191
emit targetsUpdated();
194
void BlackBerryNDKSettingsWidget::removeNdkTarget()
196
if (!m_ui->ndksTreeWidget->currentItem())
199
QString ndk = m_ui->ndksTreeWidget->currentItem()->text(0);
200
QString envFilePath = m_ui->ndksTreeWidget->currentItem()->text(1);
202
BlackBerryConfiguration *config = m_bbConfigManager->configurationFromEnvFile(Utils::FileName::fromString(envFilePath));
206
if (config->isAutoDetected()) {
207
uninstallNdkTarget();
208
emit targetsUpdated();
212
QMessageBox::StandardButton button =
213
QMessageBox::question(Core::ICore::mainWindow(),
214
tr("Clean BlackBerry 10 Configuration"),
215
tr("Are you sure you want to remove:\n %1?").arg(ndk),
216
QMessageBox::Yes | QMessageBox::No);
218
if (button == QMessageBox::Yes) {
219
m_activatedTargets.removeOne(config);
220
m_deactivatedTargets.removeOne(config);
221
m_bbConfigManager->removeConfiguration(config);
222
m_manualNdks->removeChild(m_ui->ndksTreeWidget->currentItem());
223
emit targetsUpdated();
227
void BlackBerryNDKSettingsWidget::activateNdkTarget()
229
if (!m_ui->ndksTreeWidget->currentItem())
232
QString envFilePath = m_ui->ndksTreeWidget->currentItem()->text(1);
234
BlackBerryConfiguration *config = m_bbConfigManager->configurationFromEnvFile(Utils::FileName::fromString(envFilePath));
235
if (config && !m_activatedTargets.contains(config)) {
236
m_activatedTargets << config;
237
if (m_deactivatedTargets.contains(config))
238
m_deactivatedTargets.removeAt(m_deactivatedTargets.indexOf(config));
240
updateUi(m_ui->ndksTreeWidget->currentItem(), config);
241
emit targetsUpdated();
245
void BlackBerryNDKSettingsWidget::deactivateNdkTarget()
247
if (!m_ui->ndksTreeWidget->currentItem())
250
QString envFilePath = m_ui->ndksTreeWidget->currentItem()->text(1);
252
BlackBerryConfiguration *config = m_bbConfigManager->configurationFromEnvFile(Utils::FileName::fromString(envFilePath));
253
if (config && m_activatedTargets.contains(config)) {
254
m_deactivatedTargets << config;
255
m_activatedTargets.removeAt(m_activatedTargets.indexOf(config));
256
updateUi(m_ui->ndksTreeWidget->currentItem(), config);
257
emit targetsUpdated();
261
void BlackBerryNDKSettingsWidget::updateUi(QTreeWidgetItem *item, BlackBerryConfiguration *config)
263
if (!item || !config)
267
font.setBold(m_activatedTargets.contains(config));
268
item->setFont(0, font);
269
item->setFont(1, font);
271
m_ui->activateNdkTargetButton->setEnabled(!m_activatedTargets.contains(config));
272
m_ui->deactivateNdkTargetButton->setEnabled(m_activatedTargets.contains(config)
273
&& m_activatedTargets.size() > 1);
274
// Disable remove button for auto detected pre-10.2 NDKs (uninstall wizard doesn't handle them)
275
m_ui->removeNdkButton->setEnabled(!(config->isAutoDetected()
276
&& QnxUtils::sdkInstallerPath(config->ndkPath()).isEmpty()));
279
void BlackBerryNDKSettingsWidget::uninstallNdkTarget()
181
item->setData(0, Qt::UserRole, QVariant::fromValue(static_cast<void*>(config)));
183
font.setBold(config->isActive() || m_activatedApiLevel.contains(config));
184
item->setFont(0, font);
185
item->setIcon(0, config->isValid() ? QIcon() : invalidConfigIcon);
186
// TODO: Do the same if qmake, qcc, debugger are no longer detected...
187
if (!config->isValid()) {
188
QString toolTip = tr("Invalid target %1:").arg(config->targetName());
189
if (config->isAutoDetected() && !config->autoDetectionSource().toFileInfo().exists())
190
toolTip += QLatin1Char('\n') + tr("- Target no longer installed.");
192
if (!config->ndkEnvFile().toFileInfo().exists())
193
toolTip += QLatin1Char('\n') + tr("- No NDK environment file found.");
195
if (config->qmake4BinaryFile().isEmpty()
196
&& config->qmake5BinaryFile().isEmpty())
197
toolTip += QLatin1Char('\n') + tr("- No Qt version found.");
199
if (config->gccCompiler().isEmpty())
200
toolTip += QLatin1Char('\n') + tr("- No compiler found.");
202
if (config->deviceDebuger().isEmpty())
203
toolTip += QLatin1Char('\n') + tr("- No debugger found for device.");
205
if (config->simulatorDebuger().isEmpty())
206
toolTip += QLatin1Char('\n') + tr("- No debugger found for simulator.");
208
item->setToolTip(0, toolTip);
209
enableCleanUp = true;
213
foreach (BlackBerryRuntimeConfiguration *runtime, m_bbConfigManager->runtimes()) {
214
QTreeWidgetItem *item = new QTreeWidgetItem(m_runtimes);
215
item->setText(0, runtime->displayName());
216
item->setData(0, Qt::UserRole, QVariant::fromValue(static_cast<void*>(runtime)));
219
m_ui->ndksTreeWidget->setCurrentItem(m_autoDetectedNdks->child(0));
220
m_ui->cleanUpButton->setEnabled(enableCleanUp);
223
void BlackBerryNDKSettingsWidget::addConfiguration()
225
launchBlackBerryInstallerWizard(BlackBerryInstallerDataHandler::InstallMode, BlackBerryInstallerDataHandler::ApiLevel);
226
emit configurationsUpdated();
229
void BlackBerryNDKSettingsWidget::removeConfiguration()
231
QTreeWidgetItem * current = m_ui->ndksTreeWidget->currentItem();
235
if (current->parent() == m_runtimes) {
236
uninstallConfiguration(BlackBerryInstallerDataHandler::Runtime);
237
emit configurationsUpdated();
239
const QString ndk = m_ui->ndksTreeWidget->currentItem()->text(0);
240
BlackBerryApiLevelConfiguration *config = static_cast<BlackBerryApiLevelConfiguration*>(
241
current->data(0, Qt::UserRole).value<void*>());
242
if (config->isAutoDetected()) {
243
uninstallConfiguration(BlackBerryInstallerDataHandler::ApiLevel);
244
emit configurationsUpdated();
248
QMessageBox::StandardButton button =
249
QMessageBox::question(Core::ICore::mainWindow(),
250
tr("Clean BlackBerry 10 Configuration"),
251
tr("Are you sure you want to remove:\n %1?").arg(ndk),
252
QMessageBox::Yes | QMessageBox::No);
254
if (button == QMessageBox::Yes) {
255
m_activatedApiLevel.removeOne(config);
256
m_deactivatedApiLevel.removeOne(config);
257
m_bbConfigManager->removeApiLevel(config);
258
m_manualApiLevel->removeChild(m_ui->ndksTreeWidget->currentItem());
259
emit configurationsUpdated();
264
void BlackBerryNDKSettingsWidget::activateApiLevel()
266
if (!m_ui->ndksTreeWidget->currentItem())
269
BlackBerryApiLevelConfiguration *config = static_cast<BlackBerryApiLevelConfiguration*>(
270
m_ui->ndksTreeWidget->currentItem()->data(0, Qt::UserRole).value<void*>());
272
if (!m_activatedApiLevel.contains(config)) {
273
m_activatedApiLevel << config;
274
if (m_deactivatedApiLevel.contains(config))
275
m_deactivatedApiLevel.removeAt(m_deactivatedApiLevel.indexOf(config));
277
updateUi(m_ui->ndksTreeWidget->currentItem());
278
emit configurationsUpdated();
282
void BlackBerryNDKSettingsWidget::deactivateApiLevel()
284
if (!m_ui->ndksTreeWidget->currentItem())
287
BlackBerryApiLevelConfiguration *config = static_cast<BlackBerryApiLevelConfiguration*>(
288
m_ui->ndksTreeWidget->currentItem()->data(0, Qt::UserRole).value<void*>());
289
if (m_activatedApiLevel.contains(config)) {
290
m_deactivatedApiLevel << config;
291
m_activatedApiLevel.removeAt(m_activatedApiLevel.indexOf(config));
292
updateUi(m_ui->ndksTreeWidget->currentItem());
293
emit configurationsUpdated();
297
void BlackBerryNDKSettingsWidget::updateUi(QTreeWidgetItem *item)
299
if (!item || (item->parent() != m_runtimes &&
300
item->parent() != m_autoDetectedNdks &&
301
item->parent() != m_manualApiLevel )) {
302
m_ui->removeConfigButton->setEnabled(false);
303
m_ui->activateNdkTargetButton->setEnabled(false);
304
m_ui->deactivateNdkTargetButton->setEnabled(false);
305
m_ui->informationBox->setVisible(false);
309
const bool isRuntimeItem = item->parent() == m_runtimes;
310
// Update the infornation to show in the information panel
311
m_ui->informationBox->setVisible(true);
312
m_ui->informationBox->setTitle(isRuntimeItem ?
313
tr("Runtime Information") : tr("API Level Information"));
314
m_ui->pathLabel->setText(isRuntimeItem ? tr("Path:") : tr("Environment file:"));
315
m_ui->hostLabel->setVisible(!isRuntimeItem);
316
m_ui->host->setVisible(!isRuntimeItem);
317
m_ui->targetLabel->setVisible(!isRuntimeItem);
318
m_ui->target->setVisible(!isRuntimeItem);
320
if (!isRuntimeItem) {
321
BlackBerryApiLevelConfiguration *config = static_cast<BlackBerryApiLevelConfiguration*>(
322
item->data(0, Qt::UserRole).value<void*>());
323
const bool contains = m_activatedApiLevel.contains(config);
325
font.setBold(contains);
326
item->setFont(0, font);
328
m_ui->activateNdkTargetButton->setEnabled(!contains);
329
m_ui->deactivateNdkTargetButton->setEnabled(contains);
330
// Disable remove button for auto detected pre-10.2 NDKs (uninstall wizard doesn't handle them)
331
m_ui->removeConfigButton->setEnabled(!(config->isAutoDetected()
332
&& QnxUtils::sdkInstallerPath(config->ndkPath()).isEmpty()));
336
void BlackBerryNDKSettingsWidget::uninstallConfiguration(BlackBerryInstallerDataHandler::Target target)
281
338
const QMessageBox::StandardButton answer = QMessageBox::question(this, tr("Confirmation"),
282
339
tr("Are you sure you want to uninstall %1?").
283
arg(m_ui->baseNameLabel->text()),
340
arg(m_ui->baseName->text()),
284
341
QMessageBox::Yes | QMessageBox::No);
286
if (answer == QMessageBox::Yes)
287
launchBlackBerryInstallerWizard(BlackBerryInstallerDataHandler::UninstallMode, m_ui->versionLabel->text());
343
if (answer == QMessageBox::Yes) {
344
if (target == BlackBerryInstallerDataHandler::ApiLevel) {
345
launchBlackBerryInstallerWizard(BlackBerryInstallerDataHandler::UninstallMode,
346
BlackBerryInstallerDataHandler::ApiLevel, m_ui->version->text());
347
} else if (target == BlackBerryInstallerDataHandler::Runtime) {
348
if (m_ui->ndksTreeWidget->currentItem()) {
349
launchBlackBerryInstallerWizard(BlackBerryInstallerDataHandler::UninstallMode,
350
BlackBerryInstallerDataHandler::Runtime,
351
m_ui->ndksTreeWidget->currentItem()->text(0));
358
void BlackBerryNDKSettingsWidget::cleanUp()
360
foreach (BlackBerryApiLevelConfiguration *config, m_bbConfigManager->apiLevels()) {
361
if (!config->isValid()) {
362
m_activatedApiLevel.removeOne(config);
363
m_deactivatedApiLevel.removeOne(config);
364
m_bbConfigManager->removeApiLevel(config);
368
updateConfigurationList();
290
371
void BlackBerryNDKSettingsWidget::handleInstallationFinished()
292
m_bbConfigManager->loadAutoDetectedConfigurations();
373
m_bbConfigManager->loadAutoDetectedApiLevels();
374
m_bbConfigManager->loadAutoDetectedRuntimes();
375
updateConfigurationList();
296
378
void BlackBerryNDKSettingsWidget::handleUninstallationFinished()
298
if (!m_ui->ndksTreeWidget->currentItem())
301
QString targetName = m_ui->ndksTreeWidget->currentItem()->text(0);
302
QString envFilePath = m_ui->ndksTreeWidget->currentItem()->text(1);
380
QTreeWidgetItem *current = m_ui->ndksTreeWidget->currentItem();
384
if (current->parent() == m_runtimes) {
385
BlackBerryRuntimeConfiguration *runtime = static_cast<BlackBerryRuntimeConfiguration*>(
386
current->data(0, Qt::UserRole).value<void*>());
387
m_bbConfigManager->removeRuntime(runtime);
388
updateConfigurationList();
392
const QString targetName = current->text(0);
303
393
// Check if the target is corrrecly uninstalled
304
394
foreach (const NdkInstallInformation &ndk, QnxUtils::installedNdks()) {
305
395
if (ndk.name == targetName)
309
BlackBerryConfiguration *config = m_bbConfigManager->configurationFromEnvFile(Utils::FileName::fromString(envFilePath));
310
if (m_activatedTargets.contains(config))
311
m_activatedTargets.removeAt(m_activatedTargets.indexOf(config));
312
else if (m_deactivatedTargets.contains(config))
313
m_deactivatedTargets.removeAt(m_deactivatedTargets.indexOf(config));
315
m_bbConfigManager->removeConfiguration(config);
320
void BlackBerryNDKSettingsWidget::launchBlackBerryInstallerWizard(BlackBerryInstallerDataHandler::Mode mode,
321
const QString& targetVersion)
323
BlackBerryInstallWizard wizard(mode, targetVersion, this);
399
BlackBerryApiLevelConfiguration *config = static_cast<BlackBerryApiLevelConfiguration*>(
400
current->data(0, Qt::UserRole).value<void*>());
401
if (m_activatedApiLevel.contains(config))
402
m_activatedApiLevel.removeAt(m_activatedApiLevel.indexOf(config));
403
else if (m_deactivatedApiLevel.contains(config))
404
m_deactivatedApiLevel.removeAt(m_deactivatedApiLevel.indexOf(config));
406
m_bbConfigManager->removeApiLevel(config);
408
updateConfigurationList();
411
void BlackBerryNDKSettingsWidget::populateDefaultConfigurationCombo()
413
// prevent QComboBox::currentIndexChanged() from being emitted
414
m_ui->apiLevelCombo->clear();
416
QList<BlackBerryApiLevelConfiguration*> configurations = m_bbConfigManager->apiLevels();
418
m_ui->apiLevelCombo->addItem(tr("Newest Version"),
419
QVariant::fromValue(static_cast<void*>(0)));
421
if (configurations.isEmpty())
426
BlackBerryApiLevelConfiguration *defaultConfig = m_bbConfigManager->defaultApiLevel();
428
foreach (BlackBerryApiLevelConfiguration *config, configurations) {
429
m_ui->apiLevelCombo->addItem(config->displayName(),
430
QVariant::fromValue(static_cast<void*>(config)));
432
if (config == defaultConfig)
433
configIndex = m_ui->apiLevelCombo->count() - 1;
436
const int currentIndex = (m_bbConfigManager->newestApiLevelEnabled()) ? 0 : configIndex;
438
m_ui->apiLevelCombo->setCurrentIndex(currentIndex);
441
void BlackBerryNDKSettingsWidget::launchBlackBerryInstallerWizard(
442
BlackBerryInstallerDataHandler::Mode mode,
443
BlackBerryInstallerDataHandler::Target target,
444
const QString& targetVersion)
446
BlackBerryInstallWizard wizard(mode, target, targetVersion, this);
324
447
if (mode == BlackBerryInstallerDataHandler::InstallMode)
325
448
connect(&wizard, SIGNAL(processFinished()), this, SLOT(handleInstallationFinished()));