mirror of
https://github.com/transmission/transmission
synced 2024-12-26 17:47:37 +00:00
(trunk, qt) #5194 'Qt: open folder: on single-file torrents opens the file, not directory, except on Windows and Mac' -- fixed with patch from basinilya
This commit is contained in:
parent
ff3a6df7a6
commit
a7d352269f
1 changed files with 19 additions and 8 deletions
|
@ -609,16 +609,24 @@ TrMainWindow :: setLocation( )
|
||||||
}
|
}
|
||||||
|
|
||||||
// Open Folder & select torrent's file or top folder
|
// Open Folder & select torrent's file or top folder
|
||||||
|
#undef HAVE_OPEN_SELECT
|
||||||
|
#if defined(Q_OS_WIN)
|
||||||
|
# define HAVE_OPEN_SELECT
|
||||||
|
static
|
||||||
void openSelect(const QString& path)
|
void openSelect(const QString& path)
|
||||||
{
|
{
|
||||||
#if defined(Q_OS_WIN)
|
|
||||||
const QString explorer = "explorer";
|
const QString explorer = "explorer";
|
||||||
QString param;
|
QString param;
|
||||||
if (!QFileInfo(path).isDir())
|
if (!QFileInfo(path).isDir())
|
||||||
param = QLatin1String("/select,");
|
param = QLatin1String("/select,");
|
||||||
param += QDir::toNativeSeparators(path);
|
param += QDir::toNativeSeparators(path);
|
||||||
QProcess::startDetached(explorer, QStringList(param));
|
QProcess::startDetached(explorer, QStringList(param));
|
||||||
|
}
|
||||||
#elif defined(Q_OS_MAC)
|
#elif defined(Q_OS_MAC)
|
||||||
|
# define HAVE_OPEN_SELECT
|
||||||
|
static
|
||||||
|
void openSelect(const QString& path)
|
||||||
|
{
|
||||||
QStringList scriptArgs;
|
QStringList scriptArgs;
|
||||||
scriptArgs << QLatin1String("-e")
|
scriptArgs << QLatin1String("-e")
|
||||||
<< QString::fromLatin1("tell application \"Finder\" to reveal POSIX file \"%1\"")
|
<< QString::fromLatin1("tell application \"Finder\" to reveal POSIX file \"%1\"")
|
||||||
|
@ -628,10 +636,8 @@ void openSelect(const QString& path)
|
||||||
scriptArgs << QLatin1String("-e")
|
scriptArgs << QLatin1String("-e")
|
||||||
<< QLatin1String("tell application \"Finder\" to activate");
|
<< QLatin1String("tell application \"Finder\" to activate");
|
||||||
QProcess::execute("/usr/bin/osascript", scriptArgs);
|
QProcess::execute("/usr/bin/osascript", scriptArgs);
|
||||||
#elif defined(Q_OS_UNIX)
|
|
||||||
QDesktopServices :: openUrl( QUrl::fromLocalFile( path ) );
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void
|
void
|
||||||
TrMainWindow :: openFolder( )
|
TrMainWindow :: openFolder( )
|
||||||
|
@ -642,12 +648,17 @@ TrMainWindow :: openFolder( )
|
||||||
const FileList files = tor->files();
|
const FileList files = tor->files();
|
||||||
const QString firstfile = files.at(0).filename;
|
const QString firstfile = files.at(0).filename;
|
||||||
int slashIndex = firstfile.indexOf('/');
|
int slashIndex = firstfile.indexOf('/');
|
||||||
if (files.size() == 1)
|
if (files.size() > 1)
|
||||||
openSelect( path + "/" + files.at(0).filename );
|
{
|
||||||
else {
|
|
||||||
path = path + "/" + firstfile.left(slashIndex);
|
path = path + "/" + firstfile.left(slashIndex);
|
||||||
openSelect( path );
|
|
||||||
}
|
}
|
||||||
|
#ifdef HAVE_OPEN_SELECT
|
||||||
|
else {
|
||||||
|
openSelect( path + "/" + firstfile );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
QDesktopServices :: openUrl( QUrl::fromLocalFile( path ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in a new issue