diff options
author | Josh Bell <josh@lindenlab.com> | 2007-01-08 21:43:30 +0000 |
---|---|---|
committer | Josh Bell <josh@lindenlab.com> | 2007-01-08 21:43:30 +0000 |
commit | fbf49910f34278a39dffff7e6c8bc654839988fb (patch) | |
tree | 627ae5b2818f671898b855d5ef8d02a9789d9432 /indra | |
parent | c618a55f769946369e3d80f71eeb3c42042ab4e0 (diff) |
svn merge -r 56431:56560 svn+ssh://svn.lindenlab.com/svn/linden/branches/maintenance
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llfloaterbuyland.cpp | 30 | ||||
-rw-r--r-- | indra/newview/llfloaterbuyland.h | 1 | ||||
-rw-r--r-- | indra/newview/llfloatertos.cpp | 17 | ||||
-rw-r--r-- | indra/newview/llfloatertos.h | 4 | ||||
-rw-r--r-- | indra/newview/llimview.cpp | 6 | ||||
-rw-r--r-- | indra/newview/llpanelavatar.cpp | 8 | ||||
-rw-r--r-- | indra/newview/llpanelavatar.h | 4 | ||||
-rw-r--r-- | indra/newview/llpanellogin.cpp | 8 | ||||
-rw-r--r-- | indra/newview/llviewermenu.cpp | 18 | ||||
-rw-r--r-- | indra/newview/llviewerparcelmgr.cpp | 2 | ||||
-rw-r--r-- | indra/newview/llviewerwindow.cpp | 6 |
11 files changed, 71 insertions, 33 deletions
diff --git a/indra/newview/llfloaterbuyland.cpp b/indra/newview/llfloaterbuyland.cpp index cf73a1104d..52ac981909 100644 --- a/indra/newview/llfloaterbuyland.cpp +++ b/indra/newview/llfloaterbuyland.cpp @@ -241,6 +241,17 @@ void LLFloaterBuyLand::updateEstateOwnerName(const std::string& name) } // static +BOOL LLFloaterBuyLand::isOpen() +{ + LLFloaterBuyLandUI* floater = LLFloaterBuyLandUI::soleInstance(FALSE); + if (floater) + { + return floater->getVisible(); + } + return FALSE; +} + +// static LLFloaterBuyLandUI* LLFloaterBuyLandUI::sInstance = NULL; // static @@ -717,10 +728,11 @@ void LLFloaterBuyLandUI::runWebSitePrep(const std::string& password) mParcelBuyInfo = gParcelMgr->setupParcelBuy(gAgent.getID(), gAgent.getSessionID(), gAgent.getGroupID(), mIsForGroup, mIsClaim, remove_contribution); - if (!mSiteMembershipUpgrade - && !mSiteLandUseUpgrade - && mCurrency.getAmount() == 0 - && mSiteConfirm != "password") + if (mParcelBuyInfo + && !mSiteMembershipUpgrade + && !mSiteLandUseUpgrade + && mCurrency.getAmount() == 0 + && mSiteConfirm != "password") { sendBuyLand(); return; @@ -779,10 +791,12 @@ void LLFloaterBuyLandUI::finishWebSitePrep() void LLFloaterBuyLandUI::sendBuyLand() { - gParcelMgr->sendParcelBuy(mParcelBuyInfo); - gParcelMgr->deleteParcelBuy(mParcelBuyInfo); - - mBought = true; + if (mParcelBuyInfo) + { + gParcelMgr->sendParcelBuy(mParcelBuyInfo); + gParcelMgr->deleteParcelBuy(mParcelBuyInfo); + mBought = true; + } } void LLFloaterBuyLandUI::updateNames() diff --git a/indra/newview/llfloaterbuyland.h b/indra/newview/llfloaterbuyland.h index 092c95802a..22049d97a9 100644 --- a/indra/newview/llfloaterbuyland.h +++ b/indra/newview/llfloaterbuyland.h @@ -23,6 +23,7 @@ public: static void updateEstateName(const std::string& name); static void updateLastModified(const std::string& text); static void updateEstateOwnerName(const std::string& name); + static BOOL isOpen(); }; #endif diff --git a/indra/newview/llfloatertos.cpp b/indra/newview/llfloatertos.cpp index 149a585822..c9aa9edebd 100644 --- a/indra/newview/llfloatertos.cpp +++ b/indra/newview/llfloatertos.cpp @@ -25,7 +25,6 @@ #include "llui.h" #include "llhttpclient.h" #include "llradiogroup.h" -#include "llwebbrowserctrl.h" // static LLFloaterTOS* LLFloaterTOS::sInstance = NULL; @@ -133,12 +132,11 @@ BOOL LLFloaterTOS::postBuild() LLWebBrowserCtrl* web_browser = LLUICtrlFactory::getWebBrowserCtrlByName(this, "tos_html"); if ( web_browser ) { - // save the window id for this web browser widget - mWebBrowserWindowId = web_browser->getEmbeddedBrowserWindowId(); - // start to observe it so we see navigate complete events - if ( mWebBrowserWindowId ) - LLMozLib::getInstance()->addObserver( mWebBrowserWindowId, this ); + if ( web_browser ) + { + web_browser->addObserver( this ); + }; gResponsePtr = LLIamHere::build( this ); LLHTTPClient::get( childGetValue( "real_url" ).asString(), gResponsePtr ); @@ -198,8 +196,11 @@ LLFloaterTOS::~LLFloaterTOS() { #if LL_LIBXUL_ENABLED // stop obsaerving events - if ( mWebBrowserWindowId ) - LLMozLib::getInstance()->addObserver( mWebBrowserWindowId, this ); + LLWebBrowserCtrl* web_browser = LLUICtrlFactory::getWebBrowserCtrlByName(this, "tos_html"); + if ( web_browser ) + { + web_browser->addObserver( this ); + }; #endif // LL_LIBXUL_ENABLED // tell the responder we're not here anymore diff --git a/indra/newview/llfloatertos.h b/indra/newview/llfloatertos.h index 1f504b4edb..b87ab3cad7 100644 --- a/indra/newview/llfloatertos.h +++ b/indra/newview/llfloatertos.h @@ -11,7 +11,7 @@ #include "llmodaldialog.h" #include "llassetstorage.h" -#include "llmozlib.h" +#include "llwebbrowserctrl.h" class LLButton; class LLRadioGroup; @@ -21,7 +21,7 @@ class LLUUID; class LLFloaterTOS : public LLModalDialog, - public LLEmbeddedBrowserWindowObserver + public LLWebBrowserCtrlObserver { public: virtual ~LLFloaterTOS(); diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index fb8438dc93..f333f7bb6c 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -55,7 +55,7 @@ static LLString sOfflineMessage; // // returns true if a should appear before b -BOOL group_dictionary_sort( LLGroupData* a, LLGroupData* b ) +static BOOL group_dictionary_sort( LLGroupData* a, LLGroupData* b ) { return (LLString::compareDict( a->mName, b->mName ) < 0); } @@ -63,7 +63,7 @@ BOOL group_dictionary_sort( LLGroupData* a, LLGroupData* b ) // the other_participant_id is either an agent_id, a group_id, or an inventory // folder item_id (collection of calling cards) -LLUUID compute_session_id(EInstantMessage dialog, const LLUUID& other_participant_id) +static LLUUID compute_session_id(EInstantMessage dialog, const LLUUID& other_participant_id) { LLUUID session_id; if (IM_SESSION_GROUP_START == dialog) @@ -95,6 +95,7 @@ LLUUID compute_session_id(EInstantMessage dialog, const LLUUID& other_participan LLFloaterIM::LLFloaterIM() { + gUICtrlFactory->buildFloater(this, "floater_im.xml"); } BOOL LLFloaterIM::postBuild() @@ -266,7 +267,6 @@ LLIMView::LLIMView(const std::string& name, const LLRect& rect) : LLAvatarTracker::instance().addObserver(mFriendObserver); mTalkFloater = new LLFloaterIM(); - gUICtrlFactory->buildFloater(mTalkFloater, "floater_im.xml"); // New IM Panel mNewIMFloater = new LLFloaterNewIM(); diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp index 6f812e9e35..f671d63557 100644 --- a/indra/newview/llpanelavatar.cpp +++ b/indra/newview/llpanelavatar.cpp @@ -52,7 +52,6 @@ #include "llinventorymodel.h" #include "viewer.h" // for gUserServer #include "roles_constants.h" -#include "llwebbrowserctrl.h" #define kArraySize( _kArray ) ( sizeof( (_kArray) ) / sizeof( _kArray[0] ) ) @@ -449,7 +448,7 @@ BOOL LLPanelAvatarWeb::postBuild(void) mWebBrowser->setOpenInExternalBrowser( false ); // observe browser events - LLMozLib::getInstance()->addObserver( mWebBrowser->getEmbeddedBrowserWindowId(), this ); + mWebBrowser->addObserver( this ); #endif // LL_LIBXUL_ENABLED return TRUE; @@ -508,7 +507,10 @@ LLPanelAvatarWeb::~LLPanelAvatarWeb() { #if LL_LIBXUL_ENABLED // stop observing browser events - LLMozLib::getInstance()->remObserver( mWebBrowser->getEmbeddedBrowserWindowId(), this ); + if ( mWebBrowser ) + { + mWebBrowser->remObserver( this ); + }; #endif } diff --git a/indra/newview/llpanelavatar.h b/indra/newview/llpanelavatar.h index a17dc69cfc..0cdcdf938b 100644 --- a/indra/newview/llpanelavatar.h +++ b/indra/newview/llpanelavatar.h @@ -13,7 +13,7 @@ #include "v3dmath.h" #include "lluuid.h" #include "linked_lists.h" -#include "llmozlib.h" +#include "llwebbrowserctrl.h" class LLButton; class LLCheckBoxCtrl; @@ -89,7 +89,7 @@ protected: class LLPanelAvatarWeb : public LLPanel #if LL_LIBXUL_ENABLED - , public LLEmbeddedBrowserWindowObserver + , public LLWebBrowserCtrlObserver #endif { public: diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index e1ed7a0df7..dfaf872d92 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -9,6 +9,7 @@ #include "llviewerprecompiledheaders.h" #include "llpanellogin.h" +#include "llpanelgeneral.h" #include "indra_constants.h" // for key and mask constants #include "llfontgl.h" @@ -34,7 +35,6 @@ #include "llviewermenu.h" // for handle_preferences() #include "llviewernetwork.h" #include "llviewerwindow.h" // to link into child list -#include "llmozlib.h" #include "llnotify.h" #include "viewer.h" // for gHideLinks #include "llvieweruictrlfactory.h" @@ -170,6 +170,8 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, { combo->setCurrentByIndex( 0 ); } + + combo->setCommitCallback( &LLPanelGeneral::set_start_location ); } // Specific servers added later. @@ -228,9 +230,9 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, // make links open in external browser web_browser->setOpenInExternalBrowser( true ); - // force the size to be correct (XML doesn't seem to be sufficient to do this) + // force the size to be correct (XML doesn't seem to be sufficient to do this) (with some padding so the other login screen doesn't show through) LLRect htmlRect = mRect; - htmlRect.setCenterAndSize( mRect.getCenterX(), mRect.getCenterY() + 40, mRect.getWidth(), mRect.getHeight() - 80 ); + htmlRect.setCenterAndSize( mRect.getCenterX() - 2, mRect.getCenterY() + 40, mRect.getWidth() + 6, mRect.getHeight() - 78 ); web_browser->setRect( htmlRect ); web_browser->reshape( htmlRect.getWidth(), htmlRect.getHeight(), TRUE ); reshape( mRect.getWidth(), mRect.getHeight(), 1 ); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 8eae25fa63..689dcee663 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -6479,7 +6479,14 @@ class LLShowFloater : public view_listener_t { if (gParcelMgr->selectionEmpty()) { - gParcelMgr->selectParcelAt(gAgent.getPositionGlobal()); + if (gLastHitPosGlobal.isExactlyZero()) + { + gParcelMgr->selectParcelAt(gAgent.getPositionGlobal()); + } + else + { + gParcelMgr->selectParcelAt( gLastHitPosGlobal ); + } } LLFloaterLand::show(); @@ -6488,7 +6495,14 @@ class LLShowFloater : public view_listener_t { if (gParcelMgr->selectionEmpty()) { - gParcelMgr->selectParcelAt(gAgent.getPositionGlobal()); + if (gLastHitPosGlobal.isExactlyZero()) + { + gParcelMgr->selectParcelAt(gAgent.getPositionGlobal()); + } + else + { + gParcelMgr->selectParcelAt( gLastHitPosGlobal ); + } } gParcelMgr->startBuyLand(); diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp index b29b49b399..e3d462bb3b 100644 --- a/indra/newview/llviewerparcelmgr.cpp +++ b/indra/newview/llviewerparcelmgr.cpp @@ -1949,7 +1949,7 @@ void LLViewerParcelMgr::processParcelAccessListReply(LLMessageSystem *msg, void if (parcel_id != parcel->getLocalID()) { llwarns << "processParcelAccessListReply for parcel " << parcel_id - << " which isn't the selected parcel" << llendl; + << " which isn't the selected parcel " << parcel->getLocalID()<< llendl; return; } diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 331502c28a..8920d09fa6 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -69,6 +69,7 @@ #include "llfilepicker.h" #include "llfloater.h" #include "llfloaterbuildoptions.h" +#include "llfloaterbuyland.h" #include "llfloaterchat.h" #include "llfloatercustomize.h" #include "llfloatereditui.h" // HACK JAMESDEBUG for ui editor @@ -2661,7 +2662,10 @@ BOOL LLViewerWindow::handlePerFrameHover() } // sync land selection with edit and about land dialogs - if (gParcelMgr && !LLFloaterLand::floaterVisible() && (!gFloaterTools || !gFloaterTools->getVisible())) + if (gParcelMgr + && !LLFloaterLand::floaterVisible() + && !LLFloaterBuyLand::isOpen() + && (!gFloaterTools || !gFloaterTools->getVisible())) { gParcelMgr->deselectLand(); } |