mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
[apps/calc] Merge SingleLine and allExpressionsInline behaviours
This commit is contained in:
committed by
EmilieNumworks
parent
c3d8520e73
commit
5a68b44aa1
@@ -159,19 +159,17 @@ KDCoordinate Calculation::height(Context * context, bool expanded, bool allExpre
|
|||||||
if (displayOutput(context) == DisplayOutput::ExactOnly) {
|
if (displayOutput(context) == DisplayOutput::ExactOnly) {
|
||||||
KDCoordinate exactOutputHeight = exactLayout.layoutSize().height();
|
KDCoordinate exactOutputHeight = exactLayout.layoutSize().height();
|
||||||
KDCoordinate exactOutputWidth = exactLayout.layoutSize().width();
|
KDCoordinate exactOutputWidth = exactLayout.layoutSize().width();
|
||||||
bool singleLine = exactOutputWidth + inputWidth < maxWidth - 2;
|
|
||||||
if (singleLine && !allExpressionsInline) {
|
bool singleLine = allExpressionsInline || ((exactOutputWidth + inputWidth) < maxWidth - 2); //TODO LEA 2
|
||||||
|
|
||||||
|
if (singleLine) {
|
||||||
KDCoordinate exactOutputBaseline = exactLayout.baseline();
|
KDCoordinate exactOutputBaseline = exactLayout.baseline();
|
||||||
result = std::max(inputBaseline, exactOutputBaseline) + std::max(inputHeight - inputBaseline, exactOutputHeight-exactOutputBaseline) + singleMargin;
|
result = std::max(inputBaseline, exactOutputBaseline) + std::max(inputHeight - inputBaseline, exactOutputHeight-exactOutputBaseline) + singleMargin;
|
||||||
} else {
|
} else {
|
||||||
if (allExpressionsInline) {
|
result = inputHeight + exactOutputHeight + doubleMargin;
|
||||||
KDCoordinate exactOutputBaseline = exactLayout.baseline();
|
|
||||||
result = std::max(inputBaseline, exactOutputBaseline) + std::max(inputHeight - inputBaseline, exactOutputHeight-exactOutputBaseline);
|
|
||||||
} else {
|
|
||||||
result = inputHeight + exactOutputHeight + doubleMargin;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// Create the approximate output layout
|
||||||
bool couldNotCreateApproximateLayout = false;
|
bool couldNotCreateApproximateLayout = false;
|
||||||
Layout approximateLayout = createApproximateOutputLayout(context, &couldNotCreateApproximateLayout);
|
Layout approximateLayout = createApproximateOutputLayout(context, &couldNotCreateApproximateLayout);
|
||||||
if (couldNotCreateApproximateLayout) {
|
if (couldNotCreateApproximateLayout) {
|
||||||
@@ -192,18 +190,13 @@ KDCoordinate Calculation::height(Context * context, bool expanded, bool allExpre
|
|||||||
|
|
||||||
KDCoordinate approximateOutputHeight = approximateLayout.layoutSize().height();
|
KDCoordinate approximateOutputHeight = approximateLayout.layoutSize().height();
|
||||||
KDCoordinate approximateOutputWidth = approximateLayout.layoutSize().width();
|
KDCoordinate approximateOutputWidth = approximateLayout.layoutSize().width();
|
||||||
bool singleLine = approximateOutputWidth + inputWidth < maxWidth;
|
|
||||||
if (displayOutput(context) == DisplayOutput::ApproximateOnly || (!expanded && displayOutput(context) == DisplayOutput::ExactAndApproximateToggle)) {
|
if (displayOutput(context) == DisplayOutput::ApproximateOnly || (!expanded && displayOutput(context) == DisplayOutput::ExactAndApproximateToggle)) {
|
||||||
if (singleLine && !allExpressionsInline) {
|
bool singleLine = allExpressionsInline || ((approximateOutputWidth + inputWidth) < maxWidth); // TODO LEA 2
|
||||||
|
if (singleLine) {
|
||||||
KDCoordinate approximateOutputBaseline = approximateLayout.baseline();
|
KDCoordinate approximateOutputBaseline = approximateLayout.baseline();
|
||||||
result = std::max(inputBaseline, approximateOutputBaseline) + std::max(inputHeight - inputBaseline, approximateOutputHeight-approximateOutputBaseline) + singleMargin;
|
result = std::max(inputBaseline, approximateOutputBaseline) + std::max(inputHeight - inputBaseline, approximateOutputHeight-approximateOutputBaseline) + singleMargin;
|
||||||
} else {
|
} else {
|
||||||
if (allExpressionsInline) {
|
result = inputHeight + approximateOutputHeight + doubleMargin;
|
||||||
KDCoordinate approximateOutputBaseline = approximateLayout.baseline();
|
|
||||||
result = std::max(inputBaseline, approximateOutputBaseline) + std::max(inputHeight - inputBaseline, approximateOutputHeight-approximateOutputBaseline);
|
|
||||||
} else {
|
|
||||||
result = inputHeight + approximateOutputHeight + doubleMargin;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
assert(displayOutput(context) == DisplayOutput::ExactAndApproximate || (displayOutput(context) == DisplayOutput::ExactAndApproximateToggle && expanded));
|
assert(displayOutput(context) == DisplayOutput::ExactAndApproximate || (displayOutput(context) == DisplayOutput::ExactAndApproximateToggle && expanded));
|
||||||
@@ -211,17 +204,13 @@ KDCoordinate Calculation::height(Context * context, bool expanded, bool allExpre
|
|||||||
KDCoordinate exactOutputBaseline = exactLayout.baseline();
|
KDCoordinate exactOutputBaseline = exactLayout.baseline();
|
||||||
KDCoordinate exactOutputWidth = exactLayout.layoutSize().width();
|
KDCoordinate exactOutputWidth = exactLayout.layoutSize().width();
|
||||||
KDCoordinate approximateOutputWidth = approximateLayout.layoutSize().width();
|
KDCoordinate approximateOutputWidth = approximateLayout.layoutSize().width();
|
||||||
singleLine = exactOutputWidth + approximateOutputWidth + inputWidth < maxWidth - 30; // the 30 represents the = sign (example: sin(30))
|
|
||||||
KDCoordinate approximateOutputBaseline = approximateLayout.baseline();
|
KDCoordinate approximateOutputBaseline = approximateLayout.baseline();
|
||||||
if (singleLine && !allExpressionsInline) {
|
bool singleLine = allExpressionsInline || ((inputWidth + exactOutputWidth + approximateOutputWidth) < (maxWidth - 30)); // the 30 represents the = sign (example: sin(30)) TODO LEA
|
||||||
|
if (singleLine) {
|
||||||
result = std::max(inputBaseline, std::max(exactOutputBaseline, approximateOutputBaseline)) + std::max(inputHeight - inputBaseline, std::max(exactOutputHeight - exactOutputBaseline, approximateOutputHeight-approximateOutputBaseline)) + singleMargin;
|
result = std::max(inputBaseline, std::max(exactOutputBaseline, approximateOutputBaseline)) + std::max(inputHeight - inputBaseline, std::max(exactOutputHeight - exactOutputBaseline, approximateOutputHeight-approximateOutputBaseline)) + singleMargin;
|
||||||
} else {
|
} else {
|
||||||
if (allExpressionsInline) {
|
KDCoordinate outputHeight = std::max(exactOutputBaseline, approximateOutputBaseline) + std::max(exactOutputHeight-exactOutputBaseline, approximateOutputHeight-approximateOutputBaseline);
|
||||||
result = std::max(inputBaseline, std::max(exactOutputBaseline, approximateOutputBaseline)) + std::max(inputHeight - inputBaseline, std::max(exactOutputHeight - exactOutputBaseline, approximateOutputHeight-approximateOutputBaseline));
|
result = inputHeight + outputHeight + doubleMargin;
|
||||||
} else {
|
|
||||||
KDCoordinate outputHeight = std::max(exactOutputBaseline, approximateOutputBaseline) + std::max(exactOutputHeight-exactOutputBaseline, approximateOutputHeight-approximateOutputBaseline);
|
|
||||||
result = inputHeight + outputHeight + doubleMargin;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user