1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
/***************************************************************************
* *
* This file is part of the Fotowall project, *
* http://www.enricoros.com/opensource/fotowall *
* *
* Copyright (C) 2009 by Enrico Ros <enrico.ros@gmail.com> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#include "Settings.h"
#include "App.h"
#include <QStringList>
#include <QMessageBox>
Settings::Settings(bool clearConfig)
: QSettings()
, m_firstTime(false)
{
// only this timer bybasses clearing
int usageCount = value("Fotowall/UsageCount", (int)0).toInt();
// clear settings if asked to do so
if (clearConfig)
clear();
// build up the recent urls list
foreach (const QString & urlString, value("Fotowall/RecentUrls").toStringList())
if (App::validateFotowallUrl(urlString))
m_recentFotowallUrls.append(QUrl(urlString));
// find out if this is the first time
m_firstTime = value("Fotowall/FirstTime", true).toBool();
setValue("Fotowall/FirstTime", false);
// increment usage count
setValue("Fotowall/UsageCount", ++usageCount);
}
Settings::~Settings()
{
// save the recent urls list
if (!m_recentFotowallUrls.isEmpty()) {
QStringList urls;
foreach (const QUrl & url, m_recentFotowallUrls)
urls.append(url.toString());
setValue("Fotowall/RecentUrls", urls);
} else
remove("Fotowall/RecentUrls");
// flush to disk
sync();
}
bool Settings::firstTime() const
{
return m_firstTime || usageCount() < 2;
}
int Settings::usageCount() const
{
return value("Fotowall/UsageCount", (int)0).toInt();
}
QList<QUrl> Settings::recentFotowallUrls() const
{
return m_recentFotowallUrls;
}
void Settings::addRecentFotowallUrl(const QUrl & fotowallUrl)
{
// remove if already enlisted
m_recentFotowallUrls.removeAll(fotowallUrl);
// keep up to 10 urls
//while (m_recentFotowallUrls.size() > 10)
// m_recentFotowallUrls.removeLast();
// finally add the url
m_recentFotowallUrls.prepend(fotowallUrl);
}
void Settings::removeRecentFotowallUrl(const QUrl & fotowallUrl)
{
m_recentFotowallUrls.removeAll(fotowallUrl);
}
void Settings::addCommandlineUrl(const QString & url)
{
m_commandlineUrls.append(url);
}
QStringList Settings::commandlineUrls() const
{
return m_commandlineUrls;
}
|