Thread: [fwbuilder-commits] r2460 - in branches/v4_0: . doc src/gui
Brought to you by:
mikehorn
From: <va...@in...> - 2010-01-30 18:27:04
|
Author: vadim Date: 2010-01-30 10:26:54 -0800 (Sat, 30 Jan 2010) New Revision: 2460 Modified: branches/v4_0/build_num branches/v4_0/doc/ChangeLog branches/v4_0/src/gui/ClusterDialog.cpp branches/v4_0/src/gui/FirewallDialog.cpp branches/v4_0/src/gui/HostDialog.cpp branches/v4_0/src/gui/InterfaceDialog.cpp Log: * ../src/gui/FirewallDialog.cpp (FirewallDialog::applyChanges): fixes #1171: the warning dialog asking if ip address objects should be renamed automatically appears twice Modified: branches/v4_0/build_num =================================================================== --- branches/v4_0/build_num 2010-01-30 18:22:24 UTC (rev 2459) +++ branches/v4_0/build_num 2010-01-30 18:26:54 UTC (rev 2460) @@ -1 +1 @@ -#define BUILD_NUM 2456 +#define BUILD_NUM 2457 Modified: branches/v4_0/doc/ChangeLog =================================================================== --- branches/v4_0/doc/ChangeLog 2010-01-30 18:22:24 UTC (rev 2459) +++ branches/v4_0/doc/ChangeLog 2010-01-30 18:26:54 UTC (rev 2460) @@ -1,3 +1,13 @@ +2010-01-30 vadim <va...@vk...> + + * ../src/gui/FirewallDialog.cpp (FirewallDialog::applyChanges): + fixes #1171: the warning dialog asking if ip address objects + should be renamed automatically appears twice. when user renames + cluster, firewall, host or interface object, the GUI asks if they + want to rename ip address objects as well to make them adhere to + some naming convention. The warning dialog appeared twice on Mac + and Windows with Qt 4.6 + 2010-01-29 vadim <va...@vk...> * ../src/res/configlets/linux24/installer_commands_reg_user: try Modified: branches/v4_0/src/gui/ClusterDialog.cpp =================================================================== --- branches/v4_0/src/gui/ClusterDialog.cpp 2010-01-30 18:22:24 UTC (rev 2459) +++ branches/v4_0/src/gui/ClusterDialog.cpp 2010-01-30 18:26:54 UTC (rev 2460) @@ -214,10 +214,15 @@ .arg(QString::fromUtf8(obj->getName().c_str())); if (obj->getName() != m_dialog->obj_name->text().toUtf8().constData()) + { + /* see comment about this in FirewallDialog */ + blockSignals(true); autorename_chidren = (QMessageBox::warning( this,"Firewall Builder", dialog_txt, tr("&Yes"), tr("&No"), QString::null, 0, 1 )==0 ); + blockSignals(false); + } std::auto_ptr<FWCmdChange> cmd( new FWCmdChange(m_project, obj, "", autorename_chidren)); Modified: branches/v4_0/src/gui/FirewallDialog.cpp =================================================================== --- branches/v4_0/src/gui/FirewallDialog.cpp 2010-01-30 18:22:24 UTC (rev 2459) +++ branches/v4_0/src/gui/FirewallDialog.cpp 2010-01-30 18:26:54 UTC (rev 2460) @@ -234,6 +234,9 @@ void FirewallDialog::applyChanges() { + if (fwbdebug) + qDebug() << "FirewallDialog::applyChanges()"; + bool autorename_chidren = false; QString dialog_txt = tr( "The name of the object '%1' has changed. The program can also " @@ -250,11 +253,31 @@ .arg(QString::fromUtf8(obj->getName().c_str())); if (obj->getName() != m_dialog->obj_name->text().toUtf8().constData()) + { + /* + * when we open this warning dialog, FirewallDialog class + * loses focus and obj_name lineEdit widget sends signal + * "editingfinished" again. To the user this looks like the + * warning dialog popped up twice (in fact two copies of the + * same warning dialog appear at the same time, one exactly on + * top of another). To avoid this, block signals for the + * duration while we show the dialog. Note that documentation + * does not mention that QObject::blockSignals() affects not + * only the widget but all its children, but it seems to work + * that way. Tested with Qt 4.6.1. See #1171 + */ + blockSignals(true); autorename_chidren = (QMessageBox::warning( this,"Firewall Builder", dialog_txt, tr("&Yes"), tr("&No"), QString::null, 0, 1 )==0 ); + blockSignals(false); + } + if (fwbdebug) + qDebug() << "Sending FWCmdChange autorename_chidren=" + << autorename_chidren; + std::auto_ptr<FWCmdChange> cmd( new FWCmdChange(m_project, obj, "", autorename_chidren)); Modified: branches/v4_0/src/gui/HostDialog.cpp =================================================================== --- branches/v4_0/src/gui/HostDialog.cpp 2010-01-30 18:22:24 UTC (rev 2459) +++ branches/v4_0/src/gui/HostDialog.cpp 2010-01-30 18:26:54 UTC (rev 2460) @@ -138,10 +138,15 @@ .arg(QString::fromUtf8(obj->getName().c_str())); if (obj->getName() != m_dialog->obj_name->text().toUtf8().constData()) + { + /* see comment about this in FirewallDialog */ + blockSignals(true); autorename_chidren = (QMessageBox::warning( this,"Firewall Builder", dialog_txt, tr("&Yes"), tr("&No"), QString::null, 0, 1 )==0 ); + blockSignals(false); + } std::auto_ptr<FWCmdChange> cmd( new FWCmdChange(m_project, obj, "", autorename_chidren)); Modified: branches/v4_0/src/gui/InterfaceDialog.cpp =================================================================== --- branches/v4_0/src/gui/InterfaceDialog.cpp 2010-01-30 18:22:24 UTC (rev 2459) +++ branches/v4_0/src/gui/InterfaceDialog.cpp 2010-01-30 18:26:54 UTC (rev 2460) @@ -429,10 +429,13 @@ .arg(QString::fromUtf8(obj->getName().c_str())) .arg(QString::fromUtf8(obj->getName().c_str())); + /* see comment about this in FirewallDialog */ + blockSignals(true); autorename_children = (QMessageBox::warning( this, "Firewall Builder", dialog_txt, tr("&Yes"), tr("&No"), QString::null, 0, 1 )==0 ); + blockSignals(false); } std::auto_ptr<FWCmdChange> cmd( |