mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-08-22 00:04:14 +02:00
Fix component-info annotation index collision across pages
This commit is contained in:
@@ -256,6 +256,7 @@ void ProjectPrintWindow::requestPaint()
|
|||||||
|
|
||||||
bool first = true;
|
bool first = true;
|
||||||
QPainter painter(m_printer);
|
QPainter painter(m_printer);
|
||||||
|
int annotIndex = 0;
|
||||||
|
|
||||||
// A real PDF export uses the QPdfEngine; the on-screen preview uses a
|
// A real PDF export uses the QPdfEngine; the on-screen preview uses a
|
||||||
// preview paint engine. We only post-process when actually writing a PDF.
|
// preview paint engine. We only post-process when actually writing a PDF.
|
||||||
@@ -269,7 +270,7 @@ void ProjectPrintWindow::requestPaint()
|
|||||||
for (auto diagram : selectedDiagram())
|
for (auto diagram : selectedDiagram())
|
||||||
{
|
{
|
||||||
first ? first = false : m_printer->newPage();
|
first ? first = false : m_printer->newPage();
|
||||||
printDiagram(diagram, ui->m_fit_in_page_cb->isChecked(), &painter, m_printer, diagramPageMap);
|
printDiagram(diagram, ui->m_fit_in_page_cb->isChecked(), &painter, m_printer, diagramPageMap, annotIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note: do NOT call painter.end() or pdfConvertUriToGoTo() here.
|
// Note: do NOT call painter.end() or pdfConvertUriToGoTo() here.
|
||||||
@@ -287,7 +288,7 @@ void ProjectPrintWindow::requestPaint()
|
|||||||
* @param fit_page
|
* @param fit_page
|
||||||
* @param printer
|
* @param printer
|
||||||
*/
|
*/
|
||||||
void ProjectPrintWindow::printDiagram(Diagram *diagram, bool fit_page, QPainter *painter, QPrinter *printer, const QMap<Diagram*, int> &diagramPageMap)
|
void ProjectPrintWindow::printDiagram(Diagram *diagram, bool fit_page, QPainter *painter, QPrinter *printer, const QMap<Diagram*, int> &diagramPageMap, int &annotIndex)
|
||||||
{
|
{
|
||||||
|
|
||||||
////Prepare the print////
|
////Prepare the print////
|
||||||
@@ -432,7 +433,6 @@ void ProjectPrintWindow::printDiagram(Diagram *diagram, bool fit_page, QPainter
|
|||||||
|
|
||||||
////Collect component info for popup annotations////
|
////Collect component info for popup annotations////
|
||||||
if (ui->m_component_info_cb->isChecked()) {
|
if (ui->m_component_info_cb->isChecked()) {
|
||||||
int annotIndex = 0;
|
|
||||||
for (auto *item : diagram->items()) {
|
for (auto *item : diagram->items()) {
|
||||||
auto *el = qgraphicsitem_cast<Element*>(item);
|
auto *el = qgraphicsitem_cast<Element*>(item);
|
||||||
if (!el) continue;
|
if (!el) continue;
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ class ProjectPrintWindow : public QMainWindow
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void requestPaint();
|
void requestPaint();
|
||||||
void printDiagram(Diagram *diagram, bool fit_page, QPainter *painter, QPrinter *printer, const QMap<Diagram*, int> &diagramPageMap = {});
|
void printDiagram(Diagram *diagram, bool fit_page, QPainter *painter, QPrinter *printer, const QMap<Diagram*, int> &diagramPageMap, int &annotIndex);
|
||||||
QRect diagramRect(Diagram *diagram, const ExportProperties &option) const;
|
QRect diagramRect(Diagram *diagram, const ExportProperties &option) const;
|
||||||
int horizontalPagesCount(Diagram *diagram, const ExportProperties &option, bool full_page) const;
|
int horizontalPagesCount(Diagram *diagram, const ExportProperties &option, bool full_page) const;
|
||||||
int verticalPagesCount(Diagram *diagram, const ExportProperties &option, bool full_page) const;
|
int verticalPagesCount(Diagram *diagram, const ExportProperties &option, bool full_page) const;
|
||||||
|
|||||||
Reference in New Issue
Block a user