コード例 #1
0
ファイル: smallruler.cpp プロジェクト: mcfrisk/kdenlive
// virtual
void SmallRuler::mouseMoveEvent(QMouseEvent * event)
{
    const int pos = event->x() / m_scale;
    if (event->button() == Qt::NoButton) {
        if (qAbs(pos * m_scale - m_cursorPosition) < 6) {
            if (!m_overCursor) {
                m_overCursor = true;
                update();
            }
        }
        else if (m_overCursor) {
            m_overCursor = false;
            update();
        }
    }
    if (event->buttons() & Qt::LeftButton) {
        m_overCursor = true;
        emit seekRenderer((int) pos);
    }
    else {
        if (qAbs((pos - m_zoneStart) * m_scale) < 4) {
            setToolTip(i18n("Zone start: %1", m_manager->timecode().getTimecodeFromFrames(m_zoneStart)));
        } else if (qAbs((pos - m_zoneEnd) * m_scale) < 4) {
            setToolTip(i18n("Zone end: %1", m_manager->timecode().getTimecodeFromFrames(m_zoneEnd)));
        } else if (pos > m_zoneStart && pos < m_zoneEnd) {
            setToolTip(i18n("Zone duration: %1", m_manager->timecode().getTimecodeFromFrames(m_zoneEnd - m_zoneStart)));
        } else setToolTip(i18n("Position: %1", m_manager->timecode().getTimecodeFromFrames(pos)));
    }
}
コード例 #2
0
ファイル: smallruler.cpp プロジェクト: rayl/kdenlive
// virtual
void SmallRuler::mousePressEvent(QMouseEvent * event)
{
    const int pos = event->x() / m_scale;
    if (event->button() == Qt::RightButton) {
        // Right button clicked, move selection zone
        if (qAbs(pos - m_zoneStart) < qAbs(pos - m_zoneEnd)) m_zoneStart = pos;
        else m_zoneEnd = pos;
        emit zoneChanged(QPoint(m_zoneStart, m_zoneEnd));
        update();

    } else emit seekRenderer((int) pos);
}
コード例 #3
0
ファイル: smallruler.cpp プロジェクト: rayl/kdenlive
// virtual
void SmallRuler::mouseMoveEvent(QMouseEvent * event)
{
    const int pos = event->x() / m_scale;
    if (event->buttons() & Qt::LeftButton) emit seekRenderer((int) pos);
}