MCPcopy Create free account
hub / github.com/KDE/kdenlive / blockClicked

Method blockClicked

src/dialogs/textbasededit.cpp:411–474  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

409}
410
411void VideoTextEdit::blockClicked(Qt::KeyboardModifiers modifiers, bool play)
412{
413 if (m_hoveredBlock > -1 && m_hoveredBlock < speechZones.count()) {
414 if (m_selectedBlocks.contains(m_hoveredBlock)) {
415 if (modifiers & Qt::ControlModifier) {
416 // remove from selection on ctrl+click an already selected block
417 m_selectedBlocks.removeAll(m_hoveredBlock);
418 } else {
419 m_selectedBlocks = {m_hoveredBlock};
420 lineNumberArea->update();
421 }
422 } else {
423 // Add to selection
424 if (modifiers & Qt::ControlModifier) {
425 m_selectedBlocks << m_hoveredBlock;
426 } else if (modifiers & Qt::ShiftModifier) {
427 if (m_lastClickedBlock > -1) {
428 for (int i = qMin(m_lastClickedBlock, m_hoveredBlock); i <= qMax(m_lastClickedBlock, m_hoveredBlock); i++) {
429 if (!m_selectedBlocks.contains(i)) {
430 m_selectedBlocks << i;
431 }
432 }
433 } else {
434 m_selectedBlocks = {m_hoveredBlock};
435 }
436 } else {
437 m_selectedBlocks = {m_hoveredBlock};
438 }
439 }
440 if (m_hoveredBlock >= 0) {
441 m_lastClickedBlock = m_hoveredBlock;
442 }
443
444 // Find continuous block selection
445 int startBlock = m_hoveredBlock;
446 int endBlock = m_hoveredBlock;
447 while (m_selectedBlocks.contains(startBlock)) {
448 startBlock--;
449 }
450 if (!m_selectedBlocks.contains(startBlock)) {
451 startBlock++;
452 }
453 while (m_selectedBlocks.contains(endBlock)) {
454 endBlock++;
455 }
456 if (!m_selectedBlocks.contains(endBlock)) {
457 endBlock--;
458 }
459 QPair<double, double> zone = {speechZones.at(startBlock).first, speechZones.at(endBlock).second};
460 double startMs = zone.first;
461 double endMs = zone.second;
462 pCore->getMonitor(Kdenlive::ClipMonitor)->requestSeek(GenTime(startMs).frames(pCore->getCurrentFps()));
463 pCore->getMonitor(Kdenlive::ClipMonitor)
464 ->slotLoadClipZone(QPoint(GenTime(startMs).frames(pCore->getCurrentFps()), GenTime(endMs).frames(pCore->getCurrentFps())));
465 QTextCursor cursor = textCursor();
466 cursor.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor);
467 cursor.movePosition(QTextCursor::NextBlock, QTextCursor::MoveAnchor, m_hoveredBlock);
468 cursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor);

Callers 2

mousePressEventMethod · 0.80
mouseDoubleClickEventMethod · 0.80

Calls 11

QPointClass · 0.85
removeAllMethod · 0.80
getMonitorMethod · 0.80
framesMethod · 0.80
getCurrentFpsMethod · 0.80
slotLoadClipZoneMethod · 0.80
GenTimeClass · 0.50
countMethod · 0.45
containsMethod · 0.45
requestSeekMethod · 0.45
slotPlayZoneMethod · 0.45

Tested by

no test coverage detected