Меню Рубрики

Установка qutim с плагинами

qutIM 0.3 — Релиз лучшего IM клиента для Linux

Ура, друзья! Не знаю как вы, но я сильно ждал релиз qutIM 0.3. И вот, это свершилось! Как говорят разработчики, было исправлено множество багов и клиент стал более стабильным. Обновившись, я специально прогнал все моменты, когда qutIM падал. Как же я был рад, когда всё продолжало стабильно работать!

Собственно сам я все исправления и нововведения явно не найду, поэтому просто процитирую новость от разработчиков, правда убрав информацию о Windows и других платформах/дистрибутивов.

Спустя ровно год активной разработки мы — все те, кто участвовал в разработке qutIM, рады вам представить релизную версию 0.3 под кодовым именем Nolwe. За прошедший год было исправлено огромнейшее количество ошибок, добавлены недостающие фичи и переработаны некоторые плагины.

Общие изменения

Github

Репозиторий кода qutIM переместился с gitorious.org на GitHub: github.com/euroelessar/qutim.

Сие было сделано с тем намерением, что теперь каждая строка кода проходит ревью, что позволяет находить ошибки на более раннем этапе (да и просто так удобнее жить вместе с замечательным Томагавком). Всего с момента перехода на git было сделано 5189 коммитов, в ветку попали коммиты 26 человек.

Переводы

Переводы qutIM теперь доступны на translations.launchpad.net/qutim, а сие значит, что любой может поучаствовать в переводе qutIM! Сейчас наиболее полные переводы это переводы на: русский, болгарский, немецкий и английский. Медленно, но верно развивается перевод на чешский, украинский и арабский. Китайский находится в самом зачатке.

График релизов

Так же хочется сказать про то, что qutIM перешëл на другую модель выпуска релизов. Да! Теперь не придётся ждать долгие месяцы, прежде чем новое обновление придёт в ваш стабильный дистрибутив.

  • Теперь несерьëзные изменения ведут к изменению последней цифры. Такие мини-релизы будут выпускаться раз в неделю (0.0.0.х)
  • При накоплении большого количества изменений, происходит инкрементация третей цифры с конца (0.0.х.0)
  • При изменении API происходит инкрементация второй цифры (0.х.0.0)
  • При особо крупных изменениях происходит изменение мажорной цифры (х.0.0.0)
Пиктограммы

Как вы заметили, в qutIM сменилась пиктограмма благодаря художнику, заботливо рисующему пиктограммы статусов, протоколов и прочего artwork’а.

Хлеба и зрелищ!

В релиз вошли следующие протоколы:

А так же все протоколы из библиотеки libpurple (Коих больше 10), правда сия библиотека в рядах разработчиков не пользуется популярностью и возможны ошибки.

Как уже сообщалось ранее, в qutIM всё реализовано через плагинную систему. В qutIM несколько реализаций списка контактов (Default и Tory), формы чата, движки для отображения лога сообщений (WebKit View с поддержкой тем Adium’а, сверхлёгкий Text View и экспериментальный QML View), окна настроек и много чего ещё. Благодаря этому обеспечивается огромный простор для кастомизации qutIM под свои нужды.

Отдельно хочется отметить возможность полной преднастройки qutIM’а для установки готовых версий администраторами (абсолютно все настройки берут дефолтные значения из системных файлов, что открывает потрясающие возможности системным администраторам).

Так же была улучшена интеграция в различные рабочие окружения (Windows, Mac OS X, Unity, KDE, MeeGo, Maemo, Haiku).

Интеграция в индикатор в Unity:

Интеграция в лаунчер Unity:

Плагины

Что же до плагинов, то и там очень много изменений:

  • Updater — В данный момент сей плагин нужен для того, чтобы обновлять пиктограммы клиентов (Коих весьма много) без обновления самого qutIM
  • Highlighter — Недавний плагин, позволяющий настроить хайлайтинг qutIM на определённые слова, используя регулярные выражения:
  • Weather — реинкарнация прогноза погоды
  • BlogImprover — простая интеграция с такими блогосервисами как Juick.com и Psto.net
  • UrlPreview — В UrlPreview добавлен предпросмотр роликов и аудио через соответствующие теги в html5:
  • ConnectionManager — переработана логика работы при потере соединения с интернетом, наконец-то qutIM снова ведет себя прозрачно в этих экстремальных ситуациях

А какие планы?

Что ж, после релиза можно и поведать про планы, что будет реализовано в самом ближайшем будущем. Хочу напомнить, что теперь релизы будут чаще.

  • VoIP в Jabber. Уже реализовано большей частью аудиообщение через Jingle
  • P2P jabber
  • Возвращение файлопередачи и реализация оной же через Jingle
  • Поддержка конференций в ICQ. Оно в общем-то уже готово, но до сих пор непонятны некоторые технические детали
  • Темы списка контактов на QtQuick
  • Поддержка телепатии
  • Поддержка шифрования в Jabber
  • И многое другое

Если у вас имеются какие-то идеи по улучшению продукта, то добро пожаловать на bugtracker: bugs.launchpad.net/qutim. Но в случае если вы нашли неточность в переводе на какой-либо язык, или же, что еще прекраснее, у вас имеется желание помочь нам с переводом qutIM’а на какой-то новый язык, то просим вас пройти по этой ссылке: github.com/euroelessar/qutim.

А где скачать?

Установка qutIM 0.3 в Ubuntu Linux

Зачем качать исходники, когда есть репозитории? Разработчики не вписали как ими воспользоваться, добавлю сам.

Собственно есть две версии — стабильная, так и ежедневная. Какую ставить — решать вам, я же пользуюсь ежедневной.

Читайте также:  Установка крана в саду

источник

Разработка плагинов к qutIM’у из под Windows — быстрый старт

Шаг первый — установка QtSDK и cmake

Тут никаких тонкостей, просто в лоб ставим себе desktop Qt (minGW) и устанавливаем cmake, единственный момент, что нужно в qtvars.cmd дописать в переменную PATH путь до cmake’а

Шаг второй — установка qutIM

Лучше всего ставить его не в Program Files, а в другую папку, например C:\develop\qutim\dist. Установщик содержит в себе все нужные заголовочные файлы и объектные файлы, необходимые для линковки, а в директории share/doc есть html документация, точнее даже её набросок, полной документации по API пока не существует.

Шаг третий — создание CMakeLists.txt для нашего плагина

Примерный вид CMakeLists.txt будет таким:

cmake_minimum_required (VERSION 2.6 FATAL_ERROR)
if( COMMAND cmake_policy )
cmake_policy( SET CMP0003 NEW )
endif(COMMAND cmake_policy )
project( Plugins )
set(QT_MIN_VERSION «4.6.0»)

set(QUTIM_PATH «» CACHE FILEPATH «Path to qutim distro»)
set(CMAKE_INSTALL_PREFIX $)

LIST (APPEND CMAKE_MODULE_PATH «cmake»)
LIST (APPEND CMAKE_MODULE_PATH «$/share/cmake/Modules»)
LIST (APPEND CMAKE_PREFIX_PATH «$«)

INCLUDE (MacroEnsureVersion)
find_package(Qt4 COMPONENTS QtCore QtGui)
find_package(QutIM REQUIRED)

В директории src же нужно положить CMakeLists.txt с описанием собираемых плагинов
find_library( SIMPLECONTACTLIST_LIBRARIES simplecontactlist PATHS $/lib )
message ($)

qutim_add_plugin(simplecontactlistwidget
EXTENSION
EXTENSION_HEADER $/sevenwidget.h
EXTENSION_CLASS Core::SimpleContactList::SimpleWidget
DISPLAY_NAME «Seven»
SOURCE_DIR $
DESCRIPTION «Windows seven specific implementation with button’s in caption»
LINK_LIBRARIES $
)

Создаваемый нами плагин будет линковаться с simplecontactlist.a, поэтому нужно указать cmake’у, что нам нужно найти её. Плагин представляет собой расширение, поэтому необходимо указать имя класса, которое будет использоваться как описание расширения и указать путь до заголовочного файла. В случае же, если мы вместо EXTENSION создаем SUBPLUGIN, необходимо будет создать самостоятельно класс, наследующийся от qutim_sdk_0_3::Plugin и экспортировать его через QUTIM_EXPORT_PLUGIN. Проще всего подсмотреть реализацию в других плагинах.

Шаг четвертый — написание плагина

Писать мы будем плагин, который будет рисовать кнопки в заголовке нашего контактлиста. Хочу заметить, что simplecontactlist не является частью публичного API, поэтому его заголовочных файлов нету в инсталляторе, поэтому мы просто руками скопируем нужные нам файлы в include. Но нужно помнить, что API может в любой момент поменяться.

Для создания формы контактлиста нужно унаследоваться от интерфейса AbstractContactListWidget и реализовать методы AddButton, который будет добавлять кнопки в заголовок окна, RemoveButton, который будет их удалять. Помимо этого, нужно будет получить указатель на модель контактов и делегат для отрисовки, всё это можно посмотреть в архиве с исходниками или скачать через git из репы labs.

* This source code was highlighted with Source Code Highlighter .

Шаг пятый — сборка

Создаем по соседству с каталогом, содержащим в себе самый первый CMakeLists.txt каталог build, запускаем Qt command prompt, переходим в него и командуем примерно следующее:

H:\develop\windows\labs\build>cmake ..\sevenlist -DCMAKE_BUILD_TYPE=Release -DQUTIM_PATH=H:\develop\qutim\dist -G»MinGW Makefiles»

В результате должно получиться примерно вот это:
— The C compiler identification is GNU
— The CXX compiler identification is GNU
— Check for working C compiler: H:/apps/QtCreator/mingw/bin/gcc.exe
— Check for working C compiler: H:/apps/QtCreator/mingw/bin/gcc.exe — works
— Detecting C compiler ABI info
— Detecting C compiler ABI info — done
— Check for working CXX compiler: H:/apps/QtCreator/mingw/bin/g++.exe
— Check for working CXX compiler: H:/apps/QtCreator/mingw/bin/g++.exe — works
— Detecting CXX compiler ABI info
— Detecting CXX compiler ABI info — done
— Looking for Q_WS_X11
— Looking for Q_WS_X11 — not found.
— Looking for Q_WS_WIN
— Looking for Q_WS_WIN — found
— Looking for Q_WS_QWS
— Looking for Q_WS_QWS — not found.
— Looking for Q_WS_MAC
— Looking for Q_WS_MAC — not found.
— Found Qt-Version 4.7.2 (using H:/apps/Qt/4.7.2/bin/qmake.exe)
— Found QutIM: H:/develop/qutim/dist/lib/liblibqutim.dll.a
H:/develop/qutim/dist/lib/libsimplecontactlist.dll.a
— Configuring done
— Generating done
— Build files have been written to: H:/develop/windows/labs/build

Теперь же мы можем просто скомандовать make install и запустить qutIM. Только не пытайтесь выполнять эту команду при запущенном кутиме. Исходники плагина можно взять на гиториусе(папка sevenlists).

В результате должна получиться вот такая красота.

Что сейчас больше всего нужно:

  • Антиспам
  • Модель контактлиста без разделения на группы
  • Интеграции с различными хранилками файлов (dropbox, etc)
  • Проверка орфографии для Windows
  • Модель контактлиста с разделением на протоколы (с написанием специального делегата)
  • Now playing для windows

источник

Готовим плагин для qutIM на дому

  • Микроядро — в нём находится реализация менеджера модулей. Оно отвечает за загрузку и корректную работу всех частей qutIM’а. В нем имеется возможность выбора, какие модули грузить, а какие нет. Плюс в нем заложена возможность отслеживание зависимостей, что может быть незаменимо для модулей, которые в своей работе опираются на другие компоненты. Кроме того, активные модули можно переключать прямо в runtime’е, что, к примеру, активно используется в configbackend’ах
  • libqutim — в этой библиотеке хранятся интерфейсы всех модулей, а также набор наиболее полезных и часто используемых функций
  • corelayers — тот набор модулей, который компилируется непосредственно с приложением, при желании его можно легко менять, о чем будет сказано ниже
  • plugins — традиционные разделяемые библиотеки, которые на данный момент проще всего помещать в папку plugins рядом с исполняемым файлом, лучше всего подходит для протоколов
Читайте также:  Установка поршней умз 417

Первым делом необходимо установить библиотеку Qt4.6, для Windows и Macos X они есть на официальном сайте.
Пользователи Убунты могут воспользоваться репозиторием kubuntu-experimental, добавить её можно командой:
$add-apt-repository ppa:kubuntu-experimental
Гентушникам достаточно размаскировать соответствующие ebuild’ы. Для остальных не составит труда найти нужные пакеты или собрать их самостоятельно.
Исходный код забираем отсюда:
www.qutim.org/svn/qutim/branches/sdk03
После как обычно командуем в терминале
$ mkdir build && cd build && cmake ..
В результате cmake создаст вам Makefile, если окажется, что не все зависимости для сборки удовлетворены, то доустановите недостающие пакеты.
Прошу обратить внимание на строчки типа
+ layer KINETICPOPUPS added to build
+ layer XSETTINGSDIALOG added to build
+ layer ADIUMCHAT added to build

На сегодняшний день в cmake скрипте реализовано автоопределение используемых слоев. Вам достаточно положить исходные коды вашего плагина в scr/corelayers/имя_слоя, чтобы он был распознан системой. Это открывает огромные перспективы для создания собственных сборок, и упрощает разработку.
В данной статье я буду описывать, как реализовать диалог настроек:
Создаем в каталоге src/corelayers подкаталог simplesettingsdialog.
Создаем класс settingslayerimpl и наследуем его от класса SettingsLayer из libqutim’а, как показано ниже:
settingslayeriml.h

class SettingsDialog;
using namespace qutim_sdk_0_3;

class SettingsLayerImpl : public SettingsLayer
<
Q_OBJECT
public :
SettingsLayerImpl();
virtual

SettingsLayerImpl();
virtual void close();
virtual void show ( const SettingsItemList& settings );
private :
QPointer m_dialog;
>;

* This source code was highlighted with Source Code Highlighter .

settingslayeriml.cpp

Внимание: если вы вкомпиливаете модуль прямо в бинарный файл, то подключать заголовочные файлы нужно так, как показано в примере. Если вы выносите его в плагин, то нужно
заменить на
Работа слоя очень проста: по запросу show передается список настроек, которые необходимо вывести
settingslayeriml.cpp

#include «settingslayerimpl.h»
#include «settingsdialog.h»
#include «modulemanagerimpl.h»
#include

static Core::CoreModuleHelper settings_layer_static( //регистрируем наш модуль, теперь он станет видимым для менеджера модулей
QT_TRANSLATE_NOOP( «Plugin» , «Simple Settings dialog» ), //описание, макрос QT_TRANSLATE_NOOP позволяет делать его переводимым на разные языки
QT_TRANSLATE_NOOP( «Plugin» , «SDK03 example» )
);

void SettingsLayerImpl::show ( const SettingsItemList& settings )
<
if (m_dialog.isNull())
m_dialog = new SettingsDialog(settings); //создаем диалог, которому передаем наш список настроек
m_dialog->show();
>

* This source code was highlighted with Source Code Highlighter .

В реализации диалога настроек тоже нет ничего хитрого, важно лишь помнить, что SettingsItem генерирует виджет настроек лишь по запросу, чтобы минимизировать затраты памяти.
Далее создаем сам диалог:
settingsdialog.cpp

#include «settingsdialog.h»
#include «ui_settingsdialog.h»
#include

SettingsDialog::SettingsDialog ( const qutim_sdk_0_3::SettingsItemList& settings)
: ui ( new Ui::SettingsDialog)
<
m_setting_list = settings;
ui->setupUi( this );

foreach (SettingsItem *settings_item, m_setting_list) //заполняем список настроек самым бесхистростным образом без деления на категории
<
QListW >new QListWidgetItem (settings_item->icon(),
settings_item->text(),
ui->listWidget
);
>
connect(ui->listW >int )),SLOT(currentRowChanged( int ))); //навигация по списку настроек
ui->listWidget->setCurrentRow(0);
>

void SettingsDialog::currentRowChanged ( int index)
<
SettingsW >w >//генерируем виджет или даем указатель на него, если он существует
if (w > return ;
if (ui->stackedWidget->indexOf(w >//если виджет не добавлен в стек, то добавляем его
<
widget->load();
ui->stackedWidget->addWidget(widget);
>
ui->stackedWidget->setCurrentW >//просим показать текущий виджет
>

SettingsDialog()
<
delete ui;
>

* This source code was highlighted with Source Code Highlighter .

После добавления файлов не забудьте опять выполнить команду:
$ cmake ..
Если в выводе появилась строчка, которая приведена ниже, то вы сделали всё правильно.
+ layer SIMPLESETTINGSDIALOG added to build
Теперь нужно добавить куда-нибудь вызов функции Settings:showWidget(), я обычно её добавляю в конструктор одного из слоев.
Когда все соберется, можно запускать приложение. В конечном итоге появится вот такое симпатичное окошко.

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

источник

QutIM в Ubuntu.

Автор: admin.

QutIM в Ubuntu — отличная программа, представляющая собой клиента, для обмена мгновенными сообщениями. В клиенте реализован мультипротокольный режим, а также, доступность установки на самые популярные операционные системы, такие как: «Windows», «Mac OS», «Linux». Данная программа, сделана по образу и подобию Windows-аналога, приложения «QIP», что особенно заметно даже во внешнем сходстве обоих программ.

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

Честно говоря, такая ситуация, c еще многими программами в «Linux», уже изрядно начинает раздражать, ну не то сейчас время, когда не из чего было выбирать и приходилось пользовться тем, что есть в наличие. А вот авторы таких программ, все еще мыслят устарелыми понятиями, когда двухминутная установка программы и последующее, двадцати четырех часовое ее «допиливание», было в порядке вещей. Современный «Linux», уже настолько ушел вперед по своему развитию, что и прилагаемые приложения, просто обязаны соответствовать должному уровню. Ну почему, например в том же «Pidgin» (взято от фонаря), все работает сразу после установки, а на QutIM, нужно еще потратить пол дня, что бы найти решение всех проблем и устранить их, ну разве это нормально?

Читайте также:  Установки для одоризации газа

Положительные характеристики QutIM:

  • Простой, удобный и понятный интерфейс, в стиле эргономики.
  • Поддержка различных множественных протоколов общения.
  • Наличие антиспама и антифлуда.
  • Совместимость работы через прокси «HTTP» и «SOCKS».
  • Возможность установки на разные «ОС».
  • Возможность замены звуковой схемы.
  • Возможность замены смайлпака.
  • Возможномть замены скинов.

Отрицательные характеристики QutIM:

  • После установки, наблюдаются такие проблемы: звуки, смайлики, автозапуск и смена скинов, все нужно дополивать.

Установить программу можно из «центра приложений», но это будет отсталая версия программы и тоже, не без багов, поэтому, лучше воспользоваться официальным репозиторием:

sudo add-apt-repository ppa:qutim/qutim
sudo apt-get update
sudo apt-get install qutim

Итак, как вы поняли, после установки мы имеем:

1) Отсутствие звуковых оповещений (решаемо).
2) Отсутствие смайликов (решаемо).
3) Отсутствие смены скинов (решаемо, но пропущено).
4) Отсутствие функции автозапуска (кое-как, но решаемо).

Решаем по-порядку, звук и смайлики будем прикручивать от «QIP».

1) Звуковые оповещения — другими словами называется — «звуковая схема QIP», если запросить в интернете, то решение найдется сразу. Это набор звуковых файлов в формате «.wav» и один файл «.xml». Можете поискать самостоятельно, ну, а если лень, то воспользуйтесь этими:

Теперь, заходим в директорию (Ctrl+H показывать скрытые файлы): /домашняя папка/.local/share/qutim/. Скорее всего, конечная папка /qutim/ — будет пустой. В ней надо создать папку /sounds/, а в этой папке создать еще папку /qip/ — это обязательно, иначе не получится, т.е. полный путь будет выглядеть так: /домашняя папка/.local/share/qutim/sounds/qip.

Далее, распаковываете скачанный архив со звуковыми файлами и помещаете их в созданную папку /qip/, обратите внимание, не папку с файлами, а только файлы «.wav» и «.xml».

Запускаете программу: Настройки → Оформление → Звук и в выпадающем меню выбрать → qip. Закрываете программу полностью, т.е. делаете «Выход», запускаете ее по-новой и убеждаетесь, что при запуске программы, появился звук, значит и остальные звуки будут работать. Если вдруг звука нет, то попробуйте зайти: Настройки → Плагины → Выбор служб → Звуковой движок. По-умолчанию должен быть отмечен пункт «Звуковой движок Phonon», попробуйте поменять звуковой движок на другой тип, если и после этого звуки не появятся, тогда ищите проблему и интернете, лично у меня все заработало с первого раза.

2) Смайлики — другими словами назывется — «Смайлпак от QIP», также, как и в первом случае, можно найти в интернете, если лень, можете воспользоваться следующими ссылками:

Также, как и в первом случае, в папке /домашняя папка/.local/share/qutim/, нужно создать папку /emoticons/, а в ней еще папку /qip/, т.е. полный путь будет таким: /домашняя папка/.local/share/qutim/emoticons/qip.

Далее, распаковываете скачанный архив с паком и все иконки помещаете в папку /emoticons/qip, обратите внимание, не папку с иконками, а только иконки. Теперь, запускаете программу: Настройки → Оформление → Смайлы и в выпадающем меню выбираете «qip». Должно получится вот так:

3) Установку скинов мы пропускаем, не актуально, а вот проблему автозапуска будем решать. Многие программы, особенно имеющие отношение непосредственно к связи, общению, просто обязаны иметь функцию автозапуска, пользоваться ей или нет, это каждый решает для себя сам, но сама программа, должна быть оснащена таковой. В QutIM я не нашел такого типа настройки, а значит, что программу, каждый раз придется запускать вручную. Если ее прописать в автозагрузку, то она будет запускаться в открытом виде и такие параметры автозагрузки, как: «qutim —hidden-window» или «qutim —start-hidden», тоже, нужного результата не дают.

Но, решение все-таки есть, может быть чуть-чуть «корявое», но оно есть. Нужно, из «центра приложений», установить программу «Alltray» и в автозагрузку прописать следующую команду: alltray qutim. Теперь, программа будет запускаться вместе с системой и сворачиваться в трей. Правда есть одно «но», в трее теперь будут находится две иконки, одна по-умолчанию от самой QutIM, а вторая та, которую создаст программа «AllTray», причем, внешний вид ее, не очень вписывается в оформление «Unity», но это лучше, чем нечего.

Если вдруг, кто-то знает более лучшее решение, отпишитесь в коментах.

Язык интерфейса: русский.
Лицензия: GNU GPL
Домашняя страница: http://qutim.org/

Проверялось на «Ubuntu» 12.10 Unity (32-bit.).

источник