element class: replace enum linkertype by #define (better way for use flags)

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2675 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2013-12-29 13:27:46 +00:00
parent 0d37b13dab
commit 5eecfedd02
8 changed files with 26 additions and 24 deletions

View File

@@ -34,10 +34,10 @@ ElementProvider::ElementProvider(QETProject *prj, Diagram *diagram)
* All returned element are free, ie element aren't connected with another element
* @param filter
* the filter for search element
* (the filter must be the enum linkerType in Element.h)
* (You can find all filter with the #define in Element.h)
* @return
*/
QList <Element *> ElementProvider::FreeElement(int filter) {
QList <Element *> ElementProvider::FreeElement(const int filter) const{
QList <Element *> free_elmt;
//serch in all diagram

View File

@@ -32,7 +32,7 @@ class ElementProvider
{
public:
ElementProvider(QETProject *prj, Diagram *diagram=0);
QList <Element *> FreeElement(int filter);
QList <Element *> FreeElement(const int filter) const;
private:
QList <Diagram *> diag_list;

View File

@@ -22,6 +22,15 @@
#include "qetgraphicsitem.h"
class Diagram;
class ElementTextItem;
// this define is use to know the kind of element and
// to use flag for element provider class
#define SIMPLE 1
#define REPORT 2
#define MASTER 4
#define SLAVE 8
#define BORNIER 16
/**
This is the base class for electrical elements.
*/
@@ -29,15 +38,6 @@ class Element : public QetGraphicsItem {
Q_OBJECT
public:
enum linkerType{
simple = 1,
report = 2,
master = 4,
slave = 8,
bornier = 16
};
// constructors, destructor
public:
Element(QGraphicsItem * = 0, Diagram * = 0);

View File

@@ -43,7 +43,7 @@ class GhostElement : public CustomElement {
// methods
public:
virtual bool fromXml(QDomElement &, QHash<int, Terminal *> &, bool = false);
virtual int linkType() const {return Element::simple;}
virtual int linkType() const {return SIMPLE;}
protected:
QRectF minimalBoundingRect() const;

View File

@@ -22,5 +22,5 @@ ReportElement::ReportElement(const ElementsLocation &location, QGraphicsItem *qg
{}
int ReportElement::linkType() const {
return ReportElement::report;
return REPORT;
}

View File

@@ -22,5 +22,5 @@ SimpleElement::SimpleElement(const ElementsLocation &location, QGraphicsItem *qg
{}
int SimpleElement::linkType() const {
return SimpleElement::simple;
return SIMPLE;
}

View File

@@ -90,17 +90,17 @@ void elementpropertieswidget::buildInterface() {
//Add tab according to the element
switch (element_ -> linkType()) {
case Element::simple:
case SIMPLE:
break;
case Element::report:
case REPORT:
frp_ = new FolioReportProperties(element_, this);
tab_ -> addTab(frp_, tr("Report de folio"));
break;
case Element::master:
case MASTER:
break;
case Element::slave:
case SLAVE:
break;
case Element::bornier:
case BORNIER:
break;
default:
break;

View File

@@ -12,14 +12,16 @@ FolioReportProperties::FolioReportProperties(Element *elmt, QWidget *parent) :
ui->setupUi(this);
ElementProvider ep(element_->diagram()->project(), element_->diagram());
QList <Element *> elmt_list = ep.FreeElement(Element::report);
QList <Element *> elmt_list = ep.FreeElement(REPORT);
foreach (Element *elmt, elmt_list) {
if (elmt != element_) {
QString button_text;
button_text += elmt->name();
button_text += QString(tr(" Folio\240: %1, ")).arg(elmt->diagram()->folioIndex() + 1);
button_text += QString(tr("Position\240: %1")).arg(elmt->diagram() -> convertPosition(elmt -> scenePos()).toString());
QString title = elmt->diagram()->title();
if (title.isEmpty()) title = tr("Sans titre");
button_text += QString(tr("Folio\240 %1 (%2), position %3.")).arg(elmt->diagram()->folioIndex() + 1)
.arg(title)
.arg(elmt->diagram() -> convertPosition(elmt -> scenePos()).toString());
QRadioButton *rb = new QRadioButton(button_text , this);
ui->available_report_layout->addWidget(rb);