mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 04:31:50 +00:00
[PATCH] kconfig: add "void conf_set_changed_callback(void (*fn)(void))", use it in qconf.cc
Added function sets "void (*conf_changed_callback)(void)". Call it, if .config's changed state changes. Use above in qconf.cc to set gui's save-widget's sensitvity. Signed-off-by: Karsten Wiese <fzu@wemgehoertderstaat.de> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Roman Zippel <zippel@linux-m68k.org> Acked-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
bfc10001b1
commit
3b354c557c
@ -767,18 +767,28 @@ int conf_write_autoconf(void)
|
||||
}
|
||||
|
||||
static int sym_change_count;
|
||||
static void (*conf_changed_callback)(void);
|
||||
|
||||
void sym_set_change_count(int count)
|
||||
{
|
||||
int _sym_change_count = sym_change_count;
|
||||
sym_change_count = count;
|
||||
if (conf_changed_callback &&
|
||||
(bool)_sym_change_count != (bool)count)
|
||||
conf_changed_callback();
|
||||
}
|
||||
|
||||
void sym_add_change_count(int count)
|
||||
{
|
||||
sym_change_count += count;
|
||||
sym_set_change_count(count + sym_change_count);
|
||||
}
|
||||
|
||||
bool conf_get_changed(void)
|
||||
{
|
||||
return sym_change_count;
|
||||
}
|
||||
|
||||
void conf_set_changed_callback(void (*fn)(void))
|
||||
{
|
||||
conf_changed_callback = fn;
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ P(conf_read_simple,int,(const char *name, int));
|
||||
P(conf_write,int,(const char *name));
|
||||
P(conf_write_autoconf,int,(void));
|
||||
P(conf_get_changed,bool,(void));
|
||||
P(conf_set_changed_callback, void,(void (*fn)(void)));
|
||||
|
||||
/* menu.c */
|
||||
P(rootmenu,struct menu,);
|
||||
|
@ -38,6 +38,8 @@
|
||||
static QApplication *configApp;
|
||||
static ConfigSettings *configSettings;
|
||||
|
||||
QAction *ConfigMainWindow::saveAction;
|
||||
|
||||
static inline QString qgettext(const char* str)
|
||||
{
|
||||
return QString::fromLocal8Bit(gettext(str));
|
||||
@ -1306,8 +1308,11 @@ ConfigMainWindow::ConfigMainWindow(void)
|
||||
connect(quitAction, SIGNAL(activated()), SLOT(close()));
|
||||
QAction *loadAction = new QAction("Load", QPixmap(xpm_load), "&Load", CTRL+Key_L, this);
|
||||
connect(loadAction, SIGNAL(activated()), SLOT(loadConfig()));
|
||||
QAction *saveAction = new QAction("Save", QPixmap(xpm_save), "&Save", CTRL+Key_S, this);
|
||||
saveAction = new QAction("Save", QPixmap(xpm_save), "&Save", CTRL+Key_S, this);
|
||||
connect(saveAction, SIGNAL(activated()), SLOT(saveConfig()));
|
||||
conf_set_changed_callback(conf_changed);
|
||||
// Set saveAction's initial state
|
||||
conf_changed();
|
||||
QAction *saveAsAction = new QAction("Save As...", "Save &As...", 0, this);
|
||||
connect(saveAsAction, SIGNAL(activated()), SLOT(saveConfigAs()));
|
||||
QAction *searchAction = new QAction("Search", "&Search", CTRL+Key_F, this);
|
||||
@ -1658,6 +1663,12 @@ void ConfigMainWindow::saveSettings(void)
|
||||
configSettings->writeSizes("/split2", split2->sizes());
|
||||
}
|
||||
|
||||
void ConfigMainWindow::conf_changed(void)
|
||||
{
|
||||
if (saveAction)
|
||||
saveAction->setEnabled(conf_get_changed());
|
||||
}
|
||||
|
||||
void fixup_rootmenu(struct menu *menu)
|
||||
{
|
||||
struct menu *child;
|
||||
|
@ -297,6 +297,9 @@ protected:
|
||||
|
||||
class ConfigMainWindow : public QMainWindow {
|
||||
Q_OBJECT
|
||||
|
||||
static QAction *saveAction;
|
||||
static void conf_changed(void);
|
||||
public:
|
||||
ConfigMainWindow(void);
|
||||
public slots:
|
||||
|
Loading…
Reference in New Issue
Block a user