void DlgSettingsColorFilter::load (CmdMediator &cmdMediator) { LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsColorFilter::load"; setCmdMediator (cmdMediator); // Flush old data if (m_modelColorFilterBefore != 0) { delete m_modelColorFilterBefore; } if (m_modelColorFilterAfter != 0) { delete m_modelColorFilterAfter; } // Save new data m_modelColorFilterBefore = new DocumentModelColorFilter (cmdMediator.document()); m_modelColorFilterAfter = new DocumentModelColorFilter (cmdMediator.document()); // Populate controls. First load curve name combobox. The curve-specific controls get loaded in slotCurveName m_cmbCurveName->clear (); m_cmbCurveName->addItem (AXIS_CURVE_NAME); QStringList curveNames = cmdMediator.curvesGraphsNames(); QStringList::const_iterator itr; for (itr = curveNames.begin (); itr != curveNames.end (); itr++) { QString curveName = *itr; m_cmbCurveName->addItem (curveName); } // This sets the curve name m_cmbCurveName->setCurrentText (mainWindow().selectedGraphCurve()); loadForCurveName(); enableOk (false); // Disable Ok button since there not yet any changes }
void DlgSettingsMainWindow::loadMainWindowModel (CmdMediator &cmdMediator, const MainWindowModel &modelMainWindow) { LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsMainWindow::loadMainWindowModel"; setCmdMediator (cmdMediator); // Flush old data if (m_modelMainWindowBefore != 0) { delete m_modelMainWindowBefore; } if (m_modelMainWindowAfter != 0) { delete m_modelMainWindowAfter; } // Save new data m_modelMainWindowBefore = new MainWindowModel (modelMainWindow); m_modelMainWindowAfter = new MainWindowModel (modelMainWindow); // Populate controls int index = m_cmbZoomFactor->findData (m_modelMainWindowAfter->zoomFactorInitial()); m_cmbZoomFactor->setCurrentIndex (index); index = m_cmbZoomControl->findData (m_modelMainWindowAfter->zoomControl()); m_cmbZoomControl->setCurrentIndex (index); updateControls (); enableOk (false); // Disable Ok button since there not yet any changes }
void DlgSettingsPointMatch::load (CmdMediator &cmdMediator) { LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsPointMatch::load"; setCmdMediator (cmdMediator); // Flush old data if (m_modelPointMatchBefore != 0) { delete m_modelPointMatchBefore; } if (m_modelPointMatchAfter != 0) { delete m_modelPointMatchAfter; } // Save new data m_modelPointMatchBefore = new DocumentModelPointMatch (cmdMediator.document()); m_modelPointMatchAfter = new DocumentModelPointMatch (cmdMediator.document()); // Sanity checks. Incoming defaults must be acceptable to the local limits ENGAUGE_ASSERT (POINT_SEPARATION_MIN <= m_modelPointMatchAfter->minPointSeparation()); ENGAUGE_ASSERT (POINT_SEPARATION_MAX > m_modelPointMatchAfter->minPointSeparation()); ENGAUGE_ASSERT (POINT_SIZE_MIN <= m_modelPointMatchAfter->maxPointSize()); ENGAUGE_ASSERT (POINT_SIZE_MAX > m_modelPointMatchAfter->maxPointSize()); // Populate controls m_spinMinPointSeparation->setValue(m_modelPointMatchAfter->minPointSeparation()); m_spinPointSize->setValue(m_modelPointMatchAfter->maxPointSize()); int indexAccepted = m_cmbAcceptedPointColor->findData(QVariant(m_modelPointMatchAfter->paletteColorAccepted())); ENGAUGE_ASSERT (indexAccepted >= 0); m_cmbAcceptedPointColor->setCurrentIndex(indexAccepted); int indexCandidate = m_cmbCandidatePointColor->findData(QVariant(m_modelPointMatchAfter->paletteColorCandidate())); ENGAUGE_ASSERT (indexCandidate >= 0); m_cmbCandidatePointColor->setCurrentIndex(indexCandidate); int indexRejected = m_cmbRejectedPointColor->findData(QVariant(m_modelPointMatchAfter->paletteColorRejected())); ENGAUGE_ASSERT (indexRejected >= 0); m_cmbRejectedPointColor->setCurrentIndex(indexRejected); initializeBox (); // Fix the preview size using an invisible boundary QGraphicsRectItem *boundary = m_scenePreview->addRect (QRect (0, 0, cmdMediator.document().pixmap().width (), cmdMediator.document().pixmap().height ())); boundary->setVisible (false); m_scenePreview->addPixmap (cmdMediator.document().pixmap()); updateControls(); enableOk (false); // Disable Ok button since there not yet any changes updatePreview(); }
void DlgSettingsDigitizeCurve::updateControls() { // Cursor has to fit into current extent bool isGoodState = 2 * (m_modelDigitizeCurveAfter->cursorInnerRadius() + LINE_LENGTH_MIN) <= CursorSizeToPixels (m_modelDigitizeCurveAfter->cursorSize()); enableOk (isGoodState); m_spinInnerRadius->setEnabled (m_btnCustom->isChecked()); m_cmbSize->setEnabled (m_btnCustom->isChecked()); m_spinLineWidth->setEnabled (m_btnCustom->isChecked()); }
void DlgSettingsColorFilter::updatePreview () { LOG4CPP_INFO_S ((*mainCat)) << "DlgSettings::updatePreview"; enableOk (true); // This (indirectly) updates the preview QString curveName = m_cmbCurveName->currentText(); emit signalApplyFilter (m_modelColorFilterAfter->colorFilterMode(curveName), m_modelColorFilterAfter->low(curveName), m_modelColorFilterAfter->high(curveName)); }
bool DateInterval::qt_invoke( int _id, QUObject* _o ) { switch ( _id - staticMetaObject()->slotOffset() ) { case 0: languageChange(); break; case 1: enableDate(); break; case 2: enableOk(); break; case 3: ok(); break; default: return QDialog::qt_invoke( _id, _o ); } return TRUE; }
NamespaceManagementDialog::NamespaceManagementDialog(QWidget *parent, Element *element, NamespaceManager *nsManager) : QDialog(parent), ui(new Ui::NamespaceManagementDialog) { _goComboNs = false; _element = element ; _nsManager = nsManager ; ui->setupUi(this); init(); setupData(); updateButtonsNs(); enableOk(); }
void DlgSettingsGridRemoval::load (CmdMediator &cmdMediator) { LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsGridRemoval::load"; setCmdMediator (cmdMediator); // Flush old data if (m_modelGridRemovalBefore != 0) { delete m_modelGridRemovalBefore; } if (m_modelGridRemovalAfter != 0) { delete m_modelGridRemovalAfter; } // Save new data m_modelGridRemovalBefore = new DocumentModelGridRemoval (cmdMediator.document()); m_modelGridRemovalAfter = new DocumentModelGridRemoval (cmdMediator.document()); // Sanity checks. Incoming defaults must be acceptable to the local limits ENGAUGE_ASSERT (CLOSE_DISTANCE_MIN <= m_modelGridRemovalAfter->closeDistance()); ENGAUGE_ASSERT (CLOSE_DISTANCE_MAX >= m_modelGridRemovalAfter->closeDistance()); // Populate controls m_chkRemoveGridLines->setChecked (m_modelGridRemovalAfter->removeDefinedGridLines()); m_editCloseDistance->setText (QString::number (m_modelGridRemovalAfter->closeDistance())); int indexDisableX = m_cmbDisableX->findData (QVariant (m_modelGridRemovalAfter->gridCoordDisableX())); m_cmbDisableX->setCurrentIndex (indexDisableX); m_editCountX->setText(QString::number(m_modelGridRemovalAfter->countX())); m_editStartX->setText(QString::number(m_modelGridRemovalAfter->startX())); m_editStepX->setText(QString::number(m_modelGridRemovalAfter->stepX())); m_editStopX->setText(QString::number(m_modelGridRemovalAfter->stopX())); int indexDisableY = m_cmbDisableX->findData (QVariant (m_modelGridRemovalAfter->gridCoordDisableY())); m_cmbDisableY->setCurrentIndex (indexDisableY); m_editCountY->setText(QString::number(m_modelGridRemovalAfter->countY())); m_editStartY->setText(QString::number(m_modelGridRemovalAfter->startY())); m_editStepY->setText(QString::number(m_modelGridRemovalAfter->stepY())); m_editStopY->setText(QString::number(m_modelGridRemovalAfter->stopY())); m_scenePreview->clear(); m_scenePreview->addPixmap (cmdMediator.document().pixmap()); updateControls (); enableOk (false); // Disable Ok button since there not yet any changes updatePreview(); }
DlgImportAdvanced::DlgImportAdvanced(MainWindow &mainWindow) : DlgSettingsAbstractBase (tr ("Import Advanced"), "DlgImportAdvanced", mainWindow) { LOG4CPP_INFO_S ((*mainCat)) << "DlgImportAdvanced::DlgImportAdvanced"; QWidget *subPanel = createSubPanel (); finishPanel (subPanel, MINIMUM_DIALOG_WIDTH_COORDS); // Accept even the default value without any additional actions, rather than delay the Ok button to after a change enableOk (true); setDisableOkAtStartup (false); }
void DlgSettingsExportFormat::updateControls () { bool isGoodState = goodIntervalFunctions() && goodIntervalRelations(); enableOk (isGoodState); int selectedForInclude = m_listExcluded->selectedItems().count(); int selectedForExclude = m_listIncluded->selectedItems().count(); int inInclude = m_listIncluded->count(); m_btnInclude->setEnabled (selectedForInclude > 0); // Need at least one selection m_btnExclude->setEnabled ((selectedForExclude > 0) && (inInclude - selectedForExclude > 0)); // Need at least one selection, and one left after the move m_editFunctionsPointsEvenlySpacing->setEnabled (m_haveFunction && m_btnFunctionsPointsEvenlySpaced->isChecked ()); m_editRelationsPointsEvenlySpacing->setEnabled (m_haveRelation && m_btnRelationsPointsEvenlySpaced->isChecked ()); m_editXLabel->setEnabled (!m_btnHeaderNone->isChecked()); }
void DlgSettingsSegments::load (CmdMediator &cmdMediator) { LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsSegments::load"; // Loading starts here m_loading = true; setCmdMediator (cmdMediator); // Flush old data if (m_modelSegmentsBefore != 0) { delete m_modelSegmentsBefore; } if (m_modelSegmentsAfter != 0) { delete m_modelSegmentsAfter; } // Save new data m_modelSegmentsBefore = new DocumentModelSegments (cmdMediator.document()); m_modelSegmentsAfter = new DocumentModelSegments (cmdMediator.document()); // Sanity checks. Incoming defaults must be acceptable to the local limits ENGAUGE_ASSERT (MIN_LENGTH_MIN <= m_modelSegmentsAfter->minLength ()); ENGAUGE_ASSERT (MIN_LENGTH_MAX >= m_modelSegmentsAfter->minLength ()); ENGAUGE_ASSERT (POINT_SEPARATION_MIN <= m_modelSegmentsAfter->pointSeparation()); ENGAUGE_ASSERT (POINT_SEPARATION_MAX >= m_modelSegmentsAfter->pointSeparation()); // Populate controls m_spinPointSeparation->setValue (m_modelSegmentsAfter->pointSeparation()); m_spinMinLength->setValue (m_modelSegmentsAfter->minLength()); m_chkFillCorners->setChecked (m_modelSegmentsAfter->fillCorners ()); m_spinLineWidth->setValue (m_modelSegmentsAfter->lineWidth()); int indexLineColor = m_cmbLineColor->findData(QVariant (m_modelSegmentsAfter->lineColor())); ENGAUGE_ASSERT (indexLineColor >= 0); m_cmbLineColor->setCurrentIndex(indexLineColor); // Loading finishes here m_loading = false; updateControls(); enableOk (false); // Disable Ok button since there not yet any changes updatePreview(); }
void DlgSettingsGridRemoval::updateControls () { m_editCloseDistance->setEnabled (m_chkRemoveGridLines->isChecked ()); m_cmbDisableX->setEnabled (m_chkRemoveGridLines->isChecked ()); GridCoordDisable disableX = (GridCoordDisable) m_cmbDisableX->currentData().toInt(); m_editCountX->setEnabled (m_chkRemoveGridLines->isChecked () && (disableX != GRID_COORD_DISABLE_COUNT)); m_editStartX->setEnabled (m_chkRemoveGridLines->isChecked () && (disableX != GRID_COORD_DISABLE_START)); m_editStepX->setEnabled (m_chkRemoveGridLines->isChecked () && (disableX != GRID_COORD_DISABLE_STEP)); m_editStopX->setEnabled (m_chkRemoveGridLines->isChecked () && (disableX != GRID_COORD_DISABLE_STOP)); m_cmbDisableY->setEnabled (m_chkRemoveGridLines->isChecked ()); GridCoordDisable disableY = (GridCoordDisable) m_cmbDisableY->currentData().toInt(); m_editCountY->setEnabled (m_chkRemoveGridLines->isChecked () && (disableY != GRID_COORD_DISABLE_COUNT)); m_editStartY->setEnabled (m_chkRemoveGridLines->isChecked () && (disableY != GRID_COORD_DISABLE_START)); m_editStepY->setEnabled (m_chkRemoveGridLines->isChecked () && (disableY != GRID_COORD_DISABLE_STEP)); m_editStopY->setEnabled (m_chkRemoveGridLines->isChecked () && (disableY != GRID_COORD_DISABLE_STOP)); QString textCloseDistance = m_editCloseDistance->text(); QString textCountX = m_editCountX->text(); QString textStartX = m_editStartX->text(); QString textStepX = m_editStepX->text(); QString textStopX = m_editStopX->text(); QString textCountY = m_editCountY->text(); QString textStartY = m_editStartY->text(); QString textStepY = m_editStepY->text(); QString textStopY = m_editStopY->text(); int pos; bool isOk = (m_validatorCloseDistance->validate (textCloseDistance, pos) == QValidator::Acceptable) && (m_validatorCountX->validate (textCountX, pos) == QValidator::Acceptable) && (m_validatorStartX->validate (textStartX, pos) == QValidator::Acceptable) && (m_validatorStepX->validate (textStepX, pos) == QValidator::Acceptable) && (m_validatorStopX->validate (textStopX, pos) == QValidator::Acceptable) && (m_validatorCountY->validate (textCountY, pos) == QValidator::Acceptable) && (m_validatorStartY->validate (textStartY, pos) == QValidator::Acceptable) && (m_validatorStepY->validate (textStepY, pos) == QValidator::Acceptable) && (m_validatorStopY->validate (textStopY, pos) == QValidator::Acceptable); enableOk (isOk); }
void DlgSettingsMainWindow::loadMainWindowModel (CmdMediator &cmdMediator, const MainWindowModel &modelMainWindow) { LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsMainWindow::loadMainWindowModel"; setCmdMediator (cmdMediator); // Flush old data delete m_modelMainWindowBefore; delete m_modelMainWindowAfter; // Save new data m_modelMainWindowBefore = new MainWindowModel (modelMainWindow); m_modelMainWindowAfter = new MainWindowModel (modelMainWindow); // Populate controls int index = m_cmbZoomFactor->findData (m_modelMainWindowAfter->zoomFactorInitial()); m_cmbZoomFactor->setCurrentIndex (index); index = m_cmbZoomControl->findData (m_modelMainWindowAfter->zoomControl()); m_cmbZoomControl->setCurrentIndex (index); QString locLabel = QLocaleToString (m_modelMainWindowAfter->locale()); index = m_cmbLocale->findText (locLabel); m_cmbLocale->setCurrentIndex(index); index = m_cmbImportCropping->findData (m_modelMainWindowAfter->importCropping()); m_cmbImportCropping->setCurrentIndex (index); m_chkTitleBarFormat->setChecked (m_modelMainWindowAfter->mainTitleBarFormat() == MAIN_TITLE_BAR_FORMAT_PATH); #ifdef ENGAUGE_PDF index = m_cmbPdfResolution->findData (m_modelMainWindowAfter->pdfResolution()); m_cmbPdfResolution->setCurrentIndex(index); #endif m_spinMaximumGridLines->setValue (m_modelMainWindowAfter->maximumGridLines()); m_spinHighlightOpacity->setValue (m_modelMainWindowAfter->highlightOpacity()); m_chkSmallDialogs->setChecked (m_modelMainWindowAfter->smallDialogs()); m_chkDragDropExport->setChecked (m_modelMainWindowAfter->dragDropExport()); m_spinSignificantDigits->setValue (m_modelMainWindowAfter->significantDigits ()); updateControls (); enableOk (false); // Disable Ok button since there not yet any changes }
void DlgSettingsDigitizeCurve::load (CmdMediator &cmdMediator) { LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsDigitizeCurve::load"; setCmdMediator (cmdMediator); // Flush old data if (m_modelDigitizeCurveBefore != 0) { delete m_modelDigitizeCurveBefore; } if (m_modelDigitizeCurveAfter != 0) { delete m_modelDigitizeCurveAfter; } // Save new data m_modelDigitizeCurveBefore = new DocumentModelDigitizeCurve (cmdMediator.document()); m_modelDigitizeCurveAfter = new DocumentModelDigitizeCurve (cmdMediator.document()); // Sanity checks. Incoming defaults must be acceptable to the local limits ENGAUGE_ASSERT (INNER_RADIUS_MIN <= m_modelDigitizeCurveAfter->cursorInnerRadius ()); ENGAUGE_ASSERT (INNER_RADIUS_MAX >= m_modelDigitizeCurveAfter->cursorInnerRadius ()); ENGAUGE_ASSERT (LINE_WIDTH_MIN <= m_modelDigitizeCurveAfter->cursorLineWidth ()); ENGAUGE_ASSERT (LINE_WIDTH_MAX >= m_modelDigitizeCurveAfter->cursorLineWidth ()); // Populate controls m_btnStandard->setChecked (m_modelDigitizeCurveAfter->cursorStandardCross()); m_btnCustom->setChecked (!m_modelDigitizeCurveAfter->cursorStandardCross()); m_spinInnerRadius->setValue (m_modelDigitizeCurveAfter->cursorInnerRadius()); int index = m_cmbSize->findData (QVariant (m_modelDigitizeCurveAfter->cursorSize())); m_cmbSize->setCurrentIndex (index); m_spinLineWidth->setValue (m_modelDigitizeCurveAfter->cursorLineWidth()); updateControls(); enableOk (false); // Disable Ok button since there not yet any changes updatePreview(); }
void DlgSettingsSegments::updateControls() { enableOk (true); }
void DlgSettingsExportFormat::load (CmdMediator &cmdMediator) { LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsExportFormat::load"; setCmdMediator (cmdMediator); // Flush old data if (m_modelExportBefore != 0) { delete m_modelExportBefore; } if (m_modelExportAfter != 0) { delete m_modelExportAfter; } // Save new data m_modelExportBefore = new DocumentModelExportFormat (cmdMediator.document()); m_modelExportAfter = new DocumentModelExportFormat (cmdMediator.document()); // Populate controls. First load excluded curves m_listExcluded->clear(); QStringList curveNamesExcluded = m_modelExportAfter->curveNamesNotExported(); QStringList::const_iterator itr; for (itr = curveNamesExcluded.begin (); itr != curveNamesExcluded.end(); ++itr) { QString curveNameNotExported = *itr; m_listExcluded->addItem (curveNameNotExported); } // Include curves that are not excluded m_listIncluded->clear(); QStringList curveNamesAll = cmdMediator.document().curvesGraphsNames(); for (itr = curveNamesAll.begin (); itr != curveNamesAll.end(); itr++) { QString curveName = *itr; if (!curveNamesExcluded.contains (curveName)) { m_listIncluded->addItem (curveName); } } ExportPointsSelectionFunctions pointsSelectionFunctions = m_modelExportAfter->pointsSelectionFunctions(); m_btnFunctionsPointsAllCurves->setChecked (pointsSelectionFunctions == EXPORT_POINTS_SELECTION_FUNCTIONS_INTERPOLATE_ALL_CURVES); m_btnFunctionsPointsFirstCurve->setChecked (pointsSelectionFunctions == EXPORT_POINTS_SELECTION_FUNCTIONS_INTERPOLATE_FIRST_CURVE); m_btnFunctionsPointsEvenlySpaced->setChecked (pointsSelectionFunctions == EXPORT_POINTS_SELECTION_FUNCTIONS_INTERPOLATE_PERIODIC); m_btnFunctionsPointsRaw->setChecked (pointsSelectionFunctions == EXPORT_POINTS_SELECTION_FUNCTIONS_RAW); ExportLayoutFunctions layoutFunctions = m_modelExportAfter->layoutFunctions (); m_btnFunctionsLayoutAllCurves->setChecked (layoutFunctions == EXPORT_LAYOUT_ALL_PER_LINE); m_btnFunctionsLayoutOneCurve->setChecked (layoutFunctions == EXPORT_LAYOUT_ONE_PER_LINE); ExportPointsSelectionRelations pointsSelectionRelations = m_modelExportAfter->pointsSelectionRelations(); m_btnRelationsPointsEvenlySpaced->setChecked (pointsSelectionRelations == EXPORT_POINTS_SELECTION_RELATIONS_INTERPOLATE); m_btnRelationsPointsRaw->setChecked (pointsSelectionRelations == EXPORT_POINTS_SELECTION_RELATIONS_RAW); ExportDelimiter delimiter = m_modelExportAfter->delimiter (); m_btnDelimitersCommas->setChecked (delimiter == EXPORT_DELIMITER_COMMA); m_btnDelimitersSpaces->setChecked (delimiter == EXPORT_DELIMITER_SPACE); m_btnDelimitersTabs->setChecked (delimiter == EXPORT_DELIMITER_TAB); ExportHeader header = m_modelExportAfter->header (); m_btnHeaderNone->setChecked (header == EXPORT_HEADER_NONE); m_btnHeaderSimple->setChecked (header == EXPORT_HEADER_SIMPLE); m_btnHeaderGnuplot->setChecked (header == EXPORT_HEADER_GNUPLOT); m_editXLabel->setText (m_modelExportAfter->xLabel()); m_editFunctionsPointsEvenlySpacing->setText (QString::number (m_modelExportAfter->pointsIntervalFunctions())); m_editRelationsPointsEvenlySpacing->setText (QString::number (m_modelExportAfter->pointsIntervalRelations())); ExportPointsIntervalUnits pointsIntervalUnitsFunctions = m_modelExportAfter->pointsIntervalUnitsRelations(); ExportPointsIntervalUnits pointsIntervalUnitsRelations = m_modelExportAfter->pointsIntervalUnitsRelations(); int indexFunctions = m_cmbRelationsPointsEvenlySpacingUnits->findData (QVariant (pointsIntervalUnitsFunctions)); int indexRelations = m_cmbRelationsPointsEvenlySpacingUnits->findData (QVariant (pointsIntervalUnitsRelations)); m_cmbFunctionsPointsEvenlySpacingUnits->setCurrentIndex (indexFunctions); m_cmbRelationsPointsEvenlySpacingUnits->setCurrentIndex (indexRelations); initializeIntervalConstraints (); updateControls(); updateIntervalConstraints(); enableOk (false); // Disable Ok button since there not yet any changes updatePreview(); }
void DlgSettingsColorFilter::updateHistogram() { LOG4CPP_INFO_S ((*mainCat)) << "DlgSettingsColorFilter::updateHistogram"; enableOk (true); const double PEN_WIDTH = 0.0; // Zero value gives one-pixel width at all scales QString curveName = m_cmbCurveName->currentText(); m_sceneProfile->clear(); m_scale->setColorFilterMode (m_modelColorFilterAfter->colorFilterMode(curveName)); // Start with original image QImage image = cmdMediator().document().pixmap().toImage(); double *histogramBins = new double [ColorFilterHistogram::HISTOGRAM_BINS ()]; ColorFilter filter; ColorFilterHistogram filterHistogram; int maxBinCount; filterHistogram.generate (filter, histogramBins, m_modelColorFilterAfter->colorFilterMode (curveName), image, maxBinCount); // Draw histogram, normalizing so highest peak exactly fills the vertical range. Log scale is used // so smaller peaks do not disappear double logMaxBinCount = qLn (maxBinCount); for (int bin = 1; bin < ColorFilterHistogram::HISTOGRAM_BINS (); bin++) { double x0 = PROFILE_SCENE_WIDTH () * (bin - 1.0) / (ColorFilterHistogram::HISTOGRAM_BINS () - 1.0); // Map logPixelCount through 0 to 0 through PROFILE_SCENE_HEIGHT-1, using log scale double count0 = 1.0 + histogramBins [bin - 1]; double y0 = (PROFILE_SCENE_HEIGHT () - 1.0) * (1.0 - qLn (count0) / logMaxBinCount); double x1 = PROFILE_SCENE_WIDTH () * (bin - 0.0) / (ColorFilterHistogram::HISTOGRAM_BINS () - 1.0); // Map logPixelCount through 0 to 0 through PROFILE_SCENE_HEIGHT-1, using log scale double count1 = 1.0 + histogramBins [bin]; double y1 = (PROFILE_SCENE_HEIGHT () - 1.0) * (1.0 - qLn (count1) / logMaxBinCount); QGraphicsLineItem *line = new QGraphicsLineItem (x0, y0, x1, y1); line->setPen (QPen (QBrush (Qt::black), PEN_WIDTH)); m_sceneProfile->addItem (line); } // Create low and high dividers m_dividerLow = new ViewProfileDivider(*m_sceneProfile, *m_viewProfile, PROFILE_SCENE_WIDTH (), PROFILE_SCENE_HEIGHT (), PROFILE_SCENE_HEIGHT () * 2.0 / 3.0, true); m_dividerHigh = new ViewProfileDivider(*m_sceneProfile, *m_viewProfile, PROFILE_SCENE_HEIGHT (), PROFILE_SCENE_WIDTH (), PROFILE_SCENE_HEIGHT () / 3.0, false); // Connect the dividers to each other since the shaded areas depend on both divides when low divider is // moved to the right of the high divider connect (m_dividerLow, SIGNAL (signalMovedLow (double)), m_dividerHigh, SLOT (slotOtherMoved(double))); connect (m_dividerHigh, SIGNAL (signalMovedHigh (double)), m_dividerLow, SLOT (slotOtherMoved(double))); // Update preview when the dividers move connect (m_dividerLow, SIGNAL (signalMovedLow (double)), this, SLOT (slotDividerLow (double))); connect (m_dividerHigh, SIGNAL(signalMovedHigh (double)), this, SLOT (slotDividerHigh (double))); if (m_btnForeground->isChecked()) { // Foreground m_dividerLow->setX (m_modelColorFilterAfter->foregroundLow(curveName), FOREGROUND_MIN, FOREGROUND_MAX); m_dividerHigh->setX (m_modelColorFilterAfter->foregroundHigh(curveName), FOREGROUND_MIN, FOREGROUND_MAX); } else if (m_btnIntensity->isChecked()) { // Intensity m_dividerLow->setX (m_modelColorFilterAfter->intensityLow(curveName), INTENSITY_MIN, INTENSITY_MAX); m_dividerHigh->setX (m_modelColorFilterAfter->intensityHigh(curveName), INTENSITY_MIN, INTENSITY_MAX); } else if (m_btnHue->isChecked()) { // Hue m_dividerLow->setX (m_modelColorFilterAfter->hueLow(curveName), HUE_MIN, HUE_MAX); m_dividerHigh->setX (m_modelColorFilterAfter->hueHigh(curveName), HUE_MIN, HUE_MAX); } else if (m_btnSaturation->isChecked()) { // Saturation m_dividerLow->setX (m_modelColorFilterAfter->saturationLow(curveName), SATURATION_MIN, SATURATION_MAX); m_dividerHigh->setX (m_modelColorFilterAfter->saturationHigh(curveName), SATURATION_MIN, SATURATION_MAX); } else if (m_btnValue->isChecked()) { // Value m_dividerLow->setX (m_modelColorFilterAfter->valueLow(curveName), VALUE_MIN, VALUE_MAX); m_dividerHigh->setX (m_modelColorFilterAfter->valueHigh(curveName), VALUE_MIN, VALUE_MAX); } else { ENGAUGE_ASSERT (false); } free (histogramBins); }
void DlgSettingsMainWindow::updateControls () { enableOk (true); }
void DlgSettingsPointMatch::updateControls() { // All controls in this dialog are always fully validated so the ok button is always enabled (after the first change) enableOk (true); }