Ajout de la methode Diagram::applyProperties pour appliquer des options de rendu sur un schema.

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@758 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavier
2009-10-04 01:20:45 +00:00
parent 10d7577419
commit 3e383237c1
3 changed files with 34 additions and 28 deletions

View File

@@ -898,6 +898,34 @@ bool Diagram::usesElement(const ElementsLocation &location) {
return(false); return(false);
} }
/**
Cette methode permet d'appliquer de nouvelles options de rendu tout en
accedant aux proprietes de rendu en cours.
@param new_properties Nouvelles options de rendu a appliquer
@return les options de rendu avant l'application de new_properties
*/
ExportProperties Diagram::applyProperties(const ExportProperties &new_properties) {
// exporte les options de rendu en cours
ExportProperties old_properties;
old_properties.draw_grid = displayGrid();
old_properties.draw_border = border_and_inset.borderIsDisplayed();
old_properties.draw_inset = border_and_inset.insetIsDisplayed();
old_properties.draw_terminals = drawTerminals();
old_properties.draw_colored_conductors = drawColoredConductors();
old_properties.exported_area = useBorder() ? QET::BorderArea : QET::ElementsArea;
// applique les nouvelles options de rendu
setUseBorder (new_properties.exported_area == QET::BorderArea);
setDrawTerminals (new_properties.draw_terminals);
setDrawColoredConductors (new_properties.draw_colored_conductors);
setDisplayGrid (new_properties.draw_grid);
border_and_inset.displayBorder(new_properties.draw_border);
border_and_inset.displayInset (new_properties.draw_inset);
// retourne les anciennes options de rendu
return(old_properties);
}
/** /**
@param pos Position cartesienne (ex : 10.3, 45.2) a transformer en position @param pos Position cartesienne (ex : 10.3, 45.2) a transformer en position
dans la grille (ex : B2) dans la grille (ex : B2)

View File

@@ -22,6 +22,7 @@
#include "borderinset.h" #include "borderinset.h"
#include "qgimanager.h" #include "qgimanager.h"
#include "conductorproperties.h" #include "conductorproperties.h"
#include "exportproperties.h"
class Element; class Element;
class CustomElement; class CustomElement;
class Terminal; class Terminal;
@@ -128,6 +129,7 @@ class Diagram : public QGraphicsScene {
void removeDiagramTextItem(DiagramTextItem *); void removeDiagramTextItem(DiagramTextItem *);
// fonctions relatives aux options graphiques // fonctions relatives aux options graphiques
ExportProperties applyProperties(const ExportProperties &);
void setDisplayGrid(bool); void setDisplayGrid(bool);
bool displayGrid(); bool displayGrid();
void setUseBorder(bool); void setUseBorder(bool);

View File

@@ -309,38 +309,14 @@ QImage ExportDialog::generateImage(Diagram *diagram, int width, int height, bool
definis par le formulaire, false pour restaurer les parametres definis par le formulaire, false pour restaurer les parametres
*/ */
void ExportDialog::saveReloadDiagramParameters(Diagram *diagram, bool save) { void ExportDialog::saveReloadDiagramParameters(Diagram *diagram, bool save) {
static bool state_drawBorder; static ExportProperties state_exportProperties;
static bool state_drawInset;
static bool state_drawGrid;
static bool state_drawTerm;
static bool state_drawColCond;
static bool state_useBorder;
if (save) { if (save) {
// memorise les parametres relatifs au schema // memorise les parametres relatifs au schema tout en appliquant les nouveaux
state_drawBorder = diagram -> border_and_inset.borderIsDisplayed(); state_exportProperties = diagram -> applyProperties(epw -> exportProperties());
state_drawInset = diagram -> border_and_inset.insetIsDisplayed();
state_drawGrid = diagram -> displayGrid();
state_drawTerm = diagram -> drawTerminals();
state_drawColCond = diagram -> drawColoredConductors();
state_useBorder = diagram -> useBorder();
ExportProperties export_properties = epw -> exportProperties();
diagram -> setUseBorder (export_properties.exported_area == QET::BorderArea);
diagram -> setDrawTerminals (export_properties.draw_terminals);
diagram -> setDrawColoredConductors (export_properties.draw_colored_conductors);
diagram -> setDisplayGrid (export_properties.draw_grid);
diagram -> border_and_inset.displayBorder(export_properties.draw_border);
diagram -> border_and_inset.displayInset (export_properties.draw_inset);
} else { } else {
// restaure les parametres relatifs au schema // restaure les parametres relatifs au schema
diagram -> border_and_inset.displayBorder(state_drawBorder); diagram -> applyProperties(state_exportProperties);
diagram -> border_and_inset.displayInset(state_drawInset);
diagram -> setDisplayGrid(state_drawGrid);
diagram -> setDrawTerminals(state_drawTerm);
diagram -> setDrawColoredConductors(state_drawColCond);
diagram -> setUseBorder(state_useBorder);
} }
} }