/* Copyright 2006-2012 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 . */ #ifndef CONDUCTOR_PROPERTIES_WIDGET_H #define CONDUCTOR_PROPERTIES_WIDGET_H #include "conductorproperties.h" #include /** Ce widget permet a l utilisateur d'editer les proprietes d'un conducteur. Par proprietes, on entend non pas le trajet effectue par le conducteur mais les options supplementaires : symboles unifilaires, presence ou non d'un champ de texte, contenu de ce champ de texte, etc. */ class ConductorPropertiesWidget : public QWidget { Q_OBJECT // constructeurs, destructeur public: ConductorPropertiesWidget(QWidget * = 0); ConductorPropertiesWidget(const ConductorProperties &, QWidget * = 0); virtual ~ConductorPropertiesWidget(); private: ConductorPropertiesWidget(const ConductorPropertiesWidget &); // methodes public: void setConductorProperties(const ConductorProperties &); ConductorProperties conductorProperties() const; bool isReadOnly() const; void setReadOnly(bool); private: void setConductorType(ConductorProperties::ConductorType); void setColorButton(const QColor &); QColor colorButton() const; public slots: void updatePreview(); void updateConfig(); void updateDisplay(); void chooseColor(); protected: void focusInEvent(QFocusEvent *); // attributs prives private: QButtonGroup *radio_buttons; QRadioButton *simple; QRadioButton *multiline; QLineEdit *text_field; QRadioButton *singleline; QCheckBox *phase_checkbox; QSlider *phase_slider; QSpinBox *phase_spinbox; QCheckBox *ground_checkbox; QCheckBox *neutral_checkbox; QLabel *preview; QPushButton *color_button; QCheckBox *dashed_checkbox; ConductorProperties properties_; // methodes privees void buildInterface(); void buildConnections(); void destroyConnections(); }; #endif