mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-06-08 11:13:15 +02:00
Compare commits
3 Commits
457d265f0a
...
e202b5bc2b
| Author | SHA1 | Date | |
|---|---|---|---|
| e202b5bc2b | |||
| 2b7e62f901 | |||
| 23e8258ae1 |
Binary file not shown.
+5
-5
@@ -2814,7 +2814,7 @@ Alle Bauteile und Unterordner von diesem Ordner werden ebenso gelöscht.</transl
|
||||
<message>
|
||||
<location filename="../sources/elementspanelwidget.cpp" line="63"/>
|
||||
<source>Copier et coller</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Kopieren und Einfügen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../sources/elementspanelwidget.cpp" line="64"/>
|
||||
@@ -8855,7 +8855,7 @@ Was möchten Sie tun?</translation>
|
||||
<message>
|
||||
<location filename="../sources/ElementsCollection/fileelementcollectionitem.cpp" line="133"/>
|
||||
<source>Makros</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Vorlagen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../sources/ElementsCollection/fileelementcollectionitem.cpp" line="135"/>
|
||||
@@ -9420,15 +9420,15 @@ Möchten Sie sie ersetzen?</translation>
|
||||
<translation>Einfügen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../sources/conductorproperties.cpp" line="826"/>
|
||||
<location filename="../sources/ElementsCollection/elementslocation.cpp" line="401"/>
|
||||
<location filename="../sources/factory/elementpicturefactory.cpp" line="582"/>
|
||||
<location filename="../sources/qetapp.cpp" line="2379"/>
|
||||
<location filename="../sources/SearchAndReplace/searchandreplaceworker.cpp" line="351"/>
|
||||
<location filename="../sources/SearchAndReplace/searchandreplaceworker.cpp" line="474"/>
|
||||
<location filename="../sources/SearchAndReplace/searchandreplaceworker.cpp" line="509"/>
|
||||
<location filename="../sources/SearchAndReplace/searchandreplaceworker.cpp" line="538"/>
|
||||
<location filename="../sources/SearchAndReplace/ui/searchandreplacewidget.cpp" line="425"/>
|
||||
<location filename="../sources/conductorproperties.cpp" line="826"/>
|
||||
<location filename="../sources/factory/elementpicturefactory.cpp" line="582"/>
|
||||
<location filename="../sources/qetapp.cpp" line="2379"/>
|
||||
<location filename="../sources/titleblock/templatelocation.cpp" line="108"/>
|
||||
<source>this is an error in the code</source>
|
||||
<translation>dies ist ein Programmfehler</translation>
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
#include <QFile>
|
||||
#include <QRegularExpression>
|
||||
#include <QMap>
|
||||
#include <QTimer>
|
||||
#include <QVector>
|
||||
|
||||
/**
|
||||
@@ -495,13 +496,12 @@ void ProjectPrintWindow::requestPaint()
|
||||
printDiagram(diagram, ui->m_fit_in_page_cb->isChecked(), &painter, m_printer, diagramPageMap);
|
||||
}
|
||||
|
||||
if (pdfExport) {
|
||||
painter.end(); // flush & close the PDF file on disk
|
||||
// Convert URI link annotations into native internal GoTo/FitR actions:
|
||||
// cross-references then jump inside the document (no new viewer
|
||||
// instance) and frame the target element.
|
||||
pdfConvertUriToGoTo(m_printer->outputFileName());
|
||||
}
|
||||
// Note: do NOT call painter.end() or pdfConvertUriToGoTo() here.
|
||||
// We are inside the paintRequested slot: the QPrintPreviewWidget still
|
||||
// owns the paint cycle. On macOS arm64 (Metal/CALayer compositor),
|
||||
// closing the QPainter manually inside this slot leaves the backing
|
||||
// store in an undefined state, producing a black screen after export.
|
||||
// pdfConvertUriToGoTo() is deferred to print() via QTimer::singleShot(0).
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1218,9 +1218,29 @@ void ProjectPrintWindow::on_m_uncheck_all_clicked()
|
||||
|
||||
void ProjectPrintWindow::print()
|
||||
{
|
||||
m_preview->print();
|
||||
const bool isPdf = (m_printer->outputFormat() == QPrinter::PdfFormat);
|
||||
const QString pdfFile = isPdf ? m_printer->outputFileName() : QString();
|
||||
|
||||
m_preview->print(); // triggers requestPaint() synchronously; painter
|
||||
// is created/destroyed inside that call
|
||||
|
||||
savePageSetupForCurrentPrinter();
|
||||
this->close();
|
||||
|
||||
if (isPdf && !pdfFile.isEmpty()) {
|
||||
// Defer post-processing and window close to the next event-loop
|
||||
// iteration. This lets the macOS arm64 Metal compositor finish
|
||||
// compositing the backing store before the window is destroyed,
|
||||
// which prevents the black screen observed on Apple Silicon under
|
||||
// macOS Sequoia (QPrintPreviewWidget + CALayer timing issue).
|
||||
QTimer::singleShot(0, this, [this, pdfFile]() {
|
||||
// Convert URI link annotations into native internal GoTo/FitR
|
||||
// actions so cross-references jump inside the document.
|
||||
pdfConvertUriToGoTo(pdfFile);
|
||||
this->close();
|
||||
});
|
||||
} else {
|
||||
this->close();
|
||||
}
|
||||
}
|
||||
|
||||
void ProjectPrintWindow::on_m_date_cb_userDateChanged(const QDate &date)
|
||||
|
||||
Reference in New Issue
Block a user