Added the application to the script engine

This commit is contained in:
Micke Prag 2009-03-27 12:54:59 +00:00
parent 385b0fa000
commit 2b98542e6e
7 changed files with 22 additions and 12 deletions

View file

@ -0,0 +1 @@
__setupPackage__( __extension__ );

View file

@ -0,0 +1,3 @@
__setupPackage__( __extension__ );

View file

@ -0,0 +1,10 @@
__postInit__ = function() {
application.showMessage.connect( systrayMessage );
}
function systrayMessage(title, message, detailedMessage) {
if (!application.isMainWindowShown()) {
com.telldus.systray.showMessage(title, message, detailedMessage);
}
}

View file

@ -15,7 +15,7 @@ int main(int argc, char *argv[])
TelldusCenterApplication application(argc, argv);
QCoreApplication::setLibraryPaths( QStringList( QCoreApplication::applicationDirPath() ) );
//QCoreApplication::setLibraryPaths( QStringList( QCoreApplication::applicationDirPath() ) );
application.loadPlugins();
application.loadScripts();

View file

@ -76,14 +76,6 @@ void TelldusCenterApplication::eventTriggered( const QString &name, const QStrin
qDebug() << "Systray - eventTriggered:" << name << title;
}
void TelldusCenterApplication::showMessage( const QString &title, const QString &message, const QString &detailedMessage ) {
if (isMainWindowShown()) {
d->mainWindow->showMessage(title, message, detailedMessage);
} else {
//d->systrayIcon->showMessage((title != "" ? title : "Telldus Center"), message, QSystemTrayIcon::Warning);
}
}
void TelldusCenterApplication::deviceEvent(int deviceId, int method, const char *data, int /*callbackId*/, void */*context*/) {
TelldusCenterApplication *app = TelldusCenterApplication::instance();
emit app->sigDeviceEvent(deviceId, method, data);
@ -100,11 +92,14 @@ void TelldusCenterApplication::loadPlugins() {
pluginsDir.cdUp();
}
#endif
if (!pluginsDir.cd("plugins")) {
if (!pluginsDir.cd("Plugins")) {
return;
}
this->setLibraryPaths( QStringList(pluginsDir.absolutePath()) );
QScriptValue object = d->scriptEngine.newQObject(this);
d->scriptEngine.globalObject().setProperty("application", object);
foreach (QString fileName, pluginsDir.entryList(QDir::Files)) {
QPluginLoader loader(pluginsDir.absoluteFilePath(fileName));
QObject *plugin = loader.instance();

View file

@ -25,7 +25,6 @@ public:
PluginList plugins() const;
void showMainWindow();
bool isMainWindowShown();
void loadPlugins();
void loadScripts();
@ -34,10 +33,11 @@ public:
signals:
void sigDeviceEvent(int deviceId, int method, const QString &data);
void showMessage( const QString &title, const QString &message, const QString &detailedMessage );
public slots:
void showMessage( const QString &title, const QString &message, const QString &detailedMessage );
void eventTriggered( const QString &name, const QString &title );
bool isMainWindowShown();
private slots:
void deviceEvent(int deviceId, int method, const QString &data);

View file

@ -7,6 +7,7 @@ public:
virtual ~TelldusCenterPlugin() {}
virtual QIcon iconForPage( const QString &page ) const = 0;
// virtual void init() = 0;
virtual QString pluginName() const = 0;
virtual QWidget *widget( const QString &page, QWidget *parent ) const = 0;
virtual QStringList widgets() const = 0;