void Backbone::init() {
_searchLimit = 10;
_interval = 250; //msec
+ _pluginPath = "../lib/mdictionary/";
loadPlugins();
+
if(!connect(&_timer, SIGNAL(timeout()), this, SLOT(translation())))
qDebug() << "Timer signal not connected";
}
void Backbone::loadPlugins() {
- QPluginLoader loader("xdxf.so");
- if(!loader.load()) {
- qDebug()<<loader.errorString();
+ QDir plug(QDir::toNativeSeparators(_pluginPath));
+ if(!plug.exists()) {
+ qDebug() << plug.absolutePath() << " folder dosen't exists";
return;
}
- QObject *pl = loader.instance();
+ QStringList nameFilter;
+ nameFilter << "*.so";
+ plug.setFilter(QDir::Files);
+ QStringList files = plug.entryList(nameFilter);
+ qDebug() << files;
+
+
+ foreach(QString file, files) {
+ QPluginLoader loader(file);
+ if(!loader.load()) {
+ qDebug()<< file << " " << loader.errorString();
+ continue;
+ }
+ QObject *pl = loader.instance();
- qDebug()<<"loaded";
- CommonDictInterface *plugin = qobject_cast<CommonDictInterface*>(pl);
- _plugins.append(plugin);
- addDictionary(plugin->getNew(0)); //TODO change 0 to real settings
+ CommonDictInterface *plugin = qobject_cast<CommonDictInterface*>(pl);
+ _plugins.append(plugin);
+ addDictionary(plugin->getNew(0)); //TODO change 0 to real settings
+ }
}
#include <QtConcurrentRun>
#include <QTimer>
#include <QTime>
+#include <QDir>
#include "../../includes/CommonDictInterface.h"
#include "../../includes/settings.h"
#include "../../includes/translation.h"
int _activeSearchNum;
QTime _time;
int _interval; //Search fetching timer.timeout interval in msec
+ QString _pluginPath;
void init();