mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-09-13 20:23:04 +02:00
Premiere application du patch de Sebastien Gouezel : il est possible de specifier les parametres d'export par defaut au niveau de l'application.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@727 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
parent
eefa0696cf
commit
9f1d5b8713
BIN
ico/128x128/document-export.png
Normal file
BIN
ico/128x128/document-export.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.1 KiB |
@ -2,6 +2,7 @@
|
|||||||
<qresource>
|
<qresource>
|
||||||
<file>ico/128x128/diagram.png</file>
|
<file>ico/128x128/diagram.png</file>
|
||||||
<file>ico/128x128/settings.png</file>
|
<file>ico/128x128/settings.png</file>
|
||||||
|
<file>ico/128x128/document-export.png</file>
|
||||||
<file>ico/16x16/add_col.png</file>
|
<file>ico/16x16/add_col.png</file>
|
||||||
<file>ico/16x16/add_row.png</file>
|
<file>ico/16x16/add_row.png</file>
|
||||||
<file>ico/16x16/application-exit.png</file>
|
<file>ico/16x16/application-exit.png</file>
|
||||||
|
@ -39,6 +39,7 @@ ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent) {
|
|||||||
pages_widget = new QStackedWidget();
|
pages_widget = new QStackedWidget();
|
||||||
addPage(new GeneralConfigurationPage());
|
addPage(new GeneralConfigurationPage());
|
||||||
addPage(new NewDiagramPage());
|
addPage(new NewDiagramPage());
|
||||||
|
addPage(new ExportConfigPage());
|
||||||
buildPagesList();
|
buildPagesList();
|
||||||
|
|
||||||
// boutons
|
// boutons
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include "qetdiagrameditor.h"
|
#include "qetdiagrameditor.h"
|
||||||
#include "borderinset.h"
|
#include "borderinset.h"
|
||||||
#include "qeticons.h"
|
#include "qeticons.h"
|
||||||
|
#include "exportpropertieswidget.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Constructeur
|
Constructeur
|
||||||
@ -189,3 +190,50 @@ QIcon GeneralConfigurationPage::icon() const {
|
|||||||
QString GeneralConfigurationPage::title() const {
|
QString GeneralConfigurationPage::title() const {
|
||||||
return(tr("G\351n\351ral", "configuration page title"));
|
return(tr("G\351n\351ral", "configuration page title"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Constructeur
|
||||||
|
@param parent QWidget parent
|
||||||
|
*/
|
||||||
|
ExportConfigPage::ExportConfigPage(QWidget *parent) : ConfigPage(parent) {
|
||||||
|
// epw contient les options d'export
|
||||||
|
epw = new ExportPropertiesWidget(QETDiagramEditor::defaultExportProperties());
|
||||||
|
|
||||||
|
// layout vertical contenant le titre, une ligne horizontale et epw
|
||||||
|
QVBoxLayout *vlayout1 = new QVBoxLayout();
|
||||||
|
|
||||||
|
QLabel *title = new QLabel(this -> title());
|
||||||
|
vlayout1 -> addWidget(title);
|
||||||
|
|
||||||
|
QFrame *horiz_line = new QFrame();
|
||||||
|
horiz_line -> setFrameShape(QFrame::HLine);
|
||||||
|
vlayout1 -> addWidget(horiz_line);
|
||||||
|
vlayout1 -> addWidget(epw);
|
||||||
|
|
||||||
|
// activation du layout
|
||||||
|
setLayout(vlayout1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Destructeur
|
||||||
|
ExportConfigPage::~ExportConfigPage() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Applique la configuration de cette page
|
||||||
|
*/
|
||||||
|
void ExportConfigPage::applyConf() {
|
||||||
|
QSettings &settings = QETApp::settings();
|
||||||
|
epw -> exportProperties().toSettings(settings, "export/default");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @return l'icone de cette page
|
||||||
|
QIcon ExportConfigPage::icon() const {
|
||||||
|
return(QET::Icons::DocumentExport);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @return le titre de cette page
|
||||||
|
QString ExportConfigPage::title() const {
|
||||||
|
return(tr("Export", "configuration page title"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
class BorderPropertiesWidget;
|
class BorderPropertiesWidget;
|
||||||
class ConductorPropertiesWidget;
|
class ConductorPropertiesWidget;
|
||||||
class InsetPropertiesWidget;
|
class InsetPropertiesWidget;
|
||||||
|
class ExportPropertiesWidget;
|
||||||
/**
|
/**
|
||||||
Cette classe abstraite contient les methodes que toutes les pages de
|
Cette classe abstraite contient les methodes que toutes les pages de
|
||||||
configuration doivent implementer.
|
configuration doivent implementer.
|
||||||
@ -99,4 +100,27 @@ class GeneralConfigurationPage : public ConfigPage {
|
|||||||
QGroupBox *elements_management_;
|
QGroupBox *elements_management_;
|
||||||
QCheckBox *integrate_elements_;
|
QCheckBox *integrate_elements_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
Cette classe represente la page de configuration du dialogue d'exportation
|
||||||
|
*/
|
||||||
|
class ExportConfigPage : public ConfigPage {
|
||||||
|
Q_OBJECT
|
||||||
|
// constructeurs, destructeur
|
||||||
|
public:
|
||||||
|
ExportConfigPage(QWidget * = 0);
|
||||||
|
virtual ~ExportConfigPage();
|
||||||
|
private:
|
||||||
|
ExportConfigPage(const ExportConfigPage &);
|
||||||
|
|
||||||
|
// methodes
|
||||||
|
public:
|
||||||
|
void applyConf();
|
||||||
|
QString title() const;
|
||||||
|
QIcon icon() const;
|
||||||
|
|
||||||
|
// attributs
|
||||||
|
public:
|
||||||
|
ExportPropertiesWidget *epw;
|
||||||
|
};
|
||||||
#endif
|
#endif
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
#include <QSvgGenerator>
|
#include <QSvgGenerator>
|
||||||
#include <QtXml>
|
#include <QtXml>
|
||||||
#include "qeticons.h"
|
#include "qeticons.h"
|
||||||
|
#include "exportpropertieswidget.h"
|
||||||
|
#include "qetdiagrameditor.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Constructeur
|
Constructeur
|
||||||
@ -28,13 +30,24 @@
|
|||||||
ExportDialog::ExportDialog(QETProject *project, QWidget *parent) : QDialog(parent) {
|
ExportDialog::ExportDialog(QETProject *project, QWidget *parent) : QDialog(parent) {
|
||||||
if (!project) return;
|
if (!project) return;
|
||||||
|
|
||||||
// recupere le schema a exporter, sa taille et ses proportions
|
// recupere le projet a exporter
|
||||||
project_ = project;
|
project_ = project;
|
||||||
|
|
||||||
|
// recupere les parametres d'export definis dans la configuration de l'application
|
||||||
|
ExportProperties default_export_properties = QETDiagramEditor::defaultExportProperties();
|
||||||
|
|
||||||
|
// on utilise le repertoire du projet a exporter si possible
|
||||||
|
if (!project_ -> filePath().isEmpty()) {
|
||||||
|
default_export_properties.destination_directory = project_ -> currentDir();
|
||||||
|
}
|
||||||
|
|
||||||
// la taille minimale du dialogue est fixee
|
// la taille minimale du dialogue est fixee
|
||||||
setMinimumSize(800, 390);
|
setMinimumSize(800, 390);
|
||||||
resize(minimumSize());
|
resize(minimumSize());
|
||||||
setWindowTitle(tr("Exporter les sch\351mas du projet", "window title"));
|
setWindowTitle(tr("Exporter les sch\351mas du projet", "window title"));
|
||||||
|
|
||||||
|
// options d'export, dans le widget epw
|
||||||
|
epw = new ExportPropertiesWidget(default_export_properties);
|
||||||
|
|
||||||
// le dialogue comporte deux boutons
|
// le dialogue comporte deux boutons
|
||||||
buttons = new QDialogButtonBox(this);
|
buttons = new QDialogButtonBox(this);
|
||||||
@ -47,15 +60,17 @@ ExportDialog::ExportDialog(QETProject *project, QWidget *parent) : QDialog(paren
|
|||||||
QVBoxLayout *layout = new QVBoxLayout(this);
|
QVBoxLayout *layout = new QVBoxLayout(this);
|
||||||
layout -> addWidget(new QLabel(tr("Choisissez les sch\351mas que vous d\351sirez exporter ainsi que leurs dimensions :")));
|
layout -> addWidget(new QLabel(tr("Choisissez les sch\351mas que vous d\351sirez exporter ainsi que leurs dimensions :")));
|
||||||
layout -> addWidget(initDiagramsListPart(), 1);
|
layout -> addWidget(initDiagramsListPart(), 1);
|
||||||
layout -> addWidget(leftPart());
|
layout -> addWidget(epw);
|
||||||
layout -> addWidget(buttons);
|
layout -> addWidget(buttons);
|
||||||
slot_changeFilesExtension(true);
|
|
||||||
|
|
||||||
// connexions signaux/slots
|
// connexions signaux/slots
|
||||||
connect(button_browse, SIGNAL(released()), this, SLOT(slot_chooseADirectory()));
|
connect(epw, SIGNAL(formatChanged()), this, SLOT(slot_changeFilesExtension()));
|
||||||
connect(format, SIGNAL(currentIndexChanged(int)), this, SLOT(slot_changeFilesExtension()));
|
connect(epw, SIGNAL(exportedAreaChanged()), this, SLOT(slot_changeUseBorder()));
|
||||||
connect(buttons, SIGNAL(accepted()), this, SLOT(slot_export()));
|
connect(buttons, SIGNAL(accepted()), this, SLOT(slot_export()));
|
||||||
connect(buttons, SIGNAL(rejected()), this, SLOT(reject()));
|
connect(buttons, SIGNAL(rejected()), this, SLOT(reject()));
|
||||||
|
|
||||||
|
// ajustement des extensions des fichiers
|
||||||
|
slot_changeFilesExtension(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -65,7 +80,7 @@ ExportDialog::~ExportDialog() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@return lenombre de schemas coches (donc a exporter)
|
@return le nombre de schemas coches (donc a exporter)
|
||||||
*/
|
*/
|
||||||
int ExportDialog::diagramsToExportCount() const {
|
int ExportDialog::diagramsToExportCount() const {
|
||||||
int checked_diagrams_count = 0;
|
int checked_diagrams_count = 0;
|
||||||
@ -75,47 +90,6 @@ int ExportDialog::diagramsToExportCount() const {
|
|||||||
return(checked_diagrams_count);
|
return(checked_diagrams_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
Met en place la partie du dialogue dans lequel l'utilisateur entre les
|
|
||||||
options souhaitees de l'image.
|
|
||||||
@return La QGroupBox permettant de regler les options de l'image
|
|
||||||
*/
|
|
||||||
QGroupBox *ExportDialog::setupOptionsGroupBox() {
|
|
||||||
QGroupBox *groupbox_options = new QGroupBox(tr("Options"), this);
|
|
||||||
QGridLayout *optionshlayout = new QGridLayout(groupbox_options);
|
|
||||||
|
|
||||||
// Choix de la zone du schema a exporter
|
|
||||||
QButtonGroup *exported_content_choices = new QButtonGroup(groupbox_options);
|
|
||||||
export_border = new QRadioButton(tr("Exporter le cadre"), groupbox_options);
|
|
||||||
optionshlayout -> addWidget(export_border, 0, 0);
|
|
||||||
exported_content_choices -> addButton(export_border);
|
|
||||||
export_elements = new QRadioButton(tr("Exporter les \351l\351ments"), groupbox_options);
|
|
||||||
optionshlayout -> addWidget(export_elements, 0, 1);
|
|
||||||
exported_content_choices -> addButton(export_elements);
|
|
||||||
export_border -> setChecked(true);
|
|
||||||
connect(exported_content_choices, SIGNAL(buttonClicked(QAbstractButton *)), this, SLOT(slot_changeUseBorder()));
|
|
||||||
|
|
||||||
// dessiner la grille
|
|
||||||
draw_grid = new QCheckBox(tr("Dessiner la grille"), groupbox_options);
|
|
||||||
optionshlayout -> addWidget(draw_grid, 1, 1);
|
|
||||||
|
|
||||||
// dessiner le cadre
|
|
||||||
draw_border = new QCheckBox(tr("Dessiner le cadre"), groupbox_options);
|
|
||||||
optionshlayout -> addWidget(draw_border, 1, 0);
|
|
||||||
draw_border -> setChecked(true);
|
|
||||||
|
|
||||||
// dessiner le cartouche
|
|
||||||
draw_inset = new QCheckBox(tr("Dessiner le cartouche"), groupbox_options);
|
|
||||||
optionshlayout -> addWidget(draw_inset, 2, 0);
|
|
||||||
draw_inset -> setChecked(true);
|
|
||||||
|
|
||||||
// dessiner les bornes
|
|
||||||
draw_terminals = new QCheckBox(tr("Dessiner les bornes"), groupbox_options);
|
|
||||||
optionshlayout -> addWidget(draw_terminals, 2, 1);
|
|
||||||
|
|
||||||
return(groupbox_options);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Met en place la liste des schemas
|
Met en place la liste des schemas
|
||||||
@return Le widget representant la liste des schemas
|
@return Le widget representant la liste des schemas
|
||||||
@ -177,60 +151,6 @@ QWidget *ExportDialog::initDiagramsListPart() {
|
|||||||
return(scroll_diagrams_list);
|
return(scroll_diagrams_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
Met en place la partie gauche du dialogue
|
|
||||||
@return Le widget representant la moitie gauche du dialogue
|
|
||||||
*/
|
|
||||||
QWidget *ExportDialog::leftPart() {
|
|
||||||
QWidget *retour = new QWidget();
|
|
||||||
|
|
||||||
// la partie gauche du dialogue est un empilement vertical d'elements
|
|
||||||
QVBoxLayout *vboxLayout = new QVBoxLayout(retour);
|
|
||||||
|
|
||||||
/* le dialogue comprend une ligne permettant d'indiquer un chemin de dossier (hboxLayout) */
|
|
||||||
QHBoxLayout *hboxLayout = new QHBoxLayout();
|
|
||||||
QLabel *dirpath_label = new QLabel(tr("Dossier cible :"), this);
|
|
||||||
dirpath = new QLineEdit(this);
|
|
||||||
dirpath -> setText(QDir::toNativeSeparators(project_ -> currentDir()));
|
|
||||||
QCompleter *completer = new QCompleter(this);
|
|
||||||
completer -> setModel(new QDirModel(completer));
|
|
||||||
dirpath -> setCompleter(completer);
|
|
||||||
button_browse = new QPushButton(tr("Parcourir"), this);
|
|
||||||
hboxLayout -> addWidget(dirpath_label);
|
|
||||||
hboxLayout -> addWidget(dirpath);
|
|
||||||
hboxLayout -> addWidget(button_browse);
|
|
||||||
hboxLayout -> addStretch();
|
|
||||||
|
|
||||||
vboxLayout -> addLayout(hboxLayout);
|
|
||||||
|
|
||||||
/* une ligne permettant de choisir le format (hboxLayout1) */
|
|
||||||
QHBoxLayout *hboxLayout1 = new QHBoxLayout();
|
|
||||||
hboxLayout1 -> addWidget(new QLabel(tr("Format :"), this));
|
|
||||||
hboxLayout1 -> addWidget(format = new QComboBox(this));
|
|
||||||
format -> addItem(tr("PNG (*.png)"), "PNG");
|
|
||||||
format -> addItem(tr("JPEG (*.jpg)"), "JPG");
|
|
||||||
format -> addItem(tr("Bitmap (*.bmp)"), "BMP");
|
|
||||||
format -> addItem(tr("SVG (*.svg)"), "SVG");
|
|
||||||
hboxLayout1 -> addStretch();
|
|
||||||
|
|
||||||
vboxLayout -> addLayout(hboxLayout1);
|
|
||||||
|
|
||||||
/* un cadre permettant de specifier les options de l'image finale */
|
|
||||||
vboxLayout -> addWidget(setupOptionsGroupBox());
|
|
||||||
vboxLayout -> addStretch();
|
|
||||||
|
|
||||||
// ordre des input selectionnes avec la touche tab
|
|
||||||
|
|
||||||
setTabOrder(dirpath, button_browse);
|
|
||||||
setTabOrder(button_browse, format);
|
|
||||||
setTabOrder(format, export_border);
|
|
||||||
setTabOrder(export_border, draw_border);
|
|
||||||
setTabOrder(draw_border, draw_grid);
|
|
||||||
setTabOrder(draw_grid, draw_inset);
|
|
||||||
setTabOrder(draw_inset, draw_terminals);
|
|
||||||
return(retour);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@param diagram Un schema
|
@param diagram Un schema
|
||||||
@return le rapport largeur / hauteur du schema
|
@return le rapport largeur / hauteur du schema
|
||||||
@ -251,7 +171,7 @@ QSize ExportDialog::diagramSize(Diagram *diagram) {
|
|||||||
bool state_useBorder = diagram -> useBorder();
|
bool state_useBorder = diagram -> useBorder();
|
||||||
|
|
||||||
// applique le useBorder adequat et calcule le ratio
|
// applique le useBorder adequat et calcule le ratio
|
||||||
diagram -> setUseBorder(export_border -> isChecked());
|
diagram -> setUseBorder(epw -> exportProperties().exported_area == QET::BorderArea);
|
||||||
QSize diagram_size = diagram -> imageSize();
|
QSize diagram_size = diagram -> imageSize();
|
||||||
|
|
||||||
// restaure le parametre useBorder du schema
|
// restaure le parametre useBorder du schema
|
||||||
@ -351,20 +271,6 @@ void ExportDialog::slot_resetSize(int diagram_id) {
|
|||||||
current_diagram -> height -> blockSignals(false);
|
current_diagram -> height -> blockSignals(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
Slot demandant a l'utilisateur de choisir un dossier
|
|
||||||
*/
|
|
||||||
void ExportDialog::slot_chooseADirectory() {
|
|
||||||
QString user_dir = QFileDialog::getExistingDirectory(
|
|
||||||
this,
|
|
||||||
tr("Exporter dans le dossier", "dialog title"),
|
|
||||||
dirpath -> text()
|
|
||||||
);
|
|
||||||
if (!user_dir.isEmpty()) {
|
|
||||||
dirpath -> setText(user_dir);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Genere l'image a exporter
|
Genere l'image a exporter
|
||||||
@param diagram Schema a exporter en SVG
|
@param diagram Schema a exporter en SVG
|
||||||
@ -410,11 +316,13 @@ void ExportDialog::saveReloadDiagramParameters(Diagram *diagram, bool save) {
|
|||||||
state_drawTerm = diagram -> drawTerminals();
|
state_drawTerm = diagram -> drawTerminals();
|
||||||
state_useBorder = diagram -> useBorder();
|
state_useBorder = diagram -> useBorder();
|
||||||
|
|
||||||
diagram -> setUseBorder(export_border -> isChecked());
|
ExportProperties export_properties = epw -> exportProperties();
|
||||||
diagram -> setDrawTerminals(draw_terminals -> isChecked());
|
|
||||||
diagram -> setDisplayGrid(draw_grid -> isChecked());
|
diagram -> setUseBorder (export_properties.exported_area == QET::BorderArea);
|
||||||
diagram -> border_and_inset.displayBorder(draw_border -> isChecked());
|
diagram -> setDrawTerminals (export_properties.draw_terminals);
|
||||||
diagram -> border_and_inset.displayInset(draw_inset -> isChecked());
|
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 -> border_and_inset.displayBorder(state_drawBorder);
|
||||||
@ -480,7 +388,7 @@ void ExportDialog::slot_export() {
|
|||||||
this,
|
this,
|
||||||
tr("Noms des fichiers cibles", "message box title"),
|
tr("Noms des fichiers cibles", "message box title"),
|
||||||
tr(
|
tr(
|
||||||
"Vous devez entrer un nom de fichier distinct pour chaque "
|
"Vous devez entrer un nom de fichier non vide et unique pour chaque "
|
||||||
"sch\351ma \340 exporter.",
|
"sch\351ma \340 exporter.",
|
||||||
"message box content"
|
"message box content"
|
||||||
)
|
)
|
||||||
@ -489,8 +397,9 @@ void ExportDialog::slot_export() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// verification #2 : un chemin vers un dossier doit avoir ete specifie
|
// verification #2 : un chemin vers un dossier doit avoir ete specifie
|
||||||
QDir target_dir_path(dirpath -> text());
|
|
||||||
if (dirpath -> text().isEmpty() || !target_dir_path.exists()) {
|
QDir target_dir_path(epw -> exportProperties().destination_directory);
|
||||||
|
if (!target_dir_path.exists()) {
|
||||||
QMessageBox::warning(
|
QMessageBox::warning(
|
||||||
this,
|
this,
|
||||||
tr("Dossier non sp\351cifi\351", "message box title"),
|
tr("Dossier non sp\351cifi\351", "message box title"),
|
||||||
@ -515,15 +424,17 @@ void ExportDialog::slot_export() {
|
|||||||
de l'exporter
|
de l'exporter
|
||||||
*/
|
*/
|
||||||
void ExportDialog::exportDiagram(ExportDiagramLine *diagram_line) {
|
void ExportDialog::exportDiagram(ExportDiagramLine *diagram_line) {
|
||||||
|
ExportProperties export_properties(epw -> exportProperties());
|
||||||
|
|
||||||
// recupere le format a utiliser (acronyme et extension)
|
// recupere le format a utiliser (acronyme et extension)
|
||||||
QString format_acronym = format -> itemData(format -> currentIndex()).toString();
|
QString format_acronym = export_properties.format;
|
||||||
QString format_extension = "." + format_acronym.toLower();
|
QString format_extension = "." + format_acronym.toLower();
|
||||||
|
|
||||||
// determine le nom de fichier a utiliser
|
// determine le nom de fichier a utiliser
|
||||||
QString diagram_path = diagram_line -> file_name -> text();
|
QString diagram_path = diagram_line -> file_name -> text();
|
||||||
|
|
||||||
// determine le chemin du fichier du fichier
|
// determine le chemin du fichier du fichier
|
||||||
QDir target_dir_path(dirpath -> text());
|
QDir target_dir_path(export_properties.destination_directory);
|
||||||
diagram_path = target_dir_path.absoluteFilePath(diagram_path);
|
diagram_path = target_dir_path.absoluteFilePath(diagram_path);
|
||||||
|
|
||||||
// recupere des informations sur le fichier specifie
|
// recupere des informations sur le fichier specifie
|
||||||
@ -572,7 +483,7 @@ void ExportDialog::exportDiagram(ExportDiagramLine *diagram_line) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
Slot appele lorsque l'utilisateur change la zone du schema qui doit etre
|
Slot appele lorsque l'utilisateur change la zone du schema qui doit etre
|
||||||
exportee. Il faut alors ajuster les dimensons des schemas.
|
exportee. Il faut alors ajuster les dimensions des schemas.
|
||||||
*/
|
*/
|
||||||
void ExportDialog::slot_changeUseBorder() {
|
void ExportDialog::slot_changeUseBorder() {
|
||||||
// parcourt les schemas a exporter
|
// parcourt les schemas a exporter
|
||||||
@ -587,8 +498,10 @@ void ExportDialog::slot_changeUseBorder() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Ce slot active ou desactive le bouton "Exporter" en fonction du nombre de
|
Ce slot est appele quand un schema a ete coche ou decoche.
|
||||||
schemas coches.
|
Il active ou desactive le bouton "Exporter" en fonction du nombre de
|
||||||
|
schemas coches, et il garde au plus un schema coche si on exporte vers
|
||||||
|
le presse-papier.
|
||||||
*/
|
*/
|
||||||
void ExportDialog::slot_checkDiagramsCount() {
|
void ExportDialog::slot_checkDiagramsCount() {
|
||||||
QPushButton *export_button = buttons -> button(QDialogButtonBox::Save);
|
QPushButton *export_button = buttons -> button(QDialogButtonBox::Save);
|
||||||
@ -602,7 +515,7 @@ void ExportDialog::slot_checkDiagramsCount() {
|
|||||||
*/
|
*/
|
||||||
void ExportDialog::slot_changeFilesExtension(bool force_extension) {
|
void ExportDialog::slot_changeFilesExtension(bool force_extension) {
|
||||||
// recupere le format a utiliser (acronyme et extension)
|
// recupere le format a utiliser (acronyme et extension)
|
||||||
QString format_acronym = format -> itemData(format -> currentIndex()).toString();
|
QString format_acronym = epw -> exportProperties().format;
|
||||||
QString format_extension = "." + format_acronym.toLower();
|
QString format_extension = "." + format_acronym.toLower();
|
||||||
|
|
||||||
// parcourt les schemas a exporter
|
// parcourt les schemas a exporter
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "diagram.h"
|
#include "diagram.h"
|
||||||
#include "qetproject.h"
|
#include "qetproject.h"
|
||||||
class QSvgGenerator;
|
class QSvgGenerator;
|
||||||
|
class ExportPropertiesWidget;
|
||||||
/**
|
/**
|
||||||
Cette classe represente le dialogue permettant d'exporter un schema
|
Cette classe represente le dialogue permettant d'exporter un schema
|
||||||
sous forme d'image selon les desirs de l'utilisateur
|
sous forme d'image selon les desirs de l'utilisateur
|
||||||
@ -64,15 +65,7 @@ class ExportDialog : public QDialog {
|
|||||||
QHash<int, ExportDialog::ExportDiagramLine *> diagram_lines_;
|
QHash<int, ExportDialog::ExportDiagramLine *> diagram_lines_;
|
||||||
// elements graphiques
|
// elements graphiques
|
||||||
QGridLayout *diagrams_list_layout_;
|
QGridLayout *diagrams_list_layout_;
|
||||||
QLineEdit *dirpath;
|
ExportPropertiesWidget *epw;
|
||||||
QPushButton *button_browse;
|
|
||||||
QComboBox *format;
|
|
||||||
QCheckBox *draw_grid;
|
|
||||||
QCheckBox *draw_border;
|
|
||||||
QCheckBox *draw_inset;
|
|
||||||
QCheckBox *draw_terminals;
|
|
||||||
QRadioButton *export_elements;
|
|
||||||
QRadioButton *export_border;
|
|
||||||
QDialogButtonBox *buttons;
|
QDialogButtonBox *buttons;
|
||||||
// mappers
|
// mappers
|
||||||
QSignalMapper *preview_mapper_;
|
QSignalMapper *preview_mapper_;
|
||||||
@ -87,8 +80,6 @@ class ExportDialog : public QDialog {
|
|||||||
// methodes
|
// methodes
|
||||||
private:
|
private:
|
||||||
QWidget *initDiagramsListPart();
|
QWidget *initDiagramsListPart();
|
||||||
QWidget *leftPart();
|
|
||||||
QGroupBox *setupOptionsGroupBox();
|
|
||||||
void saveReloadDiagramParameters(Diagram *, bool = true);
|
void saveReloadDiagramParameters(Diagram *, bool = true);
|
||||||
void generateSvg(Diagram *, int, int, bool, QFile &);
|
void generateSvg(Diagram *, int, int, bool, QFile &);
|
||||||
QImage generateImage(Diagram *, int, int, bool);
|
QImage generateImage(Diagram *, int, int, bool);
|
||||||
@ -101,7 +92,6 @@ class ExportDialog : public QDialog {
|
|||||||
void slot_correctHeight(int);
|
void slot_correctHeight(int);
|
||||||
void slot_keepRatioChanged(int);
|
void slot_keepRatioChanged(int);
|
||||||
void slot_resetSize(int);
|
void slot_resetSize(int);
|
||||||
void slot_chooseADirectory();
|
|
||||||
void slot_export();
|
void slot_export();
|
||||||
void slot_changeUseBorder();
|
void slot_changeUseBorder();
|
||||||
void slot_checkDiagramsCount();
|
void slot_checkDiagramsCount();
|
||||||
|
79
sources/exportproperties.cpp
Normal file
79
sources/exportproperties.cpp
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2006-2009 Xavier Guerrin
|
||||||
|
This file is part of QElectroTech.
|
||||||
|
|
||||||
|
QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include "exportproperties.h"
|
||||||
|
#include <QDesktopServices>
|
||||||
|
|
||||||
|
/**
|
||||||
|
Constructeur par defaut :
|
||||||
|
* le repertoire de destination est le Bureau de l'utilisateur
|
||||||
|
* le format d'export est PNG
|
||||||
|
* la grille et les bornes ne doivent pas etre dessinees
|
||||||
|
* la bordure et le cartouche doivent etre dessines
|
||||||
|
* la zone exportee est le schema avec son cadre et son cartouche
|
||||||
|
*/
|
||||||
|
ExportProperties::ExportProperties() :
|
||||||
|
destination_directory(QDesktopServices::storageLocation(QDesktopServices::DesktopLocation)),
|
||||||
|
format("PNG"),
|
||||||
|
draw_grid(false),
|
||||||
|
draw_border(true),
|
||||||
|
draw_inset(true),
|
||||||
|
draw_terminals(false),
|
||||||
|
exported_area(QET::BorderArea)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Destructeur
|
||||||
|
*/
|
||||||
|
ExportProperties::~ExportProperties() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Exporte les options dans une configuration.
|
||||||
|
@param settings Parametres a ecrire
|
||||||
|
@param prefix prefixe a ajouter devant les noms des parametres
|
||||||
|
*/
|
||||||
|
void ExportProperties::toSettings(QSettings &settings, const QString &prefix) const {
|
||||||
|
settings.setValue(prefix + "path", QDir::toNativeSeparators(destination_directory.absolutePath()));
|
||||||
|
settings.setValue(prefix + "format", format);
|
||||||
|
settings.setValue(prefix + "drawgrid", draw_grid);
|
||||||
|
settings.setValue(prefix + "drawborder", draw_border);
|
||||||
|
settings.setValue(prefix + "drawinset", draw_inset);
|
||||||
|
settings.setValue(prefix + "drawterminals", draw_terminals);
|
||||||
|
settings.setValue(prefix + "area", QET::diagramAreaToString(exported_area));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Lit les options depuis une configuration.
|
||||||
|
@param settings Parametres a lire
|
||||||
|
@param prefix prefixe a ajouter devant les noms des parametres
|
||||||
|
*/
|
||||||
|
void ExportProperties::fromSettings(QSettings &settings, const QString &prefix) {
|
||||||
|
QString desktop_path = QDesktopServices::storageLocation(QDesktopServices::DesktopLocation);
|
||||||
|
destination_directory.setPath(settings.value(prefix + "path", desktop_path).toString());
|
||||||
|
if (!destination_directory.exists()) destination_directory.setPath(desktop_path);
|
||||||
|
|
||||||
|
format = settings.value(prefix + "format").toString();
|
||||||
|
|
||||||
|
draw_grid = settings.value(prefix + "drawgrid", false).toBool();
|
||||||
|
draw_border = settings.value(prefix + "drawborder", true ).toBool();
|
||||||
|
draw_inset = settings.value(prefix + "drawinset", true ).toBool();
|
||||||
|
draw_terminals = settings.value(prefix + "drawterminals", false).toBool();
|
||||||
|
|
||||||
|
exported_area = QET::diagramAreaFromString(settings.value(prefix + "area", "border").toString());
|
||||||
|
}
|
48
sources/exportproperties.h
Normal file
48
sources/exportproperties.h
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2006-2009 Xavier Guerrin
|
||||||
|
This file is part of QElectroTech.
|
||||||
|
|
||||||
|
QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef EXPORT_PROPERTIES_H
|
||||||
|
#define EXPORT_PROPERTIES_H
|
||||||
|
#include <QtCore>
|
||||||
|
#include "qet.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
Cette classe represente les differentes options utilisees pour exporter un
|
||||||
|
schema sous forme d'image, ou encore pour l'imprimer.
|
||||||
|
*/
|
||||||
|
class ExportProperties {
|
||||||
|
// constructeur, destructeur
|
||||||
|
public:
|
||||||
|
ExportProperties();
|
||||||
|
virtual ~ExportProperties();
|
||||||
|
|
||||||
|
// methodes
|
||||||
|
public:
|
||||||
|
void toSettings (QSettings &, const QString & = QString()) const;
|
||||||
|
void fromSettings(QSettings &, const QString & = QString());
|
||||||
|
|
||||||
|
// attributs
|
||||||
|
public:
|
||||||
|
QDir destination_directory; ///< Quel est le repertoire de destination du ou des fichiers generes ?
|
||||||
|
QString format; ///< Quel format d'image faut-il utiliser ?
|
||||||
|
bool draw_grid; ///< Faut-il dessiner la grille ?
|
||||||
|
bool draw_border; ///< Faut-il dessiner le cadre ?
|
||||||
|
bool draw_inset; ///< Faut-il dessiner le cartouche ?
|
||||||
|
bool draw_terminals; ///< Faut-il dessiner les bornes ?
|
||||||
|
QET::DiagramArea exported_area; ///< Zone du schema a exporter
|
||||||
|
};
|
||||||
|
#endif
|
180
sources/exportpropertieswidget.cpp
Normal file
180
sources/exportpropertieswidget.cpp
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2006-2009 Xavier Guerrin
|
||||||
|
This file is part of QElectroTech.
|
||||||
|
|
||||||
|
QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include "exportpropertieswidget.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
Constructeur
|
||||||
|
@param parent QWidget parent
|
||||||
|
*/
|
||||||
|
ExportPropertiesWidget::ExportPropertiesWidget(QWidget *parent) : QWidget(parent) {
|
||||||
|
build();
|
||||||
|
setExportProperties(ExportProperties());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Constructeur
|
||||||
|
@param export_properties Parametres d'export a afficher / editer
|
||||||
|
@param parent QWidget parent
|
||||||
|
*/
|
||||||
|
ExportPropertiesWidget::ExportPropertiesWidget(const ExportProperties &export_properties, QWidget *parent) : QWidget(parent) {
|
||||||
|
build();
|
||||||
|
setExportProperties(export_properties);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Destructeur
|
||||||
|
ExportPropertiesWidget::~ExportPropertiesWidget() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@return les parametres d'export definis via le widget
|
||||||
|
*/
|
||||||
|
ExportProperties ExportPropertiesWidget::exportProperties() const {
|
||||||
|
ExportProperties export_properties;
|
||||||
|
|
||||||
|
export_properties.destination_directory = QDir(dirpath -> text());
|
||||||
|
export_properties.format = format -> itemData(format -> currentIndex()).toString();
|
||||||
|
export_properties.draw_grid = draw_grid -> isChecked();
|
||||||
|
export_properties.draw_border = draw_border -> isChecked();
|
||||||
|
export_properties.draw_inset = draw_inset -> isChecked();
|
||||||
|
export_properties.draw_terminals = draw_terminals -> isChecked();
|
||||||
|
export_properties.exported_area = export_border -> isChecked() ? QET::BorderArea : QET::ElementsArea;
|
||||||
|
|
||||||
|
return(export_properties);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@param export_properties les parametres d'export a afficher / editer via le widget
|
||||||
|
*/
|
||||||
|
void ExportPropertiesWidget::setExportProperties(const ExportProperties &export_properties) {
|
||||||
|
dirpath -> setText(QDir::toNativeSeparators(export_properties.destination_directory.absolutePath()));
|
||||||
|
|
||||||
|
int index = format -> findData(export_properties.format);
|
||||||
|
if (index == -1) index = 0;
|
||||||
|
format -> setCurrentIndex(index);
|
||||||
|
|
||||||
|
draw_grid -> setChecked(export_properties.draw_grid);
|
||||||
|
draw_border -> setChecked(export_properties.draw_border);
|
||||||
|
draw_inset -> setChecked(export_properties.draw_inset);
|
||||||
|
draw_terminals -> setChecked(export_properties.draw_terminals);
|
||||||
|
|
||||||
|
if (export_properties.exported_area == QET::BorderArea) {
|
||||||
|
export_border -> setChecked(true);
|
||||||
|
} else {
|
||||||
|
export_elements -> setChecked(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Slot demandant a l'utilisateur de choisir un dossier
|
||||||
|
*/
|
||||||
|
void ExportPropertiesWidget::slot_chooseADirectory() {
|
||||||
|
QString user_dir = QFileDialog::getExistingDirectory(
|
||||||
|
this,
|
||||||
|
tr("Exporter dans le dossier", "dialog title"),
|
||||||
|
dirpath -> text()
|
||||||
|
);
|
||||||
|
if (!user_dir.isEmpty()) {
|
||||||
|
dirpath -> setText(QDir::toNativeSeparators(user_dir));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Cette methode construit le widget en lui-meme
|
||||||
|
*/
|
||||||
|
void ExportPropertiesWidget::build() {
|
||||||
|
// le dialogue est un empilement vertical d'elements
|
||||||
|
QVBoxLayout *vboxLayout = new QVBoxLayout();
|
||||||
|
|
||||||
|
/* le dialogue comprend une ligne permettant d'indiquer un chemin de dossier (hboxLayout) */
|
||||||
|
QHBoxLayout *hboxLayout = new QHBoxLayout();
|
||||||
|
QLabel *dirpath_label = new QLabel(tr("Dossier cible :"), this);
|
||||||
|
dirpath = new QLineEdit(this);
|
||||||
|
QCompleter *completer = new QCompleter(this);
|
||||||
|
completer -> setModel(new QDirModel(completer));
|
||||||
|
dirpath -> setCompleter(completer);
|
||||||
|
button_browse = new QPushButton(tr("Parcourir"), this);
|
||||||
|
hboxLayout -> addWidget(dirpath_label);
|
||||||
|
hboxLayout -> addWidget(dirpath);
|
||||||
|
hboxLayout -> addWidget(button_browse);
|
||||||
|
hboxLayout -> addStretch();
|
||||||
|
|
||||||
|
vboxLayout -> addLayout(hboxLayout);
|
||||||
|
|
||||||
|
/* une ligne permettant de choisir le format (hboxLayout1) */
|
||||||
|
QHBoxLayout *hboxLayout1 = new QHBoxLayout();
|
||||||
|
hboxLayout1 -> addWidget(new QLabel(tr("Format :"), this));
|
||||||
|
hboxLayout1 -> addWidget(format = new QComboBox(this));
|
||||||
|
format -> addItem(tr("PNG (*.png)"), "PNG");
|
||||||
|
format -> addItem(tr("JPEG (*.jpg)"), "JPG");
|
||||||
|
format -> addItem(tr("Bitmap (*.bmp)"), "BMP");
|
||||||
|
format -> addItem(tr("SVG (*.svg)"), "SVG");
|
||||||
|
hboxLayout1 -> addStretch();
|
||||||
|
|
||||||
|
vboxLayout -> addLayout(hboxLayout1);
|
||||||
|
|
||||||
|
|
||||||
|
/* un cadre permettant de specifier les options de l'image finale */
|
||||||
|
QGroupBox *groupbox_options = new QGroupBox(tr("Options"));
|
||||||
|
QGridLayout *optionshlayout = new QGridLayout(groupbox_options);
|
||||||
|
|
||||||
|
// Choix de la zone du schema a exporter
|
||||||
|
exported_content_choices = new QButtonGroup(groupbox_options);
|
||||||
|
export_border = new QRadioButton(tr("Exporter le cadre"), groupbox_options);
|
||||||
|
optionshlayout -> addWidget(export_border, 0, 0);
|
||||||
|
exported_content_choices -> addButton(export_border);
|
||||||
|
export_elements = new QRadioButton(tr("Exporter les \351l\351ments"), groupbox_options);
|
||||||
|
optionshlayout -> addWidget(export_elements, 0, 1);
|
||||||
|
exported_content_choices -> addButton(export_elements);
|
||||||
|
|
||||||
|
// dessiner la grille
|
||||||
|
draw_grid = new QCheckBox(tr("Dessiner la grille"), groupbox_options);
|
||||||
|
optionshlayout -> addWidget(draw_grid, 1, 1);
|
||||||
|
|
||||||
|
// dessiner le cadre
|
||||||
|
draw_border = new QCheckBox(tr("Dessiner le cadre"), groupbox_options);
|
||||||
|
optionshlayout -> addWidget(draw_border, 1, 0);
|
||||||
|
|
||||||
|
// dessiner le cartouche
|
||||||
|
draw_inset = new QCheckBox(tr("Dessiner le cartouche"), groupbox_options);
|
||||||
|
optionshlayout -> addWidget(draw_inset, 2, 0);
|
||||||
|
|
||||||
|
// dessiner les bornes
|
||||||
|
draw_terminals = new QCheckBox(tr("Dessiner les bornes"), groupbox_options);
|
||||||
|
optionshlayout -> addWidget(draw_terminals, 2, 1);
|
||||||
|
|
||||||
|
vboxLayout -> addWidget(groupbox_options);
|
||||||
|
vboxLayout -> addStretch();
|
||||||
|
|
||||||
|
setLayout(vboxLayout);
|
||||||
|
|
||||||
|
// ordre des input selectionnes avec la touche tab
|
||||||
|
setTabOrder(dirpath, button_browse);
|
||||||
|
setTabOrder(button_browse, format);
|
||||||
|
setTabOrder(format, export_border);
|
||||||
|
setTabOrder(export_border, draw_border);
|
||||||
|
setTabOrder(draw_border, draw_grid);
|
||||||
|
setTabOrder(draw_grid, draw_inset);
|
||||||
|
setTabOrder(draw_inset, draw_terminals);
|
||||||
|
|
||||||
|
// connexion du bouton permettant le choix du repertoire
|
||||||
|
connect(button_browse, SIGNAL(released()), this, SLOT(slot_chooseADirectory()));
|
||||||
|
|
||||||
|
// emission de signaux lors du changement de format et lors du changement de zone exportee
|
||||||
|
connect(format, SIGNAL(currentIndexChanged(int)), this, SIGNAL(formatChanged()));
|
||||||
|
connect(exported_content_choices, SIGNAL(buttonClicked(QAbstractButton *)), this, SIGNAL(exportedAreaChanged()));
|
||||||
|
}
|
66
sources/exportpropertieswidget.h
Normal file
66
sources/exportpropertieswidget.h
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2006-2009 Xavier Guerrin
|
||||||
|
This file is part of QElectroTech.
|
||||||
|
|
||||||
|
QElectroTech is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
QElectroTech is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef EXPORT_PROPERTIES_WIDGET_H
|
||||||
|
#define EXPORT_PROPERTIES_WIDGET_H
|
||||||
|
#include <QtGui>
|
||||||
|
#include "exportproperties.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
Ce widget permet d'editer les differentes options utilisees
|
||||||
|
pour exporter un projet.
|
||||||
|
*/
|
||||||
|
class ExportPropertiesWidget : public QWidget {
|
||||||
|
Q_OBJECT
|
||||||
|
// constructeurs, destructeur
|
||||||
|
public:
|
||||||
|
ExportPropertiesWidget(QWidget * = 0);
|
||||||
|
ExportPropertiesWidget(const ExportProperties &, QWidget * = 0);
|
||||||
|
virtual ~ExportPropertiesWidget();
|
||||||
|
private:
|
||||||
|
ExportPropertiesWidget(const ExportPropertiesWidget &);
|
||||||
|
|
||||||
|
// methodes
|
||||||
|
public:
|
||||||
|
void setExportProperties(const ExportProperties &);
|
||||||
|
ExportProperties exportProperties() const;
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void slot_chooseADirectory();
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void formatChanged();
|
||||||
|
void exportedAreaChanged();
|
||||||
|
|
||||||
|
// methodes privees
|
||||||
|
private:
|
||||||
|
void build();
|
||||||
|
|
||||||
|
// attributs
|
||||||
|
private:
|
||||||
|
QLineEdit *dirpath;
|
||||||
|
QPushButton *button_browse;
|
||||||
|
QComboBox *format;
|
||||||
|
QCheckBox *draw_grid;
|
||||||
|
QCheckBox *draw_border;
|
||||||
|
QCheckBox *draw_inset;
|
||||||
|
QCheckBox *draw_terminals;
|
||||||
|
QRadioButton *export_border;
|
||||||
|
QRadioButton *export_elements;
|
||||||
|
QButtonGroup *exported_content_choices;
|
||||||
|
};
|
||||||
|
#endif
|
@ -394,6 +394,25 @@ QET::EndType QET::endTypeFromString(const QString &string) {
|
|||||||
else return(QET::None);
|
else return(QET::None);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@param diagram_area un type de zone de schema
|
||||||
|
@return une chaine representant le type de zone de schema
|
||||||
|
*/
|
||||||
|
QString QET::diagramAreaToString(const QET::DiagramArea &diagram_area) {
|
||||||
|
if (diagram_area == ElementsArea) return("elements");
|
||||||
|
else return("border");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@param string une chaine representant un type de zone de schema
|
||||||
|
@return le type de zone de schema correspondant ; si la chaine est invalide,
|
||||||
|
QET::ElementsArea est retourne.
|
||||||
|
*/
|
||||||
|
QET::DiagramArea QET::diagramAreaFromString(const QString &string) {
|
||||||
|
if (!string.compare("border", Qt::CaseInsensitive)) return(QET::BorderArea);
|
||||||
|
else return(QET::ElementsArea);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@param ptr pointeur quelconque
|
@param ptr pointeur quelconque
|
||||||
@return une representation hexadecimale de l'adresse du pointeur
|
@return une representation hexadecimale de l'adresse du pointeur
|
||||||
|
@ -89,6 +89,14 @@ namespace QET {
|
|||||||
Rename ///< il faut renommer la cible
|
Rename ///< il faut renommer la cible
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
Cet enum represente la zone d'un schema a exporter / imprimer
|
||||||
|
*/
|
||||||
|
enum DiagramArea {
|
||||||
|
BorderArea, ///< Exporte le schema avec son cadre et son cartouche
|
||||||
|
ElementsArea ///< Exporte le contenu du schema sans le cadre et le cartouche
|
||||||
|
};
|
||||||
|
|
||||||
QET::Orientation nextOrientation(QET::Orientation);
|
QET::Orientation nextOrientation(QET::Orientation);
|
||||||
QET::Orientation previousOrientation(QET::Orientation);
|
QET::Orientation previousOrientation(QET::Orientation);
|
||||||
QET::Orientation orientationFromString(const QString &);
|
QET::Orientation orientationFromString(const QString &);
|
||||||
@ -110,6 +118,8 @@ namespace QET {
|
|||||||
QStringList splitWithSpaces(const QString &);
|
QStringList splitWithSpaces(const QString &);
|
||||||
QString endTypeToString(const QET::EndType &);
|
QString endTypeToString(const QET::EndType &);
|
||||||
QET::EndType endTypeFromString(const QString &);
|
QET::EndType endTypeFromString(const QString &);
|
||||||
|
QString diagramAreaToString(const QET::DiagramArea &);
|
||||||
|
QET::DiagramArea diagramAreaFromString(const QString &);
|
||||||
QString pointerString(void *);
|
QString pointerString(void *);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1757,3 +1757,17 @@ ConductorProperties QETDiagramEditor::defaultConductorProperties() {
|
|||||||
|
|
||||||
return(def);
|
return(def);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@return Les parametres d'export par defaut pour un schema
|
||||||
|
*/
|
||||||
|
ExportProperties QETDiagramEditor::defaultExportProperties() {
|
||||||
|
// accede a la configuration de l'application
|
||||||
|
QSettings &settings = QETApp::settings();
|
||||||
|
|
||||||
|
ExportProperties def;
|
||||||
|
// lit les caracteristiques des conducteurs par defaut dans la configuration
|
||||||
|
def.fromSettings(settings, "export/default");
|
||||||
|
|
||||||
|
return(def);
|
||||||
|
}
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "borderproperties.h"
|
#include "borderproperties.h"
|
||||||
#include "conductorproperties.h"
|
#include "conductorproperties.h"
|
||||||
#include "insetproperties.h"
|
#include "insetproperties.h"
|
||||||
|
#include "exportproperties.h"
|
||||||
class QETProject;
|
class QETProject;
|
||||||
class ProjectView;
|
class ProjectView;
|
||||||
class Diagram;
|
class Diagram;
|
||||||
@ -55,9 +56,10 @@ class QETDiagramEditor : public QMainWindow {
|
|||||||
QList<DiagramView *> projectViews() const;
|
QList<DiagramView *> projectViews() const;
|
||||||
QList<QString> editedFiles() const;
|
QList<QString> editedFiles() const;
|
||||||
ProjectView *viewForFile(const QString &) const;
|
ProjectView *viewForFile(const QString &) const;
|
||||||
static InsetProperties defaultInsetProperties();
|
static InsetProperties defaultInsetProperties();
|
||||||
static BorderProperties defaultBorderProperties();
|
static BorderProperties defaultBorderProperties();
|
||||||
static ConductorProperties defaultConductorProperties();
|
static ConductorProperties defaultConductorProperties();
|
||||||
|
static ExportProperties defaultExportProperties();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void actions();
|
void actions();
|
||||||
|
@ -176,6 +176,7 @@ void QET::Icons::initIcons() {
|
|||||||
DocumentClose .addFile(":/ico/22x22/document-close.png");
|
DocumentClose .addFile(":/ico/22x22/document-close.png");
|
||||||
DocumentExport .addFile(":/ico/16x16/document-export.png");
|
DocumentExport .addFile(":/ico/16x16/document-export.png");
|
||||||
DocumentExport .addFile(":/ico/22x22/document-export.png");
|
DocumentExport .addFile(":/ico/22x22/document-export.png");
|
||||||
|
DocumentExport .addFile(":/ico/128x128/document-export.png");
|
||||||
DocumentImport .addFile(":/ico/16x16/document-import.png");
|
DocumentImport .addFile(":/ico/16x16/document-import.png");
|
||||||
DocumentImport .addFile(":/ico/22x22/document-import.png");
|
DocumentImport .addFile(":/ico/22x22/document-import.png");
|
||||||
DocumentNew .addFile(":/ico/16x16/document-new.png");
|
DocumentNew .addFile(":/ico/16x16/document-new.png");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user