Russian Qt Forum

Qt => Общие вопросы => Тема начата: Maquefel от Февраль 09, 2012, 15:24



Название: Организация настроек для плагинов приложения
Отправлено: Maquefel от Февраль 09, 2012, 15:24
Добрый день.

Собственно вопрос, как лучше всего организовать хранение настроек для подключаемых плагинов?
Хранить в общем файле? Сделать отдельно файл для настроек приложения, отдельно для плагинов? Сделать на каждый плагин свой файл?

Плагины могут подключаться и удаляться из приложения.

Речь идет о <QtPlugin>.

Или может есть что почитать на эту тему?


Название: Re: Организация настроек для плагинов приложения
Отправлено: Пантер от Февраль 09, 2012, 15:26
Да тут как захочешь, так и делай. :)


Название: Re: Организация настроек для плагинов приложения
Отправлено: Maquefel от Февраль 09, 2012, 15:34
Да тут как захочешь, так и делай. :)

Ну можно хотя бы добавить: "Вот я обычно..."  ;D


Название: Re: Организация настроек для плагинов приложения
Отправлено: Пантер от Февраль 09, 2012, 15:36
Да тут как захочешь, так и делай. :)

Ну можно хотя бы добавить: "Вот я обычно..."  ;D
А тут нельзя однозначно ответить - у всего свои плюсы и минусы. Так что делай так, как тебе проще.


Название: Re: Организация настроек для плагинов приложения
Отправлено: Igors от Февраль 09, 2012, 15:46
По-хорошему надо делать "палетку" в которой пользователь выбирает плагин а затем - один из его пресетов (которые могут быть добавлены/удалены)


Название: Re: Организация настроек для плагинов приложения
Отправлено: kuzulis от Февраль 09, 2012, 15:54
Имхо, лучше все в один файл свалить, при этом, определить для себя какой-то один обобщенный интерфейс доступа к этому файлу.

Например, само приложение имеет некий конфиг app.cfg.
При выборе из меню приложения конкретного плагина и его загрузке,
можно передавать в плагин путь к этому конфигу и тогда плагин будет уже
сам "гадить" в этоот конфиг.

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

Или что-то типа диалога между приложением и плагинами, например:
app: гружу плагин по пути ...\... (который задается пользователем в менющке или еще как)
app: эй, плагин, дай свое имя (идентификацию)
plg: на name=SuperPlugin
app: спс, значит на тебе путь к конфигу ../../app.cfg и имя секции в которую будешь гадить: SuperPlugin
plg: спс, начинаю инициализироваться, читать свои настройки, гадить и т.п.

Как то так, ИМХО.  :)


Название: Re: Организация настроек для плагинов приложения
Отправлено: Maquefel от Февраль 09, 2012, 16:01
Имхо, лучше все в один файл свалить, при этом, определить для себя какой-то один обобщенный интерфейс доступа к этому файлу.

Например, само приложение имеет некий конфиг app.cfg.
При выборе из меню приложения конкретного плагина и его загрузке,
можно передавать в плагин путь к этому конфигу и тогда плагин будет уже
сам "гадить" в этоот конфиг.

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

Как то так, ИМХО.

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


Название: Re: Организация настроек для плагинов приложения
Отправлено: Maquefel от Февраль 09, 2012, 16:02
По-хорошему надо делать "палетку" в которой пользователь выбирает плагин а затем - один из его пресетов (которые могут быть добавлены/удалены)

Вот этого момента не понял, можно поподробнее?


Название: Re: Организация настроек для плагинов приложения
Отправлено: kuzulis от Февраль 09, 2012, 16:03
А зачем? Что, при каждом запуске приложения оно будет все плагины инициализировать с нуля?
А как же загрузка последней конфигурации и т.п.?

Можно просто какой нить параметр в конфиге в секции выставлять в Active=false
(т.е. сам плагин выставляет при своей выгрузке)


Название: Re: Организация настроек для плагинов приложения
Отправлено: Maquefel от Февраль 09, 2012, 16:13
А зачем? Что, при каждом запуске приложения оно будет все плагины инициализировать с нуля?
А как же загрузка последней конфигурации и т.п.?

Можно просто какой нить параметр в конфиге в секции выставлять в Active=false
(т.е. сам плагин выставляет при своей выгрузке)

Таки да, понял. Спасибо за участие. Кстати ваш плагин на компорты активно пользую  ;D.


Название: Re: Организация настроек для плагинов приложения
Отправлено: kuzulis от Февраль 09, 2012, 16:31
Это не плагин.


Название: Re: Организация настроек для плагинов приложения
Отправлено: Igors от Февраль 09, 2012, 16:35
Это не плагин.
Цитировать
- Эх, Маша, хорошо-то как..
- Да я не Маша!
- Все равно хорошо..


Название: Re: Организация настроек для плагинов приложения
Отправлено: Maquefel от Февраль 09, 2012, 16:47
Это не плагин.

Уже плагин.


Название: Re: Организация настроек для плагинов приложения
Отправлено: iroln от Февраль 09, 2012, 19:25
Я писал приложение с плагинами, настройками плагинов управлял через QSettings. Просто настройки каждого плагина хранились в своей группе, вот и всё. При инициализации/деинициализации плагинов настройки читались/записывались объектом QSettings. В общем то ничего сложного тут нет.