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);
|
||||
// Set saveAction's initial state
|
||||
conf_changed();
|
||||
configname = xstrdup(conf_get_configname());
|
||||
|
||||
QAction *saveAsAction = new QAction("Save &As...", this);
|
||||
connect(saveAsAction, SIGNAL(triggered(bool)), SLOT(saveConfigAs()));
|
||||
QAction *searchAction = new QAction("&Find", this);
|
||||
@ -1520,17 +1522,29 @@ ConfigMainWindow::ConfigMainWindow(void)
|
||||
|
||||
void ConfigMainWindow::loadConfig(void)
|
||||
{
|
||||
QString s = QFileDialog::getOpenFileName(this, "", conf_get_configname());
|
||||
if (s.isNull())
|
||||
QString str;
|
||||
QByteArray ba;
|
||||
const char *name;
|
||||
|
||||
str = QFileDialog::getOpenFileName(this, "", configname);
|
||||
if (str.isNull())
|
||||
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!");
|
||||
|
||||
free(configname);
|
||||
configname = xstrdup(name);
|
||||
|
||||
ConfigView::updateListAll();
|
||||
}
|
||||
|
||||
bool ConfigMainWindow::saveConfig(void)
|
||||
{
|
||||
if (conf_write(NULL)) {
|
||||
if (conf_write(configname)) {
|
||||
QMessageBox::information(this, "qconf", "Unable to save configuration!");
|
||||
return false;
|
||||
}
|
||||
@ -1541,10 +1555,24 @@ bool ConfigMainWindow::saveConfig(void)
|
||||
|
||||
void ConfigMainWindow::saveConfigAs(void)
|
||||
{
|
||||
QString s = QFileDialog::getSaveFileName(this, "", conf_get_configname());
|
||||
if (s.isNull())
|
||||
QString str;
|
||||
QByteArray ba;
|
||||
const char *name;
|
||||
|
||||
str = QFileDialog::getSaveFileName(this, "", configname);
|
||||
if (str.isNull())
|
||||
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)
|
||||
|
@ -291,6 +291,7 @@ protected:
|
||||
class ConfigMainWindow : public QMainWindow {
|
||||
Q_OBJECT
|
||||
|
||||
char *configname;
|
||||
static QAction *saveAction;
|
||||
static void conf_changed(void);
|
||||
public:
|
||||
|
Loading…
Reference in New Issue
Block a user