LINUX.ORG.RU
ФорумTalks

[быдлокод]K3b

 


0

0

Недавно KRoN73 рассказывал о проблемах длинных имен при использовании joliet - есть две возможности: либо вырубить joliet, либо автоматом укоротить файл; а хочется либо вручную переименовать либо отменить запись вообще.

Посмотрел я в сырцы k3b. Вобщем неплохой сюжет для детской страшилки и активной аргументации против ООП. Ну во-первых заявленный функционал невозможно реализовать либо без переделывания кода либо без костылей.
Ибо: процесс записи делится на набор работ (наследники K3bJob), функционал взаимодействия с пользователем сводится к questionYesNo (окно с текстовой информацией и выбором двух вариантов) и waitForMedia (ожидания девайса) (в комментарии указано, что работы не должны создавать свои виджеты). При этом эти методы являются виртуальными в K3bJobHandler (вызовы этих методов в K3bJob делегируются туда) и переопределяются в наследниках (ну да, окошко "да-нет" можно рисовать по-разному, в зависимости от фазы луны; короче говоря дублирование кода еще то).

К цвяточкам можно отнести массовое использование слотов сигналов Qt для работ (они не вызываются, а emit'ятся) и странной для меня конструкции (может я не прав, просветите):

private:
class Private;
Private* d;

с последующим созданием вложенного класса с набором открытых полей для всех данных.

PS местный feedback завален виагрой и XSS, а поискать по кедеешной багзилле нельзя - "k3b" меньше чем минимальное допустимое количество символов в ключевых словах поиска =))

> private:
> class Private;
> Private* d;

> с последующим созданием вложенного класса с набором открытых полей для всех данных.

это обёртка для поддержки совместимости ABI между версиями. для Qt как таковой это смысл наверное имеет, а вот для конечного приложения коим AFAIU является k3b - зачем?

// wbr

klalafuda ★☆☆
()

> странной для меня конструкции

Pimpl idiom, похоже. Непонятно, правда, почему класс вложенный.

tailgunner ★★★★★
()
Ответ на: комментарий от klalafuda

>а вот для конечного приложения коим AFAIU является k3b

я еще глубже копнул: там оказывается вынесена отдельно libk3b. осталось понять кому она нужна...

generatorglukoff ★★
() автор топика

Ok. Сделай альтернативу которая будет лучше. Мы тебе спасибо скажем. Я даже денег заплачу, обещаю.

PS Никогда не знал проблем с K3b.

cPunk ★★
()
Ответ на: комментарий от generatorglukoff

>я еще глубже копнул: там оказывается вынесена отдельно libk3b. осталось понять кому она нужна...

Вполне себе правильная концепция. А то делают монолиты вроде mplayer'ов...

blaster999 ★★
()
Ответ на: комментарий от cPunk

>Ok. Сделай альтернативу которая будет лучше. Мы тебе спасибо скажем. Я даже денег заплачу, обещаю.

предлагаешь бодаться с программой, пробывшей более 4 лет в разработке из-за одной фичи? нет, пусть уж у других голова болит

>Никогда не знал проблем с K3b.

не могу не согласится

generatorglukoff ★★
() автор топика
Ответ на: комментарий от generatorglukoff

> для тонкого гуя над cdrecord/growisofs?

ну может быть они ставили себе целью в том числе нарисовать нативный врапер в стиле, принятом в библиотеках KDE. толстый он получился или тонкий - это уже дело десятое. вполне кстати понимаемое желание.

// wbr

klalafuda ★☆☆
()

> К цвяточкам можно отнести массовое использование слотов сигналов Qt для работ (они не вызываются, а emit'ятся)

А это чем плохо?

VoofT
()
Ответ на: комментарий от blaster999

а libavcodec, libavformat, libfaad, libass и прочие это по твоему не библиотеки?
давно ты чекал svn?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.