-/*
- * 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.
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."));
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;
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();