src/hbwidgets/editors/hbabstractedit_p.cpp
changeset 6 c3690ec91ef8
parent 5 627c4a0fd0e7
child 7 923ff622b8b9
equal deleted inserted replaced
5:627c4a0fd0e7 6:c3690ec91ef8
    43 #include "hbmenu.h"
    43 #include "hbmenu.h"
    44 #include "hbselectioncontrol_p.h"
    44 #include "hbselectioncontrol_p.h"
    45 #include "hbcolorscheme.h"
    45 #include "hbcolorscheme.h"
    46 #include "hbsmileyengine_p.h"
    46 #include "hbsmileyengine_p.h"
    47 #include "hbtextmeasurementutility_p.h"
    47 #include "hbtextmeasurementutility_p.h"
    48 #include "hbfeaturemanager_p.h"
    48 #include "hbfeaturemanager_r.h"
    49 #include "hbinputeditorinterface.h"
    49 #include "hbinputeditorinterface.h"
    50 #include "hbinputvkbhost.h"
    50 #include "hbinputvkbhost.h"
    51 
    51 
    52 #include <QValidator>
    52 #include <QValidator>
    53 #include <QTextLayout>
    53 #include <QTextLayout>
   196     acceptSignalContentsChanged(true),
   196     acceptSignalContentsChanged(true),
   197     validRevision(0),
   197     validRevision(0),
   198     wasGesture(false),
   198     wasGesture(false),
   199     smileysEnabled(false),
   199     smileysEnabled(false),
   200     smileyEngine(0),
   200     smileyEngine(0),
   201     formatDialog(0)
   201     formatDialog(0),
       
   202     updatePrimitivesInProgress(false)
   202 {
   203 {
   203 }
   204 }
   204 
   205 
   205 HbAbstractEditPrivate::~HbAbstractEditPrivate ()
   206 HbAbstractEditPrivate::~HbAbstractEditPrivate ()
   206 {
   207 {
   209 void HbAbstractEditPrivate::init()
   210 void HbAbstractEditPrivate::init()
   210 {
   211 {
   211     Q_Q(HbAbstractEdit);
   212     Q_Q(HbAbstractEdit);
   212 
   213 
   213     canvas = new HbEditItem(q);
   214     canvas = new HbEditItem(q);
       
   215     canvas->setSizePolicy(QSizePolicy::Ignored,QSizePolicy::Ignored);
       
   216 
   214 
   217 
   215     setContent(Qt::RichText, QString());
   218     setContent(Qt::RichText, QString());
   216 
   219 
   217     QTextOption textOption = doc->defaultTextOption();
   220     QTextOption textOption = doc->defaultTextOption();
   218     textOption.setTextDirection(q->layoutDirection());
   221     textOption.setTextDirection(q->layoutDirection());
   236     // These are the default values which are then overridden in subclasses
   239     // These are the default values which are then overridden in subclasses
   237     // and when different options are enabled.
   240     // and when different options are enabled.
   238     q->setFlag(QGraphicsItem::ItemIsFocusable);
   241     q->setFlag(QGraphicsItem::ItemIsFocusable);
   239     q->setFlag(QGraphicsItem::ItemAcceptsInputMethod);
   242     q->setFlag(QGraphicsItem::ItemAcceptsInputMethod);
   240     q->setFlag(QGraphicsItem::ItemSendsScenePositionChanges);
   243     q->setFlag(QGraphicsItem::ItemSendsScenePositionChanges);
       
   244     q->setFlag(QGraphicsItem::ItemHasNoContents, false);
   241     q->setFocusPolicy(Qt::StrongFocus);
   245     q->setFocusPolicy(Qt::StrongFocus);
   242     q->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
   246     q->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
   243 
   247 
   244     contextMenuShownOn = Hb::ShowTextContextMenuOnSelectionClicked | Hb::ShowTextContextMenuOnLongPress;
   248     contextMenuShownOn = Hb::ShowTextContextMenuOnSelectionClicked | Hb::ShowTextContextMenuOnLongPress;
   245 
   249 
   366     return false;
   370     return false;
   367 }
   371 }
   368 
   372 
   369 void HbAbstractEditPrivate::setCursorPosition(int pos, QTextCursor::MoveMode mode)
   373 void HbAbstractEditPrivate::setCursorPosition(int pos, QTextCursor::MoveMode mode)
   370 {
   374 {
       
   375     if (cursor.isNull()) {
       
   376         cursor = QTextCursor(doc);
       
   377     }
       
   378 
   371     cursor.setPosition(pos, mode);
   379     cursor.setPosition(pos, mode);
   372 
   380 
   373     cursorChanged(HbValidator::CursorChangeFromMouse);
   381     cursorChanged(HbValidator::CursorChangeFromMouse);
   374 }
   382 }
   375 
   383 
   970     Q_Q(const HbAbstractEdit);
   978     Q_Q(const HbAbstractEdit);
   971 
   979 
   972     QTextLayout *layout = cursor.block().layout();
   980     QTextLayout *layout = cursor.block().layout();
   973     int cursorPos = hitTest(tapPos, Qt::ExactHit);
   981     int cursorPos = hitTest(tapPos, Qt::ExactHit);
   974 
   982 
   975     if (cursorPos == -1) {
   983     if (layout && cursorPos == -1) {
   976             cursorPos = cursor.position() + layout->preeditAreaText().length();
   984             cursorPos = cursor.position() + layout->preeditAreaText().length();
   977     }
   985     }
   978 
   986 
   979     if (layout && !layout->preeditAreaText().isEmpty()) {
   987     if (layout && !layout->preeditAreaText().isEmpty()) {
   980         QInputContext *ctx = qApp->inputContext();
   988         QInputContext *ctx = qApp->inputContext();