Показаны сообщения с ярлыком howto. Показать все сообщения
Показаны сообщения с ярлыком howto. Показать все сообщения

2011-11-23

Harmattan. Пишем в Event Feed - часть 2 (детективная)

Пост посвящен погружению в недра EventFeed и является отчасти детективным. Советую читать не по диагонали, а подряд. А то будет как с Лорой Палмер. Вообщем, я предупредил. Поехали!

2011-11-21

Harmattan. Пишем свой Control Panel Applet

Мы разобрались с тем, как писать в Event Feed. Но любое приложение нуждается в каких-либо настройках. В этой посте разберемся с тем, как интегрироваться в иерархию Settings в MeeGo Harmattan.

2011-11-17

Harmattan. Пишем в Event Feed


В MeeGo Harmattan как известно левый экран отдан под список событий. В этой статье я расскажу, как в него писать на примере приложения Calendar Feed (о нем позже).

2010-12-14

QtCreator: создание расширения редакторов на примере QmlJSEditor

Возникла потребность в активном использовании extension'ов к QtScript, причем в js-виде. Как известно, они хранятся в файлах __init__.js, раскиданных по разным папкам внутри папки qtscriptextension. Поменять название файла, содержащего extension, возможности нет (оно зашито в исходниках Qt). Следовательно, в QtCreator мы видим кучу файлов с одинаковым названием (__init__.js), что не очень удобно и совсем не продуктивно. В качестве решения был реализован небольшой плагин, являющийся по сути надстройкой над QmlJSEditor. На его примере и будет рассказано как отнаследоваться от QmlJSEditor, чтобы не потерять имеющийся функционал.

2010-11-07

QtCreator-XmlTree: Применение цветовых схем к редактору

QtCreator поддерживает кастомизацию цвета и шрифта текста в редакторах (в самом QtCreator это называется Color scheme). Это удобно, клево и все такое. Рассмотрим как добавить эту функциональность к нашему редактору XML.

2010-10-03

QtCreator-XmlTree: Добавляем редактор исходников

Редактор xml'я в виде дерева это безусловно удобно, но иногда возникает необходимость подправить его в текстовом виде. Самый логичный вариант добавить в интерфейс две вкладки: дерево и текстовый редактор.

2010-09-28

QtCreator-XmlTree: Редактор

Итак, мы создали скелет проекта и теперь нам надо его наполнить. Для начала определимся что нам необходимо отнаследовать для создания своего редактора:
  • Core::IEditor
  • Core::IFile
  • Core::IEditorFactory
Ну и плюс к этому необходимо дописать уже созданного наследника ExtensionSystem::IPlugin и реализовать само дерево для отображения xml.

2010-09-26

QtCreator-XmlTree: Введение

Creator предоставляет достаточно мощную систему плагинов, но к сожалению по ней очень мало информации. Приходится искать все по обрывкам информации в сети и из исходников самого Креатора. Эта статья будет посвящена тому, что надо сделать для разработки своих плагинов. Остальные статьи цикла можно посмотреть в посте-оглавлении по XmlTree.

Плагин XmlTree для QtCreator

Qt Creator на данный момент является достаточно удобным и быстро развивающимся IDE, но в плане поддержки xml есть только возможность подсветить его GenericHighlighter'ом. По этой причине было решено написать плагин, показывающий и позволяющий редактировать xml в виде дерева нод. Этот пост является своеобразным оглавлением всех последующих постов, связанных с разработкой этого плагина.

  1. Введение
  2. Создание своего редактора
  3. Добавляем редактор исходников xml
  4. Корректно обрабатываем сохранение
  5. Используем цветовые схема из настроек QtCreator
  6. ............

Сам плагин хранится на Gitorious.

2010-07-23

Использование Tree Model в QML интерфейсах

На данный момент в QML мы можем описать только линейные модели и представления. Также есть вариант использовать VisualDataModel для построения псевдо-деревьев (с изменением текущего rootIndex).
Но иногда не нужно строить большие деревья, где оправдано изменение rootIndex модели, а нужно построить дерево с небольшим ветвлением и с возможностью отображения его целиком.
Ниже описан способ как это сделать.

2010-06-23

Android-lighthouse: вызов Java-методов из C++/Qt-кода

По адресу http://qt.gitorious.org/~taipan/qt/android-lighthouse лежит репозитарий с Qt для Android'а. Проект более менее активно пилится его создателем и на данный момент его вполне уже можно использовать. Однако, там не хватает такой вещи как вызов Java-методов из кода, написанного на C++/Qt. В частности, это очень нужно для работы с GPS. Но. Никто не мешает нам слегка поправить проект и впилить туда нужный нам функционал. Этим и займемся.
Внимание! Все исходники основаны на версии репозитария на момент 23 июня (последний push на текущий момент сделан 14 июня).

Краткий экскурс: JNI
JNI - это коннектор между нативным кодом и кодом на Java. В настоящее время проект заброшен и не поддерживается, несмотря на большое количество багов в нем. Тем не менее, этот коннектор позволяет без проблем обращаться к ява-машине из нативного кода, пусть и делать это приходится очень аккуратно.

Постановка задачи
Работа с андроидом накладывает несколько ограничений:
  1. Мы не можем создать еще одну ява-машину, нам надо работать в той же (на процесс разрешена только одна ява-машина)
  2. ClassLoader для ява-машины в андроиде кастомизирован и не позволяет искать свои классы (системные ищутся и находятся на ура) из любого места отличного от функции OnLoad(). 
Первое ограничение нас, в принципе, особо не интересует, так как нам все равно нужны инстанции тех же объектов, которые были в нашем Java-приложении, а значит нужна именно та ява-машина.
Второе ограничение похуже и по сути не дает нам просто найти интересующие нас классы из нашего Qt-приложения и работать с ними. Опять же, делать поиск в OnLoad() и позже использовать найденные классы не получится, так как OnLoad() находится в lighthouse и кастомизировать его под каждое приложение не очень хорошо.
Следовательно, нам нужно:
  1. Найти общее решение для вызова своих Java-методов
  2. Реализовать его