diff options
Diffstat (limited to 'SessionLoader.cpp')
-rw-r--r-- | SessionLoader.cpp | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/SessionLoader.cpp b/SessionLoader.cpp index c459acf..6b606a0 100644 --- a/SessionLoader.cpp +++ b/SessionLoader.cpp @@ -7,24 +7,30 @@ #include "SessionLoader.h" -SessionLoader::SessionLoader(QObject *parent) : - QObject(parent) +SessionLoader::SessionLoader(OptionDialog *optionDialog) { ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"start"); + this->optionDialog=optionDialog; //load the options QList<QPair<QString, QVariant> > KeysList; + #ifdef ULTRACOPIER_VERSION_PORTABLE + KeysList.append(qMakePair(QString("LoadAtSessionStarting"),QVariant(false))); + #else KeysList.append(qMakePair(QString("LoadAtSessionStarting"),QVariant(true))); + #endif options->addOptionGroup("SessionLoader",KeysList); - connect(options,SIGNAL(newOptionValue(QString,QString,QVariant)), this, SLOT(newOptionValue(QString,QString,QVariant))); + connect(options,SIGNAL(newOptionValue(QString,QString,QVariant)), this, SLOT(newOptionValue(QString,QString,QVariant)),Qt::QueuedConnection); //load the plugin plugins->lockPluginListEdition(); - QList<PluginsAvailable> list=plugins->getPluginsByCategory(PluginType_SessionLoader); - foreach(PluginsAvailable currentPlugin,list) - onePluginAdded(currentPlugin); qRegisterMetaType<PluginsAvailable>("PluginsAvailable"); - connect(plugins,SIGNAL(onePluginAdded(PluginsAvailable)), this,SLOT(onePluginAdded(PluginsAvailable))); + connect(this,SIGNAL(previouslyPluginAdded(PluginsAvailable)), this,SLOT(onePluginAdded(PluginsAvailable)),Qt::QueuedConnection); + connect(plugins,SIGNAL(onePluginAdded(PluginsAvailable)), this,SLOT(onePluginAdded(PluginsAvailable)),Qt::QueuedConnection); connect(plugins,SIGNAL(onePluginWillBeRemoved(PluginsAvailable)), this,SLOT(onePluginWillBeRemoved(PluginsAvailable)),Qt::DirectConnection); + QList<PluginsAvailable> list=plugins->getPluginsByCategory(PluginType_SessionLoader); + foreach(PluginsAvailable currentPlugin,list) + emit previouslyPluginAdded(currentPlugin); plugins->unlockPluginListEdition(); + shouldEnabled=options->getOptionValue("SessionLoader","LoadAtSessionStarting").toBool(); } SessionLoader::~SessionLoader() @@ -70,6 +76,9 @@ void SessionLoader::onePluginAdded(const PluginsAvailable &plugin) newEntry.sessionLoaderInterface=sessionLoader; newEntry.path=plugin.path; newEntry.sessionLoaderInterface->setResources(newEntry.options,plugin.writablePath,plugin.path,ULTRACOPIER_VERSION_PORTABLE_BOOL); + newEntry.sessionLoaderInterface->setEnabled(shouldEnabled); + optionDialog->addPluginOptionWidget(PluginType_SessionLoader,plugin.name,newEntry.sessionLoaderInterface->options()); + connect(languages,SIGNAL(newLanguageLoaded(QString)),newEntry.sessionLoaderInterface,SLOT(newLanguageLoaded())); pluginList << newEntry; } else @@ -102,9 +111,10 @@ void SessionLoader::onePluginWillBeRemoved(const PluginsAvailable &plugin) void SessionLoader::newOptionValue(const QString &groupName,const QString &variableName,const QVariant &value) { - if(groupName=="SessionLoader" && variableName=="Enabled") + if(groupName=="SessionLoader" && variableName=="LoadAtSessionStarting") { - bool shouldEnabled=value.toBool(); + ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,QString("start, value: %1").arg(value.toBool())); + shouldEnabled=value.toBool(); int index=0; while(index<pluginList.size()) { |