Bard 0.1.3

Jul. 30th, 2010 01:08 am
psilogic: (Default)
[personal profile] psilogic
Долгими зимними вечерами продолжаю ваять "Bard". Готова очередная бета: версия 0.1.3.

Учтены многие пожелания и нарекания френдов. Те, что еще не учтены, можете не повторять, у меня все записано и распланировано до версии 0.2. Но, если найдете новые баги - очень хорошо.

Эта версия - серьезный шаг, поскольку полностью переработано "ядро" - хранение промежуточных редактируемых данных. Переработка позволила сделать операции Undo/Redo практически мгновенными, понаделать легко и просто "preview" - но ценой отказа от немедленного save после каждой операции. Как следствие, autosave и autobackup убраны, теперь работа с файлом выглядит совершенно "стандартно": можно закрыть без сохранения и т.п.

Внешний вид переработан в угоду эстетам - теперь окно основного редактора выглядит так.

На очереди две большие проблемы. Первая - приручение Wine. Вторая - возможность работать с плагинами VST (нашел документацию, буду делать). Пожелайте мне удачи - наступает трудный лично для меня этап: мне всегда было проще и приятнее писать своё, чем разбираться в чужих интерфейсах и прикручивать их.

Что касается испытаний для Wine, то пока все плохо. Первая попытка поставить убунту провалилась - инсталлятор линукса сначала показал 731% прогресса исполнения, а потом заявил, что отсутствует root file system или что-то в этом роде и предложил исправить дело в "partitioning menu", которое вызвать никак нельзя. На этом все и зависло. Я воспользовался инсталлятором убунты поверх винды (wubi.exe) и сказал ставить ее на свободный диск F. Там NTFS, подозреваю, что проблема в этом - хотя я надеялся, что инсталляшка по крайней мере сформатирует тот диск. Ан нет. Интересно, FAT32 ее устроит?

- Полный список изменений на странице загрузки
- Прямая ссылка для скачивания инсталлятора (11 Мб)
- Список возможностей редактора

Date: 2010-08-04 07:54 pm (UTC)
From: [identity profile] psilogic.livejournal.com
2- а вторая часть связана с "фенечками" которые бывают нужны относительно редко. для них слишком накладно иметь отдельные "эвенты" которые каждый раз гонять по цепочке.

поэтому делаются эдакие "аддоны". у каждого окна есть некий "разъем", куда попадают сообщения. к этому "разъему" можно подключить 1 или несколько "аддонов", которые будут слушать собщения этого окна и добавлять функциональность, вызывая "редкие" виртуальные функции, но только для этого окна

пример.

"аддон" GPipka :)) реализует любые "кнопкоподобные" элементы окон, начиная от обычной кнопки и кончая закладками в таббаре, кнопками тулбара и прочая и прочая. GPipka конструируется окном с "кнопкоподобными" элементами и начинает слать особые "пипочные" сообщения:

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

- и собственно главному окну стается минимум функционала: сказать, где у него "кнопкоподобное", не "задисаблено" ли оно - ну и отреагировать на нажатие

Date: 2010-08-04 07:59 pm (UTC)
From: [personal profile] no1u1w1w6c
так это, по моему, и есть сигналослоты, только немножко наизнанку вывернуте, не?

Date: 2010-08-04 08:06 pm (UTC)
From: [identity profile] psilogic.livejournal.com
imho совсем из другой оперы. это ты как если бы в Qt обработчик сигнала конструировал из нескольких стандартных разноуровневых модулей, которые реализуют куски поведения. скажем, часто бывает надо нажать мышой и куда-то потянуть - вот чтобы каждый раз не писать код, который слушает мышку, реагирует на нажатие, реагирует на отпускание, отслеживает изменение, корректно все завершает - пишется 1 раз "аддон" GMouseDragger, которые потом присобачивается к окну и генерирует уже выокоуровневые сообщения типа: "мышь начала тянуть"/"мышь тянет"/"мышь закончила". А поверх этого может быть другой аддон, который на этих сообщениях реализует, скажем, drag-drop

Date: 2010-08-04 08:13 pm (UTC)
From: [personal profile] no1u1w1w6c
а, да, до меня потом дошло.

кстати, в Qt так тоже можно, тащемта.

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

Date: 2010-08-04 08:25 pm (UTC)
From: [identity profile] psilogic.livejournal.com
опять же иногда удобно слот указать как параметр, а обычный сишный синтаксис со всякими .* и ->* он какой-то слишком громоздкий для этого

Date: 2010-08-04 08:37 pm (UTC)
From: [personal profile] no1u1w1w6c
сишный синтаксис вообще ублюдочен. а сипипишный — втройне или даже больше. кто ж знал, что эта бешеная макроассемблерная херня всех перекусает?

Date: 2010-08-04 08:54 pm (UTC)
From: [identity profile] psilogic.livejournal.com
бггг *LOL*

ушел спать :))
Page generated Aug. 16th, 2025 06:56 am
Powered by Dreamwidth Studios