Put setting loading in a slot so it can be used at startup and when

preferences change
This commit is contained in:
Luca Beltrame 2015-02-13 07:48:12 +01:00
parent 929a099760
commit 1b9c0adaa8
2 changed files with 33 additions and 22 deletions

View file

@ -68,6 +68,8 @@ DanbooruMainWindow::DanbooruMainWindow(QWidget *parent)
qmlRegisterType<Danbooru::DanbooruService>("DanbooruClient", 1, 0, "DanbooruService"); qmlRegisterType<Danbooru::DanbooruService>("DanbooruClient", 1, 0, "DanbooruService");
qRegisterMetaType<DanbooruPost::Rating>(); qRegisterMetaType<DanbooruPost::Rating>();
loadSettings();
// TODO Configurable // TODO Configurable
m_cache = new KImageCache(qApp->applicationName(), DanbooruSettings::self()->cacheSize()); m_cache = new KImageCache(qApp->applicationName(), DanbooruSettings::self()->cacheSize());
m_service->setImageCache(m_cache); m_service->setImageCache(m_cache);
@ -129,6 +131,17 @@ DanbooruMainWindow::~DanbooruMainWindow()
{ {
} }
void DanbooruMainWindow::loadSettings()
{
m_service->setBlacklist(DanbooruSettings::self()->tagBlacklist());
m_service->setMaxPosts(DanbooruSettings::self()->maxPosts());
m_service->setMaximumAllowedRating(ratingMap.value(DanbooruSettings::self()->maxRating()));
m_service->setMaxPosts(DanbooruSettings::self()->maxPosts());
}
void DanbooruMainWindow::setupActions() void DanbooruMainWindow::setupActions()
{ {
@ -174,7 +187,7 @@ void DanbooruMainWindow::downloadPosts()
} }
// TODO Pick from configuration // TODO Pick from configuration
m_service->getPostList(1, QStringList(), 10); m_service->getPostList();
} }
@ -185,15 +198,7 @@ void DanbooruMainWindow::optionsPreferences()
dialog->addPage(new GeneralPage(DanbooruSettings::self(), this), i18n("General"), dialog->addPage(new GeneralPage(DanbooruSettings::self(), this), i18n("General"),
"table"); "table");
connect(dialog, &KConfigDialog::settingsChanged, [this](){ connect(dialog, &KConfigDialog::settingsChanged, this, &DanbooruMainWindow::loadSettings);
auto preferences = DanbooruSettings::self();
qDebug() << preferences->boards();
qDebug() << preferences->cacheSize();
qDebug() << preferences->maxPosts();
qDebug() << preferences->tagBlacklist();
qDebug() << preferences->maxRating();
m_service->setMaximumAllowedRating(ratingMap.value(preferences->maxRating()));
});
dialog->show(); dialog->show();
} }

View file

@ -50,6 +50,15 @@ class DanbooruConnectWidget;
class DanbooruMainWindow : public KXmlGuiWindow class DanbooruMainWindow : public KXmlGuiWindow
{ {
Q_OBJECT Q_OBJECT
private:
QQuickWidget *m_view;
DanbooruPostModel *m_model;
DanbooruService *m_service;
DanbooruConnectWidget *m_connectWidget;
KImageCache *m_cache;
static QHash<int, DanbooruPost::Rating> ratingMap;
public: public:
/** /**
* Default Constructor * Default Constructor
@ -61,22 +70,19 @@ public:
*/ */
virtual ~DanbooruMainWindow(); virtual ~DanbooruMainWindow();
private Q_SLOTS:
void connectToBoard();
void downloadPosts();
void optionsPreferences();
private: private:
void setupActions(); void setupActions();
void setupConnections(); void setupConnections();
private: private Q_SLOTS:
QQuickWidget *m_view; void connectToBoard();
DanbooruPostModel *m_model; void downloadPosts();
DanbooruService *m_service; void optionsPreferences();
DanbooruConnectWidget *m_connectWidget; void loadSettings();
KImageCache *m_cache;
static QHash<int, DanbooruPost::Rating> ratingMap;
}; };
} // namespace Danbooru } // namespace Danbooru