KActionCollection *actionCollectionPointer = this->actionCollection();
// Add the standard actions.
- KStandardAction::openNew(this, SLOT(fileNew()), actionCollectionPointer);
KStandardAction::print(tabWidgetPointer, SLOT(print()), actionCollectionPointer);
- KStandardAction::printPreview(tabWidgetPointer, SLOT(printPreview()), actionCollectionPointer);
+ QAction *printPreviewActionPointer = KStandardAction::printPreview(tabWidgetPointer, SLOT(printPreview()), actionCollectionPointer);
KStandardAction::quit(qApp, SLOT(closeAllWindows()), actionCollectionPointer);
KStandardAction::redisplay(this, SLOT(refresh()), actionCollectionPointer);
fullScreenActionPointer = KStandardAction::fullScreen(this, SLOT(toggleFullScreen()), this, actionCollectionPointer);
findPreviousActionPointer = KStandardAction::findPrev(this, SLOT(findPrevious()), actionCollectionPointer);
// Add the custom actions.
+ QAction *newTabActionPointer = actionCollectionPointer->addAction(QLatin1String("new_tab"));
+ QAction *newWindowActionPointer = actionCollectionPointer->addAction(QLatin1String("new_window"));
userAgentPrivacyBrowserActionPointer = actionCollectionPointer->addAction(QLatin1String("user_agent_privacy_browser"));
userAgentWebEngineDefaultActionPointer = actionCollectionPointer->addAction(QLatin1String("user_agent_webengine_default"));
userAgentFirefoxLinuxActionPointer = actionCollectionPointer->addAction(QLatin1String("user_agent_firefox_linux"));
UserAgentHelper *userAgentHelperPointer = new UserAgentHelper();
// Set the action text.
+ newTabActionPointer->setText(i18nc("New tab action", "New Tab"));
+ newWindowActionPointer->setText(i18nc("New window action", "New Window"));
userAgentPrivacyBrowserActionPointer->setText(userAgentHelperPointer->PRIVACY_BROWSER_TRANSLATED);
userAgentWebEngineDefaultActionPointer->setText(userAgentHelperPointer->WEB_ENGINE_DEFAULT_TRANSLATED);
userAgentFirefoxLinuxActionPointer->setText(userAgentHelperPointer->FIREFOX_LINUX_TRANSLATED);
hideFindTextActionPointer->setText(i18nc("Hide Find Text action", "Hide Find Text"));
// Set the action icons.
+ newTabActionPointer->setIcon(QIcon::fromTheme(QLatin1String("tab-new")));
+ newWindowActionPointer->setIcon(QIcon::fromTheme(QLatin1String("window-new")));
userAgentPrivacyBrowserActionPointer->setIcon(QIcon(":/icons/privacy-mode"));
userAgentWebEngineDefaultActionPointer->setIcon(QIcon::fromTheme(QLatin1String("user-group-properties")));
userAgentFirefoxLinuxActionPointer->setIcon(QIcon::fromTheme(QLatin1String("firefox-esr")));
findCaseSensitiveActionPointer->setIcon(QIcon::fromTheme(QLatin1String("format-text-lowercase")));
hideFindTextActionPointer->setIcon(QIcon::fromTheme(QLatin1String("window-close-symbolic")));
+ // Create the key sequences.
+ QKeySequence ctrlTKeySequence = QKeySequence(i18nc("The open new tab key sequence.", "Ctrl+T"));
+ QKeySequence ctrlNKeySequence = QKeySequence(i18nc("The open new window key sequence.", "Ctrl+N"));
+ QKeySequence ctrlShiftPKeySequence = QKeySequence(i18nc("The print preview key sequence.", "Ctrl+Shift+P"));
+ QKeySequence ctrlAltPKeySequence = QKeySequence(i18nc("The Privacy Browser user agent key sequence.", "Ctrl+Alt+P"));
+ QKeySequence ctrlAltWKeySequence = QKeySequence(i18nc("The WebEngine Default user agent key sequence.", "Ctrl+Alt+W"));
+ QKeySequence ctrlAltFKeySequence = QKeySequence(i18nc("The Firefox on Linux user agent key sequence.", "Ctrl+Alt+F"));
+ QKeySequence ctrlAltCKeySequence = QKeySequence(i18nc("The Chromium on Linux user agent key sequence.", "Ctrl+Alt+C"));
+ QKeySequence ctrlAltShiftFKeySequence = QKeySequence(i18nc("The Firefox on Windows user agent key sequence.", "Ctrl+Alt+Shift+F"));
+ QKeySequence ctrlAltShiftCKeySequence = QKeySequence(i18nc("The Chrome on Windows user agent key sequence.", "Ctrl+Alt+Shift+C"));
+ QKeySequence ctrlAltEKeySequence = QKeySequence(i18nc("The Edge on Windows user agent key sequence.", "Ctrl+Alt+E"));
+ QKeySequence ctrlAltSKeySequence = QKeySequence(i18nc("The Safari on macOS user agent key sequence.", "Ctrl+Alt+S"));
+ QKeySequence altShiftCKeySequence = QKeySequence(i18nc("The custom user agent key sequence.", "Alt+Shift+C"));
+ QKeySequence ctrlAltZKeySequence = QKeySequence(i18nc("The zoom factor key sequence.", "Ctrl+Alt+Z"));
+ QKeySequence ctrlShiftMKeySequence = QKeySequence(i18nc("The Mojeek search engine key sequence.", "Ctrl+Shift+M"));
+ QKeySequence ctrlShiftOKeySequence = QKeySequence(i18nc("The Monocles search engine key sequence.", "Ctrl+Shift+O"));
+ QKeySequence ctrlShiftEKeySequence = QKeySequence(i18nc("The MetaGer search engine key sequence.", "Ctrl+Shift+E"));
+ QKeySequence ctrlShiftGKeySequence = QKeySequence(i18nc("The Google search engine key sequence.", "Ctrl+Shift+G"));
+ QKeySequence ctrlShiftBKeySequence = QKeySequence(i18nc("The Bing search engine key sequence.", "Ctrl+Shift+B"));
+ QKeySequence ctrlShiftYKeySequence = QKeySequence(i18nc("The Yahoo search engine key sequence.", "Ctrl+Shift+Y"));
+ QKeySequence ctrlShiftCKeySequence = QKeySequence(i18nc("The custom search engine key sequence.", "Ctrl+Shift+C"));
+ QKeySequence ctrlDKeySequence = QKeySequence(i18nc("The domain settings key sequence.", "Ctrl+D"));
+ QKeySequence ctrlSemicolonKeySequence = QKeySequence(i18nc("The cookies dialog key sequence.", "Ctrl+;"));
+
+ // Set the action key sequences.
+ newTabActionPointer->setShortcut(ctrlTKeySequence);
+ newWindowActionPointer->setShortcut(ctrlNKeySequence);
+ printPreviewActionPointer->setShortcut(ctrlShiftPKeySequence);
+ userAgentPrivacyBrowserActionPointer->setShortcut(ctrlAltPKeySequence);
+ userAgentWebEngineDefaultActionPointer->setShortcut(ctrlAltWKeySequence);
+ userAgentFirefoxLinuxActionPointer->setShortcut(ctrlAltFKeySequence);
+ userAgentChromiumLinuxActionPointer->setShortcut(ctrlAltCKeySequence);
+ userAgentFirefoxWindowsActionPointer->setShortcut(ctrlAltShiftFKeySequence);
+ userAgentChromeWindowsActionPointer->setShortcut(ctrlAltShiftCKeySequence);
+ userAgentEdgeWindowsActionPointer->setShortcut(ctrlAltEKeySequence);
+ userAgentSafariMacosActionPointer->setShortcut(ctrlAltSKeySequence);
+ userAgentCustomActionPointer->setShortcut(altShiftCKeySequence);
+ zoomFactorActionPointer->setShortcut(ctrlAltZKeySequence);
+ searchEngineMojeekActionPointer->setShortcut(ctrlShiftMKeySequence);
+ searchEngineMonoclesActionPointer->setShortcut(ctrlShiftOKeySequence);
+ searchEngineMetagerActionPointer->setShortcut(ctrlShiftEKeySequence);
+ searchEngineGoogleActionPointer->setShortcut(ctrlShiftGKeySequence);
+ searchEngineBingActionPointer->setShortcut(ctrlShiftBKeySequence);
+ searchEngineYahooActionPointer->setShortcut(ctrlShiftYKeySequence);
+ searchEngineCustomActionPointer->setShortcut(ctrlShiftCKeySequence);
+ domainSettingsActionPointer->setShortcut(ctrlDKeySequence);
+ cookiesActionPointer->setShortcut(ctrlSemicolonKeySequence);
+
+ // Execute the actions.
+ connect(newTabActionPointer, SIGNAL(triggered()), tabWidgetPointer, SLOT(addTab()));
+ connect(newWindowActionPointer, SIGNAL(triggered()), this, SLOT(newWindow()));
+ connect(zoomFactorActionPointer, SIGNAL(triggered()), this, SLOT(getZoomFactorFromUser()));
+ connect(cookiesActionPointer, SIGNAL(triggered()), this, SLOT(showCookiesDialog()));
+ connect(domainSettingsActionPointer, SIGNAL(triggered()), this, SLOT(showDomainSettingsDialog()));
+
// Update the on-the-fly menus.
connect(tabWidgetPointer, SIGNAL(updateUserAgentActions(QString, bool)), this, SLOT(updateUserAgentActions(QString, bool)));
connect(tabWidgetPointer, SIGNAL(updateZoomFactorAction(double)), this, SLOT(updateZoomFactorAction(double)));
// Process cookie changes.
connect(tabWidgetPointer, SIGNAL(updateCookiesAction(int)), this, SLOT(updateCookiesAction(int)));
- // Display dialogs.
- connect(zoomFactorActionPointer, SIGNAL(triggered()), this, SLOT(getZoomFactorFromUser()));
- connect(cookiesActionPointer, SIGNAL(triggered()), this, SLOT(showCookiesDialog()));
- connect(domainSettingsActionPointer, SIGNAL(triggered()), this, SLOT(showDomainSettingsDialog()));
-
// Connect the URL toolbar actions.
connect(javaScriptActionPointer, SIGNAL(triggered()), this, SLOT(toggleJavaScript()));
connect(localStorageActionPointer, SIGNAL(triggered()), this, SLOT(toggleLocalStorage()));
connect(tabWidgetPointer, SIGNAL(fullScreenRequested(bool)), this, SLOT(fullScreenRequested(bool)));
// Create keyboard shortcuts.
- QShortcut *ctrlTShortcutPointer = new QShortcut(QKeySequence(i18nc("The open new tab shortcut.", "Ctrl+t")), this);
QShortcut *f11ShortcutPointer = new QShortcut(QKeySequence(i18nc("The toggle full screen shortcut.", "F11")), this);
QShortcut *escapeShortcutPointer = new QShortcut(QKeySequence::Cancel, this);
- // Connect the keyboard shortcuts to the actions.
- connect(ctrlTShortcutPointer, SIGNAL(activated()), tabWidgetPointer, SLOT(addTab()));
+ // Connect the keyboard shortcuts.
connect(f11ShortcutPointer, SIGNAL(activated()), fullScreenActionPointer, SLOT(trigger()));
connect(escapeShortcutPointer, SIGNAL(activated()), this, SLOT(escape()));
// Exit full screen browsing.
fullScreenActionPointer->trigger();
}
- else if (!findTextLineEditPointer->text().isEmpty()) // Find text is activated.
+ else if (!findTextLineEditPointer->text().isEmpty()) // Find text is populated.
{
- // Clear the text in the line edit.
+ // Clear the find text line edit.
findTextLineEditPointer->clear();
// Clear the search in the WebEngine.
tabWidgetPointer->findText(QStringLiteral(""));
}
-}
-
-void BrowserWindow::fileNew() const
-{
- // Display a new instance of Privacy Browser.
- (new BrowserWindow)->show();
+ else if (findTextLineEditActionPointer->isVisible()) // Find text actions are visible.
+ {
+ // Hide the find text actions.
+ hideFindTextActions();
+ }
}
void BrowserWindow::findNext() const
tabWidgetPointer->loadUrlFromLineEdit(url);
}
+void BrowserWindow::newWindow() const
+{
+ // Display a new instance of Privacy Browser.
+ (new BrowserWindow)->show();
+}
+
void BrowserWindow::refresh() const
{
// Remove the focus from the URL line edit.