X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Factions%2Factionmodifyentity.cpp;h=167cb6a1158b60f5bd8e3abda5da712ba061743c;hb=e1d1cacbb43055988d0d9db632fdf05c0bea9543;hp=93cf9965ff6b1e0b274202609e693a105da40e2a;hpb=865303923fcb231a171992b75a73364ff469ff8c;p=architektonas diff --git a/src/actions/actionmodifyentity.cpp b/src/actions/actionmodifyentity.cpp index 93cf996..167cb6a 100644 --- a/src/actions/actionmodifyentity.cpp +++ b/src/actions/actionmodifyentity.cpp @@ -14,16 +14,57 @@ // JLH 06/04/2010 Added this text. :-) // +/* +Program received signal SIGSEGV, Segmentation fault. +0x080d0fd1 in PaintInterface::fillRect(int, int, int, int, Color const&) () +(gdb) bt +#0 0x080d0fd1 in PaintInterface::fillRect(int, int, int, int, Color const&) + () +#1 0x080cf523 in PaintInterface::drawHandle(Vector const&, Color const&, int) () +#2 0x0822d7e0 in GraphicView::drawEntity(Entity*, double, bool) () +#3 0x0822d9a0 in GraphicView::deleteEntity(Entity*) () +#4 0x081334dc in ActionModifyEntity::trigger() () +#5 0x081336ef in ActionModifyEntity::mouseReleaseEvent(QMouseEvent*) () +#6 0x08089d2a in EventHandler::mouseReleaseEvent(QMouseEvent*) () +#7 0x0822a482 in GraphicView::mouseReleaseEvent(QMouseEvent*) () +#8 0x081eb00a in QG_GraphicView::mouseReleaseEvent(QMouseEvent*) () +#9 0xb77063c1 in QWidget::event(QEvent*) () from /usr/lib/qt4/libQtGui.so.4 +#10 0xb76a6b0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () + from /usr/lib/qt4/libQtGui.so.4 +#11 0xb76ae24a in QApplication::notify(QObject*, QEvent*) () + from /usr/lib/qt4/libQtGui.so.4 +#12 0xb7458882 in QCoreApplication::notifyInternal(QObject*, QEvent*) () + from /usr/lib/qt4/libQtCore.so.4 +#13 0xb76acfa8 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer&, bool) () + from /usr/lib/qt4/libQtGui.so.4 +#14 0xb7739755 in ?? () from /usr/lib/qt4/libQtGui.so.4 +#15 0xb7738bac in QApplication::x11ProcessEvent(_XEvent*) () + from /usr/lib/qt4/libQtGui.so.4 +#16 0xb7766064 in ?? () from /usr/lib/qt4/libQtGui.so.4 +#17 0xb720b654 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 +#18 0xb720f430 in ?? () from /usr/lib/libglib-2.0.so.0 +#19 0xb720f5d8 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 +#20 0xb7484ed5 in QEventDispatcherGlib::processEvents(QFlags) () from /usr/lib/qt4/libQtCore.so.4 +#21 0xb7765b85 in ?? () from /usr/lib/qt4/libQtGui.so.4 +#22 0xb7456de9 in QEventLoop::processEvents(QFlags) () from /usr/lib/qt4/libQtCore.so.4 +#23 0xb745724a in QEventLoop::exec(QFlags) () + from /usr/lib/qt4/libQtCore.so.4 +#24 0xb745c56f in QCoreApplication::exec() () from /usr/lib/qt4/libQtCore.so.4 +#25 0xb76a6ba7 in QApplication::exec() () from /usr/lib/qt4/libQtGui.so.4 +#26 0x082325e7 in main () +*/ + #include "actionmodifyentity.h" -#include "rs_dialogfactory.h" +#include "debug.h" +#include "dialogfactory.h" #include "graphicview.h" -ActionModifyEntity::ActionModifyEntity(RS_EntityContainer & container, +ActionModifyEntity::ActionModifyEntity(EntityContainer & container, GraphicView & graphicView): - ActionInterface("Modify Entity", container, graphicView) + ActionInterface("Modify Entity", container, graphicView), en(NULL) { - en = NULL; +// en = NULL; } ActionModifyEntity::~ActionModifyEntity() @@ -32,38 +73,39 @@ ActionModifyEntity::~ActionModifyEntity() void ActionModifyEntity::trigger() { - if (en != NULL) + if (!en) { - RS_Entity * clone = en->clone(); - - if (RS_DIALOGFACTORY->requestModifyEntityDialog(clone)) - { - container->addEntity(clone); - - graphicView->deleteEntity(en); - en->setSelected(false); - - clone->setSelected(false); - graphicView->drawEntity(clone); - - if (document != NULL) - { - document->startUndoCycle(); + DEBUG->print("ActionModifyEntity::trigger: Entity is NULL\n"); + return; + } - document->addUndoable(clone); - en->setUndoState(true); - document->addUndoable(en); + Entity * clone = en->clone(); - document->endUndoCycle(); - } - RS_DIALOGFACTORY->updateSelectionWidget(container->countSelected()); + if (DIALOGFACTORY->requestModifyEntityDialog(clone)) + { + container->addEntity(clone); +#warning "!!! Old rendering path need upgrade !!!" +#if 0 + //(delete from screen...bleh) + graphicView->deleteEntity(en); +#endif + en->setSelected(false); + clone->setSelected(false); + graphicView->drawEntity(clone); + + if (document) + { + document->startUndoCycle(); + document->addUndoable(clone); + en->setUndoState(true); + document->addUndoable(en); + document->endUndoCycle(); } - else - delete clone; + DIALOGFACTORY->updateSelectionWidget(container->countSelected()); } else - RS_DEBUG->print("ActionModifyEntity::trigger: Entity is NULL\n"); + delete clone; } void ActionModifyEntity::mouseReleaseEvent(QMouseEvent * e) @@ -81,5 +123,3 @@ void ActionModifyEntity::updateMouseCursor() { graphicView->setMouseCursor(RS2::SelectCursor); } - -