Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
scripts
kconfig
qconf.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2002 Roman Zippel <
[email protected]
>
3
* Released under the terms of the GNU GPL v2.0.
4
*/
5
6
#if QT_VERSION < 0x040000
7
#include <qlistview.h>
8
#else
9
#include <q3listview.h>
10
#endif
11
#include <qsettings.h>
12
13
#if QT_VERSION < 0x040000
14
#define Q3ValueList QValueList
15
#define Q3PopupMenu QPopupMenu
16
#define Q3ListView QListView
17
#define Q3ListViewItem QListViewItem
18
#define Q3VBox QVBox
19
#define Q3TextBrowser QTextBrowser
20
#define Q3MainWindow QMainWindow
21
#define Q3Action QAction
22
#define Q3ToolBar QToolBar
23
#define Q3ListViewItemIterator QListViewItemIterator
24
#define Q3FileDialog QFileDialog
25
#endif
26
27
class
ConfigView
;
28
class
ConfigList
;
29
class
ConfigItem
;
30
class
ConfigLineEdit
;
31
class
ConfigMainWindow
;
32
33
class
ConfigSettings
:
public
QSettings {
34
public
:
35
Q3ValueList<int>
readSizes
(
const
QString&
key
,
bool
*ok);
36
bool
writeSizes
(
const
QString& key,
const
Q3ValueList<int>&
value
);
37
};
38
39
enum
colIdx
{
40
promptColIdx
,
nameColIdx
,
noColIdx
,
modColIdx
,
yesColIdx
,
dataColIdx
,
colNr
41
};
42
enum
listMode
{
43
singleMode
,
menuMode
,
symbolMode
,
fullMode
,
listMode
44
};
45
enum
optionMode
{
46
normalOpt
= 0,
allOpt
,
promptOpt
47
};
48
49
class
ConfigList
:
public
Q3ListView
{
50
Q_OBJECT
51
typedef
class
Q3ListView
Parent;
52
public
:
53
ConfigList
(
ConfigView
*
p
,
const
char
*
name
= 0);
54
void
reinit
(
void
);
55
ConfigView
*
parent
(
void
)
const
56
{
57
return
(
ConfigView
*)Parent::parent();
58
}
59
ConfigItem
*
findConfigItem
(
struct
menu
*);
60
61
protected
:
62
void
keyPressEvent
(QKeyEvent *
e
);
63
void
contentsMousePressEvent
(QMouseEvent *
e
);
64
void
contentsMouseReleaseEvent
(QMouseEvent *
e
);
65
void
contentsMouseMoveEvent
(QMouseEvent *
e
);
66
void
contentsMouseDoubleClickEvent
(QMouseEvent *
e
);
67
void
focusInEvent
(QFocusEvent *
e
);
68
void
contextMenuEvent
(QContextMenuEvent *
e
);
69
70
public
slots
:
71
void
setRootMenu
(
struct
menu
*
menu
);
72
73
void
updateList
(
ConfigItem
*
item
);
74
void
setValue
(
ConfigItem
*
item
,
tristate
val
);
75
void
changeValue
(
ConfigItem
*
item
);
76
void
updateSelection
(
void
);
77
void
saveSettings
(
void
);
78
signals
:
79
void
menuChanged
(
struct
menu
*
menu
);
80
void
menuSelected
(
struct
menu
*
menu
);
81
void
parentSelected
(
void
);
82
void
gotFocus
(
struct
menu
*);
83
84
public
:
85
void
updateListAll
(
void
)
86
{
87
updateAll
=
true
;
88
updateList
(
NULL
);
89
updateAll
=
false
;
90
}
91
ConfigList
*
listView
()
92
{
93
return
this
;
94
}
95
ConfigItem
*
firstChild
()
const
96
{
97
return
(
ConfigItem
*)Parent::firstChild();
98
}
99
int
mapIdx
(
colIdx
idx
)
100
{
101
return
colMap[
idx
];
102
}
103
void
addColumn
(
colIdx
idx
,
const
QString&
label
)
104
{
105
colMap[
idx
] = Parent::addColumn(label);
106
colRevMap[colMap[
idx
]] =
idx
;
107
}
108
void
removeColumn
(
colIdx
idx
)
109
{
110
int
col = colMap[
idx
];
111
if
(col >= 0) {
112
Parent::removeColumn(col);
113
colRevMap[col] = colMap[
idx
] = -1;
114
}
115
}
116
void
setAllOpen
(
bool
open
);
117
void
setParentMenu
(
void
);
118
119
bool
menuSkip
(
struct
menu
*);
120
121
template
<
class
P>
122
void
updateMenuList
(
P
*,
struct
menu
*);
123
124
bool
updateAll
;
125
126
QPixmap
symbolYesPix
,
symbolModPix
,
symbolNoPix
;
127
QPixmap
choiceYesPix
,
choiceNoPix
;
128
QPixmap
menuPix
,
menuInvPix
,
menuBackPix
,
voidPix
;
129
130
bool
showName
,
showRange
,
showData
;
131
enum
listMode
mode
;
132
enum
optionMode
optMode
;
133
struct
menu
*
rootEntry
;
134
QColorGroup
disabledColorGroup
;
135
QColorGroup
inactivedColorGroup
;
136
Q3PopupMenu
*
headerPopup
;
137
138
private
:
139
int
colMap[
colNr
];
140
int
colRevMap[
colNr
];
141
};
142
143
class
ConfigItem
:
public
Q3ListViewItem
{
144
typedef
class
Q3ListViewItem
Parent;
145
public
:
146
ConfigItem
(
Q3ListView
*parent,
ConfigItem
*
after
,
struct
menu
*
m
,
bool
v
)
147
: Parent(parent, after),
menu
(m),
visible
(v),
goParent
(
false
)
148
{
149
init
();
150
}
151
ConfigItem
(
ConfigItem
*parent,
ConfigItem
*
after
,
struct
menu
*
m
,
bool
v
)
152
: Parent(parent, after),
menu
(m),
visible
(v),
goParent
(
false
)
153
{
154
init
();
155
}
156
ConfigItem
(
Q3ListView
*parent,
ConfigItem
*
after
,
bool
v
)
157
: Parent(parent, after),
menu
(0),
visible
(v),
goParent
(
true
)
158
{
159
init
();
160
}
161
~ConfigItem
(
void
);
162
void
init
(
void
);
163
void
okRename
(
int
col);
164
void
updateMenu
(
void
);
165
void
testUpdateMenu
(
bool
v
);
166
ConfigList
*
listView
()
const
167
{
168
return
(
ConfigList
*)Parent::listView();
169
}
170
ConfigItem
*
firstChild
()
const
171
{
172
return
(
ConfigItem
*)Parent::firstChild();
173
}
174
ConfigItem
*
nextSibling
()
const
175
{
176
return
(
ConfigItem
*)Parent::nextSibling();
177
}
178
void
setText
(
colIdx
idx
,
const
QString&
text
)
179
{
180
Parent::setText(
listView
()->mapIdx(idx), text);
181
}
182
QString
text
(
colIdx
idx
)
const
183
{
184
return
Parent::text
(
listView
()->mapIdx(idx));
185
}
186
void
setPixmap
(
colIdx
idx
,
const
QPixmap&
pm
)
187
{
188
Parent::setPixmap(
listView
()->mapIdx(idx), pm);
189
}
190
const
QPixmap*
pixmap
(
colIdx
idx
)
const
191
{
192
return
Parent::pixmap(
listView
()->mapIdx(idx));
193
}
194
void
paintCell
(QPainter*
p
,
const
QColorGroup& cg,
int
column,
int
width
,
int
align
);
195
196
ConfigItem
*
nextItem
;
197
struct
menu
*
menu
;
198
bool
visible
;
199
bool
goParent
;
200
};
201
202
class
ConfigLineEdit
:
public
QLineEdit {
203
Q_OBJECT
204
typedef
class
QLineEdit Parent;
205
public
:
206
ConfigLineEdit
(
ConfigView
*
parent
);
207
ConfigView
*
parent
(
void
)
const
208
{
209
return
(
ConfigView
*)Parent::parent();
210
}
211
void
show
(
ConfigItem
*
i
);
212
void
keyPressEvent
(QKeyEvent *
e
);
213
214
public
:
215
ConfigItem
*
item
;
216
};
217
218
class
ConfigView
:
public
Q3VBox
{
219
Q_OBJECT
220
typedef
class
Q3VBox
Parent;
221
public
:
222
ConfigView
(QWidget*
parent
,
const
char
*
name
= 0);
223
~ConfigView
(
void
);
224
static
void
updateList
(
ConfigItem
*
item
);
225
static
void
updateListAll
(
void
);
226
227
bool
showName
(
void
)
const
{
return
list
->showName; }
228
bool
showRange
(
void
)
const
{
return
list
->showRange; }
229
bool
showData
(
void
)
const
{
return
list
->showData; }
230
public
slots
:
231
void
setShowName
(
bool
);
232
void
setShowRange
(
bool
);
233
void
setShowData
(
bool
);
234
void
setOptionMode
(QAction *);
235
signals
:
236
void
showNameChanged
(
bool
);
237
void
showRangeChanged
(
bool
);
238
void
showDataChanged
(
bool
);
239
public
:
240
ConfigList
*
list
;
241
ConfigLineEdit
*
lineEdit
;
242
243
static
ConfigView
*
viewList
;
244
ConfigView
*
nextView
;
245
246
static
QAction *
showNormalAction
;
247
static
QAction *
showAllAction
;
248
static
QAction *
showPromptAction
;
249
};
250
251
class
ConfigInfoView
:
public
Q3TextBrowser
{
252
Q_OBJECT
253
typedef
class
Q3TextBrowser
Parent;
254
public
:
255
ConfigInfoView
(QWidget*
parent
,
const
char
*
name
= 0);
256
bool
showDebug
(
void
)
const
{
return
_showDebug
; }
257
258
public
slots
:
259
void
setInfo
(
struct
menu
*
menu
);
260
void
saveSettings
(
void
);
261
void
setShowDebug
(
bool
);
262
263
signals
:
264
void
showDebugChanged
(
bool
);
265
void
menuSelected
(
struct
menu
*);
266
267
protected
:
268
void
symbolInfo
(
void
);
269
void
menuInfo
(
void
);
270
QString
debug_info
(
struct
symbol
*
sym
);
271
static
QString
print_filter
(
const
QString &
str
);
272
static
void
expr_print_help
(
void
*
data
,
struct
symbol
*
sym
,
const
char
*
str
);
273
Q3PopupMenu
*
createPopupMenu
(
const
QPoint&
pos
);
274
void
contentsContextMenuEvent
(QContextMenuEvent *
e
);
275
276
struct
symbol
*
sym
;
277
struct
menu
*
_menu
;
278
bool
_showDebug
;
279
};
280
281
class
ConfigSearchWindow
:
public
QDialog {
282
Q_OBJECT
283
typedef
class
QDialog Parent;
284
public
:
285
ConfigSearchWindow
(
ConfigMainWindow
*
parent
,
const
char
*
name
= 0);
286
287
public
slots
:
288
void
saveSettings
(
void
);
289
void
search
(
void
);
290
291
protected
:
292
QLineEdit*
editField
;
293
QPushButton*
searchButton
;
294
QSplitter*
split
;
295
ConfigView
*
list
;
296
ConfigInfoView
*
info
;
297
298
struct
symbol
**
result
;
299
};
300
301
class
ConfigMainWindow
:
public
Q3MainWindow
{
302
Q_OBJECT
303
304
static
Q3Action
*saveAction;
305
static
void
conf_changed(
void
);
306
public
:
307
ConfigMainWindow
(
void
);
308
public
slots
:
309
void
changeMenu
(
struct
menu
*);
310
void
setMenuLink
(
struct
menu
*);
311
void
listFocusChanged
(
void
);
312
void
goBack
(
void
);
313
void
loadConfig
(
void
);
314
bool
saveConfig
(
void
);
315
void
saveConfigAs
(
void
);
316
void
searchConfig
(
void
);
317
void
showSingleView
(
void
);
318
void
showSplitView
(
void
);
319
void
showFullView
(
void
);
320
void
showIntro
(
void
);
321
void
showAbout
(
void
);
322
void
saveSettings
(
void
);
323
324
protected
:
325
void
closeEvent
(QCloseEvent *
e
);
326
327
ConfigSearchWindow
*
searchWindow
;
328
ConfigView
*
menuView
;
329
ConfigList
*
menuList
;
330
ConfigView
*
configView
;
331
ConfigList
*
configList
;
332
ConfigInfoView
*
helpText
;
333
Q3ToolBar
*
toolBar
;
334
Q3Action
*
backAction
;
335
QSplitter*
split1
;
336
QSplitter*
split2
;
337
};
Generated on Thu Jan 10 2013 15:03:01 for Linux Kernel by
1.8.2