From c9386ad78a40542de2f30898aec5ce45c34171d6 Mon Sep 17 00:00:00 2001 From: Vadim Kurland Date: Thu, 17 Dec 2009 19:03:39 +0000 Subject: [PATCH] fixes #930 duplicating object preserves the name, then GUI complains about it --- build_num | 2 +- src/gui/FWWindow.h | 4 ---- src/gui/FWWindow_wrappers.cpp | 11 ----------- src/gui/ObjectManipulator.h | 4 +--- src/gui/ObjectManipulator_ops.cpp | 12 +++++------- src/gui/ObjectManipulator_slots.cpp | 2 +- src/gui/ProjectPanel.cpp | 8 -------- src/gui/ProjectPanel.h | 4 ---- 8 files changed, 8 insertions(+), 39 deletions(-) diff --git a/build_num b/build_num index 9951a5a1d..36e5fceec 100644 --- a/build_num +++ b/build_num @@ -1 +1 @@ -#define BUILD_NUM 2177 +#define BUILD_NUM 2179 diff --git a/src/gui/FWWindow.h b/src/gui/FWWindow.h index e30d27231..42f496d74 100644 --- a/src/gui/FWWindow.h +++ b/src/gui/FWWindow.h @@ -321,10 +321,6 @@ public slots: void findAllFirewalls (std::list &fws); - libfwbuilder::FWObject* duplicateObject(libfwbuilder::FWObject *target, - libfwbuilder::FWObject *obj, - const QString &name = QString::null, - bool askForAutorename=true); void showDeletedObjects(bool f); // void select(); diff --git a/src/gui/FWWindow_wrappers.cpp b/src/gui/FWWindow_wrappers.cpp index 227ace170..9a5d34a39 100644 --- a/src/gui/FWWindow_wrappers.cpp +++ b/src/gui/FWWindow_wrappers.cpp @@ -457,17 +457,6 @@ void FWWindow::findAllFirewalls (std::list &fws) if (activeProject()) activeProject()->findAllFirewalls (fws); } -FWObject* FWWindow::duplicateObject(FWObject *target, - FWObject *obj, - const QString &name, - bool askForAutorename) -{ - if (activeProject()) - return activeProject()->duplicateObject(target, - obj, name, askForAutorename); - return 0; -} - void FWWindow::showDeletedObjects(bool f) { if (activeProject()) activeProject()->showDeletedObjects(f); diff --git a/src/gui/ObjectManipulator.h b/src/gui/ObjectManipulator.h index b543aac99..d57bd7098 100644 --- a/src/gui/ObjectManipulator.h +++ b/src/gui/ObjectManipulator.h @@ -295,9 +295,7 @@ public: void openObjectInTree(ObjectTreeViewItem *otvi, bool register_in_history); libfwbuilder::FWObject* duplicateObject(libfwbuilder::FWObject *target, - libfwbuilder::FWObject *obj, - const QString &name = QString::null, - bool askForAutorename=true); + libfwbuilder::FWObject *obj); void moveObject(libfwbuilder::FWObject *target, libfwbuilder::FWObject *obj); diff --git a/src/gui/ObjectManipulator_ops.cpp b/src/gui/ObjectManipulator_ops.cpp index 36ecc87ba..d0a1457d2 100644 --- a/src/gui/ObjectManipulator_ops.cpp +++ b/src/gui/ObjectManipulator_ops.cpp @@ -204,16 +204,14 @@ void ObjectManipulator::autorenameVlans(list &obj_list) } } -FWObject* ObjectManipulator::duplicateObject(FWObject *targetLib, - FWObject *obj, - const QString &name, - bool) +FWObject* ObjectManipulator::duplicateObject(FWObject *targetLib, FWObject *obj) { if (!isTreeReadWrite(this, targetLib)) return NULL; openLib(targetLib); - QString newName; - if (!name.isEmpty()) newName = name; - else newName = QString::fromUtf8(obj->getName().c_str()); + QString newName = + makeNameUnique(obj->getParent(), + QString::fromUtf8(obj->getName().c_str()), + obj->getTypeName().c_str()); return createObject(obj->getTypeName().c_str(), newName, obj); } diff --git a/src/gui/ObjectManipulator_slots.cpp b/src/gui/ObjectManipulator_slots.cpp index c88fbf65f..f822c50ef 100644 --- a/src/gui/ObjectManipulator_slots.cpp +++ b/src/gui/ObjectManipulator_slots.cpp @@ -239,7 +239,7 @@ void ObjectManipulator::duplicateObj(QAction *action) obj= *i; if ( FWBTree().isSystem(obj) || Interface::isA(obj) ) continue; FWObject *cl = idxToLibs[libid]; - nobj = duplicateObject(cl, obj, "", false); + nobj = duplicateObject(cl, obj); } editObject(nobj); ot->freezeSelection(false); diff --git a/src/gui/ProjectPanel.cpp b/src/gui/ProjectPanel.cpp index f2ec14dde..5ff1e31ed 100644 --- a/src/gui/ProjectPanel.cpp +++ b/src/gui/ProjectPanel.cpp @@ -520,14 +520,6 @@ void ProjectPanel::findAllFirewalls (std::list &fws) m_panel->om->findAllFirewalls(fws); } -FWObject* ProjectPanel::duplicateObject(FWObject *target, - FWObject *obj, - const QString &name, - bool askForAutorename) -{ - return m_panel->om->duplicateObject(target, obj, name, askForAutorename); -} - void ProjectPanel::showDeletedObjects(bool f) { m_panel->om->showDeletedObjects(f); diff --git a/src/gui/ProjectPanel.h b/src/gui/ProjectPanel.h index 09a9c7cd1..5c4fbbb9c 100644 --- a/src/gui/ProjectPanel.h +++ b/src/gui/ProjectPanel.h @@ -174,10 +174,6 @@ public: void findAllFirewalls (std::list &fws); - libfwbuilder::FWObject* duplicateObject(libfwbuilder::FWObject *target, - libfwbuilder::FWObject *obj, - const QString &name = QString::null, - bool askForAutorename=true); void showDeletedObjects(bool f); void select(); void unselect();