XMLAttribute *XMLTreeNode::GetAttribute(const char *name) const { XMLAttribute *a; a=attributes; while (a) { if (a->GetName()) { switch (mmode) { case MATCH_CASE: if (!strcmp(a->GetName(), name)) return a; case MATCH_NOCASE: if (!stricmp(a->GetName(), name)) return a; } } a=a->GetNext(); } return 0; }
AttributeWidget::AttributeWidget(const XMLAttribute &xmlAttribute, InspectorWidget *inspectorWidget, bool isSubWidget, bool createLabel, bool labelAbove ) : m_inspectorWidget(inspectorWidget) { m_xmlAttribute = xmlAttribute; Refresh(xmlAttribute); m_layout = new QHBoxLayout(); m_layout->setAlignment(Qt::AlignHCenter | Qt::AlignTop); m_layout->setContentsMargins(4, 4, 4, 4); setLayout(m_layout); setMinimumWidth(40); if (!labelAbove) { m_layout->setSpacing(10); // Margin to the right of the label } if (!isSubWidget) { QString label = ""; if (createLabel) { String name = xmlAttribute.GetName(); name = StringUtils::FormatInspectorLabel(name); label = QString::fromStdString(name); } QGridLayout *gridLayout = m_inspectorWidget->GetGridLayout(); m_rowIndexInGridLayout = m_inspectorWidget->GetNextRowIndex(); int widgetRow = m_rowIndexInGridLayout + (labelAbove ? 1 : 0); int widgetCol = (labelAbove ? 0 : 1); int colSpan = (labelAbove ? 2 : 1); m_label = new QLabel(label); gridLayout->addWidget(m_label, m_rowIndexInGridLayout, 0, 1, colSpan, Qt::AlignLeft | Qt::AlignVCenter); gridLayout->addWidget(this, widgetRow, widgetCol, 1, colSpan, Qt::AlignVCenter); } Refresh(xmlAttribute); }