Esempio n. 1
0
void ChartDialog::doTimeStepChanged(int index)
{
    logMessage("ChartDialog::doTimeStepChanged()");

    if (cmbTimeStep->currentIndex() != -1)
    {
        Util::scene()->sceneSolution()->setTimeStep(cmbTimeStep->currentIndex());
        doPlot();
    }
}
Esempio n. 2
0
DSceneFunction::DSceneFunction(SceneFunction *sceneFunction, QWidget *parent) : QDialog(parent)
{
    logMessage("DSceneFunction::DSceneFunction()");

    m_sceneFunction = sceneFunction;

    setWindowIcon(icon("scene-function"));
    setWindowTitle(tr("Function"));

    createControls();
    load();
    doPlot();

    setMinimumSize(sizeHint());
}
Esempio n. 3
0
void ChartDialog::doFieldVariable(int index)
{
    logMessage("ChartDialog::doFieldVariable()");

    PhysicFieldVariable physicFieldVariable = (PhysicFieldVariable) cmbFieldVariable->itemData(index).toInt();

    cmbFieldVariableComp->clear();
    if (isPhysicFieldVariableScalar(physicFieldVariable))
    {
        cmbFieldVariableComp->addItem(tr("Scalar"), PhysicFieldVariableComp_Scalar);
    }
    else
    {
        cmbFieldVariableComp->addItem(tr("Magnitude"), PhysicFieldVariableComp_Magnitude);
        cmbFieldVariableComp->addItem(Util::scene()->problemInfo()->labelX(), PhysicFieldVariableComp_X);
        cmbFieldVariableComp->addItem(Util::scene()->problemInfo()->labelY(), PhysicFieldVariableComp_Y);
    }

    if (cmbFieldVariableComp->currentIndex() == -1)
        cmbFieldVariableComp->setCurrentIndex(0);

    if (isVisible()) doPlot();
}
Esempio n. 4
0
void
CQGnuPlotDataDialog::
addPlotSlot()
{
  doPlot(true);
}
Esempio n. 5
0
void
CQGnuPlotDataDialog::
overlayPlotSlot()
{
  doPlot(false);
}
Esempio n. 6
0
void ChartDialog::doFieldVariableComp(int index)
{
    logMessage("ChartDialog::doFieldVariableComp()");

    if (isVisible()) doPlot();
}
Esempio n. 7
0
void ChartDialog::createControls()
{
    logMessage("ChartDialog::createControls()");

    chart = new Chart(this);

    // controls
    QWidget *controls = new QWidget(this);

    QPushButton *btnPlot = new QPushButton(controls);
    btnPlot->setText(tr("Plot"));
    connect(btnPlot, SIGNAL(clicked()), this, SLOT(doPlot()));

    QPushButton *btnSaveImage = new QPushButton(controls);
    btnSaveImage->setText(tr("Save image"));
    connect(btnSaveImage, SIGNAL(clicked()), SLOT(doSaveImage()));

    QPushButton *btnExportData = new QPushButton(controls);
    btnExportData->setText(tr("Export"));
    connect(btnExportData, SIGNAL(clicked()), SLOT(doExportData()));

    // geometry
    lblStartX = new QLabel("X:");
    lblStartY = new QLabel("Y:");
    lblEndX = new QLabel("X:");
    lblEndY = new QLabel("Y:");

    txtStartX = new ValueLineEdit();
    txtStartY = new ValueLineEdit();
    txtEndX = new ValueLineEdit();
    txtEndY = new ValueLineEdit();

    connect(txtStartX, SIGNAL(editingFinished()), this, SLOT(doChartLine()));
    connect(txtStartY, SIGNAL(editingFinished()), this, SLOT(doChartLine()));
    connect(txtEndX, SIGNAL(editingFinished()), this, SLOT(doChartLine()));
    connect(txtEndY, SIGNAL(editingFinished()), this, SLOT(doChartLine()));

    // start
    QGridLayout *layoutStart = new QGridLayout();
    layoutStart->addWidget(lblStartX, 0, 0);
    layoutStart->addWidget(txtStartX, 0, 1);
    layoutStart->addWidget(lblStartY, 1, 0);
    layoutStart->addWidget(txtStartY, 1, 1);

    QGroupBox *grpStart = new QGroupBox(tr("Start"), this);
    grpStart->setLayout(layoutStart);

    // end
    QGridLayout *layoutEnd = new QGridLayout();
    layoutEnd->addWidget(lblEndX, 0, 0);
    layoutEnd->addWidget(txtEndX, 0, 1);
    layoutEnd->addWidget(lblEndY, 1, 0);
    layoutEnd->addWidget(txtEndY, 1, 1);

    QGroupBox *grpEnd = new QGroupBox(tr("End"), this);
    grpEnd->setLayout(layoutEnd);

    // angle
    txtAngle = new ValueLineEdit();
    connect(txtAngle, SIGNAL(editingFinished()), this, SLOT(doChartLine()));

    QHBoxLayout *layoutAngle = new QHBoxLayout();
    layoutAngle->addWidget(new QLabel("Angle"));
    layoutAngle->addWidget(txtAngle);

    QGroupBox *grpAngle = new QGroupBox(tr("Angle"), this);
    grpAngle->setLayout(layoutAngle);

    // x - axis
    radAxisLength = new QRadioButton(tr("Length"), this);
    radAxisLength->setChecked(true);
    radAxisX = new QRadioButton("X", this);
    radAxisY = new QRadioButton("Y", this);

    QButtonGroup *axisGroup = new QButtonGroup(this);
    axisGroup->addButton(radAxisLength);
    axisGroup->addButton(radAxisX);
    axisGroup->addButton(radAxisY);
    connect(radAxisLength, SIGNAL(clicked()), this, SLOT(doPlot()));
    connect(radAxisX, SIGNAL(clicked()), this, SLOT(doPlot()));
    connect(radAxisY, SIGNAL(clicked()), this, SLOT(doPlot()));

    // axis
    QHBoxLayout *layoutAxis = new QHBoxLayout(this);
    layoutAxis->addWidget(radAxisLength);
    layoutAxis->addWidget(radAxisX);
    layoutAxis->addWidget(radAxisY);

    QGroupBox *grpAxis = new QGroupBox(tr("Horizontal axis"), this);
    grpAxis->setLayout(layoutAxis);

    // axis points and time step
    txtAxisPoints = new QSpinBox(this);
    txtAxisPoints->setMinimum(2);
    txtAxisPoints->setMaximum(500);
    txtAxisPoints->setValue(200);
    chkAxisPointsReverse = new QCheckBox(tr("Reverse"));
    connect(chkAxisPointsReverse, SIGNAL(clicked()), this, SLOT(doPlot()));

    // timestep
    cmbTimeStep = new QComboBox(this);
    connect(cmbTimeStep, SIGNAL(currentIndexChanged(int)), this, SLOT(doTimeStepChanged(int)));

    QGridLayout *layoutAxisPointsAndTimeStep = new QGridLayout();
    layoutAxisPointsAndTimeStep->addWidget(new QLabel(tr("Points:")), 0, 0);
    layoutAxisPointsAndTimeStep->addWidget(txtAxisPoints, 0, 1);
    layoutAxisPointsAndTimeStep->addWidget(chkAxisPointsReverse, 0, 2);
    layoutAxisPointsAndTimeStep->addWidget(new QLabel(tr("Time step:")), 1, 0);
    layoutAxisPointsAndTimeStep->addWidget(cmbTimeStep, 1, 1, 1, 2);

    QGroupBox *grpAxisPointsAndTimeStep = new QGroupBox(tr("Points and time step"), this);
    grpAxisPointsAndTimeStep->setLayout(layoutAxisPointsAndTimeStep);

    // time
    lblPointX = new QLabel("X:");
    lblPointY = new QLabel("Y:");
    txtPointX = new ValueLineEdit();
    txtPointY = new ValueLineEdit();

    QGridLayout *layoutTime = new QGridLayout();
    layoutTime->addWidget(lblPointX, 0, 0);
    layoutTime->addWidget(txtPointX, 0, 1);
    layoutTime->addWidget(lblPointY, 1, 0);
    layoutTime->addWidget(txtPointY, 1, 1);

    QGroupBox *grpTime = new QGroupBox(tr("Point"), this);
    grpTime->setLayout(layoutTime);

    // plot
    // variable
    cmbFieldVariable = new QComboBox(this);
    connect(cmbFieldVariable, SIGNAL(currentIndexChanged(int)), this, SLOT(doFieldVariable(int)));
    // component
    cmbFieldVariableComp = new QComboBox(this);
    connect(cmbFieldVariableComp, SIGNAL(currentIndexChanged(int)), this, SLOT(doFieldVariableComp(int)));
    doFieldVariable(cmbFieldVariable->currentIndex());

    QFormLayout *layoutVariable = new QFormLayout(this);
    layoutVariable->addRow(tr("Variable:"), cmbFieldVariable);
    layoutVariable->addRow(tr("Component:"), cmbFieldVariableComp);

    QWidget *grpVariable = new QWidget(this);
    grpVariable->setLayout(layoutVariable);

    // table
    trvTable = new QTableWidget(this);

    // button bar
    QHBoxLayout *layoutButton = new QHBoxLayout();
    layoutButton->addStretch();
    layoutButton->addWidget(btnPlot);
    layoutButton->addWidget(btnSaveImage);
    layoutButton->addWidget(btnExportData);

    QWidget *widButton = new QWidget(this);
    widButton->setLayout(layoutButton);

    // controls geometry
    widGeometry = new QWidget(this);
    QVBoxLayout *controlsGeometryLayout = new QVBoxLayout();
    widGeometry->setLayout(controlsGeometryLayout);
    controlsGeometryLayout->addWidget(grpStart);
    controlsGeometryLayout->addWidget(grpEnd);
    controlsGeometryLayout->addWidget(grpAngle);
    controlsGeometryLayout->addWidget(grpAxis);
    controlsGeometryLayout->addWidget(grpAxisPointsAndTimeStep);
    controlsGeometryLayout->addStretch();

    // controls time
    widTime = new QWidget(this);
    QVBoxLayout *controlsTimeLayout = new QVBoxLayout();
    widTime->setLayout(controlsTimeLayout);
    controlsTimeLayout->addWidget(grpTime);
    controlsTimeLayout->addStretch();

    tabAnalysisType = new QTabWidget(this);
    tabAnalysisType->addTab(widGeometry, icon(""), tr("Geometry"));
    tabAnalysisType->addTab(widTime, icon(""), tr("Time"));

    // controls
    QVBoxLayout *controlsLayout = new QVBoxLayout();
    controls->setLayout(controlsLayout);
    controls->setMinimumWidth(280);

    controlsLayout->addWidget(tabAnalysisType);
    controlsLayout->addWidget(grpVariable);
    controlsLayout->addStretch();
    controlsLayout->addWidget(widButton);

    // tab data widget
    tabOutput = new QTabWidget(this);
    tabOutput->addTab(chart, icon(""), tr("Chart"));
    tabOutput->addTab(trvTable, icon(""), tr("Table"));

    // main layout
    QHBoxLayout *layout = new QHBoxLayout(this);
    layout->addWidget(controls);
    layout->addWidget(tabOutput, 1);

    // chart picker
    picker = new QwtPlotPicker(QwtPlot::xBottom, QwtPlot::yLeft,
                               QwtPicker::PointSelection | QwtPicker::DragSelection,
                               QwtPlotPicker::CrossRubberBand, QwtPicker::AlwaysOn,
                               chart->canvas());
    picker->setRubberBandPen(QColor(Qt::green));
    picker->setRubberBand(QwtPicker::CrossRubberBand);
    picker->setTrackerMode(QwtPicker::ActiveOnly);
    picker->setTrackerPen(QColor(Qt::black));

    connect(picker, SIGNAL(moved(const QPoint &)), SLOT(doMoved(const QPoint &)));

    setLayout(layout);
}
Esempio n. 8
0
void DSceneFunction::createControls()
{
    logMessage("DSceneFunction::createControls()");

    // chart
    chart = new Chart(this);
    // axis labels
    QwtText text("");
    text.setFont(QFont("Helvetica", 10, QFont::Normal));
    text.setText("x");
    chart->setAxisTitle(QwtPlot::xBottom, text);
    text.setText("y");
    chart->setAxisTitle(QwtPlot::yLeft, text);

    // name
    txtName = new QLineEdit("");
    txtFunction = new QLineEdit();

    // interval
    txtStart = new ValueLineEdit();
    txtStart->setMaximumWidth(100);
    connect(txtStart, SIGNAL(editingFinished()), this, SLOT(doPlot()));

    txtEnd = new ValueLineEdit();
    txtEnd->setMaximumWidth(100);
    connect(txtEnd, SIGNAL(editingFinished()), this, SLOT(doPlot()));

    lblError = new QLabel();
    lblError->setVisible(false);

    QPushButton *btnPlot = new QPushButton(this);
    btnPlot->setText(tr("Plot"));
    connect(btnPlot, SIGNAL(clicked()), this, SLOT(doPlot()));

    QPushButton *btnSaveImage = new QPushButton(this);
    btnSaveImage->setText(tr("Save image"));
    connect(btnSaveImage, SIGNAL(clicked()), SLOT(doSaveImage()));

    QGridLayout *controlsLayout = new QGridLayout();
    controlsLayout->addWidget(new QLabel(tr("Start:")), 0, 0);
    controlsLayout->addWidget(txtStart, 0, 1);
    controlsLayout->addWidget(new QLabel(tr("End:")), 1, 0);
    controlsLayout->addWidget(txtEnd, 1, 1);
    controlsLayout->addWidget(new QLabel(tr("Name:")), 0, 2);
    controlsLayout->addWidget(txtName, 0, 3);
    controlsLayout->addWidget(new QLabel(tr("Function:")), 1, 2);
    controlsLayout->addWidget(txtFunction, 1, 3);
    controlsLayout->addWidget(lblError, 0, 4, 2, 1);
    controlsLayout->addWidget(btnPlot, 0, 5);
    controlsLayout->addWidget(btnSaveImage, 1, 5);

    // dialog buttons
    QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
    connect(buttonBox, SIGNAL(accepted()), this, SLOT(doAccept()));
    connect(buttonBox, SIGNAL(rejected()), this, SLOT(doReject()));

    QVBoxLayout *layout = new QVBoxLayout();
    layout->addWidget(chart);
    layout->addLayout(controlsLayout);
    layout->addWidget(buttonBox);

    setLayout(layout);
}
Esempio n. 9
0
extern "C" int graphicalInterface(int argc,char *argv[],pulsar *psr,int *npsr) 
{
  char parFile[MAX_PSR][MAX_FILELEN];
  char oparFile[MAX_PSR][MAX_FILELEN]; // Overlay files
  char timFile[MAX_PSR][MAX_FILELEN];
  char otimFile[MAX_PSR][MAX_FILELEN];
  char tpar[MAX_PSR][MAX_FILELEN];
  char ttim[MAX_PSR][MAX_FILELEN];
  int i;
  int plotUs=0;
  float scale[1000];
  int nScale=0;
  char grDev[100]="/vps";
  //  char grDev[100]="/xs";
  FILE *pin;
  FILE *fin;
  char str[1000];
  float fontsize = 1.2;
  float centreMJD=54500;
  int ptStyle=16;
  float ptSize = 1;
  int reverse=0;
  int error=1;
  float miny=-1;
  float maxy=-1;
  float minx=-1;
  float maxx=-1;
  int nOverlay=0;
  float labelsize=-1;
  float fracX = 0.85;
  *npsr = 0; 
  strcpy(covarFuncFile2,"NULL");

  printf("Graphical Interface: plotMany\n");
  printf("Author:              George Hobbs\n");
  printf("Version:             1.0\n");

  /* Obtain the .par and the .tim file from the command line */
  for (i=1;i<argc;i++)
    {
      if (strcmp(argv[i],"-f")==0)
	{	  
	  strcpy(parFile[*npsr],argv[i+1]); 
	  strcpy(timFile[*npsr],argv[i+2]);	  
	  (*npsr)++;
	  if (*npsr > MAX_PSR)
	    {
	      printf("Error, npsr > MAX_PSR.  Must increase MAX_PSR\n");
	      exit(1);
	    } 
	}
      else if (strcmp(argv[i],"-overlay")==0)
	sscanf(argv[i+1],"%d",&nOverlay);
      else if (strcmp(argv[i],"-dcf")==0){
        strcpy(covarFuncFile2,argv[++i]);
	  }
      else if (strcmp(argv[i],"-g")==0)
	strcpy(grDev,argv[++i]);
      else if (strcmp(argv[i],"-h")==0)
	help();
      else if (strcmp(argv[i],"-scale")==0)
	{
	  sscanf(argv[i+1],"%f",&scale[nScale]);
	  nScale++;
	}
      else if (strcmp(argv[i],"-fontsize")==0)
	sscanf(argv[i+1],"%f",&fontsize);
      else if (strcasecmp(argv[i],"-fracX")==0)
	sscanf(argv[i+1],"%f",&fracX);
      else if (strcasecmp(argv[i],"-labelSize")==0)
	sscanf(argv[i+1],"%f",&labelsize);
      else if (strcmp(argv[i],"-ptstyle")==0)
	  sscanf(argv[i+1],"%d",&ptStyle);
      else if (strcmp(argv[i],"-ptsize")==0)
	  sscanf(argv[i+1],"%f",&ptSize);
      else if (strcmp(argv[i],"-miny")==0)
	  sscanf(argv[i+1],"%f",&miny);
      else if (strcmp(argv[i],"-maxy")==0)
	  sscanf(argv[i+1],"%f",&maxy);
      else if (strcmp(argv[i],"-minx")==0)
	  sscanf(argv[i+1],"%f",&minx);
      else if (strcmp(argv[i],"-maxx")==0)
	  sscanf(argv[i+1],"%f",&maxx);
      else if (strcmp(argv[i],"-reverse")==0)
	reverse=1;
      else if (strcmp(argv[i],"-centremjd")==0)
	sscanf(argv[i+1],"%f",&centreMJD);
      else if (strcmp(argv[i],"-plotus")==0)
	plotUs=1;
      else if (strcmp(argv[i],"-noerror")==0)
	error=0;
    }

  if (*npsr==0) /* Select all files */
    {
      printf("Using all available .par and .tim files\n");
      sprintf(str,"ls `ls *.par | sed s/par/tim/` | sed s/.tim/\"\"/");
      pin = popen(str,"r");
      while (!feof(pin))
	{
	  if (fscanf(pin,"%s",str)==1)
	    {
	      sprintf(parFile[*npsr],"%s.par",str);
	      sprintf(timFile[*npsr],"%s.tim",str);
	      (*npsr)++;
	    }
	}
      pclose(pin);
      printf("Obtained files for %d pulsars\n",*npsr);
    }
 if (reverse==1) // Reverse order of .par and .tim files
   {
     for (i=0;i<*npsr;i++)
       {
     	 strcpy(tpar[i],parFile[i]);
     	 strcpy(ttim[i],timFile[i]);	 
       }
     for (i=0;i<*npsr;i++)
       {
	 //	 printf("Have %d %d %d >%s< >%s<\n",i,*npsr,(*npsr)-i-1,tpar[(*npsr)-i-1],ttim[(*npsr)-i-1]);
	 strcpy(parFile[i],tpar[(*npsr)-i-1]);
	 strcpy(timFile[i],ttim[(*npsr)-i-1]);
	 //	 strcpy(timFile[i],"J0900-3144.new2.tim");
       }
   }

 printf("Starting plugin1\n");
 //  initialise(psr,0);              /* Initialise the structures */
 readParfile(psr,parFile,timFile,*npsr); /* Load the parameters       */
 printf("Starting plugin2\n");
 readTimfile(psr,timFile,*npsr); /* Load the arrival times    */
 printf("Starting plugin3\n");
  preProcess(psr,*npsr,argc,argv);
 printf("Starting plugin4\n");
  callFit(psr,*npsr);             /* Do all the fitting routines */
 printf("Starting plugin5\n");
 doPlot(psr,*npsr,scale,nScale,grDev,plotUs,fontsize,centreMJD,ptStyle,ptSize,error,miny,maxy,minx,maxx,nOverlay,labelsize,fracX);              /* Do plot */
 printf("Starting plugin6\n");
}
Esempio n. 10
0
extern "C" int graphicalInterface(int argc,char *argv[],pulsar *psr,int *npsr) 
{
  char parFile[MAX_PSR][MAX_FILELEN];
  char timFile[MAX_PSR][MAX_FILELEN];
  int i;
  int overlay=0;
  FILE *pin;
  char str[1000];
  *npsr = 0;  /* This graphical interface will only show results for one pulsar */


  strcpy(dcmFile,"NULL");
  strcpy(covarFuncFile,"NULL");

  printf("Graphical Interface: plk emulator\n");
  printf("Author:              George Hobbs (21 Dec 2003)\n");
  printf("CVS Version:         $Revision $\n");

  /* Obtain the .par and the .tim file from the command line */
  for (i=1;i<argc;i++)
    {
      if (strcmp(argv[i],"-f")==0)
	{	  
	  strcpy(parFile[*npsr],argv[i+1]); 
	  strcpy(timFile[*npsr],argv[i+2]);	  
	  (*npsr)++;
	  if (*npsr > MAX_PSR)
	    {
	      printf("Error, npsr > MAX_PSR.  Must increase MAX_PSR\n");
	      exit(1);
	    } 
	}
      else if (strcmp(argv[i],"-dcm")==0)
	strcpy(dcmFile,argv[++i]);
      else if (strcmp(argv[i],"-dcf")==0)
	strcpy(covarFuncFile,argv[++i]);
      else if (strcmp(argv[i],"-overlay")==0)
	overlay=1;
    }

if (*npsr==0) /* Select all files */
    {
      printf("Using all available .par and .tim files\n");
      sprintf(str,"ls `ls *.par | sed s/par/tim/` | sed s/.tim/\"\"/");
      pin = popen(str,"r");
      while (!feof(pin))
	{
	  if (fscanf(pin,"%s",str)==1)
	    {
	      sprintf(parFile[*npsr],"%s.par",str);
	      sprintf(timFile[*npsr],"%s.tim",str);
	      (*npsr)++;
	    }
	}
      pclose(pin);
      printf("Obtained files for %d pulsars\n",*npsr);
    }

//  initialise(psr,0);              /* Initialise the structures */
  readParfile(psr,parFile,timFile,*npsr); /* Load the parameters       */
  readTimfile(psr,timFile,*npsr); /* Load the arrival times    */
  preProcess(psr,*npsr,argc,argv);
  callFit(psr,*npsr);             /* Do all the fitting routines */
  doPlot(psr,*npsr,overlay);              /* Do plot */
  return 0;
}