Changeset 15 in flair-src for trunk/tools/FlairGCS/src/Layout.cpp


Ignore:
Timestamp:
Apr 8, 2016, 3:40:57 PM (5 years ago)
Author:
Bayard Gildas
Message:

sources reformatted with flair-format-dir script

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/FlairGCS/src/Layout.cpp

    r10 r15  
    2323#include <QGridLayout>
    2424
    25 
    26 Layout::Layout(QWidget* parent,XmlWidget* xml,QString name,QString type): XmlWidget(name,type,xml) {
    27     qgridlayout=new QGridLayout(parent);
    28     Constructor(name);
    29 }
    30 
    31 Layout::Layout(Layout* parent,QString name,QString type): XmlWidget(name,type,parent) {
    32     qgridlayout=new QGridLayout(new QWidget());
    33     Constructor(name);
     25Layout::Layout(QWidget *parent, XmlWidget *xml, QString name, QString type)
     26    : XmlWidget(name, type, xml) {
     27  qgridlayout = new QGridLayout(parent);
     28  Constructor(name);
     29}
     30
     31Layout::Layout(Layout *parent, QString name, QString type)
     32    : XmlWidget(name, type, parent) {
     33  qgridlayout = new QGridLayout(new QWidget());
     34  Constructor(name);
    3435}
    3536
    3637void Layout::Constructor(QString name) {
    37     visible_widget=qgridlayout->parentWidget();
    38     //if(visible_widget==NULL) printf("null\n");
    39     qgridlayout->setObjectName(name);
    40     //printf("layout\n%s\n",XmlDoc().toString().toLocal8Bit().constData());
    41     SetIsContainer(true);
    42     SetIsExpandable(true);
    43 
    44     qgridlayout->setHorizontalSpacing(2);
    45     qgridlayout->setVerticalSpacing(2);
    46     qgridlayout->setContentsMargins (2,2,2,2);
    47 
    48     //splitter = new QSplitter();
    49     //addWidget(splitter);
    50     /*
    51     QWidget *widget = new QWidget();
    52     //QHBoxLayout *parentLayout = new QHBoxLayout();
    53     widget->setLayout(this);
    54     parent->addWidget(widget);
    55     //QTabWidget *tabWidget = new QTabWidget();
    56     //parentLayout->addWidget(tabWidget);*/
    57 }
    58 
    59 Layout::~Layout() {
    60     delete qgridlayout;
    61 }
     38  visible_widget = qgridlayout->parentWidget();
     39  // if(visible_widget==NULL) printf("null\n");
     40  qgridlayout->setObjectName(name);
     41  // printf("layout\n%s\n",XmlDoc().toString().toLocal8Bit().constData());
     42  SetIsContainer(true);
     43  SetIsExpandable(true);
     44
     45  qgridlayout->setHorizontalSpacing(2);
     46  qgridlayout->setVerticalSpacing(2);
     47  qgridlayout->setContentsMargins(2, 2, 2, 2);
     48
     49  // splitter = new QSplitter();
     50  // addWidget(splitter);
     51  /*
     52  QWidget *widget = new QWidget();
     53  //QHBoxLayout *parentLayout = new QHBoxLayout();
     54  widget->setLayout(this);
     55  parent->addWidget(widget);
     56  //QTabWidget *tabWidget = new QTabWidget();
     57  //parentLayout->addWidget(tabWidget);*/
     58}
     59
     60Layout::~Layout() { delete qgridlayout; }
    6261
    6362void Layout::addWidget(QWidget *widget, int row, int column) {
    64     qgridlayout->addWidget(widget,row,column);
    65 }
    66 
    67 QGridLayout* Layout::getQGridLayout() {
    68     return qgridlayout;
    69 }
     63  qgridlayout->addWidget(widget, row, column);
     64}
     65
     66QGridLayout *Layout::getQGridLayout() { return qgridlayout; }
    7067
    7168void Layout::XmlEvent(QDomElement dom) {
    72     XmlWidget* widget=NULL;
    73     QString type=dom.tagName();
    74     QString name=dom.attribute("name");
    75     QString old_name=dom.attribute("old_name");
    76     int row=dom.attribute("row").toInt();
    77     int col=dom.attribute("col").toInt();
    78 
    79 //initially rowCount()=1 and columnCount()=1 but count()=0 !
    80     //new row
    81     if(row==-1 && col==-1) {
    82         row=qgridlayout->rowCount();
    83         if(qgridlayout->count()==0) row=0;
    84         col=0;
    85     }
    86     //last row last col
    87     if(row==-1 && col==0) {
    88         row=qgridlayout->rowCount()-1;
    89         int i;
    90         for(i=0;i<=qgridlayout->columnCount();i++) {
    91             if(qgridlayout->itemAtPosition(row,i)==NULL) break;
    92         }
    93         col=i;
    94     }
    95     //if an item already exists at this position, put it on a new row
    96     if(qgridlayout->itemAtPosition(row,col)!=NULL) {
    97         printf("existe %s\n",name.toLocal8Bit().constData());
    98         row=qgridlayout->rowCount();
    99     }
    100 
    101     if(type=="TabWidget") {
    102         int position=dom.attribute("position").toInt();
    103         widget = new TabWidget(this,row,col,name,(QTabWidget::TabPosition)position);
    104     }
    105     if(type=="GroupBox") {
    106         widget = new GroupBox(this,row,col,name);
    107     }
    108     if(type=="GridLayout") {
    109         widget = new GridLayout(this,row,col,name);
    110     }
    111     if(type=="SpinBox") {
    112         int value=dom.attribute("value").toInt();
    113         QString suffix=dom.attribute("suffix");
    114         int min=dom.attribute("min").toInt();
    115         int max=dom.attribute("max").toInt();
    116         int step=dom.attribute("step").toInt();
    117         widget= new SpinBox(this,row,col,name,suffix,value,min,max,step);
    118     }
    119     if(type=="DoubleSpinBox") {
    120         QString value=dom.attribute("value");
    121         QString suffix=dom.attribute("suffix");
    122         double min=dom.attribute("min").toDouble();
    123         double max=dom.attribute("max").toDouble();
    124         double step=dom.attribute("step").toDouble();
    125         int decimals=dom.attribute("decimals").toInt();
    126         widget= new DoubleSpinBox(this,row,col,name,suffix,value,min,max,step,decimals);
    127     }
    128     if(type=="Vector3DSpinBox") {
    129         QString value[3];
    130         value[0]=dom.attribute("value_x");
    131         value[1]=dom.attribute("value_y");
    132         value[2]=dom.attribute("value_z");
    133         double min=dom.attribute("min").toDouble();
    134         double max=dom.attribute("max").toDouble();
    135         double step=dom.attribute("step").toDouble();
    136         int decimals=dom.attribute("decimals").toInt();
    137         widget= new Vector3DSpinBox(this,row,col,name,value,min,max,step,decimals);
    138     }
    139     if(type=="CheckBox") {
    140         int value=dom.attribute("value").toInt();
    141         widget= new CheckBox(this,row,col,name,value);
    142     }
    143     if(type=="ComboBox") {
    144         int value=dom.attribute("value").toInt();
    145         widget= new ComboBox(this,row,col,name,value);
    146     }
    147     if(type=="PushButton") {
    148         widget= new PushButton(this,row,col,name);
    149     }
    150     if(type=="DataPlot1D") {
    151         float ymin=dom.attribute("min").toFloat();
    152         float ymax=dom.attribute("max").toFloat();
    153         int enabled=dom.attribute("enabled").toInt();
    154         int period=dom.attribute("period").toInt();
    155         if(enabled==1) {
    156             widget = new DataPlot1D(this,row,col,name,ymin,ymax,true,period);
    157         } else {
    158             widget = new DataPlot1D(this,row,col,name,ymin,ymax,false,100);
    159         }
    160     }
    161     if(type=="DataPlot2D") {
    162         float xmin=dom.attribute("xmin").toFloat();
    163         float xmax=dom.attribute("xmax").toFloat();
    164         float ymin=dom.attribute("ymin").toFloat();
    165         float ymax=dom.attribute("ymax").toFloat();
    166         QString x_name=dom.attribute("x_name");
    167         QString y_name=dom.attribute("y_name");
    168         int enabled=dom.attribute("enabled").toInt();
    169         int period=dom.attribute("period").toInt();
    170         if(enabled==1) {
    171             widget = new DataPlot2D(this,row,col,name,x_name,y_name,xmin,xmax,ymin,ymax,true,period);
    172         } else {
    173             widget = new DataPlot2D(this,row,col,name,x_name,y_name,xmin,xmax,ymin,ymax,false,100);
    174         }
    175     }
    176     if(type=="RangeFinderPlot") {
    177         float xmin=dom.attribute("xmin").toFloat();
    178         float xmax=dom.attribute("xmax").toFloat();
    179         float ymin=dom.attribute("ymin").toFloat();
    180         float ymax=dom.attribute("ymax").toFloat();
    181         QString x_name=dom.attribute("x_name");
    182         QString y_name=dom.attribute("y_name");
    183         QString data_type=dom.attribute("type");
    184         float start_angle=dom.attribute("start_angle").toFloat();
    185         float end_angle=dom.attribute("end_angle").toFloat();
    186         uint32_t nb_samples=dom.attribute("nb_samples").toUInt();
    187         int enabled=dom.attribute("enabled").toInt();
    188         int period=dom.attribute("period").toInt();
    189         int invert_axis=dom.attribute("invert_axis").toInt();
    190         bool invert_axis_bool;
    191         if(invert_axis==0) {
    192             invert_axis_bool=false;
    193         }else {
    194             invert_axis_bool=true;
    195         }
    196         if(enabled==1) {
    197             widget = new RangeFinderPlot(this,row,col,name,x_name,y_name,xmin,xmax,ymin,ymax,start_angle,end_angle,nb_samples,data_type,invert_axis,true,period);
    198         } else {
    199             widget = new RangeFinderPlot(this,row,col,name,x_name,y_name,xmin,xmax,ymin,ymax,start_angle,end_angle,nb_samples,data_type,invert_axis,false,100);
    200         }
    201     }
    202     if(type=="Picture") {
    203         int width=dom.attribute("width").toInt();
    204         int height=dom.attribute("height").toInt();
    205         int enabled=dom.attribute("enabled").toInt();
    206         int period=dom.attribute("period").toInt();
    207         if(enabled==1) {
    208             widget = new Picture(this,row,col,name,width,height,true,period);
    209         } else {
    210             widget = new Picture(this,row,col,name,width,height,false,period);
    211         }
    212     }
    213     if(type=="Map") {
    214         int period=dom.attribute("period").toInt();
    215         int enabled=dom.attribute("enabled").toInt();
    216         int i=0;
    217         QList<QtMobility::QGeoCoordinate> coordinates;
    218         while(dom.hasAttribute("lat" +QString::number(i))) {
    219             double latitude=dom.attribute("lat"+QString::number(i)).toDouble();
    220             double longitude=dom.attribute("long"+QString::number(i)).toDouble();
    221             double alt=dom.attribute("alt"+QString::number(i)).toDouble();
    222             QtMobility::QGeoCoordinate coordinate=QtMobility::QGeoCoordinate(latitude,longitude,alt);
    223             coordinates.append(coordinate);
    224             i++;
    225         }
    226 
    227         if(enabled==1) {
    228             widget = new Map(this,row,col,name,coordinates,true,period);
    229         } else {
    230             widget = new Map(this,row,col,name,coordinates,false,period);
    231         }
    232     }
    233     if(type=="TextEdit") {
    234         widget= new TextEdit(this,row,col,name);
    235     }
    236     if(type=="Label") {
    237         widget= new Label(this,row,col,name);
    238     }
    239 
    240     if(widget!=NULL) {
    241         if(old_name!="") {
    242             widget->RenamedFrom(old_name);
    243         }
    244     }
     69  XmlWidget *widget = NULL;
     70  QString type = dom.tagName();
     71  QString name = dom.attribute("name");
     72  QString old_name = dom.attribute("old_name");
     73  int row = dom.attribute("row").toInt();
     74  int col = dom.attribute("col").toInt();
     75
     76  // initially rowCount()=1 and columnCount()=1 but count()=0 !
     77  // new row
     78  if (row == -1 && col == -1) {
     79    row = qgridlayout->rowCount();
     80    if (qgridlayout->count() == 0)
     81      row = 0;
     82    col = 0;
     83  }
     84  // last row last col
     85  if (row == -1 && col == 0) {
     86    row = qgridlayout->rowCount() - 1;
     87    int i;
     88    for (i = 0; i <= qgridlayout->columnCount(); i++) {
     89      if (qgridlayout->itemAtPosition(row, i) == NULL)
     90        break;
     91    }
     92    col = i;
     93  }
     94  // if an item already exists at this position, put it on a new row
     95  if (qgridlayout->itemAtPosition(row, col) != NULL) {
     96    printf("existe %s\n", name.toLocal8Bit().constData());
     97    row = qgridlayout->rowCount();
     98  }
     99
     100  if (type == "TabWidget") {
     101    int position = dom.attribute("position").toInt();
     102    widget =
     103        new TabWidget(this, row, col, name, (QTabWidget::TabPosition)position);
     104  }
     105  if (type == "GroupBox") {
     106    widget = new GroupBox(this, row, col, name);
     107  }
     108  if (type == "GridLayout") {
     109    widget = new GridLayout(this, row, col, name);
     110  }
     111  if (type == "SpinBox") {
     112    int value = dom.attribute("value").toInt();
     113    QString suffix = dom.attribute("suffix");
     114    int min = dom.attribute("min").toInt();
     115    int max = dom.attribute("max").toInt();
     116    int step = dom.attribute("step").toInt();
     117    widget = new SpinBox(this, row, col, name, suffix, value, min, max, step);
     118  }
     119  if (type == "DoubleSpinBox") {
     120    QString value = dom.attribute("value");
     121    QString suffix = dom.attribute("suffix");
     122    double min = dom.attribute("min").toDouble();
     123    double max = dom.attribute("max").toDouble();
     124    double step = dom.attribute("step").toDouble();
     125    int decimals = dom.attribute("decimals").toInt();
     126    widget = new DoubleSpinBox(this, row, col, name, suffix, value, min, max,
     127                               step, decimals);
     128  }
     129  if (type == "Vector3DSpinBox") {
     130    QString value[3];
     131    value[0] = dom.attribute("value_x");
     132    value[1] = dom.attribute("value_y");
     133    value[2] = dom.attribute("value_z");
     134    double min = dom.attribute("min").toDouble();
     135    double max = dom.attribute("max").toDouble();
     136    double step = dom.attribute("step").toDouble();
     137    int decimals = dom.attribute("decimals").toInt();
     138    widget = new Vector3DSpinBox(this, row, col, name, value, min, max, step,
     139                                 decimals);
     140  }
     141  if (type == "CheckBox") {
     142    int value = dom.attribute("value").toInt();
     143    widget = new CheckBox(this, row, col, name, value);
     144  }
     145  if (type == "ComboBox") {
     146    int value = dom.attribute("value").toInt();
     147    widget = new ComboBox(this, row, col, name, value);
     148  }
     149  if (type == "PushButton") {
     150    widget = new PushButton(this, row, col, name);
     151  }
     152  if (type == "DataPlot1D") {
     153    float ymin = dom.attribute("min").toFloat();
     154    float ymax = dom.attribute("max").toFloat();
     155    int enabled = dom.attribute("enabled").toInt();
     156    int period = dom.attribute("period").toInt();
     157    if (enabled == 1) {
     158      widget = new DataPlot1D(this, row, col, name, ymin, ymax, true, period);
     159    } else {
     160      widget = new DataPlot1D(this, row, col, name, ymin, ymax, false, 100);
     161    }
     162  }
     163  if (type == "DataPlot2D") {
     164    float xmin = dom.attribute("xmin").toFloat();
     165    float xmax = dom.attribute("xmax").toFloat();
     166    float ymin = dom.attribute("ymin").toFloat();
     167    float ymax = dom.attribute("ymax").toFloat();
     168    QString x_name = dom.attribute("x_name");
     169    QString y_name = dom.attribute("y_name");
     170    int enabled = dom.attribute("enabled").toInt();
     171    int period = dom.attribute("period").toInt();
     172    if (enabled == 1) {
     173      widget = new DataPlot2D(this, row, col, name, x_name, y_name, xmin, xmax,
     174                              ymin, ymax, true, period);
     175    } else {
     176      widget = new DataPlot2D(this, row, col, name, x_name, y_name, xmin, xmax,
     177                              ymin, ymax, false, 100);
     178    }
     179  }
     180  if (type == "RangeFinderPlot") {
     181    float xmin = dom.attribute("xmin").toFloat();
     182    float xmax = dom.attribute("xmax").toFloat();
     183    float ymin = dom.attribute("ymin").toFloat();
     184    float ymax = dom.attribute("ymax").toFloat();
     185    QString x_name = dom.attribute("x_name");
     186    QString y_name = dom.attribute("y_name");
     187    QString data_type = dom.attribute("type");
     188    float start_angle = dom.attribute("start_angle").toFloat();
     189    float end_angle = dom.attribute("end_angle").toFloat();
     190    uint32_t nb_samples = dom.attribute("nb_samples").toUInt();
     191    int enabled = dom.attribute("enabled").toInt();
     192    int period = dom.attribute("period").toInt();
     193    int invert_axis = dom.attribute("invert_axis").toInt();
     194    bool invert_axis_bool;
     195    if (invert_axis == 0) {
     196      invert_axis_bool = false;
     197    } else {
     198      invert_axis_bool = true;
     199    }
     200    if (enabled == 1) {
     201      widget =
     202          new RangeFinderPlot(this, row, col, name, x_name, y_name, xmin, xmax,
     203                              ymin, ymax, start_angle, end_angle, nb_samples,
     204                              data_type, invert_axis, true, period);
     205    } else {
     206      widget =
     207          new RangeFinderPlot(this, row, col, name, x_name, y_name, xmin, xmax,
     208                              ymin, ymax, start_angle, end_angle, nb_samples,
     209                              data_type, invert_axis, false, 100);
     210    }
     211  }
     212  if (type == "Picture") {
     213    int width = dom.attribute("width").toInt();
     214    int height = dom.attribute("height").toInt();
     215    int enabled = dom.attribute("enabled").toInt();
     216    int period = dom.attribute("period").toInt();
     217    if (enabled == 1) {
     218      widget = new Picture(this, row, col, name, width, height, true, period);
     219    } else {
     220      widget = new Picture(this, row, col, name, width, height, false, period);
     221    }
     222  }
     223  if (type == "Map") {
     224    int period = dom.attribute("period").toInt();
     225    int enabled = dom.attribute("enabled").toInt();
     226    int i = 0;
     227    QList<QtMobility::QGeoCoordinate> coordinates;
     228    while (dom.hasAttribute("lat" + QString::number(i))) {
     229      double latitude = dom.attribute("lat" + QString::number(i)).toDouble();
     230      double longitude = dom.attribute("long" + QString::number(i)).toDouble();
     231      double alt = dom.attribute("alt" + QString::number(i)).toDouble();
     232      QtMobility::QGeoCoordinate coordinate =
     233          QtMobility::QGeoCoordinate(latitude, longitude, alt);
     234      coordinates.append(coordinate);
     235      i++;
     236    }
     237
     238    if (enabled == 1) {
     239      widget = new Map(this, row, col, name, coordinates, true, period);
     240    } else {
     241      widget = new Map(this, row, col, name, coordinates, false, period);
     242    }
     243  }
     244  if (type == "TextEdit") {
     245    widget = new TextEdit(this, row, col, name);
     246  }
     247  if (type == "Label") {
     248    widget = new Label(this, row, col, name);
     249  }
     250
     251  if (widget != NULL) {
     252    if (old_name != "") {
     253      widget->RenamedFrom(old_name);
     254    }
     255  }
    245256}
    246257
    247258bool Layout::IsUptodate(void) {
    248     for(int i=0;i<childs->count();i++) {
    249         if(childs->at(i)->IsUptodate()==false) return false;
    250     }
    251     return true;
    252 }
     259  for (int i = 0; i < childs->count(); i++) {
     260    if (childs->at(i)->IsUptodate() == false)
     261      return false;
     262  }
     263  return true;
     264}
Note: See TracChangeset for help on using the changeset viewer.