X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserPC.git;a=blobdiff_plain;f=src%2Fhelpers%2FDomainsDatabaseHelper.cpp;h=5b6c4faa4caa8e78227be1dd8e691c94851b7c66;hp=5de297d229fe688da8a4aa00d9eb00ca4ca48f3e;hb=27ddfe8833b1ebaf499755135aa5cbfc72acb802;hpb=30f550d27093a50e541e57b6e04b77983c7acbb3 diff --git a/src/helpers/DomainsDatabaseHelper.cpp b/src/helpers/DomainsDatabaseHelper.cpp index 5de297d..5b6c4fa 100644 --- a/src/helpers/DomainsDatabaseHelper.cpp +++ b/src/helpers/DomainsDatabaseHelper.cpp @@ -19,18 +19,22 @@ // Application headers. #include "DomainsDatabaseHelper.h" +#include "UserAgentHelper.h" // Define the public static domain constants. const QString DomainsDatabaseHelper::CONNECTION_NAME = "domains_database"; const QString DomainsDatabaseHelper::DOMAINS_TABLE = "domains"; // Define the private static schema constants. -const int DomainsDatabaseHelper::SCHEMA_VERSION = 1; +const int DomainsDatabaseHelper::SCHEMA_VERSION = 3; // Define the public static database field names. const QString DomainsDatabaseHelper::_ID = "_id"; const QString DomainsDatabaseHelper::DOMAIN_NAME = "domain_name"; const QString DomainsDatabaseHelper::JAVASCRIPT = "javascript"; +const QString DomainsDatabaseHelper::USER_AGENT = "user_agent"; +const QString DomainsDatabaseHelper::ZOOM_FACTOR = "zoom_factor"; +const QString DomainsDatabaseHelper::CUSTOM_ZOOM_FACTOR = "custom_zoom_factor"; // The default constructor. DomainsDatabaseHelper::DomainsDatabaseHelper() {} @@ -72,6 +76,27 @@ void DomainsDatabaseHelper::addDatabase() // Set the default value. domainsDatabase.exec("UPDATE " + DOMAINS_TABLE + " SET " + JAVASCRIPT + " = 0" ); + + // Fallthrough to the next case. + [[fallthrough]]; + } + + // Upgrade from schema version 1. + case 1: + { + // Add the User Agent column. + domainsDatabase.exec("ALTER TABLE " + DOMAINS_TABLE + " ADD COLUMN " + USER_AGENT + " TEXT DEFAULT '" + UserAgentHelper::SYSTEM_DEFAULT_DATABASE + "'"); + + // Fallthrough to the next case. + [[fallthrough]]; + } + + // Upgrade from schema version 2. + case 2: + { + // Add the Zoom Factor columns. + domainsDatabase.exec("ALTER TABLE " + DOMAINS_TABLE + " ADD COLUMN " + ZOOM_FACTOR + " INTEGER DEFAULT 0"); + domainsDatabase.exec("ALTER TABLE " + DOMAINS_TABLE + " ADD COLUMN " + CUSTOM_ZOOM_FACTOR + " REAL DEFAULT 1.0"); } } @@ -88,7 +113,10 @@ void DomainsDatabaseHelper::addDatabase() createTableQuery.prepare("CREATE TABLE " + DOMAINS_TABLE + "(" + _ID + " INTEGER PRIMARY KEY, " + DOMAIN_NAME + " TEXT, " + - JAVASCRIPT + " INTEGER DEFAULT 0)" + JAVASCRIPT + " INTEGER DEFAULT 0, " + + USER_AGENT + " TEXT DEFAULT '" + UserAgentHelper::SYSTEM_DEFAULT_DATABASE + "', " + + ZOOM_FACTOR + " INTEGER DEFAULT 0, " + + CUSTOM_ZOOM_FACTOR + " REAL DEFAULT 1.0)" ); // Execute the query.