~ruther/guix-local

7e82d4e19f45bf7b251e1159ec0dcf76c8eca9dd — Maxim Cournoyer 2 years ago ec130e1
gnu: tipp10: Update to 3.3.0.

* gnu/packages/education.scm (tipp10): Update to 3.3.0.
[source]: Use git-fetch.  Drop obsolete patches.
[build-system]: Use qt-build-system.
[arguments]: Add #:qtbase.  Remove #:phases.
[inputs]: Replace qtbase-5 with qtbase, qtmultimedia-5 with qtmultimedia.
[home-page]: Update home page.
[license]: Add comment.
* gnu/packages/patches/tipp10-disable-downloader.patch: Delete file.
* gnu/packages/patches/tipp10-fix-compiling.patch: Likewise.
* gnu/packages/patches/tipp10-qt5.patch: Likewise.
* gnu/packages/patches/tipp10-remove-license-code.patch: Likewise.
* gnu/local.mk (dist_patch_DATA): De-register them.
6 files changed, 19 insertions(+), 820 deletions(-)

M gnu/local.mk
M gnu/packages/education.scm
D gnu/packages/patches/tipp10-disable-downloader.patch
D gnu/packages/patches/tipp10-fix-compiling.patch
D gnu/packages/patches/tipp10-qt5.patch
D gnu/packages/patches/tipp10-remove-license-code.patch
M gnu/local.mk => gnu/local.mk +0 -4
@@ 2016,10 2016,6 @@ dist_patch_DATA =						\
  %D%/packages/patches/tidy-CVE-2015-5522+5523.patch		\
  %D%/packages/patches/timewarrior-time-sensitive-tests.patch	\
  %D%/packages/patches/tinyxml-use-stl.patch			\
  %D%/packages/patches/tipp10-disable-downloader.patch		\
  %D%/packages/patches/tipp10-fix-compiling.patch		\
  %D%/packages/patches/tipp10-remove-license-code.patch		\
  %D%/packages/patches/tipp10-qt5.patch			\
  %D%/packages/patches/tk-find-library.patch			\
  %D%/packages/patches/tla2tools-build-xml.patch		\
  %D%/packages/patches/tlf-support-hamlib-4.2+.patch		\

M gnu/packages/education.scm => gnu/packages/education.scm +19 -38
@@ 11,6 11,7 @@
;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com>
;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2022 Luis Felipe López Acevedo <luis.felipe.la@protonmail.com>
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 266,47 267,24 @@ frequently used words in American English.")
(define-public tipp10
  (package
    (name "tipp10")
    (version "2.1.0")
    (version "3.3.0")
    (source (origin
              (method url-fetch)
              ;; guix download is not able to handle the download links on the
              ;; home-page, which use '<meta http-equiv="refresh" …>'
              (uri (string-append "mirror://debian/pool/main/"
                                  "t/tipp10/tipp10_2.1.0.orig.tar.gz"))
              (method git-fetch)
              ;; Use the community maintained Qt 6 fork of the project, as the
              ;; original software is now developed as a web application.  The
              ;; latest official version was 2.1.0.
              (uri (git-reference
                    (url "https://gitlab.com/tipp10/tipp10.git")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "0d387b404j88gsv6kv0rb7wxr23v5g5vl6s5l7602x8pxf7slbbx"))
              ;; Apply patches in the order determined by Debian
              (patches (search-patches "tipp10-fix-compiling.patch"
                                       "tipp10-remove-license-code.patch"
                                       "tipp10-disable-downloader.patch"
                                       "tipp10-qt5.patch"))))
    (build-system cmake-build-system)
    (arguments
     `(#:tests? #f ; packages has no tests
       #:phases
       (modify-phases %standard-phases
         (add-after 'unpack 'disable-new-version-check
           (lambda _
             ;; Make new version check to default to false.
             ;; TODO: Remove the checkbox from the dialog and the check itself
             (substitute* '("widget/settingspages.cpp" "widget/mainwindow.cpp")
               (("settings.value(\"check_new_version\", true)")
                "settings.value(\"check_new_version\", false)"))
             #t))
         (replace 'configure
           (lambda* (#:key outputs #:allow-other-keys)
             (let ((out (assoc-ref outputs "out")))
               ;; Make program honor $PREFIX
               (substitute* "tipp10.pro"
                 (("\\.path = /usr/") (string-append ".path = " out "/")))
               (substitute* "def/defines.h"
                 (("\"/usr/") (string-append "\"" out "/")))
               ;; Recreate Makefile
               (invoke "qmake")))))))
    (inputs
     (list qtbase-5 qtmultimedia-5))
    (home-page "https://www.tipp10.com/")
                "138xf55csnq53mlkhj50g9bacay8kxz6p9vnzd7jyv6rq1xch5nq"))))
    (build-system qt-build-system)
    (arguments (list #:qtbase qtbase    ;qtbase 6
                     #:tests? #f))      ;packages has no tests
    (inputs (list qtbase qtmultimedia))
    (home-page "https://www.tipp10.com/en/")
    (synopsis "Touch typing tutor")
    (description "Tipp10 is a touch typing tutor.  The ingenious thing about
the software is its intelligence feature: characters that are mistyped are


@@ 316,6 294,9 @@ they can start practicing without a hitch.
Useful support functions and an extensive progress tracker, topical lessons
and the ability to create your own practice lessons make learning to type
easy.")
    ;; XXX: The LICENSE file mentions 'or later', but the source license
    ;; headers have been modified to mention only "either version 2 of the
    ;; License", which is not quite clear.
    (license license:gpl2)))

(define-public snap

D gnu/packages/patches/tipp10-disable-downloader.patch => gnu/packages/patches/tipp10-disable-downloader.patch +0 -165
@@ 1,165 0,0 @@
https://salsa.debian.org/debian/tipp10/-/raw/debian/2.1.0-5/debian/patches/disable_downloaders.patch

Author: Reiner Herrmann <reiner@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() {

D gnu/packages/patches/tipp10-fix-compiling.patch => gnu/packages/patches/tipp10-fix-compiling.patch +0 -212
@@ 1,212 0,0 @@
Description: Debian patches to make tipp10 compile
Author: Christoph Martin <chrism@debian.org>
Last-Update: 2016-07-20

https://sources.debian.net/data/main/t/tipp10/2.1.0-2/debian/patches/0001-FixCompiling

--- a/widget/tickerboard.cpp
+++ b/widget/tickerboard.cpp
@@ -97,7 +97,8 @@ void TickerBoard::startTicker(bool wasPa
 
 		if (tickerSpeed == 50) {
 			scrollOffset = 290;
-			scroll(-290, 0, QRect::QRect(10, 15, 590, 35)); //contentsRect());
+			const QRect qr = QRect(10, 15, 590, 35);
+			scroll(-290, 0, qr); //contentsRect());
 		}
 
 		startFlag = true;
@@ -153,7 +154,8 @@ void TickerBoard::changeChar() {
 			scrollOffset = 0;
 		} else {
 			scrollOffset = 290;
-			scroll(-290, 0, QRect::QRect(10, 15, 590, 35)); //contentsRect());
+			const QRect qr = QRect(10, 15, 590, 35);
+			scroll(-290, 0, qr); //contentsRect());
 		}
 		splitLesson();
 	}
@@ -242,7 +244,8 @@ void TickerBoard::progress() {
 
 				// Move ticker 1 pixel to left
 				scrollOffset++;
-				scroll(-1, 0, QRect::QRect(10, 15, 590, 35)); //contentsRect());
+				const QRect qr = QRect(10, 15, 590, 35);
+				scroll(-1, 0, qr); //contentsRect());
 
 				if ((lessonOffset - scrollOffset) <= 30) {
 					setSpeed(tickerSpeed);
@@ -265,14 +268,16 @@ void TickerBoard::progress() {
 			// 160 pixels overage (because the user must see at least the next word)
 			if ((lessonOffset - scrollOffset) > 200) {
 				scrollOffset += (lessonOffset - scrollOffset) - 200;
-				scroll(-((lessonOffset - scrollOffset) - 200), 0, QRect::QRect(10, 15, 590, 35)); //contentsRect());
+				const QRect qr = QRect(10, 15, 590, 35);
+				scroll(-((lessonOffset - scrollOffset) - 200), 0, qr); //contentsRect());
 			}
 		} else {
 			// If the user types faster than the ticker, move ticker faster after
 			// 160 pixels overage (because the user must see at least the next word)
 			if ((lessonOffset - scrollOffset) > 280) {
 				scrollOffset += 570;
-				scroll(-570, 0, QRect::QRect(10, 15, 590, 35)); //contentsRect());
+				const QRect qr = QRect(10, 15, 590, 35);
+				scroll(-570, 0, qr); //contentsRect());
 			}
 
 		}
--- a/widget/settingspages.cpp
+++ b/widget/settingspages.cpp
@@ -501,7 +501,7 @@ void DatabasePage::writeSettings() {
 	QSettings settings;
 	#endif
 	settings.beginGroup("database");
-	settings.setValue("pathpro", lineDatabasePath->text() + "/" + QString::QString(APP_USER_DB));
+	settings.setValue("pathpro", lineDatabasePath->text() + "/" + QString(APP_USER_DB));
 	settings.endGroup();
 }
 
--- a/widget/lessondialog.cpp
+++ b/widget/lessondialog.cpp
@@ -89,7 +89,7 @@ void LessonDialog::updateContent() {
 			*lessonData = lineLessonContent->toPlainText().split("\n", QString::SkipEmptyParts);
 			// Delete empty lines
 			for (int i = 0; i < lessonData->size(); i++) {
-				if (QString::QString(lessonData->at(i).toLocal8Bit().constData()).simplified() == "") {
+				if (QString(lessonData->at(i).toLocal8Bit().constData()).simplified() == "") {
 					lessonData->removeAt(i);
 				}
 			}
@@ -259,7 +259,7 @@ void LessonDialog::clickSave() {
 	contentList = lineLessonContent->toPlainText().split("\n", QString::SkipEmptyParts);
 	// Delete empty lines
 	for (i = 0; i < contentList.size(); i++) {
-		if (QString::QString(contentList.at(i).toLocal8Bit().constData()).simplified() == "") {
+		if (QString(contentList.at(i).toLocal8Bit().constData()).simplified() == "") {
 			contentList.removeAt(i);
 		}
 	}
--- a/sql/chartablesql.cpp
+++ b/sql/chartablesql.cpp
@@ -57,7 +57,7 @@ QVariant CharSqlModel::data(const QModel
 			// Read the unicode value
 			unicode = value.toInt();
 			// Convert unicode to a char
-			unicodeToChar = QString::QString(QChar(unicode)); //"\'" + QString::QString(QChar(unicode)) + "\'";
+			unicodeToChar = QString(QChar(unicode)); //"\'" + QString::QString(QChar(unicode)) + "\'";
 			return unicodeToChar;
 		} else {
 			// Last column (error weight)
--- a/sql/startsql.cpp
+++ b/sql/startsql.cpp
@@ -344,7 +344,7 @@ bool StartSql::updateOwnLesson(QString l
 		for (i = 0; i < content.size(); i++) {
 			//simplifiedContent = QString::QString(
 			//	content.at(i)).replace(QChar(0x27), "''", Qt::CaseSensitive).simplified();
-			simplifiedContent = trim(QString::QString(
+			simplifiedContent = trim(QString(
 				content.at(i)).replace(QChar(0x27), "''", Qt::CaseSensitive));
 
 			if (!query.exec("INSERT INTO own_content VALUES(NULL,'" +
--- a/def/defines.h
+++ b/def/defines.h
@@ -27,9 +27,9 @@ Foundation, Inc., 51 Franklin Street, Fi
 #define DEFINES_H
 
 // OS constants
-#define APP_WIN						true
+#define APP_WIN						false
 #define APP_MAC						false
-#define APP_X11						false
+#define APP_X11						true
 #define APP_PORTABLE				false //at least one of the 3 OS must be true too!
 
 // Languages
@@ -47,6 +47,7 @@ Foundation, Inc., 51 Franklin Street, Fi
 #define APP_URL 					"http://www.tipp10.com"
 #define APP_DB 						"tipp10v2.template"
 #define APP_USER_DB					"tipp10v2.db"
+#define APP_SHARE_DIR					"/usr/share/tipp10"
 
 // Update constants
 #define UPDATE_URL 					"www.tipp10.com"
--- a/tipp10.pro
+++ b/tipp10.pro
@@ -88,3 +88,15 @@ SOURCES         += 	main.cpp \
                     sql/startsql.cpp \
                     games/abcrainwidget.cpp \
                     games/charball.cpp
+
+target.path = /usr/bin/
+INSTALLS += target
+share.path = /usr/share/tipp10/
+share.files = release/* *wav
+INSTALLS += share
+desktop.path = /usr/share/applications/
+desktop.files = tipp10.desktop
+INSTALLS += desktop
+pixmap.path = /usr/share/pixmaps/
+pixmap.files = tipp10.png
+INSTALLS += pixmap
--- a/sql/connection.h
+++ b/sql/connection.h
@@ -179,11 +179,13 @@ static bool createConnection() {
 				CANCEL_NO, "Betroffener Pfad:\n" + dbPath);*/
 			// Try to create new databae in user path
 			// Exist a database in the program dir?
-			if (QFile::exists(QCoreApplication::applicationDirPath() + "/" + dbNameTemplate)) {
+			// if (QFile::exists(QCoreApplication::applicationDirPath() + "/" + dbNameTemplate)) {
+		  	if (QFile::exists(QString(APP_SHARE_DIR) + "/" + dbNameTemplate)) {
 			//if (QFile::exists(":/" + dbNameTemplate)) {
 				// A database exist in the program dir
 				// -> copy database to user home dir
-				QFile file(QCoreApplication::applicationDirPath() + "/" + dbNameTemplate);
+				// QFile file(QCoreApplication::applicationDirPath() + "/" + dbNameTemplate);
+			  	QFile file(QString(APP_SHARE_DIR) + "/" + dbNameTemplate);
 				//QFile file(":/" + dbNameTemplate);
 				if (file.copy(dbPath)) {
 					QFile::setPermissions(dbPath, QFile::permissions(dbPath) | QFile::WriteUser);
@@ -229,7 +231,8 @@ static bool createConnection() {
 		// Exist a database in user's home dir?
 		if (!QFile::exists(dbPath)) {
 			// Exist a database template in the program dir?
-			dbPath = QCoreApplication::applicationDirPath() + "/" + dbNameTemplate;
+			// dbPath = QCoreApplication::applicationDirPath() + "/" + dbNameTemplate;
+		  	dbPath = QString(APP_SHARE_DIR) + "/" + dbNameTemplate;
 			//dbPath = ":/" + dbNameTemplate;
 			if (QFile::exists(dbPath)) {
 				// A database template exist in the program dir
--- a/widget/helpbrowser.cpp
+++ b/widget/helpbrowser.cpp
@@ -52,13 +52,15 @@ HelpBrowser::HelpBrowser(QString link, Q
     textBrowser->setOpenExternalLinks(true);
 	
     textBrowser->setSource(QString("file:///") + 
-    	QCoreApplication::applicationDirPath() + 
+	// QCoreApplication::applicationDirPath() + 
+    	APP_SHARE_DIR + 
     	QString("/help/") + language + QString("/index.html"));
     	
     if (link != "") {
     
 		textBrowser->setSource(QString("file:///") + 
-			QCoreApplication::applicationDirPath() + 
+			// QCoreApplication::applicationDirPath() + 
+			APP_SHARE_DIR + 
 			QString("/help/") + language + QString("/content/") + link);
 			
 	}
--- a/tipp10.desktop
+++ b/tipp10.desktop
@@ -1,10 +1,10 @@
 [Desktop Entry]
-Encoding=UTF-8
 Name=TIPP10
 Comment=Touch Typing Tutor
 Comment[de]=10-Finger-Schreibtrainer
 Exec=tipp10
 Icon=tipp10.png
 Terminal=false
 Type=Application
 Categories=Education;
+Keywords=learning;touchtyping

D gnu/packages/patches/tipp10-qt5.patch => gnu/packages/patches/tipp10-qt5.patch +0 -69
@@ 1,69 0,0 @@
https://salsa.debian.org/debian/tipp10/-/raw/debian/2.1.0-5/debian/patches/qt5.patch

Author: Reiner Herrmann <reiner@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

D gnu/packages/patches/tipp10-remove-license-code.patch => gnu/packages/patches/tipp10-remove-license-code.patch +0 -332
@@ 1,332 0,0 @@
Description: Remove license dialog and license key checking

https://sources.debian.net/data/main/t/tipp10/2.1.0-2/debian/patches/0002-RemoveLicenseCode

--- a/main.cpp
+++ b/main.cpp
@@ -33,7 +33,6 @@ Foundation, Inc., 51 Franklin Street, Fi
 #include "def/defines.h"
 #include "sql/connection.h"
 #include "widget/mainwindow.h"
-#include "widget/licensedialog.h"
 #include "widget/illustrationdialog.h"
 
 int main(int argc, char *argv[]) {
@@ -59,7 +58,7 @@ int main(int argc, char *argv[]) {
 	QSettings settings;
 	#endif
 
-	// Read/write language, license key and show illustration flag
+	// Read/write language and show illustration flag
 	settings.beginGroup("general");
 	QString languageGui = settings.value("language_gui",
 		QLocale::system().name()).toString();
@@ -101,7 +100,6 @@ int main(int argc, char *argv[]) {
 	QString languageLesson = settings.value("language_lesson",
 		"").toString();
 
-	QString licenseKey = settings.value("licensekey", "").toString();
 	bool showIllustration = settings.value("check_illustration", true).toBool();
 	bool useNativeStyle = settings.value("check_native_style", false).toBool();
 	settings.endGroup();
--- a/tipp10.pro
+++ b/tipp10.pro
@@ -43,7 +43,6 @@ HEADERS         += 	def/defines.h \
                     widget/helpbrowser.h \
                     widget/companylogo.h \
                     widget/errormessage.h \
-                    widget/licensedialog.h \
                     widget/txtmessagedialog.h \
                     widget/checkversion.h \
                     sql/connection.h \
@@ -78,7 +77,6 @@ SOURCES         += 	main.cpp \
                     widget/helpbrowser.cpp \
                     widget/companylogo.cpp \
                     widget/errormessage.cpp \
-                    widget/licensedialog.cpp \
                     widget/txtmessagedialog.cpp \
                     widget/checkversion.cpp \
                     sql/lessontablesql.cpp \
--- a/widget/licensedialog.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
-Copyright (c) 2006-2009, Tom Thielicke IT Solutions
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301, USA.
-*/
-
-/****************************************************************
-**
-** Implementation of the LicenseDialog class
-** File name: licensedialog.cpp
-**
-****************************************************************/
-
-#include <QHBoxLayout>
-#include <QVBoxLayout>
-#include <QMessageBox>
-#include <QSettings>
-#include <QCoreApplication>
-
-#include "licensedialog.h"
-#include "def/defines.h"
-
-LicenseDialog::LicenseDialog(QWidget *parent) : QDialog(parent) {
-
-	setWindowFlags(windowFlags() ^ Qt::WindowContextHelpButtonHint);
-
-	setWindowTitle(tr("Lizenznummer"));
-	setWindowIcon(QIcon(":/img/" + QString(ICON_FILENAME)));
-
-	// Create texbox
-    createLineEdit();
-
-	// Create buttons
-    createButtons();
-
-	// Set the layout of all widgets created above
-	createLayout();
-
-	lineLicensing->setFocus();
-}
-
-void LicenseDialog::createButtons() {
-	//Buttons
-	buttonOk = new QPushButton(this);
-	buttonDemo = new QPushButton(this);
-
-	buttonOk->setText(tr("&Ok"));
-	buttonDemo->setText(tr("&Demo starten"));
-	buttonDemo->setToolTip(tr("Im Demo-Modus koennen pro Lektion nur\n"
-		"10 Schriftzeichen eingegeben werden"));
-
-	buttonOk->setDefault(true);
-	// Widget connections
-    connect(buttonOk, SIGNAL(clicked()), this, SLOT(clickOk()));
-    connect(buttonDemo, SIGNAL(clicked()), this, SLOT(clickDemo()));
-}
-
-void LicenseDialog::createLineEdit() {
-
-	lineLicensing = new QLineEdit();
-	lineLicensing->setInputMask(">NNNNNNNNNNNNNN");
-
-	labelLicensing = new QLabel(tr("Bitte geben Sie Ihre Lizenznummer "
-		"(ohne Leerzeichen) ein, "
-		"die Sie im Arbeitsbuch (Schulbuch) auf Seite 3 finden:"));
-
-	labelLicensing->setWordWrap(true);
-}
-
-void LicenseDialog::createLayout() {
-	// Button layout horizontal
-	QHBoxLayout *buttonLayoutHorizontal = new QHBoxLayout;
-    buttonLayoutHorizontal->addStretch(1);
-    buttonLayoutHorizontal->addWidget(buttonDemo);
-    buttonLayoutHorizontal->addWidget(buttonOk);
-	// Full layout of all widgets vertical
-	QVBoxLayout *mainLayout = new QVBoxLayout;
-    mainLayout->addSpacing(1);
-    mainLayout->addWidget(labelLicensing);
-    mainLayout->addSpacing(1);
-    mainLayout->addWidget(lineLicensing);
-    mainLayout->addSpacing(1);
-    mainLayout->addLayout(buttonLayoutHorizontal);
-    mainLayout->setMargin(15);
-    mainLayout->setSpacing(15);
-    // Pass layout to parent widget (this)
-	this->setLayout(mainLayout);
-}
-
-void LicenseDialog::clickOk() {
-
-	// Check license key
-	if (!checkLicenseKey(lineLicensing->text())) {
-
-		// License key is wrong
-
-		// Message to the user
-		QMessageBox::information(0, APP_NAME,
-			tr("Die eingegebene Lizenznummer ist leider nicht "
-			"korrekt.\nBitte ueberpruefen Sie die Schreibweise."));
-
-		lineLicensing->setFocus();
-
-	} else {
-
-		// License key is ok
-		writeSettings();
-		accept();
-	}
-}
-
-void LicenseDialog::clickDemo() {
-	accept();
-}
-
-bool LicenseDialog::checkLicenseKey(QString licenseKey) {
-	if (licenseKey.size() == 14 &&
-		licenseKey[0].isLetter() &&
-		licenseKey[1].isLetter() &&
-		(licenseKey.mid(2, 2) == "39" ||
-		licenseKey.mid(2, 2) == "41" ||
-		licenseKey.mid(2, 2) == "43" ||
-		licenseKey.mid(2, 2) == "49" ||
-		licenseKey.mid(2, 2) == "99") &&
-		licenseKey[4].isDigit() &&
-		licenseKey[5].isDigit() &&
-		licenseKey[6].isDigit() &&
-		licenseKey[7].isLetter() &&
-		licenseKey[8].isDigit() &&
-		licenseKey[9].isDigit() &&
-		licenseKey[10].isDigit() &&
-		licenseKey[11].isDigit() &&
-		licenseKey[12].isLetter() &&
-		licenseKey[13].isLetter()) {
-
-		return true;
-	}
-	return false;
-}
-
-void LicenseDialog::writeSettings() {
-	// Saves settings of the startwiget
-	// (uses the default constructor of QSettings, passing
-	// the application and company name see main function)
-	#if APP_PORTABLE
-	QSettings settings(QCoreApplication::applicationDirPath() +
-    	"/portable/settings.ini", QSettings::IniFormat);
-    #else
-	QSettings settings;
-	#endif
-
-	settings.beginGroup("general");
-	settings.setValue("licensekey", lineLicensing->text());
-	settings.endGroup();
-}
--- a/widget/licensedialog.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
-Copyright (c) 2006-2009, Tom Thielicke IT Solutions
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301, USA.
-*/
-
-/****************************************************************
-**
-** Definition of the LicenseDialog class
-** File name: licensedialog.h
-**
-****************************************************************/
-
-#ifndef LICENSEDIALOG_H
-#define LICENSEDIALOG_H
-
-#include <QDialog>
-#include <QWidget>
-#include <QPushButton>
-#include <QLabel>
-#include <QLineEdit>
-#include <QString>
-
-//! The LicenseDialog class provides a license input widget.
-/*!
-	The LicenseDialog class shows a dialog to enter a license key.
-
-	@author Tom Thielicke, s712715
-	@version 0.0.1
-	@date 09.09.2008
-*/
-class LicenseDialog : public QDialog {
-	Q_OBJECT
-
-	public:
-
-		//! Constructor, creates two table objects and provide it in two tabs.
-		LicenseDialog(QWidget *parent = 0);
-
-		bool checkLicenseKey(QString licenseKey);
-
-	public slots:
-
-	private slots:
-
-		//! Start button pressed
-		void clickOk();
-
-		//! Demo button pressed
-		void clickDemo();
-
-	private:
-
-		//! Creates a cancel and a ok button.
-		void createButtons();
-
-		//! Creates a textbox.
-		void createLineEdit();
-
-		//! Creates the layout of the complete class.
-		void createLayout();
-
-		//! Writes user settings
-		void writeSettings();
-
-		QPushButton *buttonOk;
-		QPushButton *buttonDemo;
-		QLabel *labelLicensing;
-		QLineEdit *lineLicensing;
-};
-
-#endif //LICENSEDIALOG_H
--- a/widget/mainwindow.cpp
+++ b/widget/mainwindow.cpp
@@ -116,11 +116,6 @@ void MainWindow::closeEvent(QCloseEvent
 	}
 }
 
-bool MainWindow::checkLicenseKey(QString licenseKey) {
-
-    return false;
-}
-
 void MainWindow::createMenu() {
 	//Mac-Version:
 	//-----------
--- a/widget/mainwindow.h
+++ b/widget/mainwindow.h
@@ -39,7 +39,6 @@ Foundation, Inc., 51 Franklin Street, Fi
 #include "trainingwidget.h"
 #include "evaluationwidget.h"
 #include "illustrationdialog.h"
-#include "licensedialog.h"
 #include "games/abcrainwidget.h"
 #include "helpbrowser.h"