103    m_listCombo->addItem(
"Points");
 
  104    m_listCombo->addItem(
"Cubes");
 
  106    m_listBox = 
new QListWidget();
 
  107    m_listBox->setSelectionMode(QAbstractItemView::ExtendedSelection);
 
  110    QLabel *filterLabel = 
new QLabel(
"Filters");
 
  111    filterLabel->setAlignment(Qt::AlignHCenter);
 
  112    m_filterStack = 
new QStackedWidget();
 
  114    connect(m_listCombo, SIGNAL(activated(
int)),
 
  115        m_filterStack, SLOT(setCurrentIndex(
int)));
 
  116    connect(m_listCombo, SIGNAL(activated(
int)),
 
  118    connect(m_listCombo, SIGNAL(activated(
int)),
 
  122    m_filterCountLabel = 
new QLabel(
"Filter Count: ");
 
  125    QPushButton *
load = 
new QPushButton(
"&View Cube(s)");
 
  126    load->setAutoDefault(
false);
 
  127    load->setToolTip(
"Open Selected Images");
 
  128    load->setWhatsThis(
"<b>Function: </b> Opens all selected images, or images \ 
  129                        that are associated with the given point or overlap.  \ 
  130                        <p><b>Hint: </b> You can select more than one item in \ 
  131                        the list by using the shift or control key.</p>");
 
  132    connect(
load, SIGNAL(clicked()),
 
  134    m_tie = 
new QPushButton(
"&Modify Point");
 
  135    m_tie->setAutoDefault(
true);
 
  136    m_tie->setToolTip(
"Modify Selected Point");
 
  137    m_tie->setWhatsThis(
"<b>Function: </b> Opens the tie tool to modify the \ 
  138                         selected point from the list.  This option is only \ 
  139                         available when the nav tool is in point mode");
 
  140    connect(m_tie, SIGNAL(clicked()),
 
  143    m_multiIgnore = 
new QPushButton(
"&Ignore Points");
 
  144    m_multiIgnore->setAutoDefault(
false);
 
  145    m_multiIgnore->setToolTip(
"Set selected points to Ignore");
 
  146    m_multiIgnore->setWhatsThis(
"<b>Function: </b> Sets the selected points \ 
  147                               Ignore = True.  You will not be able to preview \ 
  148                               in the Point Editor before their Ignore switch \ 
  150                               <p><b>Hint: </b> You can select more than one \ 
  151                               item in the list by using the shift or control \ 
  153    connect(m_multiIgnore, SIGNAL(clicked()),
 
  156    m_multiDelete = 
new QPushButton(
"&Delete Points");
 
  157    m_multiDelete->setAutoDefault(
false);
 
  158    m_multiIgnore->setToolTip(
"Set selected points to Delete");
 
  159    m_multiIgnore->setWhatsThis(
"<b>Function: </b> Delete the selected points \ 
  160                               from control network.  You will not be able to \ 
  161                               preview in the Point Editor before they are \ 
  163                               <p><b>Hint: </b> You can select more than one \ 
  164                               item in the list by using the shift or control \ 
  166    connect(m_multiDelete, SIGNAL(clicked()),
 
  169    m_setApriori = 
new QPushButton(
"&Set Apriori/Sigmas");
 
  170    m_setApriori->setAutoDefault(
false);
 
  171    m_setApriori->setToolTip(
"Set selected points apriori/sigmas");
 
  172    m_setApriori->setWhatsThis(
"<b>Function: </b> Set the apriori points \ 
  174                               <p><b>Hint: </b> You can select more than one \ 
  175                               item in the list by using the shift or control \ 
  177    connect(m_setApriori, SIGNAL(clicked()), 
this, SLOT(
aprioriDialog()));
 
  179    m_filter = 
new QPushButton(
"&Filter");
 
  180    m_filter->setAutoDefault(
false);
 
  181    m_filter->setToolTip(
"Filter Current List");
 
  182    m_filter->setWhatsThis(
"<b>Function: </b> Filters the current list by user \ 
  183                            specifications made in the selected filter. \ 
  184                            <p><b>Note: </b> Any filter options selected in a \ 
  185                            filter that is not showing will be ignored.</p>");
 
  186    connect(m_filter, SIGNAL(clicked()),
 
  189    QPushButton *reset = 
new QPushButton(
"&Show All");
 
  190    reset->setAutoDefault(
false);
 
  191    reset->setToolTip(
"Reset the Current List to show all the values in the list");
 
  192    reset->setWhatsThis(
"<b>Function: </b> Resets the list of points, \ 
  193                         overlaps, or images to the complete initial list.  \ 
  194                         Any filtering that has been done will be lost.");
 
  195    connect(reset, SIGNAL(clicked()),
 
  197    connect(reset, SIGNAL(clicked()),
 
  201    QHBoxLayout *layout = 
new QHBoxLayout();
 
  202    layout->addWidget(
load);
 
  203    layout->addWidget(m_tie);
 
  204    layout->addWidget(m_multiIgnore);
 
  205    layout->addWidget(m_multiDelete);
 
  206    layout->addWidget(m_setApriori);
 
  207    layout->addWidget(m_filter);
 
  208    layout->addWidget(reset);
 
  212    m_filterStack->adjustSize();
 
  215    m_navDialog = 
new QDialog(parent);
 
  216    m_navDialog->setWindowTitle(
"Control Network Navigator");
 
  219    QGridLayout *gridLayout = 
new QGridLayout();
 
  220    gridLayout->addWidget(m_listCombo, 0, 0);
 
  221    gridLayout->addWidget(filterLabel, 0, 1);
 
  222    gridLayout->addWidget(m_listBox, 1, 0);
 
  223    gridLayout->addWidget(m_filterStack, 1, 1);
 
  224    gridLayout->addWidget(m_filterCountLabel, 2, 0);
 
  225    gridLayout->addLayout(layout, 3, 0, 1, 2);
 
  226    m_navDialog->setLayout(gridLayout);
 
  228    QString settingsFileName =
 
  229        FileName(
"$HOME/.Isis/" + QApplication::applicationName() + 
"/NavTool.config").
expanded();
 
  230    QSettings settings(settingsFileName, QSettings::NativeFormat);
 
  231    m_navDialog->resize(settings.value(
"size").toSize());
 
  235    m_navDialog->setVisible(
true);
 
  237    QPoint defaultPos = parent->pos() +
 
  238                        QPoint(parent->size().width() / 2,
 
  239                               parent->size().height() / 2);
 
  240    defaultPos -= QPoint(m_navDialog->size().width() / 2,
 
  241                         m_navDialog->size().height() / 2);
 
  242    m_navDialog->move(settings.value(
"pos", defaultPos).toPoint());
 
 
  282    QTabWidget *pointFilters = 
new QTabWidget();
 
  285    connect(jigsawErrorFilter, SIGNAL(filteredListModified()),
 
  287    pointFilters->insertTab(JigsawErrors, jigsawErrorFilter, 
"&Jigsaw Errors");
 
  288    pointFilters->setTabToolTip(JigsawErrors, 
"Filter Points by Jigsaw Error");
 
  289    pointFilters->setTabWhatsThis(JigsawErrors,
 
  290        "<b>Function: </b> Filter points list by \ 
  291                                     the bundle adjust error value at each  \ 
  292                                     point.  You can filter for points that \ 
  293                                     have an error greater than, or less than \ 
  294                                     the entered value.");
 
  297    connect(registrationErrorFilter, SIGNAL(filteredListModified()),
 
  299    pointFilters->insertTab(RegistrationErrors, registrationErrorFilter,
 
  300                            "&Registration Errors");
 
  301    pointFilters->setTabToolTip(RegistrationErrors,
 
  302                                "Filter Points by Registration Error");
 
  303    pointFilters->setTabWhatsThis(RegistrationErrors,
 
  304        "<b>Function: </b> Filter points list by \ 
  305                                     the registration pixel shift value at each  \ 
  306                                     point.  You can filter for points that \ 
  307                                     have an error greater than, or less than \ 
  308                                     the entered value.  The maximum for all \ 
  309                                     measures in the point is used");
 
  312    connect(ptIdFilter, SIGNAL(filteredListModified()),
 
  314    pointFilters->insertTab(Id, ptIdFilter, 
"&Point ID");
 
  315    pointFilters->setTabToolTip(Id, 
"Filter Points by PointID");
 
  318    connect(ptImageFilter, SIGNAL(filteredListModified()),
 
  320    pointFilters->insertTab(NumberImages, ptImageFilter, 
"&Number of Measures");
 
  321    pointFilters->setTabToolTip(NumberImages, 
"Filter Points by Number of Images");
 
  322    pointFilters->setTabWhatsThis(NumberImages, 
"<b>Function: </b> Filter points list \ 
  323                                     by the number of images that are in  \ 
  324                                     each point. You can filter for         \ 
  325                                     points that have more than the given   \ 
  326                                     number of images, or less than the \ 
  327                                     given number of images.  Points with   \ 
  328                                     the exact number of images specified \ 
  329                                     will not be included in the filtered \ 
  332    connect(typeFilter, SIGNAL(filteredListModified()),
 
  334    pointFilters->insertTab(Type, typeFilter, 
"Point Properties");
 
  335    pointFilters->setTabToolTip(Type, 
"Filter Points by Listed Properties");
 
  336    pointFilters->setTabWhatsThis(Type, 
"<b>Function: </b> Filter points list by \ 
  337                                     their Point Type, Ignore status, or Held status properties");
 
  339    connect(rangeFilter, SIGNAL(filteredListModified()),
 
  341    pointFilters->insertTab(LatLonRange, rangeFilter, 
"&Range");
 
  342    pointFilters->setTabToolTip(LatLonRange, 
"Filter Points by Range");
 
  343    pointFilters->setTabWhatsThis(LatLonRange, 
"<b>Function: </b> Filters out points \ 
  344                                     that are within a user set range lat/lon \ 
  347    connect(ptDistFilter, SIGNAL(filteredListModified()),
 
  349    pointFilters->insertTab(Distance, ptDistFilter, 
"Dist&ance");
 
  350    pointFilters->setTabToolTip(Distance, 
"Filter Points by Distance");
 
  351    pointFilters->setTabWhatsThis(Distance,
 
  352        "<b>Function: </b> Filter points list by \ 
  353                                     a user specified maximum distance from \ 
  356    connect(measureFilter, SIGNAL(filteredListModified()),
 
  358    pointFilters->insertTab(MeasureType, measureFilter, 
"Measure Properties");
 
  359    pointFilters->setTabToolTip(MeasureType, 
"Filter Points by Listed Measure Properties");
 
  360    pointFilters->setTabWhatsThis(MeasureType,
 
  361        "<b>Function: </b> Filter points list by \ 
  362                                     the properties of their measures. User may \ 
  363                                     filter by Measure Type or Ignore status. \ 
  364                                     If one or more measure from a point is found to \ 
  365                                     match a selected measure type, and that measure \ 
  366                                     satisfies the ignore status selected, the point \ 
  367                                     will be left in the filtered list.  More \ 
  368                                     than one measure type can be selected. \ 
  369                                     Only one Ignore status may be selected.");
 
  372    connect(goodnessFilter, SIGNAL(filteredListModified()),
 
  374    pointFilters->insertTab(GoodnessOfFit, goodnessFilter, 
"&Goodness of Fit");
 
  375    pointFilters->setTabToolTip(GoodnessOfFit, 
"Filter Points by the Goodness of Fit of its measures");
 
  376    pointFilters->setTabWhatsThis(GoodnessOfFit,
 
  377                                  "<b>Function: </b> Filter points list by \ 
  378                                     the goodness of fit.");
 
  380    connect(cubeNamesFilter, SIGNAL(filteredListModified()),
 
  382    connect(
this, SIGNAL(serialListModified()),
 
  383        cubeNamesFilter, SLOT(createCubeList()));
 
  385    pointFilters->insertTab(CubeName, cubeNamesFilter, 
"&Cube Name(s)");
 
  386    pointFilters->setTabToolTip(CubeName, 
"Filter Points by Cube FileName(s)");
 
  387    pointFilters->setTabWhatsThis(CubeName,
 
  388        "<b>Function: </b> Filter points list by \ 
  389                                     the filenames of cubes. This filter will \ 
  390                                     show all points contained in a single \ 
  391                                     image or all points contained in every \ 
  394    QTabWidget *cubeFilters = 
new QTabWidget();
 
  397    connect(cubeNameFilter, SIGNAL(filteredListModified()),
 
  399    cubeFilters->insertTab(Name, cubeNameFilter, 
"&Cube Name");
 
  400    cubeFilters->setTabToolTip(Name, 
"Filter Images by Cube Name");
 
  403    connect(cubePtsFilter, SIGNAL(filteredListModified()),
 
  405    cubeFilters->insertTab(NumberPoints, cubePtsFilter, 
"&Number of Points");
 
  406    cubeFilters->setTabToolTip(NumberPoints, 
"Filter Images by Number of Points");
 
  407    cubeFilters->setTabWhatsThis(NumberPoints,
 
  408        "<b>Function: </b> Filter images list by \ 
  409                                    the number of points that are in each \ 
  410                                    image. You can filter for images that have \ 
  411                                    more than the given number of points, or \ 
  412                                    less than the given number of point.  \ 
  413                                    Images with the exact number of points \ 
  414                                    specified will not be included in the \ 
  417    connect(cubeDistFilter, SIGNAL(filteredListModified()),
 
  419    cubeFilters->insertTab(PointDistance, cubeDistFilter, 
"Dist&ance");
 
  420    cubeFilters->setTabToolTip(PointDistance, 
"Filter Images by Distance between Points");
 
  421    cubeFilters->setTabWhatsThis(PointDistance,
 
  422        "<b>Function: </b> Filter images list by \ 
  423                                    a user specified distance between points \ 
  424                                    in the image. This may be calculated in \ 
  425                                    meters or by pixel distance.");
 
  428    m_filterStack->addWidget(pointFilters);
 
  429    m_filterStack->addWidget(cubeFilters);
 
  433    QScrollArea *scrollArea = 
new QScrollArea();
 
  438    QVBoxLayout *innerLayout = 
new QVBoxLayout();
 
  439    QLabel *title = 
new QLabel(
"<b>History</b>");
 
  440    innerLayout->addWidget(title);
 
  441    innerLayout->addWidget(scrollArea);
 
  443    m_historyLayout = 
new QVBoxLayout(scrollArea);
 
  444    m_historyLayout->setAlignment(Qt::AlignTop);
 
  446    innerWidget->setLayout(innerLayout);
 
  447    historyWidget->setLayout(m_historyLayout);
 
  448    scrollArea->setWidget(historyWidget);
 
  449    scrollArea->setWidgetResizable(
true);
 
  451    pointFilters->addTab(innerWidget, QString(
"&Activity History") );
 
 
  520    if (m_qnetTool->serialNumberList() == NULL)
 
  524    m_listBox->setCurrentRow(-1);
 
  526    m_filteredPoints.clear();
 
  527    m_filteredImages.clear();
 
  530    int numCp = controlNet()->GetNumPoints();
 
  531    m_filteredPoints.reserve(numCp);
 
  532    for (
int i = 0; i < numCp; i++) {
 
  533      m_filteredPoints.push_back(i);
 
  536    int numSns = m_qnetTool->serialNumberList()->
size();
 
  537    m_filteredImages.reserve(numSns);
 
  538    for (
int i = 0; i < numSns; i++) {
 
  539      m_filteredImages.push_back(i);
 
  543    if (m_listCombo->currentIndex() == Points) {
 
  545      disconnect(m_listBox, SIGNAL(itemDoubleClicked(QListWidgetItem *)),
 
  546          this, SLOT(
load(QListWidgetItem *)));
 
  547      connect(m_listBox, SIGNAL(itemDoubleClicked(QListWidgetItem *)),
 
  548          this, SLOT(
editPoint(QListWidgetItem *)), Qt::UniqueConnection);
 
  550      for (
int i = 0; i < controlNet()->GetNumPoints(); i++) {
 
  551        QString cNetId = (*controlNet())[i]->GetId();
 
  552        QString itemString = cNetId;
 
  553        m_listBox->insertItem(i, itemString);
 
  554        int images = (*controlNet())[i]->GetNumMeasures();
 
  555        m_listBox->item(i)->setToolTip(QString::number(images) + 
" image(s) in point");
 
  560      QString msg = 
"Filter Count: " + QString::number(m_listBox->count()) +
 
  561          " / " + QString::number(controlNet()->GetNumPoints());
 
  562      m_filterCountLabel->setText(msg);
 
  565    else if (m_listCombo->currentIndex() == Cubes) {
 
  566      disconnect(m_listBox, SIGNAL(itemDoubleClicked(QListWidgetItem *)),
 
  567          this, SLOT(
editPoint(QListWidgetItem *)));
 
  568      connect(m_listBox, SIGNAL(itemDoubleClicked(QListWidgetItem *)),
 
  569          this, SLOT(
load(QListWidgetItem *)), Qt::UniqueConnection);
 
  571      for (
int i = 0; i < serialNumberList()->size(); i++) {
 
  573        QString tempFileName = filename.
name();
 
  574        m_listBox->insertItem(i, tempFileName);
 
  576      QString msg = 
"Filter Count: " + QString::number(m_listBox->count()) +
 
  577          " / " + QString::number(serialNumberList()->size());
 
  578      m_filterCountLabel->setText(msg);
 
 
  671    if (serialNumberList() == NULL)
 
  675    m_listBox->setCurrentRow(-1);
 
  679    if (m_listCombo->currentIndex() == Points) {
 
  680      disconnect(m_listBox, SIGNAL(itemDoubleClicked(QListWidgetItem *)),
 
  681          this, SLOT(
load(QListWidgetItem *)));
 
  682      connect(m_listBox, SIGNAL(itemDoubleClicked(QListWidgetItem *)),
 
  683          this, SLOT(
editPoint(QListWidgetItem *)), Qt::UniqueConnection);
 
  685      for (
int i = 0; i < m_filteredPoints.size(); i++) {
 
  686        QString cNetId = (*controlNet())[m_filteredPoints[i]]->GetId();
 
  687        QString itemString = cNetId;
 
  688        m_listBox->insertItem(i, itemString);
 
  689        int images = (*controlNet())[m_filteredPoints[i]]->GetNumMeasures();
 
  690        m_listBox->item(i)->setToolTip(QString::number(images) + 
" image(s) in point");
 
  692      QString msg = 
"Filter Count: " + QString::number(m_listBox->count()) +
 
  693          " / " + QString::number(controlNet()->GetNumPoints());
 
  694      m_filterCountLabel->setText(msg);
 
  698    else if (m_listCombo->currentIndex() == Cubes) {
 
  699      disconnect(m_listBox, SIGNAL(itemDoubleClicked(QListWidgetItem *)),
 
  700          this, SLOT(
editPoint(QListWidgetItem *)));
 
  701      connect(m_listBox, SIGNAL(itemDoubleClicked(QListWidgetItem *)),
 
  702          this, SLOT(
load(QListWidgetItem *)), Qt::UniqueConnection);
 
  703      for (
int i = 0; i < m_filteredImages.size(); i++) {
 
  704        FileName filename = 
FileName(serialNumberList()->fileName(m_filteredImages[i]));
 
  705        QString tempFileName = filename.
name();
 
  706        m_listBox->insertItem(i, tempFileName);
 
  708      QString msg = 
"Filter Count: " + QString::number(m_listBox->count()) +
 
  709          " / " + QString::number(serialNumberList()->size());
 
  710      m_filterCountLabel->setText(msg);
 
 
  734    if (serialNumberList() == NULL)
 
  740    if (selected.size() < 1) {
 
  741      QMessageBox::information((
QWidget *)parent(),
 
  742          "Error", 
"No file selected to load.");
 
  746    QApplication::setOverrideCursor(Qt::WaitCursor);
 
  747    for (
int i = 0; i < selected.size(); i++) {
 
  748      int index = m_listBox->row(selected[i]);
 
  750      if (m_listCombo->currentIndex() == Points) {
 
  751        if (m_filteredPoints.size() == 0) {
 
  752          emit loadPointImages((*controlNet())[index]);
 
  755          emit loadPointImages((*controlNet())[m_filteredPoints[index]]);
 
  759      else if (m_listCombo->currentIndex() == Cubes) {
 
  760        if (m_filteredImages.size() == 0) {
 
  761          QString serialNumber = (*serialNumberList()).serialNumber(index);
 
  762          QString sn = serialNumber;
 
  766          QString serialNumber = (*serialNumberList()).serialNumber(m_filteredImages[index]);
 
  767          QString sn = serialNumber;
 
  772    QApplication::restoreOverrideCursor();
 
 
  851    if (serialNumberList() == NULL) 
return;
 
  853    int index = m_listBox->currentRow();
 
  855      QApplication::restoreOverrideCursor();
 
  856      QMessageBox::information((
QWidget *)parent(),
 
  857          "Error", 
"No point selected to ignore");
 
  861    switch (QMessageBox::question((
QWidget *)parent(),
 
  862        "Control Network Navigator - Ignore Points",
 
  863        "You have chosen to set " 
  864        + QString::number(selected.size())
 
  865        + 
" point(s) to ignore. Do you want to continue?",
 
  866        "&Yes", 
"&No", 0, 0)) {
 
  868        QApplication::setOverrideCursor(Qt::WaitCursor);
 
  869        int lockedPoints = 0;
 
  870        for (
int i = 0; i < selected.size(); i++) {
 
  871          int index = m_listBox->row(selected[i]);
 
  872          if (m_filteredPoints.size() == 0) {
 
  873            if ((*controlNet())[index]->SetIgnored(
true) ==
 
  877            if ((*controlNet())[m_filteredPoints[index]]->SetIgnored(
true)
 
  880          emit pointChanged((*controlNet())[m_filteredPoints[index]]->GetId());
 
  883        if (lockedPoints > 0) {
 
  884          QMessageBox::information((
QWidget *)parent(),
"EditLocked Points",
 
  885                QString::number(lockedPoints) + 
" / " 
  886                + QString::number(selected.size())
 
  887                + 
" points are EditLocked and were not set to Ignored.");
 
  889        QApplication::restoreOverrideCursor();
 
  890        if (lockedPoints != selected.size()) emit netChanged();
 
 
  920    if (serialNumberList() == NULL)
 
  925    if (selected.size() < 1) {
 
  926      QApplication::restoreOverrideCursor();
 
  927      QMessageBox::information((
QWidget *)parent(),
 
  928          "Error", 
"No point selected to delete");
 
  931    switch (QMessageBox::question((
QWidget *)parent(),
 
  932        "Control Network Navigator - Delete Points",
 
  933        "You have chosen to delete " 
  934        + QString::number(selected.size())
 
  935        + 
" point(s). Do you want to continue?",
 
  936        "&Yes", 
"&No", 0, 0)) {
 
  944        vector<int> deletedRows;
 
  948        int deletedSoFar = 0;
 
  950        for (
int i = 0; i < g_filteredPoints.size(); i++) {
 
  951          if (m_listBox->item(i)->isSelected() {
 
  952            QString id = m_listBox->item(i)->text();
 
  953            if (g_controlNetwork->DeletePoint(id) == ControlPoint::PointLocked) {
 
  959        int lockedPoints = 0;
 
  960        for (
int i = 0; i < selected.size(); i++) {
 
  961          QString 
id = selected.at(i)->text();
 
  968        if (lockedPoints > 0) {
 
  969          QMessageBox::information((
QWidget *)parent(),
"EditLocked Points",
 
  970                QString::number(lockedPoints) + 
" / " 
  971                + QString::number(selected.size())
 
  972                + 
" points are EditLocked and were not deleted.");
 
  978        m_filteredPoints.clear();
 
  980        for (
int i = 0; i < controlNet()->GetNumPoints(); i++) {
 
  981          m_filteredPoints.push_back(i);
 
  983        emit deletedPoints();
 
 
 1091    QApplication::setOverrideCursor(Qt::WaitCursor);
 
 1092    m_filter->setEnabled(
false);
 
 1094    QTabWidget *tab = (QTabWidget *)(m_filterStack->currentWidget());
 
 1097    if (m_listCombo->currentIndex() == Points) {
 
 1098      PointFilterIndex pointIndex = (PointFilterIndex) tab->currentIndex();
 
 1100      if (pointIndex == JigsawErrors) {
 
 1106      if (pointIndex == RegistrationErrors) {
 
 1112      else if (pointIndex == Id) {
 
 1118      else if (pointIndex == NumberImages) {
 
 1124      else if (pointIndex == Type) {
 
 1130      else if (pointIndex == LatLonRange) {
 
 1136      else if (pointIndex == Distance) {
 
 1142      else if (pointIndex == MeasureType) {
 
 1148      else if(pointIndex == GoodnessOfFit) {
 
 1154      else if (pointIndex == CubeName) {
 
 1162    else if (m_listCombo->currentIndex() == Cubes) {
 
 1163      CubeFilterIndex cubeIndex = (CubeFilterIndex) tab->currentIndex();
 
 1165      if (cubeIndex == Name) {
 
 1171      else if (cubeIndex == NumberPoints) {
 
 1177      else if (cubeIndex == PointDistance) {
 
 1183    m_filter->setEnabled(
true);
 
 1184    QApplication::restoreOverrideCursor();