mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 12:40:35 +01:00
Ajout des classes BorderProperties et BorderPropertiesWidget
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@371 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -40,6 +40,8 @@ INCLUDEPATH += sources sources/editor
|
||||
# Fichiers sources
|
||||
HEADERS += sources/aboutqet.h \
|
||||
sources/borderinset.h \
|
||||
sources/borderproperties.h \
|
||||
sources/borderpropertieswidget.h \
|
||||
sources/conductor.h \
|
||||
sources/conductorprofile.h \
|
||||
sources/conductorproperties.h \
|
||||
@@ -109,6 +111,8 @@ HEADERS += sources/aboutqet.h \
|
||||
sources/editor/textfieldeditor.h
|
||||
SOURCES += sources/aboutqet.cpp \
|
||||
sources/borderinset.cpp \
|
||||
sources/borderproperties.cpp \
|
||||
sources/borderpropertieswidget.cpp \
|
||||
sources/conductor.cpp \
|
||||
sources/conductorprofile.cpp \
|
||||
sources/conductorproperties.cpp \
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <QPainter>
|
||||
#include "borderinset.h"
|
||||
#include "qetapp.h"
|
||||
#include "qetdiagrameditor.h"
|
||||
#include "math.h"
|
||||
|
||||
/**
|
||||
@@ -26,22 +27,13 @@
|
||||
@param parent QObject parent de ce BorderInset
|
||||
*/
|
||||
BorderInset::BorderInset(QObject *parent) : QObject(parent) {
|
||||
// initialise les dimensions des colonnes (ainsi que la largeur du cartouche)
|
||||
columns_header_height = 20.0;
|
||||
setNbColumns (QETApp::settings().value("diagrameditor/defaultcols", 15).toInt());
|
||||
setColumnsWidth(QETApp::settings().value("diagrameditor/defaultcolsize", 50.0).toDouble());
|
||||
|
||||
// initialise les dimensions des lignes
|
||||
rows_header_width = 20.0;
|
||||
setNbRows(QETApp::settings().value("diagrameditor/defaultrows", 6).toInt());
|
||||
setRowsHeight(QETApp::settings().value("diagrameditor/defaultrowsize", 80.0).toDouble());
|
||||
// dimensions par defaut du schema
|
||||
importBorder(QETDiagramEditor::defaultBorderProperties());
|
||||
|
||||
// hauteur du cartouche
|
||||
inset_height = 50.0;
|
||||
|
||||
display_inset = true;
|
||||
display_columns = true;
|
||||
display_rows = true;
|
||||
display_border = true;
|
||||
updateRectangles();
|
||||
|
||||
@@ -89,6 +81,60 @@ qreal BorderInset::minRowsHeight() {
|
||||
return(5.0);
|
||||
}
|
||||
|
||||
/**
|
||||
@return les proprietes du cartouches
|
||||
*/
|
||||
InsetProperties BorderInset::exportInset() {
|
||||
InsetProperties ip;
|
||||
ip.author = bi_author;
|
||||
ip.date = bi_date;
|
||||
ip.title = bi_title;
|
||||
ip.folio = bi_folio;
|
||||
ip.filename = bi_filename;
|
||||
return(ip);
|
||||
}
|
||||
|
||||
/**
|
||||
@param ip les nouvelles proprietes du cartouche
|
||||
*/
|
||||
void BorderInset::importInset(const InsetProperties &ip) {
|
||||
bi_author = ip.author;
|
||||
bi_date = ip.date;
|
||||
bi_title = ip.title;
|
||||
bi_folio = ip.folio;
|
||||
bi_filename = ip.filename;
|
||||
}
|
||||
|
||||
/**
|
||||
@return les proprietes de la bordure
|
||||
*/
|
||||
BorderProperties BorderInset::exportBorder() {
|
||||
BorderProperties bp;
|
||||
bp.columns_count = nbColumns();
|
||||
bp.columns_width = columnsWidth();
|
||||
bp.columns_header_height = columnsHeaderHeight();
|
||||
bp.display_columns = columnsAreDisplayed();
|
||||
bp.rows_count = nbRows();
|
||||
bp.rows_height = rowsHeight();
|
||||
bp.rows_header_width = rowsHeaderWidth();
|
||||
bp.display_rows = rowsAreDisplayed();
|
||||
return(bp);
|
||||
}
|
||||
|
||||
/**
|
||||
@param ip les nouvelles proprietes de la bordure
|
||||
*/
|
||||
void BorderInset::importBorder(const BorderProperties &bp) {
|
||||
setColumnsHeaderHeight(bp.columns_header_height);
|
||||
setNbColumns(bp.columns_count);
|
||||
setColumnsWidth(bp.columns_width);
|
||||
displayColumns(bp.display_columns);
|
||||
setRowsHeaderWidth(bp.rows_header_width);
|
||||
setNbRows(bp.rows_count);
|
||||
setRowsHeight(bp.rows_height);
|
||||
displayRows(bp.display_rows);
|
||||
}
|
||||
|
||||
/**
|
||||
Methode recalculant les rectangles composant le cadre et le cartouche en
|
||||
fonction des attributs de taille
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#ifndef BORDERINSET_H
|
||||
#define BORDERINSET_H
|
||||
#include "insetproperties.h"
|
||||
#include "borderproperties.h"
|
||||
#include <QObject>
|
||||
#include <QRectF>
|
||||
#include <QDate>
|
||||
@@ -135,25 +136,10 @@ class BorderInset : public QObject {
|
||||
/// @param filename le nouveau contenu du champ "Fichier"
|
||||
void setFileName (const QString &filename) { bi_filename = filename; }
|
||||
|
||||
/// @return les proprietes du cartouches
|
||||
InsetProperties exportInset() {
|
||||
InsetProperties ip;
|
||||
ip.author = bi_author;
|
||||
ip.date = bi_date;
|
||||
ip.title = bi_title;
|
||||
ip.folio = bi_folio;
|
||||
ip.filename = bi_filename;
|
||||
return(ip);
|
||||
}
|
||||
|
||||
/// @param ip les nouvelles proprietes du cartouche
|
||||
void importInset(const InsetProperties &ip) {
|
||||
bi_author = ip.author;
|
||||
bi_date = ip.date;
|
||||
bi_title = ip.title;
|
||||
bi_folio = ip.folio;
|
||||
bi_filename = ip.filename;
|
||||
}
|
||||
InsetProperties exportInset();
|
||||
void importInset(const InsetProperties &);
|
||||
BorderProperties exportBorder();
|
||||
void importBorder(const BorderProperties &);
|
||||
|
||||
// methodes d'acces en ecriture aux options
|
||||
/// @param di true pour afficher le cartouche, false sinon
|
||||
|
||||
55
sources/borderproperties.cpp
Normal file
55
sources/borderproperties.cpp
Normal file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
Copyright 2006-2008 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 "borderproperties.h"
|
||||
|
||||
/**
|
||||
Constructeur
|
||||
*/
|
||||
BorderProperties::BorderProperties() {
|
||||
}
|
||||
|
||||
/**
|
||||
Destructeur
|
||||
*/
|
||||
BorderProperties::~BorderProperties() {
|
||||
}
|
||||
|
||||
/**
|
||||
@param bp autre conteneur BorderProperties
|
||||
@return true si ip et ce conteneur sont identiques, false sinon
|
||||
*/
|
||||
bool BorderProperties::operator==(const BorderProperties &bp) {
|
||||
return(
|
||||
bp.columns_count == columns_count &&\
|
||||
bp.columns_width == columns_width &&\
|
||||
bp.columns_header_height == columns_header_height &&\
|
||||
bp.display_columns == display_columns &&\
|
||||
bp.rows_count == rows_count &&\
|
||||
bp.rows_height == rows_height &&\
|
||||
bp.rows_header_width == rows_header_width &&\
|
||||
bp.display_rows == display_rows
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@param bp autre conteneur BorderProperties
|
||||
@return false si bp et ce conteneur sont identiques, true sinon
|
||||
*/
|
||||
bool BorderProperties::operator!=(const BorderProperties &bp) {
|
||||
return(!(*this == bp));
|
||||
}
|
||||
45
sources/borderproperties.h
Normal file
45
sources/borderproperties.h
Normal file
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
Copyright 2006-2008 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 BORDER_PROPERTIES_H
|
||||
#define BORDER_PROPERTIES_H
|
||||
#include <QtCore>
|
||||
/**
|
||||
Cette classe est un conteneur pour les dimensions et proprietes d'affichage
|
||||
d'un schema : affichage, nombre et dimensions des colonnes et lignes, ...
|
||||
*/
|
||||
class BorderProperties {
|
||||
public:
|
||||
// constructeur, destructeur, operateurs
|
||||
BorderProperties();
|
||||
virtual ~BorderProperties();
|
||||
|
||||
bool operator==(const BorderProperties &);
|
||||
bool operator!=(const BorderProperties &);
|
||||
|
||||
// attributs
|
||||
int columns_count; ///< Nombre de colonnes
|
||||
qreal columns_width; ///< Largeur des colonnes
|
||||
qreal columns_header_height; ///< Hauteur des entetes des colonnes
|
||||
bool display_columns; ///< Afficher ou non les entetes des colonnes
|
||||
|
||||
int rows_count; ///< Nombre de lignes
|
||||
qreal rows_height; ///< Hauteur des lignes
|
||||
qreal rows_header_width; ///< Largeur des entetes des lignes
|
||||
bool display_rows; ///< Afficher ou non les entetes des lignes
|
||||
};
|
||||
#endif
|
||||
109
sources/borderpropertieswidget.cpp
Normal file
109
sources/borderpropertieswidget.cpp
Normal file
@@ -0,0 +1,109 @@
|
||||
/*
|
||||
Copyright 2006-2008 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 "borderpropertieswidget.h"
|
||||
#include <QtGui>
|
||||
#include "qetapp.h"
|
||||
#include "borderinset.h"
|
||||
|
||||
/**
|
||||
Constructeur
|
||||
Construit un widget editant les proprietes d'une bordure
|
||||
@param bp proprietes a editer
|
||||
@param parent QWidget parent
|
||||
*/
|
||||
BorderPropertiesWidget::BorderPropertiesWidget(const BorderProperties &bp, QWidget *parent) :
|
||||
QWidget(parent)
|
||||
{
|
||||
build();
|
||||
setEditedBorder(bp);
|
||||
}
|
||||
|
||||
/**
|
||||
Destructeur
|
||||
*/
|
||||
BorderPropertiesWidget::~BorderPropertiesWidget() {
|
||||
}
|
||||
|
||||
/**
|
||||
@return the border properties edited and modified by
|
||||
*/
|
||||
const BorderProperties &BorderPropertiesWidget::borderProperties() {
|
||||
border_.columns_count = columns_count -> value();
|
||||
border_.columns_width = columns_width -> value();
|
||||
border_.rows_count = rows_count -> value();
|
||||
border_.rows_height = rows_height -> value();
|
||||
return(border_);
|
||||
}
|
||||
|
||||
/**
|
||||
Definit les proprietes a editer
|
||||
@param bp Nouvelles proprietes
|
||||
*/
|
||||
void BorderPropertiesWidget::setEditedBorder(const BorderProperties &bp) {
|
||||
border_ = bp;
|
||||
columns_count -> setValue(border_.columns_count);
|
||||
columns_width -> setValue(border_.columns_width);
|
||||
rows_count -> setValue(border_.rows_count);
|
||||
rows_height -> setValue(border_.rows_height);
|
||||
}
|
||||
|
||||
/**
|
||||
Construit le widget
|
||||
*/
|
||||
void BorderPropertiesWidget::build() {
|
||||
QVBoxLayout *widget_layout = new QVBoxLayout();
|
||||
widget_layout -> setContentsMargins(0, 0, 0, 0);
|
||||
|
||||
QGroupBox *diagram_size_box = new QGroupBox(tr("Dimensions du sch\351ma"));
|
||||
QGridLayout *diagram_size_box_layout = new QGridLayout(diagram_size_box);
|
||||
|
||||
// colonnes : nombre et largeur
|
||||
QLabel *ds1 = new QLabel(tr("Colonnes :"));
|
||||
|
||||
columns_count = new QSpinBox(diagram_size_box);
|
||||
columns_count -> setMinimum(BorderInset::minNbColumns());
|
||||
|
||||
columns_width = new QSpinBox(diagram_size_box);
|
||||
columns_width -> setMinimum(qRound(BorderInset::minColumnsWidth()));
|
||||
columns_width -> setSingleStep(10);
|
||||
columns_width -> setPrefix(tr("\327"));
|
||||
columns_width -> setSuffix(tr("px"));
|
||||
|
||||
// lignes : nombre et largeur
|
||||
QLabel *ds2 = new QLabel(tr("Lignes :"));
|
||||
|
||||
rows_count = new QSpinBox(diagram_size_box);
|
||||
rows_count -> setMinimum(BorderInset::minNbRows());
|
||||
|
||||
rows_height = new QSpinBox(diagram_size_box);
|
||||
rows_height -> setMinimum(qRound(BorderInset::minRowsHeight()));
|
||||
rows_height -> setSingleStep(10);
|
||||
rows_height -> setPrefix(tr("\327"));
|
||||
rows_height -> setSuffix(tr("px"));
|
||||
|
||||
// layout
|
||||
diagram_size_box_layout -> addWidget(ds1, 0, 0);
|
||||
diagram_size_box_layout -> addWidget(columns_count, 0, 1);
|
||||
diagram_size_box_layout -> addWidget(columns_width, 0, 2);
|
||||
diagram_size_box_layout -> addWidget(ds2, 1, 0);
|
||||
diagram_size_box_layout -> addWidget(rows_count, 1, 1);
|
||||
diagram_size_box_layout -> addWidget(rows_height, 1, 2);
|
||||
|
||||
widget_layout -> addWidget(diagram_size_box);
|
||||
setLayout(widget_layout);
|
||||
}
|
||||
54
sources/borderpropertieswidget.h
Normal file
54
sources/borderpropertieswidget.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
Copyright 2006-2008 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 BORDER_PROPERTIES_WIDGET_H
|
||||
#define BORDER_PROPERTIES_WIDGET_H
|
||||
#include <QWidget>
|
||||
#include "borderproperties.h"
|
||||
class QSpinBox;
|
||||
/**
|
||||
Cette classe represente un widget permettant d'editer les dimensions et les
|
||||
options d'affichage d'un schema, cartouche non inclus.
|
||||
@see InsetPropertiesWidget
|
||||
*/
|
||||
class BorderPropertiesWidget : public QWidget {
|
||||
Q_OBJECT
|
||||
|
||||
// constructeurs, destructeur
|
||||
public:
|
||||
BorderPropertiesWidget(const BorderProperties &, QWidget * = 0);
|
||||
virtual ~BorderPropertiesWidget();
|
||||
private:
|
||||
BorderPropertiesWidget(const BorderPropertiesWidget &);
|
||||
|
||||
// methodes
|
||||
public:
|
||||
const BorderProperties &borderProperties();
|
||||
|
||||
private:
|
||||
void setEditedBorder(const BorderProperties &);
|
||||
void build();
|
||||
|
||||
// attributs
|
||||
private:
|
||||
BorderProperties border_; ///< Proprietes editees
|
||||
QSpinBox *columns_count; ///< Widget d'edition du nombre de colonnes
|
||||
QSpinBox *columns_width; ///< Widget d'edition de la largeur des colonnes
|
||||
QSpinBox *rows_count; ///< Widget d'edition du nombre de lignes
|
||||
QSpinBox *rows_height; ///< Widget d'edition de la hauteur des lignes
|
||||
};
|
||||
#endif
|
||||
@@ -47,6 +47,7 @@ void ConductorPropertiesWidget::buildInterface() {
|
||||
setMinimumSize(380, 280);
|
||||
|
||||
QVBoxLayout *main_layout = new QVBoxLayout(this);
|
||||
main_layout -> setContentsMargins(0, 0, 0, 0);
|
||||
|
||||
QGroupBox *groupbox = new QGroupBox(tr("Type de conducteur"));
|
||||
main_layout -> addWidget(groupbox);
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "configpages.h"
|
||||
#include "borderpropertieswidget.h"
|
||||
#include "conductorpropertieswidget.h"
|
||||
#include "insetpropertieswidget.h"
|
||||
#include "qetapp.h"
|
||||
@@ -31,11 +32,17 @@ NewDiagramPage::NewDiagramPage(QWidget *parent) : ConfigPage(parent) {
|
||||
// acces a la configuration de QElectroTech
|
||||
QSettings &settings = QETApp::settings();
|
||||
|
||||
// recupere les dimensions du schema
|
||||
int columns_count_value = settings.value("diagrameditor/defaultcols", 15).toInt();
|
||||
int columns_width_value = qRound(settings.value("diagrameditor/defaultcolsize", 50.0).toDouble());
|
||||
int rows_count_value = settings.value("diagrameditor/defaultrows", 6).toInt();
|
||||
int rows_height_value = qRound(settings.value("diagrameditor/defaultrowsize", 80.0).toDouble());
|
||||
// dimensions par defaut d'un schema
|
||||
bpw = new BorderPropertiesWidget(QETDiagramEditor::defaultBorderProperties());
|
||||
|
||||
// proprietes par defaut d'un cartouche
|
||||
ipw = new InsetPropertiesWidget(QETDiagramEditor::defaultInsetProperties(), true);
|
||||
|
||||
// proprietes par defaut des conducteurs
|
||||
ConductorProperties cp;
|
||||
cp.fromSettings(settings, "diagrameditor/defaultconductor");
|
||||
cpw = new ConductorPropertiesWidget(cp);
|
||||
cpw -> setContentsMargins(0, 0, 0, 0);
|
||||
|
||||
QVBoxLayout *vlayout1 = new QVBoxLayout();
|
||||
|
||||
@@ -49,52 +56,9 @@ NewDiagramPage::NewDiagramPage(QWidget *parent) : ConfigPage(parent) {
|
||||
QHBoxLayout *hlayout1 = new QHBoxLayout();
|
||||
QVBoxLayout *vlayout2 = new QVBoxLayout();
|
||||
|
||||
QGroupBox *diagram_size_box = new QGroupBox(tr("Dimensions du sch\351ma"));
|
||||
diagram_size_box -> setMinimumWidth(300);
|
||||
QGridLayout *diagram_size_box_layout = new QGridLayout(diagram_size_box);
|
||||
|
||||
QLabel *ds1 = new QLabel(tr("Colonnes :"));
|
||||
|
||||
columns_count = new QSpinBox(diagram_size_box);
|
||||
columns_count -> setMinimum(BorderInset::minNbColumns());
|
||||
columns_count -> setValue(columns_count_value);
|
||||
|
||||
columns_width = new QSpinBox(diagram_size_box);
|
||||
columns_width -> setMinimum(qRound(BorderInset::minColumnsWidth()));
|
||||
columns_width -> setSingleStep(10);
|
||||
columns_width -> setValue(columns_width_value);
|
||||
columns_width -> setPrefix(tr("\327"));
|
||||
columns_width -> setSuffix(tr("px"));
|
||||
|
||||
QLabel *ds2 = new QLabel(tr("Lignes :"));
|
||||
|
||||
rows_count = new QSpinBox(diagram_size_box);
|
||||
rows_count -> setMinimum(BorderInset::minNbRows());
|
||||
rows_count -> setValue(rows_count_value);
|
||||
|
||||
rows_height = new QSpinBox(diagram_size_box);
|
||||
rows_height -> setMinimum(qRound(BorderInset::minRowsHeight()));
|
||||
rows_height -> setSingleStep(10);
|
||||
rows_height -> setValue(rows_height_value);
|
||||
rows_height -> setPrefix(tr("\327"));
|
||||
rows_height -> setSuffix(tr("px"));
|
||||
|
||||
diagram_size_box_layout -> addWidget(ds1, 0, 0);
|
||||
diagram_size_box_layout -> addWidget(columns_count, 0, 1);
|
||||
diagram_size_box_layout -> addWidget(columns_width, 0, 2);
|
||||
diagram_size_box_layout -> addWidget(ds2, 1, 0);
|
||||
diagram_size_box_layout -> addWidget(rows_count, 1, 1);
|
||||
diagram_size_box_layout -> addWidget(rows_height, 1, 2);
|
||||
|
||||
ipw = new InsetPropertiesWidget(QETDiagramEditor::defaultInsetProperties(), true, this);
|
||||
|
||||
// proprietes par defaut des conducteurs
|
||||
ConductorProperties cp;
|
||||
cp.fromSettings(settings, "diagrameditor/defaultconductor");
|
||||
cpw = new ConductorPropertiesWidget(cp);
|
||||
|
||||
vlayout2 -> addWidget(diagram_size_box);
|
||||
vlayout2 -> addWidget(bpw);
|
||||
vlayout2 -> addWidget(ipw);
|
||||
vlayout2 -> setSpacing(5);
|
||||
hlayout1 -> addLayout(vlayout2);
|
||||
hlayout1 -> addWidget(cpw);
|
||||
vlayout1 -> addLayout(hlayout1);
|
||||
@@ -114,10 +78,11 @@ void NewDiagramPage::applyConf() {
|
||||
QSettings &settings = QETApp::settings();
|
||||
|
||||
// dimensions des nouveaux schemas
|
||||
settings.setValue("diagrameditor/defaultcols", columns_count -> value());
|
||||
settings.setValue("diagrameditor/defaultcolsize", columns_width -> value());
|
||||
settings.setValue("diagrameditor/defaultrows", rows_count -> value());
|
||||
settings.setValue("diagrameditor/defaultrowsize", rows_height -> value());
|
||||
BorderProperties border = bpw -> borderProperties();
|
||||
settings.setValue("diagrameditor/defaultcols", border.columns_count);
|
||||
settings.setValue("diagrameditor/defaultcolsize", border.columns_width);
|
||||
settings.setValue("diagrameditor/defaultrows", border.rows_count);
|
||||
settings.setValue("diagrameditor/defaultrowsize", border.rows_height);
|
||||
|
||||
// proprietes du cartouche
|
||||
InsetProperties inset = ipw-> insetProperties();
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#ifndef CONFIG_PAGES_H
|
||||
#define CONFIG_PAGES_H
|
||||
#include <QtGui>
|
||||
class BorderPropertiesWidget;
|
||||
class ConductorPropertiesWidget;
|
||||
class InsetPropertiesWidget;
|
||||
|
||||
@@ -63,10 +64,7 @@ class NewDiagramPage : public ConfigPage {
|
||||
|
||||
// attributs
|
||||
public:
|
||||
QSpinBox *columns_count; ///< Widget d'edition du nombre par defaut de colonnes
|
||||
QSpinBox *columns_width; ///< Widget d'edition de la largeur par defaut des colonnes
|
||||
QSpinBox *rows_count; ///< Widget d'edition du nombre par defaut de lignes
|
||||
QSpinBox *rows_height; ///< Widget d'edition de la hauteur par defaut des lignes
|
||||
BorderPropertiesWidget *bpw; ///< Widget d'edition des dimensions du schema
|
||||
InsetPropertiesWidget *ipw; ///< Widget d'edition des proprietes par defaut du cartouche
|
||||
ConductorPropertiesWidget *cpw; ///< Widget d'edition des proprietes par defaut des conducteurs
|
||||
};
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "diagramcommands.h"
|
||||
#include "conductorpropertieswidget.h"
|
||||
#include "insetpropertieswidget.h"
|
||||
#include "borderpropertieswidget.h"
|
||||
|
||||
/**
|
||||
Constructeur
|
||||
@@ -547,61 +548,17 @@ void DiagramView::dialogPrint() {
|
||||
Edite les informations du schema.
|
||||
*/
|
||||
void DiagramView::dialogEditInfos() {
|
||||
// recupere le cartouche du schema
|
||||
InsetProperties inset = scene -> border_and_inset.exportInset();
|
||||
|
||||
// recupere les dimensions du schema
|
||||
int columns_count_value = scene -> border_and_inset.nbColumns();
|
||||
int columns_width_value = qRound(scene -> border_and_inset.columnsWidth());
|
||||
int rows_count_value = scene -> border_and_inset.nbRows();
|
||||
int rows_height_value = qRound(scene -> border_and_inset.rowsHeight());
|
||||
// recupere le cartouche et les dimensions du schema
|
||||
InsetProperties inset = scene -> border_and_inset.exportInset();
|
||||
BorderProperties border = scene -> border_and_inset.exportBorder();
|
||||
|
||||
// construit le dialogue
|
||||
QDialog popup;
|
||||
popup.setMinimumWidth(400);
|
||||
popup.setWindowTitle(tr("Propri\351t\351s du sch\351ma"));
|
||||
|
||||
QGroupBox *diagram_size_box = new QGroupBox(tr("Dimensions du sch\351ma"), &popup);
|
||||
QGridLayout diagram_size_box_layout(diagram_size_box);
|
||||
|
||||
QLabel *ds1 = new QLabel(tr("Colonnes :"));
|
||||
|
||||
QSpinBox *columns_count = new QSpinBox(diagram_size_box);
|
||||
columns_count -> setMinimum(BorderInset::minNbColumns());
|
||||
columns_count -> setValue(columns_count_value);
|
||||
|
||||
QSpinBox *columns_width = new QSpinBox(diagram_size_box);
|
||||
columns_width -> setMinimum(qRound(BorderInset::minColumnsWidth()));
|
||||
columns_width -> setSingleStep(10);
|
||||
columns_width -> setValue(columns_width_value);
|
||||
columns_width -> setPrefix(tr("\327"));
|
||||
columns_width -> setSuffix(tr("px"));
|
||||
|
||||
QLabel *ds2 = new QLabel(tr("Lignes :"));
|
||||
|
||||
QSpinBox *rows_count = new QSpinBox(diagram_size_box);
|
||||
rows_count -> setMinimum(BorderInset::minNbRows());
|
||||
rows_count -> setValue(rows_count_value);
|
||||
|
||||
QSpinBox *rows_height = new QSpinBox(diagram_size_box);
|
||||
rows_height -> setMinimum(qRound(BorderInset::minRowsHeight()));
|
||||
rows_height -> setSingleStep(10);
|
||||
rows_height -> setValue(rows_height_value);
|
||||
rows_height -> setPrefix(tr("\327"));
|
||||
rows_height -> setSuffix(tr("px"));
|
||||
|
||||
diagram_size_box_layout.addWidget(ds1, 0, 0);
|
||||
diagram_size_box_layout.addWidget(columns_count, 0, 1);
|
||||
diagram_size_box_layout.addWidget(columns_width, 0, 2);
|
||||
diagram_size_box_layout.addWidget(ds2, 1, 0);
|
||||
diagram_size_box_layout.addWidget(rows_count, 1, 1);
|
||||
diagram_size_box_layout.addWidget(rows_height, 1, 2);
|
||||
diagram_size_box_layout.setColumnStretch(0, 1);
|
||||
diagram_size_box_layout.setColumnStretch(1, 1);
|
||||
diagram_size_box_layout.setColumnStretch(2, 1);
|
||||
diagram_size_box_layout.setColumnStretch(3, 500);
|
||||
|
||||
InsetPropertiesWidget *inset_infos = new InsetPropertiesWidget(inset, false, &popup);
|
||||
BorderPropertiesWidget *border_infos = new BorderPropertiesWidget(border, &popup);
|
||||
InsetPropertiesWidget *inset_infos = new InsetPropertiesWidget(inset, false, &popup);
|
||||
|
||||
// boutons
|
||||
QDialogButtonBox boutons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
||||
@@ -610,31 +567,26 @@ void DiagramView::dialogEditInfos() {
|
||||
|
||||
// ajout dans une disposition verticale
|
||||
QVBoxLayout layout_v(&popup);
|
||||
layout_v.addWidget(diagram_size_box);
|
||||
layout_v.addWidget(border_infos);
|
||||
layout_v.addWidget(inset_infos);
|
||||
layout_v.addStretch();
|
||||
layout_v.addWidget(&boutons);
|
||||
// si le dialogue est accepte
|
||||
if (popup.exec() == QDialog::Accepted) {
|
||||
InsetProperties new_inset = inset_infos -> insetProperties();
|
||||
|
||||
InsetProperties new_inset = inset_infos -> insetProperties();
|
||||
BorderProperties new_border = border_infos -> borderProperties();
|
||||
// s'il y a des modifications au cartouche
|
||||
if (new_inset != inset) {
|
||||
scene -> undoStack().push(new ChangeInsetCommand(scene, inset, new_inset));
|
||||
}
|
||||
|
||||
// s'il y a des modifications aux dimensions du schema
|
||||
if (
|
||||
columns_count_value != columns_count -> value() ||\
|
||||
columns_width_value != columns_width -> value() ||\
|
||||
rows_count_value != rows_count -> value() ||\
|
||||
rows_height_value != rows_height -> value()
|
||||
) {
|
||||
if (new_border != border) {
|
||||
ChangeBorderCommand *cbc = new ChangeBorderCommand(scene);
|
||||
cbc -> columnsCountDifference = columns_count -> value() - columns_count_value;
|
||||
cbc -> columnsWidthDifference = columns_width -> value() - columns_width_value;
|
||||
cbc -> rowsCountDifference = rows_count -> value() - rows_count_value;
|
||||
cbc -> rowsHeightDifference = rows_height -> value() - rows_height_value;
|
||||
cbc -> columnsCountDifference = new_border.columns_count - border.columns_count;
|
||||
cbc -> columnsWidthDifference = new_border.columns_width - border.columns_width;
|
||||
cbc -> rowsCountDifference = new_border.rows_count - border.rows_count;
|
||||
cbc -> rowsHeightDifference = new_border.rows_height - border.rows_height;
|
||||
scene -> undoStack().push(cbc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
/*
|
||||
Copyright 2006-2008 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 "qetarguments.h"
|
||||
|
||||
/**
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "conductorpropertieswidget.h"
|
||||
#include "configdialog.h"
|
||||
#include "recentfiles.h"
|
||||
|
||||
/**
|
||||
constructeur
|
||||
@param files Liste de fichiers a ouvrir
|
||||
@@ -1090,3 +1091,24 @@ InsetProperties QETDiagramEditor::defaultInsetProperties() {
|
||||
|
||||
return(def);
|
||||
}
|
||||
|
||||
/**
|
||||
@return Les dimensions par defaut d'un schema
|
||||
*/
|
||||
BorderProperties QETDiagramEditor::defaultBorderProperties() {
|
||||
// accede a la configuration de l'application
|
||||
QSettings &settings = QETApp::settings();
|
||||
|
||||
BorderProperties def;
|
||||
def.columns_count = settings.value("diagrameditor/defaultcols", 15).toInt();
|
||||
def.columns_width = qRound(settings.value("diagrameditor/defaultcolsize", 50.0).toDouble());
|
||||
def.columns_header_height = 20.0;
|
||||
def.display_columns = true;
|
||||
|
||||
def.rows_count = settings.value("diagrameditor/defaultrows", 6).toInt();
|
||||
def.rows_height = qRound(settings.value("diagrameditor/defaultrowsize", 80.0).toDouble());
|
||||
def.rows_header_width = 20.0;
|
||||
def.display_rows = true;
|
||||
|
||||
return(def);
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#ifndef QET_DIAGRAM_EDITOR_H
|
||||
#define QET_DIAGRAM_EDITOR_H
|
||||
#include <QtGui>
|
||||
#include "borderproperties.h"
|
||||
#include "insetproperties.h"
|
||||
class DiagramView;
|
||||
class ElementsPanelWidget;
|
||||
@@ -48,6 +49,7 @@ class QETDiagramEditor : public QMainWindow {
|
||||
QList<QString> editedFiles() const;
|
||||
DiagramView *viewForFile(const QString &) const;
|
||||
static InsetProperties defaultInsetProperties();
|
||||
static BorderProperties defaultBorderProperties();
|
||||
|
||||
protected:
|
||||
void actions();
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
/*
|
||||
Copyright 2006-2008 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 "recentfiles.h"
|
||||
#include "qetapp.h"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user