[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src/traverso/songcanvas CurveView.cpp
From: |
Remon Sijrier |
Subject: |
[Traverso-commit] traverso/src/traverso/songcanvas CurveView.cpp |
Date: |
Mon, 19 Nov 2007 19:28:54 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Remon Sijrier <r_sijrier> 07/11/19 19:28:54
Modified files:
src/traverso/songcanvas: CurveView.cpp
Log message:
* some black magic added to last commit to solve paint issues when
moving clip edges
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/CurveView.cpp?cvsroot=traverso&r1=1.67&r2=1.68
Patches:
Index: CurveView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/CurveView.cpp,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -b -r1.67 -r1.68
--- CurveView.cpp 19 Nov 2007 18:54:01 -0000 1.67
+++ CurveView.cpp 19 Nov 2007 19:28:54 -0000 1.68
@@ -194,6 +194,7 @@
int xstart = (int) option->exposedRect.x();
int pixelcount = (int) option->exposedRect.width();
int height = int(m_boundingRect.height());
+ int offset = int(m_startoffset / m_sv->timeref_scalefactor);
QPen pen;
@@ -205,6 +206,7 @@
painter->save();
painter->setPen(pen);
+ painter->setClipRect(m_boundingRect);
if (m_nodeViews.size() == 1) {
@@ -216,21 +218,26 @@
if (m_nodeViews.first()->when > xstart) {
int y = int(height - (m_nodeViews.first()->value * height));
- int length = int(m_nodeViews.first()->when) - xstart;
+ int length = int(m_nodeViews.first()->when) - xstart - offset;
+ if (length > 0) {
painter->drawLine(xstart, y, xstart + length, y);
xstart += length;
pixelcount -= length;
+ }
if (pixelcount <= 0) {
painter->restore();
return;
}
}
- if (m_nodeViews.last()->when < (xstart + pixelcount)) {
+ if (m_nodeViews.last()->when < (xstart + pixelcount + offset)) {
int y = int(height - (m_nodeViews.last()->value * height));
- int length = (xstart + pixelcount) -
int(m_nodeViews.last()->when);
- painter->drawLine(int(m_nodeViews.last()->when), y,
int(m_nodeViews.last()->when + length) -1 , y);
+ int x = int(m_nodeViews.last()->when) - offset;
+ int length = (xstart + pixelcount) -
int(m_nodeViews.last()->when) + offset;
+ if (length > 0) {
+ painter->drawLine(x, y, x + length - 1, y);
pixelcount -= length;
+ }
if (pixelcount <= 0) {
painter->restore();
return;
@@ -247,14 +254,12 @@
xstart = 0;
}
- painter->setClipRect(m_boundingRect);
painter->setRenderHint(QPainter::Antialiasing);
QPolygonF polygon;
float vector[pixelcount];
// printf("range: %d\n", (int)m_nodeViews.last()->pos().x());
- int offset = int(m_startoffset / m_sv->timeref_scalefactor);
m_guicurve->get_vector(xstart + offset,
xstart + pixelcount + offset,
vector,