core: correct error in qPrefUpdateManager

make next_check (in qPrefUpdateManager) long instead of string

Correct test cases (compare time_t not strings)
Add test case to check time_t works as expected

Signed-off-by: Jan Iversen <jani@apache.org>
This commit is contained in:
jan Iversen 2018-08-15 17:19:29 +02:00 committed by Dirk Hohndel
parent fa62ffdbf0
commit 62672276d0
5 changed files with 31 additions and 15 deletions

View file

@ -55,7 +55,7 @@ typedef struct {
bool dont_check_for_updates;
bool dont_check_exists;
const char *last_version_used;
const char *next_check;
int next_check;
} update_manager_prefs_t;
typedef struct {

View file

@ -41,12 +41,17 @@ HANDLE_PREFERENCE_TXT_EXT(UpdateManager, "/LastVersionUsed", last_version_used,
void qPrefUpdateManager::set_next_check(const QDate& value)
{
QString valueString = value.toString("dd/MM/yyyy");
if (valueString != prefs.update_manager.next_check) {
qPrefPrivate::copy_txt(&prefs.update_manager.next_check, valueString);
long time_value = value.toJulianDay();
if (time_value != prefs.update_manager.next_check) {
prefs.update_manager.next_check = time_value;
disk_next_check(true);
emit instance()->next_check_changed(value);
}
}
DISK_LOADSYNC_TXT_EXT(UpdateManager, "/NextCheck", next_check, update_manager.);
void qPrefUpdateManager::disk_next_check(bool doSync)
{
if (doSync)
qPrefPrivate::instance()->setting.setValue(group + "/NextCheck", prefs.update_manager.next_check);
else
prefs.update_manager.next_check = qPrefPrivate::instance()->setting.value(group + "/NextCheck", 0).toInt();
}

View file

@ -26,7 +26,7 @@ public:
static bool dont_check_for_updates() { return prefs.update_manager.dont_check_for_updates; }
static bool dont_check_exists() { return prefs.update_manager.dont_check_exists; }
static const QString last_version_used() { return prefs.update_manager.last_version_used; }
static const QDate next_check() { return QDate::fromString(QString(prefs.update_manager.next_check), "dd/MM/yyyy"); }
static const QDate next_check() { return QDate::fromJulianDay(prefs.update_manager.next_check); }
public slots:
static void set_dont_check_for_updates(bool value);