diff options
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 58 |
1 files changed, 54 insertions, 4 deletions
diff --git a/src/main.cpp b/src/main.cpp index ef204a0..09a6a7c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -83,7 +83,7 @@ int main(int argc, char *argv[]) QSettings app_settings { kristall::dirs::config_root.absoluteFilePath("config.ini"), - QSettings::IniFormat + QSettings::IniFormat }; app_settings_ptr = &app_settings; @@ -120,8 +120,8 @@ int main(int argc, char *argv[]) } while(kristall::dirs::styles.exists(fileName)); QSettings style_sheet { - kristall::dirs::styles.absoluteFilePath(fileName), - QSettings::IniFormat + kristall::dirs::styles.absoluteFilePath(fileName), + QSettings::IniFormat }; style_sheet.setValue("name", name); style.save(style_sheet); @@ -147,7 +147,7 @@ int main(int argc, char *argv[]) app_settings.endGroup(); } - deprecated_settings.setValue("deprecated", true); + // deprecated_settings.setValue("deprecated", true); } else { @@ -156,6 +156,54 @@ int main(int argc, char *argv[]) } } + // Migrate to new favourites format + if(int len = app_settings.beginReadArray("favourites"); len > 0) + { + std::vector<Favourite> favs; + + favs.reserve(len); + for(int i = 0; i < len; i++) + { + app_settings.setArrayIndex(i); + + Favourite fav; + fav.destination = app_settings.value("url").toString(); + fav.title = QString { }; + + favs.emplace_back(std::move(fav)); + } + app_settings.endArray(); + + + app_settings.beginGroup("Favourites"); + { + app_settings.beginWriteArray("groups"); + + app_settings.setArrayIndex(0); + app_settings.setValue("name", QObject::tr("Unsorted")); + + { + app_settings.beginWriteArray("favourites", len); + for(int i = 0; i < len; i++) + { + auto const & fav = favs.at(i); + app_settings.setArrayIndex(i); + app_settings.setValue("title", fav.title); + app_settings.setValue("url", fav.destination); + } + app_settings.endArray(); + } + + app_settings.endArray(); + } + app_settings.endGroup(); + + app_settings.remove("favourites"); + } + else { + app_settings.endArray(); + } + kristall::settings = &app_settings; kristall::options.load(app_settings); @@ -180,7 +228,9 @@ int main(int argc, char *argv[]) kristall::document_style.load(app_settings); app_settings.endGroup(); + app_settings.beginGroup("Favourites"); kristall::favourites.load(app_settings); + app_settings.endGroup(); kristall::setTheme(kristall::options.theme); |
