diff --git a/x26dockwidget.cpp b/x26dockwidget.cpp index f07849a..1e416de 100644 --- a/x26dockwidget.cpp +++ b/x26dockwidget.cpp @@ -892,28 +892,36 @@ void X26DockWidget::updateCookedTripletParameters(const QModelIndex &index) // Now deal with cooked row and column spinboxes m_cookedRowSpinBox->blockSignals(true); m_cookedColumnSpinBox->blockSignals(true); - QVariant rowVariant = index.model()->data(index.model()->index(index.row(), 0), Qt::EditRole); + const QVariant rowVariant = index.model()->data(index.model()->index(index.row(), 0), Qt::EditRole); if (rowVariant.isNull()) { m_cookedRowSpinBox->setEnabled(false); m_cookedRowSpinBox->setValue(0); + m_cookedRowSpinBox->setPrefix(""); } else { m_cookedRowSpinBox->setEnabled(true); - if (index.model()->data(index.model()->index(index.row(), 2), Qt::EditRole) == 0x10) + if (modeExt == 0x10) { m_cookedRowSpinBox->setRange(0, 23); - else + m_cookedRowSpinBox->setPrefix("+"); + } else { m_cookedRowSpinBox->setRange(1, 24); + m_cookedRowSpinBox->setPrefix(""); + } m_cookedRowSpinBox->setValue(rowVariant.toInt()); } - QVariant columnVariant = index.model()->data(index.model()->index(index.row(), 1), Qt::EditRole); + const QVariant columnVariant = index.model()->data(index.model()->index(index.row(), 1), Qt::EditRole); if (columnVariant.isNull()) { m_cookedColumnSpinBox->setEnabled(false); m_cookedColumnSpinBox->setValue(0); + m_cookedColumnSpinBox->setPrefix(""); } else { m_cookedColumnSpinBox->setEnabled(true); - if (index.model()->data(index.model()->index(index.row(), 2), Qt::EditRole) == 0x10) + if (modeExt == 0x10) { m_cookedColumnSpinBox->setMaximum(71); - else + m_cookedColumnSpinBox->setPrefix("+"); + } else { m_cookedColumnSpinBox->setMaximum(39); + m_cookedColumnSpinBox->setPrefix(""); + } m_cookedColumnSpinBox->setValue(columnVariant.toInt()); } m_cookedRowSpinBox->blockSignals(false); diff --git a/x26model.cpp b/x26model.cpp index 82b516c..26c0b48 100644 --- a/x26model.cpp +++ b/x26model.cpp @@ -77,14 +77,14 @@ QVariant X26Model::data(const QModelIndex &index, int role) const if (role == Qt::DisplayRole || role == Qt::EditRole) switch (index.column()) { case 0: - // Show row number only if address part of triplet actually represents a row - // i.e. Full row colour, Set Active Position and Origin Modifier + // Show row number only if address part of triplet actually represents a row: + // Full row colour, Set Active Position and Origin Modifier // For Origin Modifier address of 40 refers to same row, so show it as 0 if (triplet.modeExt() == 0x10) { if (triplet.address() == 40) - return 0; + return "+0"; else - return triplet.addressRow(); + return QString("+%1").arg(triplet.addressRow()); } if (triplet.modeExt() == 0x01 || triplet.modeExt() == 0x04) return triplet.addressRow(); @@ -94,8 +94,10 @@ QVariant X26Model::data(const QModelIndex &index, int role) const if (!triplet.isRowTriplet()) return triplet.addressColumn(); // For Set Active Position and Origin Modifier, data is the column - else if (triplet.modeExt() == 0x04 || triplet.modeExt() == 0x10) + else if (triplet.modeExt() == 0x04) return triplet.data(); + else if (triplet.modeExt() == 0x10) + return QString("+%1").arg(triplet.data()); else return QVariant(); }