mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-19 06:20:53 +01:00
Le dialogue d'impression presente desormais les memes options que le dialogue d'export.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@759 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
#include "qetprintpreviewdialog.h"
|
||||
#include <math.h>
|
||||
#include "diagramschooser.h"
|
||||
#include "exportproperties.h"
|
||||
#include "qeticons.h"
|
||||
#include "qetmessagebox.h"
|
||||
|
||||
@@ -122,13 +123,23 @@ void DiagramPrintDialog::exec() {
|
||||
|
||||
// Apercu avant impression
|
||||
QETPrintPreviewDialog preview_dialog(project_, printer_, parentWidget());
|
||||
connect(&preview_dialog, SIGNAL(paintRequested(const QList<Diagram *> &, bool, QPrinter *)), this, SLOT(print(const QList<Diagram *> &, bool, QPrinter *)));
|
||||
connect(
|
||||
&preview_dialog,
|
||||
SIGNAL(paintRequested(const QList<Diagram *> &, bool, const ExportProperties, QPrinter *)),
|
||||
this,
|
||||
SLOT(print(const QList<Diagram *> &, bool, const ExportProperties, QPrinter *))
|
||||
);
|
||||
DiagramsChooser *dc = preview_dialog.diagramsChooser();
|
||||
dc -> setSelectedAllDiagrams();
|
||||
if (preview_dialog.exec() == QDialog::Rejected) return;
|
||||
|
||||
// effectue l'impression en elle-meme
|
||||
print(dc -> selectedDiagrams(), preview_dialog.fitDiagramsToPages(), printer_);
|
||||
print(
|
||||
dc -> selectedDiagrams(),
|
||||
preview_dialog.fitDiagramsToPages(),
|
||||
preview_dialog.exportProperties(),
|
||||
printer_
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -317,9 +328,10 @@ void DiagramPrintDialog::browseFilePrintTypeDialog() {
|
||||
@param diagrams Schemas a imprimer
|
||||
@param fit_page Booleen indiquant s'il faut adapter les schemas aux pages
|
||||
ou non
|
||||
@param options Options de rendu
|
||||
@param printer L'imprimante a utiliser
|
||||
*/
|
||||
void DiagramPrintDialog::print(const QList<Diagram *> &diagrams, bool fit_page, QPrinter */*printer*/) {
|
||||
void DiagramPrintDialog::print(const QList<Diagram *> &diagrams, bool fit_page, const ExportProperties options, QPrinter */*printer*/) {
|
||||
//qDebug() << "Demande d'impression de " << diagrams.count() << "schemas.";
|
||||
|
||||
// QPainter utiliser pour effectuer le rendu
|
||||
@@ -333,7 +345,7 @@ void DiagramPrintDialog::print(const QList<Diagram *> &diagrams, bool fit_page,
|
||||
|
||||
// imprime les schemas
|
||||
for (int i = 0 ; i < diagrams.count() ; ++ i) {
|
||||
printDiagram(diagrams[i], fit_page, &qp, printer_);
|
||||
printDiagram(diagrams[i], fit_page, options, &qp, printer_);
|
||||
if (i != diagrams.count() - 1) {
|
||||
printer_ -> newPage();
|
||||
}
|
||||
@@ -347,7 +359,7 @@ void DiagramPrintDialog::print(const QList<Diagram *> &diagrams, bool fit_page,
|
||||
@param qp QPainter a utiliser (deja initialise sur printer)
|
||||
@param printer Imprimante a utiliser
|
||||
*/
|
||||
void DiagramPrintDialog::printDiagram(Diagram *diagram, bool fit_page, QPainter *qp, QPrinter *printer) {
|
||||
void DiagramPrintDialog::printDiagram(Diagram *diagram, bool fit_page, const ExportProperties options, QPainter *qp, QPrinter *printer) {
|
||||
//qDebug() << printer -> paperSize() << printer -> paperRect() << diagram -> title();
|
||||
// l'imprimante utilise-t-elle toute la feuille ?
|
||||
bool full_page = printer -> fullPage ();
|
||||
@@ -357,8 +369,7 @@ void DiagramPrintDialog::printDiagram(Diagram *diagram, bool fit_page, QPainter
|
||||
// utiliser cette condition pour agir differemment en cas d'impression physique
|
||||
}
|
||||
|
||||
diagram -> setDisplayGrid(false);
|
||||
diagram -> setDrawTerminals(false);
|
||||
saveReloadDiagramParameters(diagram, options, true);
|
||||
|
||||
if (fit_page) {
|
||||
// impression adaptee sur une seule page
|
||||
@@ -426,6 +437,24 @@ void DiagramPrintDialog::printDiagram(Diagram *diagram, bool fit_page, QPainter
|
||||
}
|
||||
}
|
||||
}
|
||||
diagram -> setDrawTerminals(true);
|
||||
diagram -> setDisplayGrid(true);
|
||||
saveReloadDiagramParameters(diagram, options, false);
|
||||
}
|
||||
|
||||
/**
|
||||
Sauve ou restaure les parametres du schema
|
||||
@param diagram Schema dont on sauve ou restaure les parametres
|
||||
@param options Parametres a appliquer
|
||||
@param save true pour memoriser les parametres du schema et appliquer ceux
|
||||
definis dans options, false pour restaurer les parametres
|
||||
*/
|
||||
void DiagramPrintDialog::saveReloadDiagramParameters(Diagram *diagram, const ExportProperties options, bool save) {
|
||||
static ExportProperties state_exportProperties;
|
||||
|
||||
if (save) {
|
||||
// memorise les parametres relatifs au schema tout en appliquant les nouveaux
|
||||
state_exportProperties = diagram -> applyProperties(options);
|
||||
} else {
|
||||
// restaure les parametres relatifs au schema
|
||||
diagram -> applyProperties(state_exportProperties);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user