Fixed: #1168 default & parent box working like a breeze

This commit is contained in:
aquiles 2010-11-14 21:49:19 +01:00
parent afe103b4fe
commit ce85b72410
3 changed files with 54 additions and 51 deletions

View file

@ -73,7 +73,7 @@ void CConfiguration::init()
} }
// setup config file callback // setup config file callback
Modules::config().setCallback("SearchPaths", CConfigCallback(this, &CConfiguration::cfcbSearchPaths)); Modules::config().setAndCallback("SearchPaths", CConfigCallback(this, &CConfiguration::cfcbSearchPaths));
} }

View file

@ -79,21 +79,18 @@ namespace NLQT
QBrush defaultBrush = QBrush(QColor(255,0,0,30)); QBrush defaultBrush = QBrush(QColor(255,0,0,30));
QBrush parentBrush = QBrush(QColor(0,255,0,30)); QBrush parentBrush = QBrush(QColor(0,255,0,30));
// if elm not existing it must be some kind of default or type value
if(!getItem(p_index)->getFormElm())
{
return defaultBrush;
}
// else it might be some parent elm
switch (getItem(p_index)->nodeFrom()) switch (getItem(p_index)->nodeFrom())
{ {
case NLGEORGES::UFormElm::NodeParentForm: case NLGEORGES::UFormElm::NodeParentForm:
{ {
switch (getItem(p_index)->valueFrom()) return parentBrush;
{
case NLGEORGES::UFormElm::ValueDefaultDfn:
{
return defaultBrush;
}
default:
{
return parentBrush;
}
}
} }
case NLGEORGES::UFormElm::NodeForm: case NLGEORGES::UFormElm::NodeForm:
{ {
@ -103,21 +100,33 @@ namespace NLQT
{ {
return parentBrush; return parentBrush;
} }
case NLGEORGES::UFormElm::ValueDefaultDfn:
{
return defaultBrush;
}
default: default:
{ {
return QVariant(); // parent status test kindof ugly, testing only 2 steps deep
} // only needed for colorization as treeview default hides childs
} // when parent is hidden
} CFormItem *parent = getItem(p_index)->parent();
default: if (parent)
{ {
return QVariant(); if (parent->nodeFrom() == NLGEORGES::UFormElm::NodeParentForm)
} {
} return parentBrush;
}
CFormItem *parentParent = parent->parent();
if (parentParent)
{
if (parentParent->nodeFrom() == NLGEORGES::UFormElm::NodeParentForm)
{
return parentBrush;
}
} // endif parentParent
} // endif parent
} // end default
} // end switch valueFrom
} // end case nodeForm
} // end switch nodeFrom
return QVariant();
} }
case Qt::DecorationRole: case Qt::DecorationRole:
{ {
@ -136,7 +145,6 @@ namespace NLQT
} }
else if(value.contains(".tga") || value.contains(".png")) else if(value.contains(".tga") || value.contains(".png"))
{ {
qDebug() << p_index << p_role;
QString path = NLMISC::CPath::lookup(value.toStdString(),false).c_str(); QString path = NLMISC::CPath::lookup(value.toStdString(),false).c_str();
return QIcon(":/images/pqrticles.png"); return QIcon(":/images/pqrticles.png");
} }
@ -282,8 +290,7 @@ namespace NLQT
return; return;
uint num = 0; uint num = 0;
UFormElm::TWhereIsNode *whereN = new UFormElm::TWhereIsNode;
UFormElm::TWhereIsValue *whereV = new UFormElm::TWhereIsValue;
if (root->isStruct()) if (root->isStruct())
{ {
@ -292,6 +299,8 @@ namespace NLQT
root->getStructSize(structSize); root->getStructSize(structSize);
while (num < structSize) while (num < structSize)
{ {
UFormElm::TWhereIsNode *whereN = new UFormElm::TWhereIsNode;
UFormElm::TWhereIsValue *whereV = new UFormElm::TWhereIsValue;
// Append a new item to the current parent's list of children. // Append a new item to the current parent's list of children.
std::string elmName; std::string elmName;
if(root->getStructNodeName(num, elmName)) if(root->getStructNodeName(num, elmName))
@ -400,7 +409,6 @@ namespace NLQT
elmtType.append("_noValue"); elmtType.append("_noValue");
} }
columnData << QString(elmName.c_str()) << QString(value.c_str()) << "" << elmtType; columnData << QString(elmName.c_str()) << QString(value.c_str()) << "" << elmtType;
qDebug() << columnData;
parent->appendChild(new CFormItem(elmt, columnData, parent, *whereV, *whereN)); parent->appendChild(new CFormItem(elmt, columnData, parent, *whereV, *whereN));
//if (parents.last()->childCount() > 0) { //if (parents.last()->childCount() > 0) {
// parents << parents.last()->child(parents.last()->childCount()-1); // parents << parents.last()->child(parents.last()->childCount()-1);
@ -441,7 +449,7 @@ namespace NLQT
columnData << QString(elmName.c_str()) << QString(value.c_str()) << "" << elmtType; columnData << QString(elmName.c_str()) << QString(value.c_str()) << "" << elmtType;
parent->appendChild(new CFormItem(elmt, columnData, parent, *whereV, *whereN)); parent->appendChild(new CFormItem(elmt, columnData, parent, *whereV, *whereN));
//columnData << QString(elmName.c_str()) << QString("default") << QString("default"); //columnData << QString(elmName.c_str()) << QString("default") << QString("default");
//parent->appendChild(new CFormItem(elmt, columnData, parent, UFormElm::ValueDefaultDfn, UFormElm::NodeDfn)); //parent->appendChild(new CFormItem(elmt, columnData, parent, UFormElm::ValueDefaultDfn, UFormElm::NodeDfn));
} }

View file

@ -32,7 +32,7 @@ namespace NLQT
{ {
bool CGeorgesFormProxyModel::filterAcceptsRow(int sourceRow, bool CGeorgesFormProxyModel::filterAcceptsRow(int sourceRow,
const QModelIndex &sourceParent) const const QModelIndex &sourceParent) const
{ {
//nlinfo("CGeorgesFormProxyModel::filterAcceptsRow"); //nlinfo("CGeorgesFormProxyModel::filterAcceptsRow");
@ -47,21 +47,19 @@ namespace NLQT
// item->nodeFrom(), // item->nodeFrom(),
// smodel->showParents(), // smodel->showParents(),
// (item->valueFrom() == NLGEORGES::UFormElm::NodeParentForm)); // (item->valueFrom() == NLGEORGES::UFormElm::NodeParentForm));
// if elm not existing it must be some kind of default or type value
if(!item->getFormElm())
{
return smodel->showDefaults();
}
// else it might be some parent elm
switch (item->nodeFrom()) switch (item->nodeFrom())
{ {
case NLGEORGES::UFormElm::NodeParentForm: case NLGEORGES::UFormElm::NodeParentForm:
{ {
switch (item->valueFrom()) return smodel->showParents();
{
case NLGEORGES::UFormElm::ValueDefaultDfn:
{
return smodel->showDefaults();
}
default:
{
return smodel->showParents();;
}
}
} }
case NLGEORGES::UFormElm::NodeForm: case NLGEORGES::UFormElm::NodeForm:
{ {
@ -71,21 +69,18 @@ namespace NLQT
{ {
return smodel->showParents(); return smodel->showParents();
} }
case NLGEORGES::UFormElm::ValueDefaultDfn:
{
return smodel->showDefaults();
}
default: default:
{ {
return true; CFormItem *parent = item->parent();
if (parent && (parent->nodeFrom() == NLGEORGES::UFormElm::NodeParentForm))
{
return smodel->showParents();
}
} }
} }
} }
default:
{
return true;
}
} }
return true;
} }
/******************************************************************************/ /******************************************************************************/