1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2024-12-23 16:24:02 +00:00

(trunk, qt) fix #4824 'Open Folder bug' with a patch from rb07

This commit is contained in:
Jordan Lee 2012-04-07 00:16:14 +00:00
parent 00919e932d
commit 001813c364

View file

@ -579,13 +579,45 @@ TrMainWindow :: setLocation( )
d->show( ); d->show( );
} }
// Open Folder & select torrent's file or top folder
void openSelect(const QString& path)
{
#if defined(Q_OS_WIN)
const QString explorer = "explorer";
QString param;
if (!QFileInfo(path).isDir())
param = QLatin1String("/select,");
param += QDir::toNativeSeparators(path);
QProcess::startDetached(explorer, QStringList(param));
#elif defined(Q_OS_MAC)
QStringList scriptArgs;
scriptArgs << QLatin1String("-e")
<< QString::fromLatin1("tell application \"Finder\" to reveal POSIX file \"%1\"")
.arg(path);
QProcess::execute(QLatin1String("/usr/bin/osascript"), scriptArgs);
scriptArgs.clear();
scriptArgs << QLatin1String("-e")
<< QLatin1String("tell application \"Finder\" to activate");
QProcess::execute("/usr/bin/osascript", scriptArgs);
#elif defined(Q_OS_UNIX)
QDesktopServices :: openUrl( QUrl::fromLocalFile( path ) );
#endif
}
void void
TrMainWindow :: openFolder( ) TrMainWindow :: openFolder( )
{ {
const int torrentId( *getSelectedTorrents().begin() ); const int torrentId( *getSelectedTorrents().begin() );
const Torrent * tor( myModel.getTorrentFromId( torrentId ) ); const Torrent * tor( myModel.getTorrentFromId( torrentId ) );
const QString path( tor->getPath( ) ); const QString path( tor->getPath( ) );
QDesktopServices :: openUrl( QUrl::fromLocalFile( path ) ); const FileList files = tor->files();
if (files.size() == 1)
openSelect( path + "/" + files.at(0).filename );
else {
QDir dir( path + "/" + files.at(0).filename );
dir.cdUp();
openSelect( dir.path() );
}
} }
void void