From f61cc9d8bf5a2d9e56e0ce7e85b8408654215983 Mon Sep 17 00:00:00 2001 From: Vadim Kurland Date: Sun, 27 Mar 2011 18:17:14 -0700 Subject: [PATCH] see #2283 fixes GUI crash when importer could not create firewall object --- .../ImportFirewallConfigurationWizard.cpp | 41 ++++++++++++------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/src/libgui/importFirewallConfigurationWizard/ImportFirewallConfigurationWizard.cpp b/src/libgui/importFirewallConfigurationWizard/ImportFirewallConfigurationWizard.cpp index 463d263bf..164fed7c4 100644 --- a/src/libgui/importFirewallConfigurationWizard/ImportFirewallConfigurationWizard.cpp +++ b/src/libgui/importFirewallConfigurationWizard/ImportFirewallConfigurationWizard.cpp @@ -101,37 +101,48 @@ ImportFirewallConfigurationWizard::~ImportFirewallConfigurationWizard() void ImportFirewallConfigurationWizard::accept() { - if (platform == "pix" || platform == "fwsm") + if (fwbdebug) qDebug() << "ImportFirewallConfigurationWizard::accept()" + << "fw=" << fw; + + if (fw != NULL && (platform == "pix" || platform == "fwsm")) dynamic_cast( page(Page_NetworkZones))->setNetworkZones(); + if (fwbdebug) qDebug() << "ImportFirewallConfigurationWizard::accept()" + << "merging object trees"; + // merge dbcopy into db CompareObjectsDialog cod(this); db_orig->merge(db_copy, &cod); + if (fwbdebug) qDebug() << "ImportFirewallConfigurationWizard::accept()" + << "merge done"; + ProjectPanel *pp = mw->activeProject(); QString filename = pp->getFileName(); QCoreApplication::postEvent( mw, new reloadObjectTreeImmediatelyEvent(filename)); - QCoreApplication::postEvent( - pp, new showObjectInTreeEvent(filename, fw->getId())); - - QCoreApplication::postEvent( - pp, new expandObjectInTreeEvent( - mw->activeProject()->getFileName(), fw->getId())); - - QCoreApplication::postEvent( - mw, new openObjectInEditorEvent(filename, fw->getId())); - - // Open first created Policy ruleset object - FWObject *first_policy = fw->getFirstByType(Policy::TYPENAME); - if (first_policy) + if (fw) + { QCoreApplication::postEvent( - pp, new openRulesetEvent(filename, first_policy->getId())); + pp, new showObjectInTreeEvent(filename, fw->getId())); + QCoreApplication::postEvent( + pp, new expandObjectInTreeEvent( + mw->activeProject()->getFileName(), fw->getId())); + + QCoreApplication::postEvent( + mw, new openObjectInEditorEvent(filename, fw->getId())); + + // Open first created Policy ruleset object + FWObject *first_policy = fw->getFirstByType(Policy::TYPENAME); + if (first_policy) + QCoreApplication::postEvent( + pp, new openRulesetEvent(filename, first_policy->getId())); + } QWizard::accept(); }