// Constructor *************************************************
-XGUI_DataModel::XGUI_DataModel(QObject* theParent) : ModuleBase_IDocumentDataModel(theParent)
+XGUI_DataModel::XGUI_DataModel(QObject* theParent) : QAbstractItemModel(theParent)
{
myXMLReader.readAll();
break;
}
}
- }
-#ifdef _DEBUG
- else
- Events_Error::send("Problem with Data Model definition of sub-document");
-#endif
+ }
}
}
} else if (theMessage->eventID() == Events_Loop::loop()->eventByName(EVENT_OBJECT_UPDATED)) {
aParent = createIndex(folderId(aGroup, aDoc.get()), 0, aDoc.get());
}
int aChildNb = rowCount(aParent);
- rebuildBranch(aStartId, aChildNb - aStartId);
+ rebuildBranch(aStartId, aChildNb - aStartId, aParent);
} else if (theMessage->eventID() == Events_Loop::loop()->eventByName(EVENT_DOCUMENT_CHANGED)) {
DocumentPtr aDoc = ModelAPI_Session::get()->activeDocument();
if (aDoc != aRootDoc) {
QModelIndex aDocRoot = findDocumentRootIndex(aDoc.get());
if (aDocRoot.isValid())
emit dataChanged(aDocRoot, aDocRoot);
-#ifdef _DEBUG
- else
- Events_Error::send("Problem with Data Model definition of sub-document");
-#endif
+ else
+ // We have got a new document
+ rebuildDataTree();
+//#ifdef _DEBUG
+// else
+// Events_Error::send("Problem with Data Model definition of sub-document");
+//#endif
}
}
}
//******************************************************
void XGUI_DataModel::rebuildDataTree()
{
-
+ beginResetModel();
+ endResetModel();
}
//******************************************************
case Qt::DecorationRole:
return QIcon(myXMLReader.rootFolderIcon(theIndexRow).c_str());
case Qt::ForegroundRole:
- if ((flags(theIndex) & Qt::ItemIsEditable) == 0)
+ if ((theIndex.flags() & Qt::ItemIsEditable) == 0)
return QBrush(Qt::lightGray);
return ACTIVE_COLOR;
}
} else { // an object or sub-document
if (theRole == Qt::ForegroundRole) {
- if ((flags(theIndex) & Qt::ItemIsEditable) == 0)
+ if ((theIndex.flags() & Qt::ItemIsEditable) == 0)
return QBrush(Qt::lightGray);
return ACTIVE_COLOR;
}
} else if (aDoc) {
// A folder under sub-document
if (aActiveDoc.get() != aDoc)
- return aDefaultFlag;
+ return aNullFlag;
}
return aEditingFlag;
}