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:
xavier
2010-02-27 23:33:10 +00:00
parent 016a4b2957
commit 7b483098ea
9 changed files with 94 additions and 15 deletions

View File

@@ -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

View File

@@ -39,6 +39,8 @@ class BorderPropertiesWidget : public QWidget {
// methodes
public:
const BorderProperties &borderProperties();
bool isReadOnly() const;
void setReadOnly(bool);
private:
void setEditedBorder(const BorderProperties &);

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -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();
}
}

View File

@@ -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);
}

View File

@@ -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:

View File

@@ -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());

View File

@@ -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);