##// END OF EJS Templates
Fixed bug 388...
Fixed bug 388 Added cassini FGM download from Time table files. Fixed smal issue on export function. Some Work on QLop database.

File last commit:

r10:63067c6877ba default
r14:0e9217f77498 default
Show More
SocExplorerPlot.h
134 lines | 4.7 KiB | text/x-c | CLexer
/*------------------------------------------------------------------------------
-- This file is a part of the QLop Software
-- Copyright (C) 2015, Plasma Physics Laboratory - CNRS
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 2 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-------------------------------------------------------------------------------*/
/*-- Author : Alexis Jeandet
-- Mail : alexis.jeandet@member.fsf.org
----------------------------------------------------------------------------*/
#ifndef SOCEXPLORERPLOT_H
#define SOCEXPLORERPLOT_H
#include <QWidget>
#include <QGridLayout>
#include <qcustomplot.h>
#include <qcustomplotvect.h>
#include <QRubberBand>
#include <QPoint>
class SocExplorerPlotActions : public QAction
{
Q_OBJECT
public:
SocExplorerPlotActions(const QString &text,int PID,QObject* parent=0)
:QAction(text,parent)
{
setPID(PID);
connect(this,SIGNAL(triggered()),this,SLOT(trigger()));
}
SocExplorerPlotActions(const QIcon &icon, const QString &text,int PID, QObject* parent)
:QAction(icon,text,parent)
{
setPID(PID);
connect(this,SIGNAL(triggered()),this,SLOT(trigger()));
}
~SocExplorerPlotActions(){}
void setPID(int PID){this->m_PID=PID;}
int PID(){return m_PID;}
private slots:
void trigger(){emit triggered(m_PID);}
signals:
void triggered(int PID);
private:
int m_PID;
};
class SocExplorerPlot : public QWidget
{
Q_OBJECT
public:
explicit SocExplorerPlot(QWidget *parent = 0);
~SocExplorerPlot();
void setTitle(QString title);
const QString& title();
void setXaxisLabel(QString label);
void setXaxisLog();
void setXaxisRange(double lower, double upper);
void setYaxisLabel(QString label);
void setYaxisLog();
void setYaxisRange(double lower, double upper);
void rescaleAxis();
void setLegendFont(QFont font);
void setLegendSelectedFont(QFont font);
void setAdaptativeSampling(int graphIndex,bool enable);
void setUseFastVector(int graphIndex,bool enable);
int addGraph();
bool removeGraph(int graphIndex);
int graphCount();
void removeAllGraphs();
void setGraphName(int graphIndex,QString name);
const QString& graphName(int graphIndex);
void setGraphData(int graphIndex, QList<QVariant> x, QList<QVariant> y);
void setGraphData(int graphIndex, QCPDataMap* data,bool copy = true,bool replot=true);
void setGraphData(int graphIndex, QVector<QCPData> *data, bool replot);
void addGraphData(int graphIndex, QList<QVariant> x, QList<QVariant> y);
void addGraphData(int graphIndex, QVariant x, QVariant y);
void setGraphPen(int graphIndex,QPen pen);
QPen getGraphPen(int graphIndex);
void setGraphLineStyle(int graphIndex,QString lineStyle);
void setGraphScatterStyle(int graphIndex,QString scatterStyle);
void setXaxisTickLabelType(QCPAxis::LabelType type);
void setXaxisDateTimeFormat(const QString &format);
void show();
void replot();
void exportToSVG(const QString& fileName);
void exportToPDF(const QString& fileName);
void addAction(SocExplorerPlotActions* action);
int PID(){return m_PID;}
void setPID(int PID){m_PID = PID;}
QVector<QCPData>* getVisibleData(int graphIndex);
signals:
void titleChanged(const QString& newTitle);
public slots:
protected:
void keyPressEvent(QKeyEvent *);
void keyReleaseEvent(QKeyEvent *);
void wheelEvent(QWheelEvent *);
void mousePressEvent(QMouseEvent *);
void mouseMoveEvent(QMouseEvent *);
void mouseReleaseEvent(QMouseEvent *);
private:
void zoom(double factor, int center, Qt::Orientation orientation);
void move(double factor, Qt::Orientation orientation);
QCustomPlotVect* m_plot;
QGridLayout* m_mainlayout;
bool ctrl_hold;
bool shift_hold;
bool mouse_hold;
QCPRange DragStartHorzRange;
QCPRange DragStartVertRange;
QPoint mDragStart;
bool mZoomMode;
QRubberBand * mRubberBand;
QPoint mOrigin;
QList<SocExplorerPlotActions*> m_actions;
QString m_Title;
int m_PID;
};
#endif // SOCEXPLORERPLOT_H