From 60f30d512a60b14c73541644d5b6d97354eeb57d Mon Sep 17 00:00:00 2001 From: am0ebe <am0ebe@gmx.de> Date: Mon, 12 Feb 2024 16:25:46 +0100 Subject: [PATCH] controller: add console member >> then connect signal/slots directly in main >> rm double connections (signal-signal delegation) --- src/cmd/console.cpp | 12 +++--------- src/cmd/console.h | 1 + src/cmd/core.cpp | 2 +- src/cmd/main.cpp | 11 ++++++----- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/cmd/console.cpp b/src/cmd/console.cpp index 1968fdf..19b662c 100644 --- a/src/cmd/console.cpp +++ b/src/cmd/console.cpp @@ -55,21 +55,15 @@ void Console::printList(const QStringList& list ) } } -Controller::Controller() +// ############################### +// Controller +Controller::Controller() : console(new Console()) { - Console* console = new Console; console->moveToThread(&thread); connect(&thread, &QThread::finished, console, &QObject::deleteLater); connect(this, &Controller::operate, console, &Console::listenKeys); connect(console, &Console::keyPressed, this, &Controller::keyPress); - //just delegate to console - // connect(this, &Controller::err, console, &Console::err, Qt::DirectConnection); - connect(this, SIGNAL(error(const QString&,const int&)), console, SLOT(error(const QString&,const int&)), Qt::DirectConnection); - connect(this, SIGNAL(error(const int&)), console, SLOT(error(const int&)), Qt::DirectConnection); - connect(this, &Controller::print, console, &Console::print, Qt::DirectConnection); - connect(this, &Controller::printList, console, &Console::printList, Qt::DirectConnection); - thread.start(); } diff --git a/src/cmd/console.h b/src/cmd/console.h index 4d34cd9..31736fd 100644 --- a/src/cmd/console.h +++ b/src/cmd/console.h @@ -31,6 +31,7 @@ class Controller : public QObject public: Controller(); ~Controller(); + Console* console; public slots: void keyPress(const QChar &); diff --git a/src/cmd/core.cpp b/src/cmd/core.cpp index 129352c..f8d8103 100644 --- a/src/cmd/core.cpp +++ b/src/cmd/core.cpp @@ -238,7 +238,7 @@ void Core::record() // pFeature -> // Program runtime - QThread::sleep(3); + QThread::sleep(2); // Stop the acquisition engine ( curCam) diff --git a/src/cmd/main.cpp b/src/cmd/main.cpp index eacc5c0..00d57da 100644 --- a/src/cmd/main.cpp +++ b/src/cmd/main.cpp @@ -1,6 +1,7 @@ #include "../utils.h" #include "console.h" #include "core.h" +#include "qnamespace.h" #include <QCoreApplication> #include <QCommandLineParser> @@ -26,11 +27,11 @@ int main(int argc, char *argv[]) QObject::connect(&controller, &Controller::record, &core, &Core::record); // XXX add new func - //vmb (core) -> ui (controller) - QObject::connect(&core, SIGNAL(error(const QString&, const int&)), &controller, SIGNAL(error(const QString&, const int&))); - QObject::connect(&core, SIGNAL(error(const int&)), &controller, SIGNAL(error(const int&))); - QObject::connect(&core, &Core::print, &controller, &Controller::print); - QObject::connect(&core, &Core::printList, &controller, &Controller::printList); + //vmb (core) -> ui (controller.console) + QObject::connect(&core, SIGNAL(error(const QString&, const int&)), controller.console, SLOT(error(const QString&, const int&)),Qt::DirectConnection); + QObject::connect(&core, SIGNAL(error(const int&)), controller.console, SLOT(error(const int&)),Qt::DirectConnection); + QObject::connect(&core, SIGNAL(print(const QString&)), controller.console, SLOT(print(const QString&)),Qt::DirectConnection); + QObject::connect(&core, SIGNAL(printList(const QStringList&)), controller.console, SLOT(printList(const QStringList&)),Qt::DirectConnection); // sa Controller() for delegating to Console QTimer::singleShot(0, &controller, SIGNAL(operate())); -- GitLab