[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdeedu/step/step
From: Sebastian Voecking <kde () voecking ! net>
Date: 2011-02-03 21:50:09
Message-ID: 20110203215009.D65FDAC8C5 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1218707 by voecking:
Don't add items before their position is correctly set
BUG: 220828
M +4 -2 motorgraphics.cc
M +6 -3 polygongraphics.cc
M +1 -1 worldfactory.cc
M +6 -7 worldgraphics.cc
M +8 -0 worldmodel.cc
M +1 -0 worldmodel.h
--- trunk/KDE/kdeedu/step/step/motorgraphics.cc #1218706:1218707
@@ -39,9 +39,10 @@
_worldModel->simulationPause();
_worldModel->beginMacro(i18n("Create %1", _worldModel->newItemName(_className)));
- _item = _worldModel->newItem(className()); Q_ASSERT(_item != NULL);
+ _item = _worldModel->createItem(className()); Q_ASSERT(_item != NULL);
_worldModel->setProperty(_item, "localPosition", vpos);
+ _worldModel->addItem(_item);
tryAttach(pos);
_worldModel->selectionModel()->setCurrentIndex(_worldModel->objectIndex(_item),
@@ -219,9 +220,10 @@
_worldModel->simulationPause();
_worldModel->beginMacro(i18n("Create %1", _worldModel->newItemName(_className)));
- _item = _worldModel->newItem(className()); Q_ASSERT(_item != NULL);
+ _item = _worldModel->createItem(className()); Q_ASSERT(_item != NULL);
_worldModel->setProperty(_item, "localPosition", vpos);
+ _worldModel->addItem(_item);
tryAttach(pos);
_worldModel->selectionModel()->setCurrentIndex(_worldModel->objectIndex(_item),
--- trunk/KDE/kdeedu/step/step/polygongraphics.cc #1218706:1218707
@@ -160,9 +160,10 @@
_worldModel->simulationPause();
_worldModel->beginMacro(i18n("Create %1", _worldModel->newItemName(_className)));
- _item = _worldModel->newItem(_className); Q_ASSERT(_item != NULL);
+ _item = _worldModel->createItem(_className); Q_ASSERT(_item != NULL);
_worldModel->setProperty(_item, "position", vpos);
_worldModel->setProperty(_item, "radius", QVariant::fromValue(0.0));
+ _worldModel->addItem(_item);
_worldModel->selectionModel()->setCurrentIndex(_worldModel->objectIndex(_item),
QItemSelectionModel::ClearAndSelect);
@@ -284,9 +285,10 @@
_worldModel->simulationPause();
_worldModel->beginMacro(i18n("Create %1", _worldModel->newItemName(_className)));
- _item = _worldModel->newItem(_className); Q_ASSERT(_item != NULL);
+ _item = _worldModel->createItem(_className); Q_ASSERT(_item != NULL);
_worldModel->setProperty(_item, "position", vpos);
_worldModel->setProperty(_item, "size", QVariant::fromValue(StepCore::Vector2d::Zero().eval()));
+ _worldModel->addItem(_item);
_worldModel->selectionModel()->setCurrentIndex(_worldModel->objectIndex(_item),
QItemSelectionModel::ClearAndSelect);
_topLeft = WorldGraphicsItem::pointToVector(pos);
@@ -428,9 +430,10 @@
_worldModel->simulationPause();
_worldModel->beginMacro(i18n("Create %1", _worldModel->newItemName(_className)));
- _item = _worldModel->newItem(_className); Q_ASSERT(_item != NULL);
+ _item = _worldModel->createItem(_className); Q_ASSERT(_item != NULL);
_worldModel->setProperty(_item, "position", vpos);
_worldModel->setProperty(_item, "vertexes", QString("(0,0)"));
+ _worldModel->addItem(_item);
_worldModel->selectionModel()->setCurrentIndex(_worldModel->objectIndex(_item),
QItemSelectionModel::ClearAndSelect);
--- trunk/KDE/kdeedu/step/step/worldfactory.cc #1218706:1218707
@@ -127,7 +127,7 @@
__REGISTER_EXT(SoftBodySpring, SpringCreator, SoftBodySpringGraphicsItem, ItemMenuHandler);
__REGISTER_EXT(SoftBodyParticle, ItemCreator, SoftBodyParticleGraphicsItem, ItemMenuHandler);
- __REGISTER_EXT(SoftBody, ItemCreator, SoftBodyGraphicsItem, SoftBodyMenuHandler);
+ __REGISTER_EXT(SoftBody, SoftBodyCreator, SoftBodyGraphicsItem, SoftBodyMenuHandler);
__REGISTER_EXT_E(Spring, SpringCreator, SpringGraphicsItem, ItemMenuHandler);
__REGISTER_EXT(LinearMotor, LinearMotorCreator, LinearMotorGraphicsItem, ItemMenuHandler);
--- trunk/KDE/kdeedu/step/step/worldgraphics.cc #1218706:1218707
@@ -70,10 +70,7 @@
_worldModel->simulationPause();
_worldModel->beginMacro(i18n("Create %1", _worldModel->newItemName(_className)));
- _item = _worldModel->newItem(_className); Q_ASSERT(_item != NULL);
-#ifdef __GNUC__
-#warning Do not add item until it is fully created
-#endif
+ _item = _worldModel->createItem(_className); Q_ASSERT(_item != NULL);
const StepCore::MetaProperty* property = _item->metaObject()->property("position");
if(property != NULL) {
QGraphicsSceneMouseEvent* mouseEvent = static_cast<QGraphicsSceneMouseEvent*>(event);
@@ -81,6 +78,7 @@
QVariant vpos = QVariant::fromValue(WorldGraphicsItem::pointToVector(pos));
_worldModel->setProperty(_item, property, vpos);
}
+ _worldModel->addItem(_item);
_worldModel->endMacro();
@@ -122,9 +120,7 @@
QPointF pos = mouseEvent->scenePos();
_worldModel->simulationPause();
_worldModel->beginMacro(i18n("Create %1", _worldModel->newItemName(_className)));
- _item = _worldModel->newItem(className()); Q_ASSERT(_item != NULL);
- _worldModel->selectionModel()->setCurrentIndex(_worldModel->objectIndex(_item),
- QItemSelectionModel::ClearAndSelect);
+ _item = _worldModel->createItem(className()); Q_ASSERT(_item != NULL);
if(_twoEnds) {
_worldScene->snapItem(pos, _snapFlags, _snapTypes, WorldGraphicsItem::Finished, _item, 1);
@@ -142,6 +138,9 @@
_worldModel->endMacro();
setFinished();
}
+ _worldModel->addItem(_item);
+ _worldModel->selectionModel()->setCurrentIndex(_worldModel->objectIndex(_item),
+ QItemSelectionModel::ClearAndSelect);
return true;
} else if(event->type() == QEvent::GraphicsSceneMouseMove &&
--- trunk/KDE/kdeedu/step/step/worldmodel.cc #1218706:1218707
@@ -545,6 +545,14 @@
return getUniqueName(className);
}
+StepCore::Item* WorldModel::createItem(const QString& className, StepCore::ItemGroup* parent)
+{
+ StepCore::Item* item = _worldFactory->newItem(className);
+ if(item == NULL) return NULL;
+ item->setName(getUniqueName(className));
+ return item;
+}
+
StepCore::Item* WorldModel::newItem(const QString& className, StepCore::ItemGroup* parent)
{
StepCore::Item* item = _worldFactory->newItem(className);
--- trunk/KDE/kdeedu/step/step/worldmodel.h #1218706:1218707
@@ -109,6 +109,7 @@
// Add/remove/set functions
/** Generates new unique item name */
QString newItemName(const QString& className);
+ StepCore::Item* createItem(const QString& className, StepCore::ItemGroup* parent = 0);
/** Creates new item of className with unique name */
StepCore::Item* newItem(const QString& className, StepCore::ItemGroup* parent = 0);
/** Add already created item to the world */
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic