traverso-commit
[Top][All Lists]
Advanced

[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,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]