Library and qt script plugin to create signals in qt script.

Repository with wiki http://gitorious.org/qtscriptsignalhandler/

With this library you can create|connect signals in qt script environment. Also you can connect signal, which created in qt script, in c++ code.

From wiki:
In qt script:
Qt Code:
  1. SignalBaseClass = function() {
  2. this.test = "signalBaseClass";
  3. this.baseSignal = signal();
  4. this.intSignal = signal();
  5. };
  6. SignalBaseClass.prototype.emitBaseSignal = function() {
  7. this.baseSignal.emit("emitBaseSignal from " + this.test);
  8. };
  9. SignalBaseClass.prototype.emitBaseSignal2 = function() {
  10. this.baseSignal.emit("emitBaseSignal2 from " + this.test);
  11. };
  12. SignalBaseClass.prototype.emitBaseIntSignal = function() {
  13. this.intSignal.emit(123);
  14. };
To copy to clipboard, switch view to plain text mode 

In other qt script:
Qt Code:
  1. testSlot = function() {
  2. print("testSlot arguments count: " + arguments.length);
  3. for (var i = 0; i < arguments.length; ++i)
  4. print("testSlot first argument: " + arguments[i]);
  5. };
  6. baseObject = new SignalBaseClass();
  7. baseObject.intSignal.connect(testSlot);
To copy to clipboard, switch view to plain text mode 

In cpp code:
Qt Code:
  1. // Load translation file
  2. QTranslator trans;
  3. trans.load("qtscriptsignalhandler_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
  4. app.installTranslator(&trans);
  5.  
  6. QLineEdit lineEdit4(0);
  7. lineEdit4.setWindowTitle("4C++ LineEdit");
  8. lineEdit4.show();
  9.  
  10. qScriptConnect(engine.globalObject().property("baseObject"), "baseSignal", &lineEdit4, SLOT(setText(QString)));
To copy to clipboard, switch view to plain text mode