diff options
author | thickbrick | 2010-11-10 20:10:13 +0200 |
---|---|---|
committer | thickbrick | 2010-11-10 20:10:13 +0200 |
commit | 7b5e0f297726bf58fd4dfd3ed2725af891952835 (patch) | |
tree | d576e0e77327f3b9ab91727b0c15ce7e7ad07906 /linden/indra/newview | |
parent | Fix #699: Can't drag prims with translate manipulator (diff) | |
download | meta-impy-7b5e0f297726bf58fd4dfd3ed2725af891952835.zip meta-impy-7b5e0f297726bf58fd4dfd3ed2725af891952835.tar.gz meta-impy-7b5e0f297726bf58fd4dfd3ed2725af891952835.tar.bz2 meta-impy-7b5e0f297726bf58fd4dfd3ed2725af891952835.tar.xz |
Fix #700: View -> Web Browser does nothing
Also made the "Home" and "Set Home" buttons work.
"Send current URL to parcel" is still broken in SL, since it relies on
the ParcelNavigateMedia capability which was never implemented by LL.
Diffstat (limited to 'linden/indra/newview')
-rw-r--r-- | linden/indra/newview/llfloatermediabrowser.cpp | 43 | ||||
-rw-r--r-- | linden/indra/newview/llfloatermediabrowser.h | 2 | ||||
-rw-r--r-- | linden/indra/newview/llviewermenu.cpp | 8 |
3 files changed, 47 insertions, 6 deletions
diff --git a/linden/indra/newview/llfloatermediabrowser.cpp b/linden/indra/newview/llfloatermediabrowser.cpp index def0159..d658a11 100644 --- a/linden/indra/newview/llfloatermediabrowser.cpp +++ b/linden/indra/newview/llfloatermediabrowser.cpp | |||
@@ -35,6 +35,8 @@ | |||
35 | #include "llfloatermediabrowser.h" | 35 | #include "llfloatermediabrowser.h" |
36 | #include "llfloaterhtml.h" | 36 | #include "llfloaterhtml.h" |
37 | 37 | ||
38 | #include "llchat.h" | ||
39 | #include "llfloaterchat.h" | ||
38 | #include "llparcel.h" | 40 | #include "llparcel.h" |
39 | #include "llpluginclassmedia.h" | 41 | #include "llpluginclassmedia.h" |
40 | #include "lluictrlfactory.h" | 42 | #include "lluictrlfactory.h" |
@@ -43,6 +45,7 @@ | |||
43 | #include "llviewercontrol.h" | 45 | #include "llviewercontrol.h" |
44 | #include "llviewerparcelmgr.h" | 46 | #include "llviewerparcelmgr.h" |
45 | #include "llweb.h" | 47 | #include "llweb.h" |
48 | #include "lltrans.h" | ||
46 | #include "llui.h" | 49 | #include "llui.h" |
47 | #include "roles_constants.h" | 50 | #include "roles_constants.h" |
48 | 51 | ||
@@ -64,12 +67,14 @@ LLFloaterMediaBrowser::LLFloaterMediaBrowser(const LLSD& media_data) | |||
64 | 67 | ||
65 | void LLFloaterMediaBrowser::draw() | 68 | void LLFloaterMediaBrowser::draw() |
66 | { | 69 | { |
67 | childSetEnabled("go", !mAddressCombo->getValue().asString().empty()); | 70 | BOOL url_exists = !mAddressCombo->getValue().asString().empty(); |
71 | childSetEnabled("go", url_exists); | ||
72 | childSetEnabled("set_home", url_exists); | ||
68 | LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); | 73 | LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); |
69 | if(parcel) | 74 | if(parcel) |
70 | { | 75 | { |
71 | childSetVisible("parcel_owner_controls", LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_CHANGE_MEDIA)); | 76 | childSetVisible("parcel_owner_controls", LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_CHANGE_MEDIA)); |
72 | childSetEnabled("assign", !mAddressCombo->getValue().asString().empty()); | 77 | childSetEnabled("assign", url_exists); |
73 | } | 78 | } |
74 | bool show_time_controls = false; | 79 | bool show_time_controls = false; |
75 | bool media_playing = false; | 80 | bool media_playing = false; |
@@ -118,8 +123,11 @@ BOOL LLFloaterMediaBrowser::postBuild() | |||
118 | childSetAction("close", onClickClose, this); | 123 | childSetAction("close", onClickClose, this); |
119 | childSetAction("open_browser", onClickOpenWebBrowser, this); | 124 | childSetAction("open_browser", onClickOpenWebBrowser, this); |
120 | childSetAction("assign", onClickAssign, this); | 125 | childSetAction("assign", onClickAssign, this); |
126 | childSetAction("home", onClickHome, this); | ||
127 | childSetAction("set_home", onClickSetHome, this); | ||
121 | 128 | ||
122 | buildURLHistory(); | 129 | buildURLHistory(); |
130 | |||
123 | return TRUE; | 131 | return TRUE; |
124 | } | 132 | } |
125 | 133 | ||
@@ -283,6 +291,37 @@ void LLFloaterMediaBrowser::onClickAssign(void* user_data) | |||
283 | } | 291 | } |
284 | LLViewerParcelMedia::sendMediaNavigateMessage(media_url); | 292 | LLViewerParcelMedia::sendMediaNavigateMessage(media_url); |
285 | } | 293 | } |
294 | |||
295 | // static | ||
296 | void LLFloaterMediaBrowser::onClickHome(void* user_data) | ||
297 | { | ||
298 | LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data; | ||
299 | if (self) | ||
300 | { | ||
301 | if (self->mBrowser) | ||
302 | { | ||
303 | std::string home_url = gSavedSettings.getString("BrowserHome"); | ||
304 | self->mBrowser->navigateTo(home_url); | ||
305 | } | ||
306 | } | ||
307 | } | ||
308 | |||
309 | // static | ||
310 | void LLFloaterMediaBrowser::onClickSetHome(void* user_data) | ||
311 | { | ||
312 | LLFloaterMediaBrowser* self = (LLFloaterMediaBrowser*)user_data; | ||
313 | std::string url = self->mCurrentURL; | ||
314 | if(!url.empty()) | ||
315 | { | ||
316 | LLChat chat; | ||
317 | std::string log_message = LLTrans::getString("new_home_page") + " "; | ||
318 | log_message += url; | ||
319 | chat.mText = log_message; | ||
320 | LLFloaterChat::addChat(chat, FALSE, FALSE); | ||
321 | gSavedSettings.setString("BrowserHome", url); | ||
322 | } | ||
323 | } | ||
324 | |||
286 | //static | 325 | //static |
287 | void LLFloaterMediaBrowser::onClickRewind(void* user_data) | 326 | void LLFloaterMediaBrowser::onClickRewind(void* user_data) |
288 | { | 327 | { |
diff --git a/linden/indra/newview/llfloatermediabrowser.h b/linden/indra/newview/llfloatermediabrowser.h index 8a78df8..7de1900 100644 --- a/linden/indra/newview/llfloatermediabrowser.h +++ b/linden/indra/newview/llfloatermediabrowser.h | |||
@@ -85,6 +85,8 @@ public: | |||
85 | static void onClickClose(void* user_data); | 85 | static void onClickClose(void* user_data); |
86 | static void onClickOpenWebBrowser(void* user_data); | 86 | static void onClickOpenWebBrowser(void* user_data); |
87 | static void onClickAssign(void* user_data); | 87 | static void onClickAssign(void* user_data); |
88 | static void onClickHome(void* user_data); | ||
89 | static void onClickSetHome(void* user_data); | ||
88 | static void onClickRewind(void* user_data); | 90 | static void onClickRewind(void* user_data); |
89 | static void onClickPlay(void* user_data); | 91 | static void onClickPlay(void* user_data); |
90 | static void onClickStop(void* user_data); | 92 | static void onClickStop(void* user_data); |
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp index a663e60..b81a2a2 100644 --- a/linden/indra/newview/llviewermenu.cpp +++ b/linden/indra/newview/llviewermenu.cpp | |||
@@ -6091,10 +6091,10 @@ class LLShowFloater : public view_listener_t | |||
6091 | { | 6091 | { |
6092 | JCFloaterAnimList::toggleInstance(LLSD()); | 6092 | JCFloaterAnimList::toggleInstance(LLSD()); |
6093 | } | 6093 | } |
6094 | //imprudence fixme else if (floater_name == "inworld browser") | 6094 | else if (floater_name == "inworld browser") |
6095 | // { | 6095 | { |
6096 | // LLFloaterMediaBrowser::toggle(); | 6096 | LLWeb::loadURL(gSavedSettings.getString("BrowserHome")); |
6097 | // } | 6097 | } |
6098 | else if (floater_name == "beacons") | 6098 | else if (floater_name == "beacons") |
6099 | { | 6099 | { |
6100 | LLFloaterBeacons::toggleInstance(LLSD()); | 6100 | LLFloaterBeacons::toggleInstance(LLSD()); |