//************************************************************************* // Method: InternalConstructor // Description: Internal constructor for the DisplayableDataNode class // // Parameters: // Name - name of the node // Type - type of the node // pID - process ID for the node // tID - thread ID for the node // // Return Value: None //************************************************************************* void DisplayableDataNode::InternalConstructor(String *Name, NodeType Type, int pID, int tID) { dataEventRegistry = dataEventRegistry->getInstance(); nodeName = Name; nodeType = Type; processID = pID; threadID = tID; nodeID = ""; perThereadMode = false; UpdateDelegates(); }
void FieldEditPanel::OnBitRangeEdited(const QString& input) { const SocBitRangeValidator *validator = dynamic_cast< const SocBitRangeValidator *>(m_bitrange_edit->validator()); int first, last; QValidator::State state = validator->parse(input, last, first); if(state != QValidator::Acceptable) return; m_ref.GetField().first_bit = first; m_ref.GetField().last_bit = last; // update all warning signs for(size_t row = 0; row < m_ref.GetField().value.size(); row++) UpdateWarning(row); // also updates delegates because they now have the wrong view of the field UpdateDelegates(); emit OnModified(true); }
/** * FieldEditPanel */ FieldEditPanel::FieldEditPanel(SocFieldRef ref, QWidget *parent) :QWidget(parent), m_ref(ref) { m_name_group = new QGroupBox("Name", this); m_name_edit = new QLineEdit(this); m_name_edit->setText(QString::fromStdString(ref.GetField().name)); QVBoxLayout *name_group_layout = new QVBoxLayout; name_group_layout->addWidget(m_name_edit); m_name_group->setLayout(name_group_layout); m_bitrange_group = new QGroupBox("Bit Range", this); m_bitrange_edit = new QLineEdit(this); const soc_reg_field_t& field = ref.GetField(); QString bits_str; if(field.first_bit == field.last_bit) bits_str.sprintf("%d", field.first_bit); else bits_str.sprintf("%d:%d", field.last_bit, field.first_bit); m_bitrange_edit->setText(bits_str); m_bitrange_edit->setValidator(new SocBitRangeValidator(m_bitrange_edit)); QVBoxLayout *bitrange_group_layout = new QVBoxLayout; bitrange_group_layout->addWidget(m_bitrange_edit); m_bitrange_group->setLayout(bitrange_group_layout); m_desc_group = new QGroupBox("Description", this); QHBoxLayout *group_layout = new QHBoxLayout; m_desc_edit = new MyTextEditor(this); m_desc_edit->SetTextHtml(QString::fromStdString(ref.GetField().desc)); group_layout->addWidget(m_desc_edit); m_desc_group->setLayout(group_layout); m_value_group = new QGroupBox("Values", this); QHBoxLayout *value_layout = new QHBoxLayout; m_value_table = new QTableWidget(this); m_value_table->setRowCount(ref.GetField().value.size() + 1); m_value_table->setColumnCount(FieldValueNrColumns); for(size_t row = 0; row < ref.GetField().value.size(); row++) FillRow(row, ref.GetField().value[row]); CreateNewRow(ref.GetField().value.size()); m_value_table->setHorizontalHeaderItem(FieldValueIconColumn, new QTableWidgetItem("")); m_value_table->setHorizontalHeaderItem(FieldValueNameColumn, new QTableWidgetItem("Name")); m_value_table->setHorizontalHeaderItem(FieldValueValueColumn, new QTableWidgetItem("Value")); m_value_table->setHorizontalHeaderItem(FieldValueDescColumn, new QTableWidgetItem("Description")); m_value_table->verticalHeader()->setVisible(false); m_value_table->horizontalHeader()->setStretchLastSection(true); value_layout->addWidget(m_value_table); m_value_group->setLayout(value_layout); QHBoxLayout *line_layout = new QHBoxLayout; line_layout->addWidget(m_name_group); line_layout->addWidget(m_bitrange_group); line_layout->addStretch(); QVBoxLayout *left_layout = new QVBoxLayout; left_layout->addLayout(line_layout); left_layout->addWidget(m_desc_group); left_layout->addWidget(m_value_group, 1); UpdateDelegates(); connect(m_name_edit, SIGNAL(textChanged(const QString&)), this, SLOT(OnNameEdited(const QString&))); connect(m_desc_edit, SIGNAL(OnTextChanged()), this, SLOT(OnDescEdited())); connect(m_value_table, SIGNAL(cellActivated(int,int)), this, SLOT(OnValueActivated(int,int))); connect(m_value_table, SIGNAL(cellChanged(int,int)), this, SLOT(OnValueChanged(int,int))); connect(m_bitrange_edit, SIGNAL(textChanged(const QString&)), this, SLOT(OnBitRangeEdited(const QString&))); setLayout(left_layout); }