mirror of
https://github.com/d47081/qBittorrent.git
synced 2025-01-11 15:27:54 +00: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
@ -93,10 +93,6 @@ PreviewSelectDialog::PreviewSelectDialog(QWidget *parent, BitTorrent::TorrentHan
|
||||
}
|
||||
}
|
||||
|
||||
if (m_previewListModel->rowCount() == 0) {
|
||||
QMessageBox::critical(this->parentWidget(), tr("Preview impossible"), tr("Sorry, we can't preview this file"));
|
||||
close();
|
||||
}
|
||||
connect(this, SIGNAL(readyToPreviewFile(QString)), parent, SLOT(previewFile(QString)));
|
||||
m_previewListModel->sort(NAME);
|
||||
previewList->header()->setSortIndicator(0, Qt::AscendingOrder);
|
||||
|
@ -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…
Reference in New Issue
Block a user