From 9f1d5b8713174675ac7a7dc9d9e7bf61c3bbb95e Mon Sep 17 00:00:00 2001 From: xavier Date: Sun, 9 Aug 2009 12:51:02 +0000 Subject: [PATCH] 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 --- ico/128x128/document-export.png | Bin 0 -> 7260 bytes qelectrotech.qrc | 1 + sources/configdialog.cpp | 1 + sources/configpages.cpp | 48 ++++++++ sources/configpages.h | 24 ++++ sources/exportdialog.cpp | 177 ++++++++-------------------- sources/exportdialog.h | 14 +-- sources/exportproperties.cpp | 79 +++++++++++++ sources/exportproperties.h | 48 ++++++++ sources/exportpropertieswidget.cpp | 180 +++++++++++++++++++++++++++++ sources/exportpropertieswidget.h | 66 +++++++++++ sources/qet.cpp | 19 +++ sources/qet.h | 10 ++ sources/qetdiagrameditor.cpp | 14 +++ sources/qetdiagrameditor.h | 6 +- sources/qeticons.cpp | 1 + 16 files changed, 542 insertions(+), 146 deletions(-) create mode 100644 ico/128x128/document-export.png create mode 100644 sources/exportproperties.cpp create mode 100644 sources/exportproperties.h create mode 100644 sources/exportpropertieswidget.cpp create mode 100644 sources/exportpropertieswidget.h diff --git a/ico/128x128/document-export.png b/ico/128x128/document-export.png new file mode 100644 index 0000000000000000000000000000000000000000..6a7deac9857d4aaf0b598027dbd9f8f2f44fa454 GIT binary patch literal 7260 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 ico/128x128/diagram.png ico/128x128/settings.png + ico/128x128/document-export.png ico/16x16/add_col.png ico/16x16/add_row.png ico/16x16/application-exit.png diff --git a/sources/configdialog.cpp b/sources/configdialog.cpp index 86f029258..9e1fd89e6 100644 --- a/sources/configdialog.cpp +++ b/sources/configdialog.cpp @@ -39,6 +39,7 @@ ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent) { pages_widget = new QStackedWidget(); addPage(new GeneralConfigurationPage()); addPage(new NewDiagramPage()); + addPage(new ExportConfigPage()); buildPagesList(); // boutons diff --git a/sources/configpages.cpp b/sources/configpages.cpp index ea62cd250..7ed6cc1f8 100644 --- a/sources/configpages.cpp +++ b/sources/configpages.cpp @@ -23,6 +23,7 @@ #include "qetdiagrameditor.h" #include "borderinset.h" #include "qeticons.h" +#include "exportpropertieswidget.h" /** Constructeur @@ -189,3 +190,50 @@ QIcon GeneralConfigurationPage::icon() const { QString GeneralConfigurationPage::title() const { 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")); +} + diff --git a/sources/configpages.h b/sources/configpages.h index a16a79d4d..6e35e38c9 100644 --- a/sources/configpages.h +++ b/sources/configpages.h @@ -21,6 +21,7 @@ class BorderPropertiesWidget; class ConductorPropertiesWidget; class InsetPropertiesWidget; +class ExportPropertiesWidget; /** Cette classe abstraite contient les methodes que toutes les pages de configuration doivent implementer. @@ -99,4 +100,27 @@ class GeneralConfigurationPage : public ConfigPage { QGroupBox *elements_management_; 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 diff --git a/sources/exportdialog.cpp b/sources/exportdialog.cpp index 3aa5559a3..6bd66c890 100644 --- a/sources/exportdialog.cpp +++ b/sources/exportdialog.cpp @@ -19,6 +19,8 @@ #include #include #include "qeticons.h" +#include "exportpropertieswidget.h" +#include "qetdiagrameditor.h" /** Constructeur @@ -28,13 +30,24 @@ ExportDialog::ExportDialog(QETProject *project, QWidget *parent) : QDialog(parent) { if (!project) return; - // recupere le schema a exporter, sa taille et ses proportions + // recupere le projet a exporter 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 setMinimumSize(800, 390); resize(minimumSize()); 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 buttons = new QDialogButtonBox(this); @@ -47,15 +60,17 @@ ExportDialog::ExportDialog(QETProject *project, QWidget *parent) : QDialog(paren 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(initDiagramsListPart(), 1); - layout -> addWidget(leftPart()); + layout -> addWidget(epw); layout -> addWidget(buttons); - slot_changeFilesExtension(true); // connexions signaux/slots - connect(button_browse, SIGNAL(released()), this, SLOT(slot_chooseADirectory())); - connect(format, SIGNAL(currentIndexChanged(int)), this, SLOT(slot_changeFilesExtension())); - connect(buttons, SIGNAL(accepted()), this, SLOT(slot_export())); - connect(buttons, SIGNAL(rejected()), this, SLOT(reject())); + connect(epw, SIGNAL(formatChanged()), this, SLOT(slot_changeFilesExtension())); + connect(epw, SIGNAL(exportedAreaChanged()), this, SLOT(slot_changeUseBorder())); + connect(buttons, SIGNAL(accepted()), this, SLOT(slot_export())); + 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 checked_diagrams_count = 0; @@ -75,47 +90,6 @@ int ExportDialog::diagramsToExportCount() const { 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 @return Le widget representant la liste des schemas @@ -177,60 +151,6 @@ QWidget *ExportDialog::initDiagramsListPart() { 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 @return le rapport largeur / hauteur du schema @@ -251,7 +171,7 @@ QSize ExportDialog::diagramSize(Diagram *diagram) { bool state_useBorder = diagram -> useBorder(); // 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(); // restaure le parametre useBorder du schema @@ -351,20 +271,6 @@ void ExportDialog::slot_resetSize(int diagram_id) { 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 @param diagram Schema a exporter en SVG @@ -410,11 +316,13 @@ void ExportDialog::saveReloadDiagramParameters(Diagram *diagram, bool save) { state_drawTerm = diagram -> drawTerminals(); state_useBorder = diagram -> useBorder(); - diagram -> setUseBorder(export_border -> isChecked()); - diagram -> setDrawTerminals(draw_terminals -> isChecked()); - diagram -> setDisplayGrid(draw_grid -> isChecked()); - diagram -> border_and_inset.displayBorder(draw_border -> isChecked()); - diagram -> border_and_inset.displayInset(draw_inset -> isChecked()); + ExportProperties export_properties = epw -> exportProperties(); + + diagram -> setUseBorder (export_properties.exported_area == QET::BorderArea); + diagram -> setDrawTerminals (export_properties.draw_terminals); + 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 { // restaure les parametres relatifs au schema diagram -> border_and_inset.displayBorder(state_drawBorder); @@ -480,7 +388,7 @@ void ExportDialog::slot_export() { this, tr("Noms des fichiers cibles", "message box title"), 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.", "message box content" ) @@ -489,8 +397,9 @@ void ExportDialog::slot_export() { } // 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( this, tr("Dossier non sp\351cifi\351", "message box title"), @@ -515,15 +424,17 @@ void ExportDialog::slot_export() { de l'exporter */ void ExportDialog::exportDiagram(ExportDiagramLine *diagram_line) { + ExportProperties export_properties(epw -> exportProperties()); + // 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(); // determine le nom de fichier a utiliser QString diagram_path = diagram_line -> file_name -> text(); // 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); // 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 - exportee. Il faut alors ajuster les dimensons des schemas. + exportee. Il faut alors ajuster les dimensions des schemas. */ void ExportDialog::slot_changeUseBorder() { // 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 - schemas coches. + Ce slot est appele quand un schema a ete coche ou decoche. + 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() { QPushButton *export_button = buttons -> button(QDialogButtonBox::Save); @@ -602,7 +515,7 @@ void ExportDialog::slot_checkDiagramsCount() { */ void ExportDialog::slot_changeFilesExtension(bool force_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(); // parcourt les schemas a exporter diff --git a/sources/exportdialog.h b/sources/exportdialog.h index e89d0bae3..80eee83de 100644 --- a/sources/exportdialog.h +++ b/sources/exportdialog.h @@ -21,6 +21,7 @@ #include "diagram.h" #include "qetproject.h" class QSvgGenerator; +class ExportPropertiesWidget; /** Cette classe represente le dialogue permettant d'exporter un schema sous forme d'image selon les desirs de l'utilisateur @@ -64,15 +65,7 @@ class ExportDialog : public QDialog { QHash diagram_lines_; // elements graphiques QGridLayout *diagrams_list_layout_; - QLineEdit *dirpath; - QPushButton *button_browse; - QComboBox *format; - QCheckBox *draw_grid; - QCheckBox *draw_border; - QCheckBox *draw_inset; - QCheckBox *draw_terminals; - QRadioButton *export_elements; - QRadioButton *export_border; + ExportPropertiesWidget *epw; QDialogButtonBox *buttons; // mappers QSignalMapper *preview_mapper_; @@ -87,8 +80,6 @@ class ExportDialog : public QDialog { // methodes private: QWidget *initDiagramsListPart(); - QWidget *leftPart(); - QGroupBox *setupOptionsGroupBox(); void saveReloadDiagramParameters(Diagram *, bool = true); void generateSvg(Diagram *, int, int, bool, QFile &); QImage generateImage(Diagram *, int, int, bool); @@ -101,7 +92,6 @@ class ExportDialog : public QDialog { void slot_correctHeight(int); void slot_keepRatioChanged(int); void slot_resetSize(int); - void slot_chooseADirectory(); void slot_export(); void slot_changeUseBorder(); void slot_checkDiagramsCount(); diff --git a/sources/exportproperties.cpp b/sources/exportproperties.cpp new file mode 100644 index 000000000..f0bafbc1b --- /dev/null +++ b/sources/exportproperties.cpp @@ -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 . +*/ +#include "exportproperties.h" +#include + +/** + 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()); +} diff --git a/sources/exportproperties.h b/sources/exportproperties.h new file mode 100644 index 000000000..ab83d8e8b --- /dev/null +++ b/sources/exportproperties.h @@ -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 . +*/ +#ifndef EXPORT_PROPERTIES_H +#define EXPORT_PROPERTIES_H +#include +#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 diff --git a/sources/exportpropertieswidget.cpp b/sources/exportpropertieswidget.cpp new file mode 100644 index 000000000..8928fe0fb --- /dev/null +++ b/sources/exportpropertieswidget.cpp @@ -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 . +*/ +#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())); +} diff --git a/sources/exportpropertieswidget.h b/sources/exportpropertieswidget.h new file mode 100644 index 000000000..7806904aa --- /dev/null +++ b/sources/exportpropertieswidget.h @@ -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 . +*/ +#ifndef EXPORT_PROPERTIES_WIDGET_H +#define EXPORT_PROPERTIES_WIDGET_H +#include +#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 diff --git a/sources/qet.cpp b/sources/qet.cpp index d1bb9f69a..55cf42c4e 100644 --- a/sources/qet.cpp +++ b/sources/qet.cpp @@ -394,6 +394,25 @@ QET::EndType QET::endTypeFromString(const QString &string) { 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 @return une representation hexadecimale de l'adresse du pointeur diff --git a/sources/qet.h b/sources/qet.h index 618ba388c..143721fe7 100644 --- a/sources/qet.h +++ b/sources/qet.h @@ -89,6 +89,14 @@ namespace QET { 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 previousOrientation(QET::Orientation); QET::Orientation orientationFromString(const QString &); @@ -110,6 +118,8 @@ namespace QET { QStringList splitWithSpaces(const QString &); QString endTypeToString(const QET::EndType &); QET::EndType endTypeFromString(const QString &); + QString diagramAreaToString(const QET::DiagramArea &); + QET::DiagramArea diagramAreaFromString(const QString &); QString pointerString(void *); } #endif diff --git a/sources/qetdiagrameditor.cpp b/sources/qetdiagrameditor.cpp index 5c6cbade4..57ca8b422 100644 --- a/sources/qetdiagrameditor.cpp +++ b/sources/qetdiagrameditor.cpp @@ -1757,3 +1757,17 @@ ConductorProperties QETDiagramEditor::defaultConductorProperties() { 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); +} diff --git a/sources/qetdiagrameditor.h b/sources/qetdiagrameditor.h index 55dc5e372..d4b0470a8 100644 --- a/sources/qetdiagrameditor.h +++ b/sources/qetdiagrameditor.h @@ -21,6 +21,7 @@ #include "borderproperties.h" #include "conductorproperties.h" #include "insetproperties.h" +#include "exportproperties.h" class QETProject; class ProjectView; class Diagram; @@ -55,9 +56,10 @@ class QETDiagramEditor : public QMainWindow { QList projectViews() const; QList editedFiles() const; ProjectView *viewForFile(const QString &) const; - static InsetProperties defaultInsetProperties(); - static BorderProperties defaultBorderProperties(); + static InsetProperties defaultInsetProperties(); + static BorderProperties defaultBorderProperties(); static ConductorProperties defaultConductorProperties(); + static ExportProperties defaultExportProperties(); protected: void actions(); diff --git a/sources/qeticons.cpp b/sources/qeticons.cpp index f6d372529..96dde6bca 100644 --- a/sources/qeticons.cpp +++ b/sources/qeticons.cpp @@ -176,6 +176,7 @@ void QET::Icons::initIcons() { DocumentClose .addFile(":/ico/22x22/document-close.png"); DocumentExport .addFile(":/ico/16x16/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/22x22/document-import.png"); DocumentNew .addFile(":/ico/16x16/document-new.png");