Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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 {
41 };
42 enum listMode {
44 };
45 enum optionMode {
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);
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;
89  updateAll = false;
90  }
92  {
93  return this;
94  }
96  {
97  return (ConfigItem *)Parent::firstChild();
98  }
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  }
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 
129 
133  struct menu *rootEntry;
134  QColorGroup disabledColorGroup;
135  QColorGroup inactivedColorGroup;
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  }
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);
167  {
168  return (ConfigList*)Parent::listView();
169  }
171  {
172  return (ConfigItem *)Parent::firstChild();
173  }
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 
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:
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:
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:
242 
245 
246  static QAction *showNormalAction;
247  static QAction *showAllAction;
248  static QAction *showPromptAction;
249 };
250 
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;
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;
297 
298  struct symbol **result;
299 };
300 
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 
335  QSplitter* split1;
336  QSplitter* split2;
337 };