GUI - part 2
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Komande unutar GUI-ja
Dakle, posmatrajmo našu dragu aplikaciju kao skup komandi i
parameterProvider-a.
Komanda je svaka akcija koja može da se izvrši na šemi ili elementu (zavisno
da li pričamo o uređivaču biblioteka ili šema). ParameterProvider je svaka
komponenta GUI-ja koja nam može dati neku vrstu parametra za komandu. Recimo
kanvas na kome crtamo šemu može da nam vrati koordinate, pin, element crteža
itd. Stablo povezivanja komponenti može da nam vrati komponentu ili čvor.
Parameter provider emituje signal svaki put kada obezbedi parametar.
Komanda može da primi nula ili više parametara. Kada komanda postane aktivna,
svi signali koji bi mogli da obezbede njen parameter se prosležuju njoj. Tako
dobijamo onaj AutoCAD-ovski način razmišljanja gde nam je svejedno u kom
pogledu klikćemo da bi obezbedili parametar za započetu komandu, a takođe
potpuno ravnopravno mođemo to da ukucamo i u konzolu (da, ovako dobijamo i
otvorena vrata da se kasnije u vidu plugin-a uvede i skript jezik).
Odavde imamo da aplikacija sadrži pointer na trenutno aktivnu komandu
(milioniti put ovo kucam, bolje mi je bilo da sam seo i našo taj fuc*ing bug
u kmail-u zbog koga me on mrzi) i jedan preusmeravač signala kome se pri
kreiranju prijave svi parameterProvider-i sa svojim tipovima. Nadam se da ne
izmišljam toplu vodu, Toplice javi da li je ova organizacija košer za Qt.
Takođe, odavde, prvi koncept plugin-a, samo se pri prijavljivanju predstavi,
da li je komanda ili parameter provider, ako je komanda, biće smeštena gde
treba (meniji, toolbar-ovi, nešto lično...) a ako je parameter provider samo
će se prijaviti sa svojim tipovima (i, jelte, biti prikazan).
GUI-oelibedit
Za početak potrebno nam je samo par stvari. A to su sledećih 42:
PartSelector - ovde se bira biblioteka i deo iz nje. U mojoj kućnoj varijanti
na koju nikako da pošaljem patch to su po jedan QLineEdit za unos pretrage uz
odgovarajuću QListBox za rezultate pretrage. Prva za biblioteku i druga za
deo. Ovo treba da bude mnogo lepše i naprednije, ali za početak vrši poso.
Ovo ide u jedan jezičak ToolBox-a
PartProperties - ovo se deli na opšte osobine, PinProperties i one prateće
PhysicalData (footprint itd.) i ModelData (podaci za simulaciju). Ovo treba
da bude, što Toplica reče kao u Qt-designeru, ali ovaj put ne onaj toolBox
već one tabele sa osobinama widget-a.
DrawTool - ovo može u ToolBox. Osnovne komande da mu budu pin, linija, luk,
elipsa, tekst i mnogougao.
ModifyTool - erase, i ne znam šta još.
Prikaz - iliti kanvas nam.
Pitanje - kako se standardno radi undo. Ja sam za to da pamtimo početno
stanje i listu svih komandi koje su izvršene (sa parametrima), pa da samo
skraćujemo listu. Gledah DP za ovo, ali ne videh.
Ovo je sve moj predlog, kažite kako vam se dopada.
Pozdrav, Pedja
P.S. Izvinjavam se za sinoćnu glupost sa kodovanjem, kombinacija kmail-gvim
nije baš uvek inteligentna ):
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFAaKYfcc62YaN4N70RAmARAJ9oPQknIYKqZoodRw+RdoPi7nzv8QCghPQo
WXBG3MlIKE+i3Ql9v1XcNpI=
=iHWN
-----END PGP SIGNATURE-----
Hash: SHA1
Komande unutar GUI-ja
Dakle, posmatrajmo našu dragu aplikaciju kao skup komandi i
parameterProvider-a.
Komanda je svaka akcija koja može da se izvrši na šemi ili elementu (zavisno
da li pričamo o uređivaču biblioteka ili šema). ParameterProvider je svaka
komponenta GUI-ja koja nam može dati neku vrstu parametra za komandu. Recimo
kanvas na kome crtamo šemu može da nam vrati koordinate, pin, element crteža
itd. Stablo povezivanja komponenti može da nam vrati komponentu ili čvor.
Parameter provider emituje signal svaki put kada obezbedi parametar.
Komanda može da primi nula ili više parametara. Kada komanda postane aktivna,
svi signali koji bi mogli da obezbede njen parameter se prosležuju njoj. Tako
dobijamo onaj AutoCAD-ovski način razmišljanja gde nam je svejedno u kom
pogledu klikćemo da bi obezbedili parametar za započetu komandu, a takođe
potpuno ravnopravno mođemo to da ukucamo i u konzolu (da, ovako dobijamo i
otvorena vrata da se kasnije u vidu plugin-a uvede i skript jezik).
Odavde imamo da aplikacija sadrži pointer na trenutno aktivnu komandu
(milioniti put ovo kucam, bolje mi je bilo da sam seo i našo taj fuc*ing bug
u kmail-u zbog koga me on mrzi) i jedan preusmeravač signala kome se pri
kreiranju prijave svi parameterProvider-i sa svojim tipovima. Nadam se da ne
izmišljam toplu vodu, Toplice javi da li je ova organizacija košer za Qt.
Takođe, odavde, prvi koncept plugin-a, samo se pri prijavljivanju predstavi,
da li je komanda ili parameter provider, ako je komanda, biće smeštena gde
treba (meniji, toolbar-ovi, nešto lično...) a ako je parameter provider samo
će se prijaviti sa svojim tipovima (i, jelte, biti prikazan).
GUI-oelibedit
Za početak potrebno nam je samo par stvari. A to su sledećih 42:
PartSelector - ovde se bira biblioteka i deo iz nje. U mojoj kućnoj varijanti
na koju nikako da pošaljem patch to su po jedan QLineEdit za unos pretrage uz
odgovarajuću QListBox za rezultate pretrage. Prva za biblioteku i druga za
deo. Ovo treba da bude mnogo lepše i naprednije, ali za početak vrši poso.
Ovo ide u jedan jezičak ToolBox-a
PartProperties - ovo se deli na opšte osobine, PinProperties i one prateće
PhysicalData (footprint itd.) i ModelData (podaci za simulaciju). Ovo treba
da bude, što Toplica reče kao u Qt-designeru, ali ovaj put ne onaj toolBox
već one tabele sa osobinama widget-a.
DrawTool - ovo može u ToolBox. Osnovne komande da mu budu pin, linija, luk,
elipsa, tekst i mnogougao.
ModifyTool - erase, i ne znam šta još.
Prikaz - iliti kanvas nam.
Pitanje - kako se standardno radi undo. Ja sam za to da pamtimo početno
stanje i listu svih komandi koje su izvršene (sa parametrima), pa da samo
skraćujemo listu. Gledah DP za ovo, ali ne videh.
Ovo je sve moj predlog, kažite kako vam se dopada.
Pozdrav, Pedja
P.S. Izvinjavam se za sinoćnu glupost sa kodovanjem, kombinacija kmail-gvim
nije baš uvek inteligentna ):
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFAaKYfcc62YaN4N70RAmARAJ9oPQknIYKqZoodRw+RdoPi7nzv8QCghPQo
WXBG3MlIKE+i3Ql9v1XcNpI=
=iHWN
-----END PGP SIGNATURE-----
- Follow-Ups:
- RE: GUI - part 2
- From: "Gvozden Marinkovic" <gvozden@titan.etf.bg.ac.yu>
- RE: GUI - part 2
Previous by date: Beleske na temu gui-ja
Next by date: RE: GUI - part 2
Previous by thread: Beleske na temu gui-ja Next by thread: RE: GUI - part 2
Previous by thread: Beleske na temu gui-ja Next by thread: RE: GUI - part 2