예제 #1
0
void ThumbnailView::ThumbnailToolTip::setActive( bool b )
{
    if ( b ) {
        requestToolTip();
        m_view->viewport()->installEventFilter( this );
    }
    else {
        m_view->viewport()->removeEventFilter( this );
        hide();
    }
}
예제 #2
0
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";
    }
}
예제 #4
0
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);
}