diff --git a/ico/128x128/printer.png b/ico/128x128/printer.png new file mode 100644 index 000000000..5920f4d42 Binary files /dev/null and b/ico/128x128/printer.png differ diff --git a/qelectrotech.qrc b/qelectrotech.qrc index 41f99019c..63cd75592 100644 --- a/qelectrotech.qrc +++ b/qelectrotech.qrc @@ -3,6 +3,7 @@ ico/128x128/diagram.png ico/128x128/settings.png ico/128x128/document-export.png + ico/128x128/printer.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 9e1fd89e6..60b81513b 100644 --- a/sources/configdialog.cpp +++ b/sources/configdialog.cpp @@ -31,8 +31,8 @@ ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent) { pages_list -> setViewMode(QListView::IconMode); pages_list -> setIconSize(QSize(110, 110)); pages_list -> setMovement(QListView::Static); - pages_list -> setMinimumWidth(135); - pages_list -> setMaximumWidth(135); + pages_list -> setMinimumWidth(150); + pages_list -> setMaximumWidth(150); pages_list -> setSpacing(4); // pages @@ -40,6 +40,7 @@ ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent) { addPage(new GeneralConfigurationPage()); addPage(new NewDiagramPage()); addPage(new ExportConfigPage()); + addPage(new PrintConfigPage()); buildPagesList(); // boutons diff --git a/sources/configpages.cpp b/sources/configpages.cpp index fb36c503d..783eae11f 100644 --- a/sources/configpages.cpp +++ b/sources/configpages.cpp @@ -191,7 +191,6 @@ QString GeneralConfigurationPage::title() const { return(tr("G\351n\351ral", "configuration page title")); } - /** Constructeur @param parent QWidget parent @@ -238,3 +237,56 @@ QString ExportConfigPage::title() const { return(tr("Export", "configuration page title")); } +/** + Constructeur + @param parent QWidget parent +*/ +PrintConfigPage::PrintConfigPage(QWidget *parent) : ConfigPage(parent) { + // epw contient les options d'export + epw = new ExportPropertiesWidget(QETDiagramEditor::defaultPrintProperties()); + epw -> setPrintingMode(true); + + // 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); + vlayout1 -> addStretch(); + + // activation du layout + setLayout(vlayout1); +} + +/// Destructeur +PrintConfigPage::~PrintConfigPage() { +} + +/** + Applique la configuration de cette page +*/ +void PrintConfigPage::applyConf() { + QString prefix = "print/default"; + + QSettings &settings = QETApp::settings(); + epw -> exportProperties().toSettings(settings, prefix); + + // annule l'enregistrement de certaines proprietes non pertinentes + settings.remove(prefix + "path"); + settings.remove(prefix + "format"); + settings.remove(prefix + "area"); +} + +/// @return l'icone de cette page +QIcon PrintConfigPage::icon() const { + return(QET::Icons::Printer); +} + +/// @return le titre de cette page +QString PrintConfigPage::title() const { + return(tr("Impression", "configuration page title")); +} diff --git a/sources/configpages.h b/sources/configpages.h index 6e35e38c9..cc95825e7 100644 --- a/sources/configpages.h +++ b/sources/configpages.h @@ -123,4 +123,27 @@ class ExportConfigPage : public ConfigPage { public: ExportPropertiesWidget *epw; }; + +/** + Cette classe represente la page de configuration du dialogue d'impression +*/ +class PrintConfigPage : public ConfigPage { + Q_OBJECT + // constructeurs, destructeur + public: + PrintConfigPage(QWidget * = 0); + virtual ~PrintConfigPage(); + private: + PrintConfigPage(const PrintConfigPage &); + + // methodes + public: + void applyConf(); + QString title() const; + QIcon icon() const; + + // attributs + public: + ExportPropertiesWidget *epw; +}; #endif diff --git a/sources/qetdiagrameditor.cpp b/sources/qetdiagrameditor.cpp index f0b0d74e2..274275ec5 100644 --- a/sources/qetdiagrameditor.cpp +++ b/sources/qetdiagrameditor.cpp @@ -1777,3 +1777,17 @@ ExportProperties QETDiagramEditor::defaultExportProperties() { return(def); } + +/** + @return Les parametres d'impression par defaut pour un schema +*/ +ExportProperties QETDiagramEditor::defaultPrintProperties() { + // 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, "print/default"); + + return(def); +} diff --git a/sources/qetdiagrameditor.h b/sources/qetdiagrameditor.h index d4b0470a8..29570c8a6 100644 --- a/sources/qetdiagrameditor.h +++ b/sources/qetdiagrameditor.h @@ -60,6 +60,7 @@ class QETDiagramEditor : public QMainWindow { static BorderProperties defaultBorderProperties(); static ConductorProperties defaultConductorProperties(); static ExportProperties defaultExportProperties(); + static ExportProperties defaultPrintProperties(); protected: void actions(); diff --git a/sources/qeticons.cpp b/sources/qeticons.cpp index 96dde6bca..94d557364 100644 --- a/sources/qeticons.cpp +++ b/sources/qeticons.cpp @@ -262,6 +262,7 @@ void QET::Icons::initIcons() { Phase .addFile(":/ico/16x16/phase.png"); PrintAllPages .addFile(":/ico/22x22/all_pages.png"); Printer .addFile(":/ico/32x32/printer.png"); + Printer .addFile(":/ico/128x128/printer.png"); PrintLandscape .addFile(":/ico/22x22/landscape.png"); PrintPortrait .addFile(":/ico/22x22/portrait.png"); PrintTwoPages .addFile(":/ico/22x22/two_pages.png"); diff --git a/sources/qetprintpreviewdialog.cpp b/sources/qetprintpreviewdialog.cpp index a4022213e..c5f485b6a 100644 --- a/sources/qetprintpreviewdialog.cpp +++ b/sources/qetprintpreviewdialog.cpp @@ -19,6 +19,7 @@ #include "diagramschooser.h" #include "exportproperties.h" #include "exportpropertieswidget.h" +#include "qetdiagrameditor.h" #include "qeticons.h" /** @@ -231,7 +232,10 @@ void QETPrintPreviewDialog::build() { fit_diagram_to_page_label_ -> setContentsMargins(20, 0, 0, 0); fit_diagram_to_page_ -> setChecked(true); - render_properties_ = new ExportPropertiesWidget(); + // recupere les parametres d'export definis dans la configuration de l'application + ExportProperties default_print_properties = QETDiagramEditor::defaultPrintProperties(); + + render_properties_ = new ExportPropertiesWidget(default_print_properties); render_properties_ -> setPrintingMode(true); buttons_ = new QDialogButtonBox();