9#include "ControlHealthMonitorWidget.h" 
   12#include "ControlNet.h" 
   19#include <QGuiApplication> 
   24#include <QProgressBar> 
   27#include <QTableWidgetItem> 
   31#include <QDesktopWidget> 
   33#include <QWidgetAction> 
   36#include <ControlNet.h> 
   37#include <ControlNetVitals.h> 
   38#include <ControlPoint.h> 
   55    connect (m_vitals, SIGNAL(networkChanged()),
 
   58    connect (m_vitals, SIGNAL(
historyEntry(QString, QString, QVariant, QVariant, QString)),
 
   59             this,     SLOT  (
historyEntry(QString, QString, QVariant, QVariant, QString)));
 
 
   75    m_netLabel->setText(
"Control Network: " + m_vitals->
getNetworkId());
 
   76    m_statusLabel->setText(m_vitals->
getStatus());
 
   88    freePercent = ( (int) (freePercent * 100) ) / 100.0;
 
   90    m_pointsFreeProgressbar->setValue(freePercent);
 
   91    m_pointsFreeProgressbar->setFormat(freeFormat);
 
   95    constrainedPercent = ( (int) (constrainedPercent * 100) ) / 100.0;
 
   97    m_pointsConstrainedProgressbar->setValue(constrainedPercent);
 
   98    m_pointsConstrainedProgressbar->setFormat(constrainedFormat);
 
  101    fixedPercent = ( (int) (fixedPercent * 100) ) / 100.0;
 
  103    m_pointsFixedProgressbar->setValue(fixedPercent);
 
  104    m_pointsFixedProgressbar->setFormat(fixedFormat);
 
  108    if (m_vitals->
getStatus() == 
"Broken!") updateStatus(0);
 
  109    else if (m_vitals->
getStatus() == 
"Weak!") updateStatus(1);
 
  110    else if (m_vitals->
getStatus() == 
"Healthy!") updateStatus(2);
 
 
  150  void ControlHealthMonitorWidget::updateStatus(
int code) {
 
  151    QPalette p = m_statusBar->palette();
 
  154        p.setColor(QPalette::Highlight, Qt::red);
 
  155        p.setColor(QPalette::Text, Qt::black);
 
  158        p.setColor(QPalette::Highlight, Qt::yellow);
 
  159        p.setColor(QPalette::Text, Qt::black);
 
  162        p.setColor(QPalette::Highlight, Qt::green);
 
  163        p.setColor(QPalette::Text, Qt::white);
 
  166    m_statusBar->setPalette(p);
 
  176    setWindowTitle(
"Control Net Health Monitor");
 
  179    QFont fontBig(
"Arial", 18, QFont::Bold);
 
  180    QFont fontNormal(
"Arial", 14);
 
  181    QFont searchFont(
"Seqoe UI Symbol", 12);
 
  184    QVBoxLayout *gridLayout = 
new QVBoxLayout;
 
  185    gridLayout->setAlignment(Qt::AlignTop);
 
  186    gridLayout->setSpacing(5);
 
  187    setLayout(gridLayout);
 
  190    QLabel *titleLabel = 
new QLabel(
"Control Net Health Monitor");
 
  191    titleLabel->setFont(fontBig);
 
  192    titleLabel->setAlignment(Qt::AlignTop);
 
  195    QHBoxLayout *netLayout = 
new QHBoxLayout;
 
  196    netLayout->setAlignment(Qt::AlignLeft);
 
  198    m_netLabel = 
new QLabel(
"Control Network:");
 
  199    m_netLabel->setFont(fontNormal);
 
  200    m_netLabel->setAlignment(Qt::AlignTop | Qt::AlignLeft);
 
  201    gridLayout->addWidget(titleLabel);
 
  203    netLayout->addWidget(m_netLabel);
 
  204    netWidget->setLayout(netLayout);
 
  206    gridLayout->addWidget(netWidget);
 
  210    QHBoxLayout *netStatsLayout = 
new QHBoxLayout;
 
  211    netStatsLayout->setAlignment(Qt::AlignLeft);
 
  212    netStatsLayout->setSpacing(25);
 
  213    m_numImagesLabel   = 
new QLabel(
"Images:");
 
  214    m_numPointsLabel   = 
new QLabel(
"Points:");
 
  215    m_numMeasuresLabel = 
new QLabel(
"Measures:");
 
  217    netStatsLayout->addWidget(m_numImagesLabel);
 
  218    netStatsLayout->addWidget(m_numPointsLabel);
 
  219    netStatsLayout->addWidget(m_numMeasuresLabel);
 
  221    stats->setLayout(netStatsLayout);
 
  222    gridLayout->addWidget(stats);
 
  226    QPalette p = m_statusBar->palette();
 
  227    p.setColor(QPalette::Highlight, Qt::green);
 
  228    p.setColor(QPalette::Text, Qt::red);
 
  229    m_statusBar->setPalette(p);
 
  230    m_statusBar->setRange(0, 0);
 
  232    m_statusBar->setFormat(
"Loading...");
 
  233    gridLayout->addWidget(m_statusBar);
 
  235    m_lastModLabel = 
new QLabel(
"Last Modification:");
 
  236    gridLayout->addWidget(m_lastModLabel);
 
  239    line->setFrameShape(QFrame::HLine);
 
  240    line->setFrameShadow(QFrame::Sunken);
 
  241    gridLayout->addSpacing(15);
 
  243    gridLayout->addWidget(line);
 
  244    gridLayout->addSpacing(15);
 
  247    QTabWidget *tabs = 
new QTabWidget();
 
  249    QWidget *overviewTab = createOverviewTab();
 
  250    QWidget *imagesTab = createImagesTab();
 
  251    QWidget *pointsTab = createPointsTab();
 
  254    tabs->insertTab(0, overviewTab, 
"Overview");
 
  255    tabs->insertTab(1, imagesTab,   
"Images");
 
  256    tabs->insertTab(2, pointsTab,   
"Points");
 
  259    gridLayout->addWidget(tabs);
 
 
  268    m_historyTable           = NULL;
 
  269    m_imagesHullValue        = NULL;
 
  270    m_imagesMeasuresValue    = NULL;
 
  271    m_imagesShowingLabel     = NULL;
 
  272    m_imagesTable            = NULL;
 
  273    m_lastModLabel           = NULL;
 
  274    m_numImagesLabel         = NULL;
 
  275    m_numMeasuresLabel       = NULL;
 
  276    m_numPointsLabel         = NULL;
 
  278    m_pointsEditLockedLabel  = NULL;
 
  279    m_pointsFewMeasuresLabel = NULL;
 
  280    m_pointsIgnoredLabel     = NULL;
 
  281    m_pointsShowingLabel     = NULL;
 
  282    m_pointsTable            = NULL;
 
  284    m_statusDetails          = NULL;
 
  285    m_statusLabel            = NULL;
 
 
  294  QWidget* ControlHealthMonitorWidget::createOverviewTab() {
 
  298    QVBoxLayout *overviewLayout = 
new QVBoxLayout;
 
  299    overviewLayout->setAlignment(Qt::AlignTop);
 
  300    overviewLayout->setSpacing(5);
 
  302    QFont fontBig(
"Arial", 16, QFont::Bold);
 
  303    QFont fontNormal(
"Arial", 14);
 
  304    QFont fontSmall(
"Arial", 12);
 
  306    m_statusLabel = 
new QLabel(
"Healthy!");
 
  307    m_statusLabel->setFont(fontBig);
 
  308    m_statusLabel->setAlignment(Qt::AlignTop | Qt::AlignLeft);
 
  310    m_statusDetails = 
new QLabel(
"Your network is healthy.");
 
  311    m_statusDetails->setFont(fontNormal);
 
  312    m_statusDetails->setAlignment(Qt::AlignTop | Qt::AlignLeft);
 
  314    m_statusDetails->setFont(fontNormal);
 
  315    m_statusDetails->setAlignment(Qt::AlignTop | Qt::AlignLeft);
 
  317    overviewLayout->addWidget(m_statusLabel);
 
  318    overviewLayout->addWidget(m_statusDetails);
 
  319    overviewLayout->addSpacing(50);
 
  321    QLabel *modLabel = 
new QLabel(
"Modification History");
 
  322    modLabel->setFont(fontSmall);
 
  323    overviewLayout->addWidget(modLabel);
 
  326    headers.append(
"Action");
 
  327    headers.append(
"Id");
 
  328    headers.append(
"Old Value");
 
  329    headers.append(
"New Value");
 
  330    headers.append(
"Timestamp");
 
  332    m_historyTable = 
new QTableWidget();
 
  333    m_historyTable->setColumnCount(5);
 
  334    m_historyTable->setHorizontalHeaderLabels(headers);
 
  335    m_historyTable->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
 
  336    m_historyTable->horizontalHeader()->setStretchLastSection(
true);
 
  337    m_historyTable->verticalHeader()->setVisible(
false);
 
  338    m_historyTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
 
  339    m_historyTable->setSelectionBehavior(QAbstractItemView::SelectRows);
 
  340    m_historyTable->setSelectionMode(QAbstractItemView::SingleSelection);
 
  341    m_historyTable->setGeometry(QGuiApplication::primaryScreen()->availableGeometry());
 
  343    overviewLayout->addWidget(m_historyTable);
 
  344    overview->setLayout(overviewLayout);
 
  354  QWidget* ControlHealthMonitorWidget::createImagesTab() {
 
  355    QFont fontSmall(
"Arial", 12);
 
  356    QFont fontMedium(
"Arial", 14);
 
  360    QVBoxLayout *imagesLayout = 
new QVBoxLayout;
 
  361    imagesLayout->setAlignment(Qt::AlignTop);
 
  362    imagesLayout->setSpacing(15);
 
  363    imagesLayout->addSpacing(10);
 
  366    QGridLayout *tempLayout = 
new QGridLayout;
 
  369    QLabel *threeMeasure = 
new QLabel(
"Less than 3 valid Measures:");
 
  370    m_imagesMeasuresValue = 
new QLabel(
"");
 
  372    QLabel *withoutMeasures = 
new QLabel(
"Exceeding convex hull tolerance:");
 
  373    m_imagesHullValue = 
new QLabel(
"");
 
  376    m_imagesMeasuresValue->setFont(fontSmall);
 
  377    threeMeasure->setFont(fontSmall);
 
  378    withoutMeasures->setFont(fontSmall);
 
  379    m_imagesHullValue->setFont(fontSmall);
 
  382    QPushButton *button = 
new QPushButton(
"View");
 
  383    QPushButton *button2 = 
new QPushButton(
"View");
 
  385    connect(button,  SIGNAL(clicked()), 
this, SLOT(viewImageFewMeasures()));
 
  386    connect(button2, SIGNAL(clicked()), 
this, SLOT(viewImageHullTolerance()));
 
  389    tempLayout->addWidget(threeMeasure, 0, 0);
 
  390    tempLayout->addWidget(m_imagesMeasuresValue, 0, 1);
 
  391    tempLayout->addWidget(button, 0, 2);
 
  393    tempLayout->addWidget(withoutMeasures, 1, 0);
 
  394    tempLayout->addWidget(m_imagesHullValue, 1, 1);
 
  395    tempLayout->addWidget(button2, 1, 2);
 
  397    temp->setLayout(tempLayout);
 
  398    imagesLayout->addWidget(temp);
 
  401    m_imagesTable = 
new QTableWidget();
 
  403    connect(m_imagesTable, SIGNAL(itemDoubleClicked(QTableWidgetItem *)),
 
  408    headers.append(
"Cube Serial");
 
  410    m_imagesTable->setColumnCount(2);
 
  411    m_imagesTable->setHorizontalHeaderLabels(headers);
 
  412    m_imagesTable->horizontalHeader()->setStretchLastSection(
true);
 
  413    m_imagesTable->verticalHeader()->setVisible(
false);
 
  414    m_imagesTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
 
  415    m_imagesTable->setSelectionBehavior(QAbstractItemView::SelectRows);
 
  416    m_imagesTable->setSelectionMode(QAbstractItemView::ExtendedSelection);
 
  418    m_imagesTable->setShowGrid(
true);
 
  419    m_imagesTable->setGeometry(QGuiApplication::primaryScreen()->availableGeometry());
 
  420    m_imagesTable->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
 
  422    imagesLayout->addSpacing(30);
 
  424    m_imagesShowingLabel = 
new QLabel(
"");
 
  425    m_imagesShowingLabel->setFont(fontMedium);
 
  427    QPushButton *viewAllButton = 
new QPushButton(
"View All");
 
  428    connect(viewAllButton, SIGNAL(clicked()),
 
  429            this, SLOT(viewImageAll()));
 
  431    QGridLayout *showingLayout = 
new QGridLayout;
 
  434    showingLayout->addWidget(m_imagesShowingLabel, 0, 0, 1, 2);
 
  435    showingLayout->addWidget(viewAllButton, 0, 2);
 
  436    showingWidget->setLayout(showingLayout);
 
  438    imagesLayout->addWidget(showingWidget);
 
  439    imagesLayout->addWidget(m_imagesTable);
 
  441    imagesTab->setLayout(imagesLayout);
 
  450  QWidget* ControlHealthMonitorWidget::createPointsTab() {
 
  452    QFont fontSmall(
"Arial", 12);
 
  453    QFont fontMedium(
"Arial", 14);
 
  454    QFont searchFont(
"Seqoe UI Symbol", 12);
 
  458    QVBoxLayout *pointsLayout = 
new QVBoxLayout;
 
  459    pointsLayout->setAlignment(Qt::AlignTop);
 
  460    pointsLayout->setSpacing(15);
 
  461    pointsLayout->addSpacing(10);
 
  464    QGridLayout *viewLayout = 
new QGridLayout;
 
  467    QLabel *pointsIgnored = 
new QLabel(
"Points Ignored:");
 
  468    m_pointsIgnoredLabel = 
new QLabel(
"");
 
  470    QLabel *freePoints = 
new QLabel(
"Points Free:");
 
  471    m_pointsFreeLabel = 
new QLabel(
"");
 
  473    QPalette p = m_pointsFreeProgressbar->palette();
 
  474    p.setColor(QPalette::Highlight, Qt::blue);
 
  475    p.setColor(QPalette::Text, Qt::black);
 
  476    m_pointsFreeProgressbar->setPalette(p);
 
  477    m_pointsFreeProgressbar->setRange(0, 100);
 
  479    QLabel *constrainedPoints = 
new QLabel(
"Points Constrained:");
 
  480    m_pointsConstrainedLabel = 
new QLabel(
"");
 
  482    m_pointsConstrainedProgressbar->setPalette(p);
 
  483    m_pointsConstrainedProgressbar->setRange(0, 100);
 
  485    QLabel *fixedPoints = 
new QLabel(
"Points Fixed:");
 
  486    m_pointsFixedLabel = 
new QLabel(
"");
 
  488    m_pointsFixedProgressbar->setPalette(p);
 
  489    m_pointsFixedProgressbar->setRange(0, 100);
 
  491    QLabel *pointsLocked = 
new QLabel(
"Points Edit Locked:");
 
  492    m_pointsEditLockedLabel = 
new QLabel(
"");
 
  494    QLabel *pointsMeasure = 
new QLabel(
"Less than 3 valid Measures:");
 
  495    m_pointsFewMeasuresLabel = 
new QLabel(
"");
 
  498    pointsLocked->setFont(fontSmall);
 
  499    m_pointsEditLockedLabel->setFont(fontSmall);
 
  500    pointsMeasure->setFont(fontSmall);
 
  501    m_pointsFewMeasuresLabel->setFont(fontSmall);
 
  502    freePoints->setFont(fontSmall);
 
  503    m_pointsFreeLabel->setFont(fontSmall);
 
  504    fixedPoints->setFont(fontSmall);
 
  505    constrainedPoints->setFont(fontSmall);
 
  506    pointsIgnored->setFont(fontSmall);
 
  507    m_pointsFixedLabel->setFont(fontSmall);
 
  508    m_pointsConstrainedLabel->setFont(fontSmall);
 
  509    m_pointsIgnoredLabel->setFont(fontSmall);
 
  512    QPushButton *viewIgnoredButton     = 
new QPushButton(
"View");
 
  513    QPushButton *viewLockedButton      = 
new QPushButton(
"View");
 
  514    QPushButton *viewMeasureButton     = 
new QPushButton(
"View");
 
  515    QPushButton *viewFreePoints        = 
new QPushButton(
"View");
 
  516    QPushButton *viewFixedPoints       = 
new QPushButton(
"View");
 
  517    QPushButton *viewConstrainedPoints = 
new QPushButton(
"View");
 
  520    connect(viewIgnoredButton, SIGNAL(clicked()), 
this, SLOT(viewPointIgnored()));
 
  521    connect(viewLockedButton,  SIGNAL(clicked()), 
this, SLOT(viewPointEditLocked()));
 
  522    connect(viewMeasureButton, SIGNAL(clicked()), 
this, SLOT(viewPointFewMeasures()));
 
  523    connect(viewFreePoints,    SIGNAL(clicked()), 
this, SLOT(viewPointFree()));
 
  524    connect(viewFixedPoints,   SIGNAL(clicked()), 
this, SLOT(viewPointFixed()));
 
  525    connect(viewConstrainedPoints, SIGNAL(clicked()), 
this, SLOT(viewPointConstrained()));
 
  528    viewLayout->addWidget(freePoints, 0, 0);
 
  529    viewLayout->addWidget(m_pointsFreeProgressbar, 0, 1);
 
  530    viewLayout->addWidget(viewFreePoints, 0, 2);
 
  532    viewLayout->addWidget(fixedPoints, 1, 0);
 
  533    viewLayout->addWidget(m_pointsFixedProgressbar, 1, 1);
 
  534    viewLayout->addWidget(viewFixedPoints, 1, 2);
 
  536    viewLayout->addWidget(constrainedPoints, 2, 0);
 
  537    viewLayout->addWidget(m_pointsConstrainedProgressbar, 2, 1);
 
  538    viewLayout->addWidget(viewConstrainedPoints, 2, 2);
 
  540    viewLayout->addWidget(pointsIgnored, 3, 0);
 
  541    viewLayout->addWidget(m_pointsIgnoredLabel, 3, 1);
 
  542    viewLayout->addWidget(viewIgnoredButton, 3, 2);
 
  544    viewLayout->addWidget(pointsLocked, 4, 0);
 
  545    viewLayout->addWidget(m_pointsEditLockedLabel, 4, 1);
 
  546    viewLayout->addWidget(viewLockedButton, 4, 2);
 
  548    viewLayout->addWidget(pointsMeasure, 5, 0);
 
  549    viewLayout->addWidget(m_pointsFewMeasuresLabel, 5, 1);
 
  550    viewLayout->addWidget(viewMeasureButton, 5, 2);
 
  552    viewWidget->setLayout(viewLayout);
 
  553    pointsLayout->addWidget(viewWidget);
 
  556    m_pointsTable = 
new QTableWidget();
 
  559    headers.append(
"Point ID");
 
  560    headers.append(
"Type");
 
  561    headers.append(
"Ignored");
 
  562    headers.append(
"Rejected");
 
  563    headers.append(
"Edit Locked");
 
  565    m_pointsTable->setColumnCount(6);
 
  566    m_pointsTable->setHorizontalHeaderLabels(headers);
 
  567    m_pointsTable->horizontalHeader()->setStretchLastSection(
true);
 
  568    m_pointsTable->verticalHeader()->setVisible(
false);
 
  569    m_pointsTable->setEditTriggers(QAbstractItemView::NoEditTriggers);
 
  570    m_pointsTable->setSelectionBehavior(QAbstractItemView::SelectRows);
 
  571    m_pointsTable->setSelectionMode(QAbstractItemView::SingleSelection);
 
  572    m_pointsTable->setShowGrid(
true);
 
  573    m_pointsTable->setGeometry(QGuiApplication::primaryScreen()->availableGeometry());
 
  574    m_pointsTable->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
 
  576    connect(m_pointsTable, SIGNAL(itemDoubleClicked(QTableWidgetItem *)),
 
  579    m_pointsShowingLabel = 
new QLabel(
"");
 
  580    m_pointsShowingLabel->setFont(fontMedium);
 
  581    QPushButton *showAllButton = 
new QPushButton(
"View All");
 
  583    QGridLayout *showLayout = 
new QGridLayout;
 
  586    connect(showAllButton, SIGNAL(clicked()),
 
  587            this, SLOT(viewPointAll()));
 
  589    showLayout->addWidget(m_pointsShowingLabel, 0, 0, 1, 2);
 
  590    showLayout->addWidget(showAllButton, 0, 2);
 
  591    showWidget->setLayout(showLayout);
 
  593    pointsLayout->addSpacing(30);
 
  594    pointsLayout->addWidget(showWidget);
 
  595    pointsLayout->addWidget(m_pointsTable);
 
  597    pointsTab->setLayout(pointsLayout);
 
  611    QList<QString> serials;
 
  612    QModelIndexList rows = m_imagesTable->selectionModel()->selectedRows(1);
 
  613    foreach (QModelIndex index, rows) {
 
  614      serials.append(index.data().toString());
 
  616    emit openImageEditor(serials);
 
 
  630    QModelIndex pointId = m_pointsTable->selectionModel()->selectedIndexes()[1];
 
  632    emit openPointEditor(point);
 
 
  649                                                QVariant oldValue, QVariant newValue,
 
  652    m_lastModLabel->setText(
"Last Modification: " + timeStamp);
 
  654    m_historyTable->insertRow(0);
 
  655    m_historyTable->setItem(0, 0, 
new QTableWidgetItem(entry));
 
  656    m_historyTable->setItem(0, 1, 
new QTableWidgetItem(
id));
 
  657    m_historyTable->setItem(0, 2, 
new QTableWidgetItem(oldValue.toString()));
 
  658    m_historyTable->setItem(0, 3, 
new QTableWidgetItem(newValue.toString()));
 
  659    m_historyTable->setItem(0, 4, 
new QTableWidgetItem(timeStamp));
 
 
  667  QWidget* ControlHealthMonitorWidget::createGraphTab() {
 
  670    QVBoxLayout *graphLayout = 
new QVBoxLayout;
 
  671    graphLayout->setAlignment(Qt::AlignTop);
 
  672    graphLayout->setSpacing(5);
 
  685    graph->setLayout(graphLayout);
 
  695  void ControlHealthMonitorWidget::updateImageTable(QList<QString> serials) {
 
  696     m_imagesTable->setRowCount(0);
 
  697     for (
int i = 0; i < serials.size(); i++) {
 
  698       m_imagesTable->insertRow(i);
 
  699       m_imagesTable->setItem(i, 0, 
new QTableWidgetItem(
toString(i + 1)));
 
  700       m_imagesTable->setItem(i, 1, 
new QTableWidgetItem(serials.at(i)));
 
  709  void ControlHealthMonitorWidget::updatePointTable(QList<ControlPoint*> points) {
 
  710    m_pointsTable->setRowCount(0);
 
  711    for (
int i = 0; i < points.size(); i++) {
 
  712      ControlPoint *point = points.at(i);
 
  713      m_pointsTable->insertRow(i);
 
  714      m_pointsTable->setItem(i, 0, 
new QTableWidgetItem(
toString(i + 1)));
 
  715      m_pointsTable->setItem(i, 1, 
new QTableWidgetItem(point->GetId()));
 
  716      m_pointsTable->setItem(i, 2, 
new QTableWidgetItem(point->GetPointTypeString()));
 
  717      m_pointsTable->setItem(i, 3, 
new QTableWidgetItem(
toString(point->IsIgnored())));
 
  718      m_pointsTable->setItem(i, 4, 
new QTableWidgetItem(
toString(point->IsRejected())));
 
  719      m_pointsTable->setItem(i, 5, 
new QTableWidgetItem(
toString(point->IsEditLocked())));
 
  728  void ControlHealthMonitorWidget::viewPointAll() {
 
  730    m_pointsShowingLabel->setText(
"Showing: All Points <sup>" +
 
  740  void ControlHealthMonitorWidget::viewPointIgnored() {
 
  742    m_pointsShowingLabel->setText(
"Showing: Ignored Points <sup>" +
 
  752  void ControlHealthMonitorWidget::viewPointFree() {
 
  754    m_pointsShowingLabel->setText(
"Showing: Free Points <sup>" +
 
  764  void ControlHealthMonitorWidget::viewPointFixed() {
 
  766    m_pointsShowingLabel->setText(
"Showing: Fixed Points <sup>" +
 
  776  void ControlHealthMonitorWidget::viewPointConstrained() {
 
  778    m_pointsShowingLabel->setText(
"Showing: Constrained Points <sup>" +
 
  788  void ControlHealthMonitorWidget::viewPointEditLocked() {
 
  790    m_pointsShowingLabel->setText(
"Showing: Locked Points <sup>" +
 
  801  void ControlHealthMonitorWidget::viewPointFewMeasures() {
 
  803    m_pointsShowingLabel->setText(
"Showing: Points with less than 3 Measures <sup>" +
 
  813  void ControlHealthMonitorWidget::viewImageAll() {
 
  815    m_imagesShowingLabel->setText(
"Showing: All Images <sup>" +
 
  825  void ControlHealthMonitorWidget::viewImageFewMeasures() {
 
  827    m_imagesShowingLabel->setText(
"Showing: Images with less than 3 Measures <sup>" +
 
  837  void ControlHealthMonitorWidget::viewImageHullTolerance() {
 
  839    m_imagesShowingLabel->setText(
"Showing: Images below a hull tolerance of 75% <sup>" +
 
  850    delete m_historyTable;
 
  851    delete m_imagesHullValue;
 
  852    delete m_imagesMeasuresValue;
 
  853    delete m_imagesShowingLabel;
 
  854    delete m_imagesTable;
 
  855    delete m_lastModLabel;
 
  856    delete m_numImagesLabel;
 
  857    delete m_numMeasuresLabel;
 
  858    delete m_numPointsLabel;
 
  860    delete m_pointsEditLockedLabel;
 
  861    delete m_pointsFewMeasuresLabel;
 
  862    delete m_pointsIgnoredLabel;
 
  863    delete m_pointsShowingLabel;
 
  864    delete m_pointsTable;
 
  866    delete m_statusDetails;
 
  867    delete m_statusLabel;
 
  870    m_historyTable           = NULL;
 
  871    m_imagesHullValue        = NULL;
 
  872    m_imagesMeasuresValue    = NULL;
 
  873    m_imagesShowingLabel     = NULL;
 
  874    m_imagesTable            = NULL;
 
  875    m_lastModLabel           = NULL;
 
  876    m_numImagesLabel         = NULL;
 
  877    m_numMeasuresLabel       = NULL;
 
  878    m_numPointsLabel         = NULL;
 
  880    m_pointsEditLockedLabel  = NULL;
 
  881    m_pointsFewMeasuresLabel = NULL;
 
  882    m_pointsIgnoredLabel     = NULL;
 
  883    m_pointsShowingLabel     = NULL;
 
  884    m_pointsTable            = NULL;
 
  886    m_statusDetails          = NULL;
 
  887    m_statusLabel            = NULL;
 
 
QList< QString > getCubeSerials()
This method is designed to return all cube serials present in the Control Network.
 
QList< ControlPoint * > getAllPoints()
This method is designed to return all points in the Control Network.
 
QList< ControlPoint * > getFixedPoints()
This method is designed to return all fixed points in the Control Network.
 
QString getNetworkId()
This method is designed to return networkId of the observed Control Network.
 
ControlPoint * getPoint(QString id)
This method is designed to return the Control Point with the associated point id from the Control Net...
 
int numFixedPoints()
This method is designed to return the number of fixed points in the Control Network.
 
QString getStatus()
This method is designed to return the current status of the network.
 
int numIgnoredPoints()
This method is designed to return the number of ignored points in the Control Network.
 
int numLockedPoints()
This method is designed to return the number of edit locked points in the Control Network.
 
int numPoints()
This method is designed to return the number of points in the Control Network.
 
QString getStatusDetails()
This method is designed to return details for the status of the network.
 
QList< QString > getImagesBelowHullTolerance(int num=75)
This method is designed to return a QList containing cube serials for all images that fall below a co...
 
int numImagesBelowMeasureThreshold(int num=3)
This method is designed to return the number of images that fall below a measure threshold.
 
int numImages()
This method is designed to return the number of images in the Control Network.
 
int numFreePoints()
This method is designed to return the number of free points in the Control Network.
 
int numPointsBelowMeasureThreshold(int num=3)
This method is designed to return the number of points that fall below a measure threshold.
 
int numImagesBelowHullTolerance(int tolerance=75)
This method is designed to return the number of images that fall below a hull tolerance.
 
QList< QString > getImagesBelowMeasureThreshold(int num=3)
This method is designed to return a QList containing cube serials for all images that fall below a me...
 
QList< ControlPoint * > getIgnoredPoints()
This method is designed to return all ignored points in the Control Network.
 
QList< ControlPoint * > getLockedPoints()
This method is designed to return all edit locked points in the Control Network.
 
QList< ControlPoint * > getFreePoints()
This method is designed to return all free points in the Control Network.
 
QList< ControlPoint * > getConstrainedPoints()
This method is designed to return all constrained points in the Control Network.
 
QList< ControlPoint * > getPointsBelowMeasureThreshold(int num=3)
This method is designed to return all points that fall below a measure threshold.
 
int numConstrainedPoints()
This method is designed to return the number of constrained points in the Control Network.
 
int numMeasures()
This method is designed to return the number of measures in the Control Network.
 
This is free and unencumbered software released into the public domain.
 
QString toString(bool boolToConvert)
Global function to convert a boolean to a string.