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 SettingsPage::addCustomFilter() { ILocatorFilter *filter = new DirectoryFilter; bool needsRefresh = false; if (filter->openConfigDialog(m_page, needsRefresh)) { m_filters.append(filter); m_addedFilters.append(filter); m_customFilters.append(filter); m_refreshFilters.append(filter); updateFilterList(); } }
void LocatorSettingsPage::addCustomFilter() { ILocatorFilter *filter = new DirectoryFilter( Id(Constants::CUSTOM_FILTER_BASEID).withSuffix(m_customFilters.size() + 1)); bool needsRefresh = false; if (filter->openConfigDialog(m_widget, needsRefresh)) { m_filters.append(filter); m_addedFilters.append(filter); m_customFilters.append(filter); m_refreshFilters.append(filter); m_customFilterRoot->appendChild(new FilterItem(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 Locator::updateEditorManagerPlaceholderText() { Command *openCommand = ActionManager::command(Constants::OPEN); Command *locateCommand = ActionManager::command(Constants::LOCATE); const QString placeholderText = tr("<html><body style=\"color:#909090; font-size:14px\">" "<div align='center'>" "<div style=\"font-size:20px\">Open a document</div>" "<table><tr><td>" "<hr/>" "<div style=\"margin-top: 5px\">• File > Open File or Project (%1)</div>" "<div style=\"margin-top: 5px\">• File > Recent Files</div>" "<div style=\"margin-top: 5px\">• Tools > Locate (%2) and</div>" "<div style=\"margin-left: 1em\">- type to open file from any open project</div>" "%4" "%5" "<div style=\"margin-left: 1em\">- type <code>%3<space><filename></code> to open file from file system</div>" "<div style=\"margin-left: 1em\">- select one of the other filters for jumping to a location</div>" "<div style=\"margin-top: 5px\">• Drag and drop files here</div>" "</td></tr></table>" "</div>" "</body></html>") .arg(openCommand->keySequence().toString(QKeySequence::NativeText)) .arg(locateCommand->keySequence().toString(QKeySequence::NativeText)) .arg(m_fileSystemFilter->shortcutString()); QString classes; // not nice, but anyhow ILocatorFilter *classesFilter = Utils::findOrDefault(m_filters, Utils::equal(&ILocatorFilter::id, Id("Classes"))); if (classesFilter) classes = tr("<div style=\"margin-left: 1em\">- type <code>%1<space><pattern></code>" " to jump to a class definition</div>").arg(classesFilter->shortcutString()); QString methods; // not nice, but anyhow ILocatorFilter *methodsFilter = Utils::findOrDefault(m_filters, Utils::equal(&ILocatorFilter::id, Id("Methods"))); if (methodsFilter) methods = tr("<div style=\"margin-left: 1em\">- type <code>%1<space><pattern></code>" " to jump to a function definition</div>").arg(methodsFilter->shortcutString()); EditorManagerPrivate::setPlaceholderText(placeholderText.arg(classes, methods)); }
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); }