diff -r 0915fec3d3a9 libgui/src/main-window.cc
--- a/libgui/src/main-window.cc	Mon Jul 22 22:20:56 2019 +0200
+++ b/libgui/src/main-window.cc	Mon Jul 22 15:47:23 2019 -0700
@@ -105,6 +105,7 @@ namespace octave
       m_external_editor (new external_editor_interface (this)),
       m_active_editor (m_external_editor),
       m_settings_dlg (nullptr), m_find_files_dlg (nullptr),
+      m_set_path_dlg (nullptr),
       m_release_notes_window (nullptr), m_community_news_window (nullptr),
       m_clipboard (QApplication::clipboard ()),
       m_prevent_readline_conflicts (true), m_suppress_dbg_location (true),
@@ -312,6 +313,11 @@ namespace octave
 
         m_active_dock = dock;
       }
+    if (m_set_path_dlg)
+      {
+        delete m_set_path_dlg;
+        m_set_path_dlg = nullptr;
+      }
   }
 
   void main_window::request_reload_settings (void)
@@ -814,14 +820,14 @@ namespace octave
     }
 
     widget_icon_data[] =
-    {
-      // array of possible icon sets (name, path (complete for NONE))
-      // the first entry here is the default!
-      {"NONE",    ":/actions/icons/logo.png"},
-      {"GRAPHIC", ":/actions/icons/graphic_logo_"},
-      {"LETTER",  ":/actions/icons/letter_logo_"},
-      {"", ""} // end marker has empty name
-    };
+      {
+        // array of possible icon sets (name, path (complete for NONE))
+        // the first entry here is the default!
+        {"NONE",    ":/actions/icons/logo.png"},
+        {"GRAPHIC", ":/actions/icons/graphic_logo_"},
+        {"LETTER",  ":/actions/icons/letter_logo_"},
+        {"", ""} // end marker has empty name
+      };
 
     int count = 0;
     int icon_set_found = 0; // default
@@ -853,7 +859,7 @@ namespace octave
       }
     if (widget_icon_data[icon_set_found].name != "NONE")
       m_release_notes_icon = widget_icon_data[icon_set_found].path
-                             + "ReleaseWidget.png";
+        + "ReleaseWidget.png";
     else
       m_release_notes_icon = ":/actions/icons/logo.png";
 
@@ -1273,7 +1279,7 @@ namespace octave
 
     QSettings *settings = resource_manager::get_settings ();
     bool is_internal = m_editor_window
-                       && ! settings->value ("useCustomFileEditor",false).toBool ();
+                      && ! settings->value ("useCustomFileEditor",false).toBool ();
 
     // Create a NonModal message.
     QWidget *p = this;
@@ -1707,6 +1713,16 @@ namespace octave
     focus_command_window ();  // make sure that the command window has focus
   }
 
+  void main_window::handle_set_path_dialog_request (void)
+  {
+    if (m_set_path_dlg) return;
+    m_set_path_dlg = new set_path_dialog (this);
+
+    m_set_path_dlg->setModal (false);
+    m_set_path_dlg->setAttribute (Qt::WA_DeleteOnClose);
+    m_set_path_dlg->show ();
+  }
+
   void main_window::find_files (const QString& start_dir)
   {
 
@@ -1764,6 +1780,7 @@ namespace octave
         m_load_workspace_action->setShortcut (no_key);
         m_save_workspace_action->setShortcut (no_key);
         m_preferences_action->setShortcut (no_key);
+        m_set_path_action->setShortcut (no_key);
         m_exit_action->setShortcut (no_key);
 
         // edit menu
@@ -2407,6 +2424,9 @@ namespace octave
 
     edit_menu->addSeparator ();
 
+    m_set_path_action
+      = edit_menu->addAction (tr ("Set Path"));
+
     m_preferences_action
       = edit_menu->addAction (resource_manager::icon ("preferences-system"),
                               tr ("Preferences..."));
@@ -2436,6 +2456,10 @@ namespace octave
 
     connect (m_preferences_action, SIGNAL (triggered (void)),
              this, SLOT (process_settings_dialog_request (void)));
+
+    connect (m_set_path_action, SIGNAL (triggered (void)),
+             this, SLOT (handle_set_path_dialog_request (void)));
+             
   }
 
   QAction * main_window::construct_debug_menu_item (const char *icon,
@@ -2770,6 +2794,7 @@ namespace octave
     shortcut_manager::set_shortcut (m_save_workspace_action,
                                     "main_file:save_workspace");
     shortcut_manager::set_shortcut (m_preferences_action, "main_file:preferences");
+    shortcut_manager::set_shortcut (m_set_path_action, "main_file:set_path");
     shortcut_manager::set_shortcut (m_exit_action,"main_file:exit");
 
     // edit menu
diff -r 0915fec3d3a9 libgui/src/main-window.h
--- a/libgui/src/main-window.h	Mon Jul 22 22:20:56 2019 +0200
+++ b/libgui/src/main-window.h	Mon Jul 22 15:47:23 2019 -0700
@@ -49,6 +49,7 @@ along with Octave; see the file COPYING.
 #include "documentation-dock-widget.h"
 #include "files-dock-widget.h"
 #include "find-files-dialog.h"
+#include "set-path-dialog.h"
 #include "history-dock-widget.h"
 #include "octave-dock-widget.h"
 #include "qt-interpreter-events.h"
@@ -198,6 +199,8 @@ namespace octave
 
     void handle_octave_ready ();
 
+    void handle_set_path_dialog_request (void);
+
     //! Find files dialog.
     //!@{
     void find_files (const QString& startdir = QDir::currentPath ());
@@ -330,6 +333,7 @@ namespace octave
     QAction *m_new_figure_action;
     QAction *m_load_workspace_action;
     QAction *m_save_workspace_action;
+    QAction *m_set_path_action;
     QAction *m_preferences_action;
     QAction *m_exit_action;
 
@@ -386,6 +390,9 @@ namespace octave
 
     find_files_dialog *m_find_files_dlg;
 
+    //! Set path dialog
+    QPointer<set_path_dialog> m_set_path_dlg;
+
     //! Release notes window.
 
     QWidget *m_release_notes_window;
diff -r 0915fec3d3a9 libgui/src/module.mk
--- a/libgui/src/module.mk	Mon Jul 22 22:20:56 2019 +0200
+++ b/libgui/src/module.mk	Mon Jul 22 15:47:23 2019 -0700
@@ -156,7 +156,9 @@ OCTAVE_GUI_SRC_MOC = \
   %reldir%/moc-variable-editor-model.cc \
   %reldir%/moc-find-files-dialog.cc \
   %reldir%/moc-find-files-model.cc \
-  %reldir%/moc-octave-dock-widget.cc
+  %reldir%/moc-octave-dock-widget.cc \
+  %reldir%/moc-set-path-dialog.cc \
+  %reldir%/moc-set-path-model.cc
 
 octave_gui_MOC += \
   $(OCTAVE_GUI_SRC_MOC) \
@@ -214,7 +216,10 @@ noinst_HEADERS += \
   %reldir%/workspace-model.h \
   %reldir%/workspace-view.h \
   %reldir%/variable-editor.h \
-  %reldir%/variable-editor-model.h
+  %reldir%/variable-editor-model.h \
+  %reldir%/set-path-dialog.h \
+  %reldir%/set-path-model.h
+
 
 %canon_reldir%_%canon_reldir%_la_SOURCES = \
   %reldir%/dialog.cc \
@@ -249,7 +254,9 @@ noinst_HEADERS += \
   %reldir%/workspace-model.cc \
   %reldir%/workspace-view.cc \
   %reldir%/variable-editor.cc \
-  %reldir%/variable-editor-model.cc
+  %reldir%/variable-editor-model.cc \
+  %reldir%/set-path-dialog.cc \
+  %reldir%/set-path-model.cc
 
 nodist_%canon_reldir%_%canon_reldir%_la_SOURCES = \
   $(octave_gui_MOC) \
