вторник, 1 июля 2014 г.

Qt: Дерево в Qt

Возникла необходимость построить дерево структурных подразделений в приложении Qt. Решение задачи решил реализовать с помощью виджета QTreeWidget, так как дерево не очень большое и редко (практически никогда) не изменяется. Вообще то создать дерево не представляет особого труда, но ввиду того того что к узлам дерева необходимо привязывать пользовательские объекты, приходится учитывать кое какие моменты. Ниже опишу как решается такого рода проблема имея Qt и СУБД FireBird 2.5.

среда, 14 мая 2014 г.

Symfony 2: Изменение ролей пользователем во время сессии

При реализации своей админки в проекте Symfony, возникла ситуация, когда пользователь с ролью ROLE_ADMIN убирал эту роль у себя самого. При этом он имел доступ ко всем защищенным этой ролью ресурсам до следующей "реальной" аутентификации. Иными словами, информация о ролях этого пользователя бралась из сессии и была устаревшей.

вторник, 13 мая 2014 г.

Symfony 2: Настройка ЧПУ на IIS

При развертывании сайта на IIS, в папке web проекта Symfony, нужно создать файл настроек для сервера IIS - web.config. Содержимое файла такое:

воскресенье, 27 апреля 2014 г.

Symfony 2: Реализация возможности last visit datetime

Чтобы реализовать функционал last visit datetime в Symfony, нужно создать обработчик успешного входа в систему. Для этого следует создать класс реализующий интерфейс

Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface

пятница, 4 апреля 2014 г.

Symfony 2: Назначение роли по умолчанию для нового пользователя

В офф документации Symfony довольно подробно и ясно описано как реализовать аутентификацию пользователя через базу данных. Там же рассмотрен вопрос о сохранении ролей в БД. А вот как назначить роль по умолчанию новому пользователю - не описано. Реализовать этот недостающий момент можно следующим образом:

вторник, 1 апреля 2014 г.

Qt: Запись отладочной информации в файл

В тех случаях, если отладка в среде разработки недоступна, например при создании служб Windows, приходится писать отладочную информацию в файл. Чтобы сделать это в Qt и при этом не изобретать велосипед, можно воспользоватся встроенными методами qDebug, qWarning, qCritical, qFatal.

FTP: Пассивный и активный режимы

Как известно протокол FTP отличается от других протоколов тем что требует два сокета - один командный (для общения с сервером), а другой - для передачи данных. С этим более менее все понятно. Непонятным, на первый взгляд, представляются такие понятия, как пассивный и активный режимы FTP соединения. Но это только на первый взгляд.

среда, 26 марта 2014 г.

Symfony 2: Локализация

Стандартная локализация, которая предоставляется в Symfony 2.4, подразумевает изменение локали через URI. Например, переводы страниц будут доступны по таким ссылкам:

localhost/symtest/en/homepage
localhost/symtest/uk/homepage
localhost/symtest/ru/homepage

Предлагаемый по умолчанию механизм локализации, реализуется в Symfony 2.4 довольно просто.

Qt: Ресурсы

Добавить картинки в исполняемый файл можно с помощью ресурсов. В данной статье описано как добавить файл ресурсов в проект и как использовать картинки из этого ресурса в коде.

вторник, 25 марта 2014 г.

Qt: Пользовательские диалоговые окна

В статье описаны главные моменты при создании пользовательских окон.

Qt: Позиционирование окон

Задавать позицию окна в Qt нужно вручную. В статье описан метод как можно разместить окно по центру относительно рабочего стола, или родительского окна.

среда, 19 марта 2014 г.

Qt: Работа с ini файлом

Часто приходится иметь дело с ini файлами. Так вот, Qt предоставляет класс для работы с этим форматом файлов. На первый взгляд кажется удобным, но посмотрим. В данной статье описано как работать с ini файлами.

Symfony 2: Изменение шаблонов форм

При выводе элементов формы, таких как, сообщения об ошибках, поля, метки и т. п., Symfony, по умолчанию, использует шаблоны расположенные в папке vendor\symfony\symfony\src\Symfony\Bridge\Twig\Resources\views\Form\.

вторник, 18 марта 2014 г.

Qt: Внедрение манифеста в исполняемый файл

Вначале хочется отметить, что встраивать манифест в exe файл вовсе не обязательно. Сам файл манифеста можно положить рядом с exe и все будет отлично работать. Как это делается - можно почитать в статье UAC манифест. Тем не менее, иногда приходится внедрять UAC манифест в exe файл. В данной статье будет описан способ внедрения UAC манифеста на примере приложения созданного в Qt.

UAC манифест

В предыдущей статье было описано, как использовать манифест чтобы указать приложению на нужные dll файлы - так называемый механизм частных сборок. Помимо этого, используя манифест, можно назначить уровень доступа к приложению. Например, необходимо, чтобы приложение запускалось только от имени администратора.

понедельник, 17 марта 2014 г.

Частные сборки (как указать dll для приложения в манифесте)

Разрабатывая приложения на Qt, во время развертывания продукта, приходится копировать все dll файлы, от которых он (продукт) зависит, в каталог с исполняемым файлом. Хорошо было бы создать папку и поместить туда все эти библиотеки. Используя механизм, так называемых частных сборок, можно добиться желаемого результата.