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
signature.asc
Description: PGP signature