toobars

Борьба со статусбаром

Как я уже писал, мне удалось заставить кнопки с картинками быть практически того же размера, что и картинка на них (что не совсем так — всё же приходится добавлять 1 пиксел, иначе картинка обрезается снизу). Но в связи с этим возникла другая проблема — статусбар становится уже на два пикселя выше положенного (до этого был на один, соответственно). Если же ограничить высоту статусбара тем же способом, которым удалось уменьшить размеры кнопки, то кнопка начинает залезать на shadow сверху статусбара, что не есть хорошо.
Кроме того, сюда же можно отнести проблемы с отрисовкой resize grip — если у текущей стабильной версии посмотреть на него, то над ним отсутствует полоска shadow, свойственная всему остальному статусбару.
Про получающуюся в итоге порнографию с двумя полосками shadow, одна из которых принадлежит статусбару, а вторая — списку контактов, я вообще молчу.
Казалось бы — да убери ты эту тень! Нафиг она тебе сдалась! Но тут есть одно «но» — это свойство доступно только для чтения и как изменить его я пока не нашёл.
В общем, на текущий момент я работаю над тем, чтобы полностью отказаться от использования такого виджета, как statusbar в пользу обычного hbox’а с resize grip на нужном месте. Чит, конечно, костыль, но ничего более разумного в голову пока не пришло. Зато пришло понимания, что statusbar обладает откровенно недостаточным набором свойств, а имеющийся функционал реализован местами криво.

Теги: ,

Среда, 03 фев 2010 Linux Ваш отзыв

Ура!

Только что мне удалось заставить кнопку-переключатель быть размером с картинку, размещённую внутри, а не на пару пикселей больше (как это есть по-умолчанию).

Теперь ничто не мешает отказаться от отдельных пустых кнопок смены статуса в пользу кнопок, совмещённых с эмблемами протоколов.

Осталось ответить на последний вопрос: а оно нужно? 🙂

Теги: ,

Понедельник, 01 фев 2010 Linux Ваш отзыв

Работы над плагином TooBars продолжаются

Мне и самому изначально было интересно сделать отображение статуса в виде картинки, да ниасилил с наскока. А тут ещё один иностранный товарищ то же запросил… В общем, решил я ещё немного с ним поковыряться.
И уже написал код, который выводит соответствующие значки. Задумка — объединить на одном значке иконку протокола с иконкой статуса, как это сделано в Carrier’е.
А вот далее — стопяцоттрёхсотый подход к попытке наложить значок поверх кнопки, да так, чтобы кнопка эта не увеличивалась в размерах, и, как следствие, не тянула за собой и статусную строку. Пример — gedit. Там в статусной строке есть пара контроллов похожих, только там это не совсем кнопки…
Заодно уже пофиксил пару потенциальных ошибок, следствием которых (наверное :)) являлись утечки памяти.
А также баг один нашёл — при возникновении ошибки в протоколе с последующим обрывом соединения этот протокол оставался висеть в статусной строке со старым статусом, т.к. возникающее при ошибке событие не обрабатывалось.

Теги: ,

Среда, 27 янв 2010 Linux Ваш отзыв

Последний в этом году релиз

По сообщению одного иностранного товарища, в предыдущей версии имелась ошибка, которая у меня не проявлялась, но в некоторых условиях не позволявшая активировать кнопку «Добавить контакт» после загрузки учётных записей.
В итоге дважды переписал соответствующую функцию и теперь, вроде бы, всё работает 🙂
Заодно добавил контекстные меню при клике на панели инструментов и на кнопке смены статуса учётной записи.

Теги:

Понедельник, 28 дек 2009 Linux Ваш отзыв

Релиз TooBars 1.2

Рад сообщить, что 1.2! 🙂

http://vayurik.ru/wordpress/toobars

Теги: ,

Пятница, 18 дек 2009 Linux Ваш отзыв

Бугага!!!

Нашёл! Как ни странно, дело было не в моих кривых ручонках, в ручёнках того, кто писал этот самый pidgin_status_box_new_with_account.
На эту мысль меня навел тот факт, что во-первых, никаких unref’ов я там и близко не использую, однако ругается именно unref, во-вторых, при попытке установить свойство в TRUE (каковое значение и установлено по умолчанию) всё замечательно работало, проблема возникала исключительно при попытке установить его в FALSE.
Ну да ладно. Немного жаль потерянные 4 дня, что я потратил на выяснение этого.
В плюсе же — в очередной раз убедился, что верить нельзя никому, а также обнаружение и попутное устранение сегфолта при попытке добавить пользователя, если нет ни одного подключённого аккаунта (именно подключённого, а не активного).
В общем, нет худа без добра.

Теги:

Четверг, 17 дек 2009 Linux Ваш отзыв

Эта музыка бууудет вееечной

Как выяснилось, то, что я так радостно нашёл днём — нихрена не оно и долбанная «g_object_unref: assertion `G_IS_OBJECT (object)’ failed» так и сыпет при первой попытке сделать g_object_set (TB->AccountStatusBox_sbox, «iconsel», FALSE, NULL) при условии, что TB->AccountStatusBox_sbox это pidgin_status_box_new_with_account (account).
При этом в плагине MyStatusBox никаких таких ошибок нет. Правда, его разработчики не знают, что этот плагин можно заставить вызвать сегфолт, а я с ним уже поборолся. Возможно, следствием этого и является текущая жопа, но от этого не легче. Странный выбор для разработчика — или такая ошибка, или такая. При этом создаётся впечатление, что третьего и не дано.
Упарило уже. Как-то неприлично много внимания к какой-то сраной, копеечной проблеме. Неадекватно много. Бедные программисты, вынужденные в ЭТОМ программить постоянно. Соболезную.

Теги:

Четверг, 17 дек 2009 Linux Ваш отзыв

Совместимость в Pidgin 2.6.4

Сегодня прилетело обновление Pidgin до версии 2.6.4. Плагин стабильно работает, будто смены версии и не произошло.
Я рад.
Одним потенциальным гиморром меньше 🙂

Теги:

Среда, 16 дек 2009 Linux Ваш отзыв

Нашёл!

Нашёл, откуда оно всё лезло!
Странно всё это…
Вспоминаю свои потуги несколько лет назад ковырнуть Delphi с добрым чувством. Как же там всё просто, логично и удобно. И как здесь всё…
А, не важно. Мне на этом чуде не программировать каждый день, а плагин дописать уже до того состояния, который я сам себе определил в самом начале работ 🙂

Ну, если ещё чего не вылезет, то сегодня-завтра релиз, ага 🙂

Теги:

Среда, 16 дек 2009 Linux Ваш отзыв

Не выходит цветочек каменный

Казалось бы — ну ругается плагин «g_object_unref: assertion ‘G_IS_OBJECT (object)’ failed«, фигня, щя найдём строчку, в которой оно возникает, починим!
Ага! А вот хрен там!
Уже который день ковыряю, не могу найти причину. Т.е. причину нашёл, только от этого не легче.
Хоть убей не понимаю, что делают эти самые g_object_ref’ы и g_object_unref’ы! Уж и так пытался понять, и эдак… Пока мне кажется, что эти сущности избыточны, вследствие чего я и не могу понять их назначения и необходимости их использования 🙁

Надо, кстати, на форуме Убунтовском спросить, может кто-то популярно сможет объяснить…

Теги:

Среда, 16 дек 2009 Linux Ваш отзыв

Поддержите меня!

Если вы хотите отблагодарить меня, можете закинуть денег мне на хостинг.
Делается это просто: в любом терминале ищем провайдера "Masterhost" и указываем лицевой счёт c123759 (обычно без первой буквы).

А я уж постараюсь и дальше стараться! :D

Яндекс.Деньги

41001543226857