mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-19 06:20:53 +01:00
Les proprietes des projets et schemas sont desormais accessibles en mode lecture seule.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@867 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -40,7 +40,7 @@ BorderPropertiesWidget::~BorderPropertiesWidget() {
|
||||
}
|
||||
|
||||
/**
|
||||
@return the border properties edited and modified by
|
||||
@return Les proprietes editees par ce widget
|
||||
*/
|
||||
const BorderProperties &BorderPropertiesWidget::borderProperties() {
|
||||
border_.columns_count = columns_count -> value();
|
||||
@@ -52,6 +52,25 @@ const BorderProperties &BorderPropertiesWidget::borderProperties() {
|
||||
return(border_);
|
||||
}
|
||||
|
||||
/**
|
||||
@return true si ce widget est en lecture seule, false sinon
|
||||
*/
|
||||
bool BorderPropertiesWidget::isReadOnly() const {
|
||||
return(columns_count -> isReadOnly());
|
||||
}
|
||||
|
||||
/**
|
||||
@param ro true pour passer ce widget en lecture seule, false sinon
|
||||
*/
|
||||
void BorderPropertiesWidget::setReadOnly(bool ro) {
|
||||
columns_count -> setReadOnly(ro);
|
||||
columns_width -> setReadOnly(ro);
|
||||
display_columns -> setDisabled(ro);
|
||||
rows_count -> setReadOnly(ro);
|
||||
rows_height -> setReadOnly(ro);
|
||||
display_rows -> setDisabled(ro);
|
||||
}
|
||||
|
||||
/**
|
||||
Definit les proprietes a editer
|
||||
@param bp Nouvelles proprietes
|
||||
|
||||
@@ -39,6 +39,8 @@ class BorderPropertiesWidget : public QWidget {
|
||||
// methodes
|
||||
public:
|
||||
const BorderProperties &borderProperties();
|
||||
bool isReadOnly() const;
|
||||
void setReadOnly(bool);
|
||||
|
||||
private:
|
||||
void setEditedBorder(const BorderProperties &);
|
||||
|
||||
@@ -268,3 +268,26 @@ void ConductorPropertiesWidget::setConductorProperties(const ConductorProperties
|
||||
ConductorProperties ConductorPropertiesWidget::conductorProperties() const {
|
||||
return(properties_);
|
||||
}
|
||||
|
||||
/**
|
||||
@return true si ce widget est en lecture seule, false sinon
|
||||
*/
|
||||
bool ConductorPropertiesWidget::isReadOnly() const {
|
||||
return(text_field -> isReadOnly());
|
||||
}
|
||||
|
||||
/**
|
||||
@param ro true pour passer ce widget en lecture seule, false sinon
|
||||
*/
|
||||
void ConductorPropertiesWidget::setReadOnly(bool ro) {
|
||||
simple -> setDisabled(ro);
|
||||
multiline -> setDisabled(ro);
|
||||
singleline -> setDisabled(ro);
|
||||
text_field -> setReadOnly(ro);
|
||||
phase_checkbox -> setDisabled(ro);
|
||||
phase_spinbox -> setReadOnly(ro);
|
||||
ground_checkbox -> setDisabled(ro);
|
||||
neutral_checkbox -> setDisabled(ro);
|
||||
color_button -> setDisabled(ro);
|
||||
dashed_checkbox -> setDisabled(ro);
|
||||
}
|
||||
|
||||
@@ -40,6 +40,8 @@ class ConductorPropertiesWidget : public QWidget {
|
||||
public:
|
||||
void setConductorProperties(const ConductorProperties &);
|
||||
ConductorProperties conductorProperties() const;
|
||||
bool isReadOnly() const;
|
||||
void setReadOnly(bool);
|
||||
|
||||
private:
|
||||
void setConductorType(ConductorProperties::ConductorType);
|
||||
|
||||
@@ -337,7 +337,7 @@ QString DiagramView::title() const {
|
||||
Edite les informations du schema.
|
||||
*/
|
||||
void DiagramView::editDiagramProperties() {
|
||||
if (scene -> isReadOnly()) return;
|
||||
bool diagram_is_read_only = scene -> isReadOnly();
|
||||
|
||||
// recupere le cartouche et les dimensions du schema
|
||||
InsetProperties inset = scene -> border_and_inset.exportInset();
|
||||
@@ -353,10 +353,12 @@ void DiagramView::editDiagramProperties() {
|
||||
popup.setWindowTitle(tr("Propri\351t\351s du sch\351ma", "window title"));
|
||||
|
||||
BorderPropertiesWidget *border_infos = new BorderPropertiesWidget(border, &popup);
|
||||
border_infos -> setReadOnly(diagram_is_read_only);
|
||||
InsetPropertiesWidget *inset_infos = new InsetPropertiesWidget(inset, false, &popup);
|
||||
inset_infos -> setReadOnly(diagram_is_read_only);
|
||||
|
||||
// boutons
|
||||
QDialogButtonBox boutons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
||||
QDialogButtonBox boutons(diagram_is_read_only ? QDialogButtonBox::Ok : QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
||||
connect(&boutons, SIGNAL(accepted()), &popup, SLOT(accept()));
|
||||
connect(&boutons, SIGNAL(rejected()), &popup, SLOT(reject()));
|
||||
|
||||
@@ -367,7 +369,7 @@ void DiagramView::editDiagramProperties() {
|
||||
layout_v.addStretch();
|
||||
layout_v.addWidget(&boutons);
|
||||
// si le dialogue est accepte
|
||||
if (popup.exec() == QDialog::Accepted) {
|
||||
if (popup.exec() == QDialog::Accepted && !diagram_is_read_only) {
|
||||
InsetProperties new_inset = inset_infos -> insetProperties();
|
||||
BorderProperties new_border = border_infos -> borderProperties();
|
||||
// s'il y a des modifications au cartouche
|
||||
@@ -750,9 +752,11 @@ void DiagramView::resetConductors() {
|
||||
futurs nouveaux conducteurs
|
||||
*/
|
||||
void DiagramView::editDefaultConductorProperties() {
|
||||
if (scene -> isReadOnly()) return;
|
||||
bool diagram_is_read_only = scene -> isReadOnly();
|
||||
|
||||
// initialise l'editeur de proprietes pour le conducteur
|
||||
ConductorPropertiesWidget *cpw = new ConductorPropertiesWidget(scene -> defaultConductorProperties);
|
||||
cpw -> setReadOnly(diagram_is_read_only);
|
||||
|
||||
// l'insere dans un dialogue
|
||||
QDialog conductor_dialog(diagramEditor());
|
||||
@@ -763,13 +767,13 @@ void DiagramView::editDefaultConductorProperties() {
|
||||
conductor_dialog.setWindowTitle(tr("\311diter les propri\351t\351s par d\351faut des conducteurs", "window title"));
|
||||
QVBoxLayout *dialog_layout = new QVBoxLayout(&conductor_dialog);
|
||||
dialog_layout -> addWidget(cpw);
|
||||
QDialogButtonBox *dbb = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
||||
QDialogButtonBox *dbb = new QDialogButtonBox(diagram_is_read_only ? QDialogButtonBox::Ok : QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
||||
dialog_layout -> addWidget(dbb);
|
||||
connect(dbb, SIGNAL(accepted()), &conductor_dialog, SLOT(accept()));
|
||||
connect(dbb, SIGNAL(rejected()), &conductor_dialog, SLOT(reject()));
|
||||
|
||||
// execute le dialogue et met a jour le conducteur
|
||||
if (conductor_dialog.exec() == QDialog::Accepted) {
|
||||
if (conductor_dialog.exec() == QDialog::Accepted && !diagram_is_read_only) {
|
||||
scene -> defaultConductorProperties = cpw -> conductorProperties();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -153,3 +153,24 @@ void InsetPropertiesWidget::setInsetProperties(const InsetProperties &inset) {
|
||||
bool InsetPropertiesWidget::displayCurrentDate() const {
|
||||
return(display_current_date);
|
||||
}
|
||||
|
||||
/**
|
||||
@return true si ce widget est en lecture seule, false sinon
|
||||
*/
|
||||
bool InsetPropertiesWidget::isReadOnly() const {
|
||||
return(inset_title -> isReadOnly());
|
||||
}
|
||||
|
||||
/**
|
||||
@param ro true pour passer ce widget en lecture seule, false sinon
|
||||
*/
|
||||
void InsetPropertiesWidget::setReadOnly(bool ro) {
|
||||
inset_title -> setReadOnly(ro);
|
||||
inset_author -> setReadOnly(ro);
|
||||
inset_date -> setReadOnly(ro);
|
||||
inset_filename -> setReadOnly(ro);
|
||||
inset_folio -> setReadOnly(ro);
|
||||
inset_no_date -> setDisabled(ro);
|
||||
inset_current_date -> setDisabled(ro);
|
||||
inset_fixed_date -> setDisabled(ro);
|
||||
}
|
||||
|
||||
@@ -37,6 +37,8 @@ class InsetPropertiesWidget : public QWidget {
|
||||
InsetProperties insetProperties() const;
|
||||
void setInsetProperties(const InsetProperties &);
|
||||
bool displayCurrentDate() const;
|
||||
bool isReadOnly() const;
|
||||
void setReadOnly(bool);
|
||||
|
||||
// attributs
|
||||
private:
|
||||
|
||||
@@ -399,6 +399,8 @@ void ProjectView::showDiagram(Diagram *diagram) {
|
||||
void ProjectView::editProjectProperties() {
|
||||
if (!project_) return;
|
||||
|
||||
bool project_is_read_only = project_ -> isReadOnly();
|
||||
|
||||
// dialogue d'edition des proprietes du projet
|
||||
QDialog properties_dialog(parentWidget());
|
||||
#ifdef Q_WS_MAC
|
||||
@@ -412,22 +414,26 @@ void ProjectView::editProjectProperties() {
|
||||
// titre du projet
|
||||
QLabel *title_label = new QLabel(tr("Titre du projet :"));
|
||||
QLineEdit *title_field = new QLineEdit(project_ -> title());
|
||||
title_field -> setReadOnly(project_is_read_only);
|
||||
|
||||
// proprietes des nouveaux schemas
|
||||
QLabel *new_diagrams_prop = new QLabel(tr("Propri\351t\351s \340 utiliser lors de l'ajout d'un nouveau sch\351ma au projet :"));
|
||||
|
||||
// dimensions par defaut d'un schema
|
||||
BorderPropertiesWidget *bpw = new BorderPropertiesWidget(project_ -> defaultBorderProperties());
|
||||
bpw -> setReadOnly(project_is_read_only);
|
||||
|
||||
// proprietes par defaut d'un cartouche
|
||||
InsetPropertiesWidget *ipw = new InsetPropertiesWidget(project_ -> defaultInsetProperties(), true);
|
||||
ipw -> setReadOnly(project_is_read_only);
|
||||
|
||||
// proprietes par defaut des conducteurs
|
||||
ConductorPropertiesWidget *cpw = new ConductorPropertiesWidget(project_ -> defaultConductorProperties());
|
||||
cpw -> setContentsMargins(0, 0, 0, 0);
|
||||
cpw -> setReadOnly(project_is_read_only);
|
||||
|
||||
// boutons pour valider le dialogue
|
||||
QDialogButtonBox *buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
||||
QDialogButtonBox *buttons = new QDialogButtonBox(project_is_read_only ? QDialogButtonBox::Ok : QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
||||
|
||||
connect(buttons, SIGNAL(accepted()), &properties_dialog, SLOT(accept()));
|
||||
connect(buttons, SIGNAL(rejected()), &properties_dialog, SLOT(reject()));
|
||||
@@ -460,7 +466,7 @@ void ProjectView::editProjectProperties() {
|
||||
vert_layout -> addWidget(buttons);
|
||||
|
||||
// si le dialogue est accepte
|
||||
if (properties_dialog.exec() == QDialog::Accepted && !project_ -> isReadOnly()) {
|
||||
if (properties_dialog.exec() == QDialog::Accepted && !project_is_read_only) {
|
||||
project_ -> setTitle(title_field -> text());
|
||||
project_ -> setDefaultBorderProperties(bpw -> borderProperties());
|
||||
project_ -> setDefaultInsetProperties(ipw -> insetProperties());
|
||||
|
||||
@@ -572,9 +572,9 @@ void QETDiagramEditor::toolbar() {
|
||||
view_bar -> addAction(zoom_reset);
|
||||
|
||||
diagram_bar -> addAction(infos_diagram);
|
||||
diagram_bar -> addAction(add_text);
|
||||
diagram_bar -> addAction(conductor_default);
|
||||
diagram_bar -> addAction(conductor_reset);
|
||||
diagram_bar -> addAction(add_text);
|
||||
|
||||
// ajout de la barre d'outils a la fenetre principale
|
||||
addToolBar(Qt::TopToolBarArea, main_bar);
|
||||
@@ -1084,10 +1084,10 @@ void QETDiagramEditor::slot_updateActions() {
|
||||
|
||||
// actions ayant juste besoin d'un document ouvert
|
||||
close_file -> setEnabled(opened_project);
|
||||
save_file -> setEnabled(opened_project && editable_project);
|
||||
save_file -> setEnabled(editable_project);
|
||||
save_file_sous -> setEnabled(opened_project);
|
||||
save_all -> setEnabled(opened_diagram && editable_diagram);
|
||||
prj_edit_prop -> setEnabled(editable_project);
|
||||
save_all -> setEnabled(editable_diagram);
|
||||
prj_edit_prop -> setEnabled(opened_project);
|
||||
prj_add_diagram -> setEnabled(editable_project);
|
||||
prj_del_diagram -> setEnabled(editable_project);
|
||||
prj_clean -> setEnabled(editable_project);
|
||||
@@ -1101,8 +1101,8 @@ void QETDiagramEditor::slot_updateActions() {
|
||||
zoom_out -> setEnabled(opened_diagram);
|
||||
zoom_fit -> setEnabled(opened_diagram);
|
||||
zoom_reset -> setEnabled(opened_diagram);
|
||||
conductor_default -> setEnabled(editable_diagram);
|
||||
infos_diagram -> setEnabled(editable_diagram);
|
||||
conductor_default -> setEnabled(opened_diagram);
|
||||
infos_diagram -> setEnabled(opened_diagram);
|
||||
add_text -> setEnabled(editable_diagram);
|
||||
add_column -> setEnabled(editable_diagram);
|
||||
remove_column -> setEnabled(editable_diagram);
|
||||
|
||||
Reference in New Issue
Block a user