changeset 16509:14045b872a3d

Add set current directory context menu to file browser * libgui/src/files-dock-widget.cc, libgui/src/files-dock-widget.h (files_dock_widget::contextmenu_requested): New menu item for setting current directory. (files_dock_widget::contextmenu_setcurrentdir): New function.
author John Donoghue <john.donoghue@ieee.org>
date Fri, 12 Apr 2013 21:51:59 -0400
parents f19e24c97b20
children e22604d4bf85
files libgui/src/files-dock-widget.cc libgui/src/files-dock-widget.h
diffstat 2 files changed, 24 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/files-dock-widget.cc	Fri Apr 12 18:17:26 2013 -0400
+++ b/libgui/src/files-dock-widget.cc	Fri Apr 12 21:51:59 2013 -0400
@@ -295,6 +295,13 @@
                      this, SLOT(contextmenu_load(bool)));
       load_action->setEnabled (info.isFile ());
 
+      if (info.isDir ())
+        {
+          menu.addSeparator ();
+          menu.addAction (tr ("Set Current Directory"),
+                          this, SLOT (contextmenu_setcurrentdir (bool)));
+        }
+
       menu.addSeparator();
       menu.addAction(tr("Rename"), this, SLOT(contextmenu_rename(bool)));
       menu.addAction(QIcon(":/actions/icons/editdelete.png"), tr("Delete"),
@@ -481,8 +488,24 @@
     }
 }
 
+void 
+files_dock_widget::contextmenu_setcurrentdir (bool)
+{
+  QItemSelectionModel *m = _file_tree_view->selectionModel ();
+  QModelIndexList rows = m->selectedRows ();
 
+  if(rows.size() > 0)
+    {
+      QModelIndex index = rows[0];
 
+      QFileInfo info = _file_system_model->fileInfo(index);
+
+      if(info.isDir())
+        {
+          emit displayed_directory_changed (info.absoluteFilePath ());
+        }
+    }
+}
 
 void
 files_dock_widget::notice_settings (const QSettings *settings)
--- a/libgui/src/files-dock-widget.h	Fri Apr 12 18:17:26 2013 -0400
+++ b/libgui/src/files-dock-widget.h	Fri Apr 12 21:51:59 2013 -0400
@@ -91,6 +91,7 @@
   void contextmenu_delete (bool);
   void contextmenu_newfile (bool);
   void contextmenu_newdir (bool);
+  void contextmenu_setcurrentdir (bool);
 
 signals: