# HG changeset patch # User John Donoghue # Date 1365817919 14400 # Node ID 14045b872a3d63fa6960847c9b4e520f85d34612 # Parent f19e24c97b204bbfb051ac9d32bf244388ddc7f1 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. diff --git a/libgui/src/files-dock-widget.cc b/libgui/src/files-dock-widget.cc --- a/libgui/src/files-dock-widget.cc +++ b/libgui/src/files-dock-widget.cc @@ -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) diff --git a/libgui/src/files-dock-widget.h b/libgui/src/files-dock-widget.h --- a/libgui/src/files-dock-widget.h +++ b/libgui/src/files-dock-widget.h @@ -91,6 +91,7 @@ void contextmenu_delete (bool); void contextmenu_newfile (bool); void contextmenu_newdir (bool); + void contextmenu_setcurrentdir (bool); signals: