@@ -21,13 +21,20 @@
|
||||
|
||||
#include <QObject>
|
||||
#include <QMutex>
|
||||
#include <QList>
|
||||
#include <QVariant>
|
||||
#include <QVariantList>
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
#include <QSettings>
|
||||
#include <QtDebug>
|
||||
|
||||
#include "core/logging.h"
|
||||
#include "lyricsprovider.h"
|
||||
#include "lyricsproviders.h"
|
||||
|
||||
#include "settings/lyricssettingspage.h"
|
||||
|
||||
LyricsProviders::LyricsProviders(QObject *parent) : QObject(parent) {}
|
||||
|
||||
LyricsProviders::~LyricsProviders() {
|
||||
@@ -38,6 +45,48 @@ LyricsProviders::~LyricsProviders() {
|
||||
|
||||
}
|
||||
|
||||
void LyricsProviders::ReloadSettings() {
|
||||
|
||||
QStringList all_providers;
|
||||
for (LyricsProvider *provider : lyrics_providers_.keys()) {
|
||||
if (!provider->is_enabled()) continue;
|
||||
all_providers << provider->name();
|
||||
}
|
||||
|
||||
QSettings s;
|
||||
s.beginGroup(LyricsSettingsPage::kSettingsGroup);
|
||||
QStringList providers_enabled = s.value("providers", all_providers).toStringList();
|
||||
s.endGroup();
|
||||
|
||||
int i = 0;
|
||||
QList<LyricsProvider*> providers;
|
||||
for (const QString &name : providers_enabled) {
|
||||
LyricsProvider *provider = ProviderByName(name);
|
||||
if (provider) {
|
||||
provider->set_enabled(true);
|
||||
provider->set_order(++i);
|
||||
providers << provider;
|
||||
}
|
||||
}
|
||||
|
||||
for (LyricsProvider *provider : lyrics_providers_.keys()) {
|
||||
if (!providers.contains(provider)) {
|
||||
provider->set_enabled(false);
|
||||
provider->set_order(++i);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
LyricsProvider *LyricsProviders::ProviderByName(const QString &name) const {
|
||||
|
||||
for (LyricsProvider *provider : lyrics_providers_.keys()) {
|
||||
if (provider->name() == name) return provider;
|
||||
}
|
||||
return nullptr;
|
||||
|
||||
}
|
||||
|
||||
void LyricsProviders::AddProvider(LyricsProvider *provider) {
|
||||
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user