mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-31 20:03:24 +00:00
core: activate qPrefUpdateManager
remove UpdateManager from SettingsObjectWrapper and reference qPrefUpdateManager update files using SettingsObjectWrapper/UpdateManager to use qPrefUpdateManager this activated qPrefUpdateManager and removed the similar class from SettingsObjectWrapper. Signed-off-by: Jan Iversen <jani@apache.org>
This commit is contained in:
parent
e673a3558e
commit
e33545afd0
6 changed files with 28 additions and 122 deletions
|
@ -22,6 +22,7 @@ void qPref::loadSync(bool doSync)
|
|||
// qPrefFaceook does not use disk.
|
||||
qPrefProxy::instance()->loadSync(doSync);
|
||||
qPrefUnits::instance()->loadSync(doSync);
|
||||
qPrefUpdateManager::instance()->loadSync(doSync);
|
||||
}
|
||||
|
||||
const QString qPref::canonical_version() const
|
||||
|
|
|
@ -8,71 +8,6 @@
|
|||
#include "core/qthelper.h"
|
||||
#include "core/prefs-macros.h"
|
||||
|
||||
UpdateManagerSettings::UpdateManagerSettings(QObject *parent) : QObject(parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
bool UpdateManagerSettings::dontCheckForUpdates() const
|
||||
{
|
||||
return prefs.update_manager.dont_check_for_updates;
|
||||
}
|
||||
|
||||
bool UpdateManagerSettings::dontCheckExists() const
|
||||
{
|
||||
return prefs.update_manager.dont_check_exists;
|
||||
}
|
||||
|
||||
QString UpdateManagerSettings::lastVersionUsed() const
|
||||
{
|
||||
return prefs.update_manager.last_version_used;
|
||||
}
|
||||
|
||||
QDate UpdateManagerSettings::nextCheck() const
|
||||
{
|
||||
return QDate::fromString(QString(prefs.update_manager.next_check), "dd/MM/yyyy");
|
||||
}
|
||||
|
||||
void UpdateManagerSettings::setDontCheckForUpdates(bool value)
|
||||
{
|
||||
if (value == prefs.update_manager.dont_check_for_updates)
|
||||
return;
|
||||
|
||||
QSettings s;
|
||||
s.beginGroup(group);
|
||||
s.setValue("DontCheckForUpdates", value);
|
||||
prefs.update_manager.dont_check_for_updates = value;
|
||||
prefs.update_manager.dont_check_exists = true;
|
||||
emit dontCheckForUpdatesChanged(value);
|
||||
}
|
||||
|
||||
void UpdateManagerSettings::setLastVersionUsed(const QString& value)
|
||||
{
|
||||
if (value == prefs.update_manager.last_version_used)
|
||||
return;
|
||||
|
||||
QSettings s;
|
||||
s.beginGroup(group);
|
||||
s.setValue("LastVersionUsed", value);
|
||||
free((void *)prefs.update_manager.last_version_used);
|
||||
prefs.update_manager.last_version_used = copy_qstring(value);
|
||||
emit lastVersionUsedChanged(value);
|
||||
}
|
||||
|
||||
void UpdateManagerSettings::setNextCheck(const QDate& date)
|
||||
{
|
||||
if (date.toString() == prefs.update_manager.next_check)
|
||||
return;
|
||||
|
||||
QSettings s;
|
||||
s.beginGroup(group);
|
||||
s.setValue("NextCheck", date);
|
||||
free((void *)prefs.update_manager.next_check);
|
||||
prefs.update_manager.next_check = copy_qstring(date.toString("dd/MM/yyyy"));
|
||||
emit nextCheckChanged(date);
|
||||
}
|
||||
|
||||
|
||||
PartialPressureGasSettings::PartialPressureGasSettings(QObject* parent):
|
||||
QObject(parent)
|
||||
{
|
||||
|
@ -1112,7 +1047,7 @@ QObject(parent),
|
|||
language_settings(new LanguageSettingsObjectWrapper(this)),
|
||||
animation_settings(new qPrefAnimations(this)),
|
||||
location_settings(new LocationServiceSettingsObjectWrapper(this)),
|
||||
update_manager_settings(new UpdateManagerSettings(this)),
|
||||
update_manager_settings(new qPrefUpdateManager(this)),
|
||||
dive_computer_settings(new qPrefDiveComputer(this))
|
||||
{
|
||||
}
|
||||
|
@ -1205,13 +1140,7 @@ void SettingsObjectWrapper::load()
|
|||
|
||||
qPrefDivePlanner::instance()->load();
|
||||
qPrefDiveComputer::instance()->load();
|
||||
|
||||
s.beginGroup("UpdateManager");
|
||||
prefs.update_manager.dont_check_exists = s.contains("DontCheckForUpdates");
|
||||
GET_BOOL("DontCheckForUpdates", update_manager.dont_check_for_updates);
|
||||
GET_TXT("LastVersionUsed", update_manager.last_version_used);
|
||||
prefs.update_manager.next_check = copy_qstring(s.value("NextCheck").toDate().toString("dd/MM/yyyy"));
|
||||
s.endGroup();
|
||||
qPrefUpdateManager::instance()->load();
|
||||
|
||||
s.beginGroup("Language");
|
||||
GET_BOOL("UseSystemLanguage", locale.use_system_language);
|
||||
|
|
|
@ -13,31 +13,6 @@
|
|||
* and QWidget frontends. This class will be huge, since
|
||||
* I need tons of properties, one for each option. */
|
||||
|
||||
class UpdateManagerSettings : public QObject {
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(bool dont_check_for_updates READ dontCheckForUpdates WRITE setDontCheckForUpdates NOTIFY dontCheckForUpdatesChanged)
|
||||
Q_PROPERTY(QString last_version_used READ lastVersionUsed WRITE setLastVersionUsed NOTIFY lastVersionUsedChanged)
|
||||
Q_PROPERTY(QDate next_check READ nextCheck WRITE nextCheckChanged)
|
||||
public:
|
||||
UpdateManagerSettings(QObject *parent);
|
||||
bool dontCheckForUpdates() const;
|
||||
bool dontCheckExists() const;
|
||||
QString lastVersionUsed() const;
|
||||
QDate nextCheck() const;
|
||||
|
||||
public slots:
|
||||
void setDontCheckForUpdates(bool value);
|
||||
void setLastVersionUsed(const QString& value);
|
||||
void setNextCheck(const QDate& date);
|
||||
|
||||
signals:
|
||||
void dontCheckForUpdatesChanged(bool value);
|
||||
void lastVersionUsedChanged(const QString& value);
|
||||
void nextCheckChanged(const QDate& date);
|
||||
private:
|
||||
const QString group = QStringLiteral("UpdateManager");
|
||||
};
|
||||
|
||||
/* Control the state of the Partial Pressure Graphs preferences */
|
||||
class PartialPressureGasSettings : public QObject {
|
||||
Q_OBJECT
|
||||
|
@ -366,7 +341,7 @@ class SettingsObjectWrapper : public QObject {
|
|||
Q_PROPERTY(qPrefAnimations* animation MEMBER animation_settings CONSTANT)
|
||||
Q_PROPERTY(LocationServiceSettingsObjectWrapper* Location MEMBER location_settings CONSTANT)
|
||||
|
||||
Q_PROPERTY(UpdateManagerSettings* update MEMBER update_manager_settings CONSTANT)
|
||||
Q_PROPERTY(qPrefUpdateManager* update MEMBER update_manager_settings CONSTANT)
|
||||
Q_PROPERTY(qPrefDiveComputer* dive_computer MEMBER dive_computer_settings CONSTANT)
|
||||
public:
|
||||
static SettingsObjectWrapper *instance();
|
||||
|
@ -384,7 +359,7 @@ public:
|
|||
LanguageSettingsObjectWrapper *language_settings;
|
||||
qPrefAnimations *animation_settings;
|
||||
LocationServiceSettingsObjectWrapper *location_settings;
|
||||
UpdateManagerSettings *update_manager_settings;
|
||||
qPrefUpdateManager *update_manager_settings;
|
||||
qPrefDiveComputer *dive_computer_settings;
|
||||
|
||||
void sync();
|
||||
|
|
|
@ -14,17 +14,17 @@ UpdateManager::UpdateManager(QObject *parent) :
|
|||
QObject(parent),
|
||||
isAutomaticCheck(false)
|
||||
{
|
||||
auto update_settings = SettingsObjectWrapper::instance()->update_manager_settings;
|
||||
auto update_settings = qPrefUpdateManager::instance();
|
||||
|
||||
if (update_settings->dontCheckForUpdates())
|
||||
if (update_settings->dont_check_for_updates())
|
||||
return;
|
||||
|
||||
if (update_settings->lastVersionUsed() == subsurface_git_version() &&
|
||||
update_settings->nextCheck() > QDate::currentDate())
|
||||
if (update_settings->last_version_used() == subsurface_git_version() &&
|
||||
update_settings->next_check() > QDate::currentDate())
|
||||
return;
|
||||
|
||||
update_settings->setLastVersionUsed(subsurface_git_version());
|
||||
update_settings->setNextCheck(QDate::currentDate().addDays(14));
|
||||
update_settings->set_last_version_used(subsurface_git_version());
|
||||
update_settings->set_next_check(QDate::currentDate().addDays(14));
|
||||
|
||||
checkForUpdates(true);
|
||||
}
|
||||
|
@ -108,8 +108,8 @@ void UpdateManager::requestReceived()
|
|||
msgbox.exec();
|
||||
}
|
||||
if (isAutomaticCheck) {
|
||||
auto update_settings = SettingsObjectWrapper::instance()->update_manager_settings;
|
||||
if (!update_settings->dontCheckExists()) {
|
||||
auto update_settings = qPrefUpdateManager::instance();
|
||||
if (!update_settings->dont_check_exists()) {
|
||||
|
||||
// we allow an opt out of future checks
|
||||
QMessageBox response(MainWindow::instance());
|
||||
|
@ -121,7 +121,7 @@ void UpdateManager::requestReceived()
|
|||
response.setWindowTitle(tr("Automatic check for updates"));
|
||||
response.setIcon(QMessageBox::Question);
|
||||
response.setWindowModality(Qt::WindowModal);
|
||||
update_settings->setDontCheckForUpdates(response.exec() != QMessageBox::Accepted);
|
||||
update_settings->set_dont_check_for_updates(response.exec() != QMessageBox::Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -164,6 +164,7 @@ void register_qml_types()
|
|||
REGISTER_TYPE(qPrefFacebook, "SsrfFacebookPrefs");
|
||||
REGISTER_TYPE(qPrefProxy, "SsrfProxyPrefs");
|
||||
REGISTER_TYPE(qPrefUnits, "SsrfUnitPrefs");
|
||||
REGISTER_TYPE(qPrefUpdateManager, "SsrfUpdateManagerPrefs");
|
||||
|
||||
#ifndef SUBSURFACE_TEST_DATA
|
||||
#ifdef SUBSURFACE_MOBILE
|
||||
|
|
|
@ -263,25 +263,25 @@ void TestPreferences::testPreferences()
|
|||
TEST(location->timeThreshold(), 30);
|
||||
TEST(location->distanceThreshold(), 40);
|
||||
|
||||
auto update = pref->update_manager_settings;
|
||||
auto update = qPrefUpdateManager::instance();
|
||||
QDate date = QDate::currentDate();
|
||||
|
||||
update->setDontCheckForUpdates(true);
|
||||
update->setLastVersionUsed("tomaz-1");
|
||||
update->setNextCheck(date);
|
||||
update->set_dont_check_for_updates(true);
|
||||
update->set_last_version_used("tomaz-1");
|
||||
update->set_next_check(date);
|
||||
|
||||
TEST(update->dontCheckForUpdates(), true);
|
||||
TEST(update->lastVersionUsed(), QStringLiteral("tomaz-1"));
|
||||
TEST(update->nextCheck(), date);
|
||||
TEST(update->dont_check_for_updates(), true);
|
||||
TEST(update->last_version_used(), QStringLiteral("tomaz-1"));
|
||||
TEST(update->next_check(), date);
|
||||
|
||||
date = date.addDays(3);
|
||||
update->setDontCheckForUpdates(false);
|
||||
update->setLastVersionUsed("tomaz-2");
|
||||
update->setNextCheck(date);
|
||||
update->set_dont_check_for_updates(false);
|
||||
update->set_last_version_used("tomaz-2");
|
||||
update->set_next_check(date);
|
||||
|
||||
TEST(update->dontCheckForUpdates(), false);
|
||||
TEST(update->lastVersionUsed(), QStringLiteral("tomaz-2"));
|
||||
TEST(update->nextCheck(), date);
|
||||
TEST(update->dont_check_for_updates(), false);
|
||||
TEST(update->last_version_used(), QStringLiteral("tomaz-2"));
|
||||
TEST(update->next_check(), date);
|
||||
}
|
||||
|
||||
QTEST_MAIN(TestPreferences)
|
||||
|
|
Loading…
Add table
Reference in a new issue