Skip to content

Commit

Permalink
graphics displayed consistent between files and sessions
Browse files Browse the repository at this point in the history
  • Loading branch information
LafCorentin committed Sep 16, 2020
1 parent 9065530 commit 28b7932
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 0 deletions.
Expand Up @@ -321,6 +321,13 @@ void CellMLZincMappingViewEditingWidget::setSizes(const QIntList &pSizesHorizont

//==============================================================================

CellMLZincMappingViewZincWidget * CellMLZincMappingViewEditingWidget::getZincWidget()
{
return mZincWidget;
}

//==============================================================================

void CellMLZincMappingViewEditingWidget::dragEnterEvent(QDragEnterEvent *pEvent)
{
// Accept the proposed action for the event, but only if it refers to one or
Expand Down
Expand Up @@ -112,6 +112,8 @@ class CellMLZincMappingViewEditingWidget : public Core::Widget
void setSizes(const QIntList &pSizesHorizontal,
const QIntList &pSizesVertical);

CellMLZincMappingViewZincWidget * getZincWidget();

signals:
void horizontalSplitterMoved(const QIntList &pSizes);
void verticalSplitterMoved(const QIntList &pSizes);
Expand Down
Expand Up @@ -54,6 +54,7 @@ void CellMLZincMappingViewWidget::retranslateUi()

//==============================================================================

static const char *SettingsCellmlZincMappingViewDisplayedZincField = "CellmlZincMappingViewDisplayedZincField";
static const char *SettingsCellmlZincMappingViewEditingWidgetHorizontalSizes = "CellmlZincMappingViewEditingWidgetHorizontalSizes";
static const char *SettingsCellmlZincMappingViewEditingWidgetVerticalSizes = "CellmlZincMappingViewEditingWidgetVerticalSizes";
static const char *SettingsCellmlZincMappingViewMeshFileNames = "CellmlZincMappingViewMeshFileNames";
Expand All @@ -74,10 +75,18 @@ void CellMLZincMappingViewWidget::loadSettings(QSettings &pSettings)
0.13*AvailableGeometryHeight};
static const QStringList DefaultMeshFileNames = {};

static const QVariantList DefaultDisplayedZincFields = {true, true, true, true, true};

mEditingWidgetHorizontalSizes = qVariantListToIntList(pSettings.value(SettingsCellmlZincMappingViewEditingWidgetHorizontalSizes, DefaultEditingWidgetHorizontalSizes).toList());
mEditingWidgetVerticalSizes = qVariantListToIntList(pSettings.value(SettingsCellmlZincMappingViewEditingWidgetVerticalSizes, DefaultEditingWidgetVerticalSizes).toList());

mMeshFileNames = pSettings.value(SettingsCellmlZincMappingViewMeshFileNames, DefaultMeshFileNames).toStringList();

mDisplayedZincFields.clear();

for (QVariant variant : pSettings.value(SettingsCellmlZincMappingViewDisplayedZincField, DefaultDisplayedZincFields).toList()) {
mDisplayedZincFields.append(variant.toBool());
}
}

//==============================================================================
Expand All @@ -90,12 +99,27 @@ void CellMLZincMappingViewWidget::saveSettings(QSettings &pSettings) const
pSettings.setValue(SettingsCellmlZincMappingViewEditingWidgetVerticalSizes, qIntListToVariantList(mEditingWidgetVerticalSizes));

pSettings.setValue(SettingsCellmlZincMappingViewMeshFileNames, mMeshFileNames);

QVariantList toVariant;
for (bool value : mDisplayedZincFields) {
toVariant.append(QVariant(value));
}

pSettings.setValue(SettingsCellmlZincMappingViewDisplayedZincField, toVariant);
}

//==============================================================================

void CellMLZincMappingViewWidget::initialize(const QString &pFileName)
{

// Try to get back the last state of display

if (mEditingWidget != nullptr) {
mDisplayedZincFields = mEditingWidget->getZincWidget()->getCheckedAction();
}


// Retrieve the editing widget associated with the given file, if any

mEditingWidget = mEditingWidgets.value(pFileName);
Expand All @@ -117,6 +141,10 @@ void CellMLZincMappingViewWidget::initialize(const QString &pFileName)
mEditingWidgets.insert(pFileName, mEditingWidget);
}

// load its settings

mEditingWidget->getZincWidget()->setCheckedAction(mDisplayedZincFields);

// Update the sizes of our new editing widget

mEditingWidget->setSizes(mEditingWidgetHorizontalSizes,
Expand All @@ -143,6 +171,9 @@ void CellMLZincMappingViewWidget::finalize(const QString &pFileName)
CellMLZincMappingViewEditingWidget *editingWidget = mEditingWidgets.value(pFileName);

if (editingWidget != nullptr) {

mDisplayedZincFields = editingWidget->getZincWidget()->getCheckedAction();

// There is an editing widget for the given file name, so delete it and
// remove it from our list

Expand Down
Expand Up @@ -80,6 +80,8 @@ class CellMLZincMappingViewWidget : public Core::ViewWidget

QStringList mMeshFileNames;

QList<bool> mDisplayedZincFields;

private slots:
void EditingWidgetHorizontalSplitterMoved(const QIntList &pSizes);
void EditingWidgetVerticalSplitterMoved(const QIntList &pSizes);
Expand Down
Expand Up @@ -220,6 +220,30 @@ void CellMLZincMappingViewZincWidget::setNodeMapped(int pId, QString pComponent,

//==============================================================================

QList<bool> CellMLZincMappingViewZincWidget::getCheckedAction()
{
return {mActionAxes->isChecked(),
mActionLines->isChecked(),
mActionSurfaces->isChecked(),
mActionIsosurfaces->isChecked(),
mActionLabel->isChecked()};
}

//==============================================================================

void CellMLZincMappingViewZincWidget::setCheckedAction(QList<bool> values)
{
mActionAxes->setChecked(values.isEmpty() ? true : values.takeFirst());
mActionLines->setChecked(values.isEmpty() ? true : values.takeFirst());
mActionSurfaces->setChecked(values.isEmpty() ? true : values.takeFirst());
mActionIsosurfaces->setChecked(values.isEmpty() ? true : values.takeFirst());
mActionLabel->setChecked(values.isEmpty() ? true : values.takeFirst());

showHideGraphics(GraphicsType::All);
}

//==============================================================================

void CellMLZincMappingViewZincWidget::initializeGL()
{
ZincWidget::initializeGL();
Expand Down
Expand Up @@ -70,6 +70,9 @@ class CellMLZincMappingViewZincWidget : public ZincWidget::ZincWidget
bool hasNode(int pId);
void setNodeMapped(int pId, QString pComponent, QString pVariable);

QList<bool> getCheckedAction();
void setCheckedAction(QList<bool>);

static constexpr double nodeSizeOrigin = 0;
static constexpr double nodeSixeExp = 1.1;

Expand Down

0 comments on commit 28b7932

Please sign in to comment.