X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=src%2Fwindows%2FBrowserWindow.cpp;h=6347ec404cadf44203b22dc6d0867663714cc00c;hb=efed1601e5f6e79d746866d55d625d777b64a248;hp=a0a7a97346211e0a52f59b026b1fceb307834f6b;hpb=95aa7dff6f4da3aa85775d46600f9be2e2f856eb;p=PrivacyBrowserPC.git diff --git a/src/windows/BrowserWindow.cpp b/src/windows/BrowserWindow.cpp index a0a7a97..6347ec4 100644 --- a/src/windows/BrowserWindow.cpp +++ b/src/windows/BrowserWindow.cpp @@ -59,9 +59,8 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() 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); @@ -74,6 +73,8 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() 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")); @@ -147,6 +148,8 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() 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); @@ -169,30 +172,93 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() findCaseSensitiveActionPointer->setText(i18nc("Find Case Sensitive action", "Find Case Sensitive")); hideFindTextActionPointer->setText(i18nc("Hide Find Text action", "Hide Find Text")); - // Set the action icons. - userAgentPrivacyBrowserActionPointer->setIcon(QIcon(":/icons/privacy-mode")); - userAgentWebEngineDefaultActionPointer->setIcon(QIcon::fromTheme(QLatin1String("user-group-properties"))); - userAgentFirefoxLinuxActionPointer->setIcon(QIcon::fromTheme(QLatin1String("firefox-esr"))); - userAgentChromiumLinuxActionPointer->setIcon(QIcon::fromTheme(QLatin1String("chromium"))); - userAgentFirefoxWindowsActionPointer->setIcon(QIcon::fromTheme(QLatin1String("firefox-esr"))); - userAgentChromeWindowsActionPointer->setIcon(QIcon::fromTheme(QLatin1String("chromium"))); - userAgentEdgeWindowsActionPointer->setIcon(QIcon::fromTheme(QLatin1String("user-group-properties"))); - userAgentSafariMacosActionPointer->setIcon(QIcon::fromTheme(QLatin1String("user-group-properties"))); - userAgentCustomActionPointer->setIcon(QIcon::fromTheme(QLatin1String("user-group-properties"))); - searchEngineMojeekActionPointer->setIcon(QIcon::fromTheme(QLatin1String("search"))); - searchEngineMonoclesActionPointer->setIcon(QIcon::fromTheme(QLatin1String("search"))); - searchEngineMetagerActionPointer->setIcon(QIcon::fromTheme(QLatin1String("search"))); - searchEngineGoogleActionPointer->setIcon(QIcon::fromTheme(QLatin1String("im-google"))); - searchEngineBingActionPointer->setIcon(QIcon::fromTheme(QLatin1String("search"))); - searchEngineYahooActionPointer->setIcon(QIcon::fromTheme(QLatin1String("im-yahoo"))); - searchEngineCustomActionPointer->setIcon(QIcon::fromTheme(QLatin1String("search"))); - zoomFactorActionPointer->setIcon(QIcon::fromTheme(QLatin1String("zoom"))); - domainSettingsActionPointer->setIcon(QIcon::fromTheme(QLatin1String("settings-configure"))); - cookiesActionPointer->setIcon(QIcon::fromTheme(QLatin1String("preferences-web-browser-cookies"))); - domStorageActionPointer->setIcon(QIcon::fromTheme(QLatin1String("code-class"))); - findCaseSensitiveActionPointer->setIcon(QIcon::fromTheme(QLatin1String("format-text-lowercase"))); + // Set the action icons. Gnome doesn't contain some of the icons that KDE has. + // The toolbar icons don't pick up unless the size is explicit, probably because the toolbar ends up being an intermediate size. + newTabActionPointer->setIcon(QIcon::fromTheme(QLatin1String("tab-new"))); + newWindowActionPointer->setIcon(QIcon::fromTheme(QLatin1String("window-new"))); + userAgentPrivacyBrowserActionPointer->setIcon(QIcon(":/icons/privacy-mode.svg")); + userAgentWebEngineDefaultActionPointer->setIcon(QIcon::fromTheme(QLatin1String("qtlogo"), QIcon::fromTheme(QLatin1String("user-group-properties"), + QIcon::fromTheme(QLatin1String("contact-new"))))); + userAgentFirefoxLinuxActionPointer->setIcon(QIcon::fromTheme(QLatin1String("firefox-esr"), QIcon::fromTheme(QLatin1String("user-group-properties"), + QIcon::fromTheme(QLatin1String("contact-new"))))); + userAgentChromiumLinuxActionPointer->setIcon(QIcon::fromTheme(QLatin1String("chromium"), QIcon::fromTheme(QLatin1String("user-group-properties"), + QIcon::fromTheme(QLatin1String("contact-new"))))); + userAgentFirefoxWindowsActionPointer->setIcon(QIcon::fromTheme(QLatin1String("firefox-esr"), QIcon::fromTheme(QLatin1String("user-group-properties"), + QIcon::fromTheme(QLatin1String("contact-new"))))); + userAgentChromeWindowsActionPointer->setIcon(QIcon::fromTheme(QLatin1String("chromium"), QIcon::fromTheme(QLatin1String("user-group-properties"), + QIcon::fromTheme(QLatin1String("contact-new"))))); + userAgentEdgeWindowsActionPointer->setIcon(QIcon::fromTheme(QLatin1String("user-group-properties"), QIcon::fromTheme(QLatin1String("contact-new")))); + userAgentSafariMacosActionPointer->setIcon(QIcon::fromTheme(QLatin1String("user-group-properties"), QIcon::fromTheme(QLatin1String("contact-new")))); + userAgentCustomActionPointer->setIcon(QIcon::fromTheme(QLatin1String("user-group-properties"), QIcon::fromTheme(QLatin1String("contact-new")))); + searchEngineMojeekActionPointer->setIcon(QIcon::fromTheme(QLatin1String("edit-find"))); + searchEngineMonoclesActionPointer->setIcon(QIcon::fromTheme(QLatin1String("edit-find"))); + searchEngineMetagerActionPointer->setIcon(QIcon::fromTheme(QLatin1String("edit-find"))); + searchEngineGoogleActionPointer->setIcon(QIcon::fromTheme(QLatin1String("im-google"), QIcon::fromTheme(QLatin1String("edit-find")))); + searchEngineBingActionPointer->setIcon(QIcon::fromTheme(QLatin1String("edit-find"))); + searchEngineYahooActionPointer->setIcon(QIcon::fromTheme(QLatin1String("im-yahoo"), QIcon::fromTheme(QLatin1String("edit-find")))); + searchEngineCustomActionPointer->setIcon(QIcon::fromTheme(QLatin1String("edit-find"))); + zoomFactorActionPointer->setIcon(QIcon::fromTheme(QLatin1String("zoom-fit-best"))); + domainSettingsActionPointer->setIcon(QIcon::fromTheme(QLatin1String("settings-configure"), QIcon::fromTheme(QLatin1String("preferences-desktop")))); + cookiesActionPointer->setIcon(QIcon::fromTheme(QLatin1String("preferences-web-browser-cookies"), QIcon::fromTheme(QLatin1String("appointment-new")))); + domStorageActionPointer->setIcon(QIcon::fromTheme(QLatin1String("code-class"), QIcon(QLatin1String("/usr/share/icons/gnome/32x32/actions/gtk-unindent-ltr.png")))); + findCaseSensitiveActionPointer->setIcon(QIcon::fromTheme(QLatin1String("format-text-lowercase"), QIcon::fromTheme(QLatin1String("/usr/share/icons/gnome/32x32/apps/fonts.png")))); 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. + actionCollectionPointer->setDefaultShortcut(newTabActionPointer, ctrlTKeySequence); + actionCollectionPointer->setDefaultShortcut(newWindowActionPointer, ctrlNKeySequence); + actionCollectionPointer->setDefaultShortcut(printPreviewActionPointer, ctrlShiftPKeySequence); + actionCollectionPointer->setDefaultShortcut(userAgentPrivacyBrowserActionPointer, ctrlAltPKeySequence); + actionCollectionPointer->setDefaultShortcut(userAgentWebEngineDefaultActionPointer, ctrlAltWKeySequence); + actionCollectionPointer->setDefaultShortcut(userAgentFirefoxLinuxActionPointer, ctrlAltFKeySequence); + actionCollectionPointer->setDefaultShortcut(userAgentChromiumLinuxActionPointer, ctrlAltCKeySequence); + actionCollectionPointer->setDefaultShortcut(userAgentFirefoxWindowsActionPointer, ctrlAltShiftFKeySequence); + actionCollectionPointer->setDefaultShortcut(userAgentChromeWindowsActionPointer, ctrlAltShiftCKeySequence); + actionCollectionPointer->setDefaultShortcut(userAgentEdgeWindowsActionPointer, ctrlAltEKeySequence); + actionCollectionPointer->setDefaultShortcut(userAgentSafariMacosActionPointer, ctrlAltSKeySequence); + actionCollectionPointer->setDefaultShortcut(userAgentCustomActionPointer, altShiftCKeySequence); + actionCollectionPointer->setDefaultShortcut(zoomFactorActionPointer, ctrlAltZKeySequence); + actionCollectionPointer->setDefaultShortcut(searchEngineMojeekActionPointer, ctrlShiftMKeySequence); + actionCollectionPointer->setDefaultShortcut(searchEngineMonoclesActionPointer, ctrlShiftOKeySequence); + actionCollectionPointer->setDefaultShortcut(searchEngineMetagerActionPointer, ctrlShiftEKeySequence); + actionCollectionPointer->setDefaultShortcut(searchEngineGoogleActionPointer, ctrlShiftGKeySequence); + actionCollectionPointer->setDefaultShortcut(searchEngineBingActionPointer, ctrlShiftBKeySequence); + actionCollectionPointer->setDefaultShortcut(searchEngineYahooActionPointer, ctrlShiftYKeySequence); + actionCollectionPointer->setDefaultShortcut(searchEngineCustomActionPointer, ctrlShiftCKeySequence); + actionCollectionPointer->setDefaultShortcut(domainSettingsActionPointer, ctrlDKeySequence); + actionCollectionPointer->setDefaultShortcut(cookiesActionPointer, 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))); @@ -205,11 +271,6 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() // 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())); @@ -353,12 +414,10 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() 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())); @@ -436,7 +495,7 @@ void BrowserWindow::escape() const } 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. @@ -449,12 +508,6 @@ void BrowserWindow::escape() const } } -void BrowserWindow::fileNew() const -{ - // Display a new instance of Privacy Browser. - (new BrowserWindow)->show(); -} - void BrowserWindow::findNext() const { // Get the find string. @@ -566,6 +619,12 @@ void BrowserWindow::loadUrlFromLineEdit(const QString &url) 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. @@ -710,20 +769,23 @@ void BrowserWindow::showSettingsDialog() // Add each dictionary to the spell check list widget. foreach(QString dictionaryString, dictionariesStringList) { - // Create a new list widget item pointer named after the dictionary string. - QListWidgetItem *listWidgetItemPointer = new QListWidgetItem(dictionaryString, spellCheckListWidgetPointer); + // Create a new list widget item pointer. + QListWidgetItem *listWidgetItemPointer = new QListWidgetItem(); - // Set the list widget item pointer to be checkable. - listWidgetItemPointer->setFlags(listWidgetItemPointer->flags() | Qt::ItemIsUserCheckable); + // Create a dictionary check box widget with the name of the dictionary string. + QCheckBox *dictionaryCheckBoxWidget = new QCheckBox(dictionaryString); // Check the language if it is currently enabled. if (enabledSpellCheckLanguagesList.contains(dictionaryString)) - listWidgetItemPointer->setCheckState(Qt::Checked); + dictionaryCheckBoxWidget->setCheckState(Qt::Checked); else - listWidgetItemPointer->setCheckState(Qt::Unchecked); + dictionaryCheckBoxWidget->setCheckState(Qt::Unchecked); - // Add the list widget item to the widget. + // Add the list widget item to the spell check list widget. spellCheckListWidgetPointer->addItem(listWidgetItemPointer); + + // Set the list widget item check box widget. + spellCheckListWidgetPointer->setItemWidget(listWidgetItemPointer, dictionaryCheckBoxWidget); } // Get a handle for the KConfig skeleton. @@ -732,9 +794,24 @@ void BrowserWindow::showSettingsDialog() // Instantiate a settings config dialog from the settings.kcfg file. configDialogPointer = new KConfigDialog(this, QLatin1String("settings"), kConfigSkeletonPointer); + // Create a settings icon string. + QString settingsIconString; + + // Get a settings icon that matches the theme. + if (QIcon::hasThemeIcon("breeze-settings")) + { + // KDE uses breeze-settings. + settingsIconString = QLatin1String("breeze-settings"); + } + else + { + // Gnome uses preferences-desktop. + settingsIconString = QLatin1String("preferences-desktop"); + } + // Add the settings widgets as config dialog pages. - configDialogPointer->addPage(privacySettingsWidgetPointer, i18nc("Settings tab title", "Privacy"), QLatin1String("privacy-browser")); - configDialogPointer->addPage(generalSettingsWidgetPointer, i18nc("Settings tab title", "General"), QLatin1String("breeze-settings")); + configDialogPointer->addPage(privacySettingsWidgetPointer, i18nc("Settings tab title", "Privacy"), QLatin1String("privacybrowser")); + configDialogPointer->addPage(generalSettingsWidgetPointer, i18nc("Settings tab title", "General"), settingsIconString); configDialogPointer->addPage(spellCheckSettingsWidgetPointer, i18nc("Settings tab title", "Spell Check"), QLatin1String("tools-check-spelling")); // Get handles for the buttons. @@ -770,9 +847,21 @@ void BrowserWindow::showSettingsDialog() // Get the language item. QListWidgetItem *languageItemPointer = spellCheckListWidgetPointer->item(i); + // Get the language check box. + QCheckBox *languageCheckBoxPointer = qobject_cast(spellCheckListWidgetPointer->itemWidget(languageItemPointer)); + // Add the item to the enabled languages if it is checked. - if (languageItemPointer->checkState() == Qt::Checked) - newSpellCheckLanguages.append(languageItemPointer->text()); + if (languageCheckBoxPointer->checkState() == Qt::Checked) + { + // Get the text. + QString languageString = languageCheckBoxPointer->text(); + + // Remove all instances of `&`, which may have been added automatically when creating the check box text. + languageString.remove(QChar('&')); + + // Add the language string to the list. + newSpellCheckLanguages.append(languageString); + } } // Update the spell check languages. @@ -938,9 +1027,9 @@ void BrowserWindow::updateJavaScriptAction(const bool &isEnabled) // Set the icon according to the status. if (javaScriptEnabled) - javaScriptActionPointer->setIcon(QIcon(QStringLiteral(":/icons/javascript-warning"))); + javaScriptActionPointer->setIcon(QIcon(QLatin1String(":/icons/javascript-warning.svg"))); else - javaScriptActionPointer->setIcon(QIcon(QStringLiteral(":/icons/privacy-mode"))); + javaScriptActionPointer->setIcon(QIcon(QLatin1String(":/icons/privacy-mode.svg"))); // Set the action checked status. javaScriptActionPointer->setChecked(javaScriptEnabled); @@ -954,11 +1043,11 @@ void BrowserWindow::updateLocalStorageAction(const bool &isEnabled) // Update the local storage status. localStorageEnabled = isEnabled; - // Update the icon. + // Update the icon. On Gnome, the toolbar icons don't pick up unless the size is explicit, probably because the toolbar ends up being an intermediate size. if (localStorageEnabled) - localStorageActionPointer->setIcon(QIcon::fromTheme(QStringLiteral("disk-quota-high"))); + localStorageActionPointer->setIcon(QIcon::fromTheme(QLatin1String("disk-quota-high"), QIcon(QLatin1String("/usr/share/icons/gnome/32x32/actions/filesaveas.png")))); else - localStorageActionPointer->setIcon(QIcon::fromTheme(QStringLiteral("disk-quota"))); + localStorageActionPointer->setIcon(QIcon::fromTheme(QLatin1String("disk-quota"), QIcon(QLatin1String("/usr/share/icons/gnome/32x32/apps/kfm.png")))); // Set the action checked status. localStorageActionPointer->setChecked(localStorageEnabled); @@ -977,6 +1066,9 @@ void BrowserWindow::updateSearchEngineActions(const QString &searchEngine, const // Check the Mojeek user agent action. searchEngineMojeekActionPointer->setChecked(true); + // Update the search engine menu action icon. + searchEngineMenuActionPointer->setIcon(QIcon::fromTheme(QLatin1String("edit-find"))); + // Update the search engine menu action text. searchEngineMenuActionPointer->setText(i18nc("The main search engine menu action", "Search Engine - Mojeek")); } @@ -985,6 +1077,9 @@ void BrowserWindow::updateSearchEngineActions(const QString &searchEngine, const // Check the Monocles user agent action. searchEngineMonoclesActionPointer->setChecked(true); + // Update the search engine menu action icon. + searchEngineMenuActionPointer->setIcon(QIcon::fromTheme(QLatin1String("edit-find"))); + // Update the search engine menu action text. searchEngineMenuActionPointer->setText(i18nc("The main search engine menu action", "Search Engine - Monocles")); } @@ -993,6 +1088,9 @@ void BrowserWindow::updateSearchEngineActions(const QString &searchEngine, const // Check the MetaGer user agent action. searchEngineMetagerActionPointer->setChecked(true); + // Update the search engine menu action icon. + searchEngineMenuActionPointer->setIcon(QIcon::fromTheme(QLatin1String("edit-find"))); + // Update the search engine menu action text. searchEngineMenuActionPointer->setText(i18nc("The main search engine menu action", "Search Engine - MetaGer")); } @@ -1001,6 +1099,9 @@ void BrowserWindow::updateSearchEngineActions(const QString &searchEngine, const // Check the Google user agent action. searchEngineGoogleActionPointer->setChecked(true); + // Update the search engine menu action icon. + searchEngineMenuActionPointer->setIcon(QIcon::fromTheme(QLatin1String("im-google"), QIcon::fromTheme(QLatin1String("edit-find")))); + // Update the search engine menu action text. searchEngineMenuActionPointer->setText(i18nc("The main search engine menu action", "Search Engine - Google")); } @@ -1009,6 +1110,9 @@ void BrowserWindow::updateSearchEngineActions(const QString &searchEngine, const // Check the Bing user agent action. searchEngineBingActionPointer->setChecked(true); + // Update the search engine menu action icon. + searchEngineMenuActionPointer->setIcon(QIcon::fromTheme(QLatin1String("edit-find"))); + // Update the search engine menu action text. searchEngineMenuActionPointer->setText(i18nc("The main search engine menu action", "Search Engine - Bing")); } @@ -1017,6 +1121,9 @@ void BrowserWindow::updateSearchEngineActions(const QString &searchEngine, const // Check the Yahoo user agent action. searchEngineYahooActionPointer->setChecked(true); + // Update the search engine menu action icon. + searchEngineMenuActionPointer->setIcon(QIcon::fromTheme(QLatin1String("im-yahoo"), QIcon::fromTheme(QLatin1String("edit-find")))); + // Update the search engine menu action text. searchEngineMenuActionPointer->setText(i18nc("The main search engine menu action", "Search Engine - Yahoo")); } @@ -1025,6 +1132,9 @@ void BrowserWindow::updateSearchEngineActions(const QString &searchEngine, const // Check the user agent. searchEngineCustomActionPointer->setChecked(true); + // Update the search engine menu action icon. + searchEngineMenuActionPointer->setIcon(QIcon::fromTheme(QLatin1String("edit-find"))); + // Update the search engine menu action text. searchEngineMenuActionPointer->setText(i18nc("The main search engine menu action", "Search Engine - Custom")); @@ -1066,6 +1176,9 @@ void BrowserWindow::updateUserAgentActions(const QString &userAgent, const bool // Check the Privacy Browser user agent action. userAgentPrivacyBrowserActionPointer->setChecked(true); + // Update the user agent menu action icon. + userAgentMenuActionPointer->setIcon(QIcon(":/icons/privacy-mode.svg")); + // Update the user agent menu action text. userAgentMenuActionPointer->setText(i18nc("The main user agent menu action", "User Agent - Privacy Browser")); } @@ -1074,6 +1187,9 @@ void BrowserWindow::updateUserAgentActions(const QString &userAgent, const bool // check the WebEngine default user agent action. userAgentWebEngineDefaultActionPointer->setChecked(true); + // Update the user agent menu action icon. + userAgentMenuActionPointer->setIcon(QIcon::fromTheme(QLatin1String("qtlogo"), QIcon::fromTheme(QLatin1String("user-group-properties"), QIcon::fromTheme(QLatin1String("contact-new"))))); + // Update the user agent menu action text. userAgentMenuActionPointer->setText(i18nc("The main user agent menu action", "User Agent - WebEngine default")); } @@ -1082,6 +1198,9 @@ void BrowserWindow::updateUserAgentActions(const QString &userAgent, const bool // Check the Firefox on Linux user agent action. userAgentFirefoxLinuxActionPointer->setChecked(true); + // Update the user agent menu action icon. + userAgentMenuActionPointer->setIcon(QIcon::fromTheme(QLatin1String("firefox-esr"), QIcon::fromTheme(QLatin1String("user-group-properties"), QIcon::fromTheme(QLatin1String("contact-new"))))); + // Update the user agent menu action text. userAgentMenuActionPointer->setText(i18nc("The main user agent menu action", "User Agent - Firefox on Linux")); } @@ -1090,6 +1209,9 @@ void BrowserWindow::updateUserAgentActions(const QString &userAgent, const bool // Check the Chromium on Linux user agent action. userAgentChromiumLinuxActionPointer->setChecked(true); + // Update the user agent menu action icon. + userAgentMenuActionPointer->setIcon(QIcon::fromTheme(QLatin1String("chromium"), QIcon::fromTheme(QLatin1String("user-group-properties"), QIcon::fromTheme(QLatin1String("contact-new"))))); + // Update the user agent menu action text. userAgentMenuActionPointer->setText(i18nc("The main user agent menu action", "User Agent - Chromium on Linux")); } @@ -1098,6 +1220,9 @@ void BrowserWindow::updateUserAgentActions(const QString &userAgent, const bool // Check the Firefox on Windows user agent action. userAgentFirefoxWindowsActionPointer->setChecked(true); + // Update the user agent menu action icon. + userAgentMenuActionPointer->setIcon(QIcon::fromTheme(QLatin1String("firefox-esr"), QIcon::fromTheme(QLatin1String("user-group-properties"), QIcon::fromTheme(QLatin1String("contact-new"))))); + // Update the user agent menu action text. userAgentMenuActionPointer->setText(i18nc("The main user agent menu action", "User Agent - Firefox on Windows")); } @@ -1106,6 +1231,9 @@ void BrowserWindow::updateUserAgentActions(const QString &userAgent, const bool // Check the Chrome on Windows user agent action. userAgentChromeWindowsActionPointer->setChecked(true); + // Update the user agent menu action icon. + userAgentMenuActionPointer->setIcon(QIcon::fromTheme(QLatin1String("chromium"), QIcon::fromTheme(QLatin1String("user-group-properties"), QIcon::fromTheme(QLatin1String("contact-new"))))); + // Update the user agent menu action text. userAgentMenuActionPointer->setText(i18nc("The main user agent menu action", "User Agent - Chrome on Windows")); } @@ -1114,6 +1242,9 @@ void BrowserWindow::updateUserAgentActions(const QString &userAgent, const bool // Check the Edge on Windows user agent action. userAgentEdgeWindowsActionPointer->setChecked(true); + // Update the user agent menu action icon. + userAgentMenuActionPointer->setIcon(QIcon::fromTheme(QLatin1String("user-group-properties"), QIcon::fromTheme(QLatin1String("contact-new")))); + // Update the user agent menu action text. userAgentMenuActionPointer->setText(i18nc("The main user agent menu action", "User Agent - Edge on Windows")); } @@ -1122,6 +1253,9 @@ void BrowserWindow::updateUserAgentActions(const QString &userAgent, const bool // Check the Safari on macOS user agent action. userAgentSafariMacosActionPointer->setChecked(true); + // Update the user agent menu action icon. + userAgentMenuActionPointer->setIcon(QIcon::fromTheme(QLatin1String("user-group-properties"), QIcon::fromTheme(QLatin1String("contact-new")))); + // Update the user agent menu action text. userAgentMenuActionPointer->setText(i18nc("The main user agent menu action", "User Agent - Safari on macOS")); } @@ -1130,6 +1264,9 @@ void BrowserWindow::updateUserAgentActions(const QString &userAgent, const bool // Check the user agent. userAgentCustomActionPointer->setChecked(true); + // Update the user agent menu action icon. + userAgentMenuActionPointer->setIcon(QIcon::fromTheme(QLatin1String("user-group-properties"), QIcon::fromTheme(QLatin1String("contact-new")))); + // Update the user agent menu action text. userAgentMenuActionPointer->setText(i18nc("The main user agent menu action", "User Agent - Custom"));