From 3f1d360a04c4e4d8f07b7e93cd926961ae379430 Mon Sep 17 00:00:00 2001 From: "prep@lindenlab.com" Date: Fri, 10 May 2013 13:57:02 -0500 Subject: SH-4035: Removed prompt to save if av just has outfit changes. Hooked up logic to handle ctrl+w and ctrl+shift+w confirmation prompts --- indra/llui/llfloater.cpp | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) (limited to 'indra/llui/llfloater.cpp') diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 09e27a264a..28dfda8faf 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -704,9 +704,15 @@ void LLFloater::openFloater(const LLSD& key) dirtyRect(); } +void LLFloater::verifyClose() +{ + LLPanel::handleCloseConfirmation(); +} + void LLFloater::closeFloater(bool app_quitting) { llinfos << "Closing floater " << getName() << llendl; + if (app_quitting) { LLFloater::sQuitting = true; @@ -781,7 +787,7 @@ void LLFloater::closeFloater(bool app_quitting) dirtyRect(); // Close callbacks - onClose(app_quitting); + onClose(app_quitting); mCloseSignal(this, LLSD(app_quitting)); // Hide or Destroy @@ -1788,11 +1794,19 @@ void LLFloater::initRectControl() void LLFloater::closeFrontmostFloater() { LLFloater* floater_to_close = gFloaterView->getFrontmostClosableFloater(); - if(floater_to_close) + if( floater_to_close ) { - floater_to_close->closeFloater(); + if ( floater_to_close->mVerifyUponClose ) + { + floater_to_close->verifyClose(); + //Closing of the window handle in the subclass - so bug out here. + return; + } + else + { + floater_to_close->closeFloater(); + } } - // if nothing took focus after closing focused floater // give it to next floater (to allow closing multiple windows via keyboard in rapid succession) if (gFocusMgr.getKeyboardFocus() == NULL) @@ -2631,7 +2645,14 @@ void LLFloaterView::closeAllChildren(bool app_quitting) if (floaterp->canClose() && !floaterp->isDead() && (app_quitting || floaterp->getVisible())) { - floaterp->closeFloater(app_quitting); + if ( floaterp->mVerifyUponClose ) + { + floaterp->verifyClose(); + } + else + { + floaterp->closeFloater(app_quitting); + } } } } -- cgit v1.2.3 From c498f53d9ab02a41886b55762883d116801fd39b Mon Sep 17 00:00:00 2001 From: "prep@lindenlab.com" Date: Tue, 28 May 2013 11:51:11 -0500 Subject: Sh-4035: Updated implementation according to new specs. Fixed a couple of outstanding bugs. --- indra/llui/llfloater.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'indra/llui/llfloater.cpp') diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 28dfda8faf..ae4961559e 100755 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -713,6 +713,18 @@ void LLFloater::closeFloater(bool app_quitting) { llinfos << "Closing floater " << getName() << llendl; + if (!app_quitting) + { + if ( mVerifyUponClose && !mForceCloseAfterVerify ) + { + onClose( app_quitting ); + if ( mForceCloseAfterVerify ) + { + return; + } + } + } + if (app_quitting) { LLFloater::sQuitting = true; -- cgit v1.2.3 From c81b685b4217b3c321815e1993d39fb0b479a767 Mon Sep 17 00:00:00 2001 From: prep Date: Mon, 3 Jun 2013 16:10:46 -0400 Subject: Fix for sh-4221 Sometimes ctrl+q needed to be hit twice --- indra/llui/llfloater.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'indra/llui/llfloater.cpp') diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index ae4961559e..63491aa296 100755 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -704,9 +704,9 @@ void LLFloater::openFloater(const LLSD& key) dirtyRect(); } -void LLFloater::verifyClose() +void LLFloater::verifyClose( bool app_quitting ) { - LLPanel::handleCloseConfirmation(); + LLPanel::handleCloseConfirmation( app_quitting ); } void LLFloater::closeFloater(bool app_quitting) @@ -726,7 +726,7 @@ void LLFloater::closeFloater(bool app_quitting) } if (app_quitting) - { + { LLFloater::sQuitting = true; } @@ -2659,7 +2659,7 @@ void LLFloaterView::closeAllChildren(bool app_quitting) { if ( floaterp->mVerifyUponClose ) { - floaterp->verifyClose(); + floaterp->verifyClose(app_quitting); } else { -- cgit v1.2.3 From c5c2e7b405bbbcc3d1c1756e34c3069611f0e4a1 Mon Sep 17 00:00:00 2001 From: prep Date: Mon, 3 Jun 2013 18:08:48 -0400 Subject: SH-4035 spec change. If you revert after quiting, SL shutsdown. --- indra/llui/llfloater.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'indra/llui/llfloater.cpp') diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 63491aa296..93eca8b62e 100755 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -717,9 +717,13 @@ void LLFloater::closeFloater(bool app_quitting) { if ( mVerifyUponClose && !mForceCloseAfterVerify ) { + + llinfos<<"prep#dogshit1"< Date: Fri, 7 Jun 2013 17:25:43 -0500 Subject: Removed some debug tracking --- indra/llui/llfloater.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'indra/llui/llfloater.cpp') diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 93eca8b62e..f8b01e106b 100755 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -716,22 +716,17 @@ void LLFloater::closeFloater(bool app_quitting) if (!app_quitting) { if ( mVerifyUponClose && !mForceCloseAfterVerify ) - { - - llinfos<<"prep#dogshit1"< Date: Fri, 14 Jun 2013 12:34:45 -0500 Subject: WIP: sh-4035 backed out changes to appearance window confirmation --- indra/llui/llfloater.cpp | 47 +++++++---------------------------------------- 1 file changed, 7 insertions(+), 40 deletions(-) (limited to 'indra/llui/llfloater.cpp') diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index f8b01e106b..0807b497a7 100755 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -704,29 +704,11 @@ void LLFloater::openFloater(const LLSD& key) dirtyRect(); } -void LLFloater::verifyClose( bool app_quitting ) -{ - LLPanel::handleCloseConfirmation( app_quitting ); -} - void LLFloater::closeFloater(bool app_quitting) { llinfos << "Closing floater " << getName() << llendl; - - if (!app_quitting) - { - if ( mVerifyUponClose && !mForceCloseAfterVerify ) - { - onClose( app_quitting ); - if ( mForceCloseAfterVerify ) - { - return; - } - } - } - if (app_quitting) - { + { LLFloater::sQuitting = true; } @@ -799,7 +781,7 @@ void LLFloater::closeFloater(bool app_quitting) dirtyRect(); // Close callbacks - onClose(app_quitting); + onClose(app_quitting); mCloseSignal(this, LLSD(app_quitting)); // Hide or Destroy @@ -1639,7 +1621,7 @@ void LLFloater::bringToFront( S32 x, S32 y ) // virtual -void LLFloater::setVisibleAndFrontmost(BOOL take_focus, const LLSD& key) +void LLFloater::setVisibleAndFrontmost(BOOL take_focus,const LLSD& key) { LLMultiFloater* hostp = getHost(); if (hostp) @@ -1806,19 +1788,11 @@ void LLFloater::initRectControl() void LLFloater::closeFrontmostFloater() { LLFloater* floater_to_close = gFloaterView->getFrontmostClosableFloater(); - if( floater_to_close ) + if(floater_to_close) { - if ( floater_to_close->mVerifyUponClose ) - { - floater_to_close->verifyClose(); - //Closing of the window handle in the subclass - so bug out here. - return; - } - else - { - floater_to_close->closeFloater(); - } + floater_to_close->closeFloater(); } + // if nothing took focus after closing focused floater // give it to next floater (to allow closing multiple windows via keyboard in rapid succession) if (gFocusMgr.getKeyboardFocus() == NULL) @@ -2657,14 +2631,7 @@ void LLFloaterView::closeAllChildren(bool app_quitting) if (floaterp->canClose() && !floaterp->isDead() && (app_quitting || floaterp->getVisible())) { - if ( floaterp->mVerifyUponClose ) - { - floaterp->verifyClose(app_quitting); - } - else - { - floaterp->closeFloater(app_quitting); - } + floaterp->closeFloater(app_quitting); } } } -- cgit v1.2.3