1 #include "MatrixOptionsDialog.h" 
    6 #include <QApplication> 
    7 #include <QButtonGroup> 
    8 #include <QColorDialog> 
   10 #include <QGridLayout> 
   11 #include <QHBoxLayout> 
   12 #include <QHeaderView> 
   15 #include <QPushButton> 
   16 #include <QRadioButton> 
   17 #include <QSizePolicy> 
   19 #include <QSpacerItem> 
   22 #include <QVBoxLayout> 
   26 #include "MatrixOptions.h" 
   72     connect(parent, SIGNAL( elementClicked(QString) ),
 
   77     setWindowTitle(
"Matrix Options");
 
   81     QTabWidget *optionsTabs = 
new QTabWidget();
 
   82     optionsTabs->setGeometry( QRect(9, 9, 100, 100) );
 
   90     QGridLayout *mainLayout = 
new QGridLayout();
 
   91     colorOptionsPage->setLayout(mainLayout);
 
   92     QHBoxLayout *colorPageLayout = 
new QHBoxLayout(); 
 
   97     QVBoxLayout *colorToleranceLayout = 
new QVBoxLayout();
 
   99     m_colorToleranceRadioButton = 
new QRadioButton();
 
  100     m_colorToleranceRadioButton->setText(
"Pick Tolerance");
 
  101     colorToleranceLayout->addWidget(m_colorToleranceRadioButton);
 
  102     connect( m_colorToleranceRadioButton, SIGNAL( clicked() ),
 
  105     QHBoxLayout *colorToleranceOptionsLayout = 
new QHBoxLayout();
 
  107     m_colorToleranceSlider = 
new QSlider();
 
  108     m_colorToleranceSlider->setOrientation(Qt::Vertical);
 
  109     m_colorToleranceSlider->setRange(0, 1000);
 
  110     colorToleranceOptionsLayout->addWidget(m_colorToleranceSlider);
 
  111     connect( m_colorToleranceSlider, SIGNAL( valueChanged(
int) ),
 
  114     QVBoxLayout *colorToleranceEditsLayout = 
new QVBoxLayout();
 
  115     QHBoxLayout *colorBadCorrLayout = 
new QHBoxLayout();
 
  117     QLabel *colorBadCorrLabel = 
new QLabel();
 
  118     colorBadCorrLabel->setText(
"Bad Correlation");
 
  120     colorBadCorrLayout->addWidget(colorBadCorrLabel);
 
  128     colorToleranceEditsLayout->addLayout(colorBadCorrLayout);
 
  130     QHBoxLayout *colorEnterTolLayout = 
new QHBoxLayout();
 
  132     QLabel *colorTolLabel = 
new QLabel();
 
  133     colorTolLabel->setText(
"Tolerance");
 
  134     colorEnterTolLayout->addWidget(colorTolLabel);
 
  136     m_colorToleranceLineEdit = 
new QLineEdit();
 
  137     m_colorToleranceLineEdit->setValidator( 
new QDoubleValidator(-1, 1, 10, 
this) );
 
  138     colorEnterTolLayout->addWidget(m_colorToleranceLineEdit);
 
  139     connect( m_colorToleranceLineEdit, SIGNAL( textChanged(
const QString &) ),
 
  142     colorToleranceEditsLayout->addLayout(colorEnterTolLayout);
 
  144     QHBoxLayout *colorGoodCorrLayout = 
new QHBoxLayout();
 
  145     QLabel *colorGoodCorrLabel = 
new QLabel();
 
  146     colorGoodCorrLabel->setText(
"Good Correlation");
 
  148     colorGoodCorrLayout->addWidget(colorGoodCorrLabel);
 
  155     colorToleranceEditsLayout->addLayout(colorGoodCorrLayout);
 
  157     colorToleranceOptionsLayout->addLayout(colorToleranceEditsLayout);
 
  159     colorToleranceLayout->addLayout(colorToleranceOptionsLayout);
 
  161     colorPageLayout->addLayout(colorToleranceLayout);
 
  166     QVBoxLayout *colorGradientLayout = 
new QVBoxLayout();
 
  174     QSpacerItem *colorGradSpacer = 
new QSpacerItem(20,
 
  176                                                    QSizePolicy::Minimum,
 
  177                                                    QSizePolicy::Expanding);
 
  178     colorGradientLayout->addItem(colorGradSpacer);
 
  180     colorPageLayout->addLayout(colorGradientLayout);
 
  182     mainLayout->addLayout(colorPageLayout, 0, 1, 1, 1);
 
  184     optionsTabs->addTab(colorOptionsPage, QString() );
 
  185     optionsTabs->setTabText(optionsTabs->indexOf(colorOptionsPage), 
"Color Options");
 
  192     QHBoxLayout *focusPageLayout = 
new QHBoxLayout();
 
  193     focusPageLayout->setContentsMargins(0, 0, 0, 0);
 
  194     QVBoxLayout *focusOptionsLayout = 
new QVBoxLayout();
 
  212     QVBoxLayout *focusSpecParamLayout = 
new QVBoxLayout();
 
  220     QLabel *focusSpecParam1Label = 
new QLabel();
 
  221     focusSpecParam1Label->setText(
"Image 1:");
 
  222     focusSpecParamLayout->addWidget(focusSpecParam1Label);
 
  224     QHBoxLayout *focusSpecParam1Layout = 
new QHBoxLayout();
 
  227     focusSpecParam1Layout->addWidget(m_image1ComboBox);
 
  228     connect( m_image1ComboBox, SIGNAL( currentIndexChanged(
const QString &) ),
 
  234     focusSpecParam1Layout->addWidget(m_parameter1ComboBox);
 
  236     focusSpecParamLayout->addLayout(focusSpecParam1Layout);
 
  238     QLabel *focusSpecParam2Label = 
new QLabel();
 
  239     focusSpecParam2Label->setText(
"Image 2:");
 
  240     focusSpecParamLayout->addWidget(focusSpecParam2Label);
 
  242     QHBoxLayout *focusSpecParam2Layout = 
new QHBoxLayout();
 
  245     focusSpecParam2Layout->addWidget(m_image2ComboBox);
 
  246     connect( m_image2ComboBox, SIGNAL( currentIndexChanged(
const QString &) ),
 
  250     focusSpecParam2Layout->addWidget(m_parameter2ComboBox);
 
  252     focusSpecParamLayout->addLayout(focusSpecParam2Layout);
 
  254     focusOptionsLayout->addLayout(focusSpecParamLayout);
 
  256     focusPageLayout->addLayout(focusOptionsLayout);
 
  261     QVBoxLayout *focusTolLayout = 
new QVBoxLayout();
 
  269     QHBoxLayout *focusTolEditLayout = 
new QHBoxLayout();
 
  271     QLabel *focusTolLabel = 
new QLabel();
 
  272     focusTolLabel->setText(
"Tolerance:");
 
  273     focusTolEditLayout->addWidget(focusTolLabel);
 
  275     m_focusToleranceLineEdit = 
new QLineEdit();
 
  276     m_focusToleranceLineEdit->setValidator( 
new QDoubleValidator(-1, 1, 10, 
this) );
 
  277     focusTolEditLayout->addWidget(m_focusToleranceLineEdit);
 
  281     focusTolLayout->addLayout(focusTolEditLayout);
 
  283     QHBoxLayout *focusElementsLayout = 
new QHBoxLayout();
 
  284     QVBoxLayout *focusGoodElementsLayout = 
new QVBoxLayout();
 
  286     QLabel *focusGoodElementsLabel = 
new QLabel();
 
  287     focusGoodElementsLabel->setFocusPolicy(Qt::NoFocus);
 
  288     focusGoodElementsLabel->setText(
"Good");
 
  289     focusGoodElementsLayout->addWidget(focusGoodElementsLabel);
 
  291     m_goodElementsComboBox = 
new QComboBox();
 
  292     focusGoodElementsLayout->addWidget(m_goodElementsComboBox);
 
  294     focusElementsLayout->addLayout(focusGoodElementsLayout);
 
  296     QVBoxLayout *focusBadElementsLayout = 
new QVBoxLayout();
 
  298     QLabel *focusBadElementsLabel = 
new QLabel();
 
  299     focusBadElementsLabel->setText(
"Bad");
 
  300     focusBadElementsLayout->addWidget(focusBadElementsLabel);
 
  303     focusBadElementsLayout->addWidget(m_badElementsComboBox);
 
  305     focusElementsLayout->addLayout(focusBadElementsLayout);
 
  307     focusTolLayout->addLayout(focusElementsLayout);
 
  309     focusPageLayout->addLayout(focusTolLayout);
 
  311     focusOptionsPage->setLayout(focusPageLayout);
 
  312     optionsTabs->addTab( focusOptionsPage, QString() );
 
  313     optionsTabs->setTabText(optionsTabs->indexOf(focusOptionsPage), 
"Focus Options");
 
  318     QVBoxLayout *m_currentElementData = 
new QVBoxLayout();
 
  319     m_currentElementData->setContentsMargins(0, 0, 0, 0);
 
  323     QLabel *currentCorrLabel = 
new QLabel();
 
  324     currentCorrLabel->setText(
"Current Correlation Info:");
 
  325     m_currentElementData->addWidget(currentCorrLabel);
 
  328     m_currentValueLabel = 
new QLabel();
 
  329     m_currentValueLabel->setText(
"-");
 
  330     m_currentElementData->addWidget(m_currentValueLabel);
 
  359     optionsTabs->setCurrentIndex(0);
 
  361     QPushButton *applyButton = 
new QPushButton(
"&Apply");
 
  362     applyButton->setIcon( QIcon::fromTheme(
"dialog-ok-apply") );
 
  363     connect( applyButton, SIGNAL( clicked() ),
 
  367     QVBoxLayout *topLayout = 
new QVBoxLayout();
 
  368     topLayout->addWidget(optionsTabs);
 
  369     topLayout->addWidget(applyButton);
 
  370     topLayout->addLayout(m_currentElementData); 
 
  371     setLayout(topLayout);
 
  373     QMetaObject::connectSlotsByName(
this);
 
  431     emit optionsUpdated();
 
  453       QPalette colorPalette;
 
  461       m_colorToleranceSlider->blockSignals(
true);
 
  462       m_colorToleranceSlider->setValue( qRound( 1000 * m_colorToleranceLineEdit->text().toDouble() ) );
 
  463       m_colorToleranceSlider->blockSignals(
false);
 
  483     for (
int param = 0; param < img.value().size(); param++) {
 
  484       m_parameter1ComboBox->addItem(img.value()[param]);
 
  485       m_parameter2ComboBox->addItem(img.value()[param]);
 
  487     while ( img.hasNext() ) {
 
  488       m_image1ComboBox->addItem( img.key() );
 
  489       m_image2ComboBox->addItem( img.key() );
 
  504     m_currentValueLabel->setText(currentData);
 
  534     m_colorToleranceLineEdit->setEnabled(enable);
 
  537     m_colorToleranceSlider->setEnabled(enable);
 
  549     m_focusToleranceLineEdit->setEnabled(enable);
 
  550     m_goodElementsComboBox->setEnabled(enable);
 
  551     m_badElementsComboBox->setEnabled(enable);
 
  563     m_image1ComboBox->setEnabled(enable);
 
  564     m_parameter1ComboBox->setEnabled(enable);
 
  565     m_image2ComboBox->setEnabled(enable);
 
  566     m_parameter2ComboBox->setEnabled(enable);
 
  610     QPalette colorPalette( button->palette() );
 
  612     QColor newColor = QColorDialog::getColor(colorPalette.color(QPalette::Button), 
this);
 
  614     if( newColor.isValid() ) {
 
  615       colorPalette.setColor(QPalette::Button, newColor);
 
  616       button->setPalette(colorPalette);
 
  627     m_colorToleranceSlider->setValue( qRound( 1000 * value.toDouble() ) );
 
  637     m_colorToleranceLineEdit->setText( QString::number(value / 1000.0) );