Graphische Oberfläche

Proggen.org - Lernprojekt: Duplikatefinder
Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Graphische Oberfläche

Beitrag von Xin » Fr Sep 17, 2010 3:36 pm

NCurses geht ab Montag weiter.

Gibt's Aktuelles von der GUI?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Graphische Oberfläche

Beitrag von fat-lobyte » Fr Sep 17, 2010 7:00 pm

wxWidgets war doch angesagt, oder?

Dazu eine Frage:
welches wxWidgets wollen wir denn verwenden? wxWidgets 2.8 oder 3.0 (aka 2.9)?

Das ist nämlich nicht ganz egal, denn in wxWidgets 3.0 (das noch nicht released ist) und 2.9 (die derzeitige mehr oder minder Stabile version) gibt es einige Unterschiede zur vorgängerversion, und zwar:
  • Vereinfachung der wxStrings
  • Vereinfachung der Unicode behandlung
  • Keine getrennten Unicode/Non-Unicode builds mehr
  • Diverse andere Änderungen
  • Aufgeräumterer Code
  • Hübschere Doku (Doxygen statt Tool Marke Eigenbau)
Dagegen spricht, dass es derzeit auf den Distributionen noch fast nicht verbreitet ist, die Installation und das Deployment also aufwändiger sind.
Dafür spricht, wie ich finde, dass man bei neuen Programmen nicht auf alte Bibliotheken setzen sollte, weil man alte Bibliotheken schwer loswird. Bis dedupe quasi "Production Quality" erreicht hat, wirds wahrscheinlich noch ein weilchen dauern, und bis dahin sollte auch das Problem mit der geringen verbreitung gelöst sein.
Haters gonna hate, potatoes gonna potate.

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 » Fr Sep 17, 2010 9:16 pm

Gibt es denn schon so was wie einen geplanten Releasetermin für WX 3.0?
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Graphische Oberfläche

Beitrag von fat-lobyte » Fr Sep 17, 2010 10:36 pm

Bebu hat geschrieben:Gibt es denn schon so was wie einen geplanten Releasetermin für WX 3.0?
Den gabs mal... Ich glaube der War so um 2008 rum :-)
Mittlerweile haben sie aber schon aufgehört Releasetermine zu nennen. Ich glaube man könnte wx2.9 trotzdem als stabil genug bezeichnen.
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Graphische Oberfläche

Beitrag von Xin » Mo Sep 20, 2010 10:13 am

Dann sollten wir uns wohl mal wx2.9 ansehen, die wx2.8 wird dann wohl irgendwann nicht mehr supported und wir müssten eh umsteigen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

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

Re: Graphische Oberfläche

Beitrag von nufan » So Jul 24, 2011 3:05 am

Dann werde ich mich hier auch mal aktiv einschalten ^^
Ich hab jetzt damit begonnen eine Qt-Oberfläche zu schreiben. Habs sogar geschafft sie mit CMake zu kompilieren ^^ Zurzeit kann sie ziemlich gleich viel wie die NCurses-Oberfläche :D
Nur verwirrt mich die Ordnerstruktur innerhalb von Dedupe ein wenig. Wie legt man einen Branch an? Wird der Code einfach aus dem Trunk kopiert und an der benötigten Stelle eingefügt? Von git bin ich da anderes gewohnt... Weiters linke ich noch nicht zu den anderen Bibliotheken (dedupe-hash und dedupe-filesearch).
Eine kurze Erklärung wäre hilfreich :)

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Graphische Oberfläche

Beitrag von fat-lobyte » So Jul 24, 2011 11:45 am

dani93 hat geschrieben:Dann werde ich mich hier auch mal aktiv einschalten ^^
Juhu, ein weiterer Entwickler! :-) Gleich mal erste Frage, entwickelst du unter Windows auch?
Ich hab jetzt damit begonnen eine Qt-Oberfläche zu schreiben. Habs sogar geschafft sie mit CMake zu kompilieren ^^
Gratuliere! Ich hoffe du kannst dein Zeug bald einpflegen und bist nicht allzu böse wenn ich da nochmal drüberkucke.
Nur verwirrt mich die Ordnerstruktur innerhalb von Dedupe ein wenig. Wie legt man einen Branch an? Wird der Code einfach aus dem Trunk kopiert und an der benötigten Stelle eingefügt? Von git bin ich da anderes gewohnt...
Ja... SVN ist da etwas seltsam. Da gibts sowas wie "Branch" oder "Tag" nicht. Die Branch und Tag - Befehle machen eigentlich schlicht und einfach eine Kopie. Dabei merkt sich das Repository irgendwie die Abstammung der Dateien, sodass auch Merges funktionieren.
Die Ordnerstruktur ist "Standard"-SVN, also:
/trunk - Hauptentwicklungszweig (entspricht "master" in Git)
/branches/meinbranch
/branches/deinbranch
/tags/1.0
tags/2.0

Entwickeln entweder im Trunk oder auf einem Branch.
Allerdings möchte ich dazusagen, dass ich es nur dann notwendig halte in einem Branch zu entwickeln, wenn dadurch am Rest des Codes etwas kaputtgehen kann. Wenn der neue Code in seinem eigenen Ordner lebt, niemand anderes drauf zugreift und es anderen Code nicht beeinträchtigt würde ich durchaus im Trunk entwickeln. Das spart Verwirrungen.
Check deinen Code einfach mal ein, füge ihn aber noch nicht zum "all" target hinzu. (entweder mit EXCLUDE_FROM_ALL, oder am besten noch gar kein add_subdirectory).
Weiters linke ich noch nicht zu den anderen Bibliotheken (dedupe-hash und dedupe-filesearch).
Eine kurze Erklärung wäre hilfreich :)
Also die anderen Bibliotheken werden zurzeit zur dedupe-kernel zusammengelinkt (das hab ich einfach mal so entschieden, Diskussion gibts hier: http://www.proggen.org/forum/viewtopic.php?f=66&t=4564).
Also für dich heißt das einfach, dass du zu dem Target das die main() enthält einfach dedupe-kernel dazulinkst:

Code: Alles auswählen

target_link_libraries(dedupe-qt dedupe-kernel ${DEINE_QT_BIBLIOTHEKEN}
mfg, fat-lobyte
Haters gonna hate, potatoes gonna potate.

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

Re: Graphische Oberfläche

Beitrag von nufan » So Jul 24, 2011 12:39 pm

fat-lobyte hat geschrieben:
dani93 hat geschrieben:Dann werde ich mich hier auch mal aktiv einschalten ^^
Juhu, ein weiterer Entwickler! :-) Gleich mal erste Frage, entwickelst du unter Windows auch?
Bis jetzt nicht, müsste die ganzen Bibliotheken und CMake installieren.
fat-lobyte hat geschrieben:Ich hoffe du kannst dein Zeug bald einpflegen und bist nicht allzu böse wenn ich da nochmal drüberkucke.
Hehe ganz bestimmt nicht :)
fat-lobyte hat geschrieben:Entwickeln entweder im Trunk oder auf einem Branch.
Allerdings möchte ich dazusagen, dass ich es nur dann notwendig halte in einem Branch zu entwickeln, wenn dadurch am Rest des Codes etwas kaputtgehen kann. Wenn der neue Code in seinem eigenen Ordner lebt, niemand anderes drauf zugreift und es anderen Code nicht beeinträchtigt würde ich durchaus im Trunk entwickeln. Das spart Verwirrungen.
Check deinen Code einfach mal ein, füge ihn aber noch nicht zum "all" target hinzu. (entweder mit EXCLUDE_FROM_ALL, oder am besten noch gar kein add_subdirectory).
Ich hab mich mal ganz frech im trunk eingenistet :P Meine Oberfläche macht zurzeit bestimmt nichts kaputt, ich hab den Ordner auch noch nicht zu CMake hinzugefügt. Beim include verwende ich deshalb auch noch "../../interface.h". Aber innerhalb des ./userinterface/qt/-Verzeichnisses sollte es kompilierbar sein (qt-sdk natürlich vorausgestzt).
fat-lobyte hat geschrieben:Also die anderen Bibliotheken werden zurzeit zur dedupe-kernel zusammengelinkt (das hab ich einfach mal so entschieden, Diskussion gibts hier: http://www.proggen.org/forum/viewtopic.php?f=66&t=4564).
Also für dich heißt das einfach, dass du zu dem Target das die main() enthält einfach dedupe-kernel dazulinkst:

Code: Alles auswählen

target_link_libraries(dedupe-qt dedupe-kernel ${DEINE_QT_BIBLIOTHEKEN}
Ok, das hab ich jetzt mal sein lassen, da der Ordner ja noch nicht Teil des CMake-Projekts ist.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Graphische Oberfläche

Beitrag von fat-lobyte » So Jul 24, 2011 3:34 pm

dani93 hat geschrieben:Bis jetzt nicht, müsste die ganzen Bibliotheken und CMake installieren.
Ja, das ist viel Arbeit :-( Ich frage deshalb, weil ich für ein bisschen Diversität im Projekt sorgen will. Zurzeit siehts so aus, als ob wir nur Linuxer hätten, einen Windoofen und einen Mac., der allerdings eher auf Linux programmiert.

Zum Rest: ich würd dein Teilprojekt gerne in den Build einbauen, aber da hab ich noch ein paar fragen:
1) Ist es dir Recht wenn wir "dedupeqt" in "dedupe-qt" umbenennen würden? Das würde nämlich in unser bestehendes Benennungsschema passen.
2) Willst du deine Oberfläche weiterhin ohne den "Rest" von dedupe kompilieren können? Dann lass ich nämlich die Abhängigkeit von dedupe-kernel noch weg, oder find irgendeine if- verschachtelung dass es nicht benötigt wird.
3) Soll dedupe-qt optional sein? Ist es in Ordnung wenn man es erst noch mit einem Schalter einschalten muss? Oder willst du es gleich im ALL-Target enthalten haben?
Haters gonna hate, potatoes gonna potate.

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

Re: Graphische Oberfläche

Beitrag von nufan » So Jul 24, 2011 3:45 pm

fat-lobyte hat geschrieben:1) Ist es dir Recht wenn wir "dedupeqt" in "dedupe-qt" umbenennen würden? Das würde nämlich in unser bestehendes Benennungsschema passen.
Ja, ist mir sogar sehr recht. Anfangs hab ich sogar diesen Namen verwendet, aber ich hab mit CMake Probleme gehabt und wollte jede mögliche Quelle ausschließen. Und weil ich mir nicht sicher war, ob '-' im Namen verwendet werden darf, habe ich es zusammen geschrieben.
fat-lobyte hat geschrieben:2) Willst du deine Oberfläche weiterhin ohne den "Rest" von dedupe kompilieren können? Dann lass ich nämlich die Abhängigkeit von dedupe-kernel noch weg, oder find irgendeine if- verschachtelung dass es nicht benötigt wird.
Ich kann Dedupe als ganzes noch nicht kompilieren, da meine Boost-Bibliotheken veraltet sind. Aber das muss ich sowieso irgendwann ändern, also kannst du das gleich dazu linken.
fat-lobyte hat geschrieben:3) Soll dedupe-qt optional sein? Ist es in Ordnung wenn man es erst noch mit einem Schalter einschalten muss? Oder willst du es gleich im ALL-Target enthalten haben?
Das ist mir ziemlich egal, für später wäre es praktisch die Oberfläche über einen CMake-Flag (-DQTGUI=ON oder so iwie) auswählen zu können. Mir ist aber beides recht.

Antworten