void OpenBookmarkDialog::setCompletion(const QString &text) { m_completer->setCompletionPrefix(text); if (m_completer->completionCount() == 1) { emit requestedOpenBookmark(BookmarksManager::getBookmark(m_completer->currentCompletion())); close(); } }
void OpenBookmarkDialog::openBookmark() { emit requestedOpenBookmark(BookmarksManager::getBookmark(m_ui->lineEdit->text())); }
void InputInterpreter::interpret(const QString &text, WindowsManager::OpenHints hints, bool ignoreBookmarks) { if (text.startsWith(QLatin1String("bookmarks:"))) { BookmarksItem *bookmark = (text.startsWith(QLatin1String("bookmarks:/")) ? BookmarksManager::getModel()->getItem(text.mid(11)) : BookmarksManager::getBookmark(text.mid(10).toULongLong())); if (bookmark) { emit requestedOpenBookmark(bookmark, hints); deleteLater(); return; } } if (!ignoreBookmarks) { BookmarksItem *bookmark = BookmarksManager::getBookmark(text); if (bookmark) { emit requestedOpenBookmark(bookmark, hints); deleteLater(); return; } } if (text == QString(QLatin1Char('~')) || text.startsWith(QLatin1Char('~') + QDir::separator())) { const QStringList locations = QStandardPaths::standardLocations(QStandardPaths::HomeLocation); if (!locations.isEmpty()) { emit requestedOpenUrl(locations.first() + text.mid(1), hints); deleteLater(); return; } } const QFileInfo fileInformation(text); if (fileInformation.exists() && fileInformation.isAbsolute()) { emit requestedOpenUrl(QUrl::fromLocalFile(QFileInfo(text).canonicalFilePath()), hints); deleteLater(); return; } const QUrl url = QUrl::fromUserInput(text); const QHostAddress address(text); if (!address.isNull() || (url.isValid() && (url.isLocalFile() || QRegularExpression(QLatin1String("^(\\w+\\:\\S+)|([\\w\\-]+\\.[a-zA-Z]{2,}(/\\S*)?$)")).match(text).hasMatch()))) { emit requestedOpenUrl(url, hints); deleteLater(); return; } const QString keyword = text.section(QLatin1Char(' '), 0, 0); const SearchEnginesManager::SearchEngineDefinition searchEngine = SearchEnginesManager::getSearchEngine(keyword, true); if (!searchEngine.identifier.isEmpty()) { emit requestedSearch(text.section(QLatin1Char(' '), 1), searchEngine.identifier, hints); deleteLater(); return; } if (keyword == QLatin1String("?")) { emit requestedSearch(text.section(QLatin1Char(' '), 1), QString(), hints); deleteLater(); return; } const int lookupTimeout = SettingsManager::getValue(QLatin1String("AddressField/HostLookupTimeout")).toInt(); if (url.isValid() && lookupTimeout > 0) { m_text = text; m_hints = hints; if (m_timer != 0) { QHostInfo::abortHostLookup(m_lookup); killTimer(m_timer); m_timer = 0; } m_lookup = QHostInfo::lookupHost(url.host(), this, SLOT(verifyLookup(QHostInfo))); m_timer = startTimer(lookupTimeout); return; } emit requestedSearch(text, QString(), hints); deleteLater(); return; }