void MainWindow::on_actionConnection_triggered(){ User* tmpUser = new User(); ConnectionHelper connectionHelper(tmpUser); connectionHelper.exec(); MainWindow* mainWindow = new MainWindow(tmpUser); mainWindow->show(); delete m_User; delete m_Server; delete m_Client; delete m_PlayerGameObject; this->destroy(); }
/*! \brief TreeModel::slotItemChanged */ void TreeModel::slotItemChanged( QStandardItem* item ) { // Item should always be there. Q_ASSERT( item ); // Get property name. QStandardItem* propNameItem = QStandardItemModel::item( item->row(), 0 ); Q_ASSERT( propNameItem ); QString propertyName; if ( item->parent() && item->parent() != invisibleRootItem() ) { propertyName = item->parent()->text(); } else { propertyName = propNameItem->text(); } int propertyIndex = mp_object->metaObject()->indexOfProperty( propertyName.toStdString().c_str() ); QMetaProperty metaProperty = mp_object->metaObject()->property( propertyIndex ); QVariant value = mp_object->property( metaProperty.name() ); if ( metaProperty.isWritable() ) { // Interupt connection ConnectionHelper connectionHelper( mp_object, metaProperty.notifySignal(), this, m_updateSlot ); if ( value.canConvert<QVector3D>() ) { QVector3D vec; vec.setX( propNameItem->child( 0, 0 )->data( Qt::EditRole ).toFloat() ); vec.setY( propNameItem->child( 0, 1 )->data( Qt::EditRole ).toFloat() ); vec.setZ( propNameItem->child( 0, 2 )->data( Qt::EditRole ).toFloat() ); mp_object->setProperty( metaProperty.name(), QVariant::fromValue( vec ) ); } else if ( value.canConvert<cv::Size>() ) { cv::Size size; size.width = propNameItem->child( 0, 0 )->data( Qt::EditRole ).toInt(); size.height= propNameItem->child( 0, 1 )->data( Qt::EditRole ).toInt(); mp_object->setProperty( metaProperty.name(), QVariant::fromValue( size ) ); } else if ( value.canConvert<FixedPropertyVector>() ) { int count = propNameItem->rowCount(); FixedPropertyVector vec ( count ); for ( int i = 0; i < vec.size(); ++i ) { vec.setData( i, propNameItem->child( i, 1 )->data( Qt::EditRole).toFloat() ); } mp_object->setProperty( metaProperty.name(), QVariant::fromValue( vec ) ); } else { // case : Standardprocedure mp_object->setProperty( metaProperty.name(), item->data( Qt::EditRole ) ); } } }