void ThumbnailView::ThumbnailToolTip::setActive( bool b ) { if ( b ) { requestToolTip(); m_view->viewport()->installEventFilter( this ); } else { m_view->viewport()->removeEventFilter( this ); hide(); } }
bool ThumbnailView::ThumbnailToolTip::eventFilter( QObject* o , QEvent* event ) { if ( o == m_view->viewport() && event->type() == QEvent::Leave ) hide(); else if ( event->type() == QEvent::MouseMove || event->type() == QEvent::Wheel) { // We need this to be done through a timer, so the thumbnail view gets the wheel even first, // otherwise the fileName reported by mediaIdUnderCursor is wrong. QTimer::singleShot(0,this, SLOT(requestToolTip())); } return false; }
void ClangCodeModelServerInterface::dispatch(const MessageEnvelop &messageEnvelop) { switch (messageEnvelop.messageType()) { case MessageType::EndMessage: end(); break; case MessageType::RegisterTranslationUnitForEditorMessage: registerTranslationUnitsForEditor(messageEnvelop.message<RegisterTranslationUnitForEditorMessage>()); break; case MessageType::UpdateTranslationUnitsForEditorMessage: updateTranslationUnitsForEditor(messageEnvelop.message<UpdateTranslationUnitsForEditorMessage>()); break; case MessageType::UnregisterTranslationUnitsForEditorMessage: unregisterTranslationUnitsForEditor(messageEnvelop.message<UnregisterTranslationUnitsForEditorMessage>()); break; case MessageType::RegisterProjectPartsForEditorMessage: registerProjectPartsForEditor(messageEnvelop.message<RegisterProjectPartsForEditorMessage>()); break; case MessageType::UnregisterProjectPartsForEditorMessage: unregisterProjectPartsForEditor(messageEnvelop.message<UnregisterProjectPartsForEditorMessage>()); break; case MessageType::RegisterUnsavedFilesForEditorMessage: registerUnsavedFilesForEditor(messageEnvelop.message<RegisterUnsavedFilesForEditorMessage>()); break; case MessageType::UnregisterUnsavedFilesForEditorMessage: unregisterUnsavedFilesForEditor(messageEnvelop.message<UnregisterUnsavedFilesForEditorMessage>()); break; case MessageType::CompleteCodeMessage: completeCode(messageEnvelop.message<CompleteCodeMessage>()); break; case MessageType::RequestDocumentAnnotationsMessage: requestDocumentAnnotations(messageEnvelop.message<RequestDocumentAnnotationsMessage>()); break; case MessageType::RequestReferencesMessage: requestReferences(messageEnvelop.message<RequestReferencesMessage>()); break; case MessageType::RequestFollowSymbolMessage: requestFollowSymbol(messageEnvelop.message<RequestFollowSymbolMessage>()); break; case MessageType::RequestToolTipMessage: requestToolTip(messageEnvelop.message<RequestToolTipMessage>()); break; case MessageType::UpdateVisibleTranslationUnitsMessage: updateVisibleTranslationUnits(messageEnvelop.message<UpdateVisibleTranslationUnitsMessage>()); break; default: qWarning() << "Unknown ClangCodeModelServerMessage"; } }
ToolTipManager::ToolTipManager(QAbstractItemView* parent) : QObject(parent) , d(new ToolTipManager::Private) { d->view = parent; connect(parent, SIGNAL(viewportEntered()), this, SLOT(hideToolTip())); connect(parent, SIGNAL(entered(QModelIndex)), this, SLOT(requestToolTip(QModelIndex))); d->timer = new QTimer(this); d->timer->setSingleShot(true); connect(d->timer, SIGNAL(timeout()), this, SLOT(prepareToolTip())); // When the mousewheel is used, the items don't get a hovered indication // (Qt-issue #200665). To assure that the tooltip still gets hidden, // the scrollbars are observed. connect(parent->horizontalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(hideToolTip())); connect(parent->verticalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(hideToolTip())); d->view->viewport()->installEventFilter(this); }