mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-13 00:33:09 -07:00
Prevent flickering preview dialog
Avoid instantiation of a preview dialog, when torrent is not previewable
This commit is contained in:
parent
4e8ab08425
commit
0b47021504
2 changed files with 17 additions and 5 deletions
|
@ -48,6 +48,7 @@
|
|||
#include "base/preferences.h"
|
||||
#include "base/torrentfilter.h"
|
||||
#include "base/utils/fs.h"
|
||||
#include "base/utils/misc.h"
|
||||
#include "base/utils/string.h"
|
||||
#include "autoexpandabledialog.h"
|
||||
#include "deletionconfirmationdialog.h"
|
||||
|
@ -198,6 +199,19 @@ namespace
|
|||
setDefaultWidget(new MenuCheckBox(text, onToggle, initialState));
|
||||
}
|
||||
};
|
||||
|
||||
bool torrentContainsPreviewableFiles(const BitTorrent::TorrentHandle *const torrent)
|
||||
{
|
||||
if (!torrent->hasMetadata())
|
||||
return false;
|
||||
|
||||
for (int i = 0; i < torrent->filesCount(); ++i) {
|
||||
if (Utils::Misc::isPreviewable(Utils::Fs::fileExtension(torrent->fileName(i))))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
TransferListWidget::TransferListWidget(QWidget *parent, MainWindow *mainWindow)
|
||||
|
@ -589,8 +603,10 @@ void TransferListWidget::openSelectedTorrentsFolder() const
|
|||
void TransferListWidget::previewSelectedTorrents()
|
||||
{
|
||||
for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) {
|
||||
if (torrent->hasMetadata())
|
||||
if (torrentContainsPreviewableFiles(torrent))
|
||||
new PreviewSelectDialog(this, torrent);
|
||||
else
|
||||
QMessageBox::critical(this, tr("Unable to preview"), tr("The selected torrent does not contain previewable files"));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue