mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 20:54:10 +08:00
kconfig: fix 'Save As' menu of xconfig
The 'Save As' menu of xconfig is not working; it always saves the kernel configuration into the default file irrespective of the file chosen in the dialog box. The 'Save' menu always writes into the default file, but it would make more sense to write into the file previously chosen by 'Load' or 'Save As'. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
parent
769a1c0226
commit
8741908b3e
@ -1392,6 +1392,8 @@ ConfigMainWindow::ConfigMainWindow(void)
|
|||||||
conf_set_changed_callback(conf_changed);
|
conf_set_changed_callback(conf_changed);
|
||||||
// Set saveAction's initial state
|
// Set saveAction's initial state
|
||||||
conf_changed();
|
conf_changed();
|
||||||
|
configname = xstrdup(conf_get_configname());
|
||||||
|
|
||||||
QAction *saveAsAction = new QAction("Save &As...", this);
|
QAction *saveAsAction = new QAction("Save &As...", this);
|
||||||
connect(saveAsAction, SIGNAL(triggered(bool)), SLOT(saveConfigAs()));
|
connect(saveAsAction, SIGNAL(triggered(bool)), SLOT(saveConfigAs()));
|
||||||
QAction *searchAction = new QAction("&Find", this);
|
QAction *searchAction = new QAction("&Find", this);
|
||||||
@ -1520,17 +1522,29 @@ ConfigMainWindow::ConfigMainWindow(void)
|
|||||||
|
|
||||||
void ConfigMainWindow::loadConfig(void)
|
void ConfigMainWindow::loadConfig(void)
|
||||||
{
|
{
|
||||||
QString s = QFileDialog::getOpenFileName(this, "", conf_get_configname());
|
QString str;
|
||||||
if (s.isNull())
|
QByteArray ba;
|
||||||
|
const char *name;
|
||||||
|
|
||||||
|
str = QFileDialog::getOpenFileName(this, "", configname);
|
||||||
|
if (str.isNull())
|
||||||
return;
|
return;
|
||||||
if (conf_read(QFile::encodeName(s)))
|
|
||||||
|
ba = str.toLocal8Bit();
|
||||||
|
name = ba.data();
|
||||||
|
|
||||||
|
if (conf_read(name))
|
||||||
QMessageBox::information(this, "qconf", "Unable to load configuration!");
|
QMessageBox::information(this, "qconf", "Unable to load configuration!");
|
||||||
|
|
||||||
|
free(configname);
|
||||||
|
configname = xstrdup(name);
|
||||||
|
|
||||||
ConfigView::updateListAll();
|
ConfigView::updateListAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ConfigMainWindow::saveConfig(void)
|
bool ConfigMainWindow::saveConfig(void)
|
||||||
{
|
{
|
||||||
if (conf_write(NULL)) {
|
if (conf_write(configname)) {
|
||||||
QMessageBox::information(this, "qconf", "Unable to save configuration!");
|
QMessageBox::information(this, "qconf", "Unable to save configuration!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -1541,10 +1555,24 @@ bool ConfigMainWindow::saveConfig(void)
|
|||||||
|
|
||||||
void ConfigMainWindow::saveConfigAs(void)
|
void ConfigMainWindow::saveConfigAs(void)
|
||||||
{
|
{
|
||||||
QString s = QFileDialog::getSaveFileName(this, "", conf_get_configname());
|
QString str;
|
||||||
if (s.isNull())
|
QByteArray ba;
|
||||||
|
const char *name;
|
||||||
|
|
||||||
|
str = QFileDialog::getSaveFileName(this, "", configname);
|
||||||
|
if (str.isNull())
|
||||||
return;
|
return;
|
||||||
saveConfig();
|
|
||||||
|
ba = str.toLocal8Bit();
|
||||||
|
name = ba.data();
|
||||||
|
|
||||||
|
if (conf_write(name)) {
|
||||||
|
QMessageBox::information(this, "qconf", "Unable to save configuration!");
|
||||||
|
}
|
||||||
|
conf_write_autoconf(0);
|
||||||
|
|
||||||
|
free(configname);
|
||||||
|
configname = xstrdup(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigMainWindow::searchConfig(void)
|
void ConfigMainWindow::searchConfig(void)
|
||||||
|
@ -291,6 +291,7 @@ protected:
|
|||||||
class ConfigMainWindow : public QMainWindow {
|
class ConfigMainWindow : public QMainWindow {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
|
char *configname;
|
||||||
static QAction *saveAction;
|
static QAction *saveAction;
|
||||||
static void conf_changed(void);
|
static void conf_changed(void);
|
||||||
public:
|
public:
|
||||||
|
Loading…
Reference in New Issue
Block a user