Skip to content

Commit

Permalink
Call setReloadNeeded for non-existing classes. So we can load them wh…
Browse files Browse the repository at this point in the history
…en opened.
  • Loading branch information
adeas31 committed Oct 26, 2015
1 parent a698deb commit 475a176
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 33 deletions.
2 changes: 1 addition & 1 deletion OMEdit/OMEditGUI/Modeling/LibraryTreeWidget.cpp
Expand Up @@ -1494,7 +1494,7 @@ void LibraryTreeModel::showModelWidget(LibraryTreeItem *pLibraryTreeItem, QStrin
}
if (pLibraryTreeItem->getModelWidget()) {
pLibraryTreeItem->getModelWidget()->setWindowTitle(pLibraryTreeItem->getNameStructure() + (pLibraryTreeItem->isSaved() ? "" : "*"));
if (pLibraryTreeItem->getModelWidget()->isReloadNeeded() && show) {
if (pLibraryTreeItem->getModelWidget()->isReloadNeeded()) {
pLibraryTreeItem->getModelWidget()->setReloadNeeded(false);
pLibraryTreeItem->getModelWidget()->loadModelWidget();
pLibraryTreeItem->handleIconUpdated();
Expand Down
73 changes: 42 additions & 31 deletions OMEdit/OMEditGUI/Modeling/ModelWidgetContainer.cpp
Expand Up @@ -2285,26 +2285,32 @@ ModelWidget::ModelWidget(LibraryTreeItem* pLibraryTreeItem, ModelWidgetContainer
}
}

/*!
* \brief ModelWidget::loadModelWidget
* Loads the ModelWidget.
*/
void ModelWidget::loadModelWidget()
{
if (mpLibraryTreeItem->getLibraryType() == LibraryTreeItem::Modelica) {
mpLibraryTreeItem->removeAllInheritedClasses();
mpIconGraphicsView->removeAllShapes();
mpIconGraphicsView->removeAllComponents();
mpIconGraphicsView->removeAllConnections();
mpIconGraphicsView->scene()->clear();
mpDiagramGraphicsView->removeAllShapes();
mpDiagramGraphicsView->removeAllComponents();
mpDiagramGraphicsView->removeAllConnections();
mpDiagramGraphicsView->scene()->clear();
getModelInheritedClasses(mpLibraryTreeItem);
drawModelInheritedClasses();
getModelIconDiagramShapes();
drawModelInheritedComponents();
getModelComponents();
drawModelInheritedConnections();
getModelConnections();
mpUndoStack->clear();
if (!mpLibraryTreeItem->isNonExisting()) {
mpLibraryTreeItem->removeAllInheritedClasses();
mpIconGraphicsView->removeAllShapes();
mpIconGraphicsView->removeAllComponents();
mpIconGraphicsView->removeAllConnections();
mpIconGraphicsView->scene()->clear();
mpDiagramGraphicsView->removeAllShapes();
mpDiagramGraphicsView->removeAllComponents();
mpDiagramGraphicsView->removeAllConnections();
mpDiagramGraphicsView->scene()->clear();
getModelInheritedClasses(mpLibraryTreeItem);
drawModelInheritedClasses();
getModelIconDiagramShapes();
drawModelInheritedComponents();
getModelComponents();
drawModelInheritedConnections();
getModelConnections();
mpUndoStack->clear();
}
if (mloadWidgetComponents) {
// set Project Status Bar lables
mpReadOnlyLabel->setText(mpLibraryTreeItem->isReadOnly() ? Helper::readOnly : tr("Writable"));
Expand Down Expand Up @@ -2879,6 +2885,7 @@ void ModelWidget::updateUndoRedoActions()
void ModelWidget::getModelInheritedClasses(LibraryTreeItem *pLibraryTreeItem)
{
MainWindow *pMainWindow = mpModelWidgetContainer->getMainWindow();
LibraryTreeModel *pLibraryTreeModel = pMainWindow->getLibraryWidget()->getLibraryTreeModel();
// get the inherited classes of the class
if (pLibraryTreeItem == mpLibraryTreeItem) {
QList<QString> inheritedClasses = pMainWindow->getOMCProxy()->getInheritedClasses(pLibraryTreeItem->getNameStructure());
Expand All @@ -2888,27 +2895,31 @@ void ModelWidget::getModelInheritedClasses(LibraryTreeItem *pLibraryTreeItem)
* Also check for cyclic loops.
*/
if (!(pMainWindow->getOMCProxy()->isBuiltinType(inheritedClass) || inheritedClass.compare(pLibraryTreeItem->getNameStructure()) == 0)) {
LibraryTreeItem *pInheritedClass = pMainWindow->getLibraryWidget()->getLibraryTreeModel()->findLibraryTreeItem(inheritedClass);
if (!pInheritedClass) {
pInheritedClass = pMainWindow->getLibraryWidget()->getLibraryTreeModel()->createNonExistingLibraryTreeItem(inheritedClass);
LibraryTreeItem *pInheritedLibraryTreeItem = pLibraryTreeModel->findLibraryTreeItem(inheritedClass);
if (!pInheritedLibraryTreeItem) {
pInheritedLibraryTreeItem = pLibraryTreeModel->createNonExistingLibraryTreeItem(inheritedClass);
}
if (!pInheritedClass->getModelWidget() || pInheritedClass->getModelWidget()->isReloadNeeded()) {
pMainWindow->getLibraryWidget()->getLibraryTreeModel()->showModelWidget(pInheritedClass, "", false);
if (!pInheritedLibraryTreeItem->getModelWidget() || pInheritedLibraryTreeItem->getModelWidget()->isReloadNeeded()) {
pLibraryTreeModel->showModelWidget(pInheritedLibraryTreeItem, "", false);
// we call ModelWidget::setReloadNeeded(true); so that when non-exisitng inherited class is opened we load it.
if (pInheritedLibraryTreeItem->isNonExisting()) {
pInheritedLibraryTreeItem->getModelWidget()->setReloadNeeded(true);
}
}
mpLibraryTreeItem->addInheritedClass(pInheritedClass);
getModelInheritedClasses(pInheritedClass);
addInheritedClass(pInheritedClass);
mpLibraryTreeItem->addInheritedClass(pInheritedLibraryTreeItem);
getModelInheritedClasses(pInheritedLibraryTreeItem);
addInheritedClass(pInheritedLibraryTreeItem);
}
}
} else {
QList<LibraryTreeItem*> inheritedClasses = pLibraryTreeItem->getInheritedClasses();
foreach (LibraryTreeItem *pInheritedClass, inheritedClasses) {
if ((!pInheritedClass->getModelWidget() || pInheritedClass->getModelWidget()->isReloadNeeded()) && !pInheritedClass->isNonExisting()) {
pMainWindow->getLibraryWidget()->getLibraryTreeModel()->showModelWidget(pInheritedClass, "", false);
foreach (LibraryTreeItem *pInheritedLibraryTreeItem, inheritedClasses) {
if ((!pInheritedLibraryTreeItem->getModelWidget() || pInheritedLibraryTreeItem->getModelWidget()->isReloadNeeded()) && !pInheritedLibraryTreeItem->isNonExisting()) {
pLibraryTreeModel->showModelWidget(pInheritedLibraryTreeItem, "", false);
}
mpLibraryTreeItem->addInheritedClass(pInheritedClass);
getModelInheritedClasses(pInheritedClass);
addInheritedClass(pInheritedClass);
mpLibraryTreeItem->addInheritedClass(pInheritedLibraryTreeItem);
getModelInheritedClasses(pInheritedLibraryTreeItem);
addInheritedClass(pInheritedLibraryTreeItem);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion OMEdit/OMEditGUI/Modeling/ModelWidgetContainer.h
Expand Up @@ -333,6 +333,7 @@ class ModelWidget : public QWidget
Q_OBJECT
public:
ModelWidget(LibraryTreeItem* pLibraryTreeItem, ModelWidgetContainer *pModelWidgetContainer, QString text);
void loadModelWidget();

class InheritedClass : public QObject
{
Expand Down Expand Up @@ -373,7 +374,6 @@ class ModelWidget : public QWidget
bool isLoadedWidgetComponents() {return mloadWidgetComponents;}
void setReloadNeeded(bool reloadNeeded) {mReloadNeeded = reloadNeeded;}
bool isReloadNeeded() {return mReloadNeeded;}
void loadModelWidget();
void addInheritedClass(LibraryTreeItem *pLibraryTreeItem);
void removeInheritedClass(InheritedClass *pInheritedClass) {mInheritedClassesList.removeOne(pInheritedClass);}
QList<InheritedClass*> getInheritedClassesList() {return mInheritedClassesList;}
Expand Down

0 comments on commit 475a176

Please sign in to comment.