Release von Muckturnier 3.4.0 (01.09.2020)
Verbesserung: Wenn ein Client jetzt eine Anmeldung anfordert, und diese aufgrund einer Änderung in der Zwischenzeit fehlschlägt, dann bleibt der eingegebene Name jetzt stehen, und muss für eine erneute Anfrage nicht nochmals eingegeben werden.
Bugfix: Das Begrüßungs-Bild des Windows-Installers wird jetzt auch auf Windows 10 angezeigt.
Bugfix: Ausgeblendete Anmeldungen werden jetzt bei der Suche auf der Anmeldeseite nicht mehr als Treffer aufgelistet. Stattdessen wird darauf hingewiesen, wenn es ausgeblendete Treffer gibt.
Änderung: Der Quelltext ist jetzt nicht mehr unter „GPLv2“, sondern unter „GPLv3 or later“ lizenziert.
Neu: Wenn ein Server oder Client läuft, dann wird jetzt der Netzwerkstatus und die Kommunikation (Senden und Empfangen von Daten) in der Statusleiste angezeigt.
Bugfix: Wenn bei einem Server oder Client die Bedingung für allein gekommene Spieler dadurch geändert wurde, dass der Trenner für Paarnamen in den Einstellungen editiert wurde, war danach keine Verbindung mehr möglich (es trat ein Prüfsummenfehler auf). Das ist jetzt behoben.
Änderung: Die Prüfsummen-Funktion wurde überarbeitet, da es bei der bisherigen Implementierung evtl. Kollisionen geben könnte. Die im Prüfsummen-Dialog angezeigten Prüfsummen liefern daher jetzt bei den selben Daten andere Prüfsummen als die früherer Versionen.
Neu: Wenn ein Netzwerk benutzt wird, dann werden die eingegebenen Ergebnisse jetzt ständig verglichen. Jeder Client zeigt den Zeitpunkt der letzten Änderung am Server an und überprüft nach jeder client- oder serverseitigen Änderung, ob die eingebenen Ergebnisse der momentan offenen Runde mit der des Servers übereinstimmen oder nicht. Welche Ergebnisse abweichen, kann jetzt direkt per Dialog angezeigt werden.
Bugfix: Wenn während des Editierens eines Namens eine Warnung wegen eines ähnlichen Namens angezeigt wurde, und ein anderer Netzwerkteilnehmer währenddessen diesen Namen ebenfalls editierte, stürzte das Programm nach dem Schließen der Warnung ab (unabhängig davon, ob mit „Ja“ oder „Nein“ geantwortet wurde). Das ist jetzt behoben.
Optimierung: Die Prüfsumme der Anmeldeseite wird jetzt gecachet, und immer dann aktualisiert, wenn sich die Anmeldeliste ändert. Dadurch muss jetzt für das Anfragen eines Ranglistenvergleichs die Prüfsumme nicht immer wieder neu berechnet werden, obwohl durch diese Netzwerkanfrage gar keine Änderung stattfindet.
Neu/Verbesserung: Wenn allein gekommene Spieler gesondert behandelt werden, dann werden jetzt die entsprechenden Markierungen auch beim manuellen Editieren des/der Namen/s gesetzt bzw. entfernt.
Änderung: Die Spalten der Anmeldeseite werden jetzt nicht mehr in einem assoziativen Array, sondern in einer Liste gespeichert und verarbeitet. Im Zuge des Updates auf dbv9 werden die Einstellungen älterer Datenbanken konvertiert. Die Vorlage für neue Datenbanken wird beim ersten Speichern der Vorlage aktualisiert und die Liste dort hin verschoben.
Änderung: Das Linux-Build-System erstellt die Datei version.h jetzt nicht mehr im Quellcode- Verzeichnis, sondern im Build-Verzeichnis. Somit wird beim Kompilieren der Git-Version nichts mehr außerhalb des Build-Verzeichnisses verändert.
Änderung: Es werden jetzt generierte PNG-Dateien für die Icons und Bilder statt bisher SVG benutzt. Zum einen kann man die Dateien für die Bildschirmdarstellung optimieren, und zum anderen hängt Muckturnier jetzt nicht mehr von QtSvg ab.
Bugfix: Beim Verbinden mit einem Server mit bereits eingegebenen Ergebnissen und unterschiedlichen Annmeldungslisten konnte unter gewissen Umständen eine Endlosschleife auftreten. Das ist jetzt behoben.
Neu: Geöffnete optional anzuzeigende Seiten (momentan ist nur die Auslosungs-Übersichts-Seite) werden jetzt in der Datenbank gespeichert und beim Öffnen automatisch wiederhergestellt.
Bugfix: Das Wiederherstellen des „Markieren“- und „Auslosung setzen“-Dialogs nach Netzwerkänderungen funktioniert jetzt richtig. Es sollte dabei keine Crashes mehr geben, und abgesehen davon wird jetzt auch der Mauszeiger an die richtige Stelle verschoben, wenn der bearbeitete Eintrag nach der Änderung eine andere Position in der Anmeldeliste hat.
Bugfix: Es ist jetzt nicht mehr möglich, ungültige Ergebnisse mit undefinierten Paaren mittels der automatischen Paarauswahl und der Auslosung zu speichern. Wenn man ein Ergebnis gespeichert hatte, und danach eines der bereits eingegebenen Paare einem anderen Tisch zuloste, dann wurde per automatischer Auswahl beim Auswählen dieses Tisches eine ungültige Paarauswahl gesetzt. Beim Speichern dieses Ergebnisses stürzte das Programm dann ab.
Änderung: Es wird jetzt mindestes Qt 5.11 benötigt. außerdem kommt ab jetzt der C++17-Standard zum Einsatz.
Bugfix: Eine Netzwerkverbindung mit einem Server, der ein anderes Gebietsschema nutzt, als der Client, ist jetzt wieder möglich.
Verbesserung: Durch korrektes Benutzen der C++11-for-Schleifen sollte es jetzt keine eigentlich unnötigen detach()-Aufrufe und Deep Copys für Qt-Container mehr geben.
Verbesserung/Bugfix: Ein Lockfile wird nur noch dann angelegt, wenn eine Datenbank angelegt wird, oder eine soeben geöffnete Datenbank beschreibbar ist. Weiterhin wird das Lockfile jetzt im selben Verzeichnis angelegt, in dem auch die Datenbank gespeichert ist. Das stellt sicher, dass die Datenbank auch dann nicht von zwei Instanzen gleichzeitig schreibend geöffnet wird, wenn sie auf einem Netzwerklaufwerk liegt, und die Instanzen auf verschiedenen Rechnern laufen.
Verbesserung: Es wird jetzt beim Neuanlegen und beim Öffnen einer nicht schreibgeschützten Datenbank geprüft, ob eine „Exclusive Transaction“ gestartet werden kann. Andernfalls ist die Datenbank gesperrt und kann schreibend nicht benutzt werden. Das passiert z. B. dann, wenn dies durch einen anderen Prozess, der auf die selbe Datei zugreift, bedingt ist (was an sich nicht passieren sollte), aber auch dann, wenn man versucht, eine SQLite-Datenbank auf einer Windows- Netzwerk-Freigabe bzw. einem Samba-/CIFS-Share zu erstellen oder zu öffnen.
Verbesserung: Die Implementierung der Match-Funktion der Suche wurde überarbeitet und kommt jetzt ohne reguläre Ausdrücke aus. Weiterhin müssen weniger Varianten verglichen werden, weil die Wörter nicht mehr sortiert werden müssen. Unterm Strich resultiert das in einer erheblichen Steigerung der Geschwindigkeit (ca. um den Faktor 30!), was sich insbesondere beim Import einer langen Paar- bzw. Spielerliste bemerkbar macht.
Neu: Die Suchfunktion unterstützt jetzt optional auch eine phonetische Suche mittels des „Kölner Phonetik“-Algorithmus. Damit ist eine effektive Suche mit falsch geschriebenen aber ähnlich klingenden Suchbegriffen möglich. Beispielsweise kann man so den Namen „Raithel“ auch mit dem Suchbegriff „reidl“ finden. Optional zu aktivieren ist diese Suchart deswegen, weil sie – bedingt durch die gewollt unscharfe Suche – auch mehr falsch positive (also nicht gewollte/passende) Treffer liefert.
Verbesserung: Die Suchfunktion berücksichtigt jetzt auch mehrere aufeinanderfolgende gleiche Buchstaben. So findet man Namen wie „Heerdegen“ jetzt z. B. auch bei der Suche nach „Herdeegen“.
Änderung/Verbesserung: Der „Turnier starten“-Dialog wurde überarbeitet. Es können jetzt viel mehr Optionen vorausgewählt (alle, die auch in der Datenbankdatei gespeichert werden) und auch als Vorlage festgelegt werden.
Neu: Es kann jetzt, wenn Ergebnisse vorliegen und alle Runden abgeschlossen sind, ein Turnier als „abgeschlossen“ deklariert werden. In dem Fall kann das Turnier, unabhängig davon, ob die Datenbankdatei beschreibbar ist oder nicht, nicht mehr (aus Versehen) verändert werden.
Neu: Auf der Ranglistenseite können jetzt nicht entscheidende Tore grau dargestellt werden, damit auf den ersten Blick sichtbar ist, ob nur die Bobbl, oder auch die Tore bzw. die gegnerischen Tore für eine Platzierung entscheidend waren.
Änderung: Die gegnerischen geschossenen Tore werden jetzt standardmäßig angezeigt. Diese Option ist nun auch Teil der Vorlage für Turniereinstellungen und kann entsprechend automatisch für neue Turniere an- oder abgewählt werden.
Neu: Die Position der Tabs für Seiten (sofern diese als Tabs angezeigt werden) kann jetzt via „Ansicht“ → „Position der Tabs für Seiten“ angepasst werden. Zusätzlich zu der Position am unteren Rand des Fensters können die Tabs jetzt auch oben, links oder rechts angezeigt werden.
Bugfix: Wenn eine Instanz von Muckturnier zunächst ein Netzwerk-Client war, die Client-Seite dann geschlossen wurde und die Instanz danach als Server benutzt wurde, dann stürzte das Programm bei Änderungen ab. Das ist jetzt behoben.
Neu: Die Seitenanordnung kann jetzt gespeichert und beim Starten bzw. Öffnen einer Turnierdatenbank wiederhergestellt werden.
Änderung: Die Anmelde-, Ergebnisse- und Ranglistenseite sind jetzt immer sichtbar. Das sorgt für ein konsistenteres Erscheinungsbild, da ja die Tableiste sowieso eingeblendet wurde, sobald man Ergebnisse eingeben konnte (und folgerichtig sowieso entsprechend vertikalen Platz benötigte).
Bugfix: Das Programm stürzt jetzt beim Schließen nicht mehr ab, wenn eine Netzwerkseite offen war, die offene Datenbank geschlossen wurde, und das Programm danach beendet wurde.
Verbesserung/Bugfix: Beim Update älterer Datenbanken und beim Öffnen werden jetzt fehlende Werte, die eigentlich aber vorhanden sein müssten, berücksichtigt: In diesem Fall wird jetzt eine Fehlermeldung angezeigt, anstatt das Fehlen einfach zu ignorieren.
Verbesserung: Die Berechnung der Größe der Zeitanzeige der Stoppuhr ist jetzt deutlich schneller.
Neu: Die Einstellungen und die Größe des Stoppuhr-Fensters, wenn die Stoppuhr läuft, können jetzt (optional) gespeichert und beim nächsten Start wiederhergestellt werden.
Neu: Die Eingabemaske für Spielstände kann jetzt an verschiedene Varianten von Spielstandzetteln angepasst werden. Zur Auswahl steht jetzt zusätzlich eine vertikale Version, bei der Paar 1 links, Paar 2 rechts und die Bobbl von oben nach unten geschrieben werden.
Bugfix: Scrollbars der Anzeige der Bobbl-Eingabemasken auf der Spielstandseite werden jetzt mit dem Breeze-KDE-Style korrekt angezeigt.
Neu: Die Vorlage für neue Turniere kann jetzt direkt im „Neues Turnier starten“-Dialog gesetzt bzw. aktualisiert werden.
Bugfix: Durch An- und Abwählen der Option „Eingabe ohne Tischnummern“ konnte im Einzelspielermodus die Option „Tischnummer bzw. Paare automatisch auswählen“ eingeblendet werden, obwohl diese für Einzelspielerturniere überhaupt nicht verfügbar ist. Das ist jetzt behoben.