Browse Source

Screen grabber: Remove forced redraw

If this doesn't help we'll need to split the screen capture display
into tiles and display those instead, allowing Qt to only draw
a few of them instead of everything.
pull/1552/merge
Stefan Merettig 11 years ago committed by tux3
parent
commit
e83aac7af7
  1. 1
      src/widget/tool/screengrabberchooserrectitem.cpp
  2. 17
      src/widget/tool/screengrabberoverlayitem.cpp

1
src/widget/tool/screengrabberchooserrectitem.cpp

@ -134,7 +134,6 @@ void ScreenGrabberChooserRectItem::mouseMove(QGraphicsSceneMouseEvent* event) @@ -134,7 +134,6 @@ void ScreenGrabberChooserRectItem::mouseMove(QGraphicsSceneMouseEvent* event)
}
emit regionChosen(chosenRect());
scene()->update();
}
void ScreenGrabberChooserRectItem::mouseRelease(QGraphicsSceneMouseEvent* event)

17
src/widget/tool/screengrabberoverlayitem.cpp

@ -19,6 +19,7 @@ @@ -19,6 +19,7 @@
#include <QGraphicsSceneMouseEvent>
#include <QPainter>
#include <QPen>
#include <QStyleOptionGraphicsItem>
#include "screenshotgrabber.h"
@ -41,8 +42,9 @@ ScreenGrabberOverlayItem::~ScreenGrabberOverlayItem() @@ -41,8 +42,9 @@ ScreenGrabberOverlayItem::~ScreenGrabberOverlayItem()
void ScreenGrabberOverlayItem::setChosenRect(QRect rect)
{
this->chosenRect = rect;
update();
QRect oldRect = chosenRect;
chosenRect = rect;
update(oldRect.united(rect));
}
void ScreenGrabberOverlayItem::mousePressEvent(QGraphicsSceneMouseEvent* event)
@ -54,15 +56,6 @@ void ScreenGrabberOverlayItem::mousePressEvent(QGraphicsSceneMouseEvent* event) @@ -54,15 +56,6 @@ void ScreenGrabberOverlayItem::mousePressEvent(QGraphicsSceneMouseEvent* event)
void ScreenGrabberOverlayItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
{
if (!this->chosenRect.isValid())
{
QGraphicsRectItem::paint(painter, option, widget);
return;
}
//
painter->save();
painter->setBrush(brush());
painter->setPen(pen());
@ -76,6 +69,4 @@ void ScreenGrabberOverlayItem::paint(QPainter* painter, const QStyleOptionGraphi @@ -76,6 +69,4 @@ void ScreenGrabberOverlayItem::paint(QPainter* painter, const QStyleOptionGraphi
painter->drawRect(rightX, 0, self.width() - rightX, self.height()); // Right of chosen
painter->drawRect(leftX, 0, chosenRect.width(), topY); // Top of chosen
painter->drawRect(leftX, bottomY, chosenRect.width(), self.height() - bottomY); // Bottom of chosen
painter->restore();
}

Loading…
Cancel
Save