From b06c7f6607f8fb3f310ddb9d0f104a99e3af8974 Mon Sep 17 00:00:00 2001
From: Alexander Schwinn <al.schwinn@gsi.de>
Date: Wed, 18 May 2022 09:29:21 +0200
Subject: [PATCH] Port Qt4 --> Qt5 (Issue #55)

- Explicitly include all Qt headers
- runs on acc8 now
---
 silecs-diagnostic-cpp/Makefile                        |  8 ++++----
 silecs-diagnostic-cpp/Makefile.dep                    |  9 ++++-----
 .../src/silecs-diagnostic/diagnostictoolmainview.cpp  |  7 +++++++
 .../src/silecs-diagnostic/diagnostictoolmainview.h    |  2 +-
 .../src/silecs-diagnostic/displayarraydialog.cpp      |  2 +-
 .../src/silecs-diagnostic/displayarraydialog.h        |  2 +-
 silecs-diagnostic-cpp/src/silecs-diagnostic/item.h    |  2 +-
 .../src/silecs-diagnostic/logindialog.h               |  2 +-
 .../src/silecs-diagnostic/loginhandler.h              |  3 ---
 silecs-diagnostic-cpp/src/silecs-diagnostic/main.cpp  |  4 +++-
 .../src/silecs-diagnostic/silecsmodule.cpp            |  1 +
 .../src/silecs-diagnostic/silecsmodule.h              |  3 +--
 .../src/silecs-diagnostic/stderrredirect.cpp          | 11 +++++++----
 .../src/silecs-diagnostic/stderrredirect.h            |  8 ++++----
 silecs-diagnostic-cpp/src/silecs-diagnostic/utils.cpp |  3 +++
 silecs-diagnostic-cpp/src/silecs-diagnostic/utils.h   |  7 +++----
 16 files changed, 42 insertions(+), 32 deletions(-)

diff --git a/silecs-diagnostic-cpp/Makefile b/silecs-diagnostic-cpp/Makefile
index fc5a176..3bc73c2 100644
--- a/silecs-diagnostic-cpp/Makefile
+++ b/silecs-diagnostic-cpp/Makefile
@@ -28,7 +28,7 @@ BIN_NAME = $(PROJECT)-$(PRODUCT)
 DBG = false
 
 #DEFINES = -DWITH_RBAC -D_REENTRANT -DQT_NO_DEBUG_OUTPUT -DQT_NO_WARNING_OUTPUT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
-DEFINES = -D_REENTRANT -DQT_NO_DEBUG_OUTPUT -DQT_NO_WARNING_OUTPUT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+DEFINES = -D_REENTRANT -DQT_NO_DEBUG_OUTPUT -DQT_NO_WARNING_OUTPUT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -DQT_WIDGETS_LIB
 COMPILER_FLAGS = -O2 -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -mtune=generic $(DEFINES)
 
 #Enable C++11 Support
@@ -50,9 +50,9 @@ EXTRA_SRCS = generated/qrc_images.cpp\
 # Include the generic make file
 include $(COMMON_MAKE_PATH)/Make.generic
 
-QT_RCC = /usr/bin/rcc
-QT_UIC = /usr/bin/uic-qt4
-QT_MOC = /usr/bin/moc-qt4
+QT_RCC = /usr/bin/rcc-qt5
+QT_UIC = /usr/bin/uic-qt5
+QT_MOC = /usr/bin/moc-qt5
 
 # rules to generate Qt files
 before_compile::
diff --git a/silecs-diagnostic-cpp/Makefile.dep b/silecs-diagnostic-cpp/Makefile.dep
index afd5720..f1da15a 100644
--- a/silecs-diagnostic-cpp/Makefile.dep
+++ b/silecs-diagnostic-cpp/Makefile.dep
@@ -20,17 +20,16 @@ DEPENDENT_COMPILER_OPTIONS += -I$(RBACK_HOME)/include
 DEPENDENT_COMPILER_OPTIONS += -I$(SILECS_COMM_HOME)/include
 DEPENDENT_COMPILER_OPTIONS += -I$(LIBXML_PATH)
 DEPENDENT_COMPILER_OPTIONS += -I$(BOOST_HOME)/include
-DEPENDENT_COMPILER_OPTIONS += -I/usr/lib64/qt4/mkspecs/linux-g++-64
-DEPENDENT_COMPILER_OPTIONS += -I/usr/include/QtCore
-DEPENDENT_COMPILER_OPTIONS += -I/usr/include/QtGui
+DEPENDENT_COMPILER_OPTIONS += -I/usr/lib64/qt5/mkspecs/linux-g++-64
+DEPENDENT_COMPILER_OPTIONS += -I/usr/include/qt5
  
 DEPENDENT_LINKER_OPTIONS += -L$(RBACK_HOME)/lib
 DEPENDENT_LINKER_OPTIONS += -L$(SILECS_COMM_HOME)/lib/$(CPU)
 DEPENDENT_LINKER_OPTIONS += -L$(SNAP7_BASE)/bin/$(CPU)-linux -lsnap7
 DEPENDENT_LINKER_OPTIONS += -L$(BOOST_HOME)/lib/$(CPU)
-DEPENDENT_LINKER_OPTIONS += -L/usr/lib64 -lxml2
+DEPENDENT_LINKER_OPTIONS += -L/lib64 -lxml2
 DEPENDENT_LINKER_OPTIONS += -lsilecs-comm
-DEPENDENT_LINKER_OPTIONS += -lstdc++ -lxml2 -lboost_system -lboost_filesystem -lcurl -lQtGui -lQtCore
+DEPENDENT_LINKER_OPTIONS += -lstdc++ -lxml2 -lboost_system -lboost_filesystem -lcurl -lQt5Gui -lQt5Core -lQt5Widgets
 
 DEPENDENT_LINKER_OPTIONS += -Wl,-rpath=$(SNAP7_BASE)/bin/$(CPU)-linux
 
diff --git a/silecs-diagnostic-cpp/src/silecs-diagnostic/diagnostictoolmainview.cpp b/silecs-diagnostic-cpp/src/silecs-diagnostic/diagnostictoolmainview.cpp
index d9f49b5..f66da80 100755
--- a/silecs-diagnostic-cpp/src/silecs-diagnostic/diagnostictoolmainview.cpp
+++ b/silecs-diagnostic-cpp/src/silecs-diagnostic/diagnostictoolmainview.cpp
@@ -11,6 +11,13 @@ Contributors:
 */
 
 
+#include <QtCore/QDebug>
+#include <QtCore/QTime>
+#include <QtCore/QTimer>
+#include <QtWidgets/QMessageBox>
+#include <QtWidgets/QFileDialog>
+#include <QtWidgets/QMenu>
+
 #include <silecs-diagnostic/diagnostictoolmainview.h>
 #include <silecs-diagnostic/generated/ui_diagnostictoolmainview.h>
 #include <silecs-diagnostic/utils.h>
diff --git a/silecs-diagnostic-cpp/src/silecs-diagnostic/diagnostictoolmainview.h b/silecs-diagnostic-cpp/src/silecs-diagnostic/diagnostictoolmainview.h
index 109d3ac..cc150de 100755
--- a/silecs-diagnostic-cpp/src/silecs-diagnostic/diagnostictoolmainview.h
+++ b/silecs-diagnostic-cpp/src/silecs-diagnostic/diagnostictoolmainview.h
@@ -14,7 +14,7 @@ Contributors:
 #ifndef SILECS_DIAG_DIAGNOSTICTOOLMAINVIEW_H
 #define SILECS_DIAG_DIAGNOSTICTOOLMAINVIEW_H
 
-#include <QMainWindow>
+#include <QtWidgets/QMainWindow>
 
 #include <silecs-diagnostic/displayarraydialog.h>
 #include <silecs-diagnostic/item.h>
diff --git a/silecs-diagnostic-cpp/src/silecs-diagnostic/displayarraydialog.cpp b/silecs-diagnostic-cpp/src/silecs-diagnostic/displayarraydialog.cpp
index e268386..f1e2dfb 100755
--- a/silecs-diagnostic-cpp/src/silecs-diagnostic/displayarraydialog.cpp
+++ b/silecs-diagnostic-cpp/src/silecs-diagnostic/displayarraydialog.cpp
@@ -14,7 +14,7 @@ Contributors:
 #include <silecs-diagnostic/displayarraydialog.h>
 #include <silecs-diagnostic/generated/ui_displayarraydialog.h>
 
-#include <QDebug>
+#include <QtCore/QDebug>
 
 DisplayArrayDialog::DisplayArrayDialog(QWidget *parent) :
     QDialog(parent),
diff --git a/silecs-diagnostic-cpp/src/silecs-diagnostic/displayarraydialog.h b/silecs-diagnostic-cpp/src/silecs-diagnostic/displayarraydialog.h
index cabe67f..2c5e524 100755
--- a/silecs-diagnostic-cpp/src/silecs-diagnostic/displayarraydialog.h
+++ b/silecs-diagnostic-cpp/src/silecs-diagnostic/displayarraydialog.h
@@ -14,7 +14,7 @@ Contributors:
 #ifndef SILECS_DIAG_DISPLAYARRAYDIALOG_H
 #define SILECS_DIAG_DISPLAYARRAYDIALOG_H
 
-#include <QDialog>
+#include <QtWidgets/QDialog>
 
 namespace Ui {
     class DisplayArrayDialog;
diff --git a/silecs-diagnostic-cpp/src/silecs-diagnostic/item.h b/silecs-diagnostic-cpp/src/silecs-diagnostic/item.h
index c26e018..037ba52 100755
--- a/silecs-diagnostic-cpp/src/silecs-diagnostic/item.h
+++ b/silecs-diagnostic-cpp/src/silecs-diagnostic/item.h
@@ -14,7 +14,7 @@ Contributors:
 #ifndef SILECS_DIAG_ITEM_H
 #define SILECS_DIAG_ITEM_H
 
-#include <QTreeWidgetItem>
+#include <QtWidgets/QTreeWidgetItem>
 
 class QDomDocument;
 class Item : public QTreeWidgetItem {
diff --git a/silecs-diagnostic-cpp/src/silecs-diagnostic/logindialog.h b/silecs-diagnostic-cpp/src/silecs-diagnostic/logindialog.h
index ab4295c..499c3b7 100755
--- a/silecs-diagnostic-cpp/src/silecs-diagnostic/logindialog.h
+++ b/silecs-diagnostic-cpp/src/silecs-diagnostic/logindialog.h
@@ -14,7 +14,7 @@ Contributors:
 #ifndef SILECS_DIAG_LOGINDIALOG_H
 #define SILECS_DIAG_LOGINDIALOG_H
 
-#include <QDialog>
+#include <QtWidgets/QDialog>
 
 #include <silecs-diagnostic/constants.h>
 
diff --git a/silecs-diagnostic-cpp/src/silecs-diagnostic/loginhandler.h b/silecs-diagnostic-cpp/src/silecs-diagnostic/loginhandler.h
index ecc43c4..4824cef 100755
--- a/silecs-diagnostic-cpp/src/silecs-diagnostic/loginhandler.h
+++ b/silecs-diagnostic-cpp/src/silecs-diagnostic/loginhandler.h
@@ -14,9 +14,6 @@ Contributors:
 #ifndef SILECS_DIAG_LOGINHANDLER_H
 #define SILECS_DIAG_LOGINHANDLER_H
 
-#include <QtGui>
-#include <QtCore>
-
 #include <silecs-diagnostic/logindialog.h>
 #include <silecs-diagnostic/constants.h>
 
diff --git a/silecs-diagnostic-cpp/src/silecs-diagnostic/main.cpp b/silecs-diagnostic-cpp/src/silecs-diagnostic/main.cpp
index 902c40d..5aebbb9 100755
--- a/silecs-diagnostic-cpp/src/silecs-diagnostic/main.cpp
+++ b/silecs-diagnostic-cpp/src/silecs-diagnostic/main.cpp
@@ -11,7 +11,9 @@ Contributors:
 */
 
 
-#include <QtGui/QApplication>
+#include <QtCore/QThread>
+#include <QtWidgets/QApplication>
+#include <QtWidgets/QSplashScreen>
 
 #include <silecs-diagnostic/constants.h>
 #include <silecs-diagnostic/diagnostictoolmainview.h>
diff --git a/silecs-diagnostic-cpp/src/silecs-diagnostic/silecsmodule.cpp b/silecs-diagnostic-cpp/src/silecs-diagnostic/silecsmodule.cpp
index 108193a..9f30def 100755
--- a/silecs-diagnostic-cpp/src/silecs-diagnostic/silecsmodule.cpp
+++ b/silecs-diagnostic-cpp/src/silecs-diagnostic/silecsmodule.cpp
@@ -10,6 +10,7 @@ Contributors:
     .GSI Helmholtzzentrum für Schwerionenforschung (GSI)  - features and bugfixes
 */
 
+#include <QtCore/QDebug>
 
 #include <silecs-diagnostic/silecsmodule.h>
 #include <silecs-communication/interface/utility/XMLParser.h>
diff --git a/silecs-diagnostic-cpp/src/silecs-diagnostic/silecsmodule.h b/silecs-diagnostic-cpp/src/silecs-diagnostic/silecsmodule.h
index b6bba2c..92adcb6 100755
--- a/silecs-diagnostic-cpp/src/silecs-diagnostic/silecsmodule.h
+++ b/silecs-diagnostic-cpp/src/silecs-diagnostic/silecsmodule.h
@@ -14,8 +14,7 @@ Contributors:
 #ifndef SILECS_DIAG_SILECSMODULE_H
 #define SILECS_DIAG_SILECSMODULE_H
 
-#include <QtGui>
-#include <QtCore>
+#include <QtWidgets/QTextBrowser>
 
 #include <silecs-communication/interface/core/SilecsService.h>
 
diff --git a/silecs-diagnostic-cpp/src/silecs-diagnostic/stderrredirect.cpp b/silecs-diagnostic-cpp/src/silecs-diagnostic/stderrredirect.cpp
index b360d08..8183b04 100644
--- a/silecs-diagnostic-cpp/src/silecs-diagnostic/stderrredirect.cpp
+++ b/silecs-diagnostic-cpp/src/silecs-diagnostic/stderrredirect.cpp
@@ -13,9 +13,12 @@ Contributors:
 
 #include <silecs-diagnostic/stderrredirect.h>
 
-#include <QtCore>
-#include <QtGui>
-#include <QMessageBox>
+#include <QtWidgets/QApplication>
+#include <QtWidgets/QMessageBox>
+#include <QtCore/QDir>
+#include <QtCore/QString>
+#include <QtCore/QTextStream>
+#include <QtCore/QDebug>
 
 
 StdErrRedirect::StdErrRedirect(QTextEdit *errorLog,QObject *parent): QObject(parent)
@@ -44,7 +47,7 @@ StdErrRedirect::StdErrRedirect(QTextEdit *errorLog,QObject *parent): QObject(par
         fileToRename.rename(tmpFileNameQtFormat+".old");
 
     // Set up redirection to this file:
-    freopen(tmpFileNameNativeFormat.toAscii().constData(), "a+", stderr);
+    freopen(tmpFileNameNativeFormat.toLatin1().constData(), "a+", stderr);
 
     // Initialise the QFileSystemWatcher:
     connect(&watcher, SIGNAL(fileChanged(const QString &)),
diff --git a/silecs-diagnostic-cpp/src/silecs-diagnostic/stderrredirect.h b/silecs-diagnostic-cpp/src/silecs-diagnostic/stderrredirect.h
index 9e407a0..fc57eee 100644
--- a/silecs-diagnostic-cpp/src/silecs-diagnostic/stderrredirect.h
+++ b/silecs-diagnostic-cpp/src/silecs-diagnostic/stderrredirect.h
@@ -14,10 +14,10 @@ Contributors:
 #ifndef SILECS_DIAG_STDERRREDIRECT_H
 #define SILECS_DIAG_STDERRREDIRECT_H
 
-#include <QObject>
-#include <QTextEdit>
-#include <QtCore>
-
+#include <QtCore/QObject>
+#include <QtCore/QFile>
+#include <QtCore/QFileSystemWatcher>
+#include <QtWidgets/QTextEdit>
 
 class StdErrRedirect : public QObject
 {
diff --git a/silecs-diagnostic-cpp/src/silecs-diagnostic/utils.cpp b/silecs-diagnostic-cpp/src/silecs-diagnostic/utils.cpp
index 8b68651..d796895 100755
--- a/silecs-diagnostic-cpp/src/silecs-diagnostic/utils.cpp
+++ b/silecs-diagnostic-cpp/src/silecs-diagnostic/utils.cpp
@@ -10,11 +10,14 @@ Contributors:
     .GSI Helmholtzzentrum für Schwerionenforschung (GSI)  - features and bugfixes
 */
 
+#include <QtWidgets/QTextBrowser>
+#include <QtWidgets/QScrollBar>
 
 #include <silecs-diagnostic/utils.h>
 #include <silecs-diagnostic/silecsmodule.h>
 #include <iomanip>
 
+
 extern silecsModule *mysilecs;
 
 void Utils::logError(QTextBrowser* errorConsole, std::string message)
diff --git a/silecs-diagnostic-cpp/src/silecs-diagnostic/utils.h b/silecs-diagnostic-cpp/src/silecs-diagnostic/utils.h
index b1dfc25..9cfd41c 100755
--- a/silecs-diagnostic-cpp/src/silecs-diagnostic/utils.h
+++ b/silecs-diagnostic-cpp/src/silecs-diagnostic/utils.h
@@ -20,10 +20,9 @@ Contributors:
 #include <sstream>
 #include <iostream>
 
-#include <QtCore>
-#include <QtGui>
-#include <QObject>
-#include <QTextEdit>
+#include <QtCore/QObject>
+#include <QtWidgets/QTextEdit>
+#include <QtWidgets/QLabel>
 
 #include <silecs-diagnostic/item.h>
 
-- 
GitLab