Mercurial > octave-dspies
diff libgui/src/settings-dialog.cc @ 18310:03a8428adef7 gui-release
gui: provide prefernces for the file browser's directory at startup
* settings-dialog.ui: add check box for restoring previous directory and
line edit / file dialog for setting startup directory
* settings-dialog.cc (constructor): init new input widgets from settings,
connect needed signals;
(write_changed_settings): write values from new widgets into settings file;
(get_file_browser_dir): new slot for settings octave dir in a file dialog;
(get_dir): common function for settings dialog slots;
(get_octave_dir): use get_dir;
(set_disabled_pref_file_browser_dir): slot for disabling some setting widgets
* settings-dialog.h: new slots get_file_browser_dir, get_dir,
set_disabled_pref_file_browser_dir
* files-doc-widget.cc (constructor): set start directory depending on settings
author | Torsten <ttl@justmail.de> |
---|---|
date | Sun, 19 Jan 2014 17:25:35 +0100 |
parents | 024940bd5b77 |
children | 3df71e1d3b24 |
line wrap: on
line diff
--- a/libgui/src/settings-dialog.cc Sun Jan 19 11:30:15 2014 +0100 +++ b/libgui/src/settings-dialog.cc Sun Jan 19 17:25:35 2014 +0100 @@ -183,6 +183,8 @@ settings->value ("terminal/fontName","Courier New").toString ()) ); ui->terminal_fontSize->setValue ( settings->value ("terminal/fontSize", 10).toInt ()); + + // file browser ui->showFileSize->setChecked ( settings->value ("filesdockwidget/showFileSize", false).toBool ()); ui->showFileType->setChecked ( @@ -193,8 +195,17 @@ settings->value ("filesdockwidget/showHiddenFiles",false).toBool ()); ui->useAlternatingRowColors->setChecked ( settings->value ("filesdockwidget/useAlternatingRowColors",true).toBool ()); + connect (ui->sync_octave_directory, SIGNAL (toggled (bool)), + this, SLOT (set_disabled_pref_file_browser_dir (bool))); ui->sync_octave_directory->setChecked ( settings->value ("filesdockwidget/sync_octave_directory",true).toBool ()); + ui->cb_restore_file_browser_dir->setChecked ( + settings->value ("filesdockwidget/restore_last_dir",false).toBool ()); + ui->le_file_browser_dir->setText ( + settings->value ("filesdockwidget/startup_dir").toString ()); + connect (ui->pb_file_browser_dir, SIGNAL (pressed ()), + this, SLOT (get_file_browser_dir ())); + ui->checkbox_allow_web_connect->setChecked ( settings->value ("news/allow_web_connection",false).toBool ()); ui->useProxyServer->setChecked ( @@ -568,6 +579,7 @@ settings->setValue ("terminal/fontSize", ui->terminal_fontSize->value ()); settings->setValue ("terminal/fontName", ui->terminal_fontName->currentFont ().family ()); + settings->setValue ("filesdockwidget/showFileSize", ui->showFileSize->isChecked ()); settings->setValue ("filesdockwidget/showFileType", @@ -580,6 +592,12 @@ ui->useAlternatingRowColors->isChecked ()); settings->setValue ("filesdockwidget/sync_octave_directory", ui->sync_octave_directory->isChecked ()); + settings->setValue ("filesdockwidget/restore_last_dir", + ui->cb_restore_file_browser_dir->isChecked ()); + settings->setValue ("filesdockwidget/startup_dir", + ui->le_file_browser_dir->text ()); + + settings->setValue ("news/allow_web_connection", ui->checkbox_allow_web_connect->isChecked ()); settings->setValue ("useProxyServer", ui->useProxyServer->isChecked ()); @@ -764,11 +782,43 @@ settings->sync (); } + +// internal slots + +void +settings_dialog::get_dir (QLineEdit *line_edit, const QString& title) +{ + QString dir = QFileDialog::getExistingDirectory(this, + title, line_edit->text (), + QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); + line_edit->setText (dir); +} + void settings_dialog::get_octave_dir () { - QString dir = QFileDialog::getExistingDirectory(this, - tr("Set Octave Startup Directory"), "", - QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); - ui->le_octave_dir->setText (dir); -} \ No newline at end of file + get_dir (ui->le_octave_dir, tr ("Set Octave Startup Directory")); +} + +void +settings_dialog::get_file_browser_dir () +{ + get_dir (ui->le_file_browser_dir, tr ("Set File Browser Startup Directory")); +} + +void +settings_dialog::set_disabled_pref_file_browser_dir (bool disable) +{ + ui->cb_restore_file_browser_dir->setDisabled (disable); + + if (! disable) + { + ui->le_file_browser_dir->setDisabled (ui->cb_restore_file_browser_dir->isChecked ()); + ui->pb_file_browser_dir->setDisabled (ui->cb_restore_file_browser_dir->isChecked ()); + } + else + { + ui->le_file_browser_dir->setDisabled (disable); + ui->pb_file_browser_dir->setDisabled (disable); + } +}