void PreferencesGeneralPageWidget::useCurrentAsHomePage() { WindowsManager *manager = SessionsManager::getWindowsManager(); if (manager) { m_ui->homePageLineEdit->setText(manager->getUrl().toString(QUrl::RemovePassword)); } }
void BookmarksContentsWidget::openBookmark(const QModelIndex &index) { BookmarksItem *bookmark = dynamic_cast<BookmarksItem*>(BookmarksManager::getModel()->itemFromIndex(index.isValid() ? index : m_ui->bookmarksViewWidget->currentIndex())); WindowsManager *manager = SessionsManager::getWindowsManager(); if (bookmark && manager) { QAction *action = qobject_cast<QAction*>(sender()); manager->open(bookmark, (action ? static_cast<WindowsManager::OpenHints>(action->data().toInt()) : WindowsManager::DefaultOpen)); } }
void UpdateChecker::runUpdate() { if (!SessionsManager::hasUrl(m_detailsUrl, true)) { WindowsManager *manager = SessionsManager::getWindowsManager(); if (manager) { manager->open(m_detailsUrl); } } deleteLater(); }
void UpdateCheckerDialog::showDetails() { QPushButton *button = qobject_cast<QPushButton*>(sender()); if (button) { const QUrl detailsUrl = button->property("detailsUrl").toUrl(); if (detailsUrl.isValid() && !SessionsManager::hasUrl(detailsUrl, true)) { WindowsManager *manager = SessionsManager::getWindowsManager(); if (manager) { manager->open(detailsUrl); } close(); } } }
void AddressWidget::handleUserInput(const QString &text) { const BookmarkInformation *bookmark = BookmarksManager::getBookmarkByKeyword(text); if (bookmark) { WindowsManager *windowsManager = SessionsManager::getWindowsManager(); if (windowsManager) { windowsManager->open(bookmark); return; } } if (text == QString(QLatin1Char('~')) || text.startsWith(QLatin1Char('~') + QDir::separator())) { const QStringList locations = QStandardPaths::standardLocations(QStandardPaths::HomeLocation); if (!locations.isEmpty()) { emit requestedLoadUrl(QUrl(locations.first() + text.mid(1))); return; } } const QUrl url = QUrl::fromUserInput(text); if (url.isValid() && (url.isLocalFile() || QRegularExpression(QLatin1String("^(\\w+\\:\\S+)|([\\w\\-]+\\.[a-zA-Z]{2,}(/\\S*)?$)")).match(text).hasMatch())) { emit requestedLoadUrl(url); return; } const QString shortcut = text.section(QLatin1Char(' '), 0, 0); const QStringList engines = SearchesManager::getSearchEngines(); SearchInformation *engine = NULL; for (int i = 0; i < engines.count(); ++i) { engine = SearchesManager::getSearchEngine(engines.at(i)); if (engine && shortcut == engine->shortcut) { emit requestedSearch(text.section(QLatin1Char(' '), 1), engine->identifier); return; } } const int lookupTimeout = SettingsManager::getValue(QLatin1String("AddressField/HostLookupTimeout")).toInt(); if (url.isValid() && lookupTimeout > 0) { if (text == m_lookupQuery) { return; } m_lookupQuery = text; if (m_lookupTimer != 0) { QHostInfo::abortHostLookup(m_lookupID); killTimer(m_lookupTimer); m_lookupTimer = 0; } m_lookupID = QHostInfo::lookupHost(url.host(), this, SLOT(verifyLookup(QHostInfo))); m_lookupTimer = startTimer(lookupTimeout); return; } emit requestedSearch(text, SettingsManager::getValue(QLatin1String("Search/DefaultSearchEngine")).toString()); }
void TrayIcon::triggerAction(QAction *action) { if (!action || action->data().isNull()) { return; } const QString identifier = action->data().toString(); if (identifier == QLatin1String("toggleVisibility")) { activated(QSystemTrayIcon::Trigger); } else if (identifier == QLatin1String("exit")) { Application::getInstance()->close(); } else { WindowsManager *manager = SessionsManager::getWindowsManager(); if (manager) { if (identifier == QLatin1String("newTab")) { manager->open(QUrl(), DefaultOpen); } else if (identifier == QLatin1String("newPrivateTab")) { manager->open(QUrl(), PrivateOpen); } else if (identifier == QLatin1String("bookmarks")) { const QUrl url(QLatin1String("about:bookmarks")); if (!SessionsManager::hasUrl(url, true)) { manager->open(url); } } else if (identifier == QLatin1String("transfers")) { const QUrl url(QLatin1String("about:transfers")); if (!SessionsManager::hasUrl(url, true)) { manager->open(url); } } else if (identifier == QLatin1String("history")) { const QUrl url(QLatin1String("about:history")); if (!SessionsManager::hasUrl(url, true)) { manager->open(url); } } } } }
void MainWindow::openUrl(const QString &input) { const BookmarkInformation *bookmark = BookmarksManager::getBookmark(input); if (bookmark) { WindowsManager *windowsManager = SessionsManager::getWindowsManager(); if (windowsManager) { windowsManager->open(bookmark); return; } } if (input == QString(QLatin1Char('~')) || input.startsWith(QLatin1Char('~') + QDir::separator())) { const QStringList locations = QStandardPaths::standardLocations(QStandardPaths::HomeLocation); if (!locations.isEmpty()) { m_windowsManager->open(QUrl(locations.first() + input.mid(1))); return; } } if (QFileInfo(input).exists()) { m_windowsManager->open(QUrl::fromLocalFile(QFileInfo(input).canonicalFilePath())); return; } const QUrl url = QUrl::fromUserInput(input); if (url.isValid() && (url.isLocalFile() || QRegularExpression(QLatin1String("^(\\w+\\:\\S+)|([\\w\\-]+\\.[a-zA-Z]{2,}(/\\S*)?$)")).match(input).hasMatch())) { m_windowsManager->open(url); return; } const QString keyword = input.section(QLatin1Char(' '), 0, 0); const QStringList engines = SearchesManager::getSearchEngines(); SearchInformation *engine = NULL; for (int i = 0; i < engines.count(); ++i) { engine = SearchesManager::getSearchEngine(engines.at(i)); if (engine && keyword == engine->keyword) { m_windowsManager->search(input.section(QLatin1Char(' '), 1), engine->identifier); return; } } m_windowsManager->open(); }
void Menu::load(const QJsonObject &definition, const QStringList &options) { const QString identifier = definition.value(QLatin1String("identifier")).toString(); if (m_role == NoMenuRole) { clear(); } m_title = definition.value(QLatin1String("title")).toString(); setObjectName(identifier); setTitle(QCoreApplication::translate("actions", m_title.toUtf8().constData())); const QJsonArray actions = definition.value(QLatin1String("actions")).toArray(); for (int i = 0; i < actions.count(); ++i) { if (actions.at(i).isObject()) { const QJsonObject object = actions.at(i).toObject(); if (object.contains(QLatin1String("includeIn")) && !options.contains(object.value(QLatin1String("includeIn")).toString())) { continue; } Menu *menu = new Menu(Menu::getRole(object.value(QLatin1String("identifier")).toString()), this); menu->load(object, options); if (object.value(QLatin1String("type")).toString() == QLatin1String("menu")) { addMenu(menu); } else if (object.value(QLatin1String("type")).toString() == QLatin1String("include")) { for (int j = 0; j < menu->actions().size(); ++j) { QMenu::addAction(menu->actions().at(j)); } } } else { const QString rawAction = actions.at(i).toString(); if (rawAction == QLatin1String("separator")) { addSeparator(); } else { const int action = ActionsManager::getActionIdentifier(rawAction); if (action >= 0) { WindowsManager *manager = SessionsManager::getWindowsManager(); if (manager && Action::isLocal(action) && manager->getAction(action)) { QMenu::addAction(manager->getAction(action)); } else { QMenu::addAction(ActionsManager::getAction(action, parentWidget())); } } } } } }