Changeset View
Changeset View
Standalone View
Standalone View
src/PlatformBackends/X11ImageGrabber.cpp
Show First 20 Lines • Show All 410 Lines • ▼ Show 20 Line(s) | |||||
411 | { | 411 | { | ||
412 | QObject *sender = QObject::sender(); | 412 | QObject *sender = QObject::sender(); | ||
413 | sender->disconnect(); | 413 | sender->disconnect(); | ||
414 | sender->deleteLater(); | 414 | sender->deleteLater(); | ||
415 | 415 | | |||
416 | emit imageGrabFailed(); | 416 | emit imageGrabFailed(); | ||
417 | } | 417 | } | ||
418 | 418 | | |||
419 | void X11ImageGrabber::rectangleSelectionConfirmed(const QPixmap &pixmap, const QRect ®ion) | 419 | void X11ImageGrabber::rectangleSelectionConfirmed(const QPixmap &pixmap) | ||
420 | { | 420 | { | ||
421 | QObject *sender = QObject::sender(); | 421 | QObject *sender = QObject::sender(); | ||
422 | sender->disconnect(); | 422 | sender->disconnect(); | ||
423 | sender->deleteLater(); | 423 | sender->deleteLater(); | ||
424 | 424 | | |||
425 | if (mCapturePointer) { | | |||
426 | mPixmap = blendCursorImage(pixmap, region.x(), region.y(), region.width(), region.height()); | | |||
427 | } else { | | |||
428 | mPixmap = pixmap; | 425 | mPixmap = pixmap; | ||
429 | } | | |||
430 | emit pixmapChanged(mPixmap); | 426 | emit pixmapChanged(mPixmap); | ||
431 | } | 427 | } | ||
432 | 428 | | |||
433 | // grabber methods | 429 | // grabber methods | ||
434 | 430 | | |||
435 | void X11ImageGrabber::updateWindowTitle(xcb_window_t window) | 431 | void X11ImageGrabber::updateWindowTitle(xcb_window_t window) | ||
436 | { | 432 | { | ||
437 | QString windowTitle = KWindowSystem::readNameProperty(window, XA_WM_NAME); | 433 | QString windowTitle = KWindowSystem::readNameProperty(window, XA_WM_NAME); | ||
▲ Show 20 Lines • Show All 221 Lines • ▼ Show 20 Line(s) | 642 | { | |||
659 | } | 655 | } | ||
660 | 656 | | |||
661 | // No screen found with our cursor, fallback to capturing full screen | 657 | // No screen found with our cursor, fallback to capturing full screen | ||
662 | grabFullScreen(); | 658 | grabFullScreen(); | ||
663 | } | 659 | } | ||
664 | 660 | | |||
665 | void X11ImageGrabber::grabRectangularRegion() | 661 | void X11ImageGrabber::grabRectangularRegion() | ||
666 | { | 662 | { | ||
667 | const auto pixmap = getToplevelPixmap(QRect(), false); | 663 | const auto pixmap = getToplevelPixmap(QRect(), mCapturePointer); | ||
668 | if (!pixmap.isNull()) { | 664 | if (!pixmap.isNull()) { | ||
669 | QuickEditor *editor = new QuickEditor(pixmap); | 665 | QuickEditor *editor = new QuickEditor(pixmap, this); | ||
670 | 666 | | |||
671 | connect(editor, &QuickEditor::grabDone, this, &X11ImageGrabber::rectangleSelectionConfirmed); | 667 | connect(editor, &QuickEditor::grabDone, this, &X11ImageGrabber::rectangleSelectionConfirmed); | ||
672 | connect(editor, &QuickEditor::grabCancelled, this, &X11ImageGrabber::rectangleSelectionCancelled); | 668 | connect(editor, &QuickEditor::grabCancelled, this, &X11ImageGrabber::rectangleSelectionCancelled); | ||
673 | } else { | 669 | } else { | ||
674 | emit pixmapChanged(pixmap); | 670 | emit pixmapChanged(pixmap); | ||
675 | } | 671 | } | ||
676 | } | 672 | } | ||
677 | 673 | | |||
▲ Show 20 Lines • Show All 79 Lines • Show Last 20 Lines |