summaryrefslogtreecommitdiffstats
path: root/krdc/hostpreferences.h
blob: 9b74b235ac6f99cbdf8b3b50d735eff0c0014f79 (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
/***************************************************************************
                       hostpreferences.h  -  per host preferences
                             -------------------
    begin                : Fri May 09 19:02 CET 2003
    copyright            : (C) 2003 by Tim Jansen
                         : (C) 2004 Nadeem Hasan <[email protected]>
    email                : [email protected]
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

#ifndef HOSTPREFERENCES_H
#define HOSTPREFERENCES_H

#include <tqstring.h>
#include <tqstringlist.h>
#include "smartptr.h"

class HostPreferences;
class KConfig;

class HostPref {
protected:
	friend class HostPreferences;
	TQString m_host;
	TQString m_type;
	KConfig *m_config;

	HostPref(KConfig *conf, const TQString &host, const TQString &type);

	virtual void load() = 0;
	virtual void setDefaults() = 0;
	virtual void save() = 0;
	virtual void remove() = 0;
public:
	virtual ~HostPref();

	virtual TQString prefDescription() const = 0;
	TQString host() const;
	TQString type() const;
	TQString prefix() const;
	static TQString prefix(const TQString &host, const TQString &type);
};

typedef SmartPtr<HostPref>      HostPrefPtr;
typedef TQValueList<HostPrefPtr> HostPrefPtrList;

class HostPreferences {
public:
	static HostPreferences *instance();
	~HostPreferences();

	HostPrefPtr getHostPref(const TQString &host, const TQString &type);
	HostPrefPtr createHostPref(const TQString &host, const TQString &type);
	HostPrefPtrList getAllHostPrefs();
	HostPrefPtr vncDefaults();
	HostPrefPtr rdpDefaults();
	void removeHostPref(HostPref *hostPref);

	void setShowBrowsingPanel( bool b );
	void setServerCompletions( const TQStringList &list );
	void setServerHistory( const TQStringList &list );

	bool showBrowsingPanel();
	TQStringList serverCompletions();
	TQStringList serverHistory();

	void sync();

private:
	HostPreferences();

	KConfig *m_config;
	static HostPreferences *m_instance;

};

#endif