src/hbwidgets/editors/hbabstractedit_p.h
changeset 34 ed14f46c0e55
parent 7 923ff622b8b9
equal deleted inserted replaced
31:7516d6d86cf5 34:ed14f46c0e55
    82 
    82 
    83 class HB_AUTOTEST_EXPORT HbAbstractEditPrivate: public HbWidgetPrivate {
    83 class HB_AUTOTEST_EXPORT HbAbstractEditPrivate: public HbWidgetPrivate {
    84     Q_DECLARE_PUBLIC(HbAbstractEdit)
    84     Q_DECLARE_PUBLIC(HbAbstractEdit)
    85 
    85 
    86     typedef HbValidator::ChangeSource CursorChange;
    86     typedef HbValidator::ChangeSource CursorChange;
       
    87 
       
    88 public:
       
    89 
       
    90     enum CursorType {
       
    91         CursorTypeBlinking,
       
    92         CursorTypeStill,
       
    93         CursorTypeNone,
       
    94     };
    87 
    95 
    88 public:
    96 public:
    89     HbAbstractEditPrivate ();
    97     HbAbstractEditPrivate ();
    90     virtual ~HbAbstractEditPrivate ();
    98     virtual ~HbAbstractEditPrivate ();
    91 
    99 
   105     void setCursorPosition(int pos, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor);
   113     void setCursorPosition(int pos, QTextCursor::MoveMode mode = QTextCursor::MoveAnchor);
   106     bool cursorMoveKeyEvent(QKeyEvent *e);
   114     bool cursorMoveKeyEvent(QKeyEvent *e);
   107     void repaintOldAndNewSelection(const QTextCursor &oldSelection);
   115     void repaintOldAndNewSelection(const QTextCursor &oldSelection);
   108     void updateCurrentCharFormat();
   116     void updateCurrentCharFormat();
   109     QRectF cursorRectPlusUnicodeDirectionMarkers(int position) const;
   117     QRectF cursorRectPlusUnicodeDirectionMarkers(int position) const;
   110     void setBlinkingCursorEnabled(bool enable);
   118     void updateCursorType();
       
   119     void updateCursorType(bool hasInputFocus);
       
   120     void setCursorType(CursorType type);
       
   121     // To be used by derived classes to set cursor color
       
   122     void setCursorColor(const QColor& color);
   111     void repaintCursor();
   123     void repaintCursor();
   112     void setTextInteractionFlags(Qt::TextInteractionFlags flags);
   124     void setTextInteractionFlags(Qt::TextInteractionFlags flags);
   113     void cursorChanged(CursorChange origin);
   125     void cursorChanged(CursorChange origin);
   114     void selectionChanged(bool forceEmitSelectionChanged = false);
   126     void selectionChanged(bool forceEmitSelectionChanged = false);
   115     QAbstractTextDocumentLayout::PaintContext getPaintContext() const;
   127     QAbstractTextDocumentLayout::PaintContext getPaintContext() const;
   116     int hitTest(const QPointF &point, Qt::HitTestAccuracy accuracy) const;
   128     int hitTest(const QPointF &point, Qt::HitTestAccuracy accuracy) const;
   117     QRectF cursorRect(const QTextCursor &cursor) const;
   129     QRectF cursorRect(const QTextCursor &cursor) const;
   118     QRectF cursorRect() const;
   130     QRectF cursorRect() const;
   119     QRectF selectionRect(const QTextCursor &cursor) const;
   131     QRectF selectionRect(const QTextCursor &cursor) const;
   120     QRectF selectionRect() const;
       
   121     QRectF rectForPositionInCanvasCoords(int position, QTextLine::Edge edge) const;
   132     QRectF rectForPositionInCanvasCoords(int position, QTextLine::Edge edge) const;
   122     QRectF viewPortRect() const;
   133     QRectF viewPortRect() const;
       
   134     QPointF constrainHitTestPoint(const QPointF& point);
   123     QValidator::State validateContent(int position, int charsRemoved, int charsAdded);
   135     QValidator::State validateContent(int position, int charsRemoved, int charsAdded);
   124     void initValidator();
   136     void initValidator();
   125     bool undo();
   137     bool undo();
   126     virtual bool canPaste() const;
   138     virtual bool canPaste() const;
   127     virtual bool canCopy() const;
   139     virtual bool canCopy() const;
   128     virtual bool canCut() const;
   140     virtual bool canCut() const;
   129     virtual void prepDocForPaste();
   141     virtual void prepDocForPaste();
   130     bool canFormat() const;
   142     bool canFormat() const;
   131     virtual bool isCursorVisible() const;
   143     virtual bool isCursorVisible() const;
   132 
   144 
       
   145     void gestureEvent(QGestureEvent* event, HbWidget* widget = 0);
   133     void longTapGesture(const QPointF &point);
   146     void longTapGesture(const QPointF &point);
   134     void tapGesture(const QPointF &point);
   147     void tapGesture(const QPointF &point, bool delayMenu);
   135     void gestureReceived();
   148     void gestureReceived();
   136 
   149 
   137     void sendInputPanelEvent(QEvent::Type type);
   150     void sendInputPanelEvent(QEvent::Type type);
   138     void openInputPanel();
   151     void openInputPanel();
   139     void closeInputPanel();
   152     void closeInputPanel();
   142 
   155 
   143     int contentLength() const;
   156     int contentLength() const;
   144     bool hasAcceptableInput() const;
   157     bool hasAcceptableInput() const;
   145     void sendMouseEventToInputContext(const QPointF &tapPos) const;
   158     void sendMouseEventToInputContext(const QPointF &tapPos) const;
   146     virtual void updateEditingSize();
   159     virtual void updateEditingSize();
   147     void drawSelectionEdges(QPainter *painter, QAbstractTextDocumentLayout::PaintContext);
   160     void drawCursor(QPainter *painter, QAbstractTextDocumentLayout::PaintContext);
   148     HbSmileyEngine* smileyEngineInstance() const;
   161     HbSmileyEngine* smileyEngineInstance() const;
   149 
   162 
   150     virtual void drawContentBackground(QPainter *painter,
   163     virtual void drawContentBackground(QPainter *painter,
   151                                        const QStyleOptionGraphicsItem &option) const;
   164                                        const QStyleOptionGraphicsItem &option) const;
   152 
   165 
   155 
   168 
   156     void _q_updateRequest(QRectF rect);
   169     void _q_updateRequest(QRectF rect);
   157     void _q_updateBlock(QTextBlock block);
   170     void _q_updateBlock(QTextBlock block);
   158     void _q_contentsChanged();
   171     void _q_contentsChanged();
   159     void _q_contentsChange(int position, int charsRemoved, int charsAdded);
   172     void _q_contentsChange(int position, int charsRemoved, int charsAdded);
   160     void _q_selectionChanged();
   173     void _q_selectionChanged(const QTextCursor& oldSelection, const QTextCursor& newSelection);
   161     void _q_scrollStarted();
   174     void _q_scrollStarted();
   162     void _q_scrollEnded();
   175     void _q_scrollEnded();
   163     static Qt::Alignment alignmentFromString(const QString &text);
   176     static Qt::Alignment alignmentFromString(const QString &text);
   164 
   177 
   165     void validateAndCorrect();
   178     void validateAndCorrect();
       
   179     QSizeF calculatePreferredDocSize() const;
   166 
   180 
   167     QTextDocument *doc;
   181     QTextDocument *doc;
   168     QTextDocument *placeholderDoc;
   182     QTextDocument *placeholderDoc;
   169 
   183 
   170     int previousCursorAnchor;
   184     int previousCursorAnchor;
   182     QPointF tapPosition;
   196     QPointF tapPosition;
   183     bool cursorOn;
   197     bool cursorOn;
   184 
   198 
   185     QTextCharFormat lastCharFormat;
   199     QTextCharFormat lastCharFormat;
   186     QBasicTimer cursorBlinkTimer;
   200     QBasicTimer cursorBlinkTimer;
       
   201     QBasicTimer doubleTapTimer;
       
   202     int tapCounter;
       
   203     bool showContextMenu;
   187 
   204 
   188     int preeditCursor;
   205     int preeditCursor;
   189     bool preeditCursorVisible; // used to hide the cursor in the preedit area
   206     bool preeditCursorVisible; // used to hide the cursor in the preedit area
   190     bool apiCursorVisible;
   207     bool apiCursorVisible;
   191 
   208 
   194 
   211 
   195     bool scrollable;
   212     bool scrollable;
   196     bool hadSelectionOnMousePress;
   213     bool hadSelectionOnMousePress;
   197 
   214 
   198     HbSelectionControl *selectionControl;
   215     HbSelectionControl *selectionControl;
       
   216     bool enableSelectionControl;
   199 
   217 
   200     bool acceptSignalContentsChange;
   218     bool acceptSignalContentsChange;
   201     bool acceptSignalContentsChanged;
   219     bool acceptSignalContentsChanged;
   202 
   220 
   203     int validRevision;
   221     int validRevision;
   210 
   228 
   211     HbFormatDialogPointer formatDialog;
   229     HbFormatDialogPointer formatDialog;
   212     QTextCursor nextCharCursor;
   230     QTextCursor nextCharCursor;
   213 
   231 
   214     bool updatePrimitivesInProgress;
   232     bool updatePrimitivesInProgress;
       
   233     bool enableMagnifier;
       
   234     CursorType cursorType;
       
   235     QColor cursorColor;
       
   236 
   215 
   237 
   216 private:
   238 private:
   217     static HbAbstractEditPrivate *d_ptr(HbAbstractEdit *edit) {
   239     static HbAbstractEditPrivate *d_ptr(HbAbstractEdit *edit) {
   218         Q_ASSERT(edit);
   240         Q_ASSERT(edit);
   219         return edit->d_func();
   241         return edit->d_func();