Exemplo n.º 1
0
void QAutoGenModelDialog::slotPropertiesValueChanged(int row, int col)
{
	QString strParam = m_tableProperties->text(row, 0);
	std::map<QString, AutoGenParameter>::iterator iterParam = m_pParams->find(strParam);
	if (iterParam != m_pParams->end())
	{
		if (col == 1 && m_tableProperties->item(row, 1) != NULL)
		{
			QString strText = ((QComboTableItem *)m_tableProperties->item(row, 1))->currentText();
			switch (iterParam->second.eType & (~AutoGenParamTypeNoRandom))
			{
			case AutoGenParamTypeFixed:
			case AutoGenParamTypeRandom:
			case AutoGenParamTypeFile:
				if ((iterParam->second.eType & AutoGenParamTypeNoRandom) != AutoGenParamTypeNoRandom && strText.compare(COMBOITEM_RANDOM) == 0)
					iterParam->second.eType = AutoGenParamTypeRandom;
				else if (strText.compare(COMBOITEM_FILE) == 0)
					iterParam->second.eType = AutoGenParamTypeFile;
				else
					iterParam->second.eType = AutoGenParamTypeFixed;
				m_tableProperties->clearCell(row, 2);
				AddTableItem(m_tableProperties, row, iterParam->first, iterParam->second);
				break;
			default:
				break; // no actual change here
			}
		}
		else if (col == 2)
		{
			iterParam->second.strValue = m_tableProperties->text(row, 2);
		}
	}
}
void QAutoGenDialog::slotVehicleTypeActivated(int index)
{
	m_buttonOK->setEnabled(index > -1);
	disconnect(m_tableProperties, SIGNAL(valueChanged(int, int)), this, SLOT(slotPropertiesValueChanged(int, int )));
	if (index > -1)
	{
		int iRow;
		std::map<QString, std::map<QString, AutoGenParameter> >::iterator iterModel = index > -1 && index < m_comboVehicleType->count() ? m_mapModels.find(m_comboVehicleType->text(index)) : m_mapModels.end();
		if (iterModel != m_mapModels.end())
		{
			std::map<QString, std::map<QString, ModelParameter> >::iterator iterParams = m_pMapParams->find(iterModel->first);
			std::map<QString, ModelParameter>::iterator iterParam;
			std::map<QString, AutoGenParameter>::iterator iterValue;
			m_tableProperties->setNumRows(0);
			m_tableProperties->setNumRows(iterModel->second.size());
			for (iterValue = iterModel->second.begin(), iRow = 0; iterValue != iterModel->second.end(); ++iterValue, iRow++)
			{
				iterParam = iterParams->second.find(iterValue->first);
				m_tableProperties->setText(iRow, 0, iterValue->first);
				if (iterParam != iterParams->second.end())
					m_tableProperties->setRowReadOnly(iRow, !AddTableItem(m_tableProperties, iRow, iterValue->second, true));
			}
			m_tableProperties->sortColumn(0, true, true);
		} else
			m_tableProperties->setNumRows(0);
	}
	else
		m_tableProperties->setNumRows(0);
	connect(m_tableProperties, SIGNAL(valueChanged(int, int)), this, SLOT(slotPropertiesValueChanged(int, int )));
	m_tableProperties->adjustColumn(0);
}
Exemplo n.º 3
0
void QAutoGenModelDialog::InitializeModelParams()
{
	int iRow;
	std::map<QString, ModelParameter>::iterator iterParam;
	std::map<QString, AutoGenParameter>::iterator iterValue;

	disconnect(m_tableProperties, SIGNAL(valueChanged(int, int)), this, SLOT(slotPropertiesValueChanged(int, int )));
	m_tableProperties->setNumRows(0);
	for (iterValue = m_pParams->begin(), iRow = 0; iterValue != m_pParams->end(); ++iterValue)
	{
		iterParam = m_pModelParams->find(iterValue->first);
		m_tableProperties->insertRows(iRow);
		m_tableProperties->setText(iRow, 0, iterValue->first);
		if (iterParam != m_pModelParams->end())
			m_tableProperties->setRowReadOnly(iRow, !AddTableItem(m_tableProperties, iRow, iterValue->first, iterValue->second, true, (iterValue->second.eType == AutoGenParamTypeNewModel && m_pAssocModelTypeMap->find(iterValue->first) != m_pAssocModelTypeMap->end())));
		else
			m_tableProperties->setRowReadOnly(iRow, true);
		iRow++;
	}
	m_tableProperties->sortColumn(0, true, true);
	connect(m_tableProperties, SIGNAL(valueChanged(int, int)), this, SLOT(slotPropertiesValueChanged(int, int )));
	m_tableProperties->adjustColumn(0);
}
void QAutoGenDialog::slotPropertiesValueChanged(int row, int col)
{
	QString strParam = m_tableProperties->text(row, 0);
	std::map<QString, std::map<QString, AutoGenParameter> >::iterator iterModel = m_mapModels.find(m_comboVehicleType->currentText());
	if (iterModel != m_mapModels.end())
	{
		std::map<QString, AutoGenParameter>::iterator iterParam = iterModel->second.find(strParam);
		if (iterParam != iterModel->second.end())
		{
			if (col == 1)
			{
				QString strText = ((Q3ComboTableItem *)m_tableProperties->item(row, 1))->currentText();
				switch (iterParam->second.eType & (~AutoGenParamTypeNoRandom))
				{
				case AutoGenParamTypeFixed:
				case AutoGenParamTypeRandom:
				case AutoGenParamTypeFile:
					if ((iterParam->second.eType & AutoGenParamTypeNoRandom) != AutoGenParamTypeNoRandom && strText.compare(COMBOITEM_RANDOM) == 0)
						iterParam->second.eType = AutoGenParamTypeRandom;
					else if (strText.compare(COMBOITEM_FILE) == 0)
						iterParam->second.eType = AutoGenParamTypeFile;
					else
						iterParam->second.eType = AutoGenParamTypeFixed;
					m_tableProperties->clearCell(row, 2);
					AddTableItem(m_tableProperties, row, iterParam->second);
					break;
				default:
					break;
				}
			}
			else if (col == 2)
			{
				iterParam->second.strValue = m_tableProperties->text(row, 2);
			}
		}
	}
}