Seite 8 von 10

Re: Graphische Oberfläche

Verfasst: Sa Apr 07, 2012 10:35 pm
von Bebu
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.

Re: Graphische Oberfläche

Verfasst: Sa Apr 07, 2012 10:51 pm
von nufan
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.

Re: Graphische Oberfläche

Verfasst: Sa Apr 07, 2012 11:14 pm
von Bebu
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 ;)

Re: Graphische Oberfläche

Verfasst: Sa Apr 07, 2012 11:28 pm
von nufan
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 :)

Re: Graphische Oberfläche

Verfasst: Sa Apr 07, 2012 11:52 pm
von Bebu
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.

Re: Graphische Oberfläche

Verfasst: Mo Apr 09, 2012 11:41 pm
von Bebu
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

Re: Graphische Oberfläche

Verfasst: Di Apr 10, 2012 12:32 am
von nufan
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 ^^

Re: Graphische Oberfläche

Verfasst: Di Apr 10, 2012 8:02 am
von Bebu
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.

Re: Graphische Oberfläche

Verfasst: So Apr 15, 2012 4:22 pm
von Bebu
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

Re: Graphische Oberfläche

Verfasst: Mo Apr 16, 2012 7:31 pm
von oenone
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?