mirror of
https://github.com/Swordfish90/cool-retro-term.git
synced 2025-02-07 05:31:24 +00:00
Handle db upgrades and prepare work for old profiles deprecation.
This commit is contained in:
parent
8124d101ad
commit
6fb8ceb501
@ -24,7 +24,9 @@ import QtQuick.Controls 1.0
|
|||||||
import "utils.js" as Utils
|
import "utils.js" as Utils
|
||||||
|
|
||||||
QtObject{
|
QtObject{
|
||||||
property string version: "1.0.1"
|
readonly property string version: "1.0.1"
|
||||||
|
readonly property int profileVersion: 2
|
||||||
|
|
||||||
|
|
||||||
// STATIC CONSTANTS ////////////////////////////////////////////////////////
|
// STATIC CONSTANTS ////////////////////////////////////////////////////////
|
||||||
|
|
||||||
@ -109,6 +111,8 @@ QtObject{
|
|||||||
|
|
||||||
signal initializedSettings()
|
signal initializedSettings()
|
||||||
|
|
||||||
|
signal showErrorMessage(string message)
|
||||||
|
|
||||||
property Loader fontManager: Loader{
|
property Loader fontManager: Loader{
|
||||||
states: [
|
states: [
|
||||||
State { when: rasterization == no_rasterization
|
State { when: rasterization == no_rasterization
|
||||||
@ -331,6 +335,17 @@ QtObject{
|
|||||||
burnInQuality = settings.burnInQuality !== undefined ? settings.burnInQuality : burnInQuality;
|
burnInQuality = settings.burnInQuality !== undefined ? settings.burnInQuality : burnInQuality;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function userLoadProfileString(profileString) {
|
||||||
|
var profile = JSON.parse(profileString);
|
||||||
|
var version = profile.version !== undefined ? profile.version : 1;
|
||||||
|
|
||||||
|
if (version === profileVersion) {
|
||||||
|
loadProfileString(profileString);
|
||||||
|
} else {
|
||||||
|
showErrorMessage("This profile is not supported on this version of CRT.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function loadProfileString(profileString){
|
function loadProfileString(profileString){
|
||||||
var settings = JSON.parse(profileString);
|
var settings = JSON.parse(profileString);
|
||||||
|
|
||||||
|
@ -23,9 +23,20 @@ import QtQuick.LocalStorage 2.0
|
|||||||
|
|
||||||
QtObject {
|
QtObject {
|
||||||
property bool initialized: false
|
property bool initialized: false
|
||||||
|
property string dbVersion: "1.1"
|
||||||
|
|
||||||
function getDatabase() {
|
function getDatabase() {
|
||||||
return LocalStorage.openDatabaseSync("coolretroterm", "1.0", "StorageDatabase", 100000);
|
try {
|
||||||
|
return _getDatabase(dbVersion);
|
||||||
|
} catch (error) {
|
||||||
|
console.log("Error while reading from settings database:", error);
|
||||||
|
updateAndResetDatabase(_getDatabase(""));
|
||||||
|
return _getDatabase(dbVersion);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _getDatabase(version) {
|
||||||
|
return LocalStorage.openDatabaseSync("coolretroterm", version, "StorageDatabase", 100000);
|
||||||
}
|
}
|
||||||
|
|
||||||
function initialize() {
|
function initialize() {
|
||||||
@ -74,9 +85,22 @@ QtObject {
|
|||||||
|
|
||||||
function dropSettings(){
|
function dropSettings(){
|
||||||
var db = getDatabase();
|
var db = getDatabase();
|
||||||
|
dropSettingsFromDB(db);
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateAndResetDatabase(db) {
|
||||||
|
console.log("Updating and resetting database.");
|
||||||
|
db.changeVersion(db.version, dbVersion);
|
||||||
|
|
||||||
|
try {
|
||||||
|
dropSettingsFromDB(db);
|
||||||
|
} catch (error) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
function dropSettingsFromDB(db) {
|
||||||
db.transaction(
|
db.transaction(
|
||||||
function(tx) {
|
function(tx) {
|
||||||
tx.executeSql('DROP TABLE settings');
|
tx.executeSql('DROP TABLE settings');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user