+ add InputField to widget plugin

This commit is contained in:
wmayer 2014-05-15 18:10:26 +02:00
parent 037eb8eee3
commit d85f442089
3 changed files with 235 additions and 0 deletions

View File

@ -418,6 +418,106 @@ ActionSelector::~ActionSelector()
// --------------------------------------------------------------------
InputField::InputField (QWidget * parent)
: QLineEdit(parent),
Value(0),
Maximum(INT_MAX),
Minimum(-INT_MAX),
StepSize(1.0),
HistorySize(5)
{
}
InputField::~InputField()
{
}
/** Sets the preference path to \a path. */
void InputField::setParamGrpPath( const QByteArray& path )
{
m_sPrefGrp = path;
}
/** Returns the widget's preferences path. */
QByteArray InputField::paramGrpPath() const
{
return m_sPrefGrp;
}
/// sets the field with a quantity
void InputField::setValue(double quant)
{
Value = quant;
setText(QString("%1 %2").arg(Value).arg(UnitStr));
}
/// sets the field with a quantity
double InputField::getQuantity() const
{
return Value;
}
/// get the value of the singleStep property
double InputField::singleStep(void)const
{
return StepSize;
}
/// set the value of the singleStep property
void InputField::setSingleStep(double s)
{
StepSize = s;
}
/// get the value of the maximum property
double InputField::maximum(void)const
{
return Maximum;
}
/// set the value of the maximum property
void InputField::setMaximum(double m)
{
Maximum = m;
}
/// get the value of the minimum property
double InputField::minimum(void)const
{
return Minimum;
}
/// set the value of the minimum property
void InputField::setMinimum(double m)
{
Minimum = m;
}
void InputField::setUnitText(QString str)
{
UnitStr = str;
setText(QString("%1 %2").arg(Value).arg(UnitStr));
}
QString InputField::getUnitText(void)
{
return UnitStr;
}
// get the value of the minimum property
int InputField::historySize(void)const
{
return HistorySize;
}
// set the value of the minimum property
void InputField::setHistorySize(int i)
{
HistorySize = i;
}
// --------------------------------------------------------------------
CommandIconView::CommandIconView ( QWidget * parent )
: QListWidget(parent)
{

View File

@ -39,6 +39,12 @@
#include <QGridLayout>
#include <QTreeWidget>
namespace Base {
class Quantity{};
}
Q_DECLARE_METATYPE(Base::Quantity)
namespace Gui
{
@ -203,6 +209,54 @@ private:
// ------------------------------------------------------------------------------
class InputField : public QLineEdit
{
Q_OBJECT
Q_PROPERTY(QByteArray prefPath READ paramGrpPath WRITE setParamGrpPath )
Q_PROPERTY(double singleStep READ singleStep WRITE setSingleStep )
Q_PROPERTY(double maximum READ maximum WRITE setMaximum )
Q_PROPERTY(double minimum READ minimum WRITE setMinimum )
Q_PROPERTY(int historySize READ historySize WRITE setHistorySize )
Q_PROPERTY(QString unit READ getUnitText WRITE setUnitText )
Q_PROPERTY(double quantity READ getQuantity WRITE setValue )
public:
InputField (QWidget * parent = 0);
virtual ~InputField();
void setValue(double);
double getQuantity(void) const;
double singleStep(void) const;
void setSingleStep(double);
double maximum(void) const;
void setMaximum(double);
double minimum(void) const;
void setMinimum(double);
int historySize(void) const;
void setHistorySize(int);
void setUnitText(QString);
QString getUnitText(void);
QByteArray paramGrpPath () const;
void setParamGrpPath(const QByteArray& name);
Q_SIGNALS:
void valueChanged(const Base::Quantity&);
void valueChanged(double);
void parseError(const QString& errorText);
private:
QByteArray m_sPrefGrp;
QString UnitStr;
double Value;
double Maximum;
double Minimum;
double StepSize;
int HistorySize;
};
// ------------------------------------------------------------------------------
class CommandIconView : public QListWidget
{
Q_OBJECT

View File

@ -453,6 +453,86 @@ public:
}
};
/* XPM */
static const char *inputfield_pixmap[]={
"22 22 6 1",
"a c #000000",
"# c #000080",
"b c #008080",
"c c #808080",
"d c #c0c0c0",
". c #ffffff",
"......................",
"......................",
"......................",
"...#aaaaaaaaaaaaaa#...",
".baccccccccccccccccab.",
".acccddddddddddddddca.",
"#ccd................d#",
"acc.................da",
"acd.......d....ca.ac.a",
"acd......db......a...a",
"acd.dbbb.dbbbd...a...a",
"acd.ccdbddb.db...a...a",
"acd.dbbbddb..b...a...a",
"acd.bd.bddb..b...a...a",
"acd.bbbbddbbbc...a...a",
"acd..d.....dd..ca.acda",
"#cd.................d#",
".ac................da.",
".badd............dda#.",
"...#aaaaaaaaaaaaaa#...",
"......................",
"......................"};
class InputFieldPlugin : public QDesignerCustomWidgetInterface
{
Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
InputFieldPlugin()
{
}
QWidget *createWidget(QWidget *parent)
{
return new Gui::InputField(parent);
}
QString group() const
{
return QLatin1String("Input Widgets");
}
QIcon icon() const
{
return QIcon( QPixmap( inputfield_pixmap ) );
}
QString includeFile() const
{
return QLatin1String("Gui/InputField.h");
}
QString toolTip() const
{
return QLatin1String("Input Field");
}
QString whatsThis() const
{
return QLatin1String("A widget to work qith quantities.");
}
bool isContainer() const
{
return false;
}
QString domXml() const
{
return "<ui language=\"c++\">\n"
" <widget class=\"Gui::InputField\" name=\"inputField\">\n"
" </widget>\n"
"</ui>";
}
QString name() const
{
return QLatin1String("Gui::InputField");
}
};
/* XPM */
static const char *iconview_pixmap[]={
"22 22 10 1",
@ -1252,6 +1332,7 @@ QList<QDesignerCustomWidgetInterface *> CustomWidgetPlugin::customWidgets () con
cw.append(new FileChooserPlugin);
cw.append(new AccelLineEditPlugin);
cw.append(new ActionSelectorPlugin);
cw.append(new InputFieldPlugin);
cw.append(new CommandIconViewPlugin);
cw.append(new UIntSpinBoxPlugin);
cw.append(new ColorButtonPlugin);