X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=src%2Fwindows%2FBrowserWindow.cpp;h=1277e7718501be9be5ce21300b95e7cc6ff2b66b;hb=425fed98271cd951cddef9904e5e271f0fb76fc1;hp=236b8b4f0e07962f2cdbc49757ba1cc9f9bed017;hpb=8f1b160582ac3bd86b6e7aeaafcae059aff609c0;p=PrivacyBrowserPC.git diff --git a/src/windows/BrowserWindow.cpp b/src/windows/BrowserWindow.cpp index 236b8b4..1277e77 100644 --- a/src/windows/BrowserWindow.cpp +++ b/src/windows/BrowserWindow.cpp @@ -62,8 +62,8 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() KStandardAction::print(tabWidgetPointer, SLOT(print()), actionCollectionPointer); QAction *printPreviewActionPointer = KStandardAction::printPreview(tabWidgetPointer, SLOT(printPreview()), actionCollectionPointer); KStandardAction::quit(qApp, SLOT(closeAllWindows()), actionCollectionPointer); - KStandardAction::zoomIn(this, SLOT(incrementZoom()), actionCollectionPointer); - KStandardAction::zoomOut(this, SLOT(decrementZoom()), actionCollectionPointer); + zoomInActionPointer = KStandardAction::zoomIn(this, SLOT(incrementZoom()), actionCollectionPointer); + zoomOutActionPointer = KStandardAction::zoomOut(this, SLOT(decrementZoom()), actionCollectionPointer); KStandardAction::redisplay(this, SLOT(refresh()), actionCollectionPointer); fullScreenActionPointer = KStandardAction::fullScreen(this, SLOT(toggleFullScreen()), this, actionCollectionPointer); QAction *backActionPointer = KStandardAction::back(this, SLOT(back()), actionCollectionPointer); @@ -77,6 +77,7 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() // Add the custom actions. QAction *newTabActionPointer = actionCollectionPointer->addAction(QLatin1String("new_tab")); QAction *newWindowActionPointer = actionCollectionPointer->addAction(QLatin1String("new_window")); + zoomDefaultActionPointer = actionCollectionPointer->addAction(QLatin1String("zoom_default")); QAction *reloadAndBypassCacheActionPointer = actionCollectionPointer->addAction(QLatin1String("reload_and_bypass_cache")); viewSourceActionPointer = actionCollectionPointer->addAction(QLatin1String("view_source")); viewSourceInNewTabActionPointer = actionCollectionPointer->addAction(QLatin1String("view_source_in_new_tab")); @@ -158,6 +159,7 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() viewSourceInNewTabActionPointer->setText(i18nc("View source in new tab action", "View Source in New Tab")); newTabActionPointer->setText(i18nc("New tab action", "New Tab")); newWindowActionPointer->setText(i18nc("New window action", "New Window")); + zoomDefaultActionPointer->setText(i18nc("Zoom default action", "Zoom Default")); reloadAndBypassCacheActionPointer->setText(i18nc("Reload and bypass cache action", "Reload and Bypass Cache")); userAgentPrivacyBrowserActionPointer->setText(userAgentHelperPointer->PRIVACY_BROWSER_TRANSLATED); userAgentWebEngineDefaultActionPointer->setText(userAgentHelperPointer->WEB_ENGINE_DEFAULT_TRANSLATED); @@ -185,6 +187,7 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() // 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"))); + zoomDefaultActionPointer->setIcon(QIcon::fromTheme(QLatin1String("zoom-fit-best"))); reloadAndBypassCacheActionPointer->setIcon(QIcon::fromTheme(QLatin1String("view-refresh"))); viewSourceActionPointer->setIcon(QIcon::fromTheme(QLatin1String("view-choose"), QIcon::fromTheme(QLatin1String("accessories-text-editor")))); viewSourceInNewTabActionPointer->setIcon(QIcon::fromTheme(QLatin1String("view-choose"), QIcon::fromTheme(QLatin1String("accessories-text-editor")))); @@ -216,6 +219,7 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() // 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 ctrl0KeySequence = QKeySequence(i18nc("The zoom default key sequence.", "Ctrl+0")); QKeySequence ctrlF5KeySequence = QKeySequence(i18nc("The reload and bypass cache key sequence.", "Ctrl+F5")); QKeySequence ctrlUKeySequence = QKeySequence(i18nc("The view source key sequence.", "Ctrl+U")); QKeySequence ctrlShiftUKeySequence = QKeySequence(i18nc("The view source in new tab key sequence.", "Ctrl+Shift+U")); @@ -243,6 +247,7 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() // Set the action key sequences. actionCollectionPointer->setDefaultShortcut(newTabActionPointer, ctrlTKeySequence); actionCollectionPointer->setDefaultShortcut(newWindowActionPointer, ctrlNKeySequence); + actionCollectionPointer->setDefaultShortcut(zoomDefaultActionPointer, ctrl0KeySequence); actionCollectionPointer->setDefaultShortcut(reloadAndBypassCacheActionPointer, ctrlF5KeySequence); actionCollectionPointer->setDefaultShortcut(viewSourceActionPointer, ctrlUKeySequence); actionCollectionPointer->setDefaultShortcut(viewSourceInNewTabActionPointer, ctrlShiftUKeySequence); @@ -270,6 +275,7 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() // Execute the actions. connect(newTabActionPointer, SIGNAL(triggered()), tabWidgetPointer, SLOT(addTab())); connect(newWindowActionPointer, SIGNAL(triggered()), this, SLOT(newWindow())); + connect(zoomDefaultActionPointer, SIGNAL(triggered()), this, SLOT(zoomDefault())); connect(reloadAndBypassCacheActionPointer, SIGNAL(triggered()), this, SLOT(reloadAndBypassCache())); connect(viewSourceActionPointer, SIGNAL(triggered()), this, SLOT(toggleViewSource())); connect(viewSourceInNewTabActionPointer, SIGNAL(triggered()), this, SLOT(toggleViewSourceInNewTab())); @@ -279,7 +285,7 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() // 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))); + connect(tabWidgetPointer, SIGNAL(updateZoomActions(double)), this, SLOT(updateZoomActions(double))); connect(tabWidgetPointer, SIGNAL(updateSearchEngineActions(QString, bool)), this, SLOT(updateSearchEngineActions(QString, bool))); // Apply the on-the-fly settings when selected. @@ -289,6 +295,9 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() // Process cookie changes. connect(tabWidgetPointer, SIGNAL(updateCookiesAction(int)), this, SLOT(updateCookiesAction(int))); + // Store the default zoom factor. + connect(tabWidgetPointer, SIGNAL(updateDefaultZoomFactor(double)), this, SLOT(updateDefaultZoomFactor(double))); + // Connect the URL toolbar actions. connect(javaScriptActionPointer, SIGNAL(triggered()), this, SLOT(toggleJavaScript())); connect(localStorageActionPointer, SIGNAL(triggered()), this, SLOT(toggleLocalStorage())); @@ -403,9 +412,9 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() // Create the status bar widgets. progressBarPointer = new QProgressBar(); - QPushButton *zoomMinusButtonPointer = new QPushButton(); + zoomMinusButtonPointer = new QPushButton(); currentZoomButtonPointer = new QPushButton(); - QPushButton *zoomPlusButtonPointer = new QPushButton(); + zoomPlusButtonPointer = new QPushButton(); // Set the button icons. zoomMinusButtonPointer->setIcon(QIcon::fromTheme(QStringLiteral("list-remove-symbolic"))); @@ -469,7 +478,7 @@ BrowserWindow::BrowserWindow(bool firstWindow) : KXmlGuiWindow() updateLocalStorageAction(Settings::localStorageEnabled()); updateDomStorageAction(Settings::domStorageEnabled()); updateUserAgentActions(UserAgentHelper::getUserAgentFromDatabaseName(Settings::userAgent()), true); - updateZoomFactorAction(Settings::zoomFactor()); + updateZoomActions(Settings::zoomFactor()); // Load the initial website if this is the first window. if (firstWindow) @@ -534,7 +543,7 @@ void BrowserWindow::decrementZoom() tabWidgetPointer->applyOnTheFlyZoomFactor(currentZoomFactor); // Update the on-the-fly action text. - updateZoomFactorAction(currentZoomFactor); + updateZoomActions(currentZoomFactor); } void BrowserWindow::escape() const @@ -635,7 +644,7 @@ void BrowserWindow::getZoomFactorFromUser() tabWidgetPointer->applyOnTheFlyZoomFactor(newZoomFactor); // Update the on-the-fly action text. - updateZoomFactorAction(newZoomFactor); + updateZoomActions(newZoomFactor); } } @@ -672,7 +681,7 @@ void BrowserWindow::incrementZoom() tabWidgetPointer->applyOnTheFlyZoomFactor(currentZoomFactor); // Update the on-the-fly action text. - updateZoomFactorAction(currentZoomFactor); + updateZoomActions(currentZoomFactor); } void BrowserWindow::loadUrlFromLineEdit(const QString &url) const @@ -1098,6 +1107,12 @@ void BrowserWindow::updateCookiesAction(const int numberOfCookies) const cookiesActionPointer->setText(i18nc("The Cookies action, which also displays the number of cookies", "Cookies - %1", numberOfCookies)); } +void BrowserWindow::updateDefaultZoomFactor(const double newDefaultZoomFactor) +{ + // Store the new default zoom factor. + defaultZoomFactor = newDefaultZoomFactor; +} + void BrowserWindow::updateDomStorageAction(const bool &isEnabled) const { // Set the action checked status. @@ -1281,6 +1296,50 @@ void BrowserWindow::updateSearchEngineActions(const QString &searchEngine, const } } +void BrowserWindow::updateSearchEngineLabel(const QString &searchEngineString) const +{ + // Update the search engine label. + searchEngineLabelPointer->setText(SearchEngineHelper::getSearchUrl(searchEngineString)); +} + +void BrowserWindow::updateUrlLineEdit(const QUrl &newUrl) +{ + // Get the new URL string. + QString newUrlString = newUrl.toString(); + + // Update the view source actions. + if (newUrlString.startsWith(QLatin1String("view-source:"))) // The source is currently being viewed. + { + // Mark the view source checkbox. + viewSourceActionPointer->setChecked(true); + + // Update the view in new tab action text. + viewSourceInNewTabActionPointer->setText(i18nc("View rendered website in new tab action", "View Rendered Website in New Tab")); + } + else // The source is not currently being viewed. + { + // Unmark the view source checkbox. + viewSourceActionPointer->setChecked(false); + + // Update the view in new tab action text. + viewSourceInNewTabActionPointer->setText(i18nc("View source in new tab action", "View Source in New Tab")); + } + + // Update the URL line edit if it does not have focus. + if (!urlLineEditPointer->hasFocus()) + { + // Update the URL line edit. + urlLineEditPointer->setText(newUrlString); + + // Set the focus if the new URL is blank. + if (newUrlString == QStringLiteral("")) + urlLineEditPointer->setFocus(); + } + + // Store the current URL. + currentUrl = newUrl; +} + void BrowserWindow::updateUserAgentActions(const QString &userAgent, const bool &updateCustomUserAgentStatus) { // Initialize the custom user agent flag. @@ -1415,70 +1474,47 @@ void BrowserWindow::updateUserAgentActions(const QString &userAgent, const bool } } -void BrowserWindow::updateZoomFactorAction(const double &zoomFactor) +void BrowserWindow::updateUserAgentLabel(const QString &userAgentDatabaseName) const { - // Set the current zoom factor. - currentZoomFactor = zoomFactor; - - // Update the zoom factor action text, formatting the double with 2 decimal places. `0` specifies no extra field width. `'0'` sets the format to not use scientific notation. - zoomFactorActionPointer->setText(ki18nc("The zoom factor action", "Zoom Factor - %1").subs(zoomFactor, 0, '0', 2).toString()); - - // Update the status bar zoom factor label. - currentZoomButtonPointer->setText(ki18nc("The status bar zoom, which is just the formatted zoom factor", "%1").subs(zoomFactor, 0, '0', 2).toString()); + // Update the user agent label. + userAgentLabelPointer->setText(UserAgentHelper::getUserAgentFromDatabaseName(userAgentDatabaseName)); } -void BrowserWindow::updateSearchEngineLabel(const QString &searchEngineString) const +void BrowserWindow::updateWindowTitle(const QString &title) { - // Update the search engine label. - searchEngineLabelPointer->setText(SearchEngineHelper::getSearchUrl(searchEngineString)); + // Update the window title. + setWindowTitle(title); } -void BrowserWindow::updateUrlLineEdit(const QUrl &newUrl) +void BrowserWindow::updateZoomActions(const double &zoomFactor) { - // Get the new URL string. - QString newUrlString = newUrl.toString(); + // Set the current zoom factor. + currentZoomFactor = zoomFactor; - // Update the view source actions. - if (newUrlString.startsWith(QLatin1String("view-source:"))) // The source is currently being viewed. - { - // Mark the view source checkbox. - viewSourceActionPointer->setChecked(true); + // Set the status of the default zoom action. + zoomDefaultActionPointer->setEnabled(currentZoomFactor != defaultZoomFactor); - // Update the view in new tab action text. - viewSourceInNewTabActionPointer->setText(i18nc("View rendered website in new tab action", "View Rendered Website in New Tab")); - } - else // The source is not currently being viewed. - { - // Unmark the view source checkbox. - viewSourceActionPointer->setChecked(false); + // Set the status of the zoom in action and button. + zoomInActionPointer->setEnabled(currentZoomFactor <= 4.99); + zoomPlusButtonPointer->setEnabled(currentZoomFactor <= 4.99); - // Update the view in new tab action text. - viewSourceInNewTabActionPointer->setText(i18nc("View source in new tab action", "View Source in New Tab")); - } + // Set the status of the zoom out action and button. + zoomMinusButtonPointer->setEnabled(currentZoomFactor > 0.25); + zoomOutActionPointer->setEnabled(currentZoomFactor > 0.25); - // Update the URL line edit if it does not have focus. - if (!urlLineEditPointer->hasFocus()) - { - // Update the URL line edit. - urlLineEditPointer->setText(newUrlString); - // Set the focus if the new URL is blank. - if (newUrlString == QStringLiteral("")) - urlLineEditPointer->setFocus(); - } + // Update the zoom factor action text, formatting the double with 2 decimal places. `0` specifies no extra field width. `'0'` sets the format to not use scientific notation. + zoomFactorActionPointer->setText(ki18nc("The zoom factor action", "Zoom Factor - %1").subs(zoomFactor, 0, '0', 2).toString()); - // Store the current URL. - currentUrl = newUrl; + // Update the status bar zoom factor label. + currentZoomButtonPointer->setText(ki18nc("The status bar zoom, which is just the formatted zoom factor", "%1").subs(zoomFactor, 0, '0', 2).toString()); } -void BrowserWindow::updateUserAgentLabel(const QString &userAgentDatabaseName) const +void BrowserWindow::zoomDefault() { - // Update the user agent label. - userAgentLabelPointer->setText(UserAgentHelper::getUserAgentFromDatabaseName(userAgentDatabaseName)); -} + // Set the new zoom factor. + tabWidgetPointer->applyOnTheFlyZoomFactor(defaultZoomFactor); -void BrowserWindow::updateWindowTitle(const QString &title) -{ - // Update the window title. - setWindowTitle(title); + // Update the on-the-fly action text. + updateZoomActions(defaultZoomFactor); }