diff options
Diffstat (limited to 'scripts/kconfig/qconf.h')
-rw-r--r-- | scripts/kconfig/qconf.h | 263 |
1 files changed, 263 insertions, 0 deletions
diff --git a/scripts/kconfig/qconf.h b/scripts/kconfig/qconf.h new file mode 100644 index 000000000000..7c03927d4c7c --- /dev/null +++ b/scripts/kconfig/qconf.h | |||
@@ -0,0 +1,263 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org> | ||
3 | * Released under the terms of the GNU GPL v2.0. | ||
4 | */ | ||
5 | |||
6 | #include <qlistview.h> | ||
7 | #if QT_VERSION >= 300 | ||
8 | #include <qsettings.h> | ||
9 | #else | ||
10 | class QSettings { }; | ||
11 | #endif | ||
12 | |||
13 | class ConfigList; | ||
14 | class ConfigItem; | ||
15 | class ConfigLineEdit; | ||
16 | class ConfigMainWindow; | ||
17 | |||
18 | |||
19 | class ConfigSettings : public QSettings { | ||
20 | public: | ||
21 | ConfigSettings(); | ||
22 | |||
23 | #if QT_VERSION >= 300 | ||
24 | void readListSettings(); | ||
25 | QValueList<int> ConfigSettings::readSizes(const QString& key, bool *ok); | ||
26 | bool ConfigSettings::writeSizes(const QString& key, const QValueList<int>& value); | ||
27 | #endif | ||
28 | |||
29 | bool showAll; | ||
30 | bool showName; | ||
31 | bool showRange; | ||
32 | bool showData; | ||
33 | }; | ||
34 | |||
35 | class ConfigView : public QVBox { | ||
36 | Q_OBJECT | ||
37 | typedef class QVBox Parent; | ||
38 | public: | ||
39 | ConfigView(QWidget* parent, ConfigMainWindow* cview, ConfigSettings* configSettings); | ||
40 | ~ConfigView(void); | ||
41 | static void updateList(ConfigItem* item); | ||
42 | static void updateListAll(void); | ||
43 | |||
44 | public: | ||
45 | ConfigList* list; | ||
46 | ConfigLineEdit* lineEdit; | ||
47 | |||
48 | static ConfigView* viewList; | ||
49 | ConfigView* nextView; | ||
50 | }; | ||
51 | |||
52 | enum colIdx { | ||
53 | promptColIdx, nameColIdx, noColIdx, modColIdx, yesColIdx, dataColIdx, colNr | ||
54 | }; | ||
55 | enum listMode { | ||
56 | singleMode, menuMode, symbolMode, fullMode | ||
57 | }; | ||
58 | |||
59 | class ConfigList : public QListView { | ||
60 | Q_OBJECT | ||
61 | typedef class QListView Parent; | ||
62 | public: | ||
63 | ConfigList(ConfigView* p, ConfigMainWindow* cview, ConfigSettings *configSettings); | ||
64 | void reinit(void); | ||
65 | ConfigView* parent(void) const | ||
66 | { | ||
67 | return (ConfigView*)Parent::parent(); | ||
68 | } | ||
69 | |||
70 | protected: | ||
71 | ConfigMainWindow* cview; | ||
72 | |||
73 | void keyPressEvent(QKeyEvent *e); | ||
74 | void contentsMousePressEvent(QMouseEvent *e); | ||
75 | void contentsMouseReleaseEvent(QMouseEvent *e); | ||
76 | void contentsMouseMoveEvent(QMouseEvent *e); | ||
77 | void contentsMouseDoubleClickEvent(QMouseEvent *e); | ||
78 | void focusInEvent(QFocusEvent *e); | ||
79 | public slots: | ||
80 | void setRootMenu(struct menu *menu); | ||
81 | |||
82 | void updateList(ConfigItem *item); | ||
83 | void setValue(ConfigItem* item, tristate val); | ||
84 | void changeValue(ConfigItem* item); | ||
85 | void updateSelection(void); | ||
86 | signals: | ||
87 | void menuSelected(struct menu *menu); | ||
88 | void parentSelected(void); | ||
89 | void gotFocus(void); | ||
90 | |||
91 | public: | ||
92 | void updateListAll(void) | ||
93 | { | ||
94 | updateAll = true; | ||
95 | updateList(NULL); | ||
96 | updateAll = false; | ||
97 | } | ||
98 | ConfigList* listView() | ||
99 | { | ||
100 | return this; | ||
101 | } | ||
102 | ConfigItem* firstChild() const | ||
103 | { | ||
104 | return (ConfigItem *)Parent::firstChild(); | ||
105 | } | ||
106 | int mapIdx(colIdx idx) | ||
107 | { | ||
108 | return colMap[idx]; | ||
109 | } | ||
110 | void addColumn(colIdx idx, const QString& label) | ||
111 | { | ||
112 | colMap[idx] = Parent::addColumn(label); | ||
113 | colRevMap[colMap[idx]] = idx; | ||
114 | } | ||
115 | void removeColumn(colIdx idx) | ||
116 | { | ||
117 | int col = colMap[idx]; | ||
118 | if (col >= 0) { | ||
119 | Parent::removeColumn(col); | ||
120 | colRevMap[col] = colMap[idx] = -1; | ||
121 | } | ||
122 | } | ||
123 | void setAllOpen(bool open); | ||
124 | void setParentMenu(void); | ||
125 | |||
126 | template <class P> | ||
127 | void ConfigList::updateMenuList(P*, struct menu*); | ||
128 | |||
129 | bool updateAll; | ||
130 | |||
131 | QPixmap symbolYesPix, symbolModPix, symbolNoPix; | ||
132 | QPixmap choiceYesPix, choiceNoPix; | ||
133 | QPixmap menuPix, menuInvPix, menuBackPix, voidPix; | ||
134 | |||
135 | bool showAll, showName, showRange, showData; | ||
136 | enum listMode mode; | ||
137 | struct menu *rootEntry; | ||
138 | QColorGroup disabledColorGroup; | ||
139 | QColorGroup inactivedColorGroup; | ||
140 | |||
141 | private: | ||
142 | int colMap[colNr]; | ||
143 | int colRevMap[colNr]; | ||
144 | }; | ||
145 | |||
146 | class ConfigItem : public QListViewItem { | ||
147 | typedef class QListViewItem Parent; | ||
148 | public: | ||
149 | ConfigItem(QListView *parent, ConfigItem *after, struct menu *m, bool v) | ||
150 | : Parent(parent, after), menu(m), visible(v), goParent(false) | ||
151 | { | ||
152 | init(); | ||
153 | } | ||
154 | ConfigItem(ConfigItem *parent, ConfigItem *after, struct menu *m, bool v) | ||
155 | : Parent(parent, after), menu(m), visible(v), goParent(false) | ||
156 | { | ||
157 | init(); | ||
158 | } | ||
159 | ConfigItem(QListView *parent, ConfigItem *after, bool v) | ||
160 | : Parent(parent, after), menu(0), visible(v), goParent(true) | ||
161 | { | ||
162 | init(); | ||
163 | } | ||
164 | ~ConfigItem(void); | ||
165 | void init(void); | ||
166 | #if QT_VERSION >= 300 | ||
167 | void okRename(int col); | ||
168 | #endif | ||
169 | void updateMenu(void); | ||
170 | void testUpdateMenu(bool v); | ||
171 | ConfigList* listView() const | ||
172 | { | ||
173 | return (ConfigList*)Parent::listView(); | ||
174 | } | ||
175 | ConfigItem* firstChild() const | ||
176 | { | ||
177 | return (ConfigItem *)Parent::firstChild(); | ||
178 | } | ||
179 | ConfigItem* nextSibling() const | ||
180 | { | ||
181 | return (ConfigItem *)Parent::nextSibling(); | ||
182 | } | ||
183 | void setText(colIdx idx, const QString& text) | ||
184 | { | ||
185 | Parent::setText(listView()->mapIdx(idx), text); | ||
186 | } | ||
187 | QString text(colIdx idx) const | ||
188 | { | ||
189 | return Parent::text(listView()->mapIdx(idx)); | ||
190 | } | ||
191 | void setPixmap(colIdx idx, const QPixmap& pm) | ||
192 | { | ||
193 | Parent::setPixmap(listView()->mapIdx(idx), pm); | ||
194 | } | ||
195 | const QPixmap* pixmap(colIdx idx) const | ||
196 | { | ||
197 | return Parent::pixmap(listView()->mapIdx(idx)); | ||
198 | } | ||
199 | void paintCell(QPainter* p, const QColorGroup& cg, int column, int width, int align); | ||
200 | |||
201 | ConfigItem* nextItem; | ||
202 | struct menu *menu; | ||
203 | bool visible; | ||
204 | bool goParent; | ||
205 | }; | ||
206 | |||
207 | class ConfigLineEdit : public QLineEdit { | ||
208 | Q_OBJECT | ||
209 | typedef class QLineEdit Parent; | ||
210 | public: | ||
211 | ConfigLineEdit(ConfigView* parent) | ||
212 | : Parent(parent) | ||
213 | { } | ||
214 | ConfigView* parent(void) const | ||
215 | { | ||
216 | return (ConfigView*)Parent::parent(); | ||
217 | } | ||
218 | void show(ConfigItem *i); | ||
219 | void keyPressEvent(QKeyEvent *e); | ||
220 | |||
221 | public: | ||
222 | ConfigItem *item; | ||
223 | }; | ||
224 | |||
225 | class ConfigMainWindow : public QMainWindow { | ||
226 | Q_OBJECT | ||
227 | public: | ||
228 | ConfigMainWindow(void); | ||
229 | public slots: | ||
230 | void setHelp(QListViewItem* item); | ||
231 | void changeMenu(struct menu *); | ||
232 | void listFocusChanged(void); | ||
233 | void goBack(void); | ||
234 | void loadConfig(void); | ||
235 | void saveConfig(void); | ||
236 | void saveConfigAs(void); | ||
237 | void showSingleView(void); | ||
238 | void showSplitView(void); | ||
239 | void showFullView(void); | ||
240 | void setShowAll(bool); | ||
241 | void setShowDebug(bool); | ||
242 | void setShowRange(bool); | ||
243 | void setShowName(bool); | ||
244 | void setShowData(bool); | ||
245 | void showIntro(void); | ||
246 | void showAbout(void); | ||
247 | void saveSettings(void); | ||
248 | |||
249 | protected: | ||
250 | void closeEvent(QCloseEvent *e); | ||
251 | |||
252 | ConfigView *menuView; | ||
253 | ConfigList *menuList; | ||
254 | ConfigView *configView; | ||
255 | ConfigList *configList; | ||
256 | QTextView *helpText; | ||
257 | QToolBar *toolBar; | ||
258 | QAction *backAction; | ||
259 | QSplitter* split1; | ||
260 | QSplitter* split2; | ||
261 | |||
262 | bool showDebug; | ||
263 | }; | ||