summaryrefslogtreecommitdiffstats
path: root/scripts/kconfig/qconf.h
diff options
context:
space:
mode:
authorRoman Zippel <zippel@linux-m68k.org>2006-06-09 07:12:46 +0200
committerSam Ravnborg <sam@mars.ravnborg.org>2006-06-09 07:31:31 +0200
commit7fc925fd6a4c24e1db879d227fc0a0f65a335aa1 (patch)
tree35ff433ba285d150a3347bee23afcd79a3d2aa31 /scripts/kconfig/qconf.h
parentkconfig: Add search option for xconfig (diff)
downloadlinux-7fc925fd6a4c24e1db879d227fc0a0f65a335aa1.tar.xz
linux-7fc925fd6a4c24e1db879d227fc0a0f65a335aa1.zip
kconfig: finer customization via popup menus
This allows to configure every symbol list and info window separately via a popup menu, these settings are also separately saved and restored. Cleanup the ConfigSettings class a bit to reduce the number of #ifdef. Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Diffstat (limited to 'scripts/kconfig/qconf.h')
-rw-r--r--scripts/kconfig/qconf.h95
1 files changed, 61 insertions, 34 deletions
diff --git a/scripts/kconfig/qconf.h b/scripts/kconfig/qconf.h
index a548d13149b3..fb50e1c6029f 100644
--- a/scripts/kconfig/qconf.h
+++ b/scripts/kconfig/qconf.h
@@ -7,9 +7,25 @@
#if QT_VERSION >= 300
#include <qsettings.h>
#else
-class QSettings { };
+class QSettings {
+public:
+ void beginGroup(const QString& group) { }
+ void endGroup(void) { }
+ bool readBoolEntry(const QString& key, bool def = FALSE, bool* ok = 0) const
+ { if (ok) *ok = FALSE; return def; }
+ int readNumEntry(const QString& key, int def = 0, bool* ok = 0) const
+ { if (ok) *ok = FALSE; return def; }
+ QString readEntry(const QString& key, const QString& def = QString::null, bool* ok = 0) const
+ { if (ok) *ok = FALSE; return def; }
+ QStringList readListEntry(const QString& key, bool* ok = 0) const
+ { if (ok) *ok = FALSE; return QStringList(); }
+ template <class t>
+ bool writeEntry(const QString& key, t value)
+ { return TRUE; }
+};
#endif
+class ConfigView;
class ConfigList;
class ConfigItem;
class ConfigLineEdit;
@@ -18,35 +34,8 @@ class ConfigMainWindow;
class ConfigSettings : public QSettings {
public:
- ConfigSettings();
-
-#if QT_VERSION >= 300
- void readListSettings();
QValueList<int> readSizes(const QString& key, bool *ok);
bool writeSizes(const QString& key, const QValueList<int>& value);
-#endif
-
- bool showAll;
- bool showName;
- bool showRange;
- bool showData;
-};
-
-class ConfigView : public QVBox {
- Q_OBJECT
- typedef class QVBox Parent;
-public:
- ConfigView(QWidget* parent, ConfigSettings* configSettings);
- ~ConfigView(void);
- static void updateList(ConfigItem* item);
- static void updateListAll(void);
-
-public:
- ConfigList* list;
- ConfigLineEdit* lineEdit;
-
- static ConfigView* viewList;
- ConfigView* nextView;
};
enum colIdx {
@@ -60,7 +49,7 @@ class ConfigList : public QListView {
Q_OBJECT
typedef class QListView Parent;
public:
- ConfigList(ConfigView* p, ConfigSettings *configSettings);
+ ConfigList(ConfigView* p, const char *name = 0);
void reinit(void);
ConfigView* parent(void) const
{
@@ -74,6 +63,8 @@ protected:
void contentsMouseMoveEvent(QMouseEvent *e);
void contentsMouseDoubleClickEvent(QMouseEvent *e);
void focusInEvent(QFocusEvent *e);
+ void contextMenuEvent(QContextMenuEvent *e);
+
public slots:
void setRootMenu(struct menu *menu);
@@ -81,6 +72,7 @@ public slots:
void setValue(ConfigItem* item, tristate val);
void changeValue(ConfigItem* item);
void updateSelection(void);
+ void saveSettings(void);
signals:
void menuChanged(struct menu *menu);
void menuSelected(struct menu *menu);
@@ -136,6 +128,7 @@ public:
struct menu *rootEntry;
QColorGroup disabledColorGroup;
QColorGroup inactivedColorGroup;
+ QPopupMenu* headerPopup;
private:
int colMap[colNr];
@@ -219,6 +212,37 @@ public:
ConfigItem *item;
};
+class ConfigView : public QVBox {
+ Q_OBJECT
+ typedef class QVBox Parent;
+public:
+ ConfigView(QWidget* parent, const char *name = 0);
+ ~ConfigView(void);
+ static void updateList(ConfigItem* item);
+ static void updateListAll(void);
+
+ bool showAll(void) const { return list->showAll; }
+ bool showName(void) const { return list->showName; }
+ bool showRange(void) const { return list->showRange; }
+ bool showData(void) const { return list->showData; }
+public slots:
+ void setShowAll(bool);
+ void setShowName(bool);
+ void setShowRange(bool);
+ void setShowData(bool);
+signals:
+ void showAllChanged(bool);
+ void showNameChanged(bool);
+ void showRangeChanged(bool);
+ void showDataChanged(bool);
+public:
+ ConfigList* list;
+ ConfigLineEdit* lineEdit;
+
+ static ConfigView* viewList;
+ ConfigView* nextView;
+};
+
class ConfigInfoView : public QTextBrowser {
Q_OBJECT
typedef class QTextBrowser Parent;
@@ -228,6 +252,7 @@ public:
public slots:
void setInfo(struct menu *menu);
+ void saveSettings(void);
void setSource(const QString& name);
void setShowDebug(bool);
@@ -239,6 +264,8 @@ protected:
QString debug_info(struct symbol *sym);
static QString print_filter(const QString &str);
static void expr_print_help(void *data, const char *str);
+ QPopupMenu* createPopupMenu(const QPoint& pos);
+ void contentsContextMenuEvent(QContextMenuEvent *e);
struct menu *menu;
bool _showDebug;
@@ -248,12 +275,16 @@ class ConfigSearchWindow : public QDialog {
Q_OBJECT
typedef class QDialog Parent;
public:
- ConfigSearchWindow(QWidget* parent);
+ ConfigSearchWindow(QWidget* parent, const char *name = 0);
+
public slots:
+ void saveSettings(void);
void search(void);
+
protected:
QLineEdit* editField;
QPushButton* searchButton;
+ QSplitter* split;
ConfigView* list;
ConfigInfoView* info;
@@ -276,10 +307,6 @@ public slots:
void showSingleView(void);
void showSplitView(void);
void showFullView(void);
- void setShowAll(bool);
- void setShowRange(bool);
- void setShowName(bool);
- void setShowData(bool);
void showIntro(void);
void showAbout(void);
void saveSettings(void);