mainwindow: pdfPreviewReceived(): Don't capture whole preview object in lambda

This commit is contained in:
Albert S. 2021-03-05 21:24:49 +01:00
父節點 dd053f87f9
當前提交 d6df8d583b

查看文件

@ -129,10 +129,12 @@ void MainWindow::pdfPreviewReceived(PdfPreview preview)
if(preview.hasPreviewImage())
{
ClickLabel *label = new ClickLabel();
QString docPath = preview.documentPath;
auto previewPage = preview.page;
label->setPixmap(QPixmap::fromImage(preview.previewImage));
label->setToolTip(preview.documentPath);
ui->scrollAreaWidgetContents->layout()->addWidget(label);
connect(label, &ClickLabel::leftClick, [=]() {
connect(label, &ClickLabel::leftClick, [docPath, previewPage]() {
QSettings settings;
QString command = settings.value("pdfviewer").toString();
if(command != "" && command.contains("%p") && command.contains("%f"))
@ -142,15 +144,15 @@ void MainWindow::pdfPreviewReceived(PdfPreview preview)
{
QString cmd = splitted[0];
QStringList args = splitted.mid(1);
args.replaceInStrings("%f", preview.documentPath);
args.replaceInStrings("%p", QString::number(preview.page));
args.replaceInStrings("%f", docPath);
args.replaceInStrings("%p", QString::number(previewPage));
QProcess::startDetached(cmd, args);
}
}
else
{
QDesktopServices::openUrl(QUrl::fromLocalFile(preview.documentPath));
QDesktopServices::openUrl(QUrl::fromLocalFile(docPath));
}
});
}