Changeset 8369:a6c2321d20b2 in orange


Ignore:
Timestamp:
07/06/11 12:16:15 (3 years ago)
Author:
Noughmad <Noughmad@…>
Branch:
default
Convert:
5a2503d161fa2689529ab5cacdc9b4e5bbe05a1f
Message:

Revert bad commit

Location:
source/orangeplot
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • source/orangeplot/CMakeLists.txt

    r8368 r8369  
    1414 
    1515#### orangeplot sources #### 
    16 set(orangeplot_SRCS plotitem.cpp curve.cpp unconnectedlinescurve.cpp networkcurve.cpp plot.cpp) 
     16set(orangeplot_SRCS plotitem.cpp curve.cpp unconnectedlinescurve.cpp plot.cpp) 
    1717qt4_automoc(${orangeplot_SRCS}) 
    1818 
  • source/orangeplot/curve.cpp

    r8368 r8369  
    1616    checkForUpdate(); 
    1717} 
    18  
    19 Curve::Curve(QGraphicsItem* parent, QGraphicsScene* scene): PlotItem(parent, scene) 
    20 { 
    21     m_style = NoCurve; 
    22     m_lineItem = 0; 
    23     m_needsUpdate = 0; 
    24 } 
    25  
    2618 
    2719Curve::~Curve() 
  • source/orangeplot/curve.h

    r8368 r8369  
    6464   **/ 
    6565  Curve(const QList< double >& xData, const QList< double >& yData, QGraphicsItem* parent = 0, QGraphicsScene* scene = 0); 
    66   Curve(QGraphicsItem* parent = 0, QGraphicsScene* scene = 0); 
    6766 
    6867  /** 
  • source/orangeplot/orangeplot.sip

    r8368 r8369  
    22 
    33%Import QtGui/QtGuimod.sip 
     4 
     5// QPair<double, double> is implemented as a Python 2-element tuple. 
     6%MappedType QPair<double, double> /DocType="tuple-of-float-float"/ 
     7{ 
     8%TypeHeaderCode 
     9#include <QtCore/QPair> 
     10%End 
     11 
     12%ConvertFromTypeCode 
     13    // Create the tuple. 
     14    return Py_BuildValue((char *)"dd", sipCpp->first, sipCpp->second); 
     15%End 
     16 
     17%ConvertToTypeCode 
     18    // Check the type if that is all that is required. 
     19    if (sipIsErr == NULL) 
     20        return (PyTuple_Size(sipPy) == 2); 
     21     
     22    QPair<double,double>* qp = new QPair<double,double>(); 
     23 
     24    PyArg_ParseTuple(sipPy, "dd", &qp->first, &qp->second); 
     25    *sipCppPtr = qp; 
     26     
     27    return sipGetState(sipTransferObj); 
     28%End 
     29}; 
     30 
    431 
    532%Include plot.sip 
     
    734%Include curve.sip 
    835%Include unconnectedlinescurve.sip 
     36%Include networkcurve.sip 
  • source/orangeplot/plot.cpp

    r8368 r8369  
    109109 
    110110#include "plot.moc" 
     111#include "plot.h" 
     112#include "plotitem.h" 
     113 
     114#include <QtCore/QDebug> 
     115 
     116Plot::Plot(QWidget* parent):  
     117QGraphicsView(parent),  
     118graph_item(new QGraphicsRectItem()) 
     119{ 
     120    setScene(new QGraphicsScene(this)); 
     121    scene()->addItem(graph_item); 
     122} 
     123 
     124Plot::~Plot() 
     125{ 
     126 
     127} 
     128 
     129void Plot::addItem(PlotItem* item) 
     130{ 
     131    if (m_items.contains(item)) 
     132    { 
     133        qWarning() << "Item is already in this graph"; 
     134        return; 
     135    } 
     136    item->m_plot = this; 
     137    item->setParentItem(graph_item); 
     138    m_items << item; 
     139} 
     140 
     141void Plot::removeItem(PlotItem* item) 
     142{ 
     143    qDebug() << "Removing item" << item << "with parent" << item->parentItem(); 
     144    if (m_items.contains(item)) 
     145    { 
     146        item->setParentItem(0); 
     147        m_items.removeAll(item); 
     148        item->m_plot = 0; 
     149    } 
     150    else 
     151    { 
     152        qWarning() << "Trying to remove an item that doesn't belong to this graph"; 
     153    } 
     154} 
     155 
     156QList< PlotItem* > Plot::itemList() 
     157{ 
     158    qDebug() << "Returning itemlist with" << m_items.size() << "items"; 
     159    return m_items; 
     160} 
     161 
     162QRectF Plot::dataRectForAxes(int xAxis, int yAxis) 
     163{ 
     164    QRectF r; 
     165    QPair<int,int> axes = qMakePair(xAxis, yAxis); 
     166    foreach (PlotItem* item, m_items) 
     167    { 
     168        if (item->isAutoScale() && item->axes() == axes) 
     169        { 
     170            r |= item->dataRect(); 
     171        } 
     172    } 
     173    return r; 
     174} 
     175 
     176QPair< double, double > Plot::boundsForAxis(int axis) 
     177{ 
     178    QRectF y_r; 
     179    QRectF x_r; 
     180    foreach (PlotItem* item, m_items) 
     181    { 
     182        if (item->isAutoScale()) 
     183        { 
     184            if (item->axes().first == axis) 
     185            { 
     186               x_r |= item->dataRect();  
     187            } 
     188            else if (item->axes().second == axis) 
     189            { 
     190                y_r |= item->dataRect(); 
     191            } 
     192        } 
     193    } 
     194    if (x_r.isValid()) 
     195    { 
     196        return qMakePair(x_r.left(), x_r.right()); 
     197    } 
     198    else if (y_r.isValid()) 
     199    { 
     200        return qMakePair(y_r.top(), y_r.bottom()); 
     201    } 
     202    return qMakePair(0.0, 0.0); 
     203} 
     204 
     205void Plot::setDirty()  
     206{ 
     207    m_dirty = true; 
     208} 
     209 
     210void Plot::setClean()  
     211{ 
     212    m_dirty = false; 
     213} 
     214 
     215bool Plot::isDirty()  
     216{ 
     217    return m_dirty; 
     218} 
     219 
     220#include "plot.moc" 
  • source/orangeplot/plot.h

    r8368 r8369  
    3434}; 
    3535 
    36 #endif // PLOT_H 
     36#endif // GRAPH_H 
     37#ifndef PLOT_H 
     38#define PLOT_H 
     39 
     40#include <QtGui/QGraphicsView> 
     41 
     42class PlotItem; 
     43 
     44class Plot : public QGraphicsView 
     45{ 
     46    Q_OBJECT 
     47public: 
     48    Plot(QWidget* parent = 0); 
     49    virtual ~Plot(); 
     50     
     51    void addItem(PlotItem* item); 
     52    void removeItem(PlotItem* item); 
     53     
     54    QRectF dataRectForAxes(int xAxis, int yAxis); 
     55    QPair< double, double > boundsForAxis(int axis); 
     56     
     57    QList<PlotItem*> itemList(); 
     58     
     59    QGraphicsRectItem* graph_item; 
     60     
     61    void setDirty(); 
     62     
     63protected: 
     64    void setClean();; 
     65    bool isDirty(); 
     66     
     67private: 
     68    QList<PlotItem*> m_items; 
     69    bool m_dirty; 
     70}; 
     71 
     72#endif // GRAPH_H 
Note: See TracChangeset for help on using the changeset viewer.