[apps/calculation] EditableExpressionView in calculation app.

Change-Id: I8b67353682652695f7296f0222939930f4b21794
This commit is contained in:
Léa Saviot
2018-01-16 14:47:21 +01:00
parent 47ab766549
commit 91c05b3bb7
13 changed files with 246 additions and 42 deletions

View File

@@ -25,7 +25,10 @@ KDRect ExpressionViewWithCursor::cursorRect() {
KDSize ExpressionViewWithCursor::minimalSizeForOptimalDisplay() const {
KDSize expressionViewSize = m_expressionView.minimalSizeForOptimalDisplay();
return KDSize(expressionViewSize.width()+1, m_expressionView.minimalSizeForOptimalDisplay().height()); // +1 for the cursor
KDSize cursorSize = isEditing() ? m_cursorView.minimalSizeForOptimalDisplay() : KDSizeZero;
KDCoordinate resultWidth = expressionViewSize.width() + cursorSize.width();
KDCoordinate resultHeight = expressionViewSize.height() + cursorSize.height()/2;
return KDSize(resultWidth, resultHeight);
}
View * ExpressionViewWithCursor::subviewAtIndex(int index) {
@@ -40,7 +43,7 @@ void ExpressionViewWithCursor::layoutSubviews() {
}
void ExpressionViewWithCursor::layoutCursorSubview() {
KDPoint expressionViewOrigin = m_expressionView.drawingOrigin();
KDPoint expressionViewOrigin = m_expressionView.absoluteDrawingOrigin();
KDPoint cursoredExpressionViewOrigin = m_cursor.pointedExpressionLayout()->absoluteOrigin();
KDCoordinate cursorX = expressionViewOrigin.x() + cursoredExpressionViewOrigin.x();
if (m_cursor.position() == ExpressionLayoutCursor::Position::Right) {