feat: open containing folder

This commit is contained in:
Gary Wang
2022-01-21 16:48:43 +08:00
parent 00168a34f0
commit 9e1b10831a
4 changed files with 25 additions and 0 deletions

View File

@ -29,6 +29,8 @@
#include <QTimer>
#include <QFileDialog>
#include <QStandardPaths>
#include <QProcess>
#include <QDesktopServices>
MainWindow::MainWindow(QWidget *parent)
: FramelessWindow(parent)
@ -437,6 +439,9 @@ void MainWindow::contextMenuEvent(QContextMenuEvent *event)
menu->addAction(helpAction);
if (currentFileUrl.isValid()) {
menu->addSeparator();
if (currentFileUrl.isLocalFile()) {
menu->addAction(m_am->actionLocateInFileManager);
}
menu->addAction(propertiesAction);
}
menu->exec(mapToGlobal(event->pos()));
@ -703,6 +708,22 @@ void MainWindow::on_actionProperties_triggered()
ad->deleteLater();
}
void MainWindow::on_actionLocateInFileManager_triggered()
{
QUrl currentFileUrl = currentImageFileUrl();
if (!currentFileUrl.isValid()) return;
QFileInfo fileInfo(currentFileUrl.toLocalFile());
if (!fileInfo.exists()) return;
#ifdef Q_OS_WIN
QProcess::startDetached("explorer", QStringList() << "/select," << QDir::toNativeSeparators(fileInfo.absoluteFilePath()));
#else
// maybe use https://www.freedesktop.org/wiki/Specifications/file-manager-interface/ for linux?
QDesktopServices::openUrl(QUrl::fromLocalFile(fileInfo.absolutePath()));
#endif // Q_OS_WIN
}
void MainWindow::on_actionQuitApp_triggered()
{
quitAppAction(false);