Дальнейшее развитие TooBars

Вот уже который день всё своё свободное время уделяю дальнейшему допиливанию этого плагина.
Что сделано (из глобального) или делается:

  1. Найдены и исправлены некоторые ошибки, которые не влияли на работу плагина, но засоряли отладочную консоль.
  2. Предпринята очередная попытка исключить не_высвобождение памяти после выключения плагина (хотя давеча заметил, что некоторые плагины после выключения даже не прекращают работу! ;)) — результат ещё не проверял.
  3. Добавлена возможность отключать в интерфейсе меню… Спорный шаг. Ведь, логично предположить, что следом нужно аналогичным образом поступать и в окне беседы… Ну, да это будет отдельная песня. Столкнулся с проблемой, что простое заимствование кода из плагина blistops не прокатит — у меня иная структура контакт-листа, и на решение возникшей проблемы ушло 3 дня. Делать переключение отображения меню кнопкой на панели инструментов, как это предлагал Konrad, в меру ряда факторов не хотелось. Хочется, чтобы и при наведении мышки меню появлялось, и по нажатию F10… На текущий момент пытаюсь придумать, как убирать меню при потере фокуса окном списка контактов. Пока не получается 🙁

Что планируется:

  1. Контекстное меню на пустом месте списка контактов, в котором можно было бы настроить внешний вид списка и получить доступ к некоторым настройкам клиента.

Теги: , , ,

Вторник, 06 апр 2010 Linux

комментариев 8 на Дальнейшее развитие TooBars

  1. Здаров. Спасибо за плагин, глунул исходники — молодец.
    С сам недавно писал плагин https://launchpad.net/fchat Он проще твоего и никому не нужный (это просто было желание доделать начатое ещё в молодости до конца).
    Теперь по делу несколько советов.

    #include «internal.h»

    #include «glib.h»
    #include «gtkblist.h»
    #include «gtkaccount.h»
    #include «gtkstatusbox.h»
    #include «gtkplugin.h»
    #include «gtkpluginpref.h»
    #include «gtkprefs.h»
    #include «gtkutils.h»
    #include «pidginstock.h»
    #include «version.h»
    #include «debug.h»
    Замени на
    #include
    #include

    Директиву IS_DEBUGGING можешь убрать. Все модули пишут вообще всё в дебаг так что не сцы.

    У тебя там чатсо используется типа char а какбы желательно использовать gchar из glib. Разницы никакой но есть.

    У тебя в названиях функций используется camel caps например CreateToolBox. Вместо этого нужно писать всё маленькими разделяя слова нижним_подчёркиванием.
    Camel caps нужно использовать для обьявления типов.
    Ну например из твоего же плагина:
    PidginBuddyList *gtkblist = PIDGIN_BLIST (purple_get_blist ());

    При инициализации плагина у тебя есть такой код:
    #ifdef ENABLE_NLS
    bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR);
    bind_textdomain_codeset(GETTEXT_PACKAGE, «UTF-8»);
    #endif

    Я могу ошибаться но вроде как этот код в модулях делать не нужно — это делается в самом пиджене.

    У тебя тут структура объявлена:
    struct _TooBars_interface
    {
    GtkToolItem *AddBuddy_btn;

    GtkWidget *ShowStatusbar_item;
    } TooBars_interface;

    Карочи опять боюсь ошиьится но так тоже не желательно. Типа принцип такой: все структуры объявлять через typedef (потому что это тип).

    typedef struct
    {
    GtkToolItem *AddBuddy_btn;

    GtkWidget *ShowStatusbar_item;
    } TooBars_interface;

    В PurplePluginInfo info, похоже тебе нужно убрать префикс PURPLE
    PURPLE_PLUGIN_MAGIC,
    PURPLE_MAJOR_VERSION,
    PURPLE_MINOR_VERSION,
    Хотя это всё годно только в случае если твой плагин станадртный (а это не так).

    Закинь исходники на https://launchpad.net/ как я со своим проетком сделал. Ты получишь: хостинг проекта с системой контроля версий (Базар). И там есть PPA — короче хрень в которую ты закидываешь исходники а она сама их компилит и делает дебиановские пакеты под все архитектуры. Потом все убунтовцы смогут из твоего PPA обновлятся — очень удобно.

    Вообщем я сейчас попробую на PPA закинуть.

    З.Ы. Сделай возможность комментировтаь без регистрации 🙂

  2. stokito on 08 апр 2010
  3. УУУуууу сколько всего!!!
    Спасибо, чуть позже почитаю и отвечу.
    Я ж не программист особо, так что любым советам рад 🙂

  4. VaYurik on 09 апр 2010
  5. парсер лох
    Замени на
    #include
    #include

  6. stokito on 08 апр 2010
  7. 1. Про инклуды — так и не понял 🙁 Видимо, содержимое обрезалось, да?
    2. IS_DEBBUGING (это директива? А я думал — переменная :D) включает или выключает вывод названия процедуры функцией Debugging () в окно отладки. Эта информация штатно туда не выводится.
    3. Про char и gchar — поменять-то можно, не проблема. Но можешь объяснить отличия? В большинстве случаев я нахожу в инете схожие фрагменты кода и их использую, в итоге и получается такая мешанина 🙁
    4. Названия функций я использую такие намерено, в меру ряда факторов. Т.к. это ни на что, я бы хотел сохранить текущее форматирование кода.
    5. Про структуру — изучу этот вопрос снова. Насколько я помню, предыдущие попытки что-либо изменить в её описании приводили к тому, что всё переставало работать. В итоге я всё оставил, как есть, работает — не трожь! 🙂 Если дашь ссылку или объяснишь разницу в текущем и предлагаемом описании и использовании структуры данных — буду благодарен.
    6. Про PURPLE. Работает, трогать не буду 🙂
    7. Закидывать проект на сторонний сервер я не хочу. Отсюда, хоть, я могу попросить на баннеры покликать, а там я не уверен, что это разрешено. А мне хоть хостинг за несколько лет окупить — всяко приятно. Кроме того, начнётся бардак, появятся сторонние авторы, за которыми надо будет всё проверять… Как показывает мой опыт общения с разработчиками, их надо полностью и постоянно контролировать. Некоторые господа шлют патчи мне в почту, я их разбираю, анализирую, что-то потом реализую, но всегда — в сильно измененном виде. И такой подход считаю правильным.

  8. VaYurik on 09 апр 2010
  9. Ладно не хочу тебя задалбывать.
    Короче смотри я скомпилил deb пакеты через Launchpad. Они сейчас лежат в репозитории на ланчпаде. Ты можешь установить свой плагин добавив ppa:stokito/pidgin-toobars в список репозиториев.

    Нравится тебе или нет — пользователям нужен репозиторий. Каждый раз лазить на твой хомяк за обновлениями, потом компилить это гемор даже для меня.
    Если хочешь — ты можешь реализовать репозиторий у себя на сайте. Никакого доп. софта не нужно — просто в определёном порядке ложишь папки.

    Ты можешь скачать deb пакеты. Кстати внутри deb пакета всё уже заархивировано (архиватором ar) так что не надо deb пакет дополнитольно архивировать zip’ом.

    Пакеты для Ubuntu 9.04 Karmic тут:
    https://launchpad.net/~stokito/+archive/pidgin-toobars/+sourcepub/1073908/+listing-archive-extra

    Пакеты для Ubuntu 9.10 lucid
    https://launchpad.net/~stokito/+archive/pidgin-toobars/+sourcepub/1074328/+listing-archive-extra

    Ты можешь на своём сайте дать прямую ссылку на закачку пакетов. Съекономишь трафик на хостинге.

  10. stokito on 11 апр 2010
  11. Спасибо.
    Подумаю в эту сторону после релиза.

  12. VaYurik on 16 апр 2010
  13. Товарищ автор! Хотелось попробовать ваш модуль — но вот незадача, он есть или в исходниках (не для того я променял Gentoo на Ubuntu, чтобы исходники собирать), или в пакетах для i386.

    Компьютер, который я покупал лет 6 назад, был 64-битным. и тот, что у меня сейчас, конечно, тоже. Ставить 32-бит Pidgin для такого модуля совершенно не хочется. Тупик. Кстати, на PPA парой комментариев выше был предложен PPA-репозитарий, там 64-бит версия есть. Но версия, как я понял, старая. Решите эту проблему, прошу вас.

    Кстати, было бы очень полезно опубликоваться на http://developer.pidgin.im/wiki/ThirdPartyPlugins

  14. drasserman on 04 июн 2010
  15. После пары лет жизни под 64-битной версией я вернулся к 32-битной, т.к. объективных предпосылок в 64-битной версии в моём случае нет, а определённые проблемы имели место быть.
    Я не разбирался с этим PPA. Я не против, если кто-то им займётся.
    На указанной Вами странице ссылка на мои плагины уже давно есть.

  16. VaYurik on 18 июн 2010

Ваш отзыв

Вы должны войти, чтобы оставлять комментарии.

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

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

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

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

41001543226857