Skip to content

Commit

Permalink
Add copy path and other options to Edit menu (#108)
Browse files Browse the repository at this point in the history
  • Loading branch information
variar committed Sep 27, 2019
1 parent 3813b97 commit 27569c1
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/ui/include/mainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,9 @@ class MainWindow : public QMainWindow
void copy();
void find();
void clearLog();
void copyFullPath();
void openContainingFolder();
void openInEditor();
void openClipboard();
void highlighters();
void options();
Expand Down Expand Up @@ -220,6 +223,9 @@ class MainWindow : public QMainWindow
QAction *selectAllAction;
QAction *findAction;
QAction *clearLogAction;
QAction *copyPathToClipboardAction;
QAction *openContainingFolderAction;
QAction *openInEditorAction;
QAction *openClipboardAction;
QAction *overviewVisibleAction;
QAction *lineNumbersVisibleInMainAction;
Expand Down
41 changes: 41 additions & 0 deletions src/ui/src/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
#include <QUrl>
#include <QWindow>
#include <QTemporaryFile>
#include <QDesktopServices>

#include "log.h"

Expand Down Expand Up @@ -326,6 +327,21 @@ void MainWindow::createActions()
connect( clearLogAction, &QAction::triggered,
[this](auto){ this->clearLog(); });

openContainingFolderAction = new QAction(tr("Open containing folder"), this);
openContainingFolderAction->setStatusTip(tr("Open folder containing current file"));
connect( openContainingFolderAction, &QAction::triggered,
[this](auto){ this->openContainingFolder(); });

openInEditorAction = new QAction(tr("Open in editor"), this);
openInEditorAction->setStatusTip(tr("Open current file in default editor"));
connect( openInEditorAction, &QAction::triggered,
[this](auto){ this->openInEditor(); });

copyPathToClipboardAction = new QAction(tr("Copy full path"), this);
copyPathToClipboardAction->setStatusTip(tr("Copy full path for file to clipboard"));
connect( copyPathToClipboardAction, &QAction::triggered,
[this](auto){ this->copyFullPath(); });

openClipboardAction = new QAction(tr("Open from clipboard"), this);
openClipboardAction->setStatusTip(tr("Open clipboard as log file"));
openClipboardAction->setShortcuts( QKeySequence::keyBindings( QKeySequence::Paste ) );
Expand Down Expand Up @@ -433,6 +449,10 @@ void MainWindow::createMenus()
editMenu->addSeparator();
editMenu->addAction( findAction );
editMenu->addSeparator();
editMenu->addAction( copyPathToClipboardAction );
editMenu->addAction( openContainingFolderAction );
editMenu->addSeparator();
editMenu->addAction( openInEditorAction );
editMenu->addAction( clearLogAction );
editMenu->setEnabled( false );

Expand Down Expand Up @@ -623,6 +643,27 @@ void MainWindow::clearLog()
}
}

void MainWindow::copyFullPath()
{
const auto current_file = session_.getFilename( currentCrawlerWidget() );
QApplication::clipboard()->setText( QDir::toNativeSeparators( current_file ) );
}


void MainWindow::openContainingFolder()
{
const auto& current_file = session_.getFilename( currentCrawlerWidget() );
const auto& dir = QFileInfo( current_file ).absolutePath();
QDesktopServices::openUrl( QUrl( QDir::toNativeSeparators( dir ) ) );
}


void MainWindow::openInEditor()
{
const auto& current_file = session_.getFilename( currentCrawlerWidget() );
QDesktopServices::openUrl( QUrl( QDir::toNativeSeparators( current_file ) ) );
}

void MainWindow::onClipboardDataChanged()
{
auto clipboard = QGuiApplication::clipboard();
Expand Down

0 comments on commit 27569c1

Please sign in to comment.