Change DRCS mode level 2.5/3.5 widget
This commit is contained in:
@@ -316,12 +316,12 @@ X26DockWidget::X26DockWidget(TeletextWidget *parent): QDockWidget(parent)
|
||||
// Index 6 - DRCS mode
|
||||
QHBoxLayout *DRCSModeLayout = new QHBoxLayout;
|
||||
|
||||
m_DRCSModeRequiredAtL2p5CheckBox = new QCheckBox("L2.5");
|
||||
m_DRCSModeRequiredAtL3p5CheckBox = new QCheckBox("L3.5");
|
||||
DRCSModeLayout->addWidget(m_DRCSModeRequiredAtL2p5CheckBox);
|
||||
DRCSModeLayout->addWidget(m_DRCSModeRequiredAtL3p5CheckBox);
|
||||
connect(m_DRCSModeRequiredAtL2p5CheckBox, &QCheckBox::stateChanged, this, [=](const int value) { updateModelFromCookedWidget(value, Qt::UserRole+1); } );
|
||||
connect(m_DRCSModeRequiredAtL3p5CheckBox, &QCheckBox::stateChanged, this, [=](const int value) { updateModelFromCookedWidget(value, Qt::UserRole+2); } );
|
||||
m_DRCSModeRequiredAtLevelsComboBox = new QComboBox;
|
||||
m_DRCSModeRequiredAtLevelsComboBox->addItem("L2.5 only");
|
||||
m_DRCSModeRequiredAtLevelsComboBox->addItem("L3.5 only");
|
||||
m_DRCSModeRequiredAtLevelsComboBox->addItem("L2.5 + 3.5");
|
||||
DRCSModeLayout->addWidget(m_DRCSModeRequiredAtLevelsComboBox);
|
||||
connect(m_DRCSModeRequiredAtLevelsComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), [=](const int value) { updateModelFromCookedWidget(value, Qt::UserRole+1); } );
|
||||
m_DRCSModeGlobalRadioButton = new QRadioButton("Global");
|
||||
m_DRCSModeNormalRadioButton = new QRadioButton("Normal");
|
||||
QButtonGroup *DRCSModeButtonGroup = new QButtonGroup;
|
||||
@@ -788,18 +788,15 @@ void X26DockWidget::updateCookedTripletParameters(const QModelIndex &index)
|
||||
m_tripletParameterStackedLayout->setCurrentIndex(5);
|
||||
break;
|
||||
case 0x18: // DRCS mode
|
||||
m_DRCSModeRequiredAtL2p5CheckBox->blockSignals(true);
|
||||
m_DRCSModeRequiredAtL3p5CheckBox->blockSignals(true);
|
||||
m_DRCSModeRequiredAtLevelsComboBox->blockSignals(true);
|
||||
m_DRCSModeGlobalRadioButton->blockSignals(true);
|
||||
m_DRCSModeNormalRadioButton->blockSignals(true);
|
||||
m_DRCSModeSubPageSpinBox->blockSignals(true);
|
||||
m_DRCSModeRequiredAtL2p5CheckBox->setChecked(index.model()->data(index.model()->index(index.row(), 0), Qt::UserRole+1).toBool());
|
||||
m_DRCSModeRequiredAtL3p5CheckBox->setChecked(index.model()->data(index.model()->index(index.row(), 0), Qt::UserRole+2).toBool());
|
||||
m_DRCSModeRequiredAtLevelsComboBox->setCurrentIndex(index.model()->data(index.model()->index(index.row(), 0), Qt::UserRole+1).toInt());
|
||||
m_DRCSModeGlobalRadioButton->setChecked(!index.model()->data(index.model()->index(index.row(), 0), Qt::UserRole+3).toBool());
|
||||
m_DRCSModeNormalRadioButton->setChecked(index.model()->data(index.model()->index(index.row(), 0), Qt::UserRole+3).toBool());
|
||||
m_DRCSModeSubPageSpinBox->setValue(index.model()->data(index.model()->index(index.row(), 0), Qt::UserRole+4).toInt());
|
||||
m_DRCSModeRequiredAtL2p5CheckBox->blockSignals(false);
|
||||
m_DRCSModeRequiredAtL3p5CheckBox->blockSignals(false);
|
||||
m_DRCSModeRequiredAtLevelsComboBox->blockSignals(false);
|
||||
m_DRCSModeGlobalRadioButton->blockSignals(false);
|
||||
m_DRCSModeNormalRadioButton->blockSignals(false);
|
||||
m_DRCSModeSubPageSpinBox->blockSignals(false);
|
||||
|
||||
@@ -83,7 +83,7 @@ private:
|
||||
QSpinBox *m_invokePOPSubPageSpinBox, *m_invokePOPPacketNumberSpinBox;
|
||||
QComboBox *m_invokePOPTripletNumberComboBox, *m_invokePOPPointerBitsComboBox;
|
||||
QStackedLayout *m_invokeObjectSourceStackedLayout, *m_tripletParameterStackedLayout;
|
||||
QCheckBox *m_DRCSModeRequiredAtL2p5CheckBox, *m_DRCSModeRequiredAtL3p5CheckBox;
|
||||
QComboBox *m_DRCSModeRequiredAtLevelsComboBox;
|
||||
QRadioButton *m_DRCSModeGlobalRadioButton, *m_DRCSModeNormalRadioButton;
|
||||
QSpinBox *m_DRCSModeSubPageSpinBox;
|
||||
QRadioButton *m_DRCSCharacterGlobalRadioButton, *m_DRCSCharacterNormalRadioButton;
|
||||
|
||||
21
x26model.cpp
21
x26model.cpp
@@ -164,9 +164,9 @@ QVariant X26Model::data(const QModelIndex &index, int role) const
|
||||
case 0x30:
|
||||
result.append("L2.5 and 3.5");
|
||||
break;
|
||||
//case 0x00:
|
||||
// result = "Reserved";
|
||||
// break;
|
||||
case 0x00:
|
||||
result.append("Reserved");
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
case 0x1f: // Termination
|
||||
@@ -336,8 +336,8 @@ QVariant X26Model::data(const QModelIndex &index, int role) const
|
||||
// Required at which levels
|
||||
return ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x18) >> 3) - 1;
|
||||
case 0x18: // DRCS mode
|
||||
// Required at level 2.5
|
||||
return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x10) == 0x10;
|
||||
// Required at which levels
|
||||
return ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x30) >> 4) - 1;
|
||||
case 0x1f: // Termination
|
||||
// Intermed POP subpage|Last POP subpage|Local Object|Local enhance
|
||||
return ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x06) >> 1);
|
||||
@@ -375,9 +375,6 @@ QVariant X26Model::data(const QModelIndex &index, int role) const
|
||||
case 0x15 ... 0x17: // Define object
|
||||
// Local object: Designation code
|
||||
return ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x01) << 3) | ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x70) >> 4);
|
||||
case 0x18: // DRCS mode
|
||||
// Required at level 3.5
|
||||
return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x20) == 0x20;
|
||||
case 0x1f: // Termination
|
||||
// More follows/Last
|
||||
return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x01) == 0x01;
|
||||
@@ -629,8 +626,8 @@ bool X26Model::setData(const QModelIndex &index, const QVariant &value, int role
|
||||
m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETaddress, 0x27, (value.toInt()+1) << 3, role));
|
||||
break;
|
||||
case 0x18: // DRCS Mode
|
||||
// Required at level 2.5
|
||||
m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETdata, 0x6f, value.toInt() << 3, role));
|
||||
// Required at which levels
|
||||
m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETdata, 0x4f, (value.toInt()+1) << 4, role));
|
||||
break;
|
||||
case 0x1f: // Termination
|
||||
// Intermed POP subpage|Last POP subpage|Local Object|Local enhance
|
||||
@@ -679,10 +676,6 @@ bool X26Model::setData(const QModelIndex &index, const QVariant &value, int role
|
||||
m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETdata, 0x0f, (value.toInt() & 0x07) << 4, role));
|
||||
m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETaddress, 0x38, value.toInt() >> 3, role));
|
||||
break;
|
||||
case 0x18: // DRCS Mode
|
||||
// Required at level 3.5
|
||||
m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETdata, 0x5f, value.toInt() << 4, role));
|
||||
break;
|
||||
case 0x1f: // Termination
|
||||
// More follows/Last
|
||||
m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETdata, 0x06, value.toInt(), role));
|
||||
|
||||
Reference in New Issue
Block a user