From 7e82d4e19f45bf7b251e1159ec0dcf76c8eca9dd Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 22 Sep 2023 22:31:15 -0400 Subject: 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. --- gnu/local.mk | 4 - gnu/packages/education.scm | 57 ++-- .../patches/tipp10-disable-downloader.patch | 165 ---------- gnu/packages/patches/tipp10-fix-compiling.patch | 212 ------------- gnu/packages/patches/tipp10-qt5.patch | 69 ----- .../patches/tipp10-remove-license-code.patch | 332 --------------------- 6 files changed, 19 insertions(+), 820 deletions(-) delete mode 100644 gnu/packages/patches/tipp10-disable-downloader.patch delete mode 100644 gnu/packages/patches/tipp10-fix-compiling.patch delete mode 100644 gnu/packages/patches/tipp10-qt5.patch delete mode 100644 gnu/packages/patches/tipp10-remove-license-code.patch diff --git a/gnu/local.mk b/gnu/local.mk index b059689954..5a1f72ffd9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -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 \ diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index d1e220ebcd..61fc9945fa 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2020 Prafulla Giri ;;; Copyright © 2021 Nicolò Balzarotti ;;; Copyright © 2022 Luis Felipe López Acevedo +;;; Copyright © 2023 Maxim Cournoyer ;;; ;;; 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 '' - (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 diff --git a/gnu/packages/patches/tipp10-disable-downloader.patch b/gnu/packages/patches/tipp10-disable-downloader.patch deleted file mode 100644 index 4917a927f9..0000000000 --- a/gnu/packages/patches/tipp10-disable-downloader.patch +++ /dev/null @@ -1,165 +0,0 @@ -https://salsa.debian.org/debian/tipp10/-/raw/debian/2.1.0-5/debian/patches/disable_downloaders.patch - -Author: Reiner Herrmann -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/gnu/packages/patches/tipp10-fix-compiling.patch b/gnu/packages/patches/tipp10-fix-compiling.patch deleted file mode 100644 index 3a34a98b22..0000000000 --- a/gnu/packages/patches/tipp10-fix-compiling.patch +++ /dev/null @@ -1,212 +0,0 @@ -Description: Debian patches to make tipp10 compile -Author: Christoph Martin -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 diff --git a/gnu/packages/patches/tipp10-qt5.patch b/gnu/packages/patches/tipp10-qt5.patch deleted file mode 100644 index 34ad5cd708..0000000000 --- a/gnu/packages/patches/tipp10-qt5.patch +++ /dev/null @@ -1,69 +0,0 @@ -https://salsa.debian.org/debian/tipp10/-/raw/debian/2.1.0-5/debian/patches/qt5.patch - -Author: Reiner Herrmann -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 --#include - #include - #include - #include -@@ -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/gnu/packages/patches/tipp10-remove-license-code.patch b/gnu/packages/patches/tipp10-remove-license-code.patch deleted file mode 100644 index 4b7487e726..0000000000 --- a/gnu/packages/patches/tipp10-remove-license-code.patch +++ /dev/null @@ -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 --#include --#include --#include --#include -- --#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 --#include --#include --#include --#include --#include -- --//! 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" - -- cgit v1.2.3