[fwbuilder-commits] r2070 - in branches/v3_1: . src/gui
Brought to you by:
mikehorn
From: <va...@in...> - 2009-12-09 04:04:57
|
Author: vadim Date: 2009-12-08 20:04:39 -0800 (Tue, 08 Dec 2009) New Revision: 2070 Modified: branches/v3_1/build_num branches/v3_1/src/gui/ObjectManipulator.h branches/v3_1/src/gui/ObjectManipulator_ops.cpp Log: minor refactoring Modified: branches/v3_1/build_num =================================================================== --- branches/v3_1/build_num 2009-12-09 03:55:25 UTC (rev 2069) +++ branches/v3_1/build_num 2009-12-09 04:04:39 UTC (rev 2070) @@ -1 +1 @@ -#define BUILD_NUM 2067 +#define BUILD_NUM 2069 Modified: branches/v3_1/src/gui/ObjectManipulator.h =================================================================== --- branches/v3_1/src/gui/ObjectManipulator.h 2009-12-09 03:55:25 UTC (rev 2069) +++ branches/v3_1/src/gui/ObjectManipulator.h 2009-12-09 04:04:39 UTC (rev 2070) @@ -139,6 +139,8 @@ libfwbuilder::FWObject *obj, std::map<int,int> &map_ids); + void actuallyDeleteObject(libfwbuilder::FWObject *obj); + bool validateForPaste(libfwbuilder::FWObject *target, libfwbuilder::FWObject *obj, QString &err); Modified: branches/v3_1/src/gui/ObjectManipulator_ops.cpp =================================================================== --- branches/v3_1/src/gui/ObjectManipulator_ops.cpp 2009-12-09 03:55:25 UTC (rev 2069) +++ branches/v3_1/src/gui/ObjectManipulator_ops.cpp 2009-12-09 04:04:39 UTC (rev 2070) @@ -565,16 +565,15 @@ << "is_firewall= " << is_firewall << "ruleset_visible=" << ruleset_visible << "is_deleted_object="<< is_deleted_object; + if (is_deleted_object) { unselect(); - FWCmdDeleteObject *cmd = new FWCmdDeleteObject( m_project, obj, QString("Delete object")); m_project->undoStack->push(cmd); - return; } @@ -582,28 +581,8 @@ if (is_library) parent = m_project->db()->getFirstByType(Library::TYPENAME); - set<FWObject*> reference_holders; - set<FWObject*> res; - m_project->db()->findWhereObjectIsUsed(obj, m_project->db(), res); - - foreach(FWObject* o, res) - { - if (FWReference::cast(o)) - { - FWObject *holder = o->getParent(); - reference_holders.insert(holder); - } - } + actuallyDeleteObject(obj); - FWCmdMoveObject *cmd = new FWCmdMoveObject( - m_project, - obj->getParent(), - deleted_objects_lib, - obj, - reference_holders, - QString("Delete object")); - m_project->undoStack->push(cmd); - if (ruleset_visible) m_project->closeRuleSetPanel(); } catch (FWException &ex) @@ -624,6 +603,38 @@ firstAction = false ; } +/* + * Here we build set of dependencies for @obj, create command to + * delete it and push it to the undo stack. + */ +void ObjectManipulator::actuallyDeleteObject(FWObject *obj) +{ + set<FWObject*> reference_holders; + set<FWObject*> res; + m_project->db()->findWhereObjectIsUsed(obj, m_project->db(), res); + + foreach(FWObject* o, res) + { + if (FWReference::cast(o)) + { + FWObject *holder = o->getParent(); + reference_holders.insert(holder); + } + } + + FWObject *deleted_objects_lib = m_project->db()->findInIndex( + FWObjectDatabase::DELETED_OBJECTS_ID ); + + FWCmdMoveObject *cmd = new FWCmdMoveObject( + m_project, + obj->getParent(), + deleted_objects_lib, + obj, + reference_holders, + QString("Delete object")); + m_project->undoStack->push(cmd); +} + void ObjectManipulator::objectMoved(FWObject* obj) { openLibForObject(obj); |