Control: tags -1 + patch

Hi Christoph,

I attached a patch that builds tipp10 with Qt5.
I tested building with pbuilder and did a few tests of the program,
and it looks to me like everything is working.

As porting the download modules would have been a bit more effort,
as QHttp is no longer available in Qt5 (replaced by QNetworkAccessManager),
I had a look what they are actually used for.
It turned out that two of them were currently not used at all
(updatedialog, downloaddialog), as their actions have not been
associated with any menu. And the third one (checkversion, which checks on a
remote server if the version is up-to-date) has no real use in a Debian
package and there seems to be no upstream development anyway. It's also
not nice to let it "phone home" regularly.
So I decided to drop them, which simplified the porting effort.
I hope you are fine with this change.

Kind regards,
  Reiner
From 03bfa696455efad18984fab80bee00e2d4d57cdd Mon Sep 17 00:00:00 2001
From: Reiner Herrmann <rei...@reiner-h.de>
Date: Sat, 21 Sep 2019 00:04:31 +0200
Subject: [PATCH] Port to Qt5

Closes: #875207
---
 debian/control                           |   4 +-
 debian/patches/disable_downloaders.patch | 163 +++++++++++++++++++++++
 debian/patches/qt5.patch                 |  67 ++++++++++
 debian/patches/series                    |   2 +
 debian/rules                             |   2 +-
 5 files changed, 235 insertions(+), 3 deletions(-)
 create mode 100644 debian/patches/disable_downloaders.patch
 create mode 100644 debian/patches/qt5.patch

diff --git a/debian/control b/debian/control
index e20a052..3ab3edb 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@ Source: tipp10
 Section: education
 Priority: optional
 Maintainer: Christoph Martin <christoph.mar...@uni-mainz.de>
-Build-Depends: debhelper (>= 9), qt4-qmake, libqt4-dev
+Build-Depends: debhelper (>= 9), qt5-qmake, qtbase5-dev, qtmultimedia5-dev
 Standards-Version: 3.9.5
 Homepage: https://www.tipp10.com/
 #Vcs-Git: git://anonscm.debian.org/collab-maint/tipp10.git
@@ -10,7 +10,7 @@ Homepage: https://www.tipp10.com/
 
 Package: tipp10
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, libqt4-sql-sqlite
+Depends: ${shlibs:Depends}, ${misc:Depends}, libqt5sql5-sqlite
 Description: free open source touch typing software
  TIPP10 is a free touch typing tutor for Windows, Mac OS and Linux. The
  ingenious thing about the software is its intelligence feature.
diff --git a/debian/patches/disable_downloaders.patch b/debian/patches/disable_downloaders.patch
new file mode 100644
index 0000000..ac172a1
--- /dev/null
+++ b/debian/patches/disable_downloaders.patch
@@ -0,0 +1,163 @@
+Author: Reiner Herrmann <rei...@reiner-h.de>
+Description: Disable downloaders
+ This makes porting to Qt5 much easier, as QHttp is no longer available.
+ But the functionality was not enabled anyway or is no longer useful.
+ .
+ - checkversion.h/.cpp:
+   At startup (while loading settings), Tipp10 "phones home" to do an
+   update check (www.tipp10.com/update/version.tipp10v210).
+   For a packaged software and one that is no longer being developed,
+   this does not make much sense.
+ - updatedialog.h/.cpp:
+   Can download newer sqlite database (www.tipp10.com/update/sql.tipp10v210.utf),
+   but this file is no longer available on the server (404).
+   The update action has also not been enabled in the menu, so the update
+   functionality was currently not active:
+     widget/mainwindow.cpp:143:  //fileMenu->addAction(updateAction);
+ - downloaddialog.h/.cpp:
+   Allows downloading lessons from user-specified location.
+   But the action (widget/startwidget.cpp -> lessonDownload) has not been part
+   of any menu, so it was also not in use.
+
+--- a/tipp10.pro
++++ b/tipp10.pro
+@@ -15,7 +15,6 @@
+ INCLUDEPATH     += 	.
+ CONFIG          += 	qt
+ QT              += 	sql
+-QT              += 	network
+ RC_FILE         += 	tipp10.rc
+ RESOURCES       += 	tipp10.qrc
+ HEADERS         += 	def/defines.h \
+@@ -36,15 +35,12 @@
+                     widget/settingspages.h \
+                     widget/lessondialog.h \
+                     widget/regexpdialog.h \
+-                    widget/downloaddialog.h \
+                     widget/lessonprintdialog.h \
+                     widget/lessonresult.h \
+-                    widget/updatedialog.h \
+                     widget/helpbrowser.h \
+                     widget/companylogo.h \
+                     widget/errormessage.h \
+                     widget/txtmessagedialog.h \
+-                    widget/checkversion.h \
+                     sql/connection.h \
+                     sql/lessontablesql.h \
+                     sql/chartablesql.h \
+@@ -70,15 +66,12 @@
+                     widget/settingspages.cpp \
+                     widget/lessondialog.cpp \
+                     widget/regexpdialog.cpp \
+-                    widget/downloaddialog.cpp \
+                     widget/lessonprintdialog.cpp \
+                     widget/lessonresult.cpp \
+-                    widget/updatedialog.cpp \
+                     widget/helpbrowser.cpp \
+                     widget/companylogo.cpp \
+                     widget/errormessage.cpp \
+                     widget/txtmessagedialog.cpp \
+-                    widget/checkversion.cpp \
+                     sql/lessontablesql.cpp \
+                     sql/chartablesql.cpp \
+                     sql/trainingsql.cpp \
+--- a/widget/mainwindow.cpp
++++ b/widget/mainwindow.cpp
+@@ -41,11 +41,9 @@
+ 
+ #include "mainwindow.h"
+ #include "settingsdialog.h"
+-#include "updatedialog.h"
+ #include "def/defines.h"
+ #include "def/errordefines.h"
+ #include "errormessage.h"
+-#include "checkversion.h"
+ 
+ MainWindow::MainWindow() {
+ 	trainingStarted = false;
+@@ -214,8 +212,8 @@
+ }
+ 
+ void MainWindow::showUpdate() {
+-	UpdateDialog updateDialog(this);
+-	updateDialog.exec();
++	//UpdateDialog updateDialog(this);
++	//updateDialog.exec();
+ 	// Fill lesson list after online update
+ 	startWidget->fillLessonList(false);
+ }
+@@ -486,6 +484,7 @@
+ 	settings.endGroup();
+ 
+     settings.beginGroup("general");
++#if 0
+     if (settings.value("check_new_version", true).toBool()) {
+ 
+         QDate lastVersionCheck = settings.value("last_version_check").toDate();
+@@ -499,6 +498,7 @@
+         }
+         settings.setValue("last_version_check", today);
+     }
++#endif
+     settings.endGroup();
+ }
+ 
+--- a/widget/settingspages.cpp
++++ b/widget/settingspages.cpp
+@@ -581,7 +581,7 @@
+ 
+ 	// Layout of group box vertical
+ 	QVBoxLayout *layout = new QVBoxLayout;
+-    layout->addWidget(checkNewVersion);
++    //layout->addWidget(checkNewVersion);
+     layout->addSpacing(1);
+     layout->addWidget(checkNativeStyle);
+     layout->setMargin(16);
+@@ -610,7 +610,6 @@
+     checkIntelligence->setChecked(settings.value("check_toggle_intelligence", true).toBool());
+ 	checkLimitLesson->setChecked(settings.value("check_limit_lesson", true).toBool());
+ 	checkLessonPublish->setChecked(settings.value("check_lesson_publish", true).toBool());
+-    checkNewVersion->setChecked(settings.value("check_new_version", true).toBool());
+     checkNativeStyle->setChecked(settings.value("check_native_style", false).toBool());
+ 	settings.endGroup();
+ }
+@@ -636,7 +635,6 @@
+ 	settings.setValue("check_limit_lesson", checkLimitLesson->isChecked());
+ 	settings.setValue("check_lesson_publish", checkLessonPublish->isChecked());
+ 	settings.setValue("check_native_style", checkNativeStyle->isChecked());
+-    settings.setValue("check_new_version", checkNewVersion->isChecked());
+     settings.endGroup();
+ 
+ 	return requireRestart;
+--- a/widget/startwidget.cpp
++++ b/widget/startwidget.cpp
+@@ -43,12 +43,10 @@
+ 
+ #include "startwidget.h"
+ #include "sql/startsql.h"
+-#include "updatedialog.h"
+ #include "def/defines.h"
+ #include "def/errordefines.h"
+ #include "errormessage.h"
+ #include "lessondialog.h"
+-#include "downloaddialog.h"
+ #include "illustrationdialog.h"
+ #include "txtmessagedialog.h"
+ 
+@@ -1048,7 +1046,7 @@
+ }
+ 
+ void StartWidget::clickDownloadLesson() {
+-
++#if 0
+ 	QStringList lessonData;
+ 
+ 	DownloadDialog downloadDialog(&lessonData, this);
+@@ -1083,6 +1081,7 @@
+ 			}
+ 		}
+ 	}
++#endif
+ }
+ 
+ void StartWidget::clickEditLesson() {
diff --git a/debian/patches/qt5.patch b/debian/patches/qt5.patch
new file mode 100644
index 0000000..031e265
--- /dev/null
+++ b/debian/patches/qt5.patch
@@ -0,0 +1,67 @@
+Author: Reiner Herrmann <rei...@reiner-h.de>
+Description: Port to Qt5
+Bug-Debian: https://bugs.debian.org/875207
+
+--- a/tipp10.pro
++++ b/tipp10.pro
+@@ -14,6 +14,7 @@
+ DEPENDPATH      += 	.
+ INCLUDEPATH     += 	.
+ CONFIG          += 	qt
++QT              += 	widgets multimedia printsupport
+ QT              += 	sql
+ RC_FILE         += 	tipp10.rc
+ RESOURCES       += 	tipp10.qrc
+--- a/main.cpp
++++ b/main.cpp
+@@ -24,7 +24,6 @@
+ ****************************************************************/
+ 
+ #include <QApplication>
+-#include <QPlastiqueStyle>
+ #include <QString>
+ #include <QSettings>
+ #include <QCoreApplication>
+@@ -212,7 +211,7 @@
+ 
+     // Set windows style
+ 	if (!useNativeStyle) {
+-	    app.setStyle("plastique");
++	    app.setStyle("fusion");
+     }
+ 
+ 	// Translation
+--- a/games/abcrainwidget.cpp
++++ b/games/abcrainwidget.cpp
+@@ -235,8 +235,7 @@
+ 		charballs.last()->wind = (qrand() % 8) + 2;
+ 		charballs.last()->rad = 0;
+ 
+-		chartext.append(new QGraphicsTextItem(QString(characterTemp),
+-			charballs.last(), scene));
++		chartext.append(new QGraphicsTextItem(QString(characterTemp), charballs.last()));
+ 		chartext.last()->setFont(QFont("Courier", 16, 100));
+ 		chartext.last()->setPos(-(chartext.last()->boundingRect().width() / 2), -(chartext.last()->boundingRect().height() / 2));
+ 
+--- a/sql/chartablesql.cpp
++++ b/sql/chartablesql.cpp
+@@ -137,7 +137,7 @@
+ 	sortColumn(4);
+ 
+ 	headerview->setStretchLastSection(true);
+-	headerview->setResizeMode(QHeaderView::Interactive);
++	headerview->setSectionResizeMode(QHeaderView::Interactive);
+ 	headerview->setSortIndicatorShown(true);
+ 
+ 	// Resize the columns
+--- a/sql/lessontablesql.cpp
++++ b/sql/lessontablesql.cpp
+@@ -202,7 +202,7 @@
+ 	sortColumn(-1);
+ 
+ 	headerview->setStretchLastSection(true);
+-	headerview->setResizeMode(QHeaderView::Interactive);
++	headerview->setSectionResizeMode(QHeaderView::Interactive);
+ 	headerview->setSortIndicatorShown(true);
+ 
+ 	// Resize the columns
diff --git a/debian/patches/series b/debian/patches/series
index 00e0388..daf7121 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,4 @@
 0001-FixCompiling
 0002-RemoveLicenseCode
+disable_downloaders.patch
+qt5.patch
diff --git a/debian/rules b/debian/rules
index c0ed679..a6ce5ca 100755
--- a/debian/rules
+++ b/debian/rules
@@ -16,7 +16,7 @@ include /usr/share/dpkg/default.mk
 # package maintainers to append LDFLAGS
 #export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
 
-export QT_SELECT := qt4
+export QT_SELECT := qt5
 
 # main packaging script based on dh7 syntax
 %:
-- 
2.23.0

Attachment: signature.asc
Description: PGP signature

Reply via email to