changeset 16499:facf00ce97d3

gui: configurable synchronization between file browser and octave directory * default-qt-settings: all settings of the file browser are now located in its section, new setting sync_octave_directory * files-dock-widget.cc(constructor): make QToolBar and QAction variables local, add two buttons for syncing from octave to file browser and vice versa, change status-tips into tool-tips * files-dock-widget.cc(set_current_directory): do not emit signal displayed_directory_changed (would change octave dir) * files-dock-widget.cc(do_sync_octave_directory): new function for manually setting the octave dir to the one in the file browser * files-dock-widget.cc(do_sync_browser_directory): new function for manually setting the file browser to the octave directory * files-dock-widget.cc(update_octave_directory): new function called from the main-window when the octave directory has changed * files-doc-widget.cc(display_directory): new second parameter (bool, default is true) determining whether the signal with the new displayed directory should be emitted if synchronizing is enabled * files-dock-widget.cc(notice-settings): read new setting, enalbe or disable the sync buttons and set file browser to octave directory depending on setting * files-dock-widget.h: removed QToolBar and QAction variibles, new varaibles for storing the actual octave directory and whether syncing is desired or not, new functions (do_sync_octave_directory, do_sync_browser_directory, update_octave_directory), function display_directory with second parameter (bool, default true) * libgui/src/icons/ok.png,libgui/src/icons/reload.png: new icons for the toolbar * main-window.cc(change_directory): call new function update_octave_directory instead of display_directory * main-window.cc(construct-window-menu): rename "Current Directory" into "File Browser" * libgui/src/module.mk: new files icons/ok.png and icons/reload.png * settings-dialog.cc(constructor,write_changed_settings): all files-dock-widgets settings in a section, new setting sync_octave_directory * settings-dialog.ui: new setting sync_octave_directory
author Torsten <ttl@justmail.de>
date Thu, 11 Apr 2013 19:01:55 +0200
parents 605d7f0ee0d8
children 06bdf84aa3d9
files libgui/default-qt-settings libgui/src/files-dock-widget.cc libgui/src/files-dock-widget.h libgui/src/icons/ok.png libgui/src/icons/reload.png libgui/src/main-window.cc libgui/src/module.mk libgui/src/resource.qrc libgui/src/settings-dialog.cc libgui/src/settings-dialog.ui
diffstat 10 files changed, 124 insertions(+), 52 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/default-qt-settings
+++ b/libgui/default-qt-settings
@@ -5,12 +5,6 @@
 autoIdentification=false
 useCustomFileEditor=false
 customFileEditor=emacs
-showFilenames=true
-showFileSize=false
-showFileType=false
-showLastModified=false
-showHiddenFiles=false
-useAlternatingRowColors=true
 useProxyServer=false
 proxyType=
 proxyHostName=none
@@ -67,3 +61,10 @@
 sort_files_by_column=0
 sort_files_by_order=0
 column_state=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x4\xe\0\0\0\x3\0\0\0\x3\0\0\0\x64\0\0\0\x2\0\0\0\x64\0\0\0\x1\0\0\0\x64\0\0\0\xd4\0\0\0\x4\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x2\0\0\0\xd4\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\0)
+showFilenames=true
+showFileSize=false
+showFileType=false
+showLastModified=false
+showHiddenFiles=false
+sync_octave_directory=true
+useAlternatingRowColors=true
--- a/libgui/src/files-dock-widget.cc
+++ b/libgui/src/files-dock-widget.cc
@@ -43,7 +43,7 @@
   setObjectName ("FilesDockWidget");
   setWindowIcon (QIcon(":/actions/icons/logo.png"));
   setWindowTitle (tr ("File Browser"));
-  setStatusTip (tr ("Browse your files."));
+  setToolTip (tr ("Browse your files."));
 
   QWidget *container = new QWidget (this);
 
@@ -58,29 +58,46 @@
   connect (parent (), SIGNAL (settings_changed (const QSettings *)),
            this, SLOT (notice_settings (const QSettings *)));
 
-
   // Create a toolbar
-  _navigation_tool_bar = new QToolBar ("", container);
-  _navigation_tool_bar->setAllowedAreas (Qt::TopToolBarArea);
-  _navigation_tool_bar->setMovable (false);
-  _navigation_tool_bar->setIconSize (QSize (20, 20));
+  QToolBar *navigation_tool_bar = new QToolBar ("", container);
+  navigation_tool_bar->setAllowedAreas (Qt::TopToolBarArea);
+  navigation_tool_bar->setMovable (false);
+  navigation_tool_bar->setIconSize (QSize (20, 20));
 
-  _directory_icon = QIcon(":/actions/icons/up.png");
-  _directory_up_action = new QAction (_directory_icon, "", _navigation_tool_bar);
-  _directory_up_action->setStatusTip (tr ("Move up one directory."));
-
-  _current_directory = new QComboBox (_navigation_tool_bar);
-  _current_directory->setStatusTip (tr ("Enter the path or filename."));
+  _current_directory = new QComboBox (navigation_tool_bar);
+  _current_directory->setToolTip (tr ("Enter the path or filename"));
   _current_directory->setEditable(true);
   _current_directory->setMaxCount(MaxMRUDirs);
   _current_directory->setInsertPolicy(QComboBox::NoInsert);
+  _current_directory->setSizeAdjustPolicy (QComboBox::AdjustToMinimumContentsLengthWithIcon);
   QSizePolicy sizePol(QSizePolicy::Expanding, QSizePolicy::Preferred);
   _current_directory->setSizePolicy(sizePol);
 
-  _navigation_tool_bar->addAction (_directory_up_action);
-  _navigation_tool_bar->addWidget (_current_directory);
-  connect (_directory_up_action, SIGNAL (triggered ()), this,
+  QAction *directory_up_action = new QAction (QIcon(":/actions/icons/up.png"),
+                                              "", navigation_tool_bar);
+  directory_up_action->setToolTip (tr ("Move up one directory"));
+
+  _sync_browser_directory_action = new QAction (QIcon(":/actions/icons/reload.png"),
+                                                "", navigation_tool_bar);
+  _sync_browser_directory_action->setToolTip (tr ("Goto current octave directory"));
+  _sync_browser_directory_action->setEnabled ("false");
+
+  _sync_octave_directory_action = new QAction (QIcon(":/actions/icons/ok.png"),
+                                               "", navigation_tool_bar);
+  _sync_octave_directory_action->setToolTip (tr ("Set octave directroy to current browser directory"));
+  _sync_octave_directory_action->setEnabled ("false");
+
+  navigation_tool_bar->addWidget (_current_directory);
+  navigation_tool_bar->addAction (directory_up_action);
+  navigation_tool_bar->addAction (_sync_browser_directory_action);
+  navigation_tool_bar->addAction (_sync_octave_directory_action);
+
+  connect (directory_up_action, SIGNAL (triggered ()), this,
            SLOT (change_directory_up ()));
+  connect (_sync_octave_directory_action, SIGNAL (triggered ()), this,
+           SLOT (do_sync_octave_directory ()));
+  connect (_sync_browser_directory_action, SIGNAL (triggered ()), this,
+           SLOT (do_sync_browser_directory ()));
 
   // TODO: Add other buttons for creating directories
 
@@ -98,7 +115,7 @@
   _file_tree_view->setSortingEnabled (true);
   _file_tree_view->setAlternatingRowColors (true);
   _file_tree_view->setAnimated (true);
-  _file_tree_view->setStatusTip (tr ("Doubleclick a file to open it."));
+  _file_tree_view->setToolTip (tr ("Doubleclick a file to open it"));
 
   // get sort column and order as well as cloumn state (order and width)
   QSettings *settings = resource_manager::get_settings ();
@@ -121,7 +138,7 @@
   // Layout the widgets vertically with the toolbar on top
   QVBoxLayout *vbox_layout = new QVBoxLayout ();
   vbox_layout->setSpacing (0);
-  vbox_layout->addWidget (_navigation_tool_bar);
+  vbox_layout->addWidget (navigation_tool_bar);
   vbox_layout->addWidget (_file_tree_view);
   vbox_layout->setMargin (1);
 
@@ -139,6 +156,9 @@
   _current_directory->setCompleter (completer);
 
   setFocusProxy (_current_directory);
+  
+  _sync_octave_dir = true;   // default, overwirtten with notice_settings ()
+  _octave_dir = "";
 }
 
 files_dock_widget::~files_dock_widget ()
@@ -165,7 +185,6 @@
 {
   // Retrieve the file info associated with the model index.
   QFileInfo fileInfo = _file_system_model->fileInfo (index);
-
   set_current_directory (fileInfo.absoluteFilePath ());
 }
 
@@ -173,8 +192,6 @@
 files_dock_widget::set_current_directory (const QString& dir)
 {
   display_directory (dir);
-
-  emit displayed_directory_changed (dir);
 }
 
 void
@@ -192,7 +209,28 @@
 }
 
 void
-files_dock_widget::display_directory (const QString& dir)
+files_dock_widget::do_sync_octave_directory (void)
+{
+  QDir dir = QDir (_file_system_model->filePath (_file_tree_view->rootIndex ()));
+  emit displayed_directory_changed (dir.absolutePath ());
+}
+
+void
+files_dock_widget::do_sync_browser_directory (void)
+{
+  display_directory (_octave_dir,false);  // false: no sync of octave dir
+}
+
+void
+files_dock_widget::update_octave_directory (const QString& dir)
+{
+  _octave_dir = dir;
+  if (_sync_octave_dir)
+    display_directory (_octave_dir,false);  // false: no sync of octave dir
+}
+
+void
+files_dock_widget::display_directory (const QString& dir, bool set_octave_dir)
 {
   QFileInfo fileInfo (dir);
   if (fileInfo.exists ())
@@ -203,6 +241,8 @@
                                          index (fileInfo.absoluteFilePath ()));
           _file_system_model->setRootPath (fileInfo.absoluteFilePath ());
           _file_system_model->sort (0, Qt::AscendingOrder);
+          if (_sync_octave_dir && set_octave_dir)
+            emit displayed_directory_changed (fileInfo.absoluteFilePath ());
 
           // see if its in the list, and if it is, remove it and then, put at top of the list
           int index = _current_directory->findText(fileInfo.absoluteFilePath ());
@@ -228,12 +268,20 @@
 
   // file names are always shown, other columns can be hidden by settings
   _file_tree_view->setColumnHidden (0, false);
-  _file_tree_view->setColumnHidden (1, !settings->value ("showFileSize",false).toBool ());
-  _file_tree_view->setColumnHidden (2, !settings->value ("showFileType",false).toBool ());
-  _file_tree_view->setColumnHidden (3, !settings->value ("showLastModified",false).toBool ());
-  _file_tree_view->setAlternatingRowColors (settings->value ("useAlternatingRowColors",true).toBool ());
-  if (settings->value ("showHiddenFiles",false).toBool ())
+  _file_tree_view->setColumnHidden (1, !settings->value ("filesdockwidget/showFileSize",false).toBool ());
+  _file_tree_view->setColumnHidden (2, !settings->value ("filesdockwidget/showFileType",false).toBool ());
+  _file_tree_view->setColumnHidden (3, !settings->value ("filesdockwidget/showLastModified",false).toBool ());
+  _file_tree_view->setAlternatingRowColors (settings->value ("filesdockwidget/useAlternatingRowColors",true).toBool ());
+  if (settings->value ("filesdockwidget/showHiddenFiles",false).toBool ())
     {
       // TODO: React on option for hidden files.
     }
+  // enalbe the buttons to sync octave/browser dir only if this is not done by default
+  _sync_octave_dir = settings->value ("filesdockwidget/sync_octave_directory",false).toBool ();
+  _sync_octave_directory_action->setEnabled (!_sync_octave_dir);
+  _sync_browser_directory_action->setEnabled (!_sync_octave_dir);
+
+  if (_sync_octave_dir)
+    display_directory (_octave_dir);  // sync browser to octave dir
+
 }
--- a/libgui/src/files-dock-widget.h
+++ b/libgui/src/files-dock-widget.h
@@ -61,13 +61,20 @@
   /** Slot for handling the up-directory button in the toolbar. */
   void change_directory_up ();
 
+  /** Slot for handling the sync octave directory button in the toolbar. */
+  void do_sync_octave_directory ();
+
+  /** Slot for handling the sync browser directory button in the toolbar. */
+  void do_sync_browser_directory ();
+
   /** Sets the current directory being displayed. */
   void set_current_directory (const QString& dir);
 
   /** Accepts user input a the line edit for the current directory. */
   void accept_directory_line_edit ();
 
-  void display_directory (const QString& dir);
+  /** set the internal variable that holds the actual octave variable **/
+  void update_octave_directory (const QString& dir);
 
   /** Tells the widget to react on changed settings. */
   void notice_settings (const QSettings *settings);
@@ -84,13 +91,12 @@
 
   // TODO: Add toolbar with buttons for navigating the path, creating dirs, etc
 
-  /** Toolbar for file and directory manipulation. */
-  QToolBar *        _navigation_tool_bar;
+  /** set a new directory or open a file **/
+  void display_directory (const QString& dir, bool set_octave_dir = true);
 
-  /** Variables for the up-directory action. */
-  QIcon             _directory_icon;
-  QAction *         _directory_up_action;
-  QToolButton *     _up_directory_button;
+  /** Variables for the actions **/
+  QAction *         _sync_octave_directory_action;
+  QAction *         _sync_browser_directory_action;
 
   /** The file system model. */
   QFileSystemModel *_file_system_model;
@@ -99,6 +105,10 @@
   QTreeView *       _file_tree_view;
   QComboBox *       _current_directory;
 
+  /** Internal variables **/
+  bool              _sync_octave_dir;    // flag if syncing with octave
+  QString           _octave_dir;         // the actual octave dir
+
   enum { MaxMRUDirs = 10 };
 };
 
new file mode 100755
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..ab86df2f5872b0126a27b09d5e711db515d4e301
GIT binary patch
literal 1518
zc$@+51rhp*P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F8000HGNkl<ZScT=+
zeQXnT9LMp`@9uiP>$Tmw2iCFe=4e6OSa}o((1hRv0i6W?5DkW?(Fkfx{6~!vgNc6;
zC5G@INVhRiL?9THASxn4Kv>z6o23QT0UKjX+O6B#Zg<!F`3C_(7#qlg3E$-R-~I0W
z%01+AgfWKuIoy4%KQI8>XGFYjfD|uLdQae(Yen|Zdk(Ob5=A&IRc?BFll!3yBb!Gr
zcTKow09zSRgeK}MU9=%P<Zr}d)28!$SUMuVNv=WM6@aab<ntlwD_vCXsHv>QUurwf
zb+kaV@d6(ef2RxnLELeG%}W%%kye&2DtA;Lt3{U)MZ$<<U*lfXU8u(pm)(>m*$>mF
z$+$ZXu&pBsAEG|*;xb2dO*Oh%6bZzz|J*M)qc?-g0FcFy%_*W0<GSfALT(7i-D=}<
zx2E*_>fA8?IZ?PKlh6A`nWNfYg>E5=1dZcB=RTYfnjz)@mK+I|h73HM>nfJ4d{f^Z
z#)N;LD0_?99IrAq8^p-Vf&5(S{CH@fcxo9@$QhH*`&OBws<9G1v<H2x7l+z^LyOP?
zIg5u`kdgdJfJlVmgMkCV?p<mU0Lazfg0ynZ9BW`({7Zv#B+iVH%kurw!+c42q2APA
ze8^@|(M}NG`o*P=>a)iXOU9tGJ{%1n#<@f@BuZfxWJI<n5O3`%CL#&;e6Q=5_g?|n
zR}iT;gl`TmIWniGrxO;=2D?2S?q!93Td`1b@dfQVMDBL0(ibp%YhPRMsB5i3EE$7l
zs5sVn6m7ldK&4CZ)-NOIYVLAFWP!vkreA#y!We_&6WN>|9=c`a>#OFdstUq5#Pk>h
zo=3Jl2am1v`0ZollGbNqR}cj|)0E!h$;vgauFL+Ttqutz29>F(?W)2B^*ku0kT?k;
zZyTcR9mO1nVEnsl;{ZUc9}$yy*1EO)-3@c8D1s0UomvMpra^}WffrygS@B}|0)NK1
zl#<Y#aMOt0SxVfm`&PcZ+Tp+0fP@i;1`YK+HE7o^K%x|sGvm*dO^C)LZeBznw(<Hn
z0B}r$%z<<HnvdY)h9&UF{(wm|!QhifaynwH2a#kL6|a0<6s?bcH|giX1=d53x;3w^
zbp)fwq46r1iQ$CqN4L-gd#W9FOB#-Q&md}!xJ4)FHx2;2X(}|w(9GIaU-)U4%W2)&
zwGBMaBhRY9;0)+QhelK+NDR-9U6{2m^y|D&7cQ6UyK12k6-hpclX?JA(gBNXfmO1i
zYE1yq)QfJZfCQuO8~w(wc?d@?&G*<k(kn8jraI5(oW^j=Bbc7?I4pt{y(|Hp=n#ki
zi(x|>-vR~(ooG0z1`sjApdy9DOE|Qq7TvapTYQKG&(BY2H;Z2b0D#<g(x&NQY;r!S
z3^R=)FcUK-rA$K}RiF|TI&=`8Kw~O&q9LT8L?<E;g-h}M-b$$HF}JLkg29<>1IDid
z0D%1i!K1dbjblsP!?MQNp(a&0=?Dy$MuO*fXhcJj=s0aOB8m=BfkNad_EsDQ$xFJ^
zvn;_QlLLc_-w*%*_T`+X?-Z$+@Z>nBYepUtdK{^|9R=cW$efI`tO;GD6I7ruaUyn?
z?T1vzyK^!!gFhA>9dx{3003l`n>=wJDkjaE;2br3IQsNn2%HErXNJo4fpQcgD0Y<o
zfK<2aF38IbZp;1Ymf|-B06_k?DbqUkX`3cKHGbIS*`uLB2L~Q9WKbqyW9c?zPt0(S
zaOMZUux-8N_<#Ta81-|Wr)77f!ZUY@bLR9J000xCSXWk#;;BXMqC(fHC0N#bJ8=L2
zV{E`RrLxeI_MSB~Z%+x^+~;MFmX2Ys9e=5K2m6W+X8+CBpbwncFxiv+Vdm*ctH-lv
z0#6igV5|OfoG~`=Ex0_hf>VfDmZx$==qSihLd!Yt?O*n*X3&7UH4nzG+5Z~wHz#We
UggAPbj{pDw07*qoM6N<$f})Gi!vFvP
new file mode 100755
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0b7754cdcb36186295ff86c50d1f3560a0cf0674
GIT binary patch
literal 2013
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
--- a/libgui/src/main-window.cc
+++ b/libgui/src/main-window.cc
@@ -289,7 +289,7 @@
   _current_directory_combo_box->insertItem (0, dir);
   _current_directory_combo_box->setCurrentIndex (0);
 
-  file_browser_window->display_directory (dir);
+  file_browser_window->update_octave_directory (dir);
 }
 
 void
@@ -958,7 +958,7 @@
     (window_menu, tr ("Show Command History"), true, ctrl_shift + Qt::Key_1);
 
   QAction *show_file_browser_action =  construct_window_menu_item
-    (window_menu, tr ("Show Current Directory"), true, ctrl_shift + Qt::Key_2);
+    (window_menu, tr ("Show File Browser"), true, ctrl_shift + Qt::Key_2);
 
   QAction *show_workspace_action = construct_window_menu_item
     (window_menu, tr ("Show Workspace"), true, ctrl_shift + Qt::Key_3);
@@ -978,7 +978,7 @@
     (window_menu, tr ("Command History"), false, ctrl + Qt::Key_1);
 
   QAction *file_browser_action = construct_window_menu_item
-    (window_menu, tr ("Current Directory"), false, ctrl + Qt::Key_2);
+    (window_menu, tr ("File Browser"), false, ctrl + Qt::Key_2);
 
   QAction *workspace_action = construct_window_menu_item
     (window_menu, tr ("Workspace"), false, ctrl + Qt::Key_3);
--- a/libgui/src/module.mk
+++ b/libgui/src/module.mk
@@ -44,9 +44,11 @@
   src/icons/letter_logo_TerminalDockWidget.png \
   src/icons/letter_logo_WorkspaceView.png \
   src/icons/logo.png \
+  src/icons/ok.png \
   src/icons/question.png \
   src/icons/redled.png \
   src/icons/redo.png \
+  src/icons/reload.png \
   src/icons/search.png \
   src/icons/star.png \
   src/icons/stop.png \
--- a/libgui/src/resource.qrc
+++ b/libgui/src/resource.qrc
@@ -8,7 +8,9 @@
         <file>icons/fileopen.png</file>
         <file>icons/filesave.png</file>
         <file>icons/fileprint.png</file>
+        <file>icons/ok.png</file>
         <file>icons/redo.png</file>
+        <file>icons/reload.png</file>
         <file>icons/search.png</file>
         <file>icons/undo.png</file>
         <file>icons/up.png</file>
--- a/libgui/src/settings-dialog.cc
+++ b/libgui/src/settings-dialog.cc
@@ -85,11 +85,12 @@
   ui->editor_restoreSession->setChecked (settings->value ("editor/restoreSession",true).toBool ());
   ui->terminal_fontName->setCurrentFont (QFont (settings->value ("terminal/fontName","Courier New").toString()) );
   ui->terminal_fontSize->setValue (settings->value ("terminal/fontSize",10).toInt ());
-  ui->showFileSize->setChecked (settings->value ("showFileSize",false).toBool());
-  ui->showFileType->setChecked (settings->value ("showFileType",false).toBool());
-  ui->showLastModified->setChecked (settings->value ("showLastModified",false).toBool());
-  ui->showHiddenFiles->setChecked (settings->value ("showHiddenFiles",false).toBool());
-  ui->useAlternatingRowColors->setChecked (settings->value ("useAlternatingRowColors",true).toBool());
+  ui->showFileSize->setChecked (settings->value ("filesdockwidget/showFileSize",false).toBool());
+  ui->showFileType->setChecked (settings->value ("filesdockwidget/showFileType",false).toBool());
+  ui->showLastModified->setChecked (settings->value ("filesdockwidget/showLastModified",false).toBool());
+  ui->showHiddenFiles->setChecked (settings->value ("filesdockwidget/showHiddenFiles",false).toBool());
+  ui->useAlternatingRowColors->setChecked (settings->value ("filesdockwidget/useAlternatingRowColors",true).toBool());
+  ui->sync_octave_directory->setChecked (settings->value ("filesdockwidget/sync_octave_directory",true).toBool());
   ui->useProxyServer->setChecked (settings->value ("useProxyServer",false).toBool ());
   ui->proxyHostName->setText (settings->value ("proxyHostName").toString ());
   ui->terminal_cursorBlinking->setChecked (settings->value ("terminal/cursorBlinking",true).toBool ());
@@ -255,11 +256,12 @@
   settings->setValue ("editor/restoreSession", ui->editor_restoreSession->isChecked ());
   settings->setValue ("terminal/fontSize", ui->terminal_fontSize->value());
   settings->setValue ("terminal/fontName", ui->terminal_fontName->currentFont().family());
-  settings->setValue ("showFileSize", ui->showFileSize->isChecked ());
-  settings->setValue ("showFileType", ui->showFileType->isChecked ());
-  settings->setValue ("showLastModified", ui->showLastModified->isChecked ());
-  settings->setValue ("showHiddenFiles", ui->showHiddenFiles->isChecked ());
-  settings->setValue ("useAlternatingRowColors", ui->useAlternatingRowColors->isChecked ());
+  settings->setValue ("filesdockwidget/showFileSize", ui->showFileSize->isChecked ());
+  settings->setValue ("filesdockwidget/showFileType", ui->showFileType->isChecked ());
+  settings->setValue ("filesdockwidget/showLastModified", ui->showLastModified->isChecked ());
+  settings->setValue ("filesdockwidget/showHiddenFiles", ui->showHiddenFiles->isChecked ());
+  settings->setValue ("filesdockwidget/useAlternatingRowColors", ui->useAlternatingRowColors->isChecked ());
+  settings->setValue ("filesdockwidget/sync_octave_directory", ui->sync_octave_directory->isChecked ());
   settings->setValue ("useProxyServer", ui->useProxyServer->isChecked ());
   settings->setValue ("proxyType", ui->proxyType->currentText ());
   settings->setValue ("proxyHostName", ui->proxyHostName->text ());
--- a/libgui/src/settings-dialog.ui
+++ b/libgui/src/settings-dialog.ui
@@ -431,6 +431,13 @@
         </widget>
        </item>
        <item>
+        <widget class="QCheckBox" name="sync_octave_directory">
+         <property name="text">
+          <string>Synchronize octave directory with the file browser</string>
+         </property>
+        </widget>
+       </item>
+       <item>
         <widget class="QCheckBox" name="useAlternatingRowColors">
          <property name="text">
           <string>Alternating row colors</string>