[Kst] branches/work/kst/1.5/kst/src/libkstapp
Andrew Walker
arwalker at sumusltd.com
Tue Aug 28 23:03:46 CEST 2007
SVN commit 705903 by arwalker:
CCBUG:123561 ensure clip region is correctly updated after deleting objects via the shortcut
M +2 -0 ksttoplevelview.cpp
M +1 -1 kstviewellipse.cpp
M +9 -1 kstviewobject.cpp
--- branches/work/kst/1.5/kst/src/libkstapp/ksttoplevelview.cpp #705902:705903
@@ -1860,7 +1860,9 @@
void KstTopLevelView::deleteSelectedObjects() {
for (KstViewObjectList::Iterator i = _selectionList.begin(); i != _selectionList.end(); ++i) {
KstViewObjectPtr selection = *i;
+
if (selection && selection->parent()) {
+ selection->parent()->invalidateClipRegion();
selection->parent()->removeChild(selection);
}
}
--- branches/work/kst/1.5/kst/src/libkstapp/kstviewellipse.cpp #705902:705903
@@ -230,4 +230,4 @@
#include "kstviewellipse.moc"
-// vim: ts=2 sw=2 et
+
--- branches/work/kst/1.5/kst/src/libkstapp/kstviewobject.cpp #705902:705903
@@ -307,12 +307,14 @@
void KstViewObject::paint(KstPainter& p, const QRegion& bounds) {
bool maximized = false;
+
if (p.type() == KstPainter::P_EXPORT || p.type() == KstPainter::P_PRINT) {
// handle the case where we have maximized plots
for (KstViewObjectList::Iterator i = _children.begin(); i != _children.end(); ++i) {
if ((*i)->_maximized) {
(*i)->paint(p, bounds);
maximized = true;
+
break;
}
}
@@ -323,6 +325,7 @@
(*i)->paint(p, bounds);
}
}
+
return;
}
@@ -346,12 +349,14 @@
if ((*i)->_maximized) {
(*i)->paint(p, bounds);
maximized = true;
+
break;
}
}
if (!maximized) {
QRegion clipRegion;
+
if (nullBounds) {
clipRegion = geometry();
} else {
@@ -362,6 +367,7 @@
KstViewObjectList::Iterator begin = _children.begin();
for (KstViewObjectList::Iterator i = _children.fromLast();; --i) {
const QRegion thisObjectGeometry((*i)->geometry());
+
if (nullBounds || !clipRegion.intersect(thisObjectGeometry).isEmpty()) {
#ifdef BENCHMARK
QTime t;
@@ -1305,14 +1311,16 @@
if (_topObjectForMenu) {
KstTopLevelViewPtr tlv = kst_cast<KstTopLevelView>(KstViewObjectPtr(_topObjectForMenu));
+
if (tlv && vop == tlv->pressTarget()) {
tlv->clearPressTarget();
}
+
if (this->_parent) {
this->_parent->invalidateClipRegion();
}
+
_topObjectForMenu->removeChild(this, true);
-
_topObjectForMenu = 0L;
}
More information about the Kst
mailing list