summaryrefslogtreecommitdiff
path: root/SessionLoader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'SessionLoader.cpp')
-rw-r--r--SessionLoader.cpp28
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())
{