Change object invocation level 2.5/3.5 widget
This commit is contained in:
@@ -243,12 +243,12 @@ X26DockWidget::X26DockWidget(TeletextWidget *parent): QDockWidget(parent)
|
||||
connect(m_objectSourceComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), [=](const int value) { updateModelFromCookedWidget(value, Qt::UserRole+1); updateCookedTripletParameters(m_x26View->currentIndex()); } );
|
||||
|
||||
// Object required at which levels
|
||||
m_objectRequiredAtL2p5CheckBox = new QCheckBox("L2.5");
|
||||
m_objectRequiredAtL3p5CheckBox = new QCheckBox("L3.5");
|
||||
invokeObjectLayout->addWidget(m_objectRequiredAtL2p5CheckBox);
|
||||
invokeObjectLayout->addWidget(m_objectRequiredAtL3p5CheckBox);
|
||||
connect(m_objectRequiredAtL2p5CheckBox, &QCheckBox::stateChanged, this, [=](const int value) { updateModelFromCookedWidget(value, Qt::UserRole+1); } );
|
||||
connect(m_objectRequiredAtL3p5CheckBox, &QCheckBox::stateChanged, this, [=](const int value) { updateModelFromCookedWidget(value, Qt::UserRole+4); } );
|
||||
m_objectRequiredAtLevelsComboBox = new QComboBox;
|
||||
m_objectRequiredAtLevelsComboBox->addItem("L2.5 only");
|
||||
m_objectRequiredAtLevelsComboBox->addItem("L3.5 only");
|
||||
m_objectRequiredAtLevelsComboBox->addItem("L2.5 + 3.5");
|
||||
invokeObjectLayout->addWidget(m_objectRequiredAtLevelsComboBox);
|
||||
connect(m_objectRequiredAtLevelsComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), [=](const int value) { updateModelFromCookedWidget(value, Qt::UserRole+1); } );
|
||||
|
||||
// Invoke Local Objects
|
||||
QHBoxLayout *invokeLocalObjectLayout = new QHBoxLayout;
|
||||
@@ -743,18 +743,13 @@ void X26DockWidget::updateCookedTripletParameters(const QModelIndex &index)
|
||||
if (index.model()->data(index.model()->index(index.row(), 1), Qt::UserRole).toInt() & 0x04) {
|
||||
// Define object
|
||||
m_objectSourceComboBox->setVisible(false);
|
||||
m_objectRequiredAtL2p5CheckBox->setVisible(true);
|
||||
m_objectRequiredAtL3p5CheckBox->setVisible(true);
|
||||
m_objectRequiredAtL2p5CheckBox->blockSignals(true);
|
||||
m_objectRequiredAtL3p5CheckBox->blockSignals(true);
|
||||
m_objectRequiredAtL2p5CheckBox->setChecked(index.model()->data(index.model()->index(index.row(), 0), Qt::UserRole+1).toBool());
|
||||
m_objectRequiredAtL3p5CheckBox->setChecked(index.model()->data(index.model()->index(index.row(), 0), Qt::UserRole+4).toBool());
|
||||
m_objectRequiredAtL2p5CheckBox->blockSignals(false);
|
||||
m_objectRequiredAtL3p5CheckBox->blockSignals(false);
|
||||
m_objectRequiredAtLevelsComboBox->setVisible(true);
|
||||
m_objectRequiredAtLevelsComboBox->blockSignals(true);
|
||||
m_objectRequiredAtLevelsComboBox->setCurrentIndex(index.model()->data(index.model()->index(index.row(), 0), Qt::UserRole+1).toInt());
|
||||
m_objectRequiredAtLevelsComboBox->blockSignals(false);
|
||||
} else {
|
||||
// Invoke object
|
||||
m_objectRequiredAtL2p5CheckBox->setVisible(false);
|
||||
m_objectRequiredAtL3p5CheckBox->setVisible(false);
|
||||
m_objectRequiredAtLevelsComboBox->setVisible(false);
|
||||
m_objectSourceComboBox->setVisible(true);
|
||||
}
|
||||
m_objectSourceComboBox->blockSignals(true);
|
||||
|
||||
@@ -78,8 +78,7 @@ private:
|
||||
QComboBox *m_flashModeComboBox, *m_flashRateComboBox;
|
||||
QComboBox *m_textSizeComboBox;
|
||||
QCheckBox *m_displayAttributeBoxingCheckBox, *m_displayAttributeConcealCheckBox, *m_displayAttributeInvertCheckBox, *m_displayAttributeUnderlineCheckBox;
|
||||
QComboBox *m_objectSourceComboBox;
|
||||
QCheckBox *m_objectRequiredAtL2p5CheckBox, *m_objectRequiredAtL3p5CheckBox;
|
||||
QComboBox *m_objectSourceComboBox, *m_objectRequiredAtLevelsComboBox;
|
||||
QSpinBox *m_invokeLocalObjectDesignationCodeSpinBox, *m_invokeLocalObjectTripletNumberSpinBox;
|
||||
QSpinBox *m_invokePOPSubPageSpinBox, *m_invokePOPPacketNumberSpinBox;
|
||||
QComboBox *m_invokePOPTripletNumberComboBox, *m_invokePOPPointerBitsComboBox;
|
||||
|
||||
17
x26model.cpp
17
x26model.cpp
@@ -333,8 +333,8 @@ QVariant X26Model::data(const QModelIndex &index, int role) const
|
||||
return ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x18) >> 3) - 1;
|
||||
break;
|
||||
case 0x15 ... 0x17: // Define object
|
||||
// Required at level 2.5
|
||||
return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x08) == 0x08;
|
||||
// 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;
|
||||
@@ -426,9 +426,6 @@ QVariant X26Model::data(const QModelIndex &index, int role) const
|
||||
case 0x11 ... 0x13: // Invoke object
|
||||
// (G)POP object: Triplet number
|
||||
return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() >> 5;
|
||||
case 0x15 ... 0x17: // Define object
|
||||
// Required at level 3.5
|
||||
return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x10) == 0x10;
|
||||
case 0x18: // DRCS mode
|
||||
// Subpage
|
||||
return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x0f;
|
||||
@@ -520,7 +517,7 @@ bool X26Model::setData(const QModelIndex &index, const QVariant &value, int role
|
||||
// Now set data values to avoid reserved bits if we need to
|
||||
// FIXME this can rather messily push multiple EditTripletCommands
|
||||
// that rely on mergeWith to tidy them up afterwards
|
||||
// Also this just flips bits, where we could use default values
|
||||
// Also this just flips bits, where we could use default values
|
||||
switch (intValue) {
|
||||
case 0x00: // Full screen colour
|
||||
case 0x20: // Foreground colour
|
||||
@@ -628,8 +625,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 0x15 ... 0x17: // Define object
|
||||
// Required at level 2.5
|
||||
m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETaddress, 0x37, value.toInt() << 2, role));
|
||||
// Required at which levels
|
||||
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
|
||||
@@ -744,10 +741,6 @@ bool X26Model::setData(const QModelIndex &index, const QVariant &value, int role
|
||||
// (G)POP object: Triplet number
|
||||
m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETdata, 0x1f, value.toInt() << 5, role));
|
||||
break;
|
||||
case 0x15 ... 0x17: // Define object
|
||||
// Required at level 3.5
|
||||
m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETaddress, 0x2f, value.toInt() << 3, role));
|
||||
break;
|
||||
case 0x18: // DRCS Mode
|
||||
// Subpage
|
||||
m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETdata, 0x70, value.toInt(), role));
|
||||
|
||||
Reference in New Issue
Block a user