Beispiel #1
0
QMap<QString,QString> GetSettingsMap(MythSettingList &settings,
                                     const QString &hostname)
{
    QMap<QString,QString> result;
    MSqlQuery query(MSqlQuery::InitCon());

    QString list = extract_query_list(settings, MythSetting::kFile);
    if (!list.isEmpty())
    {
        result = GetConfigFileSettingValues();
        if (result.isEmpty())
            return result;
    }

    list = extract_query_list(settings, MythSetting::kHost);
    QString qstr =
        "SELECT value, data "
        "FROM settings "
        "WHERE hostname = '" + hostname + "' AND "
        "      value in (" + list + ")";

    if (!list.isEmpty())
    {
        if (!query.exec(qstr))
        {
            MythDB::DBError("GetSettingsMap() 1", query);
            return result;
        }

        while (query.next())
            result[query.value(0).toString()] = query.value(1).toString();
    }

    list = extract_query_list(settings, MythSetting::kGlobal);
    qstr =
        "SELECT value, data "
        "FROM settings "
        "WHERE hostname IS NULL AND "
        "      value in (" + list + ")";
    
    if (!list.isEmpty())
    {
        if (!query.exec(qstr))
        {
            MythDB::DBError("GetSettingsMap() 2", query);
            return result;
        }

        while (query.next())
            result[query.value(0).toString()] = query.value(1).toString();
    }

    return result;
}
Beispiel #2
0
bool load_settings(MythSettingList &settings, const QString &hostname)
{
    MSqlQuery query(MSqlQuery::InitCon());

    QString list = extract_query_list(settings, MythSetting::kFile);
    if (!list.isEmpty())
    {
        QMap<QString,QString> map = GetConfigFileSettingValues();
        if (map.isEmpty())
            return false;

        MythSettingList::const_iterator it = settings.begin();
        for (; it != settings.end(); ++it)
            fill_setting(*it, map, MythSetting::kFile);
    }

    list = extract_query_list(settings, MythSetting::kHost);
    QString qstr =
        "SELECT value, data "
        "FROM settings "
        "WHERE hostname = '" + hostname + "' AND "
        "      value in (" + list + ")";

    if (!list.isEmpty())
    {
        if (!query.exec(qstr))
        {
            MythDB::DBError("HttpConfig::LoadMythSettings() 1", query);
            return false;
        }
        fill_settings(settings, query, MythSetting::kHost);
    }

    list = extract_query_list(settings, MythSetting::kGlobal);
    qstr =
        "SELECT value, data "
        "FROM settings "
        "WHERE hostname IS NULL AND "
        "      value in (" + list + ")";
    
    if (!list.isEmpty())
    {
        if (!query.exec(qstr))
        {
            MythDB::DBError("HttpConfig::LoadMythSettings() 2", query);
            return false;
        }
        fill_settings(settings, query, MythSetting::kGlobal);
    }

    return true;
}
Beispiel #3
0
bool load_settings(MythSettingList &settings, const QString &hostname)
{
    MSqlQuery query(MSqlQuery::InitCon());

    QString list = extract_query_list(settings, MythSetting::kHost);
    QString qstr =
        "SELECT value, data "
        "FROM settings "
        "WHERE hostname = '" + hostname + "' AND "
        "      value in (" + list + ")";

    if (!list.isEmpty())
    {
        if (!query.exec(qstr))
        {
            MythDB::DBError("HttpConfig::LoadMythSettings() 1", query);
            return false;
        }
        fill_settings(settings, query, MythSetting::kHost);
    }

    list = extract_query_list(settings, MythSetting::kGlobal);
    qstr =
        "SELECT value, data "
        "FROM settings "
        "WHERE hostname IS NULL AND "
        "      value in (" + list + ")";

    if (!list.isEmpty())
    {
        if (!query.exec(qstr))
        {
            MythDB::DBError("HttpConfig::LoadMythSettings() 2", query);
            return false;
        }
        fill_settings(settings, query, MythSetting::kGlobal);
    }

    return true;
}
Beispiel #4
0
static QString extract_query_list(
    const MythSettingList &settings, MythSetting::SettingType stype)
{
    QString list;

    MythSettingList::const_iterator it = settings.begin();
    for (; it != settings.end(); ++it)
    {
        const MythSettingGroup *group =
            dynamic_cast<const MythSettingGroup*>(*it);
        if (group)
        {
            list += extract_query_list(group->m_settings, stype);
            continue;
        }
        const MythSetting *setting = dynamic_cast<const MythSetting*>(*it);
        if (setting && (setting->m_stype == stype))
            list += QString(",'%1'").arg(setting->m_value);
    }
    if (!list.isEmpty() && (list[0] == QChar(',')))
        list = list.mid(1);

    return list;
}