Details
-
Bug
-
Resolution: Duplicate
-
P2: Important
-
5.11.0
-
None
-
Qt Creator 4.6.2
Qt Creator 4.7.0 - Beta1
Windows 10 Enterprise
-
2f4b8f159545b545d4b49cb3c1429c09522519ee
Description
Ich habe eine Klasse als Singleton registriert.
qmlRegisterSingletonType<CTaskManager>("Singletons", 1, 0,"TaskManager", [](QQmlEngine*, QJSEngine*) -> QObject* { CTaskManager* pInstance = new CTaskManager(); return pInstance; });
Damit werden verschiedenen Aufgaben in einen seperaten Thread ausgelagert.
void CTaskManager::runAsync(CTask* task) { Q_CHECK_PTR(task); QThread* thread = new QThread(); task->moveToThread(thread); connect(this , SIGNAL(canceled()) , task , SLOT(cancel()) , Qt::DirectConnection); connect(task , SIGNAL(progressChanged(float)) , this , SLOT(setProgress(float)) , Qt::DirectConnection); connect(task , SIGNAL(finished(bool,unsigned int, const QVariantMap&)) , this , SLOT(setFinished(bool,unsigned int, const QVariantMap&)) , Qt::DirectConnection); connect(thread , SIGNAL(started()) , task , SLOT(run())); connect(task , SIGNAL(finished(bool,unsigned int, const QVariantMap&)) , thread, SLOT(quit())); connect(thread , SIGNAL(finished()) , task , SLOT(deleteLater())); connect(thread , SIGNAL(finished()) , thread, SLOT(deleteLater())); thread->start(); }
Diese Task Objekte schicken ein Signal an den CTaskManger(QML-Singleton) wenn sie abgearbeitet sind. Das Signal wird dann weitergeleitet und in QML ausgewertet.
void CTaskManager::setFinished(bool canceled, unsigned int error, const QVariantMap& args) { Q_ASSERT(true == this->running()); this->setRunning(false); emit this->finished(canceled, error, args); }
Auf QML Seite habe ich zu dem finished Signal eine Connection die dann anhand der übergebenen Parameter die weitere Auswertung übernimmt.
Connections { target: TaskManager onFinished: { if (false === canceled) ... usw..
Der Parameter canceled sowie error und args werden im Creator als "undefined" angezeigt und können nicht ausgewertet werden.
Wird das selbe Projekt unter LINUX-Mint-Cinnamon gestartet tritt dieser Fehler NICHT auf!
Attachments
Issue Links
- duplicates
-
QTBUG-68522 V4 messes up arguments and locals in "hasDirectEval" mode
- Closed