]> gitweb.stoutner.com Git - PrivacyBrowserPC.git/blobdiff - src/main.cpp
Block all CSP requests. https://redmine.stoutner.com/issues/1193
[PrivacyBrowserPC.git] / src / main.cpp
index 96ffee89f3e36f96d15380b3f0758e4f2161c9d9..9b41069bcd607e10979e80efa50abf79b5da97b7 100644 (file)
@@ -1,38 +1,46 @@
-/*
- * Copyright 2022-2023 Soren Stoutner <soren@stoutner.com>.
+/* SPDX-License-Identifier: GPL-3.0-or-later
+ * SPDX-FileCopyrightText: 2022-2025 Soren Stoutner <soren@stoutner.com>
  *
- * This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc>.
+ * This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc/>.
  *
- * Privacy Browser PC is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
  *
- * Privacy Browser PC is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+ * details.
  *
- * You should have received a copy of the GNU General Public License
- * along with Privacy Browser PC.  If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <https://www.gnu.org/licenses/>.
  */
 
 // Application headers.
+#include "GlobalVariables.h"
+#include "databases/BookmarksDatabase.h"
 #include "databases/CookiesDatabase.h"
 #include "databases/DomainsDatabase.h"
+#include "helpers/FilterListHelper.h"
 #include "windows/BrowserWindow.h"
 
 // KDE Frameworks headers.
 #include <KAboutData>
 #include <KCrash>
-#include <KLocalizedString>
 #include <KDBusService>
+#include <KLocalizedString>
 
 // Qt headers.
 #include <QApplication>
 #include <QCommandLineParser>
 #include <QFile>
 
+// Declare the global variables.
+bool globalChromiumInstalled;
+FilterListHelper *globalFilterListHelperPointer;
+bool globalFirefoxInstalled;
+
 int main(int argc, char *argv[])
 {
     // Create the application.
@@ -45,19 +53,19 @@ int main(int argc, char *argv[])
     KCrash::initialize();
 
     // Instantiate about data, setting the component name, the display name, and the version.
-    KAboutData aboutData(QStringLiteral("privacybrowser"), i18nc("Program Name", "Privacy Browser"), QStringLiteral("0.3"));
+    KAboutData aboutData(QLatin1String("privacybrowser"), i18nc("Program Name", "Privacy Browser"), QLatin1String("0.8"));
 
     // Add the author name, job description, email address, and website.
-    aboutData.addAuthor(i18nc("Developer Information", "Soren Stoutner"),i18nc("Developer Information", "Principal developer"), QStringLiteral("soren@stoutner.com"),
-                        QStringLiteral("https://www.stoutner.com/"));
+    aboutData.addAuthor(i18nc("Developer Information", "Soren Stoutner"),i18nc("Developer Information", "Principal developer"), QLatin1String("soren@stoutner.com"),
+                        QLatin1String("https://www.stoutner.com/"));
 
     // Populate additional about data info.
     aboutData.setBugAddress("https://redmine.stoutner.com/projects/privacy-browser-pc/issues");
-    aboutData.setCopyrightStatement(i18nc("Copyright", "Copyright 2016-2017,2021-2023 Soren Stoutner <soren@stoutner.com>"));
-    aboutData.setDesktopFileName(QStringLiteral("com.stoutner.privacybrowser"));
-    aboutData.setHomepage(QStringLiteral("https://www.stoutner.com/privacy-browser-pc/"));
+    aboutData.setCopyrightStatement(i18nc("Copyright", "Copyright 2016-2017, 2021-2025 Soren Stoutner <soren@stoutner.com>"));
+    aboutData.setDesktopFileName(QLatin1String("com.stoutner.privacybrowser"));
+    aboutData.setHomepage(QLatin1String("https://www.stoutner.com/privacy-browser-pc/"));
     //aboutData.setLicense(KAboutLicense::GPL_V3, KAboutLicense::OrLaterVersions);  <https://redmine.stoutner.com/issues/822>
-    aboutData.setLicenseTextFile(QStringLiteral(":/licenses/GPLv3+.txt"));
+    aboutData.setLicenseTextFile(QLatin1String(":/licenses/GPLv3+.txt"));
     aboutData.setOrganizationDomain("stoutner.com");
     aboutData.setShortDescription(i18nc("Tagline", "A web browser that respects your privacy."));
 
@@ -65,7 +73,7 @@ int main(int argc, char *argv[])
     KAboutData::setApplicationData(aboutData);
 
     // Set the window icon.
-    application.setWindowIcon(QIcon::fromTheme(QStringLiteral("privacy-browser"), QIcon(QStringLiteral(":/icons/sc-apps-privacybrowser.svg"))));
+    application.setWindowIcon(QIcon::fromTheme(QLatin1String("privacy-browser"), QIcon(QLatin1String(":/icons/sc-apps-privacybrowser.svg"))));
 
     // Create a command line parser.
     QCommandLineParser commandLineParser;
@@ -87,8 +95,16 @@ int main(int argc, char *argv[])
     QDir().mkdir(QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).first());
 
     // Add the databases.
-    DomainsDatabase::addDatabase();
+    BookmarksDatabase::addDatabase();
     CookiesDatabase::addDatabase();
+    DomainsDatabase::addDatabase();
+
+    // Populate the global filter list helper.
+    globalFilterListHelperPointer = new FilterListHelper;
+
+    // Check if other browsers are installed and store the result in the global variables
+    globalChromiumInstalled = (system("chromium --version > /dev/null 2> /dev/null") == 0);
+    globalFirefoxInstalled = (system("firefox -v > /dev/null 2> /dev/null") == 0);
 
     // Create the main window.
     BrowserWindow *browserWindowPointer = new BrowserWindow();