]> gitweb.stoutner.com Git - PrivacyBrowserPC.git/blobdiff - src/helpers/DomainsDatabaseHelper.cpp
Rename Local Storage to DOM Storage. https://redmine.stoutner.com/issues/852
[PrivacyBrowserPC.git] / src / helpers / DomainsDatabaseHelper.cpp
index 5b6c4faa4caa8e78227be1dd8e691c94851b7c66..2d63bd9c785c956abcc688e18b6ddbc27878fa2f 100644 (file)
@@ -26,17 +26,18 @@ const QString DomainsDatabaseHelper::CONNECTION_NAME = "domains_database";
 const QString DomainsDatabaseHelper::DOMAINS_TABLE = "domains";
 
 // Define the private static schema constants.
-const int DomainsDatabaseHelper::SCHEMA_VERSION = 3;
+const int DomainsDatabaseHelper::SCHEMA_VERSION = 4;
 
 // 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::DOM_STORAGE = "dom_storage";
 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.
+// Construct the class.
 DomainsDatabaseHelper::DomainsDatabaseHelper() {}
 
 void DomainsDatabaseHelper::addDatabase()
@@ -68,20 +69,17 @@ void DomainsDatabaseHelper::addDatabase()
                 // Run schema update code.
                 switch (currentSchemaVersion)
                 {
-                    // Upgrade from schema version 0.
+                    // Upgrade from schema version 0 to schema version 1.
                     case 0:
                     {
                         // Add the JavaScript column.
                         domainsDatabase.exec("ALTER TABLE " + DOMAINS_TABLE + " ADD COLUMN " + JAVASCRIPT + " INTEGER DEFAULT 0");
 
-                        // Set the default value.
-                        domainsDatabase.exec("UPDATE " + DOMAINS_TABLE + " SET " + JAVASCRIPT + " = 0" );
-
                         // Fallthrough to the next case.
                         [[fallthrough]];
                     }
 
-                    // Upgrade from schema version 1.
+                    // Upgrade from schema version 1 to schema version 2.
                     case 1:
                     {
                         // Add the User Agent column.
@@ -91,13 +89,21 @@ void DomainsDatabaseHelper::addDatabase()
                         [[fallthrough]];
                     }
 
-                    // Upgrade from schema version 2.
+                    // Upgrade from schema version 2 to schema version 3.
                     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");
+
+                        // Fallthrough to the next case.
+                        [[fallthrough]];
                     }
+
+                    // Upgrade from schema version 3 to schema version 4.
+                    case 3:
+                        // Add the DOM Storage column.
+                        domainsDatabase.exec("ALTER TABLE " + DOMAINS_TABLE + " ADD COLUMN " + DOM_STORAGE + " INTEGER DEFAULT 0");
                 }
 
                 // Update the schema version.
@@ -114,6 +120,7 @@ void DomainsDatabaseHelper::addDatabase()
                 _ID + " INTEGER PRIMARY KEY, " +
                 DOMAIN_NAME + " TEXT, " +
                 JAVASCRIPT + " INTEGER DEFAULT 0, " +
+                DOM_STORAGE + " INTEGER DEFAULT 0, " +
                 USER_AGENT + " TEXT DEFAULT '" + UserAgentHelper::SYSTEM_DEFAULT_DATABASE + "', " +
                 ZOOM_FACTOR + " INTEGER DEFAULT 0, " +
                 CUSTOM_ZOOM_FACTOR + " REAL DEFAULT 1.0)"