Skip to content
Snippets Groups Projects
Commit 00e8b80f authored by Owen Arnold's avatar Owen Arnold
Browse files

refs #4932. Refactor last step

parent 71d578b1
No related branches found
No related tags found
No related merge requests found
...@@ -3,14 +3,21 @@ ...@@ -3,14 +3,21 @@
#include <QWidget> #include <QWidget>
/**
Abstract bin widget
*/
class BinInputWidget : public QWidget class BinInputWidget : public QWidget
{ {
Q_OBJECT Q_OBJECT
public: public:
virtual int getNBins() const = 0; /// Getter for the number of bins
virtual void setValue(int value) = 0; virtual int entered() const = 0;
/// Setter for the number of bins
virtual void entry(int value) = 0;
/// Destructor
virtual ~BinInputWidget(){} virtual ~BinInputWidget(){}
Q_SIGNALS: Q_SIGNALS:
/// Signal
virtual void valueChanged(); virtual void valueChanged();
}; };
......
...@@ -90,12 +90,12 @@ double DimensionWidget::getMaximum() const ...@@ -90,12 +90,12 @@ double DimensionWidget::getMaximum() const
unsigned int DimensionWidget::getNBins() const unsigned int DimensionWidget::getNBins() const
{ {
int nbins = static_cast<int>(m_pDimensionPresenter->getModel()->getNBins()); int nbins = static_cast<int>(m_pDimensionPresenter->getModel()->getNBins());
int entry = m_binWidget->getNBins(); int entry = m_binWidget->entered();
if(entry == nbins || entry <= 1) if(entry == nbins || entry <= 1)
{ {
m_binWidget->setValue(nbins); m_binWidget->entry(nbins);
} }
return m_binWidget->getNBins(); return m_binWidget->entered();
} }
void DimensionWidget::displayError(std::string message) const void DimensionWidget::displayError(std::string message) const
...@@ -117,16 +117,16 @@ void DimensionWidget::showAsNotIntegrated(Mantid::Geometry::VecIMDDimension_sptr ...@@ -117,16 +117,16 @@ void DimensionWidget::showAsNotIntegrated(Mantid::Geometry::VecIMDDimension_sptr
m_binWidget->setHidden(false); m_binWidget->setHidden(false);
m_ckIntegrated->setChecked(false); m_ckIntegrated->setChecked(false);
if(m_binWidget->getNBins() <= 1) if(m_binWidget->entered() <= 1)
{ {
size_t modelBins = m_pDimensionPresenter->getModel()->getNBins(); size_t modelBins = m_pDimensionPresenter->getModel()->getNBins();
if( modelBins > 1) if( modelBins > 1)
{ {
m_binWidget->setValue(modelBins); m_binWidget->entry(int(modelBins));
} }
else else
{ {
m_binWidget->setValue(10); m_binWidget->entry(10);
} }
} }
...@@ -178,7 +178,7 @@ void DimensionWidget::configureStrongly() ...@@ -178,7 +178,7 @@ void DimensionWidget::configureStrongly()
{ {
configureWeakly(); configureWeakly();
m_binWidget->setValue(int(m_pDimensionPresenter->getModel()->getNBins())); m_binWidget->entry(int(m_pDimensionPresenter->getModel()->getNBins()));
std::string maxValueString = boost::str(boost::format("%i") % m_pDimensionPresenter->getModel()->getMaximum()); std::string maxValueString = boost::str(boost::format("%i") % m_pDimensionPresenter->getModel()->getMaximum());
m_maxBox->setText(maxValueString.c_str()); m_maxBox->setText(maxValueString.c_str());
......
...@@ -7,11 +7,11 @@ class LowHighStepInputWidget : public BinInputWidget ...@@ -7,11 +7,11 @@ class LowHighStepInputWidget : public BinInputWidget
{ {
public: public:
Q_OBJECT Q_OBJECT
virtual int getNBins() const virtual int entered() const
{ {
return 1; return 1;
} }
virtual void setValue(int value) virtual void entry(int value)
{ {
} }
}; };
......
#include "SimpleBinInputWidget.h"
#include <QLabel>
#include <QLineEdit>
#include <QBoxLayout>
#include <sstream>
/**
Constructor
*/
SimpleBinInputWidget::SimpleBinInputWidget()
{
QLabel* binLabel = new QLabel("Bins");
m_nBinsBox = new QLineEdit;
QHBoxLayout* layout = new QHBoxLayout;
layout->addWidget(binLabel);
layout->addWidget(m_nBinsBox);
this->setLayout(layout);
connect(m_nBinsBox, SIGNAL(editingFinished()), this, SLOT(nBinsListener()));
}
/**
Entry setter.
@param value : value that the entry should take.
*/
void SimpleBinInputWidget::entry(int value)
{
std::stringstream stream;
stream << value;
m_nBinsBox->setText(stream.str().c_str());
}
/**
Getter for the current entry.
@return current entry value
*/
int SimpleBinInputWidget::entered() const
{
return atoi(m_nBinsBox->text());
}
/// Destructor
SimpleBinInputWidget::~SimpleBinInputWidget()
{
}
/// Listener and emitter for the number of having changed.
void SimpleBinInputWidget::nBinsListener()
{
// Raise an event that is published publically
emit valueChanged();
}
\ No newline at end of file
...@@ -2,49 +2,30 @@ ...@@ -2,49 +2,30 @@
#define SIMPLE_BIN_INPUT_WIDGET_H #define SIMPLE_BIN_INPUT_WIDGET_H
#include "BinInputWidget.h" #include "BinInputWidget.h"
#include <QLabel> class QLineEdit;
#include <QLineEdit>
#include <QBoxLayout>
#include <sstream>
/**
class SimpleBinInputWidget
This simple implementation allows users to specify the number of bins directly.
Widget wrapper around a label and text box.
*/
class SimpleBinInputWidget : public BinInputWidget class SimpleBinInputWidget : public BinInputWidget
{ {
Q_OBJECT Q_OBJECT
public: public:
/// Constructor
SimpleBinInputWidget() SimpleBinInputWidget();
{ /// Setter for the entry
QLabel* binLabel = new QLabel("Bins"); virtual void entry(int value);
m_nBinsBox = new QLineEdit; /// Getter for the entry
virtual int entered() const;
QHBoxLayout* layout = new QHBoxLayout; /// Destructor
~SimpleBinInputWidget();
layout->addWidget(binLabel);
layout->addWidget(m_nBinsBox);
this->setLayout(layout);
connect(m_nBinsBox, SIGNAL(editingFinished()), this, SLOT(nBinsListener()));
}
virtual void setValue(int value)
{
std::stringstream stream;
stream << value;
m_nBinsBox->setText(stream.str().c_str());
}
virtual int getNBins() const
{
return atoi(m_nBinsBox->text());
}
~SimpleBinInputWidget()
{
}
private slots: private slots:
void nBinsListener() void nBinsListener();
{
emit valueChanged();
}
private: private:
/// Number of bins text box.
QLineEdit* m_nBinsBox; QLineEdit* m_nBinsBox;
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment