X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=src%2Fwindows%2FBrowserWindow.cpp;h=c2497aa3f94cff825b2589158fc999d87c7db407;hb=2cdfb2ff48e9933d9d957fd706a449bf5a6f322f;hp=16496885749257add512aa99426a68f447b52627;hpb=9e33ea0d954d0b1a45a719d51267850d4fad5513;p=PrivacyBrowserPC.git diff --git a/src/windows/BrowserWindow.cpp b/src/windows/BrowserWindow.cpp index 1649688..c2497aa 100644 --- a/src/windows/BrowserWindow.cpp +++ b/src/windows/BrowserWindow.cpp @@ -172,30 +172,36 @@ 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. + // 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")); - 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"))); + 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. @@ -333,7 +339,8 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() findTextLineEditPointer->setClearButtonEnabled(true); // Add an edit or add domain settings action to the URL line edit. - QAction *addOrEditDomainSettingsActionPointer = urlLineEditPointer->addAction(QIcon::fromTheme("settings-configure"), QLineEdit::TrailingPosition); + QAction *addOrEditDomainSettingsActionPointer = urlLineEditPointer->addAction(QIcon::fromTheme("settings-configure", QIcon::fromTheme(QLatin1String("preferences-desktop"))), + QLineEdit::TrailingPosition); // Add or edit the current domain settings. connect(addOrEditDomainSettingsActionPointer, SIGNAL(triggered()), this, SLOT(addOrEditDomainSettings())); @@ -763,20 +770,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. @@ -785,9 +795,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. @@ -823,9 +848,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. @@ -991,9 +1028,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); @@ -1007,11 +1044,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); @@ -1030,6 +1067,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")); } @@ -1038,6 +1078,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")); } @@ -1046,6 +1089,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")); } @@ -1054,6 +1100,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")); } @@ -1062,6 +1111,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")); } @@ -1070,6 +1122,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")); } @@ -1078,6 +1133,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")); @@ -1119,6 +1177,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")); } @@ -1127,6 +1188,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")); } @@ -1135,6 +1199,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")); } @@ -1143,6 +1210,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")); } @@ -1151,6 +1221,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")); } @@ -1159,6 +1232,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")); } @@ -1167,6 +1243,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")); } @@ -1175,6 +1254,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")); } @@ -1183,6 +1265,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"));