/*************************************************************************** * Copyright (C) 2006-2012 by Thomas Schweitzer * * thomas-schweitzer(at)arcor.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License version 2.0 as * * published by the Free Software Foundation. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program in the file LICENSE.GPL; if not, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ #ifndef UIGUISETTINGS_H #define UIGUISETTINGS_H #include #include /////#include class TQSettings; class UiGuiSettings : public TQObject { Q_OBJECT private: UiGuiSettings(); static UiGuiSettings *_instance; public: static UiGuiSettings* getInstance(); ~UiGuiSettings(); bool registerObjectProperty(TQObject *obj, const TQString &propertyName, const TQString &settingName); bool registerObjectPropertyRecursive(TQObject *obj); bool setObjectPropertyToSettingValue(TQObject *obj, const TQString &propertyName, const TQString &settingName); bool setObjectPropertyToSettingValueRecursive(TQObject *obj); bool setSettingToObjectPropertyValue(TQObject *obj, const TQString &propertyName, const TQString &settingName); bool setSettingToObjectPropertyValueRecursive(TQObject *obj); bool registerObjectSlot(TQObject *obj, const TQString &slotName, const TQString &settingName); TQVariant getValueByName(TQString settingName); TQStringList getAvailableTranslations(); public slots: void setValueByName(const TQString &settingName, const TQVariant &value); void unregisterObjectProperty(TQObject *obj); void unregisterObjectSlot(TQObject *obj, const TQString &slotName = "", const TQString &settingName = ""); protected: bool initSettings(); bool invokeMethodWithValue(TQObject *obj, TQMetaMethod mMethod, TQVariant value); bool checkCustomPropertiesAndCallFunction(TQObject * obj, bool (UiGuiSettings::*callBackFunc)(TQObject *obj, const TQString &propertyName, const TQString &settingName)); private slots: void handleObjectPropertyChange(); private: void readAvailableTranslations(); //! Stores the mnemonics of the available translations. TQStringList _availableTranslations; //! The settings file. TQSettings *_qsettings; //! Maps an TQObject to a string list containing the property name and the associated setting // name. TQMap _registeredObjectProperties; //! Maps TQObjects to a string list containing the method name and the associated setting name. TQMultiMap _registeredObjectSlots; TQString _indenterDirctoryStr; }; #endif // UIGUISETTINGS_H