Exemplo n.º 1
0
PluginSettings::PluginSettings(const GUID& Guid, bool Local):
    PluginsCfg(nullptr)
{
    const auto pPlugin = Global->CtrlObject->Plugins->FindPlugin(Guid);
    if (pPlugin)
    {
        string strGuid = GuidToStr(Guid);
        PluginsCfg = ConfigProvider().CreatePluginsConfig(strGuid, Local);
        m_Keys.emplace_back(PluginsCfg->CreateKey(HierarchicalConfig::root_key(), strGuid, &pPlugin->GetTitle()));

        if (!Global->Opt->ReadOnlyConfig)
        {
            DizList Diz;
            string strDbPath = Local ? Global->Opt->LocalProfilePath : Global->Opt->ProfilePath;
            AddEndSlash(strDbPath);
            strDbPath += L"PluginsData\\";
            Diz.Read(strDbPath);
            string strDbName = strGuid + L".db";
            string Description = string(pPlugin->GetTitle()) + L" (" + pPlugin->GetDescription() + L")";
            if(Description != NullToEmpty(Diz.GetDizTextAddr(strDbName, L"", 0)))
            {
                Diz.AddDizText(strDbName, L"", Description);
                Diz.Flush(strDbPath);
            }
        }
    }
}