void SettingsPage::updateButtonStates() { QListWidgetItem *item = m_ui.filterList->currentItem(); ILocatorFilter *filter = (item ? item->data(Qt::UserRole).value<ILocatorFilter *>() : 0); m_ui.editButton->setEnabled(filter && filter->isConfigurable()); m_ui.removeButton->setEnabled(filter && m_customFilters.contains(filter)); }
void LocatorSettingsPage::updateButtonStates() { const QModelIndex currentIndex = m_proxyModel->mapToSource(m_ui.filterList->currentIndex()); bool selected = currentIndex.isValid(); ILocatorFilter *filter = 0; if (selected) { auto item = dynamic_cast<FilterItem *>(m_model->itemForIndex(currentIndex)); if (item) filter = item->filter(); } m_ui.editButton->setEnabled(filter && filter->isConfigurable()); m_ui.removeButton->setEnabled(filter && m_customFilters.contains(filter)); }
void SettingsPage::configureFilter(QListWidgetItem *item) { if (!item) item = m_ui.filterList->currentItem(); QTC_ASSERT(item, return); ILocatorFilter *filter = item->data(Qt::UserRole).value<ILocatorFilter *>(); QTC_ASSERT(filter, return); if (!filter->isConfigurable()) return; bool needsRefresh = false; filter->openConfigDialog(m_page, needsRefresh); if (needsRefresh && !m_refreshFilters.contains(filter)) m_refreshFilters.append(filter); updateFilterList(); }
void LocatorSettingsPage::configureFilter(const QModelIndex &proxyIndex) { const QModelIndex index = m_proxyModel->mapToSource(proxyIndex); QTC_ASSERT(index.isValid(), return); auto item = dynamic_cast<FilterItem *>(m_model->itemForIndex(index)); QTC_ASSERT(item, return); ILocatorFilter *filter = item->filter(); QTC_ASSERT(filter->isConfigurable(), return); bool includedByDefault = filter->isIncludedByDefault(); QString shortcutString = filter->shortcutString(); bool needsRefresh = false; filter->openConfigDialog(m_widget, needsRefresh); if (needsRefresh && !m_refreshFilters.contains(filter)) m_refreshFilters.append(filter); if (filter->isIncludedByDefault() != includedByDefault) item->updateColumn(FilterIncludedByDefault); if (filter->shortcutString() != shortcutString) item->updateColumn(FilterPrefix); }