X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserPC.git;a=blobdiff_plain;f=src%2FBrowserWindow.cpp;fp=src%2FBrowserWindow.cpp;h=a2eda98e36b5a23aefcc2ca5bcb8c9ef329bf02a;hp=1265c0d38a2c92a922f4d942af7e03f90330b2d5;hb=ed23757527d2d80102f87f6446b73d890a169fb4;hpb=2c380f75b275780859774f3947db39cdf6f4f021 diff --git a/src/BrowserWindow.cpp b/src/BrowserWindow.cpp index 1265c0d..a2eda98 100644 --- a/src/BrowserWindow.cpp +++ b/src/BrowserWindow.cpp @@ -30,6 +30,7 @@ #include // Qt framework headers. +#include #include BrowserWindow::BrowserWindow() : KXmlGuiWindow() @@ -57,6 +58,7 @@ BrowserWindow::BrowserWindow() : KXmlGuiWindow() userAgentEdgeWindowsActionPointer = actionCollectionPointer->addAction(QStringLiteral("user_agent_edge_windows")); userAgentSafariMacosActionPointer = actionCollectionPointer->addAction(QStringLiteral("user_agent_safari_macos")); userAgentCustomActionPointer = actionCollectionPointer->addAction(QStringLiteral("user_agent_custom")); + zoomFactorActionPointer = actionCollectionPointer->addAction(QStringLiteral("zoom_factor")); searchEngineMojeekActionPointer = actionCollectionPointer->addAction(QStringLiteral("search_engine_mojeek")); searchEngineMonoclesActionPointer = actionCollectionPointer->addAction(QStringLiteral("search_engine_monocles")); searchEngineMetagerActionPointer = actionCollectionPointer->addAction(QStringLiteral("search_engine_metager")); @@ -103,7 +105,7 @@ BrowserWindow::BrowserWindow() : KXmlGuiWindow() searchEngineYahooActionPointer->setCheckable(true); searchEngineCustomActionPointer->setCheckable(true); - // Set the action names. The custom action text will be set later in the on-the-fly update slots. + // Set the non-mutable action names. userAgentPrivacyBrowserActionPointer->setText(i18nc("@action", "Privacy Browser")); userAgentFirefoxLinuxActionPointer->setText(i18nc("@action", "Firefox Linux")); userAgentChromiumLinuxActionPointer->setText(i18nc("@action", "Chromium Linux")); @@ -120,13 +122,21 @@ BrowserWindow::BrowserWindow() : KXmlGuiWindow() // Update the on-the-fly menus. connect(mainViewPointer, SIGNAL(userAgentUpdated(QString)), this, SLOT(updateOnTheFlyUserAgent(QString))); + connect(mainViewPointer, SIGNAL(zoomFactorUpdated(double)), this, SLOT(updateOnTheFlyZoomFactor(double))); connect(mainViewPointer, SIGNAL(searchEngineUpdated(QString)), this, SLOT(updateOnTheFlySearchEngine(QString))); // Apply the on-the-fly settings when selected. connect(userAgentActionGroupPointer, SIGNAL(triggered(QAction*)), mainViewPointer, SLOT(applyOnTheFlyUserAgent(QAction*))); connect(searchEngineActionGroupPointer, SIGNAL(triggered(QAction*)), mainViewPointer, SLOT(applyOnTheFlySearchEngine(QAction*))); - // Initialize the on-the-fly search engine menu, as the slot connection had not been created when MainView was constructed. + // Display dialogs. + connect(zoomFactorActionPointer, SIGNAL(triggered()), this, SLOT(getZoomFactorFromUser())); + + // Set the current zoom factor. + currentZoomFactor = Settings::zoomFactor(); + + // Initialize the on-the-fly menus, as the slot connections had not been created when MainView was constructed. + updateOnTheFlyZoomFactor(currentZoomFactor); updateOnTheFlySearchEngine(Settings::searchEngine()); // Update the status bar with the URL when a link is hovered. @@ -142,6 +152,29 @@ void BrowserWindow::fileNew() const (new BrowserWindow)->show(); } +void BrowserWindow::getZoomFactorFromUser() +{ + // Create an OK flag. + bool okClicked; + + // Display a dialog to get the new zoom factor from the user. Format the double to display two decimals and have a 0.25 step. + double newZoomFactor = QInputDialog::getDouble(this, i18nc("The tile of the on-the-fly zoom factor dialog", "On-The-Fly Zoom Factor"), + i18nc("The instruction text of the on-the-fly zoom factor dialog", "Enter a zoom factor between 0.25 and 5.00"), + currentZoomFactor, .025, 5.00, 2, &okClicked, Qt::WindowFlags(), 0.25); + + if (okClicked) + { + // Update the current zoom factor. + currentZoomFactor = newZoomFactor; + + // Set the new zoom factor. + mainViewPointer->applyOnTheFlyZoomFactor(newZoomFactor); + + // Update the on-the-fly action text. + updateOnTheFlyZoomFactor(newZoomFactor); + } +} + void BrowserWindow::settingsConfigure() { // Check to make sure the dialog box isn't already displayed. @@ -316,6 +349,11 @@ void BrowserWindow::updateOnTheFlyUserAgent(const QString &userAgent) const } } +void BrowserWindow::updateOnTheFlyZoomFactor(const double &zoomFactor) const +{ + // Update the zoom factor action text, formatting the double with 2 decimal places. + zoomFactorActionPointer->setText(ki18nc("@action", "Zoom Factor - %1").subs(zoomFactor, 0, '0', 2).toString()); +} void BrowserWindow::updateSearchEngineLabel(const QString &searchEngineString) const {