diff --git a/sources/diagramschooser.cpp b/sources/diagramschooser.cpp
deleted file mode 100644
index 2203572de..000000000
--- a/sources/diagramschooser.cpp
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- Copyright 2006-2020 The QElectroTech Team
- 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 "diagramschooser.h"
-#include "qetproject.h"
-#include "diagram.h"
-
-/**
- Constructeur
- @param project Projet dont il faut afficher les schemas
- @param parent QWidget parent de ce widget
-*/
-DiagramsChooser::DiagramsChooser(QETProject *project, QWidget *parent) :
- QScrollArea(parent),
- project_(project),
- widget0_(nullptr),
- vlayout0_(nullptr)
-{
- setFrameShadow(QFrame::Sunken);
- setFrameShape(QFrame::StyledPanel);
- setLineWidth(3);
- setMidLineWidth(3);
-
- setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
- setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Expanding));
-
- updateList();
-
- setWidget(widget0_);
-}
-
-/**
- Destructeur
-*/
-DiagramsChooser::~DiagramsChooser()
-{
-}
-
-/**
- @return le projet dont ce widget affiche les schemas
-*/
-QETProject *DiagramsChooser::project() const
-{
- return(project_);
-}
-
-/**
- @return la liste des schemas selectionnes
-*/
-QList DiagramsChooser::selectedDiagrams() const
-{
- QList selected_diagrams;
- foreach(Diagram *diagram, project_ -> diagrams()) {
- QCheckBox *check_box = diagrams_[diagram];
- if (check_box && check_box -> isChecked()) {
- selected_diagrams << diagram;
- }
- }
- return(selected_diagrams);
-}
-
-/**
- @return la liste des schemas qui ne sont pas selectionnes
-*/
-QList DiagramsChooser::nonSelectedDiagrams() const
-{
- QList selected_diagrams;
- foreach(Diagram *diagram, diagrams_.keys()) {
- if (!(diagrams_[diagram] -> isChecked())) {
- selected_diagrams << diagram;
- }
- }
- return(selected_diagrams);
-}
-
-/**
- @param diagram Un schema cense etre present dans ce widget
-*/
-bool DiagramsChooser::diagramIsSelected(Diagram *const diagram) const
-{
- QCheckBox *checkbox = diagrams_.value(diagram);
- if (!checkbox) return(false);
- return(checkbox -> isChecked());
-}
-
-/**
- Selectionne les schemas contenus dans la liste diagrams_list
- @param diagrams_list Liste de schemas a selectionner
- @param select true pour selectionne les schemas de la liste, false pour les
- deselectionner
- @param reset true pour deselectionner tous les schemas avant de
- selectionner ceux de la liste
-*/
-void DiagramsChooser::setSelectedDiagrams(const QList &diagrams_list, bool select, bool reset) {
- // evite d'emettre une rafale de signaux pour cette operation
- blockSignals(true);
-
- // deselectionne tous les schemas si demande
- if (reset) {
- foreach(QCheckBox *check_box, diagrams_.values()) {
- check_box -> setChecked(false);
- }
- }
-
- int changes = 0;
- QCheckBox *check_box;
- foreach(Diagram *diagram, diagrams_list) {
- if ((check_box = diagrams_[diagram])) {
- if (check_box -> isChecked() != select) {
- check_box -> setChecked(select);
- ++ changes;
- }
- }
- }
-
- blockSignals(false);
- if (reset || changes) {
- emit(selectionChanged());
- }
-}
-
-/**
- Selectionne ou deselectionne tous les schemas
- @param select true pour selectionne les schemas de la liste, false pour les
- deselectionner
-*/
-void DiagramsChooser::setSelectedAllDiagrams(bool select) {
- blockSignals(true);
- foreach(QCheckBox *check_box, diagrams_.values()) {
- check_box -> setChecked(select);
- }
- blockSignals(false);
- emit(selectionChanged());
-}
-
-/**
- Met a jour la liste des schemas du projet
-*/
-void DiagramsChooser::updateList()
-{
- if (!project_) return;
-
- // retient la liste des schemas deja selectionnes
- QList selected_diagrams = selectedDiagrams();
-
- // detruit les checkbox existantes
- QList checkboxes = diagrams_.values();
- qDeleteAll(checkboxes.begin(), checkboxes.end());
-
- buildLayout();
-
- // recree les checkbox necessaires
- foreach(Diagram *diagram, project_ -> diagrams()) {
- // titre du schema
- QString diagram_title = diagram -> title();
- if (diagram_title.isEmpty()) diagram_title = tr("Folio sans titre");
-
- QCheckBox *checkbox = new QCheckBox(diagram_title);
- checkbox -> setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum));
- checkbox -> setChecked(selected_diagrams.contains(diagram));
- connect(checkbox, SIGNAL(toggled(bool)), this, SIGNAL(selectionChanged()));
- diagrams_.insert(diagram, checkbox);
- vlayout0_ -> addWidget(checkbox, 0, Qt::AlignLeft | Qt::AlignTop);
- }
-}
-
-/**
- Met en place la disposition du widget
-*/
-void DiagramsChooser::buildLayout()
-{
- if (vlayout0_) return;
- vlayout0_ = new QVBoxLayout();
- widget0_ = new QWidget();
- widget0_ -> setLayout(vlayout0_);
- widget0_ -> setMinimumSize(170, 0);
- widget0_ -> setMaximumSize(470, 10000);
- widget0_ -> setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum));
-}
diff --git a/sources/diagramschooser.h b/sources/diagramschooser.h
deleted file mode 100644
index a31b7e500..000000000
--- a/sources/diagramschooser.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- Copyright 2006-2020 The QElectroTech Team
- 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 DIAGRAMS_CHOOSER_H
-#define DIAGRAMS_CHOOSER_H
-#include
-class QETProject;
-class Diagram;
-/**
- This class provides a widget which allows users to select 0 to n diagrams
- among those of a particular project.
-*/
-class DiagramsChooser : public QScrollArea {
- Q_OBJECT
-
- // constructors, destructor
- public:
- DiagramsChooser(QETProject *, QWidget * = nullptr);
- ~DiagramsChooser() override;
- private:
- DiagramsChooser(const DiagramsChooser &);
-
- // methods
- public:
- QETProject *project() const;
- QList selectedDiagrams() const;
- QList nonSelectedDiagrams() const;
- bool diagramIsSelected(Diagram * const) const;
- void setSelectedDiagrams(const QList &, bool = true, bool = true);
- void setSelectedAllDiagrams(bool = true);
-
- public slots:
- void updateList();
-
- signals:
- void selectionChanged();
-
- private:
- void buildLayout();
-
- // attributes
- private:
- QETProject *project_;
- QWidget *widget0_;
- QVBoxLayout *vlayout0_;
- QHash diagrams_;
-};
-#endif
diff --git a/sources/print/projectprintwindow.cpp b/sources/print/projectprintwindow.cpp
index 429287a51..9f188d3e2 100644
--- a/sources/print/projectprintwindow.cpp
+++ b/sources/print/projectprintwindow.cpp
@@ -45,6 +45,7 @@
void ProjectPrintWindow::launchDialog(QETProject *project, QPrinter::OutputFormat format, QWidget *parent)
{
auto printer_ = new QPrinter();
+ printer_->setDocName(ProjectPrintWindow::docName(project));
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) // ### Qt 6: remove
printer_->setOrientation(QPrinter::Landscape);
#else
@@ -77,12 +78,10 @@ void ProjectPrintWindow::launchDialog(QETProject *project, QPrinter::OutputForma
else //To pdf file
{
auto dir_path = project->currentDir();
- auto doc_name = ProjectPrintWindow::docName(project);
- QString file_name = QDir::toNativeSeparators(QDir::cleanPath(dir_path + "/" + doc_name));
+ QString file_name = QDir::toNativeSeparators(QDir::cleanPath(dir_path + "/" + printer_->docName()));
if (!file_name.endsWith(".pdf")) {
file_name.append(".pdf");
}
- printer_->setDocName(doc_name);
printer_->setCreator(QString("QElectroTech %1").arg(QET::displayedVersion));
printer_->setOutputFileName(file_name);
printer_->setOutputFormat(QPrinter::PdfFormat);