Название: [4.x.x] Создать копию QSettings Отправлено: Пантер от Февраль 22, 2011, 11:55 Конструктор копирования и оператор присваивания для QSettings запрещены. Как извернуться и получить QSettings идентичный нужному? Идентичный - в смысле ссылающийся на то же место хранения настроек.
Код не катит --------------------------------------- Сам отвечу: Код
Название: Re: [4.x.x] Создать копию QSettings Отправлено: Akon от Февраль 22, 2011, 19:38 А за чем это нужно?
Название: Re: [4.x.x] Создать копию QSettings Отправлено: Пантер от Февраль 22, 2011, 20:32 Ну, мне необходимо следить за изменением настроек. Написал класс SettingsChangeChecker. Ему необходимо передать QSettings, но указателем это делать проблематично. Вот и возник вопрос. Кстати, все отлично получилось. :)
Название: Re: [4.x.x] Создать копию QSettings Отправлено: pastor от Февраль 22, 2011, 20:59 А если создать синглтон, который будет возвращать ссылку на объект QSettings и заюзать её в SettingsChangeChecker, не?
Название: Re: [4.x.x] Создать копию QSettings Отправлено: Akon от Февраль 22, 2011, 21:16 Цитировать А если создать синглтон, который будет возвращать ссылку на объект QSettings и заюзать её в SettingsChangeChecker, не? +1Для сеттинга всегда использовал синглтон Мейерса. Но это типовой случай. У меня никогда не возникало необходимости за него выходить. Цитировать Ему необходимо передать QSettings, но указателем это делать проблематично. SettingsChangeChecker глубоко сидит? Не хочешь тащить через код указатель на наблюдаемый QSettings? Получается, фактически обсервишь непосредственно файл настроек по sync(), и без разницы какими сеттингами и из каких программ он изменяется, да хоть руками из текст. редактора. Неплохое решение, так сказать, без посредников. Название: Re: [4.x.x] Создать копию QSettings Отправлено: Пантер от Февраль 22, 2011, 21:50 Структура такова:
1. Класс чтения настроек, который оповещает нужные классы. 2. Класс проверки настроек на изменение, который оповещает нужные классы. (в данном случае класс чтения) Оба класса создаются в main.cpp и живут до окончания работы программы, поэтому использование синглтона тут излишне. К тому же с синглтоном можно будет огрести проблем, если в двух местах будет попытка, допустим, сделать beginGroup. Можно было из main.cpp передать расположение файла, но тогда теряется универсальность и законченность класса SettingsChangeChecker. ИМХО, так код более обобщен и универсален. Буду рад подискутировать на данную тему. :) Да, забыл упомянуть, в программе настройки не меняются. Они меняются извне. Название: Re: [4.x.x] Создать копию QSettings Отправлено: pastor от Февраль 22, 2011, 22:24 Цитировать К тому же с синглтоном можно будет огрести проблем, если в двух местах будет попытка, допустим, сделать beginGroup. Проблемы можно избежать обернув QSettings и создав геттеры\сеттеры для сохряняемых настроект. Название: Re: [4.x.x] Создать копию QSettings Отправлено: Пантер от Февраль 22, 2011, 22:32 В данном конкретном случае это излишне.
|