bugfix 2578

This commit is contained in:
2008-05-09 11:21:41 +00:00
parent c0e79659f1
commit 4621d9bcc4
6 changed files with 23 additions and 39 deletions
-8
View File
@@ -1400,14 +1400,6 @@ listOfLibraries *FWWindow::getAddOnLibs()
return 0; return 0;
} }
libfwbuilder::FWObject* FWWindow::getStandardSlotForObject(libfwbuilder::FWObject* lib,
const QString &objType)
{
if (activeProject())
return activeProject()->getStandardSlotForObject(lib, objType);
return 0;
}
bool FWWindow::isSystem(libfwbuilder::FWObject *obj) bool FWWindow::isSystem(libfwbuilder::FWObject *obj)
{ {
+3 -3
View File
@@ -74,9 +74,11 @@ class FWWindow : public QMainWindow {
//int lastFirewallIdx; //int lastFirewallIdx;
void clearFirewallTabs(); void clearFirewallTabs();
ProjectPanel* activeProject();
ProjectPanel *newProjectPanel(); ProjectPanel *newProjectPanel();
void showSub(ProjectPanel *projectW); void showSub(ProjectPanel *projectW);
public:
ProjectPanel* activeProject();
public slots: public slots:
virtual void search(); virtual void search();
@@ -343,8 +345,6 @@ class FWWindow : public QMainWindow {
libfwbuilder::FWObjectDatabase* db(); libfwbuilder::FWObjectDatabase* db();
QString printHeader(); QString printHeader();
listOfLibraries *getAddOnLibs(); listOfLibraries *getAddOnLibs();
libfwbuilder::FWObject* getStandardSlotForObject(libfwbuilder::FWObject* lib,
const QString &objType);
bool isSystem(libfwbuilder::FWObject *obj); bool isSystem(libfwbuilder::FWObject *obj);
protected: protected:
+10 -2
View File
@@ -55,6 +55,8 @@
#include "fwbuilder/RuleElement.h" #include "fwbuilder/RuleElement.h"
#include "FWWindow.h" #include "FWWindow.h"
#include "ProjectPanel.h"
#include "FWBTree.h"
using namespace libfwbuilder; using namespace libfwbuilder;
@@ -62,10 +64,16 @@ FWObject* Importer::createObject(const std::string &objType,
const std::string &objName) const std::string &objName)
{ {
assert(library!=NULL); assert(library!=NULL);
FWObject *slot = mw->getStandardSlotForObject(library, if (mw->activeProject())
objType.c_str()); {
FWObject *slot = mw->activeProject()->getFWTree()->getStandardSlotForObject(library,objType.c_str());
return createObject(slot, objType, objName); return createObject(slot, objType, objName);
} }
else
{
return NULL;
}
}
FWObject* Importer::createObject(FWObject *parent, FWObject* Importer::createObject(FWObject *parent,
const std::string &objType, const std::string &objType,
+8 -8
View File
@@ -1410,7 +1410,7 @@ void ObjectManipulator::moveObject(FWObject *targetLib, FWObject *obj)
if (FWObjectDatabase::isA(targetLib)) grp = targetLib; if (FWObjectDatabase::isA(targetLib)) grp = targetLib;
else else
{ {
grp=m_project->getStandardSlotForObject(targetLib, grp=m_project->getFWTree()->getStandardSlotForObject(targetLib,
obj->getTypeName().c_str()); obj->getTypeName().c_str());
} }
@@ -2027,7 +2027,7 @@ void ObjectManipulator::groupObjects()
* only with names of read-write libraries * only with names of read-write libraries
*/ */
if (lib->isReadOnly()) return; if (lib->isReadOnly()) return;
FWObject *parent = m_project->getStandardSlotForObject(lib,type); FWObject *parent = m_project->getFWTree()->getStandardSlotForObject(lib,type);
if (parent==NULL) if (parent==NULL)
{ {
if (fwbdebug) if (fwbdebug)
@@ -2381,7 +2381,7 @@ FWObject* ObjectManipulator::createObject(const QString &objType,
i++; i++;
} }
FWObject *parent=m_project->getStandardSlotForObject(lib, objType); FWObject *parent=m_project->getFWTree()->getStandardSlotForObject(lib, objType);
if (parent==NULL) if (parent==NULL)
{ {
@@ -2440,8 +2440,8 @@ FWObject* ObjectManipulator::createObject(FWObject *parent,
} }
FWObject* ObjectManipulator::copyObj2Tree(const QString &objType, const QString &objName, FWObject* ObjectManipulator::copyObj2Tree(const QString &/*objType*/, const QString &/*objName*/,
libfwbuilder::FWObject *copyFrom, FWObject *parent, bool askLib) libfwbuilder::FWObject *copyFrom, FWObject */*parent*/, bool /*askLib*/)
{ {
if (!validateDialog()) return NULL; if (!validateDialog()) return NULL;
ids.clear(); ids.clear();
@@ -2470,7 +2470,7 @@ libfwbuilder::FWObject * ObjectManipulator::copyObjWithDeep(libfwbuilder::FWObje
FWReference * ref = FWReference::cast(nobj); FWReference * ref = FWReference::cast(nobj);
if (ref!=NULL) if (ref!=NULL)
{ {
FWObject * obj = copyObjWithDeep(ref->getPointer()); copyObjWithDeep(ref->getPointer());
return ref ; return ref ;
} }
@@ -2527,7 +2527,7 @@ libfwbuilder::FWObject * ObjectManipulator::copyObjWithDeep(libfwbuilder::FWObje
if (lib->getRoot()->getById(nobj->getId(),true)==NULL) if (lib->getRoot()->getById(nobj->getId(),true)==NULL)
{ {
FWObject *par = m_project->getStandardSlotForObject(lib, nobj->getTypeName().c_str()); FWObject *par = m_project->getFWTree()->getStandardSlotForObject(lib, nobj->getTypeName().c_str());
FWObject *no = pasteTo (par, nobj, false, false, false); FWObject *no = pasteTo (par, nobj, false, false, false);
if (no && Firewall::isA(no)) if (no && Firewall::isA(no))
{ {
@@ -2536,7 +2536,7 @@ libfwbuilder::FWObject * ObjectManipulator::copyObjWithDeep(libfwbuilder::FWObje
} }
} }
return nobj;
} }
-13
View File
@@ -3157,19 +3157,6 @@ bool ProjectPanel::getDeleteMenuState(const QString &objPath)
return objectTreeFormat->getDeleteMenuState(objPath); return objectTreeFormat->getDeleteMenuState(objPath);
} }
void ProjectPanel::getStandardSlotForObject(const QString &objType,
QString &parentType,
QString &parentName)
{
return objectTreeFormat->getStandardSlotForObject(objType, parentType, parentName);
}
libfwbuilder::FWObject* ProjectPanel::getStandardSlotForObject(libfwbuilder::FWObject* lib,
const QString &objType)
{
return objectTreeFormat->getStandardSlotForObject(lib, objType);
}
libfwbuilder::FWObject* ProjectPanel::createNewLibrary(libfwbuilder::FWObjectDatabase *db) libfwbuilder::FWObject* ProjectPanel::createNewLibrary(libfwbuilder::FWObjectDatabase *db)
{ {
return objectTreeFormat->createNewLibrary(db); return objectTreeFormat->createNewLibrary(db);
+2 -5
View File
@@ -108,6 +108,8 @@ class ProjectPanel: public QWidget {
libfwbuilder::RuleElement *re_old, libfwbuilder::RuleElement *re_old,
const std::map<const std::string, libfwbuilder::FWObject *> &objByIds); const std::map<const std::string, libfwbuilder::FWObject *> &objByIds);
public: public:
FWBTree * getFWTree () {return objectTreeFormat;}
QMdiSubWindow *mdiWindow; QMdiSubWindow *mdiWindow;
Ui::ProjectPanel_q *m_panel; Ui::ProjectPanel_q *m_panel;
FindObjectWidget *findObjectWidget; FindObjectWidget *findObjectWidget;
@@ -376,11 +378,6 @@ public:
bool getCutMenuState(const QString &objPath); bool getCutMenuState(const QString &objPath);
bool getPasteMenuState(const QString &objPath); bool getPasteMenuState(const QString &objPath);
bool getDeleteMenuState(const QString &objPath); bool getDeleteMenuState(const QString &objPath);
void getStandardSlotForObject(const QString &objType,
QString &parentType,
QString &parentName);
libfwbuilder::FWObject* getStandardSlotForObject(libfwbuilder::FWObject* lib,
const QString &objType);
libfwbuilder::FWObject* createNewLibrary(libfwbuilder::FWObjectDatabase *db); libfwbuilder::FWObject* createNewLibrary(libfwbuilder::FWObjectDatabase *db);