]> gitweb.stoutner.com Git - PrivacyBrowserPC.git/blobdiff - src/databases/DomainsDatabase.cpp
Create new domain settings with the currently applied settings. https://redmine...
[PrivacyBrowserPC.git] / src / databases / DomainsDatabase.cpp
index 05535436efa2a418e435748db9ff5e30bf4a244a..d52647cca107ca5163f9493f173e164ae4060530 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2022-2023 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>.
  *
@@ -19,6 +19,7 @@
 
 // Application headers.
 #include "DomainsDatabase.h"
+#include "Settings.h"
 #include "helpers/UserAgentHelper.h"
 
 // Define the private static schema constants.
@@ -266,11 +267,51 @@ void DomainsDatabase::addDatabase()
     }
     else  // Opening the database failed.
     {
-        // Write the last database error message to the debug output.
+        // Write the last database error message to the debug output.Settings::zoom
         qDebug().noquote().nospace() << "Error opening database:  " << domainsDatabase.lastError();
     }
 };
 
+void DomainsDatabase::addDomain(const QString &domainName)
+{
+    // Add the domain:
+    addDomain(domainName, SYSTEM_DEFAULT, SYSTEM_DEFAULT, SYSTEM_DEFAULT, UserAgentHelper::SYSTEM_DEFAULT_DATABASE, SYSTEM_DEFAULT, Settings::zoomFactor());
+}
+
+void DomainsDatabase::addDomain(const QString &domainName, const int javaScriptInt, const int localStorageInt, const int domStorageInt, const QString &userAgentDatabaseString,
+                                const int zoomFactorInt, const double currentZoomFactorDouble)
+{
+    // Get a handle for the domains database.
+    QSqlDatabase domainsDatabase = QSqlDatabase::database(CONNECTION_NAME);
+
+    // Instantiate an add domain settings query.
+    QSqlQuery addDomainSettingsQuery(domainsDatabase);
+
+    // Prepare the query.
+    addDomainSettingsQuery.prepare("INSERT INTO " + DomainsDatabase::DOMAINS_TABLE + " (" +
+                                    DomainsDatabase::DOMAIN_NAME + ", " +
+                                    DomainsDatabase::JAVASCRIPT + ", " +
+                                    DomainsDatabase::LOCAL_STORAGE + ", " +
+                                    DomainsDatabase::DOM_STORAGE + ", " +
+                                    DomainsDatabase::USER_AGENT + ", " +
+                                    DomainsDatabase::ZOOM_FACTOR + ", " +
+                                    DomainsDatabase::CUSTOM_ZOOM_FACTOR + ") " +
+                                    "VALUES (:domain_name, :javascript, :local_storage, :dom_storage, :user_agent, :zoom_factor, :custom_zoom_factor)"
+    );
+
+    // Bind the query values.
+    addDomainSettingsQuery.bindValue(":domain_name", domainName);
+    addDomainSettingsQuery.bindValue(":javascript", javaScriptInt);
+    addDomainSettingsQuery.bindValue(":local_storage", localStorageInt);
+    addDomainSettingsQuery.bindValue(":dom_storage", domStorageInt);
+    addDomainSettingsQuery.bindValue(":user_agent", userAgentDatabaseString);
+    addDomainSettingsQuery.bindValue(":zoom_factor", zoomFactorInt);
+    addDomainSettingsQuery.bindValue(":custom_zoom_factor", currentZoomFactorDouble);
+
+    // Execute the query.
+    addDomainSettingsQuery.exec();
+}
+
 QSqlQuery DomainsDatabase::getDomainQuery(const QString &hostname)
 {
     // Get a handle for the domains database.