Skip to content

Commit

Permalink
Simulation Experiment view: fixed a slight GUI glitch on macOS (#2277).
Browse files Browse the repository at this point in the history
Also cleaned up the relative size of different resizable widgets.
  • Loading branch information
agarny committed Jan 15, 2020
1 parent 5d0d1ec commit 23211d4
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 50 deletions.
Expand Up @@ -52,8 +52,8 @@ CellmlAnnotationViewWidget::CellmlAnnotationViewWidget(CellMLAnnotationViewPlugi

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

static const char *SettingsCellmlAnnotationViewEditingWidgetSizes = "EditingWidgetSizes";
static const char *SettingsCellmlAnnotationViewMetadataDetailsWidgetSizes = "MetadataDetailsWidgetSizes";
static const char *SettingsCellmlAnnotationViewEditingWidgetSizes = "CellmlAnnotationViewEditingWidgetSizes";
static const char *SettingsCellmlAnnotationViewMetadataDetailsWidgetSizes = "CellmlAnnotationViewMetadataDetailsWidgetSizes";

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

Expand All @@ -65,12 +65,14 @@ void CellmlAnnotationViewWidget::loadSettings(QSettings &pSettings)
// some information between the different instances, so we have to do
// it here instead...

QRect availableGeometry = qApp->primaryScreen()->availableGeometry();
QVariantList defaultEditingWidgetSizes = QVariantList() << 0.25*availableGeometry.width()
<< 0.75*availableGeometry.width();
QVariantList defaultMetadataDetailsWidgetSizes = QVariantList() << 0.25*availableGeometry.height()
<< 0.25*availableGeometry.height()
<< 0.50*availableGeometry.height();
static const QRect availableGeometry = qApp->primaryScreen()->availableGeometry();
static const int availableGeometryWidth = availableGeometry.width();
static const int availableGeometryHeight = availableGeometry.height();
static const QVariantList defaultEditingWidgetSizes = QVariantList() << 0.25*availableGeometryWidth
<< 0.75*availableGeometryWidth;
static const QVariantList defaultMetadataDetailsWidgetSizes = QVariantList() << 0.25*availableGeometryHeight
<< 0.25*availableGeometryHeight
<< 0.50*availableGeometryHeight;

mEditingWidgetSizes = qVariantListToIntList(pSettings.value(SettingsCellmlAnnotationViewEditingWidgetSizes, defaultEditingWidgetSizes).toList());
mMetadataDetailsWidgetSizes = qVariantListToIntList(pSettings.value(SettingsCellmlAnnotationViewMetadataDetailsWidgetSizes, defaultMetadataDetailsWidgetSizes).toList());
Expand Down
Expand Up @@ -111,21 +111,13 @@ static const char *SettingsCellmlEditingViewWidgetSizes = "CellmlEditingViewWidg
void CellmlEditingViewWidget::loadSettings(QSettings &pSettings)
{
// Retrieve and set our sizes
// Note #1: the MathML viewer and editor list widgets' default height is 19%
// and 13%, respectively, of the desktop's height while that of the
// editor widget is as big as it can be...
// Note #2: because the editor widget's default height is much bigger than
// that of our widget, the MathML viewer and editor list widgets'
// default height will effectively be less than 19% and 13%,
// respectively, of the desktop's height, but that doesn't matter
// at all...

int availableGeometryHeight = qApp->primaryScreen()->availableGeometry().height();
QVariantList defaultCellmlEditingViewWidgetSizes = QVariantList() << 0.19*availableGeometryHeight
<< availableGeometryHeight
<< 0.13*availableGeometryHeight;

mEditingWidgetSizes = qVariantListToIntList(pSettings.value(SettingsCellmlEditingViewWidgetSizes, defaultCellmlEditingViewWidgetSizes).toList());

static const int availableGeometryHeight = qApp->primaryScreen()->availableGeometry().height();
static const QVariantList defaultEditingWidgetSizes = QVariantList() << 0.15*availableGeometryHeight
<< 0.76*availableGeometryHeight
<< 0.09*availableGeometryHeight;

mEditingWidgetSizes = qVariantListToIntList(pSettings.value(SettingsCellmlEditingViewWidgetSizes, defaultEditingWidgetSizes).toList());

setSizes(mEditingWidgetSizes);

Expand Down
Expand Up @@ -85,18 +85,12 @@ static const char *SettingsSedmlEditingViewWidgetSizes = "SedmlEditingViewWidget
void SedmlEditingViewWidget::loadSettings(QSettings &pSettings)
{
// Retrieve and set our sizes
// Note #1: the editor list widget's default height is 13% of the desktop's
// height while that of the editor widget is as big as it can be...
// Note #2: because the editor widget's default height is much bigger than
// that of our widget, the editor list widget's default height will
// effectively be less than 13% of the desktop's height, but that
// doesn't matter at all...

int availableGeometryHeight = qApp->primaryScreen()->availableGeometry().height();
QVariantList defaultSedmlEditingViewWidgetSizes = QVariantList() << availableGeometryHeight
<< 0.13*availableGeometryHeight;

mEditingWidgetSizes = qVariantListToIntList(pSettings.value(SettingsSedmlEditingViewWidgetSizes, defaultSedmlEditingViewWidgetSizes).toList());

static const int availableGeometryHeight = qApp->primaryScreen()->availableGeometry().height();
static const QVariantList defaultEditingWidgetSizes = QVariantList() << 0.91*availableGeometryHeight
<< 0.09*availableGeometryHeight;

mEditingWidgetSizes = qVariantListToIntList(pSettings.value(SettingsSedmlEditingViewWidgetSizes, defaultEditingWidgetSizes).toList());

setSizes(mEditingWidgetSizes);

Expand Down
Expand Up @@ -511,8 +511,6 @@ SimulationExperimentViewSimulationWidget::SimulationExperimentViewSimulationWidg
mSplitterWidget->addWidget(mContentsWidget);
mSplitterWidget->addWidget(simulationOutputWidget);

mSplitterWidget->setSizes(QIntList() << availableGeometry.height() << 1);

layout->addWidget(mSplitterWidget);

// Create our (thin) simulation progress widget
Expand Down Expand Up @@ -1171,9 +1169,7 @@ void SimulationExperimentViewSimulationWidget::setSizes(const QIntList &pSizes)
// Set the sizes of our spliter widget, but only if there effectively are
// some

if (!pSizes.isEmpty()) {
mSplitterWidget->setSizes(pSizes);
}
mSplitterWidget->setSizes(pSizes);
}

//==============================================================================
Expand Down
Expand Up @@ -62,8 +62,8 @@ SimulationExperimentViewWidget::SimulationExperimentViewWidget(SimulationExperim

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

static const char *SettingsSizes = "Sizes";
static const char *SettingsContentsSizes = "ContentsSizes";
static const char *SettingsSimulationSizes = "SimulationSizes";
static const char *SettingsCollapsed = "Collapsed";
static const char *SettingsGraphPanelGraphsMode = "GraphPanelGraphsMode";
static const char *SettingsSimulationColumnWidths = "SimulationColumnWidths";
Expand All @@ -78,12 +78,17 @@ void SimulationExperimentViewWidget::loadSettings(QSettings &pSettings)
{
// Retrieve the sizes of our simulation widget and of its contents widget

int availableGeometryWidth = qApp->primaryScreen()->availableGeometry().width();
QVariantList defaultContentsSizes = QVariantList() << 0.25*availableGeometryWidth
<< 0.75*availableGeometryWidth;
static const QRect availableGeometry = qApp->primaryScreen()->availableGeometry();
static const int availableGeometryHeight = availableGeometry.height();
static const int availableGeometryWidth = availableGeometry.width();
static const double panelsRelativeWidth = 0.25*availableGeometryWidth;
static const QVariantList defaultContentsWidgetSizes = QVariantList() << panelsRelativeWidth
<< 0.75*availableGeometryWidth;
static const QVariantList defaultSimulationWidgetSizes = QVariantList() << 0.93*availableGeometryHeight
<< 0.07*availableGeometryHeight;

mSimulationWidgetSizes = qVariantListToIntList(pSettings.value(SettingsSizes).toList());
mContentsWidgetSizes = qVariantListToIntList(pSettings.value(SettingsContentsSizes, defaultContentsSizes).toList());
mContentsWidgetSizes = qVariantListToIntList(pSettings.value(SettingsContentsSizes, defaultContentsWidgetSizes).toList());
mSimulationWidgetSizes = qVariantListToIntList(pSettings.value(SettingsSimulationSizes, defaultSimulationWidgetSizes).toList());

// Retrieve the collapsed states of our collapsible widget

Expand All @@ -96,9 +101,18 @@ void SimulationExperimentViewWidget::loadSettings(QSettings &pSettings)
mGraphPanelGraphsMode = SimulationExperimentViewInformationGraphPanelAndGraphsWidget::Mode(pSettings.value(SettingsGraphPanelGraphsMode, int(SimulationExperimentViewInformationGraphPanelAndGraphsWidget::Mode::Graphs)).toInt());

// Retrieve the columns' width of our various property editors

static const QVariantList defaultThreeColumnWidths = QVariantList() << 100 << 100 << 100;
static const QVariantList defaultTwoColumnWidths = QVariantList() << 100 << 100;
// Note: we use 54% because the width of our property editor widgets'
// columns is not constrained. So, rather than providing relative
// widths, we must provide absolute widths and we end up with good
// absolute widths by using 54% (to account for the fact that, when we
// start OpenCOR, we have docked windows on both sides of our central
// widget)...

static const QVariantList defaultTwoColumnWidths = QVariantList() << 0.27*panelsRelativeWidth
<< 0.27*panelsRelativeWidth;
static const QVariantList defaultThreeColumnWidths = QVariantList() << 0.18*panelsRelativeWidth
<< 0.18*panelsRelativeWidth
<< 0.18*panelsRelativeWidth;

mSimulationColumnWidths = qVariantListToIntList(pSettings.value(SettingsSimulationColumnWidths, defaultThreeColumnWidths).toList());
mSolversColumnWidths = qVariantListToIntList(pSettings.value(SettingsSolversColumnWidths, defaultThreeColumnWidths).toList());
Expand All @@ -114,8 +128,8 @@ void SimulationExperimentViewWidget::saveSettings(QSettings &pSettings) const
// Keep track of the sizes of our simulation widget and those of its
// contents widget

pSettings.setValue(SettingsSizes, qIntListToVariantList(mSimulationWidgetSizes));
pSettings.setValue(SettingsContentsSizes, qIntListToVariantList(mContentsWidgetSizes));
pSettings.setValue(SettingsSimulationSizes, qIntListToVariantList(mSimulationWidgetSizes));

// Keep track of the collapsed states of our collapsible widget

Expand Down

0 comments on commit 23211d4

Please sign in to comment.