Changeset View
Changeset View
Standalone View
Standalone View
src/view/kateviewhelpers.cpp
Show First 20 Lines • Show All 2434 Lines • ▼ Show 20 Line(s) | 2421 | if (!m_doc->handleMarkClick(cursorOnLine)) { | |||
---|---|---|---|---|---|
2435 | } | 2435 | } | ||
2436 | } | 2436 | } | ||
2437 | } else if (e->button() == Qt::RightButton) { | 2437 | } else if (e->button() == Qt::RightButton) { | ||
2438 | showMarkMenu(cursorOnLine, QCursor::pos()); | 2438 | showMarkMenu(cursorOnLine, QCursor::pos()); | ||
2439 | } | 2439 | } | ||
2440 | } | 2440 | } | ||
2441 | 2441 | | |||
2442 | if (area == FoldingMarkers) { | 2442 | if (area == FoldingMarkers) { | ||
2443 | // ask the folding info for this line, if any folds are around! | 2443 | // Prefer the highlighted range over the exact clicked line | ||
2444 | QVector<QPair<qint64, Kate::TextFolding::FoldingRangeFlags> > startingRanges = m_view->textFolding().foldingRangesStartingOnLine(cursorOnLine); | 2444 | const int lineToToggle = m_foldingRange ? m_foldingRange->toRange().start().line() : cursorOnLine; | ||
2445 | bool anyFolded = false; | 2445 | if (e->button() == Qt::LeftButton) { | ||
2446 | for (int i = 0; i < startingRanges.size(); ++i) | 2446 | m_view->toggleFoldingOfLine(lineToToggle); | ||
2447 | if (startingRanges[i].second & Kate::TextFolding::Folded) { | 2447 | } else if (e->button() == Qt::RightButton) { | ||
2448 | anyFolded = true; | 2448 | m_view->toggleFoldingsInRange(lineToToggle); | ||
2449 | } | | |||
2450 | | ||||
2451 | // fold or unfold all ranges, remember if any action happened! | | |||
2452 | bool actionDone = false; | | |||
2453 | for (int i = 0; i < startingRanges.size(); ++i) { | | |||
2454 | actionDone = (anyFolded ? m_view->textFolding().unfoldRange(startingRanges[i].first) : m_view->textFolding().foldRange(startingRanges[i].first)) || actionDone; | | |||
2455 | } | | |||
2456 | | ||||
2457 | // if no action done, try to fold it, create non-persistent folded range, if possible! | | |||
2458 | if (!actionDone) { | | |||
2459 | // either use the fold for this line or the range that is highlighted ATM if any! | | |||
2460 | KTextEditor::Range foldingRange = m_view->doc()->buffer().computeFoldingRangeForStartLine(cursorOnLine); | | |||
2461 | if (!foldingRange.isValid() && m_foldingRange) { | | |||
2462 | foldingRange = m_foldingRange->toRange(); | | |||
2463 | } | | |||
2464 | m_view->textFolding().newFoldingRange(foldingRange, Kate::TextFolding::Folded); | | |||
2465 | } | 2449 | } | ||
2466 | 2450 | | |||
2467 | delete m_foldingPreview; | 2451 | delete m_foldingPreview; | ||
2468 | } | 2452 | } | ||
2469 | 2453 | | |||
2470 | if (area == AnnotationBorder) { | 2454 | if (area == AnnotationBorder) { | ||
2471 | const bool singleClick = style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick, nullptr, this); | 2455 | const bool singleClick = style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick, nullptr, this); | ||
2472 | if (e->button() == Qt::LeftButton && singleClick) { | 2456 | if (e->button() == Qt::LeftButton && singleClick) { | ||
Show All 19 Lines | 2473 | if (cursorOnLine == m_lastClickedLine && | |||
2492 | const bool singleClick = style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick, nullptr, this); | 2476 | const bool singleClick = style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick, nullptr, this); | ||
2493 | if (area == AnnotationBorder && !singleClick) { | 2477 | if (area == AnnotationBorder && !singleClick) { | ||
2494 | emit m_view->annotationActivated(m_view, cursorOnLine); | 2478 | emit m_view->annotationActivated(m_view, cursorOnLine); | ||
2495 | } | 2479 | } | ||
2496 | } | 2480 | } | ||
2497 | QMouseEvent forward(QEvent::MouseButtonDblClick, | 2481 | QMouseEvent forward(QEvent::MouseButtonDblClick, | ||
2498 | QPoint(0, e->y()), e->button(), e->buttons(), e->modifiers()); | 2482 | QPoint(0, e->y()), e->button(), e->buttons(), e->modifiers()); | ||
2499 | m_viewInternal->mouseDoubleClickEvent(&forward); | 2483 | m_viewInternal->mouseDoubleClickEvent(&forward); | ||
2500 | } | 2484 | } | ||
loh.tar: oops, "to offer such a folding" | |||||
2501 | 2485 | | |||
2502 | void KateIconBorder::wheelEvent(QWheelEvent *e) | 2486 | void KateIconBorder::wheelEvent(QWheelEvent *e) | ||
2503 | { | 2487 | { | ||
2504 | QCoreApplication::sendEvent(m_viewInternal, e); | 2488 | QCoreApplication::sendEvent(m_viewInternal, e); | ||
2505 | } | 2489 | } | ||
2506 | 2490 | | |||
2507 | void KateIconBorder::showMarkMenu(uint line, const QPoint &pos) | 2491 | void KateIconBorder::showMarkMenu(uint line, const QPoint &pos) | ||
2508 | { | 2492 | { | ||
▲ Show 20 Lines • Show All 672 Lines • Show Last 20 Lines |
oops, "to offer such a folding"