diff --git a/sublime/container.cpp b/sublime/container.cpp --- a/sublime/container.cpp +++ b/sublime/container.cpp @@ -18,7 +18,9 @@ ***************************************************************************/ #include "container.h" +#include #include +#include #include #include #include @@ -544,9 +546,13 @@ emit tabContextMenuRequested(view, &menu); menu.addSeparator(); + QAction* copyPathAction = nullptr; QAction* closeTabAction = nullptr; QAction* closeOtherTabsAction = nullptr; if (view) { + copyPathAction = menu.addAction(QIcon::fromTheme("edit-copy"), + i18n("Copy Filename")); + menu.addSeparator(); closeTabAction = menu.addAction(QIcon::fromTheme("document-close"), i18n("Close File")); closeOtherTabsAction = menu.addAction(QIcon::fromTheme("document-close"), @@ -581,6 +587,12 @@ for ( int i = 0; i < count(); ++i ) { requestClose(widget(i)); } + } else if( triggered == copyPathAction ) { + auto view = viewForWidget( widget( currentTab ) ); + auto urlDocument = qobject_cast( view->document() ); + if( urlDocument ) { + QApplication::clipboard()->setText( urlDocument->url().toString() ); + } } // else the action was handled by someone else } }