App Version 0.2 ist fertig!

Ich schicke gleich mal eine unschöne Nachricht voraus. Gestern Abend (Stand 25.02.2021) hatte ich den Entschluss gefasst, die App zu canceln! Ich weiss gar nicht wie viele schriftliche Dokumentationen in englisch und deutsch, wie viele schriftliche Tutorials und wie viele YouTube-Videos ich mir angeschaut habe und nichts davon hat geholten! Ich hatte einfach nie Erfolg mit den sch***s Tabs! Es wollte einfach nicht funktionieren!

Da ich versuche realistisch zu bleiben, war das für mich ein KO-Kriterium. Wenn ich so etwas banales wie ein TabLayout nicht in den Griff bekomme, dann sollte ich es wohl besser lassen, denn dann fehlt mir ja irgendwo das grundlegende Verständnis dafür. Also macht es keinen Sinn.

Glücklicherweise hat mich dann jemand davon überzeugt, die Sache doch nicht ruhen zu lassen. Mit dem Abstand von einigen Stunden und etwas freierem Kopf, gepaart mit der Tatsache, dass man ja doch an mich glaubt, habe ich es jetzt einfach noch einmal versucht.

Was soll ich euch sagen? Ich habe es tatsächlich auf die Reihe bekommen! Die Tabs funktionieren jetzt tatsächlich und nicht nur das! Beim Login werden auch automatisch die Freunde geladen, angezeigt und diese kann man tatsächlich auch schon aus der Freundesliste entfernen. Demnach habe ich alles implementiert, was ich für die Version 0.2 haben wollte!

Das bedeutet, auch wenn ich die nächsten Tage nicht viel Zeit zum programmieren haben werde, jetzt kommt das Layout für den Chat, die Übergabe des Chatpartners und ja, dann kommt der Part mir der Verschlüsselung. Der letzte Meilenstein!

Sobald ich diesen geknackt habe, kommt noch der Teil mit den Chats von unbekannten Teilnehmern und dann ist die Version 0.3 tatsächlich bereit für die Veröffentlichung!

Wahrscheinlich wird es aber so sein, dass man zu Beginn weder Bilder noch Emojis von der App aus verschicken können wird. Also wird es ähnlich sein, wie bei der Version 0.3 für den Desktop. Ich hoffe mal, ihr werdet das am Anfang verschmerzen können.

Das kann ich natürlich auch begründen. Das Konzept des Chats sieht ja vor, dass man keine Bilder irgendwo auf das Gerät speichert. In der Desktop-Version funktioniert das ja super. Ich habe allerdings nicht den Hauch einer Ahnung, wie ich das unter Android bewerkstelligen kann. Das wird sich dann also bis zur Version 0.4 hinziehen. Dafür denke ich aber, wird die App auch die Kamera einsetzen können, um Bilder zu verschicken. Hoffe ich zumindest mal, hab ich auch noch nie gemacht!

Okay. Soweit der Stand der Dinge. Es geht weiter!

App Version 0.2

Nein, ich bin noch nicht ganz fertig mit Version 0.2. Aber, ich will ein Lebenszeichen abgeben.

Im Moment stolpere ich ein bisschen über die GUI-Programmierung von Android. Das funktioniert irgendwie an manchen Stellen anders, als ich es gewohnt bin. Das heisst, ich habe zwar jetzt schon etwas geschaffen, was ich aber wieder wegwerfen kann. Gemeint sind die Freundeslisten. Also Freunde, Gruppen und Unbekannt. Nutzer der Desktop-Version wissen, was ich meine. Was ich da bisher zusammengebaut habe, funktioniert eben nicht und bevor ich anfange da jetzt zu flicken, bevor es überhaupt fertig ist, baue ich das lieber neu und richtig.

Wie ist denn aber jetzt der Stand der Dinge?

Nun, es geht weiter und weiter. Registrieren ist möglich, anmelden ist möglich (auch mit Accounts, die per Desktop erstellt wurden), man kann alle Teilnehmer anzeigen, nur die, die Online sind und aus den Listen dann Teilnehmer zu Freunde machen. Diese werden dann auch in der Freundesliste angezeigt.

Doch wie gesagt, hier gibt es eben die blöden Probleme. Aber, die werde ich in den Griff bekommen und danach geht es an den Chat. Sprich, Verschlüsselung.

Im Endeffekt heisst das, der wirklich grösste Schritt ist noch der, die Verschlüsselungen zu gewährleisten. Schliesslich soll man ja von Desktop zur App und zurück schreiben können. Ich hoffe(!), dass ich das bis zum Wochenende (Stand: 22.02.2021) in den Griff bekomme.

Es gibt aber noch einen Punkt, den ich berücksichtigen werden muss. Es wäre doch echter Murks, wenn jeder zwei Accounts haben müsste, um beide Varianten (Desktop und App) nutzen zu können. Das heisst, ich muss den privateKey transferieren können, ohne dass dieser offen irgendwo auf dem Server liegt. Pläne dafür habe ich schon, aber umsetzen muss ich diese noch.

Aber gut, weit von Version 0.3, welche wieder die erste veröffentlichte Version werden soll, sind wir nicht mehr. Ich bin guter Dinge!

App Version 0.1

Ich glaube es noch gar nicht! Gestern Abend habe ich tatsächlich mein erstes Ziel und damit Version 0.1 erreicht! Nein, die kann man sich noch nicht runterladen und vor Version 0.3, schätze ich mal, wird das auch nicht der Fall sein.

Die App kann aber schon einiges! Eigentlich wollte ich ja zuerst die Verschlüsselung implementieren, aber irgendwie hat das nicht wirklich Sinn gemacht. In der Desktop-Version war das ja noch simpel. Schlüsselpaar generieren, einen Text damit verschlüsseln und anschliessend wieder entschlüsseln. So hatte ich das eigentlich auch bei Android geplant.

Doch hier nun der Haken. Natürlich hätte ich es hier genauso machen können. Doch wer sagt denn, dass die Funktionen mit den Schlüsseln dann auf die gleiche Weise funktionieren, wie beim Desktop? Sprich, nur weil ich unter Android Schlüssel generiere und damit einen Text erst ver- und dann wieder entschlüsseln kann, muss es ja nicht auch mit den Schlüsseln funktionieren, die von der Desktop-Version kommen!

Um hier kein Risiko einzugehen, habe ich den Fahrplan eben etwas geändert.

Der aktuelle Stand ist, nach dem öffnen der App kommt man direkt zum Login. Hat man noch keinen Account, kann man sich registrieren. Optisch sieht das der Desktop-Version sehr ähnlich. Bei der Registrierung kann man sich die Nutzungsbedingungen anschauen und die Registrierung abschicken. Hat das geklappt, kommt man wieder zum Login, wo man sich auch wirklich schon einloggen kann! Auch mit Zugangsdaten, die man in der Desktop-Version angelegt hat! Das habe ich natürlich schon getestet.

Aber Vorsicht! Auch wenn man die Zugangsdaten der Desktop-Version nutzen kann, kann man damit so nicht wirklich arbeiten! Erinnert sich noch wer an die Datei privateKey.pem? Richtig, die fehlt in der App! Man könnte also gar keine eingehende Nachricht entschlüsseln. Da habe ich aber schon einen Plan, wie man seinen privaten Schlüssel sicher übertragen können wird!

Das heisst also, jetzt geht es an die Freundeslisten, den Abruf jener, die gerade Online sind und wer alles registriert ist. Freund hinzufügen kommt danach und dann geht es an den Chat, wo ich den letzten Knackpunkt in Angriff nehme. Die Verschlüsselung!

Es geht also wirklich zügig voran, wie ich feststellen muss. So wirklich wundert mich das aber nur in der Hinsicht, dass ich eigentlich von Java nicht wirklich Ahnung habe. Tatsächlich ist es aber C++ so ähnlich, dass der Lernaufwand relativ gering ist. Ausserdem gibt es wirklich super Tutorials für alles mögliche im Netz, was die Sache natürlich sehr erleichtert.

Von Vorteil ist natürlich, ich muss eigentlich nur die Funktionen, die ich in der Desktop-Version ja von Grund auf entwickeln musste, einfach nur nachbauen. Hier und da gibt es natürlich Unterschiede in der Entwicklung, die ich berücksichtigen muss, aber bislang gestaltet sich das als nicht besonders schwer. Hoffentlich bleibt es so!

Ja, man mag es kaum glauben. Aber ich sehe tatsächlich eine baldige Veröffentlichung der App bevorstehen!

WSC für Android

Ja ist das denn zu fassen? Erst erkläre ich vollmundig, dass ich ein kleines, soziales Netzwerk für die Wifesharing Community schreiben will. Dann über ein Jahr Stille!

Plötzlich geht es weiter. Auf einmal ist die Version 0.3 sogar öffentlich! Es werden Fehler und Vorschläge gemeldet und ein Update folgt dem nächsten bis Version 0.7! Es läuft unter Linux und Windows, man kann voll End zu End Verschlüsselt chatten, man kann einstellen, ob man einen Ton bei neuen Nachrichten hören möchte, Emoticons sind möglich und man kann Bilder verschicken! Alles, ohne dabei irgendwelche Spuren auf seinem eigenen System zu hinterlassen.

Die Sache hat nur einen Haken. Die Meisten heutzutage verwenden Smartphones, um zu kommunizieren! Software für den PC scheint fast schon etwas für Nerds.

Schon haben wir da den nächsten Haken. Ich hab von Java eigentlich keine Ahnung. Okay, es ist C++ nicht unähnlich, aber dennoch habe ich noch nie ernsthaft eine App für Android programmiert.

Und was jetzt?

Ganz einfach. Ich lerne! Das sogar erfreulich schnell! Anfangs hatte ich meine Probleme mit der IDE, denn weder war Qt-Creator kooperativ, noch Android-Studio. Ich bin aber hartnäckig und siehe da, auch wenn Android-Studio immer noch hier und da ein wenig zickt, läuft es jetzt.

Das heisst, ich habe mit der Entwicklung einer App für Android begonnen!

Aber damit noch nicht genug. Ich habe nicht nur mit einer App begonnen, sondern schon Meilensteine erreicht! So kann die App schon vollständig mit der Datenbank kommunizieren, gespeicherte Passwörter vergleichen und neue Passwörter hashen! Das sind dann zwei von drei Meilensteine, die für die Entwicklung zwingend erforderlich sind!

Jetzt fehlt noch Meilenstein Nummer drei. Da geht es um die Verschlüsselung. Das heisst, Schlüsselpaar generieren, neue Nachrichten mit dem privaten Schlüssel des Empfängers verschlüsseln und ankommende Nachrichten entschlüsseln. Sobald das geschafft ist, geht die Entwicklung der App so richtig los!

Das heisst, Teilnehmerlisten erstellen und den Chat bauen. Da auf einem Smartphone ohnehin alles in einem eigenen Bildschirm läuft, werde ich hier vorerst auf Gruppen und das Notizbuch verzichten. Wichtig ist mir erst einmal, die App auf den gleichen Stand zu bringen, wie die Desktop-Version.

Wenn das geschafft ist, so ist zumindest der Plan, werde ich neue Funktionen einbauen, bis schliesslich zusammen mit Gruppen und dem Notizblock alle Varianten die Version 1.0 erreichen. Ab dann ist die Zukunft offen.

Version 0.7 – Feinschliff und Bug

Viel neues gibt es nicht. Dieses Mal habe ich mein Augenmerk auf den Feinschliff und das entfernen von Bugs gelegt.

Leere Nachrichten

Es wurde zurecht bemängelt, dass leere Nachrichten verschickt werden können. Das kann im Eifer des Gefechtes schon vorkommen, dass man zu oft Enter drückt und schon wandert da eine leere Nachricht auf den Server.

Ein wirkliches Problem ist das zwar nicht, aber es kann schon für Verwirrung sorgen. Hat da das System vielleicht einen Fehler gemacht und deshalb wird die Nachricht nicht angezeigt? Kann der Client die Nachricht vielleicht nicht entschlüsseln?

Um das gar nicht erst aufkommen zu lassen, kann man nun eben keine leeren Nachrichten mehr abschicken. Problem gelöst.

Bilder senden

Da hat sich ein kleiner Fehler eingeschlichen. Eigentlich kein Fehler, sondern eine mangelhafte Programmierung. Ich habe versäumt, bei dem Dialog zum auswählen eines Bildes auf den Abbruch zu reagieren. Stattdessen hat das Programm munter das Bild verschickt, welches da gerade angewählt war, auch wenn man auf Abbruch gedrückt hat. Das ist nun behoben.

Ausserdem kann man nun Bilder einfach per Drag & Drop verschicken. Man muss also nicht mehr über den Dialog gehen, sondern kann aus seinem Dateimanager einfach ein Bild in den Chat ziehen und es wird verschickt.

Absturz nach Login

Da hat sich ein handfester Bug eingeschlichen. Wenn aus irgendeinem Grund ein Freund keiner ID zugeordnet werden konnte, ist der Client abgestürzt.

Wieder ist das Problem hausgemacht. Wieder habe ich nicht angemessen auf das Verhalten meiner Funktionen reagiert und einfach die ankommenden Werte durchgeschleift. Diesen Fehler habe ich nun korrigiert.

Layout

Das Layout hat sich etwas verändert. So ist der Button, um den Chat zu beenden, nun nach oben in den Titel gewandert. So ähnlich wie bei normalen Fenstern auch.

Der Grund dafür ist der Senden-Button. Ein kleiner Button Rechts neben der Chateingabe, mit dem man die Nachricht abschicken kann. Es ist nervig, wenn man ein Emoji eingefügt hat und erst wieder in die Nachricht klicken muss, um diese abschicken zu können. Jetzt kann man die Nachricht eben über den Button versenden.

Online-Status

In der Freundesliste wird nun neben dem Benutzernamen auch ein kleines Icon angezeigt, welches den Online-Status des Freundes anzeigt.

Version 0.6 – Jetzt mit Bildern!

Ach ja, wer hätte das für möglich gehalten? WSC ist Online und bekommt in der Version 0.6 jetzt Bilder und Emojis.

Ausserdem freut es mich sehr, dass auch schon Verkehr in der Community anzutreffen ist! Besonders lustig finde ich es aber, dass sich schon einige Frauen angemeldet haben und es noch nicht zu dem grossen Männerüberschuss gekommen ist, den ich zu Anfang befürchtet habe!

Wird die WSC doch keine Todgeburt?

Warum nicht Version 1.0?

Das bin ich jetzt tatsächlich schon ein paar Mal gefragt worden und gebe hier nun für Alle die Antwort:

Im Prinzip ist das Programm Beta-Software. Kinderkrankheiten, nicht ganz geschickte Lösungen für verschiedene Situationen usw. Ausserdem gibt es derzeit nur eine von drei Kernfunktionen. Den Chat. Das wo ich dachte, dass kommt erst ganz am Schluss.

Von daher. Wenn einmal alle Funktionen drin sind, also auch Gruppen und der Notizblock, hebe ich das Programm auf Version 1.0. Das ist das ganze Geheimnis dahinter.

Bilder

Bislang war der Chat reiner Text. Das lag besonders daran, ich hatte bislang nicht den Hauch einer Ahnung, wie ich die Übertragung von Bildern realisieren kann. Da ich mit dem Programm ja einen ganz eigenen Weg gehe, finden sich dafür im Netz auch keine wirklichen Lösungen und vor allem, da ich es ohne einen Browser mache, sind da einige Dinge selbst zu implementieren, die ein Browser mit HTML eben von Hause aus kann.

Nun sind die Bilder aber da!

Auch die Bilder verweilen nicht auf dem Server! Wird die Nachricht abgerufen, verschwinden auch das Bild sofort! Ich halte das, in Anbetracht des Hintergrund des Programms und damit verbundenen, freizügigen Bildern, für wünschenswert. Die Bilder sollen auch wirklich nur bei dem ankommen und angezeigt werden können, der sie auch wirklich sehen soll!

Hier zeigt sich dann aber ein Unterschied zu sonstigen Messengern. Die Bilder werden nicht im Chat angezeigt! Dort bekommt man lediglich einen Link, bei dessen anklicken man das Bild zu sehen bekommt. Das ist kein Bug, dass kann ich derzeit auch nicht ändern.

Hintergrund ist folgender. Die abgerufenen Bilder werden nicht gespeichert! Das heisst, sie werden während des Betriebes vom Server geladen, bleiben im Speicher und sobald man das Programm schliesst, sind sie weg! Um Bilder im Chat anzeigen zu können, müsste ich aber auf eine Datei zugreifen, was gegen das Konzept der Community verstösst, nach Möglichkeit keine Spuren zu hinterlassen.

Deshalb einmal ganz deutlich. Das keine Bilder im Chat angezeigt werden ist kein Bug, keine Unzulänglichkeit, es ist ein Feature!

Konfiguration

Es ist nun möglich, über Datei->Konfiguration Einstellungen vorzunehmen. Derzeit sind es ganze zwei Optionen!

  1. Soundbenachrichtigung
  2. Registrierung in Blog anzeigen

Soundbenachrichtigung

Hier wird man sich schon fast denken können, um was es geht. Will man, dass bei eingehenden Nachrichten ein Sound abgespielt wird? Dann aktiviert man diese Option. Wenn nicht, kann man sie hier ausschalten und es ist Ruhe. Per Default ist es deaktiviert.

Registrierung in Blog anzeigen

Diese Option ist etwas geheimnisvoller. Dahinter steckt die Möglichkeit, seinen Benutzernamen im Blog anzeigen zu lassen. Rechts, unter den Buttons, erscheint die Anzahl aller registrierten Benutzer und die Namen derer, die ihren Namen dort angezeigt sehen wollen.

Der Grund dafür ist simpel. Hat man sich nicht registriert, sieht man auch nicht, wer alles in der Community registriert ist. Durch diese Option will ich neugierigen einen Anreiz geben, sich anzumelden.

Dabei sei gleich gesagt, es wird einzig der Benutzername angezeigt! Keine E-Mail, keine IP, gar nichts!

Per Default ist diese Option deaktiviert. Wer die Community dadurch unterstützen will, der muss diese Option also selbst anwählen und speichern!

Emojis

Wer kennt sie nicht? Ach ja, Emojis sind eigentlich aus der Kommunikation nicht mehr wegzudenken. Deshalb mussten die natürlich auch in die Community.

Anfangs war ich schon ein bisschen besorgt. Wie implementiert man so etwas? Jedes Mal die Nachrichten durchsuchen und dann eine bestimmte Kombination ersetzen? Bei dieser gewaltigen Menge an Möglichkeiten?

Dabei geht es ja viel einfacher! Die kleinen Dinger sind schon in der Schrift drin, Unicode sei dank. Es war also kein wirkliches Problem, sie einzubauen! Natürlich gibt es noch viel mehr, die werden wohl auch nach und nach dazukommen, doch für den Moment reicht es hoffentlich.

Mit der Darstellung unter Linux bin ich aber noch nicht so wirklich zufrieden. Da werde ich eine andere Schriftart suchen müssen, die schönere Emojis drinnen hat. Unter Windows sieht das deutlich besser aus. Aber, für den Anfang sollte es in Ordnung sein, hoffe ich zumindest.

Version 0.4 (Release)

Ganz ehrlich? Ich habe oft selbst daran gezweifelt, ob ich jemals auch nur eine einzige, lauffähige Version der Community veröffentlichen werden. Jetzt ist es dann tatsächlich passiert!

01.02.2021 00:00 Uhr

Mit Version 0.4 ist nun wirklich und wahrhaftig die erste Version der Community Online und kann im Downloadbereich für Linux und Windows heruntergeladen werden!

Was kann Version 0.4?

Nichts! Na ja, nichts ist falsch! Aber, im Vergleich zu dem vorläufig angestrebten Funktionsumfang funktioniert wirklich so gut wie nichts.

  • Man kann sich registrieren
  • Man kann sich einloggen
  • Man kann sich anzeigen lassen, wer online ist
  • Man kann sich anzeigen lassen, wer alles registriert ist
  • Man kann eine Person, oder mehrere, aus diesen Listen zum Freund machen
  • Man kann dieser Person eine persönliche Nachricht schicken
  • Man kann mit einer unbekannten Person chatten, wenn diese einen anschreibt
  • Man kann diese Person zum Freund machen
  • Man kann einen Freund entfernen

Das war es auch schon!

Ausserdem gehe ich davon aus, dass sich da noch viele Fehler finden werden. Da sind nun die Nutzer gefragt. Im Downloadbereich befindet sich auch ein Issue-Tracker. Wer also einen Fehler gefunden hat, ein Problem, wer eine Anregung machen, oder einfach nur ein Feedback loswerden will, der kann das dort gerne tun und ich werde mich der Sache annehmen!

Was ich aber von mir aus sagen möchte, ich habe einen für mich sehr wichtigen Teil erfüllt! Die privaten Nachrichten sind End-End Verschlüsselt mit 4096 Bit RSA! Es kommt also nie(!) Klartext auf den Server. Zudem werden die Nachrichten, sobald sie abgeholt wurden, wieder gelöscht.

In dem Zusammenhang muss ich erwähnen, nach der Registrierung hat man die Datei privatKey.pem im WifsharingCommunity-Ordner. Passt gut auf diese Datei auf, denn ohne die werdet ihr nie wieder dazu in der Lage sein, die eingehenden Nachrichten zu entschlüsseln! Die Datei ist sehr wichtig und kann NICHT wiederhergestellt werden!

Wie geht es weiter?

Nun, hier kommt ihr ins Spiel! So ein Programm zu entwickeln und dann auch noch auf mehreren Systemen anzubieten, kostet Zeit! Der nächste, logische Schritt wäre ein Port auf Android.

Ich programmiere wirklich sehr gerne, sonst hätte ich die ganze Nummer sicherlich nicht angefangen. Aber ein System, was keine Nutzer hat, da will ich meine Energie nicht für einsetzen!

Von daher. Ihr könnt da etwas für die Community machen. Schaut doch mal, wie viele Leute ihr davon überzeugen könnte! Je mehr Personen angemeldet sind und je höher die Akzeptanz ist, desto lieber investiere ich Zeit hinein! Soll daraus also wirklich mal ein kleines, soziales Netzwerk werden, dann brauche ich eure Hilfe! Zeigt mal, ob ihr jemand dafür gewinnen könnt!

Ich bin auf jeden Fall mal sehr gespannt, wie sich das hier entwickeln wird!

WSC macht Fortschritte!

Das ist nur ein kleines Update, um den Stand der Dinge zu klären.

Zum Einen, ich habe ein paar Änderungen vorgenommen. Sollte ursprünglich noch pqxx für die Verbindung zur Datenbank eingesetzt werden, was unter Windows zu Schwierigkeiten geführt hat, übernimmt nun Qt direkt dieser Arbeit. Das muss jetzt im Code noch umgebaut werden, aber dann geht es zu den Tests auf Windows. Mal die Daumen drücken!

Einen produktiven Fortschritt gibt es jedoch bei der Verschlüsselung. Da habe ich einiges ausprobiert, aber vieles kam mir einfach zu kompliziert vor.

Nun bin ich bei OpenSSL gelandet und das funktioniert hervorragend! Schlüsselgenerierung, Verschlüsselung und Entschlüsselung, alles läuft! Das kann also jetzt für das Programm verwendet werden. Das compilieren unter Windows wurde auch getestet und funktioniert einwandfrei!

Desweiteren habe ich entschieden, keine privaten Nachrichten und Mediendateien auf dem Server zu behalten. Soll heissen, wenn eine Nachricht abgeschickt wird, kommt sie auf den Server. Hat dann der Empfänger die Nachricht abgerufen, wird sie im Anschluss wieder vom Server gelöscht.

Diese Vorgehensweise hat ein paar Vorteile. Der Wichtigste dürfte natürlich sein, sollte irgendwie mal jemand unerlaubt auf die Datenbank zugreifen können, kann er bestenfalls noch ungelesene Nachrichten abgreifen. Diese dann aber verschlüsselt und soweit ich informiert bin, ist RSA mit 4096 Bit im Moment noch nicht so einfach zu knacken. Ausserdem reduziert sich auf die Art die Datenmenge in der Datenbank und sorgt hoffentlich für gut Performance, auch wenn die Nutzerzahl steigt.

Man wird aber die Möglichkeit haben, auf dem heimischen Gerät den Chatverlauf zu speichern. Natürlich verschlüsselt. Wer das nicht will, der kann es ausschalten und wann auch immer er den Chat beendet, kann er nicht mehr auf den Verlauf zugreifen.

Schlussendlich werde ich im Moment den privaten Chat priorisieren. Das war eigentlich überhaupt nicht mein Plan, aber ich gehe davon aus, dass damit am schnellsten das Interesse für dieses kleine Netzwerk zu wecken ist.

Version 0.4

Ja, es geht wirklich immer weiter!

Mit Version 0.4 ist nun die erste nutzbare Version fertig. Alle grundlegende Funktionen sind enthalten und funktionieren!

Im Hauptfenster ist die Dokumenten-Liste hinzugekommen. Hier handelt es sich wieder um eine Baum-Liste, da ich mir noch nicht sicher bin, ob ich vielleicht irgendwann die Möglichkeit einbauen möchte, alle referenzierten Dokumente im Baum anzeigen zu lassen. So weite bin ich aber noch nicht, steht also in den Sternen!

Es sind auch zwei neue Punkte in der Menüleiste hinzugekommen. Dokument und Hilfe.

Unter Hilfe finden sich zwei Einträge. Mittels Handbuch kann man sich das PDF des Handbuchs anzeigen lassen. Ich habe mich dafür entschieden, den vom System vorgegebene Betrachter zu wählen. Es ist also nicht möglich, in dU-DA selbst einen Betrachter auszuwählen! Auch habe ich mich gegen den Einbau eines eigenen PDF-Betrachters entschieden. Qt bietet zwar ein paar Möglichkeiten, doch leider war das alles nicht so schnell zu realisieren, wie ich mir das erhofft hatte.

Ich selbst verwende Atril zum betrachten von PDFs. Das dürfte aber Geschmackssache sein.

Hat man da Worte? Mit dem Menüpunkt Über erscheint ein kleines Fenster und zeigt die aktuelle Versionsnummer an. Ich bin erschüttert! Darüber hinaus, wenn man in der Kommandozeile

duda --version

eingibt, bekommt man ebenfalls die Versionsnummer angezeigt.

Dokument

Spannender ist natürlich der Menüpunkt Dokument.

Man kann ein Dokument anlegen, bearbeiten und löschen.

Löschen sollte selbsterklärend sein. Es erscheint eine Sicherheitsabfrage, danach wird das Dokument vollständig aus der Datenbank entfernt.

Anlegen und bearbeiten wird über das Dokument-Fenster abgewickelt. Legt man ein neues Dokument an, so sind alle Felder leer, die Daten stehen auf 01.01.2021 und hinter ID steht “Wird zugewiesen!“. Die Datenbank vergibt die ID für neue Dokumente, weshalb hier nichts eingegeben werden kann.

Wird ein Dokument editiert, erscheinen hier die zuvor eingegebenen Daten mit Ausnahme der PDF-Datei. Bleibt dieses Feld beim ändern leer, wird auch an der PDF-Datei in der Datenbank nichts verändert. Wird hier ein neues PDF angegeben, wird jenes in der Datenbank dadurch ersetzt!

Bei Referenz kann man die ID eines anderen Dokuments einfügen, auf welches sich dieses Dokument bezieht. Hier muss eine Auswahlmöglichkeit her! So gefällt mir das noch nicht.

Nach dem speichern wird das neue Dokument mit neuer ID angelegt, oder ein bestehendes Dokument aktualisiert.

Dokument-Liste

Derzeit führt ein Doppelklick auf ein gespeichertes Dokument dazu, dass die entsprechende PDF aus der Datenbank geladen und gespeichert wird, um sie anschliessend mit dem vom System vorgegebenen Betrachter anzuzeigen.

Hier, genau wie bei der Archiv-Liste, muss die Möglichkeit zur Sortierung eingefügt werden!

Version 0.5

In dieser Version habe ich vor, sämtliche bei der Nutzung auftretende Unzulänglichkeiten zu beseitigen. Neue Funktionen werden keine eingebaut, es geht einzig darum, die Schwächen, welche bei der Entwicklung wenig auffallen, aufzuspüren und zu beseitigen. Dafür eignet sich meiner Meinung nach der laufende Betrieb am besten!