All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Signals | Public Member Functions
SciFigs::CurveProperties Class Reference

Brief description of class still missing. More...

#include <CurveProperties.h>

List of all members.

Signals

void curveModified ()
void nameChanged (QString n)

Public Member Functions

void curveChanged ()
 CurveProperties (QWidget *parent=0)
void cut (double minimum, double maximum, SamplingOptions options)
CurveBrowserProxyproxy () const
void resample (int n, double minimum, double maximum, SamplingOptions options, bool distance)
void save ()
void setCurrentLayer (LineLayer *layer)
void setEditable (bool e)
void setProxy (CurveBrowserProxy *proxy)
void showLog ()
void smooth (double minimum, double maximum, SamplingOptions options)
 ~CurveProperties ()

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

SciFigs::CurveProperties::CurveProperties ( QWidget *  parent = 0)

Description of constructor still missing

References TRACE.

    : QWidget(parent)
  {
    TRACE;
    setupUi(this);

    CurveBrowserDelegate * delegate=new CurveBrowserDelegate(this);
    curveTable->setItemDelegate(delegate);
    connect(delegate, SIGNAL(dataChanged()), this, SLOT(applyAllSelected()));

    curveTable->setSelectionBehavior(QAbstractItemView::SelectItems);
    curveTable->setSelectionMode(QAbstractItemView::ExtendedSelection);
    curveTable->setEditTriggers(QAbstractItemView::AllEditTriggers);
    curveTable->resizeColumnsToContents();

    _proxy=0;
  }

Description of destructor still missing

References SciFigs::CurveBrowserProxy::tag(), and TRACE.

  {
    TRACE;
    Settings::setColumnWidth(curveTable, _proxy->tag());
    delete _proxy;
  }

Member Function Documentation

References curveModified(), SciFigs::GraphContentLayer::deepUpdate(), SciFigs::CurveBrowserProxy::name(), SciFigs::CurveBrowserItem::reset(), and TRACE.

Referenced by SciFigs::CurveBrowser::average(), cut(), SciFigs::CurveBrowser::loadMultiColumns(), resample(), and smooth().

  {
    TRACE;
    CurveBrowserItem * model=static_cast<CurveBrowserItem *>(curveTable->model());
    model->reset();
    curveName->setText(_proxy->name());
    _currentLayer->deepUpdate();
    emit curveModified();
  }

Referenced by curveChanged(), and setProxy().

void SciFigs::CurveProperties::cut ( double  minimum,
double  maximum,
SamplingOptions  options 
)

References SciFigs::CurveBrowserProxy::addLog(), curveChanged(), SciFigs::CurveBrowserProxy::cut(), QGpCoreTools::Function, QGpCoreTools::Interpole, QGpCoreTools::InversedScale, QGpCoreTools::tr(), TRACE, SciFigs::CurveBrowserProxy::xInversedUnit(), and SciFigs::CurveBrowserProxy::xUnit().

  {
    TRACE;
    if(minimum>maximum) {
      qSwap(minimum, maximum);
    }
    QString unit;
    options|=Function & Interpole;
    if(options & InversedScale) {
      unit=_proxy->xInversedUnit();
    } else {
      unit=_proxy->xUnit();
    }
    _proxy->cut(minimum, maximum, options);
    _proxy->addLog(tr("Cut from %2 %3 to %4 %5\n")
                   .arg(minimum).arg(unit).arg(maximum).arg(unit) );
    curveChanged();
  }
void SciFigs::CurveProperties::nameChanged ( QString  n) [signal]
void SciFigs::CurveProperties::resample ( int  n,
double  minimum,
double  maximum,
SamplingOptions  options,
bool  distance 
)

References SciFigs::CurveBrowserProxy::addLog(), curveChanged(), QGpCoreTools::Function, QGpCoreTools::InversedScale, QGpCoreTools::LogScale, SciFigs::CurveBrowserProxy::maximumX(), SciFigs::CurveBrowserProxy::maximumY(), SciFigs::CurveBrowserProxy::minimumX(), SciFigs::CurveBrowserProxy::minimumY(), SciFigs::LineLayer::pointOptions(), SciFigs::CurveBrowserProxy::resample(), QGpCoreTools::tr(), TRACE, SciFigs::CurveBrowserProxy::xInversedName(), SciFigs::CurveBrowserProxy::xInversedUnit(), SciFigs::CurveBrowserProxy::xName(), and SciFigs::CurveBrowserProxy::xUnit().

  {
    TRACE;
    if(minimum>maximum) {
      qSwap(minimum, maximum);
    }
    QString sMode, unit;
    options|=Function;
    if(options & LogScale) {
      sMode=tr("log(%1)").arg(_proxy->xName());
      unit=_proxy->xUnit();
    } else if(options & InversedScale) {
      sMode=_proxy->xInversedName();
      unit=_proxy->xInversedUnit();
    } else {
      sMode=_proxy->xName();
      unit=_proxy->xUnit();
    }
    if(distance) {
      _proxy->resample(n, minimum, maximum, options,
                       0.5*(_proxy->minimumX()+_proxy->maximumX()),
                       0.5*(_proxy->minimumY(_currentLayer->pointOptions())+
                            _proxy->maximumY(_currentLayer->pointOptions())),
                       _currentLayer->pointOptions());
      _proxy->addLog(tr( "Resampled with constant distance along curve[%1] from %2 %3 to %4 %5 with %6 samples\n")
                     .arg(sMode).arg(minimum).arg(unit).arg(maximum).arg(unit).arg(n));
    } else {
      _proxy->resample(n, minimum, maximum, options);
      _proxy->addLog(tr("Resampled on a %1 scale from %2 %3 to %4 %5 with %6 samples\n")
                     .arg(sMode).arg(minimum).arg(unit).arg(maximum).arg(unit).arg(n));
    }
    curveChanged();
  }

References fileName, MSG_ID, SciFigs::CurveBrowserProxy::save(), QGpCoreTools::tr(), and TRACE.

  {
    TRACE;
    QString fileName=Message::getSaveFileName(tr("Save curve"), tr("Mutli-column file(*)"));
    if(!fileName.isEmpty()) {
      QFile f(fileName);
      if( !f.open(QIODevice::WriteOnly) ) {
        Message::warning(MSG_ID, tr("Saving curve ..."),
                              tr("Impossible to write to file %1").arg(fileName), Message::cancel());
        return;
      }
      QTextStream s(&f);
      _proxy->save(s);
    }
  }

Referenced by SciFigs::CurveBrowser::addLine().

{_currentLayer=layer;}

References SciFigs::CurveBrowserItem::setEditable().

Referenced by SciFigs::CurveBrowser::setEditable().

  {
    curveName->setEnabled(e);
    CurveBrowserItem * item=qobject_cast<CurveBrowserItem *>(curveTable->model());
    item->setEditable(e);
  }

References curveModified(), proxy(), and SciFigs::CurveBrowserProxy::tag().

Referenced by SciFigs::CurveBrowser::addLine().

  {
    _proxy=proxy;
    CurveBrowserItem * model=new CurveBrowserItem(_proxy, this);
    curveTable->setModel(model);
    Settings::columnWidth(curveTable, _proxy->tag());
    connect(model, SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &)), this, SIGNAL(curveModified()));
  }

References SciFigs::CurveBrowserProxy::log(), MSG_ID, SciFigs::CurveBrowserProxy::name(), QGpCoreTools::tr(), and TRACE.

  {
    TRACE;
    Message::information(MSG_ID, tr("Curve log: %1").arg(_proxy->name()), _proxy->log(), Message::close());
  }
void SciFigs::CurveProperties::smooth ( double  minimum,
double  maximum,
SamplingOptions  options 
)

References SciFigs::CurveBrowserProxy::addLog(), curveChanged(), QGpCoreTools::Function, QGpCoreTools::InversedScale, QGpCoreTools::LogScale, QGpCoreTools::tr(), TRACE, SciFigs::CurveBrowserProxy::xInversedName(), SciFigs::CurveBrowserProxy::xInversedUnit(), SciFigs::CurveBrowserProxy::xName(), and SciFigs::CurveBrowserProxy::xUnit().

  {
    TRACE;
    QString sMode, unit;
    options|=Function;
    if(options & LogScale) {
      sMode=tr("log(%1)").arg(_proxy->xName());
      unit=_proxy->xUnit();
    } else if(options & InversedScale) {
      sMode=_proxy->xInversedName();
      unit=_proxy->xInversedUnit();
    } else {
      sMode=_proxy->xName();
      unit=_proxy->xUnit();
    }
    // TODO
    //_proxy->smooth(minimum, maximum, options);
    _proxy->addLog(tr("Smoothed on a %1 scale from %2 %3 to %4 %5\n")
                   .arg(sMode).arg(minimum).arg(unit).arg(maximum).arg(unit));
    curveChanged();
  }

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines