int GLArea::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QGLWidget::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: updateMainWindowMenus(); break; case 1: transmitViewDir((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< vcg::Point3f(*)>(_a[2]))); break; case 2: transmitViewPos((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< vcg::Point3f(*)>(_a[2]))); break; case 3: transmitSurfacePos((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< vcg::Point3f(*)>(_a[2]))); break; case 4: transmitCameraPos((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< vcg::Point3f(*)>(_a[2]))); break; case 5: updateTexture(); break; case 6: setDrawMode((*reinterpret_cast< vcg::GLW::DrawMode(*)>(_a[1]))); break; case 7: setColorMode((*reinterpret_cast< vcg::GLW::ColorMode(*)>(_a[1]))); break; case 8: setTextureMode((*reinterpret_cast< vcg::GLW::TextureMode(*)>(_a[1]))); break; case 9: endEdit(); break; case 10: setSelectionRendering((*reinterpret_cast< bool(*)>(_a[1]))); break; case 11: suspendEditToggle(); break; case 12: setCurrentlyActiveLayer((*reinterpret_cast< int(*)>(_a[1]))); break; case 13: sendViewPos((*reinterpret_cast< QString(*)>(_a[1]))); break; case 14: sendSurfacePos((*reinterpret_cast< QString(*)>(_a[1]))); break; case 15: sendViewDir((*reinterpret_cast< QString(*)>(_a[1]))); break; case 16: sendCameraPos((*reinterpret_cast< QString(*)>(_a[1]))); break; default: ; } _id -= 17; } return _id; }
XMLVec3Widget::XMLVec3Widget(const MLXMLPluginInfo::XMLMap& xmlWidgetTag,EnvWrap& envir,QWidget* p) :XMLMeshLabWidget(xmlWidgetTag,envir,p) { XMLStdParFrame* par = qobject_cast<XMLStdParFrame*>(p); if (par != NULL) { curr_gla = par->curr_gla; paramName = xmlWidgetTag[MLXMLElNames::paramName]; //int row = gridLay->rowCount() - 1; descLab = new QLabel( xmlWidgetTag[MLXMLElNames::guiLabel],this); descLab->setToolTip(xmlWidgetTag[MLXMLElNames::paramHelpTag]); //gridLay->addWidget(descLab,row,0,Qt::AlignTop); hlay = new QHBoxLayout(); for(int i =0;i<3;++i) { coordSB[i]= new QLineEdit(this); QFont baseFont=coordSB[i]->font(); if(baseFont.pixelSize() != -1) baseFont.setPixelSize(baseFont.pixelSize()*3/4); else baseFont.setPointSize(baseFont.pointSize()*3/4); coordSB[i]->setFont(baseFont); //coordSB[i]->setMinimumWidth(coordSB[i]->sizeHint().width()/4); coordSB[i]->setMinimumWidth(0); coordSB[i]->setMaximumWidth(coordSB[i]->sizeHint().width()/2); //coordSB[i]->setSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Fixed); coordSB[i]->setValidator(new QDoubleValidator(this)); coordSB[i]->setAlignment(Qt::AlignRight); //this->addWidget(coordSB[i],1,Qt::AlignHCenter); coordSB[i]->setSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Preferred); hlay->addWidget(coordSB[i]); } vcg::Point3f def = envir.evalVec3(xmlWidgetTag[MLXMLElNames::paramDefExpr]); this->setPoint(paramName,def); if(curr_gla) // if we have a connection to the current glarea we can setup the additional button for getting the current view direction. { getPoint3Button = new QPushButton("Get",this); getPoint3Button->setMaximumWidth(getPoint3Button->sizeHint().width()/2); getPoint3Button->setFlat(true); getPoint3Button->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Preferred); hlay->addWidget(getPoint3Button); QStringList names; names << "View Dir"; names << "View Pos"; names << "Surf. Pos"; names << "Camera Pos"; getPoint3Combo = new QComboBox(this); getPoint3Combo->addItems(names); //getPoint3Combo->setMinimumWidth(getPoint3Combo->sizeHint().width()); //this->addWidget(getPoint3Combo,0,Qt::AlignHCenter); hlay->addWidget(getPoint3Combo); connect(getPoint3Button,SIGNAL(clicked()),this,SLOT(getPoint())); connect(getPoint3Combo,SIGNAL(currentIndexChanged(int)),this,SLOT(getPoint())); connect(curr_gla,SIGNAL(transmitViewDir(QString,vcg::Point3f)),this,SLOT(setPoint(QString,vcg::Point3f))); connect(curr_gla,SIGNAL(transmitShot(QString,vcg::Shotf)),this,SLOT(setShot(QString,vcg::Shotf))); connect(curr_gla,SIGNAL(transmitSurfacePos(QString,vcg::Point3f)),this,SLOT(setPoint(QString,vcg::Point3f))); connect(this,SIGNAL(askViewDir(QString)),curr_gla,SLOT(sendViewDir(QString))); connect(this,SIGNAL(askViewPos(QString)),curr_gla,SLOT(sendMeshShot(QString))); connect(this,SIGNAL(askSurfacePos(QString)),curr_gla,SLOT(sendSurfacePos(QString))); connect(this,SIGNAL(askCameraPos(QString)),curr_gla,SLOT(sendCameraPos(QString))); } //gridLay->addLayout(hlay,row,1,Qt::AlignTop); }