equal
deleted
inserted
replaced
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(); |