summaryrefslogtreecommitdiffstats
path: root/src/__TODO/UiGuiSettings.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/__TODO/UiGuiSettings.h')
-rw-r--r--src/__TODO/UiGuiSettings.h94
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