]> gitweb.stoutner.com Git - PrivacyBrowserPC.git/blobdiff - src/main.cpp
Add a default folder icon to the edit folder dialog. https://redmine.stoutner.com...
[PrivacyBrowserPC.git] / src / main.cpp
index 6bf5e74b642466face091a50d80a2acbc9969fe8..0c499f2750e19f01ea294c011c6e7701542f72b4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2022 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2022-2024 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Browser PC <https://www.stoutner.com/privacy-browser-pc>.
  *
  */
 
 // Application headers.
-#include "mainwindow.h"
+#include "databases/BookmarksDatabase.h"
+#include "databases/CookiesDatabase.h"
+#include "databases/DomainsDatabase.h"
+#include "windows/BrowserWindow.h"
 
 // KDE Frameworks headers.
 #include <KAboutData>
 #include <KCrash>
-#include <KLocalizedString>
 #include <KDBusService>
+#include <KLocalizedString>
 
 // Qt headers.
 #include <QApplication>
@@ -43,25 +46,27 @@ 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"), i18n("Privacy Browser"), QStringLiteral("0.1"));
+    KAboutData aboutData(QStringLiteral("privacybrowser"), i18nc("Program Name", "Privacy Browser"), QStringLiteral("0.5"));
 
     // Add the author name, job description, email address, and website.
-    aboutData.addAuthor(i18n("Soren Stoutner"),i18n("Principal developer"), QStringLiteral("soren@stoutner.com"), QStringLiteral("https://www.stoutner.com/"));
+    aboutData.addAuthor(i18nc("Developer Information", "Soren Stoutner"),i18nc("Developer Information", "Principal developer"), QStringLiteral("soren@stoutner.com"),
+                        QStringLiteral("https://www.stoutner.com/"));
 
     // Populate additional about data info.
     aboutData.setBugAddress("https://redmine.stoutner.com/projects/privacy-browser-pc/issues");
-    aboutData.setCopyrightStatement(i18n("Copyright © 2016-2017,2021-2022 Soren Stoutner <soren@stoutner.com>"));
+    aboutData.setCopyrightStatement(i18nc("Copyright", "Copyright 2016-2017,2021-2024 Soren Stoutner <soren@stoutner.com>"));
     aboutData.setDesktopFileName(QStringLiteral("com.stoutner.privacybrowser"));
     aboutData.setHomepage(QStringLiteral("https://www.stoutner.com/privacy-browser-pc/"));
-    aboutData.setLicenseTextFile(":/licenses/GPLv3+.txt");
+    //aboutData.setLicense(KAboutLicense::GPL_V3, KAboutLicense::OrLaterVersions);  <https://redmine.stoutner.com/issues/822>
+    aboutData.setLicenseTextFile(QStringLiteral(":/licenses/GPLv3+.txt"));
     aboutData.setOrganizationDomain("stoutner.com");
-    aboutData.setShortDescription(i18n("A web browser that respects your privacy."));
+    aboutData.setShortDescription(i18nc("Tagline", "A web browser that respects your privacy."));
 
     // Set the application data.
     KAboutData::setApplicationData(aboutData);
 
     // Set the window icon.
-    application.setWindowIcon(QIcon::fromTheme(QStringLiteral("privacy-browser"), QIcon(":/icons/sc-apps-privacy-browser.svg")));
+    application.setWindowIcon(QIcon::fromTheme(QStringLiteral("privacy-browser"), QIcon(QStringLiteral(":/icons/sc-apps-privacybrowser.svg"))));
 
     // Create a command line parser.
     QCommandLineParser commandLineParser;
@@ -78,11 +83,20 @@ int main(int argc, char *argv[])
     // Register with D-Bus, allowing multiple instances and allowing the program to run if for some reason the registration fails.
     KDBusService appDBusService(KDBusService::Multiple | KDBusService::NoExitOnFailure);
 
+    // Create the app data location directory if it doesn't currently exist.  This directory is used to store the databases in the subsequent commands.
+    // The first directory in the list should be the private, writable location, which on Linux should be `/home/user/.local/share/privacybrowser`.
+    QDir().mkdir(QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).first());
+
+    // Add the databases.
+    BookmarksDatabase::addDatabase();
+    CookiesDatabase::addDatabase();
+    DomainsDatabase::addDatabase();
+
     // Create the main window.
-    MainWindow *mainWindowPointer = new MainWindow;
+    BrowserWindow *browserWindowPointer = new BrowserWindow();
 
     // Show the main window.
-    mainWindowPointer->show();
+    browserWindowPointer->show();
 
     // Return the application.
     return application.exec();