+ // Add the custom actions.
+ userAgentPrivacyBrowserActionPointer = actionCollectionPointer->addAction(QStringLiteral("user_agent_privacy_browser"));
+ userAgentFirefoxLinuxActionPointer = actionCollectionPointer->addAction(QStringLiteral("user_agent_firefox_linux"));
+ userAgentChromiumLinuxActionPointer = actionCollectionPointer->addAction(QStringLiteral("user_agent_chromium_linux"));
+ userAgentFirefoxWindowsActionPointer = actionCollectionPointer->addAction(QStringLiteral("user_agent_firefox_windows"));
+ userAgentChromeWindowsActionPointer = actionCollectionPointer->addAction(QStringLiteral("user_agent_chrome_windows"));
+ 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"));
+ searchEngineGoogleActionPointer = actionCollectionPointer->addAction(QStringLiteral("search_engine_google"));
+ searchEngineBingActionPointer = actionCollectionPointer->addAction(QStringLiteral("search_engine_bing"));
+ searchEngineYahooActionPointer = actionCollectionPointer->addAction(QStringLiteral("search_engine_yahoo"));
+ searchEngineCustomActionPointer = actionCollectionPointer->addAction(QStringLiteral("search_engine_custom"));
+
+ // Create the action groups
+ QActionGroup *userAgentActionGroupPointer = new QActionGroup(this);
+ QActionGroup *searchEngineActionGroupPointer = new QActionGroup(this);
+
+ // Add the actions to the groups.
+ userAgentActionGroupPointer->addAction(userAgentPrivacyBrowserActionPointer);
+ userAgentActionGroupPointer->addAction(userAgentFirefoxLinuxActionPointer);
+ userAgentActionGroupPointer->addAction(userAgentChromiumLinuxActionPointer);
+ userAgentActionGroupPointer->addAction(userAgentFirefoxWindowsActionPointer);
+ userAgentActionGroupPointer->addAction(userAgentChromeWindowsActionPointer);
+ userAgentActionGroupPointer->addAction(userAgentEdgeWindowsActionPointer);
+ userAgentActionGroupPointer->addAction(userAgentSafariMacosActionPointer);
+ userAgentActionGroupPointer->addAction(userAgentCustomActionPointer);
+ searchEngineActionGroupPointer->addAction(searchEngineMojeekActionPointer);
+ searchEngineActionGroupPointer->addAction(searchEngineMonoclesActionPointer);
+ searchEngineActionGroupPointer->addAction(searchEngineMetagerActionPointer);
+ searchEngineActionGroupPointer->addAction(searchEngineGoogleActionPointer);
+ searchEngineActionGroupPointer->addAction(searchEngineBingActionPointer);
+ searchEngineActionGroupPointer->addAction(searchEngineYahooActionPointer);
+ searchEngineActionGroupPointer->addAction(searchEngineCustomActionPointer);
+
+ // Set some actions to be checkable.
+ userAgentPrivacyBrowserActionPointer->setCheckable(true);
+ userAgentFirefoxLinuxActionPointer->setCheckable(true);
+ userAgentChromiumLinuxActionPointer->setCheckable(true);
+ userAgentFirefoxWindowsActionPointer->setCheckable(true);
+ userAgentChromeWindowsActionPointer->setCheckable(true);
+ userAgentEdgeWindowsActionPointer->setCheckable(true);
+ userAgentSafariMacosActionPointer->setCheckable(true);
+ userAgentCustomActionPointer->setCheckable(true);
+ searchEngineMojeekActionPointer->setCheckable(true);
+ searchEngineMonoclesActionPointer->setCheckable(true);
+ searchEngineMetagerActionPointer->setCheckable(true);
+ searchEngineGoogleActionPointer->setCheckable(true);
+ searchEngineBingActionPointer->setCheckable(true);
+ searchEngineYahooActionPointer->setCheckable(true);
+ searchEngineCustomActionPointer->setCheckable(true);
+
+ // Set the non-mutable action names.
+ userAgentPrivacyBrowserActionPointer->setText(i18nc("@action", "Privacy Browser"));
+ userAgentFirefoxLinuxActionPointer->setText(i18nc("@action", "Firefox Linux"));
+ userAgentChromiumLinuxActionPointer->setText(i18nc("@action", "Chromium Linux"));
+ userAgentFirefoxWindowsActionPointer->setText(i18nc("@action", "Firefox Windows"));
+ userAgentChromeWindowsActionPointer->setText(i18nc("@action", "Chrome Windows"));
+ userAgentEdgeWindowsActionPointer->setText(i18nc("@action", "Edge Windows"));
+ userAgentSafariMacosActionPointer->setText(i18nc("@action", "Safari macOS"));
+ searchEngineMojeekActionPointer->setText(i18nc("@action", "Mojeek"));
+ searchEngineMonoclesActionPointer->setText(i18nc("@action", "Monocles"));
+ searchEngineMetagerActionPointer->setText(i18nc("@action", "MetaGer"));
+ searchEngineGoogleActionPointer->setText(i18nc("@action", "Google"));
+ searchEngineBingActionPointer->setText(i18nc("@action", "Bing"));
+ searchEngineYahooActionPointer->setText(i18nc("@action", "Yahoo"));
+
+ // 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*)));
+
+ // Display dialogs.
+ connect(zoomFactorActionPointer, SIGNAL(triggered()), this, SLOT(getZoomFactorFromUser()));
+