1
0
mirror of https://github.com/fwbuilder/fwbuilder synced 2026-06-24 01:49:36 +02:00

moved "batch install" button from the main installer wizard to the

dialog where user enters their password. Now user can start in a
non-batch install mode but continue in batch install mode at any time
if all their firewalls authenticate with the same user name and
password.
This commit is contained in:
Vadim Kurland
2011-08-02 21:27:46 -07:00
parent 25ab6bb227
commit a7584e4c17
15 changed files with 235 additions and 240 deletions

View File

@@ -7,7 +7,7 @@ FWB_MICRO_VERSION=1
# build number is like "nano" version number. I am incrementing build
# number during development cycle
#
BUILD_NUM="3569"
BUILD_NUM="3570"
VERSION="$FWB_MAJOR_VERSION.$FWB_MINOR_VERSION.$FWB_MICRO_VERSION.$BUILD_NUM"

View File

@@ -1,2 +1,2 @@
#define VERSION "5.0.1.3569"
#define VERSION "5.0.1.3570"
#define GENERATION "5.0"

View File

@@ -1,3 +1,11 @@
2011-08-02 Vadim Kurland <vadim@netcitadel.com>
* instDialog_ui_ops.cpp (instDialog::getInstOptions): moved "batch
install" button from the main installer wizard to the dialog where
user enters their password. Now user can start in a non-batch
install mode but continue in batch install mode at any time if all
their firewalls authenticate with the same user name and password.
2011-08-01 Vadim Kurland <vadim@netcitadel.com>
* pix.g (static_command_common_last_parameters): changed token

View File

@@ -3,7 +3,7 @@
%define name fwbuilder
%define version 5.0.1.3569
%define version 5.0.1.3570
%define release 1
%if "%_vendor" == "MandrakeSoft"

View File

@@ -4,6 +4,6 @@ Replaces: fwbuilder (<=4.1.1-1), fwbuilder-common, fwbuilder-bsd, fwbuilder-linu
Priority: extra
Section: checkinstall
Maintainer: vadim@fwbuilder.org
Version: 5.0.1.3569-1
Version: 5.0.1.3570-1
Depends: libqt4-gui (>= 4.4.0), libqt4-network (>= 4.4.0), libxml2, libxslt1.1, libsnmp | libsnmp15
Description: Firewall Builder GUI and policy compilers

View File

@@ -1,6 +1,6 @@
%define name fwbuilder
%define version 5.0.1.3569
%define version 5.0.1.3570
%define release 1
%if "%_vendor" == "MandrakeSoft"

View File

@@ -96,7 +96,7 @@ instDialog::instDialog(QWidget *p) : QDialog(p)
m_dialog = new Ui::instDialog_q;
m_dialog->setupUi(this);
batch_inst_opt_dlg = NULL;
inst_opt_dlg = NULL;
//project = mw->activeProject();
@@ -239,20 +239,26 @@ void instDialog::show(ProjectPanel *proj,
return;
}
m_dialog->batchInstall->setEnabled(false);
// "batch install" checkbox moved from instDialog to instOptionsDialog
// m_dialog->batchInstall->setEnabled(false);
if (firewalls.size() > 1)
m_dialog->batchInstall->setEnabled(true);
//if (firewalls.size() > 1)
// m_dialog->batchInstall->setEnabled(true);
if (clusters.size() >= 1) // even one cluster enables batch install btn
m_dialog->batchInstall->setEnabled(true);
//if (clusters.size() >= 1) // even one cluster enables batch install btn
// m_dialog->batchInstall->setEnabled(true);
// if this is not the first time user runs install, reset "batch install"
// checkbox in the installer options dialog
if (inst_opt_dlg)
inst_opt_dlg->m_dialog->batchInstall->setChecked(false);
if (firewalls.size() == 1 && clusters.size() == 0)
m_dialog->selectAllNoneFrame->hide();
else
m_dialog->selectAllNoneFrame->show();
m_dialog->batchInstall->setChecked(false);
//m_dialog->batchInstall->setChecked(false);
creatingTable = false;
@@ -286,7 +292,7 @@ void instDialog::show(ProjectPanel *proj,
instDialog::~instDialog()
{
if (batch_inst_opt_dlg != NULL) delete batch_inst_opt_dlg;
if (inst_opt_dlg != NULL) delete inst_opt_dlg;
delete m_dialog;
}
@@ -354,16 +360,6 @@ void instDialog::mainLoopInstall()
if (install_fw_list.size() && !canceledAll)
{
Firewall *fw = install_fw_list.front();
if (install_fw_list.size() == install_list_initial_size)
{
// this is the first firewall. If batch mode was requested, show
// installer options dialog (this will be the only time it is
// shown)
if (m_dialog->batchInstall->isChecked() && !getBatchInstOptions(fw))
return;
}
install_fw_list.pop_front();
runInstaller(fw, install_fw_list.size()>0);
return;
@@ -483,6 +479,7 @@ void instDialog::showPage(const int page)
{
mw->fileSave();
currentFirewallsBar->reset();
currentFirewallsBar->setFormat("%v/%m");
currentFirewallsBar->setMaximum(compile_list_initial_size);
m_dialog->procLogDisplay->clear();
fillCompileUIList();

View File

@@ -93,7 +93,7 @@ class instDialog : public QDialog, public FakeWizard
Page1Operation page_1_op;
FirewallInstaller *installer;
ProjectPanel *project;
instBatchOptionsDialog *batch_inst_opt_dlg;
instOptionsDialog *inst_opt_dlg;
bool compile_only;
bool compile_complete;
@@ -191,7 +191,7 @@ class instDialog : public QDialog, public FakeWizard
void displayCommand(const QStringList &args);
bool runCompiler(libfwbuilder::Firewall *fw);
bool runInstaller(libfwbuilder::Firewall *fw, bool cancelAllVisible = true);
bool runInstaller(libfwbuilder::Firewall *fw, bool installing_many_firewalls = true);
QStringList prepareArgForCompiler(libfwbuilder::Firewall *fw);
bool tableHasCheckedItems();
@@ -211,8 +211,7 @@ protected:
virtual void showEvent( QShowEvent *ev);
virtual void hideEvent( QHideEvent *ev);
bool getInstOptions(libfwbuilder::Firewall *fw, bool cancelAllVisible = true);
bool getBatchInstOptions(libfwbuilder::Firewall *first_fw);
bool getInstOptions(libfwbuilder::Firewall *fw, bool installing_many_firewalls = true);
void prepareInstConf(libfwbuilder::Firewall *fw);

View File

@@ -68,6 +68,7 @@ bool instDialog::runCompiler(Firewall *fw)
cnf.fwobj = fw;
currentSearchString = tr("Compiling rule sets for firewall: ");
currentFirewallsBar->setValue(compile_list_initial_size -
compile_fw_list.size());
currentProgressBar->reset();

View File

@@ -58,7 +58,7 @@
using namespace std;
using namespace libfwbuilder;
bool instDialog::runInstaller(Firewall *fw, bool cancelAllVisible)
bool instDialog::runInstaller(Firewall *fw, bool installing_many_firewalls)
{
cnf.fwobj = fw;
cnf.maddr = "";
@@ -68,7 +68,7 @@ bool instDialog::runInstaller(Firewall *fw, bool cancelAllVisible)
<< fw->getName().c_str()
<< " cnf.user=" << cnf.user;
if (!getInstOptions(fw, cancelAllVisible))
if (!getInstOptions(fw, installing_many_firewalls))
{
QTimer::singleShot( 0, this, SLOT(mainLoopInstall()));
this->opCancelled(fw);

View File

@@ -1044,7 +1044,7 @@ bool instDialog::tableHasCheckedItems()
/*
* getInstOptions() fills attributes of the cnf object
*/
bool instDialog::getInstOptions(Firewall *fw, bool cancelAllVisible)
bool instDialog::getInstOptions(Firewall *fw, bool installing_many_firewalls)
{
if (fwbdebug)
qDebug() << "instDialog::getInstOptions() begin"
@@ -1057,19 +1057,20 @@ bool instDialog::getInstOptions(Firewall *fw, bool cancelAllVisible)
readInstallerOptionsFromSettings();
readInstallerOptionsFromFirewallObject(fw);
if (m_dialog->batchInstall->isChecked() && batch_inst_opt_dlg)
if (inst_opt_dlg && inst_opt_dlg->m_dialog->batchInstall->isChecked())
{
// in batch install mode we use the same dialog to fill cnf
// without showing it to the user again
readInstallerOptionsFromDialog(fw, batch_inst_opt_dlg);
readInstallerOptionsFromDialog(fw, inst_opt_dlg);
} else
{
// In non-batch mode installer options from the dialog
// overwrite options set in the fw object itself.
instOptionsDialog *inst_opt_dlg = new instOptionsDialog(
this, &cnf, cancelAllVisible);
if (inst_opt_dlg) delete inst_opt_dlg;
inst_opt_dlg = new instOptionsDialog(this, &cnf, installing_many_firewalls);
int resultCode = inst_opt_dlg->exec();
// 0 - rejected
// 1 - accepted
// -1 - cancell all clicked
@@ -1079,14 +1080,19 @@ bool instDialog::getInstOptions(Firewall *fw, bool cancelAllVisible)
delete inst_opt_dlg;
return false;
}
if (resultCode == QDialog::Rejected)
{
delete inst_opt_dlg;
return false;
}
readInstallerOptionsFromDialog(fw, inst_opt_dlg);
inst_opt_dlg->close();
inst_opt_dlg->deleteLater();
// do not delete the dialog because we may need to get data from it again if
// in batch install mode.
//inst_opt_dlg->deleteLater();
}
if (fwbdebug)
@@ -1097,55 +1103,12 @@ bool instDialog::getInstOptions(Firewall *fw, bool cancelAllVisible)
return verifyManagementAddress();
}
/*
* getBatchInstOptions() fills attributes of the cnf object for batch install
*/
bool instDialog::getBatchInstOptions(Firewall *first_fw)
{
if (fwbdebug)
qDebug() << "instDialog::getBatchInstOptions() begin"
<< "cnf.user=" << cnf.user
<< "cnf.maddr=" << cnf.maddr
<< "first_fw=" << first_fw;
cnf.fwobj = first_fw; // NULL;
readInstallerOptionsFromSettings();
readInstallerOptionsFromFirewallObject(first_fw);
if (batch_inst_opt_dlg != NULL) delete batch_inst_opt_dlg;
batch_inst_opt_dlg = new instBatchOptionsDialog(this, &cnf);
if (batch_inst_opt_dlg->exec()==QDialog::Rejected)
{
stopProcessFlag = true;
this->m_dialog->finishButton->setEnabled(true);
this->m_dialog->finishButton->setDefault(true);
foreach(Firewall *fw, this->install_fw_list)
this->opCancelled(fw);
return false;
}
// clear aternative address in the dialog
batch_inst_opt_dlg->m_dialog->altAddress->setText("");
readInstallerOptionsFromDialog(NULL, batch_inst_opt_dlg);
if (fwbdebug)
qDebug() << "instDialog::getBatchInstOptions() end"
<< "cnf.user=" << cnf.user
<< "cnf.maddr=" << cnf.maddr;
return verifyManagementAddress();
}
void instDialog::readInstallerOptionsFromSettings()
{
if (fwbdebug) qDebug("instDialog::readInstallerOptionsFromSettings");
fwb_prompt="--**--**--";
cnf.batchInstall = m_dialog->batchInstall->isChecked();
cnf.save_diff = st->value(SETTINGS_PATH_PREFIX"/Installer/savediff").toBool();
cnf.saveStandby = st->value(SETTINGS_PATH_PREFIX"/Installer/saveStandby").toBool();
cnf.dry_run = st->value(SETTINGS_PATH_PREFIX"/Installer/dryrun").toBool();
@@ -1311,6 +1274,8 @@ void instDialog::readInstallerOptionsFromDialog(Firewall *fw,
adm_user = fwopt->getStr("admUser").c_str();
}
cnf.batchInstall = dlg->m_dialog->batchInstall->isChecked();
cnf.dry_run = dlg->m_dialog->test->isChecked();
cnf.backup_file = dlg->m_dialog->backupConfigFile->text();
cnf.backup = !cnf.backup_file.isEmpty();
@@ -1322,18 +1287,23 @@ void instDialog::readInstallerOptionsFromDialog(Firewall *fw,
- then check firewall options, user could have set it in the "Install"
tab of firewall settings dialog
- last, if all overrides are empty, take it from the management interface
- ignore alternative address if in batch mode
*/
QString aaddr = dlg->m_dialog->altAddress->text();
if (!aaddr.isEmpty())
if ( ! cnf.batchInstall)
{
QString aaddr = dlg->m_dialog->altAddress->text();
if (!aaddr.isEmpty())
{
/* alternative address can also be putty session name. In any case,
* leave it up to ssh to resolve it and signal an error if it can't be
* resolved ( Putty session name does not have to be in DNS at all ).
*/
cnf.maddr = aaddr;
if (fwbdebug)
qDebug() << "alternative addr:" << aaddr;
cnf.maddr = aaddr;
if (fwbdebug)
qDebug() << "alternative addr:" << aaddr;
}
}
// user name set in the dialog overrides that set in the fw object

View File

@@ -52,14 +52,14 @@
using namespace std;
using namespace libfwbuilder;
instOptionsDialog::instOptionsDialog(QWidget *parent, instConf *_cnf, bool cancelAllVisible) :
instOptionsDialog::instOptionsDialog(QWidget *parent, instConf *_cnf, bool installing_many_firewalls) :
QDialog(parent)
{
m_dialog = new Ui::instOptionsDialog_q;
m_dialog->setupUi(this);
cnf = _cnf;
this->m_dialog->cancelAllButton->setVisible(cancelAllVisible);
this->m_dialog->cancelAllButton->setVisible(installing_many_firewalls);
int fw_id = -1;
if (cnf->fwobj)
@@ -109,39 +109,34 @@ instOptionsDialog::instOptionsDialog(QWidget *parent, instConf *_cnf, bool cance
if (cnf->user.isEmpty()) m_dialog->uname->setFocus();
else m_dialog->pwd->setFocus();
// "batch install" checkbox moved from instDialog to instOptionsDialog
m_dialog->batchInstallText->setEnabled(installing_many_firewalls);
m_dialog->batchInstall->setEnabled(installing_many_firewalls);
m_dialog->batchInstall->setChecked(false);
if (cnf->batchInstall)
QString fwname = QString::fromUtf8(cnf->fwobj->getName().c_str());
m_dialog->dialogTitleLine->setText(
QString("<p align=\"center\"><b><font size=\"+2\">")+
tr("Install options for firewall '%1'").arg(fwname)+
QString("</font></b></p>")
);
QString platform = cnf->fwobj->getStr("platform").c_str();
string version = cnf->fwobj->getStr("version");
if (platform=="pix" || platform=="fwsm" ||
platform=="iosacl" ||
platform=="procurve_acl" )
{
//m_dialog->copyFWB->hide();
m_dialog->copyFWB->hide();
m_dialog->PIXgroupBox->hide();
m_dialog->backupConfigFile->hide();
m_dialog->backupConfigFileLbl->hide();
} else
{
QString fwname = QString::fromUtf8(cnf->fwobj->getName().c_str());
m_dialog->dialogTitleLine->setText(
QString("<p align=\"center\"><b><font size=\"+2\">")+
tr("Install options for firewall '%1'").arg(fwname)+
QString("</font></b></p>")
);
QString platform = cnf->fwobj->getStr("platform").c_str();
string version = cnf->fwobj->getStr("version");
if (platform=="pix" || platform=="fwsm" ||
platform=="iosacl" ||
platform=="procurve_acl" )
{
m_dialog->copyFWB->hide();
m_dialog->PIXgroupBox->hide();
} else
{
m_dialog->epwd->hide();
m_dialog->epwdLbl->hide();
m_dialog->PIXgroupBox->hide();
m_dialog->test->hide(); // dry run option
}
m_dialog->epwd->hide();
m_dialog->epwdLbl->hide();
m_dialog->PIXgroupBox->hide();
m_dialog->test->hide(); // dry run option
}
/* hide anyway, diff does not work for pix 6.3(3) */
@@ -152,7 +147,7 @@ instOptionsDialog::instOptionsDialog(QWidget *parent, instConf *_cnf, bool cance
m_dialog->compressScript->hide();
m_dialog->PIXgroupBox->adjustSize();
m_dialog->generalOptionsBox->adjustSize();
//m_dialog->generalOptionsBox->adjustSize();
m_dialog->mainBox->adjustSize();
adjustSize();
@@ -206,14 +201,26 @@ instOptionsDialog::~instOptionsDialog()
delete m_dialog;
}
QString instOptionsDialog::getUName() { return m_dialog->uname->text(); }
QString instOptionsDialog::getPWD() { return m_dialog->pwd->text(); }
QString instOptionsDialog::getEPWD() { return m_dialog->epwd->text(); }
void instOptionsDialog::cancelAll()
{
this->done(-1);
}
void instOptionsDialog::batchInstallStateChange()
{
if (m_dialog->batchInstall->isChecked())
{
m_dialog->altAddress->setText("");
m_dialog->altAddressLabel->setEnabled(false);
m_dialog->altAddress->setEnabled(false);
} else
{
m_dialog->altAddressLabel->setEnabled(true);
m_dialog->altAddress->setEnabled(true);
}
}

View File

@@ -41,7 +41,7 @@ private:
instConf *cnf;
public:
instOptionsDialog(QWidget *parent, instConf *_cnf, bool cancelAllVisible = true);
instOptionsDialog(QWidget *parent, instConf *_cnf, bool installing_many_firewalls = true);
~instOptionsDialog();
void savePassword();
@@ -54,6 +54,7 @@ public:
public slots:
void cancelAll();
void batchInstallStateChange();
};
#endif

View File

@@ -60,7 +60,7 @@
</sizepolicy>
</property>
<property name="currentIndex">
<number>0</number>
<number>1</number>
</property>
<widget class="QWidget" name="select_firewalls_page">
<property name="sizePolicy">
@@ -506,32 +506,6 @@
<property name="margin">
<number>0</number>
</property>
<item row="1" column="0">
<widget class="QCheckBox" name="batchInstall">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Perform batch install</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="textLabel2">
<property name="text">
<string>Check this option if you want to install all selected firewalls automatically. This only works if you use the same user name and password to authenticate to all these firewalls. </string>
</property>
<property name="alignment">
<set>Qt::AlignVCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>

View File

@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>626</width>
<height>676</height>
<width>604</width>
<height>662</height>
</rect>
</property>
<property name="sizePolicy">
@@ -80,7 +80,7 @@
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0" colspan="2">
<widget class="QFrame" name="frame15">
<property name="sizePolicy">
@@ -102,6 +102,12 @@
<enum>QFrame::Plain</enum>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="unameLbl">
<property name="text">
@@ -177,6 +183,32 @@ the firewall in the &quot;advanced&quot; settings dialog of the firewall object.
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QLabel" name="batchInstallText">
<property name="text">
<string>Check this option if you want to install all remaining firewalls automatically using the same user name, password and other parameters. This only works if you use the same user name and password to authenticate to all these firewalls. </string>
</property>
<property name="alignment">
<set>Qt::AlignVCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="batchInstall">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Perform batch install</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QGroupBox" name="PIXgroupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@@ -208,6 +240,16 @@ the firewall in the &quot;advanced&quot; settings dialog of the firewall object.
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="backupConfigFile">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="backupConfigFileLbl">
<property name="sizePolicy">
@@ -227,20 +269,10 @@ the firewall in the &quot;advanced&quot; settings dialog of the firewall object.
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="backupConfigFile">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<item row="4" column="0">
<widget class="QLabel" name="altAddressLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
@@ -259,7 +291,7 @@ the firewall in the &quot;advanced&quot; settings dialog of the firewall object.
</property>
</widget>
</item>
<item row="2" column="1">
<item row="4" column="1">
<widget class="QLineEdit" name="altAddress">
<property name="minimumSize">
<size>
@@ -275,67 +307,49 @@ the firewall in the &quot;advanced&quot; settings dialog of the firewall object.
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QFrame" name="generalOptionsBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
<item row="5" column="0" colspan="2">
<widget class="QCheckBox" name="test">
<property name="text">
<string>Dry run (commands won't be executed on the firewall)</string>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QCheckBox" name="test">
<property name="text">
<string>Dry run (commands won't be executed on the firewall)</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="quiet">
<property name="text">
<string>Quiet install: do not print anything as commands are executed on the firewall</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="verbose">
<property name="text">
<string>Verbose: print all commands as they are executed on the firewall</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QCheckBox" name="stripComments">
<property name="text">
<string>Remove comments from configuration</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QCheckBox" name="compressScript">
<property name="text">
<string>Compress script</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QCheckBox" name="copyFWB">
<property name="text">
<string>Store a copy of fwb file on the firewall</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="4" column="0" colspan="2">
<item row="6" column="0" colspan="2">
<widget class="QCheckBox" name="quiet">
<property name="text">
<string>Quiet install: do not print anything as commands are executed on the firewall</string>
</property>
</widget>
</item>
<item row="7" column="0" colspan="2">
<widget class="QCheckBox" name="verbose">
<property name="text">
<string>Verbose: print all commands as they are executed on the firewall</string>
</property>
</widget>
</item>
<item row="8" column="0" colspan="2">
<widget class="QCheckBox" name="stripComments">
<property name="text">
<string>Remove comments from configuration</string>
</property>
</widget>
</item>
<item row="9" column="0" colspan="2">
<widget class="QCheckBox" name="compressScript">
<property name="text">
<string>Compress script</string>
</property>
</widget>
</item>
<item row="10" column="0" colspan="2">
<widget class="QCheckBox" name="copyFWB">
<property name="text">
<string>Store a copy of fwb file on the firewall</string>
</property>
</widget>
</item>
<item row="11" column="0" colspan="2">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -349,6 +363,22 @@ the firewall in the &quot;advanced&quot; settings dialog of the firewall object.
</spacer>
</item>
</layout>
<zorder>frame15</zorder>
<zorder>PIXgroupBox</zorder>
<zorder>altAddressLabel</zorder>
<zorder>altAddress</zorder>
<zorder>batchInstallText</zorder>
<zorder>batchInstall</zorder>
<zorder>copyFWB</zorder>
<zorder>quiet</zorder>
<zorder>compressScript</zorder>
<zorder>test</zorder>
<zorder>stripComments</zorder>
<zorder>verbose</zorder>
<zorder>backupConfigFileLbl</zorder>
<zorder>backupConfigFile</zorder>
<zorder>saveDiff</zorder>
<zorder>saveStandby</zorder>
</widget>
</item>
<item row="2" column="0">
@@ -371,7 +401,20 @@ the firewall in the &quot;advanced&quot; settings dialog of the firewall object.
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<layout class="QGridLayout">
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>310</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="okButton">
<property name="text">
@@ -386,22 +429,6 @@ the firewall in the &quot;advanced&quot; settings dialog of the firewall object.
</property>
</widget>
</item>
<item row="0" column="0">
<spacer>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>230</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="cancelAllButton">
<property name="text">
@@ -423,12 +450,6 @@ the firewall in the &quot;advanced&quot; settings dialog of the firewall object.
<tabstop>saveDiff</tabstop>
<tabstop>saveStandby</tabstop>
<tabstop>altAddress</tabstop>
<tabstop>test</tabstop>
<tabstop>quiet</tabstop>
<tabstop>verbose</tabstop>
<tabstop>stripComments</tabstop>
<tabstop>compressScript</tabstop>
<tabstop>copyFWB</tabstop>
<tabstop>okButton</tabstop>
<tabstop>cancelButton</tabstop>
<tabstop>cancelAllButton</tabstop>
@@ -483,9 +504,26 @@ the firewall in the &quot;advanced&quot; settings dialog of the firewall object.
</hint>
</hints>
</connection>
<connection>
<sender>batchInstall</sender>
<signal>stateChanged(int)</signal>
<receiver>instOptionsDialog_q</receiver>
<slot>batchInstallStateChange()</slot>
<hints>
<hint type="sourcelabel">
<x>301</x>
<y>573</y>
</hint>
<hint type="destinationlabel">
<x>301</x>
<y>347</y>
</hint>
</hints>
</connection>
</connections>
<slots>
<slot>cancelAll()</slot>
<slot>testModeToggled()</slot>
<slot>batchInstallStateChange()</slot>
</slots>
</ui>