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