+ add new custom widget
git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5364 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
This commit is contained in:
@@ -71,6 +71,69 @@ void UrlLabel::setUrl(const QString& u)
|
||||
setToolTip(this->_url);
|
||||
}
|
||||
|
||||
LocationWidget::LocationWidget (QWidget * parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
box = new QGridLayout();
|
||||
|
||||
xValue = new QDoubleSpinBox(this);
|
||||
xValue->setMinimum(-2.14748e+09);
|
||||
xValue->setMaximum(2.14748e+09);
|
||||
xLabel = new QLabel(this);
|
||||
box->addWidget(xLabel, 0, 0, 1, 1);
|
||||
box->addWidget(xValue, 0, 1, 1, 1);
|
||||
|
||||
yValue = new QDoubleSpinBox(this);
|
||||
yValue->setMinimum(-2.14748e+09);
|
||||
yValue->setMaximum(2.14748e+09);
|
||||
yLabel = new QLabel(this);
|
||||
box->addWidget(yLabel, 1, 0, 1, 1);
|
||||
box->addWidget(yValue, 1, 1, 1, 1);
|
||||
|
||||
zValue = new QDoubleSpinBox(this);
|
||||
zValue->setMinimum(-2.14748e+09);
|
||||
zValue->setMaximum(2.14748e+09);
|
||||
zLabel = new QLabel(this);
|
||||
box->addWidget(zLabel, 2, 0, 1, 1);
|
||||
box->addWidget(zValue, 2, 1, 1, 1);
|
||||
|
||||
dLabel = new QLabel(this);
|
||||
dValue = new QComboBox(this);
|
||||
dValue->setCurrentIndex(-1);
|
||||
box->addWidget(dLabel, 3, 0, 1, 1);
|
||||
box->addWidget(dValue, 3, 1, 1, 1);
|
||||
|
||||
QGridLayout* gridLayout = new QGridLayout(this);
|
||||
gridLayout->addLayout(box, 0, 0, 1, 2);
|
||||
|
||||
retranslateUi();
|
||||
}
|
||||
|
||||
LocationWidget::~LocationWidget()
|
||||
{
|
||||
}
|
||||
|
||||
QSize LocationWidget::sizeHint() const
|
||||
{
|
||||
return QSize(150,190);
|
||||
}
|
||||
|
||||
void LocationWidget::changeEvent(QEvent* e)
|
||||
{
|
||||
if (e->type() == QEvent::LanguageChange) {
|
||||
this->retranslateUi();
|
||||
}
|
||||
QWidget::changeEvent(e);
|
||||
}
|
||||
|
||||
void LocationWidget::retranslateUi()
|
||||
{
|
||||
xLabel->setText(QApplication::translate("Gui::LocationWidget", "X:"));
|
||||
yLabel->setText(QApplication::translate("Gui::LocationWidget", "Y:"));
|
||||
zLabel->setText(QApplication::translate("Gui::LocationWidget", "Z:"));
|
||||
dLabel->setText(QApplication::translate("Gui::LocationWidget", "Direction:"));
|
||||
}
|
||||
|
||||
FileChooser::FileChooser( QWidget *parent )
|
||||
: QWidget( parent ), md( File ), _filter( QString::null )
|
||||
{
|
||||
|
||||
@@ -35,6 +35,8 @@
|
||||
#include <QComboBox>
|
||||
#include <QCheckBox>
|
||||
#include <QLabel>
|
||||
#include <QGroupBox>
|
||||
#include <QGridLayout>
|
||||
|
||||
namespace Gui
|
||||
{
|
||||
@@ -62,6 +64,33 @@ private:
|
||||
QString _url;
|
||||
};
|
||||
|
||||
class LocationWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
LocationWidget (QWidget * parent = 0);
|
||||
virtual ~LocationWidget();
|
||||
QSize sizeHint() const;
|
||||
|
||||
public Q_SLOTS:
|
||||
|
||||
private:
|
||||
void changeEvent(QEvent*);
|
||||
void retranslateUi();
|
||||
|
||||
private:
|
||||
QGridLayout *box;
|
||||
QLabel *xLabel;
|
||||
QLabel *yLabel;
|
||||
QLabel *zLabel;
|
||||
QLabel *dLabel;
|
||||
QDoubleSpinBox *xValue;
|
||||
QDoubleSpinBox *yValue;
|
||||
QDoubleSpinBox *zValue;
|
||||
QComboBox *dValue;
|
||||
};
|
||||
|
||||
/**
|
||||
* There is a bug in QtDesigner of Qt version 4.0, 4.1 and 4.2. If a class declaration
|
||||
* is inside a namespace and it uses the Q_ENUMS macro then QtDesigner doesn't handle
|
||||
|
||||
@@ -108,6 +108,47 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class LocationWidgetPlugin : public QDesignerCustomWidgetInterface
|
||||
{
|
||||
Q_INTERFACES(QDesignerCustomWidgetInterface)
|
||||
public:
|
||||
LocationWidgetPlugin()
|
||||
{
|
||||
}
|
||||
QWidget *createWidget(QWidget *parent)
|
||||
{
|
||||
return new Gui::LocationWidget(parent);
|
||||
}
|
||||
QString group() const
|
||||
{
|
||||
return QLatin1String("Display Widgets");
|
||||
}
|
||||
QIcon icon() const
|
||||
{
|
||||
return QIcon( QPixmap( urllabel_pixmap ) );
|
||||
}
|
||||
QString includeFile() const
|
||||
{
|
||||
return QLatin1String("Gui/InputVector.h");
|
||||
}
|
||||
QString toolTip() const
|
||||
{
|
||||
return QLatin1String("Location");
|
||||
}
|
||||
QString whatsThis() const
|
||||
{
|
||||
return QLatin1String("A widget to define a location.");
|
||||
}
|
||||
bool isContainer() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
QString name() const
|
||||
{
|
||||
return QLatin1String("Gui::LocationWidget");
|
||||
}
|
||||
};
|
||||
|
||||
static const char *filechooser_pixmap[] = {
|
||||
"22 22 8 1",
|
||||
" c Gray100",
|
||||
@@ -1017,6 +1058,7 @@ QList<QDesignerCustomWidgetInterface *> CustomWidgetPlugin::customWidgets () con
|
||||
{
|
||||
QList<QDesignerCustomWidgetInterface *> cw;
|
||||
cw.append(new UrlLabelPlugin);
|
||||
cw.append(new LocationWidgetPlugin);
|
||||
cw.append(new FileChooserPlugin);
|
||||
cw.append(new AccelLineEditPlugin);
|
||||
cw.append(new CommandIconViewPlugin);
|
||||
|
||||
Reference in New Issue
Block a user