void ClangDiagnosticConfigsWidget::syncConfigChooserToModel(const Core::Id &configToSelect) { disconnectConfigChooserCurrentIndex(); const int previousCurrentIndex = m_ui->configChooserComboBox->currentIndex(); m_ui->configChooserComboBox->clear(); int configToSelectIndex = -1; const int size = m_diagnosticConfigsModel.size(); for (int i = 0; i < size; ++i) { const ClangDiagnosticConfig &config = m_diagnosticConfigsModel.at(i); const QString displayName = displayNameWithBuiltinIndication(config, m_configWithUndecoratedDisplayName); m_ui->configChooserComboBox->addItem(displayName, config.id().toSetting()); if (configToSelect == config.id()) configToSelectIndex = i; } connectConfigChooserCurrentIndex(); if (configToSelectIndex != -1) { m_ui->configChooserComboBox->setCurrentIndex(configToSelectIndex); } else if (previousCurrentIndex != m_ui->configChooserComboBox->currentIndex()) { syncOtherWidgetsToComboBox(); emit currentConfigChanged(currentConfigId()); } }
void ClangDiagnosticConfigsSelectionWidget::refresh(Core::Id id) { disconnectFromCurrentIndexChanged(); int configToSelectIndex = -1; m_selectionComboBox->clear(); m_diagnosticConfigsModel = ClangDiagnosticConfigsModel( codeModelSettings()->clangCustomDiagnosticConfigs()); const int size = m_diagnosticConfigsModel.size(); for (int i = 0; i < size; ++i) { const ClangDiagnosticConfig &config = m_diagnosticConfigsModel.at(i); const QString displayName = ClangDiagnosticConfigsModel::displayNameWithBuiltinIndication(config); m_selectionComboBox->addItem(displayName, config.id().toSetting()); if (id == config.id()) configToSelectIndex = i; } if (configToSelectIndex != -1) m_selectionComboBox->setCurrentIndex(configToSelectIndex); else emit currentConfigChanged(currentConfigId()); connectToCurrentIndexChanged(); }
void ClangDiagnosticConfigsSelectionWidget::connectToCurrentIndexChanged() { m_currentIndexChangedConnection = connect(m_selectionComboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, [this]() { emit currentConfigChanged(currentConfigId()); }); }
int VisionDialog::exec() { if(!m_device->open()) return QDialog::Rejected; const int ret = QDialog::exec(); m_device->close(); const QModelIndex configIndex = ui->configsList->selectionModel()->currentIndex(); if(configIndex.isValid()) currentConfigChanged(QModelIndex(), configIndex); return ret; }
void ClangDiagnosticConfigsWidget::onCurrentConfigChanged(int) { syncOtherWidgetsToComboBox(); emit currentConfigChanged(currentConfigId()); }