diff options
author | Iikka Eklund <iikka.eklund@digia.com> | 2014-04-01 11:44:26 +0300 |
---|---|---|
committer | Iikka Eklund <iikka.eklund@digia.com> | 2014-04-01 11:44:27 +0300 |
commit | 0ab63b035a649dc1982c867cd37d466d249004b9 (patch) | |
tree | 6de22edcd3957aae3eee698136a000e52ab7f8fe /src/widgets | |
parent | a6f8aa0ae1d5a1d1099df1891ea60b14b6eb6065 (diff) | |
parent | 0cb2c760c219514849ab0f6be8e5368f92dfa5d9 (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I2a6eb9dd7724931bc89f28bcc156e77c4e26d069
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/accessible/simplewidgets.cpp | 2 | ||||
-rw-r--r-- | src/widgets/dialogs/qfontdialog.cpp | 18 | ||||
-rw-r--r-- | src/widgets/itemviews/qabstractitemview.cpp | 15 | ||||
-rw-r--r-- | src/widgets/itemviews/qitemdelegate.cpp | 5 | ||||
-rw-r--r-- | src/widgets/itemviews/qstyleditemdelegate.cpp | 5 | ||||
-rw-r--r-- | src/widgets/kernel/qapplication.cpp | 27 | ||||
-rw-r--r-- | src/widgets/kernel/qgesturemanager.cpp | 6 | ||||
-rw-r--r-- | src/widgets/kernel/qgesturemanager_p.h | 1 | ||||
-rw-r--r-- | src/widgets/kernel/qstandardgestures.cpp | 35 | ||||
-rw-r--r-- | src/widgets/kernel/qwidget.cpp | 29 | ||||
-rw-r--r-- | src/widgets/kernel/qwidget_p.h | 4 | ||||
-rw-r--r-- | src/widgets/util/qcolormap.cpp | 7 | ||||
-rw-r--r-- | src/widgets/widgets/qscrollbar.cpp | 23 | ||||
-rw-r--r-- | src/widgets/widgets/qscrollbar_p.h | 1 | ||||
-rw-r--r-- | src/widgets/widgets/qwidgettextcontrol.cpp | 3 |
15 files changed, 90 insertions, 91 deletions
diff --git a/src/widgets/accessible/simplewidgets.cpp b/src/widgets/accessible/simplewidgets.cpp index b729e66d3c..b3170278ee 100644 --- a/src/widgets/accessible/simplewidgets.cpp +++ b/src/widgets/accessible/simplewidgets.cpp @@ -137,6 +137,8 @@ QAccessible::State QAccessibleButton::state() const QAbstractButton *b = button(); QCheckBox *cb = qobject_cast<QCheckBox *>(b); + if (b->isCheckable()) + state.checkable = true; if (b->isChecked()) state.checked = true; else if (cb && cb->checkState() == Qt::PartiallyChecked) diff --git a/src/widgets/dialogs/qfontdialog.cpp b/src/widgets/dialogs/qfontdialog.cpp index 94e96a52c5..5a68bfbc66 100644 --- a/src/widgets/dialogs/qfontdialog.cpp +++ b/src/widgets/dialogs/qfontdialog.cpp @@ -256,8 +256,10 @@ void QFontDialogPrivate::init() } updateFamilies(); - if (familyList->count() != 0) + if (familyList->count() != 0) { familyList->setCurrentItem(0); + sizeList->setCurrentItem(0); + } // grid layout QGridLayout *mainGrid = new QGridLayout(q); @@ -621,16 +623,13 @@ void QFontDialogPrivate::updateSizes() QStringList str_sizes; for(QList<int>::const_iterator it = sizes.constBegin(); it != sizes.constEnd(); ++it) { str_sizes.append(QString::number(*it)); - if (current == -1 && *it >= size) + if (current == -1 && *it == size) current = i; ++i; } sizeList->model()->setStringList(str_sizes); - if (current == -1) { - // we request a size bigger than the ones in the list, select the biggest one - current = sizeList->count() - 1; - } - sizeList->setCurrentItem(current); + if (current != -1) + sizeList->setCurrentItem(current); const QSignalBlocker blocker(sizeEdit); sizeEdit->setText((smoothScalable ? QString::number(size) : sizeList->currentText())); @@ -750,7 +749,10 @@ void QFontDialogPrivate::_q_sizeChanged(const QString &s) break; } const QSignalBlocker blocker(sizeList); - sizeList->setCurrentItem(i); + if (sizeList->text(i).toInt() == this->size) + sizeList->setCurrentItem(i); + else + sizeList->clearSelection(); } _q_updateSample(); } diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp index 771753b7da..b2dc614b2b 100644 --- a/src/widgets/itemviews/qabstractitemview.cpp +++ b/src/widgets/itemviews/qabstractitemview.cpp @@ -2753,10 +2753,14 @@ void QAbstractItemView::closeEditor(QWidget *editor, QAbstractItemDelegate::EndE editor->removeEventFilter(d->delegateForIndex(index)); d->removeEditor(editor); } - if (hadFocus) - setFocus(); // this will send a focusLost event to the editor - else + if (hadFocus) { + if (focusPolicy() != Qt::NoFocus) + setFocus(); // this will send a focusLost event to the editor + else + editor->clearFocus(); + } else { d->checkPersistentEditorFocus(); + } QPointer<QWidget> ed = editor; QApplication::sendPostedEvents(editor, 0); @@ -2767,8 +2771,9 @@ void QAbstractItemView::closeEditor(QWidget *editor, QAbstractItemDelegate::EndE } // The EndEditHint part - QItemSelectionModel::SelectionFlags flags = QItemSelectionModel::ClearAndSelect - | d->selectionBehaviorFlags(); + QItemSelectionModel::SelectionFlags flags = QItemSelectionModel::NoUpdate; + if (d->selectionMode != NoSelection) + flags = QItemSelectionModel::ClearAndSelect | d->selectionBehaviorFlags(); switch (hint) { case QAbstractItemDelegate::EditNextItem: { QModelIndex index = moveCursor(MoveNext, Qt::NoModifier); diff --git a/src/widgets/itemviews/qitemdelegate.cpp b/src/widgets/itemviews/qitemdelegate.cpp index 0b654a7485..6a1fe22395 100644 --- a/src/widgets/itemviews/qitemdelegate.cpp +++ b/src/widgets/itemviews/qitemdelegate.cpp @@ -1210,13 +1210,10 @@ bool QItemDelegate::eventFilter(QObject *object, QEvent *event) case Qt::Key_Escape: // don't commit data emit closeEditor(editor, QAbstractItemDelegate::RevertModelCache); - break; + return true; default: return false; } - if (editor->parentWidget()) - editor->parentWidget()->setFocus(); - return true; } else if (event->type() == QEvent::FocusOut || (event->type() == QEvent::Hide && editor->isWindow())) { //the Hide event will take care of he editors that are in fact complete dialogs if (!editor->isActiveWindow() || (QApplication::focusWidget() != editor)) { diff --git a/src/widgets/itemviews/qstyleditemdelegate.cpp b/src/widgets/itemviews/qstyleditemdelegate.cpp index c2aa630918..da5aeb3290 100644 --- a/src/widgets/itemviews/qstyleditemdelegate.cpp +++ b/src/widgets/itemviews/qstyleditemdelegate.cpp @@ -678,13 +678,10 @@ bool QStyledItemDelegate::eventFilter(QObject *object, QEvent *event) case Qt::Key_Escape: // don't commit data emit closeEditor(editor, QAbstractItemDelegate::RevertModelCache); - break; + return true; default: return false; } - if (editor->parentWidget()) - editor->parentWidget()->setFocus(); - return true; } else if (event->type() == QEvent::FocusOut || (event->type() == QEvent::Hide && editor->isWindow())) { //the Hide event will take care of he editors that are in fact complete dialogs if (!editor->isActiveWindow() || (QApplication::focusWidget() != editor)) { diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp index 92d3359909..8d0a51606e 100644 --- a/src/widgets/kernel/qapplication.cpp +++ b/src/widgets/kernel/qapplication.cpp @@ -2867,16 +2867,19 @@ bool QApplication::notify(QObject *receiver, QEvent *e) case QEvent::NetworkReplyUpdated: break; default: - if (receiver->isWidgetType()) { - if (d->gestureManager->filterEvent(static_cast<QWidget *>(receiver), e)) - return true; - } else { - // a special case for events that go to QGesture objects. - // We pass the object to the gesture manager and it'll figure - // out if it's QGesture or not. - if (d->gestureManager->filterEvent(receiver, e)) - return true; + if (d->gestureManager->thread() == QThread::currentThread()) { + if (receiver->isWidgetType()) { + if (d->gestureManager->filterEvent(static_cast<QWidget *>(receiver), e)) + return true; + } else { + // a special case for events that go to QGesture objects. + // We pass the object to the gesture manager and it'll figure + // out if it's QGesture or not. + if (d->gestureManager->filterEvent(receiver, e)) + return true; + } } + break; } } #endif // QT_NO_GESTURES @@ -3976,7 +3979,11 @@ bool QApplicationPrivate::translateRawTouchEvent(QWidget *window, break; } default: - if (widget->testAttribute(Qt::WA_WState_AcceptedTouchBeginEvent)) { + if (widget->testAttribute(Qt::WA_WState_AcceptedTouchBeginEvent) +#ifndef QT_NO_GESTURES + || QGestureManager::gesturePending(widget) +#endif + ) { if (touchEvent.type() == QEvent::TouchEnd) widget->setAttribute(Qt::WA_WState_AcceptedTouchBeginEvent, false); if (QApplication::sendSpontaneousEvent(widget, &touchEvent) && touchEvent.isAccepted()) diff --git a/src/widgets/kernel/qgesturemanager.cpp b/src/widgets/kernel/qgesturemanager.cpp index 18abad4b40..929e5e2fcf 100644 --- a/src/widgets/kernel/qgesturemanager.cpp +++ b/src/widgets/kernel/qgesturemanager.cpp @@ -718,6 +718,12 @@ void QGestureManager::recycle(QGesture *gesture) } } +bool QGestureManager::gesturePending(QObject *o) +{ + const QGestureManager *gm = QGestureManager::instance(); + return gm && gm->m_gestureOwners.key(o); +} + QT_END_NAMESPACE #endif // QT_NO_GESTURES diff --git a/src/widgets/kernel/qgesturemanager_p.h b/src/widgets/kernel/qgesturemanager_p.h index 4ab631a921..6264b5a25d 100644 --- a/src/widgets/kernel/qgesturemanager_p.h +++ b/src/widgets/kernel/qgesturemanager_p.h @@ -81,6 +81,7 @@ public: #endif //QT_NO_GRAPHICSVIEW static QGestureManager* instance(); // declared in qapplication.cpp + static bool gesturePending(QObject *o); void cleanupCachedGestures(QObject *target, Qt::GestureType type); diff --git a/src/widgets/kernel/qstandardgestures.cpp b/src/widgets/kernel/qstandardgestures.cpp index e3fd6404db..64ab68257a 100644 --- a/src/widgets/kernel/qstandardgestures.cpp +++ b/src/widgets/kernel/qstandardgestures.cpp @@ -77,11 +77,10 @@ QGestureRecognizer::Result QPanGestureRecognizer::recognize(QGesture *state, QPanGesture *q = static_cast<QPanGesture *>(state); QPanGesturePrivate *d = q->d_func(); - const QTouchEvent *ev = static_cast<const QTouchEvent *>(event); - - QGestureRecognizer::Result result; + QGestureRecognizer::Result result = QGestureRecognizer::Ignore; switch (event->type()) { case QEvent::TouchBegin: { + const QTouchEvent *ev = static_cast<const QTouchEvent *>(event); result = QGestureRecognizer::MayBeGesture; QTouchEvent::TouchPoint p = ev->touchPoints().at(0); d->lastOffset = d->offset = QPointF(); @@ -89,6 +88,7 @@ QGestureRecognizer::Result QPanGestureRecognizer::recognize(QGesture *state, } case QEvent::TouchEnd: { if (q->state() != Qt::NoGesture) { + const QTouchEvent *ev = static_cast<const QTouchEvent *>(event); if (ev->touchPoints().size() == 2) { QTouchEvent::TouchPoint p1 = ev->touchPoints().at(0); QTouchEvent::TouchPoint p2 = ev->touchPoints().at(1); @@ -104,6 +104,7 @@ QGestureRecognizer::Result QPanGestureRecognizer::recognize(QGesture *state, break; } case QEvent::TouchUpdate: { + const QTouchEvent *ev = static_cast<const QTouchEvent *>(event); if (ev->touchPoints().size() >= 2) { QTouchEvent::TouchPoint p1 = ev->touchPoints().at(0); QTouchEvent::TouchPoint p2 = ev->touchPoints().at(1); @@ -121,13 +122,7 @@ QGestureRecognizer::Result QPanGestureRecognizer::recognize(QGesture *state, } break; } - case QEvent::MouseButtonPress: - case QEvent::MouseMove: - case QEvent::MouseButtonRelease: - result = QGestureRecognizer::Ignore; - break; default: - result = QGestureRecognizer::Ignore; break; } return result; @@ -168,9 +163,7 @@ QGestureRecognizer::Result QPinchGestureRecognizer::recognize(QGesture *state, QPinchGesture *q = static_cast<QPinchGesture *>(state); QPinchGesturePrivate *d = q->d_func(); - const QTouchEvent *ev = static_cast<const QTouchEvent *>(event); - - QGestureRecognizer::Result result; + QGestureRecognizer::Result result = QGestureRecognizer::Ignore; switch (event->type()) { case QEvent::TouchBegin: { @@ -186,6 +179,7 @@ QGestureRecognizer::Result QPinchGestureRecognizer::recognize(QGesture *state, break; } case QEvent::TouchUpdate: { + const QTouchEvent *ev = static_cast<const QTouchEvent *>(event); d->changeFlags = 0; if (ev->touchPoints().size() == 2) { QTouchEvent::TouchPoint p1 = ev->touchPoints().at(0); @@ -245,13 +239,7 @@ QGestureRecognizer::Result QPinchGestureRecognizer::recognize(QGesture *state, } break; } - case QEvent::MouseButtonPress: - case QEvent::MouseMove: - case QEvent::MouseButtonRelease: - result = QGestureRecognizer::Ignore; - break; default: - result = QGestureRecognizer::Ignore; break; } return result; @@ -297,9 +285,7 @@ QGestureRecognizer::Result QSwipeGestureRecognizer::recognize(QGesture *state, QSwipeGesture *q = static_cast<QSwipeGesture *>(state); QSwipeGesturePrivate *d = q->d_func(); - const QTouchEvent *ev = static_cast<const QTouchEvent *>(event); - - QGestureRecognizer::Result result; + QGestureRecognizer::Result result = QGestureRecognizer::Ignore; switch (event->type()) { case QEvent::TouchBegin: { @@ -318,6 +304,7 @@ QGestureRecognizer::Result QSwipeGestureRecognizer::recognize(QGesture *state, break; } case QEvent::TouchUpdate: { + const QTouchEvent *ev = static_cast<const QTouchEvent *>(event); if (!d->started) result = QGestureRecognizer::CancelGesture; else if (ev->touchPoints().size() == 3) { @@ -384,13 +371,7 @@ QGestureRecognizer::Result QSwipeGestureRecognizer::recognize(QGesture *state, } break; } - case QEvent::MouseButtonPress: - case QEvent::MouseMove: - case QEvent::MouseButtonRelease: - result = QGestureRecognizer::Ignore; - break; default: - result = QGestureRecognizer::Ignore; break; } return result; diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 8db5666d85..569828c44d 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -4681,7 +4681,8 @@ void QWidget::unsetCursor() void QWidget::render(QPaintDevice *target, const QPoint &targetOffset, const QRegion &sourceRegion, RenderFlags renderFlags) { - d_func()->render(target, targetOffset, sourceRegion, renderFlags, false); + QPainter p(target); + render(&p, targetOffset, sourceRegion, renderFlags); } /*! @@ -4725,9 +4726,6 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset, d->createExtra(); d->extra->inRenderWithPainter = true; -#ifdef Q_WS_MAC - d->render_helper(painter, targetOffset, toBePainted, renderFlags); -#else QPaintEngine *engine = painter->paintEngine(); Q_ASSERT(engine); QPaintEnginePrivate *enginePriv = engine->d_func(); @@ -4738,7 +4736,7 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset, // Render via a pixmap when dealing with non-opaque painters or printers. if (!inRenderWithPainter && (opacity < 1.0 || (target->devType() == QInternal::Printer))) { d->render_helper(painter, targetOffset, toBePainted, renderFlags); - d->extra->inRenderWithPainter = false; + d->extra->inRenderWithPainter = inRenderWithPainter; return; } @@ -4759,7 +4757,7 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset, enginePriv->setSystemViewport(oldSystemClip); } - render(target, targetOffset, toBePainted, renderFlags); + d->render(target, targetOffset, toBePainted, renderFlags); // Restore system clip, viewport and transform. enginePriv->systemClip = oldSystemClip; @@ -4768,9 +4766,8 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset, // Restore shared painter. d->setSharedPainter(oldPainter); -#endif - d->extra->inRenderWithPainter = false; + d->extra->inRenderWithPainter = inRenderWithPainter; } static void sendResizeEvents(QWidget *target) @@ -5208,8 +5205,7 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP } void QWidgetPrivate::render(QPaintDevice *target, const QPoint &targetOffset, - const QRegion &sourceRegion, QWidget::RenderFlags renderFlags, - bool readyToRender) + const QRegion &sourceRegion, QWidget::RenderFlags renderFlags) { if (!target) { qWarning("QWidget::render: null pointer to paint device"); @@ -5217,7 +5213,7 @@ void QWidgetPrivate::render(QPaintDevice *target, const QPoint &targetOffset, } const bool inRenderWithPainter = extra && extra->inRenderWithPainter; - QRegion paintRegion = !inRenderWithPainter && !readyToRender + QRegion paintRegion = !inRenderWithPainter ? prepareToRender(sourceRegion, renderFlags) : sourceRegion; if (paintRegion.isEmpty()) @@ -5276,23 +5272,12 @@ void QWidgetPrivate::render(QPaintDevice *target, const QPoint &targetOffset, flags |= DontSetCompositionMode; - if (target->devType() == QInternal::Printer) { - QPainter p(target); - render_helper(&p, targetOffset, paintRegion, renderFlags); - return; - } - -#ifndef Q_WS_MAC // Render via backingstore. drawWidget(target, paintRegion, offset, flags, sharedPainter()); // Restore shared painter. if (oldSharedPainter) setSharedPainter(oldSharedPainter); -#else - // Render via backingstore (no shared painter). - drawWidget(target, paintRegion, offset, flags, 0); -#endif } void QWidgetPrivate::paintSiblingsRecursive(QPaintDevice *pdev, const QObjectList& siblings, int index, const QRegion &rgn, diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index bdfc57f7c3..99cba0e20f 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -389,7 +389,7 @@ public: void render_helper(QPainter *painter, const QPoint &targetOffset, const QRegion &sourceRegion, QWidget::RenderFlags renderFlags); void render(QPaintDevice *target, const QPoint &targetOffset, const QRegion &sourceRegion, - QWidget::RenderFlags renderFlags, bool readyToRender); + QWidget::RenderFlags renderFlags); void drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QPoint &offset, int flags, QPainter *sharedPainter = 0, QWidgetBackingStore *backingStore = 0); @@ -628,7 +628,7 @@ public: #ifndef QT_NO_OPENGL virtual GLuint textureId() const { return 0; } - void setRenderToTexture() { renderToTexture = true; textureChildSeen = true; } + void setRenderToTexture() { renderToTexture = true; setTextureChildSeen(); } void setTextureChildSeen() { Q_Q(QWidget); diff --git a/src/widgets/util/qcolormap.cpp b/src/widgets/util/qcolormap.cpp index 03ee8a395e..decfd7bd2c 100644 --- a/src/widgets/util/qcolormap.cpp +++ b/src/widgets/util/qcolormap.cpp @@ -66,7 +66,12 @@ static QColormapPrivate *screenMap = 0; void QColormap::initialize() { screenMap = new QColormapPrivate; - + if (!QGuiApplication::primaryScreen()) { + qWarning("no screens available, assuming 24-bit color"); + screenMap->depth = 24; + screenMap->mode = QColormap::Direct; + return; + } screenMap->depth = QGuiApplication::primaryScreen()->depth(); if (screenMap->depth < 8) { screenMap->mode = QColormap::Indexed; diff --git a/src/widgets/widgets/qscrollbar.cpp b/src/widgets/widgets/qscrollbar.cpp index 05b8935bb5..5060ca0a70 100644 --- a/src/widgets/widgets/qscrollbar.cpp +++ b/src/widgets/widgets/qscrollbar.cpp @@ -248,8 +248,13 @@ void QScrollBarPrivate::flash() Q_Q(QScrollBar); if (!flashed && q->style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, q)) { flashed = true; - q->show(); + if (!q->isVisible()) + q->show(); + else + q->update(); } + if (!flashTimer) + flashTimer = q->startTimer(0); } void QScrollBarPrivate::activateControl(uint control, int threshold) @@ -386,6 +391,7 @@ void QScrollBarPrivate::init() pointerOutsidePressedControl = false; transient = q->style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, q); flashed = false; + flashTimer = 0; q->setFocusPolicy(Qt::NoFocus); QSizePolicy sp(QSizePolicy::Minimum, QSizePolicy::Fixed, QSizePolicy::Slider); if (orientation == Qt::Vertical) @@ -476,6 +482,7 @@ void QScrollBar::sliderChange(SliderChange change) */ bool QScrollBar::event(QEvent *event) { + Q_D(QScrollBar); switch(event->type()) { case QEvent::HoverEnter: case QEvent::HoverLeave: @@ -486,6 +493,16 @@ bool QScrollBar::event(QEvent *event) case QEvent::StyleChange: d_func()->setTransient(style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, this)); break; + case QEvent::Timer: + if (static_cast<QTimerEvent *>(event)->timerId() == d->flashTimer) { + if (d->flashed && style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, this)) { + d->flashed = false; + update(); + } + killTimer(d->flashTimer); + d->flashTimer = 0; + } + break; default: break; } @@ -536,10 +553,6 @@ void QScrollBar::paintEvent(QPaintEvent *) opt.activeSubControls = (QStyle::SubControl)d->hoverControl; } style()->drawComplexControl(QStyle::CC_ScrollBar, &opt, &p, this); - if (d->flashed && style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, this)) { - d->flashed = false; - update(); - } } /*! diff --git a/src/widgets/widgets/qscrollbar_p.h b/src/widgets/widgets/qscrollbar_p.h index c62c337a40..5fc714d530 100644 --- a/src/widgets/widgets/qscrollbar_p.h +++ b/src/widgets/widgets/qscrollbar_p.h @@ -81,6 +81,7 @@ public: void setTransient(bool value); bool flashed; + int flashTimer; void flash(); }; diff --git a/src/widgets/widgets/qwidgettextcontrol.cpp b/src/widgets/widgets/qwidgettextcontrol.cpp index 03a65aa8e5..3740f3e698 100644 --- a/src/widgets/widgets/qwidgettextcontrol.cpp +++ b/src/widgets/widgets/qwidgettextcontrol.cpp @@ -239,9 +239,6 @@ bool QWidgetTextControlPrivate::cursorMoveKeyEvent(QKeyEvent *e) else if (e == QKeySequence::MoveToPreviousLine) { op = QTextCursor::Up; } - else if (e == QKeySequence::MoveToPreviousLine) { - op = QTextCursor::Up; - } else if (e == QKeySequence::MoveToStartOfLine) { op = QTextCursor::StartOfLine; } |