Browse Source

Merge pull request #17305 from Kolcha/fix/open-dest-dir

Fix "Open destination folder" on macOS
adaptive-webui-19844
Chocobo1 2 years ago committed by GitHub
parent
commit
ec1d2cba40
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      src/gui/macutilities.mm
  2. 2
      src/gui/transferlistwidget.cpp

10
src/gui/macutilities.mm

@ -106,7 +106,15 @@ namespace MacUtils
for (const auto &path : pathList) for (const auto &path : pathList)
[pathURLs addObject:[NSURL fileURLWithPath:path.toString().toNSString()]]; [pathURLs addObject:[NSURL fileURLWithPath:path.toString().toNSString()]];
[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:pathURLs]; // In some unknown way, the next line affects Qt's main loop causing the crash
// in QApplication::exec() on processing next event after this call.
// Even crash doesn't happen exactly after this call, it will happen on
// application exit. Call stack and disassembly are the same in all cases.
// But running it in another thread (aka in background) solves the issue.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^
{
[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:pathURLs];
});
} }
} }

2
src/gui/transferlistwidget.cpp

@ -552,7 +552,7 @@ void TransferListWidget::openSelectedTorrentsFolder() const
// folders prehilighted for opening, so we use a custom method. // folders prehilighted for opening, so we use a custom method.
for (BitTorrent::Torrent *const torrent : asConst(getSelectedTorrents())) for (BitTorrent::Torrent *const torrent : asConst(getSelectedTorrents()))
{ {
const Path contentPath = torrent->actualStorageLocation() / torrent->contentPath(); const Path contentPath = torrent->contentPath();
paths.insert(contentPath); paths.insert(contentPath);
} }
MacUtils::openFiles(PathList(paths.cbegin(), paths.cend())); MacUtils::openFiles(PathList(paths.cbegin(), paths.cend()));

Loading…
Cancel
Save