|
|
|
@ -430,9 +430,10 @@ void PropertiesWidget::openFile(const QModelIndex &index) {
@@ -430,9 +430,10 @@ void PropertiesWidget::openFile(const QModelIndex &index) {
|
|
|
|
|
// Flush data
|
|
|
|
|
h.flush_cache(); |
|
|
|
|
if (QFile::exists(file_path)) { |
|
|
|
|
// Hack to access samba shares with QDesktopServices::openUrl
|
|
|
|
|
const QString p = file_path.startsWith("//") ? QString("file:") + file_path : file_path; |
|
|
|
|
QDesktopServices::openUrl(QUrl::fromLocalFile(p)); |
|
|
|
|
if (file_path.startsWith("//")) |
|
|
|
|
QDesktopServices::openUrl(fsutils::toNativePath("file:" + file_path)); |
|
|
|
|
else |
|
|
|
|
QDesktopServices::openUrl(QUrl::fromLocalFile(file_path)); |
|
|
|
|
} |
|
|
|
|
else { |
|
|
|
|
QMessageBox::warning(this, tr("I/O Error"), tr("This file does not exist yet.")); |
|
|
|
@ -450,21 +451,38 @@ void PropertiesWidget::openFolder(const QModelIndex &index, bool containing_fold
@@ -450,21 +451,38 @@ void PropertiesWidget::openFolder(const QModelIndex &index, bool containing_fold
|
|
|
|
|
} |
|
|
|
|
if (path_items.isEmpty()) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
#ifndef Q_OS_WIN |
|
|
|
|
if (containing_folder) |
|
|
|
|
path_items.removeLast(); |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
const QDir saveDir(h.save_path()); |
|
|
|
|
const QString filename = path_items.join("/"); |
|
|
|
|
const QString file_path = fsutils::expandPath(saveDir.absoluteFilePath(filename)); |
|
|
|
|
qDebug("Trying to open folder at %s", qPrintable(file_path)); |
|
|
|
|
// Flush data
|
|
|
|
|
h.flush_cache(); |
|
|
|
|
|
|
|
|
|
#ifdef Q_OS_WIN |
|
|
|
|
if (containing_folder) { |
|
|
|
|
// Syntax is: explorer /select, "C:\Folder1\Folder2\file_to_select"
|
|
|
|
|
// Dir separators MUST be win-style slashes
|
|
|
|
|
QProcess::startDetached("explorer.exe", QStringList() << "/select," << fsutils::toNativePath(file_path)); |
|
|
|
|
} else { |
|
|
|
|
#endif |
|
|
|
|
if (QFile::exists(file_path)) { |
|
|
|
|
// Hack to access samba shares with QDesktopServices::openUrl
|
|
|
|
|
const QString p = file_path.startsWith("//") ? QString("file:") + file_path : file_path; |
|
|
|
|
QDesktopServices::openUrl(QUrl::fromLocalFile(p)); |
|
|
|
|
if (file_path.startsWith("//")) |
|
|
|
|
QDesktopServices::openUrl(fsutils::toNativePath("file:" + file_path)); |
|
|
|
|
else |
|
|
|
|
QDesktopServices::openUrl(QUrl::fromLocalFile(file_path)); |
|
|
|
|
} else { |
|
|
|
|
QMessageBox::warning(this, tr("I/O Error"), tr("This folder does not exist yet.")); |
|
|
|
|
} |
|
|
|
|
#ifdef Q_OS_WIN |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void PropertiesWidget::displayFilesListMenu(const QPoint&) { |
|
|
|
@ -478,7 +496,7 @@ void PropertiesWidget::displayFilesListMenu(const QPoint&) {
@@ -478,7 +496,7 @@ void PropertiesWidget::displayFilesListMenu(const QPoint&) {
|
|
|
|
|
QAction *actOpenContainingFolder = 0; |
|
|
|
|
QAction *actRename = 0; |
|
|
|
|
if (selectedRows.size() == 1) { |
|
|
|
|
actOpen = myFilesLlistMenu.addAction(tr("Open")); |
|
|
|
|
actOpen = myFilesLlistMenu.addAction(IconProvider::instance()->getIcon("folder-documents"), tr("Open")); |
|
|
|
|
actOpenContainingFolder = myFilesLlistMenu.addAction(IconProvider::instance()->getIcon("inode-directory"), tr("Open Containing Folder")); |
|
|
|
|
actRename = myFilesLlistMenu.addAction(IconProvider::instance()->getIcon("edit-rename"), tr("Rename...")); |
|
|
|
|
myFilesLlistMenu.addSeparator(); |
|
|
|
|