Сейчас при создании виджета часть его атрибутов приходит сразу в команде new, а часть в последующих командах set. При этом список "избранных атрибутов" жёстко фиксирован. Я предлагаю: убрать ограничения в команде new на вид присутствующих там атрибутов. То есть вместо того чтобы информацию по виджету передавать в десяти командах, передавать её в одной. Например, можно было бы сразу задать текст в метке (атрибут text). В результате: 1. Сократится объём трафика между alterator-browser и alterator. 2. Сам протокол станет проще и понятнее. 3. Упростится код самого browser-qt. В том числе проще будет отлаживать. А то сейчас ошибочное размещение очередного нового атрибута не в том классе приводит к сложно-улавливаемой ошибке. 4. упростится и станет более понятным другим код alterator. Данное изменение обладает обратной совместимостью, поэтому browser-qt будет работать (если это ему вдруг потребуется) как с новым, так и со старым alterator'ом. (инструкция set всё-равно останется).
Это лучше не делать до бранчевания. А вообще, я за
(В ответ на комментарий №0) > 2. Сам протокол станет проще и понятнее. Не факт. Все равно остануться атрибуты, которые будут работать только в пределах того запроса, в котором делали new. > 3. Упростится код самого browser-qt. Не, вряд ли. Но, гибче немного станет.
(В ответ на комментарий №2) > (В ответ на комментарий №0) > > 2. Сам протокол станет проще и понятнее. > Не факт. Все равно остануться атрибуты, которые будут работать только в > пределах того запроса, в котором делали new. Да, но это будет уже тайное знание браузера не интересное его клиентам ;) > > > 3. Упростится код самого browser-qt. > Не, вряд ли. Но, гибче немного станет. Ну как минимум можно будет убрать перекладывания атрибутов из одного хеша в другой, так как сейчас делается для onNewResponse ;) P.S. Я бы не обращал внимание на бранчевания ибо не понятно насколько оно затянется. Как вариант можно сделать сейчас в отдельном бранче git-а и оттестировать.
http://git.altlinux.org/people/zerg/packages/?p=alterator-browser-qt.git;a=commitdiff;h=c8790ed4363990d15c82303dacd4fd8ff3df6f12
Я переделал, посмотри. Должно работать и в текущем виде и потом
alterator-browser-qt-2.12.0-alt1