From bbc96efe5f47353d3188728fc9024cfec5553709 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Tue, 1 Jun 2010 12:39:18 +0200 Subject: Introduced getter and setter for the visual X cursor position. The mechanism allows the cursor to move up and down on a visually straight line with proportional fonts, and to gently "jump" over short lines. Reviewed-by: mae --- src/gui/text/qtextcursor.cpp | 35 +++++++++++++++++++++++++++++++++++ src/gui/text/qtextcursor.h | 3 +++ 2 files changed, 38 insertions(+) diff --git a/src/gui/text/qtextcursor.cpp b/src/gui/text/qtextcursor.cpp index abc0889..d6ac3aa 100644 --- a/src/gui/text/qtextcursor.cpp +++ b/src/gui/text/qtextcursor.cpp @@ -1277,6 +1277,41 @@ void QTextCursor::setVisualNavigation(bool b) d->visualNavigation = b; } + +/*! + \since 4.7 + + Sets the visual x position for vertical cursor movements. + + The vertical movement x position is cleared automatically when the cursor moves horizontally, and kept + unchanged when the cursor moves vertically. The mechanism allows the cursor to move up and down on a + visually straight line with proportional fonts, and to gently "jump" over short lines. + + A value of -1 indicates no predefined x position. It will then be set automatically the next time the + cursor moves up or down. + + \sa verticalMovementX() + */ +void QTextCursor::setVerticalMovementX(int x) +{ + if (d) + d->x = x; +} + +/*! \since 4.7 + + Returns the visual x position for vertical cursor movements. + + A value of -1 indicates no predefined x position. It will then be set automatically the next time the + cursor moves up or down. + + \sa setVerticalMovementX() + */ +int QTextCursor::verticalMovementX() const +{ + return d ? d->x : -1; +} + /*! \since 4.7 diff --git a/src/gui/text/qtextcursor.h b/src/gui/text/qtextcursor.h index 6cb776c..251cb33 100644 --- a/src/gui/text/qtextcursor.h +++ b/src/gui/text/qtextcursor.h @@ -132,6 +132,9 @@ public: bool visualNavigation() const; void setVisualNavigation(bool b); + void setVerticalMovementX(int x); + int verticalMovementX() const; + void setKeepPositionOnInsert(bool b); bool keepPositionOnInsert() const; -- cgit v0.12