Но в стену бить головой - занятье не хуже других
А иначе, зачем дана мне моя голова
Собрал и выложил
LAMB 0.1.8 на sf.net
- gark87@linux-rrve:~/lamb/lamb-0.1.8-src> egrep "\[OK\]$" ./exam/results
fonts[OK][OK][OK]
simple-qfont-demo[OK][OK][OK]
picture[WRONG][WRONG][OK]
gridview[WRONG][OK][OK]
wizard[WRONG][OK][OK]
prodcons[OK][OK][OK]
hello[OK][OK][OK]
biff[OK][OK][OK]
layout[WRONG][OK][OK]
qfd[WRONG][OK][OK]
tictac[WRONG][OK][OK]
richtext[WRONG][OK][OK]
sound[WRONG][OK][OK]
server[WRONG][OK][OK]
client[OK][OK][OK]
httpd[WRONG][OK][OK]
simple_dd[OK][OK][OK]
dclock[WRONG][WRONG][OK]
helpviewer[WRONG][WRONG][OK]
bigtable[OK][OK][OK]
statistics[WRONG][OK][OK]
outliner[OK][OK][OK]
tagreader[OK][OK][OK]
tagreader-with-features[OK][OK][OK]
regexptester[OK][OK][OK]
toggleaction[OK][OK][OK]
process[OK][OK][OK]
toplevel[OK][OK][OK]
cursor[WRONG][OK][OK]
box[WRONG][WRONG][OK]
gear[OK][OK][OK]
overlay[WRONG][OK][OK]
sharedbox[WRONG][WRONG][OK]
texture[WRONG][WRONG][OK]
scrollview[WRONG][WRONG][OK]
qtl[OK][OK][OK]
drawlines[WRONG][OK][OK]
popup[WRONG][WRONG][OK]
checklists[OK][OK][OK]
blob[WRONG][WRONG][OK]
subclass4[WRONG][WRONG][OK]
table4[WRONG][WRONG][OK]
update[WRONG][WRONG][OK]
table1[WRONG][WRONG][OK]
order2[WRONG][WRONG][OK]
table2[WRONG][WRONG][OK]
create_connections[WRONG][WRONG][OK]
insert[WRONG][WRONG][OK]
subclass2[WRONG][WRONG][OK]
insert2[WRONG][WRONG][OK]
delete[WRONG][WRONG][OK]
order1[WRONG][WRONG][OK]
basicdatamanip[WRONG][WRONG][OK]
subclass5[WRONG][WRONG][OK]
basicbrowsing[WRONG][WRONG][OK]
basicbrowsing2[WRONG][WRONG][OK]
retrieve1[WRONG][WRONG][OK]
extract[WRONG][WRONG][OK]
custom1[WRONG][WRONG][OK]
subclass3[WRONG][WRONG][OK]
subclass1[WRONG][WRONG][OK]
form2[WRONG][WRONG][OK]
connect1[WRONG][WRONG][OK]
table3[WRONG][WRONG][OK]
navigating[WRONG][WRONG][OK]
form1[WRONG][WRONG][OK]
retrieve2[WRONG][WRONG][OK]
sqltable[WRONG][WRONG][OK]
rangecontrols[OK][OK][OK]
application[WRONG][OK][OK]
итого:
"чистый" qt3to4 = 22/130
qt3to4++ (qt3to4 + using namespace Qt;) = 38/130
LAMB = 70/130
C одной стороны LAMB явно перевалил через половину собирающихся проектов из $qt3dir/doc/example. С другой - это не качественное продвижение, а количественное, ибо прирост произошел только внутри QtSql и QtOpenGL.
- Без наложения патча на Qt-шные заголовочные файлы изменения ChangeReturnType и ChangeValueType работать не будут, так что без патча результат будет на порядок хуже.
- В q3porting.xml есть такие строчки:
Qt::red
Qt::red
Хотя в Qt3 эти поля были типа QColor, а в Qt4 стали просто enum Qt::GlobalColor. "Тролли" специально для этого завели конструктор
QColor::QColor ( Qt::GlobalColor color )
Что, конечно, не спасает от ситуаций
dummy.fill( Qt::red.rgb() );
Поэтому в qt-function.lamb есть строчки:
ChangeValueType QColor, Qt::GlobalColor red QColor(Qt::red)
Попытка отредактировать q3porting.xml следущим образом:
QColor(Qt::red)
Qt::red
не принесла нужного эффекта - почему не работает у qt3to4 выяснять лениво, хотя можно было бы посмотреть их сорсы для выяснения причин.
- ChangeLog
Feature Requests:
[2717288] (qt3to4) qt-function.lamb improvements
Bugs:
[2709034] (LAMB config) sed_args and object
[2702645] (LAMB config) ChangeFunc & DeleteFunc
[2695421] (LAMB config) types could be pointers
[2697018] (LAMB config) ChangeValue instead of RenameValue
[2690394] (qt3to4) generate LAMB config without redefine issues
[2703694] (Perl script) functions_parameters_change and methods
[2699997] (Gcc Core) handling namespaces
[2672503] (Gcc Core) virtual headers error
[2696929] (Gcc Core) ChangeFunc and methods