diff options
Diffstat (limited to 'src/__TODO/UiGuiSettings.h')
-rw-r--r-- | src/__TODO/UiGuiSettings.h | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/src/__TODO/UiGuiSettings.h b/src/__TODO/UiGuiSettings.h new file mode 100644 index 0000000..5068d52 --- /dev/null +++ b/src/__TODO/UiGuiSettings.h @@ -0,0 +1,94 @@ +/*************************************************************************** +* 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 <tqobject.h> +#include <tqstringlist.h> +/////#include <tqmultimap.h> + +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<TQObject*, TQStringList> _registeredObjectProperties; + + //! Maps TQObjects to a string list containing the method name and the associated setting name. + TQMultiMap<TQObject*, TQStringList> _registeredObjectSlots; + + TQString _indenterDirctoryStr; +}; + +#endif // UIGUISETTINGS_H |