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 @@ -546,9 +548,13 @@ emit tabContextMenuRequested(view, &menu); menu.addSeparator(); + QAction* copyPathAction = nullptr; QAction* closeTabAction = nullptr; QAction* closeOtherTabsAction = nullptr; if (view) { + copyPathAction = menu.addAction(QIcon::fromTheme(QStringLiteral("edit-copy")), + i18n("Copy Filename")); + menu.addSeparator(); closeTabAction = menu.addAction(QIcon::fromTheme(QStringLiteral("document-close")), i18n("Close File")); closeOtherTabsAction = menu.addAction(QIcon::fromTheme(QStringLiteral("document-close")), @@ -583,6 +589,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 } }