Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Возможности тулкита GTK+ и сопутствующих библиотек


Автор: А.Панин
Дата публикации: 3 декабря 2014 г.

Специализированный механизм для работы с данными конфигурации приложений

3. Пример использования

В качестве примера рассмотрим простейший текстовый редактор из предыдущих статей, но в данном случае манипуляции с значениями параметров конфигурации будут осуществляться средствами объекта типа GSettings. Описание схемы параметров конфигурации данного приложения было приведено выше в Листинге 1, "Файл описания схемы конфигурации приложения", исходный код приводится в Листинге 2, "Исходный код приложения", а также содержится в архиве gsettings.tar.gz вместе с файлом Makefile для упрощения сборки и файлом описания схемы параметров конфигурации приложения. Для лучшего понимания в коде используются комментарии. В рамках функции application_settings_changed() реализован обработчик изменений значений параметров конфигурации приложения, осуществляемых сторонними приложениями. Для проверки работоспособности этого обработчика вы можете воспользоваться редактором dconf, изменяя значения параметров конфигурации приложения в процессе его работы. Помимо уже упомянутой функции для обработки изменений значений параметров конфигурации, осуществленных средствами сторонних приложений, в данном примере заслуживают внимания следующие функции: функция для получения доступа к значениям параметров конфигурации приложения (application_open_settings()), функция для сохранения изменений значений параметров конфигурации приложения (application_close_settings()), функция для вывода значений параметров конфигурации приложения в диалоге для их редактирования (application_show_settings()), функция для применения значений параметров конфигурации приложения (application_apply_settings()), функция для изменения значений параметров конфигурации приложения (application_save_settings()) и функция для изменения пути к последнему открытому текстовому файлу (application_save_opened_file()). Вы можете осуществить сборку приложения либо просто перейдя в директорию с извлеченным из архива файлом исходного кода и введя команду make, либо воспользовавшись следующей командой (также перед запуском приложения следует осуществить компиляцию схемы конфигурации приложения с помощью команд, приведенных выше):
gcc `pkg-config --cflags --libs gtk+-3.0` `pkg-config --cflags --libs gio-2.0` gsettings.c -o gsettings

Листинг 2. Исходный код приложения

Как видно из кода, данный механизм хранения значений параметров конфигурации приложений очень напоминает механизм на основе файлов, содержащих пары ключ-значение, но проще в использовании и функциональнее последнего. Следует отметить, что механизм реализован в рамках библиотеки GIO, поставляемой вместе с библиотекой GLib, поэтому в случае разработки приложения без графического пользовательского интерфейса, сборка приложения может осуществляться с помощью следующей команды:
gcc `pkg-config --cflags --libs glib-2.0` `pkg-config --cflags --libs gio-2.0` <имя файла исходного кода> -o <имя исполняемого файла>

На Рисунке 2 показано главное окно приложения и окно редактора dconf, который может использоваться для динамического изменения значений параметров конфигурации данного приложения.

Изменение значений параметров конфигурации приложения
Рисунок 2. Изменение значений параметров конфигурации приложения

Заключение

В рамках трех статей были рассмотрены три механизма хранения данных конфигурации приложений на основе тулкита GTK+ и/или библиотеки GLib. Механизм на основе файлов с парами ключ-значение прост в использовании, но не позволяет хранить сложные многоуровневые структуры данных; механизм на основе файлов формата XML сложен в использовании, но при этом является достаточно гибким и позволяет хранить и обрабатывать сложные многоуровневые структуры данных; механизм на основе класса GSettings прост в использовании, позволяет отслеживать изменения значений параметров конфигурации приложения, осуществляемые сторонними приложениями, но предназначен для хранения исключительно конфигурационных данных приложения, пусть и в рамках многоуровневых схем, и, к тому же, требует наличия главного цикла обработки событий. В любом случае, решение о том, какой из механизмов использовать, а также решение об использовании своего собственного механизма хранения данных конфигурации приложения может быть принято исключительно разработчиком приложения, то есть вами.


Следующая статья серии : Механизм загрузки ресурсов приложений.