Child: [d3e20c] (diff)

Download this file

confgui.h    139 lines (119 with data), 3.4 kB

  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
136
137
138
#ifndef _confgui_h_included_
#define _confgui_h_included_
/* @(#$Id: confgui.h,v 1.1 2007-09-26 12:16:48 dockes Exp $ (C) 2007 J.F.Dockes */
#include <string>
#include <qstring.h>
#include <qwidget.h>
using std::string;
class QHBoxLayout;
class QLineEdit;
class QListBox;
namespace confgui {
// A class to isolate the gui widget from the config storage mechanism
class ConfLink {
public:
virtual bool set(const string& val) = 0;
virtual bool get(string& val) = 0;
};
// A widget to let the user change a configuration parameter
class ConfParamW : public QWidget {
Q_OBJECT
public:
ConfParamW(QWidget *parent, ConfLink &cflink)
: QWidget(parent), m_cflink(cflink)
{
}
protected:
ConfLink& m_cflink;
QHBoxLayout *m_hl;
virtual bool createCommon(const QString& lbltxt,
const QString& tltptxt);
protected slots:
void setValue(const QString& newvalue);
void setValue(int newvalue);
void setValue(bool newvalue);
};
// Widgets for setting the different types of configuration parameters:
class ConfParamIntW : public ConfParamW {
public:
ConfParamIntW(QWidget *parent, ConfLink& cflink,
const QString& lbltxt,
const QString& tltptxt,
int minvalue = INT_MIN,
int maxvalue = INT_MAX);
};
// Arbitrary string
class ConfParamStrW : public ConfParamW {
public:
ConfParamStrW(QWidget *parent, ConfLink& cflink,
const QString& lbltxt,
const QString& tltptxt);
};
// Constrained string: choose from list
class ConfParamCStrW : public ConfParamW {
public:
ConfParamCStrW(QWidget *parent, ConfLink& cflink,
const QString& lbltxt,
const QString& tltptxt, const QStringList& sl);
};
class ConfParamBoolW : public ConfParamW {
public:
ConfParamBoolW(QWidget *parent, ConfLink& cflink,
const QString& lbltxt,
const QString& tltptxt);
};
class ConfParamFNW : public ConfParamW {
Q_OBJECT
public:
ConfParamFNW(QWidget *parent, ConfLink& cflink,
const QString& lbltxt,
const QString& tltptxt);
protected slots:
void showBrowserDialog();
private:
QLineEdit *m_le;
};
// String list
class ConfParamSLW : public ConfParamW {
Q_OBJECT
public:
ConfParamSLW(QWidget *parent, ConfLink& cflink,
const QString& lbltxt,
const QString& tltptxt);
protected slots:
virtual void showInputDialog();
void deleteSelected();
protected:
QListBox *m_lb;
void listToConf();
};
// File/Dir name list
class ConfParamFNLW : public ConfParamSLW {
Q_OBJECT
public:
ConfParamFNLW(QWidget *parent, ConfLink& cflink,
const QString& lbltxt,
const QString& tltptxt)
: ConfParamSLW(parent, cflink, lbltxt, tltptxt)
{
}
protected slots:
virtual void showInputDialog();
};
// Constrained string list (chose from predefined)
class ConfParamCSLW : public ConfParamSLW {
Q_OBJECT
public:
ConfParamCSLW(QWidget *parent, ConfLink& cflink,
const QString& lbltxt,
const QString& tltptxt,
const QStringList& sl)
: ConfParamSLW(parent, cflink, lbltxt, tltptxt), m_sl(sl)
{
}
protected slots:
virtual void showInputDialog();
const QStringList &m_sl;
};
}
#endif /* _confgui_h_included_ */