summaryrefslogtreecommitdiffstats
path: root/kjsembed/bindings/kconfig_imp.h
blob: 55f58e3477c58777e9b84e9703854e1d8bc53bba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// -*- c++ -*-

/*
 *  Copyright (C) 2003, Ian Reinhart Geiser <geiseri@kde.org>
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Library General Public
 *  License as published by the Free Software Foundation; either
 *  version 2 of the License, or (at your option) any later version.
 *
 *  This library 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
 *  Library General Public License for more details.
 *
 *  You should have received a copy of the GNU Library General Public License
 *  along with this library; see the file COPYING.LIB.  If not, write to
 *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 *  Boston, MA 02110-1301, USA.
 */

#ifndef KJSEMBED_CONFIG_IMP_H
#define KJSEMBED_CONFIG_IMP_H

#include <qdatetime.h>
#include <qfont.h>
#include <qvariant.h>
#include <qpoint.h>
#include <qrect.h>
#include <qsize.h>
#include <qcolor.h>
#include <qstringlist.h>

#include "bindingobject.h"

#ifndef QT_ONLY
class KConfig;
#else
class QSettings;
#endif

namespace KJSEmbed {
namespace Bindings {

class Config : public BindingObject
{
    Q_OBJECT
    Q_PROPERTY( bool forceGlobal READ forceGlobal WRITE setForceGlobal )
    Q_PROPERTY( bool dollarExpansion READ isDollarExpansion WRITE setDollarExpansion )
    Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly )
    Q_PROPERTY( bool readDefaults READ readDefaults WRITE setReadDefaults )

public:
    Config( QObject *parent=0, const char *name=0);
    /*
    Config( QObject *parent, const char *name,  const QString& confName );
    */
    virtual ~Config();

    void setForceGlobal( bool force );
    bool forceGlobal() const;
    void setDollarExpansion( bool _bExpand  );
    bool isDollarExpansion() const;
    void setReadOnly(bool _ro);
    bool isReadOnly() const;
    void setReadDefaults(bool b);
    bool readDefaults() const;

public slots:

	// Group
    void setDesktopGroup();
    void setGroup(const QString&);
    QString group();
    QStringList groupList();
    QString locale();

    void rollback( bool bDeep  );
    void sync();
    bool hasKey( const QString& key ) const;
    bool entryIsImmutable(const QString &key) const;
    void revertToDefault(const QString &key);
    bool hasDefault(const QString &key) const;

    void setFileWriteMode(int mode);
    QString readEntry(const QString& pKey, const QString& aDefault ) const;
    QVariant readPropertyEntry( const QString& pKey, const QVariant &var) const;
    QStringList readListEntry( const QString& pKey ) const;
    QString readPathEntry( const QString& pKey, const QString & aDefault) const;
    QStringList readPathListEntry( const QString& pKey ) const;
    int readNumEntry( const QString& pKey, int nDefault  ) const;
    uint readUnsignedNumEntry( const QString& pKey, uint nDefault  ) const;
    long readLongNumEntry( const QString& pKey, long nDefault  ) const;
    double readDoubleNumEntry( const QString& pKey, double nDefault  ) const;
    QFont readFontEntry( const QString& pKey, const QFont* pDefault) const;
    bool readBoolEntry( const QString& pKey, const bool bDefault  ) const;
    QRect readRectEntry( const QString& pKey, const QRect* pDefault) const;
    QPoint readPointEntry( const QString& pKey, const QPoint* pDefault) const;
    QSize readSizeEntry( const QString& pKey, const QSize* pDefault) const;
    QColor readColorEntry( const QString& pKey, const QColor* pDefault) const;
    QDateTime readDateTimeEntry( const QString& pKey, const QDateTime* pDefault) const;
    QString readEntryUntranslated( const QString& pKey, const QString& aDefault  ) const;

    void writeEntry( const QString& pKey, const QString& pValue );
    void writePropertyEntry( const QString& pKey, const QVariant& pValue );
    void writeListEntry( const QString& pKey, const QStringList &rValue );
    void writeNumEntry( const QString& pKey, int nValue );
    void writeUnsignedNumEntry( const QString& pKey, uint nValue );
    void writeLongNumEntry( const QString& pKey, unsigned long nValue );
    void writeDoubleNumEntry( const QString& pKey, double nValue );
    void writeBoolEntry( const QString& pKey, bool bValue );
    void writeFontEntry( const QString& pKey, const QFont& rFont );
    void writeColorEntry( const QString& pKey, const QColor& rColor );
    void writeDateTimeEntry( const QString& pKey, const QDateTime& rDateTime  );
    void writeRectEntry( const QString& pKey, const QRect& rValue );
    void writePointEntry( const QString& pKey, const QPoint& rValue );
    void writeSizeEntry( const QString& pKey, const QSize& rValue );
    void writePathEntry( const QString& pKey, const QString & path );
    void writePathListEntry( const QString& pKey, const QStringList &rValue);
    void deleteEntry( const QString& pKey, bool bNLS , bool bGlobal );
    bool deleteGroup( const QString& group, bool bDeep , bool bGlobal  );

private:
#ifndef QT_ONLY
    KConfig *m_config;
#else
    QSettings *m_config;
    QString m_name;
    bool m_forceGlobal;
#endif
};
}
}

#endif