void DlgPrefController::enumeratePresets() { m_ui.comboBoxPreset->clear(); // qDebug() << "Enumerating presets for controller" << m_pController->getName(); // Insert a dummy "..." item at the top to try to make it less confusing. // (We don't want the first found file showing up as the default item when a // user has their controller plugged in) m_ui.comboBoxPreset->addItem("..."); // Ask the controller manager for a list of applicable presets QSharedPointer<PresetInfoEnumerator> pie = m_pControllerManager->getMainThreadPresetEnumerator(); // Not ready yet. Should be rare. We will re-enumerate on the next open of // the preferences. if (pie.isNull()) { return; } // Making the list of presets in the alphabetical order QList<PresetInfo> presets = pie->getPresetsByExtension( m_pController->presetExtension()); qSort(presets.begin(), presets.end(), presetInfoNameComparator); PresetInfo match; for (const PresetInfo& preset : presets) { m_ui.comboBoxPreset->addItem(nameForPreset(preset), preset.getPath()); if (m_pController->matchPreset(preset)) { match = preset; } } // Jump to matching device in list if it was found. if (match.isValid()) { int index = m_ui.comboBoxPreset->findText(nameForPreset(match)); if (index != -1) { m_ui.comboBoxPreset->setCurrentIndex(index); } } }
void DlgPrefController::enumeratePresets() { m_ui.comboBoxPreset->clear(); // qDebug() << "Enumerating presets for controller" << m_pController->getName(); // Insert a dummy "..." item at the top to try to make it less confusing. // (We don't want the first found file showing up as the default item when a // user has their controller plugged in) m_ui.comboBoxPreset->addItem("..."); m_ui.comboBoxPreset->setInsertPolicy(QComboBox::InsertAlphabetically); // Ask the controller manager for a list of applicable presets PresetInfoEnumerator* pie = m_pControllerManager->getMainThreadPresetEnumerator(); QList<PresetInfo> presets = pie->getPresets(m_pController->presetExtension()); PresetInfo match; foreach (const PresetInfo& preset, presets) { m_ui.comboBoxPreset->addItem(nameForPreset(preset), preset.getPath()); if (m_pController->matchPreset(preset)) { match = preset; } }