( tr3w | 2008. 04. 11., p – 19:27 )

Kicsit jobban belenéztem...

qtdict.cpp:

Eleve ezek a "QList<QPair<QString,QList<..." dolgok nagyon nem szépek. Az a minimum, hogy szép typedef-eket kapjanak (WordList, DictList, akármi, a különböző szinteknek külön), legalább magadat sem szivatnád, ha egy ilyen változót kell deklarálni.
El lehetne gondolkozni rajta nem lenne-e szebb egy új típust bevezetni, mert valójában egy fát implementáltál.
Valami ilyesmire gondolok:
http://doc.trolltech.com/4.3/itemviews-simpletreemodel.html
(A model/view megközelítésen is lehet gondolkozni, de az elég nagy meló, bár később megtérülhet.)

A foreach jó dolog, de így ahogy te használod feleslegesen lassú.
Minden iterációban lemásolja a változót, igaz elvileg a Qt-ben sokminden implicit shared, de egyrészt nem minden, másrészt még így is minek másolni ha nem muszáj? Használj const ref-et, vagy mutatót.
Gondolom azért nem ezt tetted, mert csúnya volt a típus... Na erre van a typedef.

Az utils.h tele van ronda dolgokkal.
Typedef-ek hiánya miatt fél év mulva sokat fogsz gondolkozni rajta, mi a franc is történik ezekben a fv-ekben...
(Hidd el, velem már megtörtént... Igaz én tuple-t használtam az még rosszabb mint a pair. :) )
Szerintem átgondoltabb tervezéssel megszabadulhatnál ezektől a konverziós fv-ektől.

Mi ez a rengeteg include az utils elején? Miért nem ott include-olod, ahol használni is fogod őket?

dictionaries.cpp:
htmlToLatin, latinToHex csak a cab ban használatos, miért van az ősosztályban?
Ha úgy érzed kellhet még, csinálhatnál saját QTextCodec-et:
http://doc.trolltech.com/4.3/qtextcodec.html#creating-your-own-codec-cl…

A htmlList feltöltése... Hmmm... Sajátos. :)
Szintaktikai cukor lenne (egy teljesen felesleges copy constructor hívással), ha nem lenne az első dolgod vele, hogy átkonvertáld...

GUI:
Sokat ront a használhatóságon, hogy a második oszlopban a szó különböző fordításai egy-egy mezőben vannak, így nem lehet egyesével vágólapra másolni őket. Mindenképp külön mező kéne.

További ötletek:
- Esetleg egy szóra duplán kattintva elindulhatna egy új keresés. Ez hasznos mikor az ember rokonértelmű szavak között keresi a legmegfelelőbbet.
- Drag and Drop keresés, illetve az eredmény.
- Model/View megközelítés. Ez első körben sok meló, de később esetleg megéri.

Kb ennyi. Remélem nem vettem el a kedved. :)

"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o