Graphische Oberfläche

Proggen.org - Lernprojekt: Duplikatefinder
Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Graphische Oberfläche

Beitrag von Bebu » Sa Apr 07, 2012 10:35 pm

Sieht schon recht hübsch aus. Wir sollten uns mal gemeinsam Gedanken über die Nachrichtenschleife machen. Der Kernel spuckt ja einiges an Meldungen aus. Ich habe mir überlegt, das es vielleicht sinnvoll wäre einige Konstanten zu definieren, die mit in den Stream geschrieben werden, damit man die Meldungen priorisieren kann, um z. B. Fehlermeldungen von Statusmeldungen trennen zu können. Bin für Vorschläge offen. Eine Fortschrittsanzeige ist noch ein Problem, dazu muss man die gesamte Datenmenge vorher erfassen, die bereits verarbeiteten Daten abziehen und aus der Geschwindigkeit die verbleibende Zeit zu berechnen. Eine Interessante Herausforderung, aber steht jetzt nicht unbedingt hoch oben auf der Prioritätenliste.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Graphische Oberfläche

Beitrag von nufan » Sa Apr 07, 2012 10:51 pm

Bebu hat geschrieben:Sieht schon recht hübsch aus. Wir sollten uns mal gemeinsam Gedanken über die Nachrichtenschleife machen. Der Kernel spuckt ja einiges an Meldungen aus. Ich habe mir überlegt, das es vielleicht sinnvoll wäre einige Konstanten zu definieren, die mit in den Stream geschrieben werden, damit man die Meldungen priorisieren kann, um z. B. Fehlermeldungen von Statusmeldungen trennen zu können.
Hm... ja, da müssen wir etwas kreativ werden. Vor allem, wenn wir uns im Hinblick auf Internationalisierung alle Türen offen halten wollen. Das Qt-GUI ist momentan sogar auf dynamische Übersetzung ausgelegt. Das heißt es kann im laufenden Programm die Sprache geändert werden und die Oberfläche aktualisiert sich automatisch.

Was mir im Moment aber wichtiger ist: Was soll die Oberfläche machen? Ich hab noch keinen wirklichen Plan wie die Oberfläche genau aussehen soll, was die einzelnen Buttons/Menüpunkte machen, Tabellen beinhalten und vom Benutzer eingegeben wird. Ein kleine Skizze wäre praktisch. Einfach mit einem UI-Designer eine Oberfläche basteln und diese ausführlich beschreiben.

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Graphische Oberfläche

Beitrag von Bebu » Sa Apr 07, 2012 11:14 pm

Gut, dafür sollten wir etwas Zeit bieten. Ich versuche mich mal mit WxSmith, aber ich kämpfe noch. Einen guten Ansatzpunkt, was deine Oberfläche können muss, findest du, wenn du dir die dedupe --help mal ansiehst und mal ein bisschen damit spielst. Ist natürlich noch nicht vollständig, aber das ist ein Programm irgendwie nie ;)
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Graphische Oberfläche

Beitrag von nufan » Sa Apr 07, 2012 11:28 pm

Bebu hat geschrieben:Gut, dafür sollten wir etwas Zeit bieten. Ich versuche mich mal mit WxSmith, aber ich kämpfe noch.
Von mir aus kannst du auch ein Malprogramm nehmen oder mit der Hand zeichnen ^^
Bebu hat geschrieben:Einen guten Ansatzpunkt, was deine Oberfläche können muss, findest du, wenn du dir die dedupe --help mal ansiehst und mal ein bisschen damit spielst. Ist natürlich noch nicht vollständig, aber das ist ein Programm irgendwie nie ;)

Code: Alles auswählen

$ ./dedupe --help
Program Options:

General Options:
  -h [ --help ]                Show the help text
  -V [ --version ]             Show program version
  -v [ --verbose ]             Enable verbose mode(NOT IMPLEMENTED)
  -s [ --supress-dbs-update ]  Disable automatic update of database on 
                               programstart

Operation Options:
  -a [ --add ] arg                   Add a file to the watched ones
  -l [ --list ]                      List all files that are stored in the 
                                     database
  -d [ --delete ] arg                Delete a file from the watched ones
  -f [ --find-duplicates ]           Find duplicates and start userinterface
  -u [ --manually-update-database ]  Update the database manually
  -r [ --recursive ]                 Enable recursive
Sieht doch schon ganz gut aus :)
Was ich noch ändern würde:
* "arg" steht doch sicher für mehrere Parameter, also sollte es "args" heißen
* "delete" klingt mir zu sehr nach "von der Festplatte löschen"... wie wäre es add/remove nach track/untrack umzubenennen?
* Das "manually" in "manually-update-database" ist irgendwie unnötig. Eigentlich würde auch nur "update" reichen.
* Genauso könnte "supress-dbs-update" doch einfach "no-update" heißen.
Das sind eigentlich Kleinigkeiten, wollte es aber mal anmerken :)

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Graphische Oberfläche

Beitrag von Bebu » Sa Apr 07, 2012 11:52 pm

dani93 hat geschrieben: Sieht doch schon ganz gut aus :)
Was ich noch ändern würde:
* "arg" steht doch sicher für mehrere Parameter, also sollte es "args" heißen
* "delete" klingt mir zu sehr nach "von der Festplatte löschen"... wie wäre es add/remove nach track/untrack umzubenennen?
* Das "manually" in "manually-update-database" ist irgendwie unnötig. Eigentlich würde auch nur "update" reichen.
* Genauso könnte "supress-dbs-update" doch einfach "no-update" heißen.
Das sind eigentlich Kleinigkeiten, wollte es aber mal anmerken :)
Deine Vorschläge sind alle gut. Lediglich das mit dem arg lässt sich nicht ändern. Das wird von Boost Program_options generiert und kommt zu allen Parametern hinzu, die eine Eingabe erwarten. Der Rest lässt sich in ca. 5 Minuten ändern.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Graphische Oberfläche

Beitrag von Bebu » Mo Apr 09, 2012 11:41 pm

So, ich habe mal einen GUI-Entwurf gemacht. Ich bin allerdings noch nicht ganz zufrieden. Ordner müssen sich auch rekursiv hinzufügen lassen, das könnte man aber über einen Dialog lösen. Das Registerblätter am oberen Rand sind Absicht, es soll noch eine zweite Seite für zusätzliche Funktionen geben (überwachte Ordner). Ich bitte um Meinungen dazu.
Dedupe.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Graphische Oberfläche

Beitrag von nufan » Di Apr 10, 2012 12:32 am

Den Entwurf finde ich ganz in Ordnung, aber mir fehlt noch etwas die Feature-Beschreibung dazu :)
Im Idealfall machst du eine Liste mit allen Widgets und was sie machen.

Beispiel:
Button "Add Track": Zeigt einen Dialog zum Auswählen von mehreren Dateien und Ordnern an. Die Verzeichnisse und Ordner werden in die Liste links eingefügt. Danach wird jeder Pfad an die Kernel-Methode Kernel::addFile( path ) bzw. addDirectory( path, recursive ) übergeben. "recursive" ist abhängig von der Checkbox "Recursive".
Für die weitere Verwaltung von Duplikaten siehe: Liste "Duplicates".
Für das Löschen von Tracks siehe: Button "Delete Track".

Das Beispiel ist jetzt frei erfunden, aber so hab ich mir das erhofft ^^

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Graphische Oberfläche

Beitrag von Bebu » Di Apr 10, 2012 8:02 am

Und ich habe es auch nicht vergessen. Es war nur gestern abend schon recht spät, insofern hatte ich keine Lust mehr. Aber ich liefere es dann noch nach. Ich hatte eh schon wieder eine Idee für eine Erweiterung der Oberfläche. Ich versuche es die Tage hinzubekommen.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Graphische Oberfläche

Beitrag von Bebu » So Apr 15, 2012 4:22 pm

So, ich habe mal den ersten Teil geschafft. Ich hoffe es ist dir so recht. Teil Zwei liefere ich später mal nach, da kann ich dann auch schon Vorschläge einbauen ;)
Files-dedupe.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
oenone
Beiträge: 223
Registriert: Do Sep 01, 2011 2:42 pm
Wohnort: Bremen
Kontaktdaten:

Re: Graphische Oberfläche

Beitrag von oenone » Mo Apr 16, 2012 7:31 pm

Bin zwar bei diesem Dedupe-Projekt nicht ganz im Bilde, aber bei Dateisystemen, die es unterstützen, könnte man die Duplikate ja auch durch einen Hardlink ersetzen.. Ist sowas auch geplant?

Antworten