diff options
167 files changed, 5893 insertions, 1038 deletions
diff --git a/linden/doc/contributions.txt b/linden/doc/contributions.txt index 2d3fa99..7a9a457 100644 --- a/linden/doc/contributions.txt +++ b/linden/doc/contributions.txt | |||
@@ -31,6 +31,7 @@ Alissa Sabre | |||
31 | VWR-1353 | 31 | VWR-1353 |
32 | VWR-1410 | 32 | VWR-1410 |
33 | VWR-2116 | 33 | VWR-2116 |
34 | VWR-2826 | ||
34 | Argent Stonecutter | 35 | Argent Stonecutter |
35 | VWR-68 | 36 | VWR-68 |
36 | Benja Kepler | 37 | Benja Kepler |
@@ -149,6 +150,8 @@ Matthew Dowd | |||
149 | VWR-1761 | 150 | VWR-1761 |
150 | McCabe Maxsted | 151 | McCabe Maxsted |
151 | VWR-1318 | 152 | VWR-1318 |
153 | Michelle2 Zenovka | ||
154 | VWR-2834 | ||
152 | Mr Greggan | 155 | Mr Greggan |
153 | VWR-445 | 156 | VWR-445 |
154 | Nicholaz Beresford | 157 | Nicholaz Beresford |
diff --git a/linden/etc/message.xml b/linden/etc/message.xml index 614d2b0..3d9d0eb 100644 --- a/linden/etc/message.xml +++ b/linden/etc/message.xml | |||
@@ -468,6 +468,13 @@ | |||
468 | 468 | ||
469 | <key>ProvisionVoiceAccountRequest</key> | 469 | <key>ProvisionVoiceAccountRequest</key> |
470 | <boolean>false</boolean> | 470 | <boolean>false</boolean> |
471 | |||
472 | <key>RemoteParcelRequest</key> | ||
473 | <boolean>false</boolean> | ||
474 | |||
475 | <key>SearchStatTracking</key> | ||
476 | <boolean>false</boolean> | ||
477 | |||
471 | </map> | 478 | </map> |
472 | 479 | ||
473 | <key>messageBans</key> | 480 | <key>messageBans</key> |
diff --git a/linden/indra/indra_complete/indra_complete.sln b/linden/indra/indra_complete/indra_complete.sln index 70bcbbd..513d9a8 100644 --- a/linden/indra/indra_complete/indra_complete.sln +++ b/linden/indra/indra_complete/indra_complete.sln | |||
@@ -69,6 +69,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "newview", "..\newview\newvi | |||
69 | {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} | 69 | {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} |
70 | {4C8D64D5-649F-481E-96BE-EF1E82A77ACB} = {4C8D64D5-649F-481E-96BE-EF1E82A77ACB} | 70 | {4C8D64D5-649F-481E-96BE-EF1E82A77ACB} = {4C8D64D5-649F-481E-96BE-EF1E82A77ACB} |
71 | {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E} = {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E} | 71 | {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E} = {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E} |
72 | {648685F3-8760-4CC5-BB2B-CAF9DECC25A4} = {648685F3-8760-4CC5-BB2B-CAF9DECC25A4} | ||
72 | {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1} | 73 | {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1} |
73 | EndProjectSection | 74 | EndProjectSection |
74 | EndProject | 75 | EndProject |
@@ -235,46 +236,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "llimagej2coj", "..\llimagej | |||
235 | ProjectSection(ProjectDependencies) = postProject | 236 | ProjectSection(ProjectDependencies) = postProject |
236 | EndProjectSection | 237 | EndProjectSection |
237 | EndProject | 238 | EndProject |
238 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "build_all", "build_all.vcproj", "{D2CE3C3B-714F-42C4-BDEC-EDB62528E1BE}" | ||
239 | ProjectSection(ProjectDependencies) = postProject | ||
240 | {9D0C7E02-6506-4EE7-BC5C-75671D28D594} = {9D0C7E02-6506-4EE7-BC5C-75671D28D594} | ||
241 | {2ADE3C14-94C4-40BF-B033-70F3C954EE90} = {2ADE3C14-94C4-40BF-B033-70F3C954EE90} | ||
242 | {B5B53617-416F-404A-BF10-22EBCCA0E4FB} = {B5B53617-416F-404A-BF10-22EBCCA0E4FB} | ||
243 | {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08} = {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08} | ||
244 | {A5504A1E-8BA4-45D2-8144-1B6937E37E98} = {A5504A1E-8BA4-45D2-8144-1B6937E37E98} | ||
245 | {AF2D801E-EEE7-4B52-A025-F8E648ADC34B} = {AF2D801E-EEE7-4B52-A025-F8E648ADC34B} | ||
246 | {93B2BA29-FBE9-4376-92C1-6108DCFE09D3} = {93B2BA29-FBE9-4376-92C1-6108DCFE09D3} | ||
247 | {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} = {7BCB4B2C-8378-4186-88EA-5742B5ABE17F} | ||
248 | {E928F33B-E090-4FA8-818B-6B5D8B0F1F4B} = {E928F33B-E090-4FA8-818B-6B5D8B0F1F4B} | ||
249 | {FCC4483C-5B84-4944-B91F-4589A219BC0B} = {FCC4483C-5B84-4944-B91F-4589A219BC0B} | ||
250 | {F882263E-4F2A-43D9-A45A-FA4C8EC66552} = {F882263E-4F2A-43D9-A45A-FA4C8EC66552} | ||
251 | {076DD042-2E58-42EA-9401-53210B65C1FC} = {076DD042-2E58-42EA-9401-53210B65C1FC} | ||
252 | {6AEE004D-BFE8-4082-B4D3-E51163B01EEB} = {6AEE004D-BFE8-4082-B4D3-E51163B01EEB} | ||
253 | {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4} = {4B19F64E-AB97-4FB9-8E1D-74A8104DE0C4} | ||
254 | {E9F5BD55-F8E8-4C61-B9B5-CCE7C1048241} = {E9F5BD55-F8E8-4C61-B9B5-CCE7C1048241} | ||
255 | {F56CA265-93E9-4068-8A67-8B104C876D70} = {F56CA265-93E9-4068-8A67-8B104C876D70} | ||
256 | {DE55D666-6A3D-476C-937F-109269B83681} = {DE55D666-6A3D-476C-937F-109269B83681} | ||
257 | {328D1968-924F-4863-AAE8-5F9A95BA68E5} = {328D1968-924F-4863-AAE8-5F9A95BA68E5} | ||
258 | {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5} = {681FDD6C-2FAE-4CB9-AF6D-B952F2B151C5} | ||
259 | {B771CF1B-E253-47BD-8B0A-6B0440CC9228} = {B771CF1B-E253-47BD-8B0A-6B0440CC9228} | ||
260 | {44CE6D82-7320-4609-8FC3-5965C19F4808} = {44CE6D82-7320-4609-8FC3-5965C19F4808} | ||
261 | {BBAA6588-CA96-4A87-A988-B02270B8D02B} = {BBAA6588-CA96-4A87-A988-B02270B8D02B} | ||
262 | {E5D94794-5671-4BD6-A16D-26EC18F3DB34} = {E5D94794-5671-4BD6-A16D-26EC18F3DB34} | ||
263 | {EC2A989E-3F8F-4B8B-9AE6-7C7EA37C84BC} = {EC2A989E-3F8F-4B8B-9AE6-7C7EA37C84BC} | ||
264 | {A5470DA6-0C3A-4602-B930-43DB25511A59} = {A5470DA6-0C3A-4602-B930-43DB25511A59} | ||
265 | {BFA102B0-C891-4E13-B1CF-C2F28073DA8E} = {BFA102B0-C891-4E13-B1CF-C2F28073DA8E} | ||
266 | {777F38BE-2DFE-4051-9AAD-2832ABC474CC} = {777F38BE-2DFE-4051-9AAD-2832ABC474CC} | ||
267 | {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} = {E87FD9BE-BE42-4EA3-BF4D-D992223046D9} | ||
268 | {D0FDC1C3-A589-40F2-ABCA-A84FF3835624} = {D0FDC1C3-A589-40F2-ABCA-A84FF3835624} | ||
269 | {B4B838C7-2C72-428E-BBFD-25764E659A8B} = {B4B838C7-2C72-428E-BBFD-25764E659A8B} | ||
270 | {4C8D64D5-649F-481E-96BE-EF1E82A77ACB} = {4C8D64D5-649F-481E-96BE-EF1E82A77ACB} | ||
271 | {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E} = {5EA5DDF0-C7E1-4F49-BEF5-9246A4656B2E} | ||
272 | {648685F3-8760-4CC5-BB2B-CAF9DECC25A4} = {648685F3-8760-4CC5-BB2B-CAF9DECC25A4} | ||
273 | {D37774F4-253D-4760-BF64-372A943224A1} = {D37774F4-253D-4760-BF64-372A943224A1} | ||
274 | {C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2} = {C6CA76F5-DCB4-4789-BBA7-43D11EE7C8E2} | ||
275 | {023011F7-3ADB-49D3-9EC5-6D392F6D15FE} = {023011F7-3ADB-49D3-9EC5-6D392F6D15FE} | ||
276 | EndProjectSection | ||
277 | EndProject | ||
278 | Global | 239 | Global |
279 | GlobalSection(SolutionConfiguration) = preSolution | 240 | GlobalSection(SolutionConfiguration) = preSolution |
280 | Debug = Debug | 241 | Debug = Debug |
@@ -282,8 +243,6 @@ Global | |||
282 | ReleaseForDownload = ReleaseForDownload | 243 | ReleaseForDownload = ReleaseForDownload |
283 | ReleaseNoOpt = ReleaseNoOpt | 244 | ReleaseNoOpt = ReleaseNoOpt |
284 | EndGlobalSection | 245 | EndGlobalSection |
285 | GlobalSection(ProjectDependencies) = postSolution | ||
286 | EndGlobalSection | ||
287 | GlobalSection(ProjectConfiguration) = postSolution | 246 | GlobalSection(ProjectConfiguration) = postSolution |
288 | {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}.Debug.ActiveCfg = Debug|Win32 | 247 | {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}.Debug.ActiveCfg = Debug|Win32 |
289 | {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}.Debug.Build.0 = Debug|Win32 | 248 | {7BCB4B2C-8378-4186-88EA-5742B5ABE17F}.Debug.Build.0 = Debug|Win32 |
@@ -563,14 +522,6 @@ Global | |||
563 | {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}.ReleaseForDownload.Build.0 = Release|Win32 | 522 | {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}.ReleaseForDownload.Build.0 = Release|Win32 |
564 | {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}.ReleaseNoOpt.ActiveCfg = ReleaseNoOpt|Win32 | 523 | {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}.ReleaseNoOpt.ActiveCfg = ReleaseNoOpt|Win32 |
565 | {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}.ReleaseNoOpt.Build.0 = ReleaseNoOpt|Win32 | 524 | {4C8D64D5-649F-481E-96BE-EF1E82A77ACB}.ReleaseNoOpt.Build.0 = ReleaseNoOpt|Win32 |
566 | {D2CE3C3B-714F-42C4-BDEC-EDB62528E1BE}.Debug.ActiveCfg = Debug|Win32 | ||
567 | {D2CE3C3B-714F-42C4-BDEC-EDB62528E1BE}.Debug.Build.0 = Debug|Win32 | ||
568 | {D2CE3C3B-714F-42C4-BDEC-EDB62528E1BE}.Release.ActiveCfg = Release|Win32 | ||
569 | {D2CE3C3B-714F-42C4-BDEC-EDB62528E1BE}.Release.Build.0 = Release|Win32 | ||
570 | {D2CE3C3B-714F-42C4-BDEC-EDB62528E1BE}.ReleaseForDownload.ActiveCfg = Release|Win32 | ||
571 | {D2CE3C3B-714F-42C4-BDEC-EDB62528E1BE}.ReleaseForDownload.Build.0 = Release|Win32 | ||
572 | {D2CE3C3B-714F-42C4-BDEC-EDB62528E1BE}.ReleaseNoOpt.ActiveCfg = ReleaseNoOpt|Win32 | ||
573 | {D2CE3C3B-714F-42C4-BDEC-EDB62528E1BE}.ReleaseNoOpt.Build.0 = ReleaseNoOpt|Win32 | ||
574 | EndGlobalSection | 525 | EndGlobalSection |
575 | GlobalSection(ExtensibilityGlobals) = postSolution | 526 | GlobalSection(ExtensibilityGlobals) = postSolution |
576 | EndGlobalSection | 527 | EndGlobalSection |
diff --git a/linden/indra/indra_complete/indra_complete_vc8.sln b/linden/indra/indra_complete/indra_complete_vc8.sln index f6b4304..04e1e9a 100644 --- a/linden/indra/indra_complete/indra_complete_vc8.sln +++ b/linden/indra/indra_complete/indra_complete_vc8.sln | |||
@@ -324,8 +324,8 @@ Global | |||
324 | {328D1968-924F-4863-AAE8-5F9A95BA68E5}.ReleaseForDownload|Win32.Build.0 = Release|Win32 | 324 | {328D1968-924F-4863-AAE8-5F9A95BA68E5}.ReleaseForDownload|Win32.Build.0 = Release|Win32 |
325 | {328D1968-924F-4863-AAE8-5F9A95BA68E5}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32 | 325 | {328D1968-924F-4863-AAE8-5F9A95BA68E5}.ReleaseNoOpt|Win32.ActiveCfg = ReleaseNoOpt|Win32 |
326 | {328D1968-924F-4863-AAE8-5F9A95BA68E5}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32 | 326 | {328D1968-924F-4863-AAE8-5F9A95BA68E5}.ReleaseNoOpt|Win32.Build.0 = ReleaseNoOpt|Win32 |
327 | {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.Debug|Win32.ActiveCfg = Debug|Win32 | 327 | {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.Debug|Win32.ActiveCfg = ReleaseNoOpt|Win32 |
328 | {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.Debug|Win32.Build.0 = Debug|Win32 | 328 | {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.Debug|Win32.Build.0 = ReleaseNoOpt|Win32 |
329 | {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32 | 329 | {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.DebugMesaHeadless|Win32.ActiveCfg = Debug|Win32 |
330 | {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32 | 330 | {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.DebugMesaHeadless|Win32.Build.0 = Debug|Win32 |
331 | {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.Release|Win32.ActiveCfg = Release|Win32 | 331 | {E6F4CF1B-6109-4CA8-B58D-87FA936CDE08}.Release|Win32.ActiveCfg = Release|Win32 |
diff --git a/linden/indra/lib/python/indra/base/lluuid.py b/linden/indra/lib/python/indra/base/lluuid.py index f302f8b..5209de4 100644 --- a/linden/indra/lib/python/indra/base/lluuid.py +++ b/linden/indra/lib/python/indra/base/lluuid.py | |||
@@ -27,6 +27,7 @@ $/LicenseInfo$ | |||
27 | """ | 27 | """ |
28 | 28 | ||
29 | import md5, random, socket, string, time, re | 29 | import md5, random, socket, string, time, re |
30 | import uuid | ||
30 | 31 | ||
31 | def _int2binstr(i,l): | 32 | def _int2binstr(i,l): |
32 | s='' | 33 | s='' |
@@ -187,14 +188,8 @@ class UUID(object): | |||
187 | from c++ implementation for portability reasons. | 188 | from c++ implementation for portability reasons. |
188 | Returns self. | 189 | Returns self. |
189 | """ | 190 | """ |
190 | newid = self.__class__.lastid | ||
191 | while newid == self.__class__.lastid: | ||
192 | now = long(time.time() * 1000) | ||
193 | newid = ("%016x" % now) + self.__class__.hexip | ||
194 | newid += ("%03x" % (self.__class__.rand.randrange(0,4095))) | ||
195 | self.__class__.lastid = newid | ||
196 | m = md5.new() | 191 | m = md5.new() |
197 | m.update(newid) | 192 | m.update(uuid.uuid1().bytes) |
198 | self._bits = m.digest() | 193 | self._bits = m.digest() |
199 | return self | 194 | return self |
200 | 195 | ||
diff --git a/linden/indra/llcommon/llpreprocessor.h b/linden/indra/llcommon/llpreprocessor.h index b3b79d0..459d086 100644 --- a/linden/indra/llcommon/llpreprocessor.h +++ b/linden/indra/llcommon/llpreprocessor.h | |||
@@ -124,6 +124,9 @@ | |||
124 | #if defined(LL_WINDOWS) | 124 | #if defined(LL_WINDOWS) |
125 | #define BOOST_REGEX_NO_LIB 1 | 125 | #define BOOST_REGEX_NO_LIB 1 |
126 | #define CURL_STATICLIB 1 | 126 | #define CURL_STATICLIB 1 |
127 | |||
128 | #define LL_LCD_COMPILE 1 | ||
129 | |||
127 | #endif // LL_WINDOWS | 130 | #endif // LL_WINDOWS |
128 | 131 | ||
129 | 132 | ||
diff --git a/linden/indra/llcommon/llstringtable.h b/linden/indra/llcommon/llstringtable.h index b7412ef..f7206fe 100644 --- a/linden/indra/llcommon/llstringtable.h +++ b/linden/indra/llcommon/llstringtable.h | |||
@@ -47,8 +47,10 @@ | |||
47 | //# define STRING_TABLE_HASH_MAP 1 | 47 | //# define STRING_TABLE_HASH_MAP 1 |
48 | #endif | 48 | #endif |
49 | 49 | ||
50 | #if STRING_TABLE_HASH_MAP | 50 | #if LL_WINDOWS |
51 | #include <hash_map> | 51 | #include <hash_map> |
52 | #else | ||
53 | #include <ext/hash_map> | ||
52 | #endif | 54 | #endif |
53 | 55 | ||
54 | const U32 MAX_STRINGS_LENGTH = 256; | 56 | const U32 MAX_STRINGS_LENGTH = 256; |
@@ -99,7 +101,11 @@ public: | |||
99 | S32 mUniqueEntries; | 101 | S32 mUniqueEntries; |
100 | 102 | ||
101 | #if STRING_TABLE_HASH_MAP | 103 | #if STRING_TABLE_HASH_MAP |
104 | #if LL_WINDOWS | ||
102 | typedef std::hash_multimap<U32, LLStringTableEntry *> string_hash_t; | 105 | typedef std::hash_multimap<U32, LLStringTableEntry *> string_hash_t; |
106 | #else | ||
107 | typedef __gnu_cxx::hash_multimap<U32, LLStringTableEntry *> string_hash_t; | ||
108 | #endif | ||
103 | string_hash_t mStringHash; | 109 | string_hash_t mStringHash; |
104 | #else | 110 | #else |
105 | typedef std::list<LLStringTableEntry *> string_list_t; | 111 | typedef std::list<LLStringTableEntry *> string_list_t; |
diff --git a/linden/indra/llcommon/llversionserver.h b/linden/indra/llcommon/llversionserver.h index 8891b47..e36702a 100644 --- a/linden/indra/llcommon/llversionserver.h +++ b/linden/indra/llcommon/llversionserver.h | |||
@@ -34,8 +34,8 @@ | |||
34 | 34 | ||
35 | const S32 LL_VERSION_MAJOR = 1; | 35 | const S32 LL_VERSION_MAJOR = 1; |
36 | const S32 LL_VERSION_MINOR = 18; | 36 | const S32 LL_VERSION_MINOR = 18; |
37 | const S32 LL_VERSION_PATCH = 4; | 37 | const S32 LL_VERSION_PATCH = 3; |
38 | const S32 LL_VERSION_BUILD = 0; | 38 | const S32 LL_VERSION_BUILD = 73552; |
39 | 39 | ||
40 | const char * const LL_CHANNEL = "Second Life Server"; | 40 | const char * const LL_CHANNEL = "Second Life Server"; |
41 | 41 | ||
diff --git a/linden/indra/llcommon/llversionviewer.h b/linden/indra/llcommon/llversionviewer.h index 71b7347..8d87e13 100644 --- a/linden/indra/llcommon/llversionviewer.h +++ b/linden/indra/llcommon/llversionviewer.h | |||
@@ -34,8 +34,8 @@ | |||
34 | 34 | ||
35 | const S32 LL_VERSION_MAJOR = 1; | 35 | const S32 LL_VERSION_MAJOR = 1; |
36 | const S32 LL_VERSION_MINOR = 18; | 36 | const S32 LL_VERSION_MINOR = 18; |
37 | const S32 LL_VERSION_PATCH = 4; | 37 | const S32 LL_VERSION_PATCH = 5; |
38 | const S32 LL_VERSION_BUILD = 3; | 38 | const S32 LL_VERSION_BUILD = 0; |
39 | 39 | ||
40 | const char * const LL_CHANNEL = "Second Life Release"; | 40 | const char * const LL_CHANNEL = "Second Life Release"; |
41 | 41 | ||
diff --git a/linden/indra/llcommon/roles_constants.h b/linden/indra/llcommon/roles_constants.h index 54e6827..1a7c977 100644 --- a/linden/indra/llcommon/roles_constants.h +++ b/linden/indra/llcommon/roles_constants.h | |||
@@ -142,11 +142,17 @@ const U64 GP_NOTICES_RECEIVE = 0x1LL << 43; // Receive Notices and View Notice | |||
142 | const U64 GP_PROPOSAL_START = 0x1LL << 44; // Start Proposal | 142 | const U64 GP_PROPOSAL_START = 0x1LL << 44; // Start Proposal |
143 | const U64 GP_PROPOSAL_VOTE = 0x1LL << 45; // Vote on Proposal | 143 | const U64 GP_PROPOSAL_VOTE = 0x1LL << 45; // Vote on Proposal |
144 | 144 | ||
145 | const U64 GP_SESSION_JOIN = 0x1LL << 46; //can join session | ||
146 | const U64 GP_SESSION_VOICE = 0x1LL << 47; //can hear/talk | ||
147 | const U64 GP_SESSION_MODERATOR = 0x1LL << 49; //can mute people's session | ||
148 | |||
145 | const U64 GP_DEFAULT_MEMBER = GP_ACCOUNTING_ACCOUNTABLE | 149 | const U64 GP_DEFAULT_MEMBER = GP_ACCOUNTING_ACCOUNTABLE |
146 | | GP_LAND_ALLOW_SET_HOME | 150 | | GP_LAND_ALLOW_SET_HOME |
147 | | GP_NOTICES_RECEIVE | 151 | | GP_NOTICES_RECEIVE |
148 | | GP_PROPOSAL_START | 152 | | GP_PROPOSAL_START |
149 | | GP_PROPOSAL_VOTE | 153 | | GP_PROPOSAL_VOTE |
154 | | GP_SESSION_JOIN | ||
155 | | GP_SESSION_VOICE | ||
150 | ; | 156 | ; |
151 | 157 | ||
152 | const U64 GP_DEFAULT_OFFICER = GP_ACCOUNTING_ACCOUNTABLE | 158 | const U64 GP_DEFAULT_OFFICER = GP_ACCOUNTING_ACCOUNTABLE |
@@ -187,5 +193,8 @@ const U64 GP_DEFAULT_OFFICER = GP_ACCOUNTING_ACCOUNTABLE | |||
187 | | GP_PROPOSAL_VOTE | 193 | | GP_PROPOSAL_VOTE |
188 | | GP_ROLE_ASSIGN_MEMBER_LIMITED | 194 | | GP_ROLE_ASSIGN_MEMBER_LIMITED |
189 | | GP_ROLE_PROPERTIES | 195 | | GP_ROLE_PROPERTIES |
196 | | GP_SESSION_MODERATOR | ||
197 | | GP_SESSION_JOIN | ||
198 | | GP_SESSION_VOICE | ||
190 | ; | 199 | ; |
191 | #endif | 200 | #endif |
diff --git a/linden/indra/llinventory/llparcel.cpp b/linden/indra/llinventory/llparcel.cpp index 3a67385..7cc3e57 100644 --- a/linden/indra/llinventory/llparcel.cpp +++ b/linden/indra/llinventory/llparcel.cpp | |||
@@ -38,6 +38,8 @@ | |||
38 | #include "llstreamtools.h" | 38 | #include "llstreamtools.h" |
39 | 39 | ||
40 | #include "llmath.h" | 40 | #include "llmath.h" |
41 | #include "llsd.h" | ||
42 | #include "llsdutil.h" | ||
41 | #include "lltransactiontypes.h" | 43 | #include "lltransactiontypes.h" |
42 | #include "lltransactionflags.h" | 44 | #include "lltransactionflags.h" |
43 | #include "message.h" | 45 | #include "message.h" |
@@ -1614,7 +1616,7 @@ void LLParcel::startSale(const LLUUID& buyer_id, BOOL is_buyer_group) | |||
1614 | mSaleTimerExpires.setTimerExpirySec(DEFAULT_USEC_SALE_TIMEOUT / SEC_TO_MICROSEC); | 1616 | mSaleTimerExpires.setTimerExpirySec(DEFAULT_USEC_SALE_TIMEOUT / SEC_TO_MICROSEC); |
1615 | mStatus = OS_LEASE_PENDING; | 1617 | mStatus = OS_LEASE_PENDING; |
1616 | mClaimDate = time(NULL); | 1618 | mClaimDate = time(NULL); |
1617 | mAuctionID = 0; | 1619 | setAuctionID(0); |
1618 | // clear the autoreturn whenever land changes hands | 1620 | // clear the autoreturn whenever land changes hands |
1619 | setCleanOtherTime(0); | 1621 | setCleanOtherTime(0); |
1620 | } | 1622 | } |
@@ -1649,6 +1651,7 @@ void LLParcel::completeSale(U32& type, U8& flags, | |||
1649 | // Purchased parcels are assumed to no longer be for sale. | 1651 | // Purchased parcels are assumed to no longer be for sale. |
1650 | // Otherwise someone can snipe the sale. | 1652 | // Otherwise someone can snipe the sale. |
1651 | setForSale(FALSE); | 1653 | setForSale(FALSE); |
1654 | setAuctionID(0); | ||
1652 | 1655 | ||
1653 | // Turn off show directory, since it's a recurring fee that | 1656 | // Turn off show directory, since it's a recurring fee that |
1654 | // the buyer may not want. | 1657 | // the buyer may not want. |
@@ -1674,6 +1677,7 @@ void LLParcel::clearSale() | |||
1674 | } | 1677 | } |
1675 | mAuthBuyerID.setNull(); | 1678 | mAuthBuyerID.setNull(); |
1676 | setForSale(FALSE); | 1679 | setForSale(FALSE); |
1680 | setAuctionID(0); | ||
1677 | setPreviousOwnerID(LLUUID::null); | 1681 | setPreviousOwnerID(LLUUID::null); |
1678 | setPreviouslyGroupOwned(FALSE); | 1682 | setPreviouslyGroupOwned(FALSE); |
1679 | setSellWithObjects(FALSE); | 1683 | setSellWithObjects(FALSE); |
diff --git a/linden/indra/llinventory/llparcel.h b/linden/indra/llinventory/llparcel.h index 9c63008..3af1824 100644 --- a/linden/indra/llinventory/llparcel.h +++ b/linden/indra/llinventory/llparcel.h | |||
@@ -31,6 +31,9 @@ | |||
31 | #ifndef LL_LLPARCEL_H | 31 | #ifndef LL_LLPARCEL_H |
32 | #define LL_LLPARCEL_H | 32 | #define LL_LLPARCEL_H |
33 | 33 | ||
34 | #include <time.h> | ||
35 | #include <iostream> | ||
36 | |||
34 | #include "lluuid.h" | 37 | #include "lluuid.h" |
35 | #include "llparcelflags.h" | 38 | #include "llparcelflags.h" |
36 | #include "llpermissions.h" | 39 | #include "llpermissions.h" |
@@ -100,6 +103,7 @@ const U32 RT_LIST = 0x1 << 4; | |||
100 | const U32 RT_SELL = 0x1 << 5; | 103 | const U32 RT_SELL = 0x1 << 5; |
101 | 104 | ||
102 | class LLMessageSystem; | 105 | class LLMessageSystem; |
106 | class LLSD; | ||
103 | 107 | ||
104 | class LLAccessEntry | 108 | class LLAccessEntry |
105 | { | 109 | { |
@@ -603,8 +607,6 @@ public: | |||
603 | std::map<LLUUID,LLAccessEntry> mBanList; | 607 | std::map<LLUUID,LLAccessEntry> mBanList; |
604 | std::map<LLUUID,LLAccessEntry> mTempBanList; | 608 | std::map<LLUUID,LLAccessEntry> mTempBanList; |
605 | std::map<LLUUID,LLAccessEntry> mTempAccessList; | 609 | std::map<LLUUID,LLAccessEntry> mTempAccessList; |
606 | |||
607 | //LLDynamicArray<LLAccessEntry> mRenterList; | ||
608 | }; | 610 | }; |
609 | 611 | ||
610 | 612 | ||
diff --git a/linden/indra/llui/llalertdialog.cpp b/linden/indra/llui/llalertdialog.cpp index 0fa3585..258b523 100644 --- a/linden/indra/llui/llalertdialog.cpp +++ b/linden/indra/llui/llalertdialog.cpp | |||
@@ -56,6 +56,8 @@ const S32 MSG_PAD = 8; | |||
56 | /*static*/ LLControlGroup* LLAlertDialog::sSettings = NULL; | 56 | /*static*/ LLControlGroup* LLAlertDialog::sSettings = NULL; |
57 | /*static*/ std::map<LLString,LLAlertDialog*> LLAlertDialog::sUniqueActiveMap; | 57 | /*static*/ std::map<LLString,LLAlertDialog*> LLAlertDialog::sUniqueActiveMap; |
58 | /*static*/ LLAlertDialog::display_callback_t LLAlertDialog::sDisplayCallback; | 58 | /*static*/ LLAlertDialog::display_callback_t LLAlertDialog::sDisplayCallback; |
59 | /*static*/ LLString LLAlertDialog::sStringSkipNextTime("Skip this dialog next time"); | ||
60 | /*static*/ LLString LLAlertDialog::sStringAlwaysChoose("Always choose this option"); | ||
59 | 61 | ||
60 | //static | 62 | //static |
61 | LLAlertDialog* LLAlertDialog::createXml( const LLString& xml_desc, | 63 | LLAlertDialog* LLAlertDialog::createXml( const LLString& xml_desc, |
@@ -153,17 +155,14 @@ LLAlertDialog::LLAlertDialog( const LLAlertDialogTemplate* xml_template, | |||
153 | setTitle(xml_template->mTitle); | 155 | setTitle(xml_template->mTitle); |
154 | if (xml_template->mIgnorable) | 156 | if (xml_template->mIgnorable) |
155 | { | 157 | { |
156 | //XUI:translate! | ||
157 | LLString msg; | ||
158 | if (xml_template->mIgnorable == IGNORE_USE_DEFAULT) | 158 | if (xml_template->mIgnorable == IGNORE_USE_DEFAULT) |
159 | { | 159 | { |
160 | msg = "Skip this dialog next time"; | 160 | setCheckBox(sStringSkipNextTime, xml_template->mIgnoreLabel); |
161 | } | 161 | } |
162 | else // xml_template->mIgnorable == IGNORE_USE_SAVED | 162 | else // xml_template->mIgnorable == IGNORE_USE_SAVED |
163 | { | 163 | { |
164 | msg = "Always choose this option"; | 164 | setCheckBox(sStringAlwaysChoose, xml_template->mIgnoreLabel); |
165 | } | 165 | } |
166 | setCheckBox(msg, xml_template->mIgnoreLabel); | ||
167 | } | 166 | } |
168 | } | 167 | } |
169 | 168 | ||
@@ -618,6 +617,23 @@ bool LLAlertDialog::parseAlerts(const LLString& xml_filename, LLControlGroup* se | |||
618 | for (LLXMLNode* alert = root->getFirstChild(); | 617 | for (LLXMLNode* alert = root->getFirstChild(); |
619 | alert != NULL; alert = alert->getNextSibling()) | 618 | alert != NULL; alert = alert->getNextSibling()) |
620 | { | 619 | { |
620 | if (alert->hasName("global")) | ||
621 | { | ||
622 | LLString global_name; | ||
623 | if (alert->getAttributeString("name", global_name)) | ||
624 | { | ||
625 | if (global_name == "skipnexttime") | ||
626 | { | ||
627 | sStringSkipNextTime = alert->getTextContents(); | ||
628 | } | ||
629 | else if (global_name == "alwayschoose") | ||
630 | { | ||
631 | sStringAlwaysChoose = alert->getTextContents(); | ||
632 | } | ||
633 | } | ||
634 | continue; | ||
635 | } | ||
636 | |||
621 | if (!alert->hasName("alert")) | 637 | if (!alert->hasName("alert")) |
622 | { | 638 | { |
623 | continue; | 639 | continue; |
diff --git a/linden/indra/llui/llalertdialog.h b/linden/indra/llui/llalertdialog.h index acd0b7f..ddf4112 100644 --- a/linden/indra/llui/llalertdialog.h +++ b/linden/indra/llui/llalertdialog.h | |||
@@ -135,6 +135,9 @@ public: | |||
135 | static LLControlGroup* sSettings; | 135 | static LLControlGroup* sSettings; |
136 | static std::map<LLString, LLAlertDialog*> sUniqueActiveMap; | 136 | static std::map<LLString, LLAlertDialog*> sUniqueActiveMap; |
137 | static display_callback_t sDisplayCallback; | 137 | static display_callback_t sDisplayCallback; |
138 | |||
139 | static LLString sStringSkipNextTime; | ||
140 | static LLString sStringAlwaysChoose; | ||
138 | }; | 141 | }; |
139 | 142 | ||
140 | //============================================================================ | 143 | //============================================================================ |
diff --git a/linden/indra/llui/llbutton.cpp b/linden/indra/llui/llbutton.cpp index 65cbcf3..36ccc32 100644 --- a/linden/indra/llui/llbutton.cpp +++ b/linden/indra/llui/llbutton.cpp | |||
@@ -1037,7 +1037,7 @@ void clicked_help(void* data) | |||
1037 | return; | 1037 | return; |
1038 | } | 1038 | } |
1039 | 1039 | ||
1040 | LLUI::sHtmlHelp->show(self->getHelpURL()); | 1040 | LLUI::sHtmlHelp->show(self->getHelpURL(), ""); |
1041 | } | 1041 | } |
1042 | 1042 | ||
1043 | // static | 1043 | // static |
diff --git a/linden/indra/llui/llcallbackmap.h b/linden/indra/llui/llcallbackmap.h index 0efda5d..496d722 100644 --- a/linden/indra/llui/llcallbackmap.h +++ b/linden/indra/llui/llcallbackmap.h | |||
@@ -29,10 +29,6 @@ | |||
29 | * $/LicenseInfo$ | 29 | * $/LicenseInfo$ |
30 | */ | 30 | */ |
31 | 31 | ||
32 | // llcallbackmap.h | ||
33 | // | ||
34 | // Copyright 2006, Linden Research, Inc. | ||
35 | |||
36 | #ifndef LL_CALLBACK_MAP_H | 32 | #ifndef LL_CALLBACK_MAP_H |
37 | #define LL_CALLBACK_MAP_H | 33 | #define LL_CALLBACK_MAP_H |
38 | 34 | ||
diff --git a/linden/indra/llui/llhtmlhelp.h b/linden/indra/llui/llhtmlhelp.h index 816d0dd..9658f8f 100644 --- a/linden/indra/llui/llhtmlhelp.h +++ b/linden/indra/llui/llhtmlhelp.h | |||
@@ -36,7 +36,7 @@ class LLHtmlHelp | |||
36 | { | 36 | { |
37 | public: | 37 | public: |
38 | virtual ~LLHtmlHelp() {} | 38 | virtual ~LLHtmlHelp() {} |
39 | virtual void show(std::string start_url = "")=0; | 39 | virtual void show(std::string start_url, std::string title) = 0; |
40 | virtual BOOL getFloaterOpened()=0; | 40 | virtual BOOL getFloaterOpened()=0; |
41 | }; | 41 | }; |
42 | 42 | ||
diff --git a/linden/indra/llui/lllineeditor.cpp b/linden/indra/llui/lllineeditor.cpp index 9671065..78fe29c 100644 --- a/linden/indra/llui/lllineeditor.cpp +++ b/linden/indra/llui/lllineeditor.cpp | |||
@@ -1642,6 +1642,9 @@ void LLLineEditor::draw() | |||
1642 | { | 1642 | { |
1643 | mLastIMEPosition.mX = ime_pos.mX; | 1643 | mLastIMEPosition.mX = ime_pos.mX; |
1644 | mLastIMEPosition.mY = ime_pos.mY; | 1644 | mLastIMEPosition.mY = ime_pos.mY; |
1645 | |||
1646 | ime_pos.mX = (S32) (ime_pos.mX * LLUI::sGLScaleFactor.mV[VX]); | ||
1647 | ime_pos.mY = (S32) (ime_pos.mY * LLUI::sGLScaleFactor.mV[VY]); | ||
1645 | getWindow()->setLanguageTextInput( ime_pos ); | 1648 | getWindow()->setLanguageTextInput( ime_pos ); |
1646 | } | 1649 | } |
1647 | } | 1650 | } |
@@ -2219,6 +2222,11 @@ LLView* LLLineEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory | |||
2219 | { | 2222 | { |
2220 | line_editor->setHandleEditKeysDirectly(handle_edit_keys_directly); | 2223 | line_editor->setHandleEditKeysDirectly(handle_edit_keys_directly); |
2221 | } | 2224 | } |
2225 | BOOL commit_on_focus_lost = TRUE; | ||
2226 | if (node->getAttributeBOOL("commit_on_focus_lost", commit_on_focus_lost)) | ||
2227 | { | ||
2228 | line_editor->setCommitOnFocusLost(commit_on_focus_lost); | ||
2229 | } | ||
2222 | 2230 | ||
2223 | line_editor->setColorParameters(node); | 2231 | line_editor->setColorParameters(node); |
2224 | 2232 | ||
diff --git a/linden/indra/llui/llmenugl.cpp b/linden/indra/llui/llmenugl.cpp index 5d2a052..8ec5656 100644 --- a/linden/indra/llui/llmenugl.cpp +++ b/linden/indra/llui/llmenugl.cpp | |||
@@ -2495,6 +2495,9 @@ void LLMenuGL::cleanupSpilloverBranch() | |||
2495 | mItems.erase(found_iter); | 2495 | mItems.erase(found_iter); |
2496 | } | 2496 | } |
2497 | 2497 | ||
2498 | delete mSpilloverBranch; | ||
2499 | mSpilloverBranch = NULL; | ||
2500 | |||
2498 | // pop off spillover items | 2501 | // pop off spillover items |
2499 | while (mSpilloverMenu->getItemCount()) | 2502 | while (mSpilloverMenu->getItemCount()) |
2500 | { | 2503 | { |
@@ -2607,6 +2610,8 @@ void LLMenuGL::createJumpKeys() | |||
2607 | // remove all items on the menu | 2610 | // remove all items on the menu |
2608 | void LLMenuGL::empty( void ) | 2611 | void LLMenuGL::empty( void ) |
2609 | { | 2612 | { |
2613 | cleanupSpilloverBranch(); | ||
2614 | |||
2610 | mItems.clear(); | 2615 | mItems.clear(); |
2611 | 2616 | ||
2612 | deleteAllChildren(); | 2617 | deleteAllChildren(); |
@@ -4245,11 +4250,14 @@ void LLMenuBarGL::arrange( void ) | |||
4245 | for (item_iter = mItems.begin(); item_iter != mItems.end(); ++item_iter) | 4250 | for (item_iter = mItems.begin(); item_iter != mItems.end(); ++item_iter) |
4246 | { | 4251 | { |
4247 | LLMenuItemGL* item = *item_iter; | 4252 | LLMenuItemGL* item = *item_iter; |
4248 | rect.mLeft = pos; | 4253 | if (item->getVisible()) |
4249 | pos += item->getNominalWidth(); | 4254 | { |
4250 | rect.mRight = pos; | 4255 | rect.mLeft = pos; |
4251 | item->setRect( rect ); | 4256 | pos += item->getNominalWidth(); |
4252 | item->buildDrawLabel(); | 4257 | rect.mRight = pos; |
4258 | item->setRect( rect ); | ||
4259 | item->buildDrawLabel(); | ||
4260 | } | ||
4253 | } | 4261 | } |
4254 | reshape(rect.mRight, rect.getHeight()); | 4262 | reshape(rect.mRight, rect.getHeight()); |
4255 | } | 4263 | } |
diff --git a/linden/indra/llui/llmenugl.h b/linden/indra/llui/llmenugl.h index 6dc9282..ce33f8a 100644 --- a/linden/indra/llui/llmenugl.h +++ b/linden/indra/llui/llmenugl.h | |||
@@ -238,11 +238,6 @@ protected: | |||
238 | on_disabled_callback mOnDisabledCallback; | 238 | on_disabled_callback mOnDisabledCallback; |
239 | 239 | ||
240 | public: | 240 | public: |
241 | |||
242 | |||
243 | void setMenuCallback(menu_callback callback, void* data) { mCallback = callback; mUserData = data; }; | ||
244 | void setEnabledCallback(enabled_callback callback) { mEnabledCallback = callback; }; | ||
245 | |||
246 | // normal constructor | 241 | // normal constructor |
247 | LLMenuItemCallGL( const LLString& name, | 242 | LLMenuItemCallGL( const LLString& name, |
248 | menu_callback clicked_cb, | 243 | menu_callback clicked_cb, |
@@ -288,7 +283,13 @@ public: | |||
288 | void setEnabledControl(LLString enabled_control, LLView *context); | 283 | void setEnabledControl(LLString enabled_control, LLView *context); |
289 | void setVisibleControl(LLString enabled_control, LLView *context); | 284 | void setVisibleControl(LLString enabled_control, LLView *context); |
290 | 285 | ||
291 | virtual void setUserData(void *userdata) { mUserData = userdata; } | 286 | void setMenuCallback(menu_callback callback, void* data) { mCallback = callback; mUserData = data; }; |
287 | menu_callback getMenuCallback() const { return mCallback; } | ||
288 | |||
289 | void setEnabledCallback(enabled_callback callback) { mEnabledCallback = callback; }; | ||
290 | |||
291 | void setUserData(void *userdata) { mUserData = userdata; } | ||
292 | void* getUserData() const { return mUserData; } | ||
292 | 293 | ||
293 | // called to rebuild the draw label | 294 | // called to rebuild the draw label |
294 | virtual void buildDrawLabel( void ); | 295 | virtual void buildDrawLabel( void ); |
diff --git a/linden/indra/llui/llresmgr.cpp b/linden/indra/llui/llresmgr.cpp index e77faa9..0e1b9bf 100644 --- a/linden/indra/llui/llresmgr.cpp +++ b/linden/indra/llui/llresmgr.cpp | |||
@@ -247,8 +247,10 @@ char LLResMgr::getMonetaryThousandsSeparator() const | |||
247 | 247 | ||
248 | 248 | ||
249 | // Sets output to a string of integers with monetary separators inserted according to the locale. | 249 | // Sets output to a string of integers with monetary separators inserted according to the locale. |
250 | void LLResMgr::getMonetaryString( LLString& output, S32 input ) const | 250 | std::string LLResMgr::getMonetaryString( S32 input ) const |
251 | { | 251 | { |
252 | std::string output; | ||
253 | |||
252 | LLLocale locale(LLLocale::USER_LOCALE); | 254 | LLLocale locale(LLLocale::USER_LOCALE); |
253 | struct lconv *conv = localeconv(); | 255 | struct lconv *conv = localeconv(); |
254 | 256 | ||
@@ -295,7 +297,6 @@ void LLResMgr::getMonetaryString( LLString& output, S32 input ) const | |||
295 | LLString digits = llformat("%u", abs(input)); | 297 | LLString digits = llformat("%u", abs(input)); |
296 | if( !grouping || !grouping[0] ) | 298 | if( !grouping || !grouping[0] ) |
297 | { | 299 | { |
298 | output.assign("L$"); | ||
299 | if( negative_before ) | 300 | if( negative_before ) |
300 | { | 301 | { |
301 | output.append( negative_sign ); | 302 | output.append( negative_sign ); |
@@ -305,7 +306,7 @@ void LLResMgr::getMonetaryString( LLString& output, S32 input ) const | |||
305 | { | 306 | { |
306 | output.append( negative_sign ); | 307 | output.append( negative_sign ); |
307 | } | 308 | } |
308 | return; | 309 | return output; |
309 | } | 310 | } |
310 | 311 | ||
311 | S32 groupings[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; | 312 | S32 groupings[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; |
@@ -367,7 +368,6 @@ void LLResMgr::getMonetaryString( LLString& output, S32 input ) const | |||
367 | forward_output[ output_pos - 1 - i ] = reversed_output[ i ]; | 368 | forward_output[ output_pos - 1 - i ] = reversed_output[ i ]; |
368 | } | 369 | } |
369 | 370 | ||
370 | output.assign("L$"); | ||
371 | if( negative_before ) | 371 | if( negative_before ) |
372 | { | 372 | { |
373 | output.append( negative_sign ); | 373 | output.append( negative_sign ); |
@@ -377,6 +377,7 @@ void LLResMgr::getMonetaryString( LLString& output, S32 input ) const | |||
377 | { | 377 | { |
378 | output.append( negative_sign ); | 378 | output.append( negative_sign ); |
379 | } | 379 | } |
380 | return output; | ||
380 | } | 381 | } |
381 | 382 | ||
382 | void LLResMgr::getIntegerString( LLString& output, S32 input ) const | 383 | void LLResMgr::getIntegerString( LLString& output, S32 input ) const |
diff --git a/linden/indra/llui/llresmgr.h b/linden/indra/llui/llresmgr.h index d9e58bc..be2a355 100644 --- a/linden/indra/llui/llresmgr.h +++ b/linden/indra/llui/llresmgr.h | |||
@@ -132,7 +132,7 @@ public: | |||
132 | 132 | ||
133 | char getMonetaryDecimalPoint() const; | 133 | char getMonetaryDecimalPoint() const; |
134 | char getMonetaryThousandsSeparator() const; | 134 | char getMonetaryThousandsSeparator() const; |
135 | void getMonetaryString( LLString& output, S32 input ) const; | 135 | std::string getMonetaryString( S32 input ) const; |
136 | void getIntegerString( LLString& output, S32 input ) const; | 136 | void getIntegerString( LLString& output, S32 input ) const; |
137 | 137 | ||
138 | // const char* getRes( LLSTR_ID string_id ) const { return mStrings[ string_id ]; } | 138 | // const char* getRes( LLSTR_ID string_id ) const { return mStrings[ string_id ]; } |
diff --git a/linden/indra/llui/lltexteditor.cpp b/linden/indra/llui/lltexteditor.cpp index 12ad339..1f13bbb 100644 --- a/linden/indra/llui/lltexteditor.cpp +++ b/linden/indra/llui/lltexteditor.cpp | |||
@@ -967,17 +967,6 @@ void LLTextEditor::endSelection() | |||
967 | mIsSelecting = FALSE; | 967 | mIsSelecting = FALSE; |
968 | mSelectionEnd = mCursorPos; | 968 | mSelectionEnd = mCursorPos; |
969 | } | 969 | } |
970 | if (mParseHTML && mHTML.length() > 0) | ||
971 | { | ||
972 | //Special handling for slurls | ||
973 | if ( (mSecondlifeURLcallback!=NULL) && !(*mSecondlifeURLcallback)(mHTML) ) | ||
974 | { | ||
975 | if (mURLcallback!=NULL) (*mURLcallback)(mHTML.c_str()); | ||
976 | |||
977 | //load_url(url.c_str()); | ||
978 | } | ||
979 | mHTML=""; | ||
980 | } | ||
981 | } | 970 | } |
982 | 971 | ||
983 | BOOL LLTextEditor::selectionContainsLineBreaks() | 972 | BOOL LLTextEditor::selectionContainsLineBreaks() |
@@ -1408,6 +1397,7 @@ BOOL LLTextEditor::handleMouseUp(S32 x, S32 y, MASK mask) | |||
1408 | if( hasMouseCapture() ) | 1397 | if( hasMouseCapture() ) |
1409 | { | 1398 | { |
1410 | gFocusMgr.setMouseCapture( NULL ); | 1399 | gFocusMgr.setMouseCapture( NULL ); |
1400 | |||
1411 | handled = TRUE; | 1401 | handled = TRUE; |
1412 | } | 1402 | } |
1413 | 1403 | ||
@@ -2831,7 +2821,10 @@ void LLTextEditor::drawCursor() | |||
2831 | { | 2821 | { |
2832 | mLastIMEPosition.mX = ime_pos.mX; | 2822 | mLastIMEPosition.mX = ime_pos.mX; |
2833 | mLastIMEPosition.mY = ime_pos.mY; | 2823 | mLastIMEPosition.mY = ime_pos.mY; |
2834 | getWindow()->setLanguageTextInput( ime_pos ); | 2824 | |
2825 | ime_pos.mX = (S32) (ime_pos.mX * LLUI::sGLScaleFactor.mV[VX]); | ||
2826 | ime_pos.mY = (S32) (ime_pos.mY * LLUI::sGLScaleFactor.mV[VY]); | ||
2827 | getWindow()->setLanguageTextInput( ime_pos ); | ||
2835 | } | 2828 | } |
2836 | } | 2829 | } |
2837 | } | 2830 | } |
@@ -3814,6 +3807,22 @@ void LLTextEditor::findEmbeddedItemSegments() | |||
3814 | 3807 | ||
3815 | BOOL LLTextEditor::handleMouseUpOverSegment(S32 x, S32 y, MASK mask) | 3808 | BOOL LLTextEditor::handleMouseUpOverSegment(S32 x, S32 y, MASK mask) |
3816 | { | 3809 | { |
3810 | if ( hasMouseCapture() ) | ||
3811 | { | ||
3812 | // This mouse up was part of a click. | ||
3813 | // Regardless of where the cursor is, see if we recently touched a link | ||
3814 | // and launch it if we did. | ||
3815 | if (mParseHTML && mHTML.length() > 0) | ||
3816 | { | ||
3817 | //Special handling for slurls | ||
3818 | if ( (mSecondlifeURLcallback!=NULL) && !(*mSecondlifeURLcallback)(mHTML) ) | ||
3819 | { | ||
3820 | if (mURLcallback!=NULL) (*mURLcallback)(mHTML.c_str()); | ||
3821 | } | ||
3822 | mHTML=""; | ||
3823 | } | ||
3824 | } | ||
3825 | |||
3817 | return FALSE; | 3826 | return FALSE; |
3818 | } | 3827 | } |
3819 | 3828 | ||
@@ -4245,6 +4254,12 @@ BOOL LLTextEditor::findHTML(const LLString &line, S32 *begin, S32 *end) | |||
4245 | strpos = url.find(slurlID); | 4254 | strpos = url.find(slurlID); |
4246 | } | 4255 | } |
4247 | 4256 | ||
4257 | if (strpos < 0) | ||
4258 | { | ||
4259 | slurlID="sl://"; | ||
4260 | strpos = url.find(slurlID); | ||
4261 | } | ||
4262 | |||
4248 | if (strpos >= 0) | 4263 | if (strpos >= 0) |
4249 | { | 4264 | { |
4250 | strpos+=slurlID.length(); | 4265 | strpos+=slurlID.length(); |
diff --git a/linden/indra/llui/llui.h b/linden/indra/llui/llui.h index b806f7a..b78b046 100644 --- a/linden/indra/llui/llui.h +++ b/linden/indra/llui/llui.h | |||
@@ -222,6 +222,7 @@ typedef enum e_widget_type | |||
222 | WIDGET_TYPE_PAD, // used in XML for positioning, not a real widget | 222 | WIDGET_TYPE_PAD, // used in XML for positioning, not a real widget |
223 | WIDGET_TYPE_RADIO_GROUP, | 223 | WIDGET_TYPE_RADIO_GROUP, |
224 | WIDGET_TYPE_ICON, | 224 | WIDGET_TYPE_ICON, |
225 | WIDGET_TYPE_LANDMARK_PICKER, | ||
225 | WIDGET_TYPE_LOCATE, // used in XML for positioning, not a real widget | 226 | WIDGET_TYPE_LOCATE, // used in XML for positioning, not a real widget |
226 | WIDGET_TYPE_VIEW_BORDER, // decorative border | 227 | WIDGET_TYPE_VIEW_BORDER, // decorative border |
227 | WIDGET_TYPE_PANEL, | 228 | WIDGET_TYPE_PANEL, |
diff --git a/linden/indra/llui/lluixmltags.h b/linden/indra/llui/lluixmltags.h index 305223d..93e9fe0 100644 --- a/linden/indra/llui/lluixmltags.h +++ b/linden/indra/llui/lluixmltags.h | |||
@@ -116,8 +116,8 @@ | |||
116 | #define LL_FOLDER_VIEW_ITEM_TAG LLString("folder_item") | 116 | #define LL_FOLDER_VIEW_ITEM_TAG LLString("folder_item") |
117 | #define LL_FOLDER_VIEW_FOLDER_TAG LLString("folder") | 117 | #define LL_FOLDER_VIEW_FOLDER_TAG LLString("folder") |
118 | #define LL_TEXTURE_BAR_TAG LLString("texture_bar") | 118 | #define LL_TEXTURE_BAR_TAG LLString("texture_bar") |
119 | #define LL_JOYSTICK_SLIDE "joystick_slide" | 119 | #define LL_JOYSTICK_SLIDE LLString("joystick_slide") |
120 | #define LL_JOYSTICK_TURN "joystick_turn" | 120 | #define LL_JOYSTICK_TURN LLString("joystick_turn") |
121 | #define LL_GROUP_DROP_TARGET_TAG LLString("group_drop_target") | 121 | #define LL_GROUP_DROP_TARGET_TAG LLString("group_drop_target") |
122 | #define LL_LAYOUT_STACK_TAG LLString("layout_stack") | 122 | #define LL_LAYOUT_STACK_TAG LLString("layout_stack") |
123 | #endif | 123 | #endif |
diff --git a/linden/indra/llvfs/lldir_win32.cpp b/linden/indra/llvfs/lldir_win32.cpp index f3edbc3..b5db6ef 100644 --- a/linden/indra/llvfs/lldir_win32.cpp +++ b/linden/indra/llvfs/lldir_win32.cpp | |||
@@ -39,6 +39,7 @@ | |||
39 | #include "shlobj.h" | 39 | #include "shlobj.h" |
40 | 40 | ||
41 | #include <direct.h> | 41 | #include <direct.h> |
42 | #include <errno.h> | ||
42 | #include <sys/types.h> | 43 | #include <sys/types.h> |
43 | #include <sys/stat.h> | 44 | #include <sys/stat.h> |
44 | #include <errno.h> | 45 | #include <errno.h> |
diff --git a/linden/indra/llwindow/lllogitechlcd.cpp b/linden/indra/llwindow/lllogitechlcd.cpp new file mode 100644 index 0000000..8141ba3 --- /dev/null +++ b/linden/indra/llwindow/lllogitechlcd.cpp | |||
@@ -0,0 +1,296 @@ | |||
1 | /** | ||
2 | * @file lcd.cpp | ||
3 | * @brief cLcd panel class | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2001-2007, Linden Research, Inc. | ||
8 | * | ||
9 | * Second Life Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
11 | * to you under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
15 | * online at http://secondlife.com/developers/opensource/gplv2 | ||
16 | * | ||
17 | * There are special exceptions to the terms and conditions of the GPL as | ||
18 | * it is applied to this Source Code. View the full text of the exception | ||
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
20 | * online at http://secondlife.com/developers/opensource/flossexception | ||
21 | * | ||
22 | * By copying, modifying or distributing this software, you acknowledge | ||
23 | * that you have read and understood your obligations described above, | ||
24 | * and agree to abide by those obligations. | ||
25 | * | ||
26 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
27 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
28 | * COMPLETENESS OR PERFORMANCE. | ||
29 | * $/LicenseInfo$ | ||
30 | */ | ||
31 | |||
32 | #include "llpreprocessor.h" | ||
33 | |||
34 | #if LL_LCD_COMPILE | ||
35 | |||
36 | #include "linden_common.h" | ||
37 | #include "../win_crash_logger/StdAfx.h" | ||
38 | |||
39 | #include "EZ_LCD.h" | ||
40 | #include "../newview/res/resource.h" | ||
41 | #include "llcontrol.h" | ||
42 | extern LLControlGroup gSavedSettings; | ||
43 | |||
44 | #ifndef LL_LOGITECH_LCD_H | ||
45 | #include "lllogitechlcd.h" | ||
46 | #endif | ||
47 | |||
48 | #define WAIT_DURATION 7 | ||
49 | #define DEBOUNCE_DURATION 0.3f | ||
50 | |||
51 | llLCDPageGroup::llLCDPageGroup(CEzLcd *LCD, int type, HICON SLIcon): | ||
52 | mType(type), | ||
53 | mSLIcon(SLIcon), | ||
54 | mDisplayPage(false), | ||
55 | mLCD(LCD) | ||
56 | { | ||
57 | mPageArray.clear(); | ||
58 | } | ||
59 | |||
60 | llLCDPageGroup::~llLCDPageGroup() | ||
61 | { | ||
62 | mPageArray.clear(); | ||
63 | } | ||
64 | |||
65 | void llDefaultPageGroup::UpdateDetails() | ||
66 | { | ||
67 | mLCD->ModifyControlsOnPage(mPageArray[0].mPageIndex); | ||
68 | } | ||
69 | |||
70 | void llDefaultPageGroup::GetDisplayable() | ||
71 | { | ||
72 | |||
73 | } | ||
74 | |||
75 | llDefaultPageGroup::llDefaultPageGroup(CEzLcd *LCD, int type, HICON SLIcon) | ||
76 | :llLCDPageGroup(LCD, type, SLIcon) | ||
77 | { | ||
78 | // create a new specific page | ||
79 | llLCDSpecificPage newPage; | ||
80 | newPage.mPageIndex = mLCD->AddNewPage() - 1; | ||
81 | mLCD->ModifyControlsOnPage(newPage.mPageIndex); | ||
82 | |||
83 | // add in all the display parts for this specific page | ||
84 | |||
85 | // add in the icon - all pages have this - we don't need to track this because we never update it | ||
86 | HANDLE m_rightIcon = mLCD->AddIcon(mSLIcon, 32, 32); | ||
87 | mLCD->SetOrigin(m_rightIcon, 0, 0); | ||
88 | |||
89 | // add Title | ||
90 | HANDLE title = mLCD->AddText(LG_STATIC_TEXT, LG_MEDIUM, DT_CENTER, 128); | ||
91 | mLCD->SetOrigin(title, 32, 20); | ||
92 | mLCD->SetText(title, _T("Second Life Display")); | ||
93 | newPage.mDisplayItemArray.push_back(title); | ||
94 | |||
95 | // and then insert it | ||
96 | mPageArray.push_back(newPage); | ||
97 | } | ||
98 | |||
99 | llLCD::llLCD(HINSTANCE instance): | ||
100 | mInited(false), | ||
101 | mDisplayTimer(), | ||
102 | mDebounceTimer(), | ||
103 | mPageToShow(-1), | ||
104 | mInstance(instance), | ||
105 | mDestinationLCD(-1), | ||
106 | mFirstTimeThru(true) | ||
107 | { | ||
108 | HRESULT res_ = S_OK; | ||
109 | |||
110 | // Create instance of EzLcd. | ||
111 | mLCD = new CEzLcd(); | ||
112 | |||
113 | // Have it initialize itself | ||
114 | res_ = mLCD->InitYourself(_T("Second Life")); | ||
115 | |||
116 | if (res_ != S_OK) | ||
117 | { | ||
118 | // Something went wrong, when connecting to the LCD Manager software. We need to get out now | ||
119 | delete mLCD; | ||
120 | return; | ||
121 | } | ||
122 | mInited = true; | ||
123 | |||
124 | // preload the Second Life Icon | ||
125 | mSLIcon = static_cast<HICON>(LoadImage(mInstance, | ||
126 | MAKEINTRESOURCE(IDI_LCD_LL_ICON), | ||
127 | IMAGE_ICON, | ||
128 | 32, | ||
129 | 32, | ||
130 | LR_MONOCHROME)); | ||
131 | |||
132 | // have to do this first so screens are added to the list and updateDisplay actually does something. | ||
133 | mLCD->Update(); | ||
134 | } | ||
135 | |||
136 | llLCD::~llLCD() | ||
137 | { | ||
138 | // remove the instance of the LCD controller | ||
139 | if (mInited == true) | ||
140 | { | ||
141 | delete mLCD; | ||
142 | |||
143 | // free up the used pages | ||
144 | int loopSize = mPageGroupArray.size(); | ||
145 | for(int i= 0; i<loopSize; i++) | ||
146 | { | ||
147 | free (mPageGroupArray[i]); | ||
148 | } | ||
149 | } | ||
150 | } | ||
151 | |||
152 | llLCDPageGroup *llLCD::GetNextPageToDisplay() | ||
153 | { | ||
154 | // find group with current page in it. | ||
155 | |||
156 | int groupSize = mPageGroupArray.size(); | ||
157 | for(int x=1; x< groupSize; x++) | ||
158 | { | ||
159 | if (mPageGroupArray[x]->mDisplayPage) | ||
160 | { | ||
161 | // now walk all the pages in the page group we are looking at | ||
162 | int numPages = mPageGroupArray[x]->mPageArray.size(); | ||
163 | for (int zx = 0; zx< numPages; zx++) | ||
164 | { | ||
165 | // found it. | ||
166 | if (mPageToShow == mPageGroupArray[x]->mPageArray[zx].mPageIndex) | ||
167 | { | ||
168 | // move to the next one | ||
169 | if (zx < numPages-1) | ||
170 | { | ||
171 | mPageToShow = mPageGroupArray[x]->mPageArray[zx+1].mPageIndex; | ||
172 | return mPageGroupArray[x]; | ||
173 | } | ||
174 | else | ||
175 | { | ||
176 | for(int y=x+1; y< groupSize; y++) | ||
177 | { | ||
178 | if (mPageGroupArray[y]->mDisplayPage) | ||
179 | { | ||
180 | mPageToShow = mPageGroupArray[y]->mPageArray[0].mPageIndex; | ||
181 | return mPageGroupArray[y]; | ||
182 | } | ||
183 | } | ||
184 | } | ||
185 | } | ||
186 | } | ||
187 | } | ||
188 | } | ||
189 | |||
190 | // ok, didn't find it. Start again at the beginning and find the first group that's enabled | ||
191 | for(int x=1; x< groupSize; x++) | ||
192 | { | ||
193 | if (mPageGroupArray[x]->mDisplayPage) | ||
194 | { | ||
195 | mPageToShow = mPageGroupArray[x]->mPageArray[0].mPageIndex; | ||
196 | return mPageGroupArray[x]; | ||
197 | } | ||
198 | } | ||
199 | // if we got this far, we should display the default screen | ||
200 | mPageToShow = mPageGroupArray[0]->mPageArray[0].mPageIndex; | ||
201 | return mPageGroupArray[0]; | ||
202 | } | ||
203 | |||
204 | void llLCD::SetUpDisplayPages() | ||
205 | { | ||
206 | // work out if destination has changed | ||
207 | int destinationLCD = gSavedSettings.getS32("LCDDestination"); | ||
208 | switch(destinationLCD) | ||
209 | { | ||
210 | case 0: | ||
211 | destinationLCD = LGLCD_DEVICE_FAMILY_KEYBOARD_G15; | ||
212 | break; | ||
213 | case 1: | ||
214 | destinationLCD = LGLCD_DEVICE_FAMILY_SPEAKERS_Z10; | ||
215 | break; | ||
216 | } | ||
217 | // set destination if it's changed | ||
218 | if (mDestinationLCD != destinationLCD) | ||
219 | { | ||
220 | mDestinationLCD = destinationLCD; | ||
221 | mLCD->SetDeviceFamilyToUse(destinationLCD); | ||
222 | } | ||
223 | int loopSize = mPageGroupArray.size(); | ||
224 | for(int i= 0; i<loopSize; i++) | ||
225 | { | ||
226 | mPageGroupArray[i]->GetDisplayable(); | ||
227 | } | ||
228 | } | ||
229 | |||
230 | void llLCD::UpdateDisplay() | ||
231 | { | ||
232 | if (mInited) | ||
233 | { | ||
234 | // reset pages if anything has changed | ||
235 | SetUpDisplayPages(); | ||
236 | if (mLCD->IsConnected()) | ||
237 | { | ||
238 | // Switching back and forth between the pages that we've created | ||
239 | if (mDisplayTimer.getElapsedTimeF32() > WAIT_DURATION || mFirstTimeThru) | ||
240 | { | ||
241 | mCurrentGroupBeingShown = GetNextPageToDisplay(); | ||
242 | mDisplayTimer.reset(); | ||
243 | mFirstTimeThru = false; | ||
244 | } | ||
245 | |||
246 | // Check if button 1 triggered | ||
247 | if ((mLCD->ButtonIsPressed(LG_BUTTON_1) | ||
248 | || mLCD->ButtonIsPressed(LG_BUTTON_2) | ||
249 | || mLCD->ButtonIsPressed(LG_BUTTON_3) | ||
250 | || mLCD->ButtonIsPressed(LG_BUTTON_4) | ||
251 | ) && mDebounceTimer.getElapsedTimeF32() > DEBOUNCE_DURATION) | ||
252 | { | ||
253 | // if so, move us on a page | ||
254 | mCurrentGroupBeingShown = GetNextPageToDisplay(); | ||
255 | mDisplayTimer.reset(); | ||
256 | mDebounceTimer.reset(); | ||
257 | } | ||
258 | |||
259 | // update that which is being show | ||
260 | mCurrentGroupBeingShown->UpdateDetails(); | ||
261 | |||
262 | // set which page is shown | ||
263 | mLCD->ShowPage(mPageToShow); | ||
264 | |||
265 | // Must run the following every loop. | ||
266 | mLCD->Update(); | ||
267 | } | ||
268 | } | ||
269 | } | ||
270 | |||
271 | |||
272 | // accessor functions | ||
273 | bool llLCD::Enabled() | ||
274 | { | ||
275 | return mInited; | ||
276 | } | ||
277 | |||
278 | BOOL llLCD::AreZ10Available() | ||
279 | { | ||
280 | if (mInited == true) | ||
281 | { | ||
282 | return mLCD->AnyDeviceOfThisFamilyPresent(LGLCD_DEVICE_FAMILY_SPEAKERS_Z10); | ||
283 | } | ||
284 | return false; | ||
285 | } | ||
286 | |||
287 | BOOL llLCD::IsG15Available() | ||
288 | { | ||
289 | if (mInited == true) | ||
290 | { | ||
291 | return mLCD->AnyDeviceOfThisFamilyPresent(LGLCD_DEVICE_FAMILY_KEYBOARD_G15); | ||
292 | } | ||
293 | return false; | ||
294 | } | ||
295 | |||
296 | #endif | ||
diff --git a/linden/indra/llwindow/lllogitechlcd.h b/linden/indra/llwindow/lllogitechlcd.h new file mode 100644 index 0000000..6804bef --- /dev/null +++ b/linden/indra/llwindow/lllogitechlcd.h | |||
@@ -0,0 +1,135 @@ | |||
1 | /** | ||
2 | * @file lcd.h | ||
3 | * @brief Description of the LCD owner class. | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2001-2007, Linden Research, Inc. | ||
8 | * | ||
9 | * Second Life Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
11 | * to you under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
15 | * online at http://secondlife.com/developers/opensource/gplv2 | ||
16 | * | ||
17 | * There are special exceptions to the terms and conditions of the GPL as | ||
18 | * it is applied to this Source Code. View the full text of the exception | ||
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
20 | * online at http://secondlife.com/developers/opensource/flossexception | ||
21 | * | ||
22 | * By copying, modifying or distributing this software, you acknowledge | ||
23 | * that you have read and understood your obligations described above, | ||
24 | * and agree to abide by those obligations. | ||
25 | * | ||
26 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
27 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
28 | * COMPLETENESS OR PERFORMANCE. | ||
29 | * $/LicenseInfo$ | ||
30 | */ | ||
31 | |||
32 | #ifndef LL_LOGITECH_LCD_H | ||
33 | #define LL_LOGITECH_LCD_H | ||
34 | |||
35 | #include <vector> | ||
36 | #include "llFrametimer.h" | ||
37 | |||
38 | class CEzLcd; | ||
39 | |||
40 | // TO Add a new display page groups, duplicate the Region or Debug or Chat class, then modify what's actually displayed (ie how many pages and whats in them) | ||
41 | // in the constructor and update display functions. | ||
42 | // Remember to add in a new enum type for the new display type, and add in functions to actually create/update or remove this page in the SetupDisplayPages function | ||
43 | // And, of course, add the new option to the Menu in llpanelLCDoption.xml, and save details (duplicate the ones for debug or region). | ||
44 | |||
45 | // this defines one pages worth of display items. | ||
46 | class llLCDSpecificPage | ||
47 | { | ||
48 | public: | ||
49 | int mPageIndex; | ||
50 | typedef std::vector<HANDLE> displayItemArray_t; | ||
51 | // array of indexes that come from the lcd display sdk for specific items being displayed on a given page | ||
52 | displayItemArray_t mDisplayItemArray; | ||
53 | }; | ||
54 | |||
55 | // this defines a group of pages - associated with a specific type of display, like Debug, Linden Account info, region etc | ||
56 | // NOTE this can have more than one page associated with it - so it has an array of cLCDSpecificPage for each page. | ||
57 | class llLCDPageGroup | ||
58 | { | ||
59 | public: | ||
60 | llLCDPageGroup(CEzLcd *LCD, int type, HICON SLIcon); | ||
61 | virtual ~llLCDPageGroup(); | ||
62 | virtual void UpdateDetails() = 0; | ||
63 | virtual void GetDisplayable() = 0; | ||
64 | int mType; | ||
65 | HANDLE mHandle; | ||
66 | typedef std::vector<llLCDSpecificPage> pageArray_t; | ||
67 | pageArray_t mPageArray; | ||
68 | BOOL mDisplayPage; | ||
69 | protected: | ||
70 | |||
71 | CEzLcd *mLCD; | ||
72 | HICON mSLIcon; | ||
73 | }; | ||
74 | |||
75 | |||
76 | // class that defines the Default page - used if nothing else is enabled | ||
77 | class llDefaultPageGroup : public llLCDPageGroup | ||
78 | { | ||
79 | public: | ||
80 | llDefaultPageGroup(CEzLcd *LCD, int type, HICON SLIcon); | ||
81 | virtual void UpdateDetails(); | ||
82 | virtual void GetDisplayable(); | ||
83 | }; | ||
84 | |||
85 | // Root class - contains pointers to actual LCD display object, and arrays of page groups to be displayed | ||
86 | class llLCD | ||
87 | { | ||
88 | public: | ||
89 | enum | ||
90 | { | ||
91 | kLCDDefault, | ||
92 | kLCDDebug, | ||
93 | kLCDChat, | ||
94 | kLCDRegion, | ||
95 | kLCDLinden, | ||
96 | kLCDIM, | ||
97 | kLCDDebugConsole, | ||
98 | kMaxLCDPageGroups | ||
99 | }; | ||
100 | llLCD(HINSTANCE instance); | ||
101 | ~llLCD(); | ||
102 | void UpdateDisplay(); | ||
103 | bool Enabled(); | ||
104 | BOOL AreZ10Available(); | ||
105 | BOOL IsG15Available(); | ||
106 | |||
107 | typedef std::vector<llLCDPageGroup *> pageGroupArray_t; | ||
108 | pageGroupArray_t mPageGroupArray; | ||
109 | HICON mSLIcon; | ||
110 | CEzLcd *mLCD; | ||
111 | private: | ||
112 | |||
113 | // member functions to display data | ||
114 | void SetUpDisplayPages(); | ||
115 | llLCDPageGroup *GetNextPageToDisplay(); | ||
116 | |||
117 | llLCDPageGroup *mCurrentGroupBeingShown; | ||
118 | |||
119 | // members | ||
120 | bool mInited; | ||
121 | |||
122 | int mPageToShow; | ||
123 | LLFrameTimer mDisplayTimer; | ||
124 | LLFrameTimer mDebounceTimer; | ||
125 | HINSTANCE mInstance; // necessary for loading some icons for the dot matrix LCD display to use | ||
126 | bool mFirstTimeThru; | ||
127 | |||
128 | |||
129 | // actual display set up variables | ||
130 | int mDestinationLCD; | ||
131 | }; | ||
132 | |||
133 | |||
134 | |||
135 | #endif \ No newline at end of file | ||
diff --git a/linden/indra/llwindow/llwindow.vcproj b/linden/indra/llwindow/llwindow.vcproj index f2f4e32..cb49783 100644 --- a/linden/indra/llwindow/llwindow.vcproj +++ b/linden/indra/llwindow/llwindow.vcproj | |||
@@ -19,7 +19,7 @@ | |||
19 | <Tool | 19 | <Tool |
20 | Name="VCCLCompilerTool" | 20 | Name="VCCLCompilerTool" |
21 | Optimization="0" | 21 | Optimization="0" |
22 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llxml;..\llvfs;..\llmessage;..\llscene;..\llimage;..\..\libraries\i686-win32\include;..\..\libraries\include\" | 22 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llxml;..\llvfs;..\llmessage;..\llscene;..\llimage;..\..\libraries\i686-win32\include;..\..\libraries\include\;..\..\libraries\include\Logitech_LCD;..\..\libraries\include\Logitech_LCD\LCDUI" |
23 | PreprocessorDefinitions="WIN32;_DEBUG;_LIB;LL_WINDOWS;LL_DEBUG" | 23 | PreprocessorDefinitions="WIN32;_DEBUG;_LIB;LL_WINDOWS;LL_DEBUG" |
24 | MinimalRebuild="TRUE" | 24 | MinimalRebuild="TRUE" |
25 | BasicRuntimeChecks="3" | 25 | BasicRuntimeChecks="3" |
@@ -63,7 +63,7 @@ | |||
63 | CharacterSet="1"> | 63 | CharacterSet="1"> |
64 | <Tool | 64 | <Tool |
65 | Name="VCCLCompilerTool" | 65 | Name="VCCLCompilerTool" |
66 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llxml;..\llvfs;..\llmessage;..\llscene;..\llimage;..\..\libraries\i686-win32\include;..\..\libraries\include\" | 66 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llxml;..\llvfs;..\llmessage;..\llscene;..\llimage;..\..\libraries\i686-win32\include;..\..\libraries\include\;..\..\libraries\include\Logitech_LCD;..\..\libraries\include\Logitech_LCD\LCDUI" |
67 | PreprocessorDefinitions="WIN32;NDEBUG;_LIB;LL_WINDOWS;LL_RELEASE" | 67 | PreprocessorDefinitions="WIN32;NDEBUG;_LIB;LL_WINDOWS;LL_RELEASE" |
68 | RuntimeLibrary="0" | 68 | RuntimeLibrary="0" |
69 | StructMemberAlignment="0" | 69 | StructMemberAlignment="0" |
@@ -106,7 +106,7 @@ | |||
106 | <Tool | 106 | <Tool |
107 | Name="VCCLCompilerTool" | 107 | Name="VCCLCompilerTool" |
108 | Optimization="0" | 108 | Optimization="0" |
109 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llxml;..\llvfs;..\llmessage;..\llscene;..\llimage;..\..\libraries\i686-win32\include;..\..\libraries\include\GLMESA;..\..\libraries\i686-win32\include;..\..\libraries\include\" | 109 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llxml;..\llvfs;..\llmessage;..\llscene;..\llimage;..\..\libraries\i686-win32\include;..\..\libraries\include\GLMESA;..\..\libraries\i686-win32\include;..\..\libraries\include\;..\..\libraries\include\Logitech_LCD;..\..\libraries\include\Logitech_LCD\LCDUI" |
110 | PreprocessorDefinitions="WIN32;_DEBUG;_LIB;LL_WINDOWS;LL_DEBUG;LL_MESA;LL_MESA_HEADLESS" | 110 | PreprocessorDefinitions="WIN32;_DEBUG;_LIB;LL_WINDOWS;LL_DEBUG;LL_MESA;LL_MESA_HEADLESS" |
111 | MinimalRebuild="TRUE" | 111 | MinimalRebuild="TRUE" |
112 | BasicRuntimeChecks="3" | 112 | BasicRuntimeChecks="3" |
@@ -151,7 +151,7 @@ | |||
151 | <Tool | 151 | <Tool |
152 | Name="VCCLCompilerTool" | 152 | Name="VCCLCompilerTool" |
153 | Optimization="0" | 153 | Optimization="0" |
154 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llxml;..\llvfs;..\llmessage;..\llscene;..\llimage;..\..\libraries\i686-win32\include;..\..\libraries\include\" | 154 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llxml;..\llvfs;..\llmessage;..\llscene;..\llimage;"..\..\libraries\i686-win32\include";..\..\libraries\include\;..\..\libraries\include\Logitech_LCD;..\..\libraries\include\Logitech_LCD\LCDUI" |
155 | PreprocessorDefinitions="WIN32;NDEBUG;_LIB;LL_WINDOWS;LL_RELEASE" | 155 | PreprocessorDefinitions="WIN32;NDEBUG;_LIB;LL_WINDOWS;LL_RELEASE" |
156 | RuntimeLibrary="0" | 156 | RuntimeLibrary="0" |
157 | StructMemberAlignment="0" | 157 | StructMemberAlignment="0" |
@@ -206,6 +206,9 @@ | |||
206 | RelativePath=".\llkeyboardwin32.cpp"> | 206 | RelativePath=".\llkeyboardwin32.cpp"> |
207 | </File> | 207 | </File> |
208 | <File | 208 | <File |
209 | RelativePath=".\lllogitechlcd.cpp"> | ||
210 | </File> | ||
211 | <File | ||
209 | RelativePath=".\llwindow.cpp"> | 212 | RelativePath=".\llwindow.cpp"> |
210 | </File> | 213 | </File> |
211 | <File | 214 | <File |
@@ -244,6 +247,9 @@ | |||
244 | RelativePath=".\llkeyboardwin32.h"> | 247 | RelativePath=".\llkeyboardwin32.h"> |
245 | </File> | 248 | </File> |
246 | <File | 249 | <File |
250 | RelativePath=".\lllogitechlcd.h"> | ||
251 | </File> | ||
252 | <File | ||
247 | RelativePath=".\llmousehandler.h"> | 253 | RelativePath=".\llmousehandler.h"> |
248 | </File> | 254 | </File> |
249 | <File | 255 | <File |
diff --git a/linden/indra/llwindow/llwindow_vc8.vcproj b/linden/indra/llwindow/llwindow_vc8.vcproj index 803f11c..019d6a9 100644 --- a/linden/indra/llwindow/llwindow_vc8.vcproj +++ b/linden/indra/llwindow/llwindow_vc8.vcproj | |||
@@ -41,7 +41,7 @@ | |||
41 | <Tool | 41 | <Tool |
42 | Name="VCCLCompilerTool" | 42 | Name="VCCLCompilerTool" |
43 | Optimization="0" | 43 | Optimization="0" |
44 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llxml;..\llvfs;..\llmessage;..\llscene;..\llimage;"..\..\libraries\i686-win32\include";..\..\libraries\include\;Logitech_LCD;Logitech_LCD\LCDUI" | 44 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llxml;..\llvfs;..\llmessage;..\llscene;..\llimage;"..\..\libraries\i686-win32\include";..\..\libraries\include\;..\..\libraries\include\Logitech_LCD;..\..\libraries\include\Logitech_LCD\LCDUI" |
45 | PreprocessorDefinitions="WIN32;_DEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_DEBUG" | 45 | PreprocessorDefinitions="WIN32;_DEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_DEBUG" |
46 | MinimalRebuild="true" | 46 | MinimalRebuild="true" |
47 | BasicRuntimeChecks="3" | 47 | BasicRuntimeChecks="3" |
@@ -108,7 +108,7 @@ | |||
108 | /> | 108 | /> |
109 | <Tool | 109 | <Tool |
110 | Name="VCCLCompilerTool" | 110 | Name="VCCLCompilerTool" |
111 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llxml;..\llvfs;..\llmessage;..\llscene;..\llimage;"..\..\libraries\i686-win32\include";..\..\libraries\include\;Logitech_LCD;Logitech_LCD\LCDUI" | 111 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llxml;..\llvfs;..\llmessage;..\llscene;..\llimage;"..\..\libraries\i686-win32\include";..\..\libraries\include\;..\..\libraries\include\Logitech_LCD;..\..\libraries\include\Logitech_LCD\LCDUI" |
112 | PreprocessorDefinitions="WIN32;NDEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE" | 112 | PreprocessorDefinitions="WIN32;NDEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE" |
113 | TreatWChar_tAsBuiltInType="false" | 113 | TreatWChar_tAsBuiltInType="false" |
114 | ForceConformanceInForLoopScope="true" | 114 | ForceConformanceInForLoopScope="true" |
@@ -171,7 +171,7 @@ | |||
171 | <Tool | 171 | <Tool |
172 | Name="VCCLCompilerTool" | 172 | Name="VCCLCompilerTool" |
173 | Optimization="0" | 173 | Optimization="0" |
174 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llxml;..\llvfs;..\llmessage;..\llscene;..\llimage;"..\..\libraries\i686-win32\include";..\..\libraries\include\GLMESA;..\..\libraries\include\;Logitech_LCD;Logitech_LCD\LCDUI" | 174 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llxml;..\llvfs;..\llmessage;..\llscene;..\llimage;"..\..\libraries\i686-win32\include";..\..\libraries\include\GLMESA;..\..\libraries\include\;..\..\libraries\include\Logitech_LCD;..\..\libraries\include\Logitech_LCD\LCDUI" |
175 | PreprocessorDefinitions="WIN32;_DEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_DEBUG;LL_MESA;LL_MESA_HEADLESS" | 175 | PreprocessorDefinitions="WIN32;_DEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_DEBUG;LL_MESA;LL_MESA_HEADLESS" |
176 | MinimalRebuild="true" | 176 | MinimalRebuild="true" |
177 | BasicRuntimeChecks="3" | 177 | BasicRuntimeChecks="3" |
@@ -239,7 +239,7 @@ | |||
239 | <Tool | 239 | <Tool |
240 | Name="VCCLCompilerTool" | 240 | Name="VCCLCompilerTool" |
241 | Optimization="0" | 241 | Optimization="0" |
242 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llxml;..\llvfs;..\llmessage;..\llscene;..\llimage;"..\..\libraries\i686-win32\include";..\..\libraries\include\;Logitech_LCD;Logitech_LCD\LCDUI" | 242 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llxml;..\llvfs;..\llmessage;..\llscene;..\llimage;"..\..\libraries\i686-win32\include";..\..\libraries\include\;..\..\libraries\include\Logitech_LCD;..\..\libraries\include\Logitech_LCD\LCDUI" |
243 | PreprocessorDefinitions="WIN32;NDEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE" | 243 | PreprocessorDefinitions="WIN32;NDEBUG;_LIB;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE" |
244 | RuntimeLibrary="0" | 244 | RuntimeLibrary="0" |
245 | StructMemberAlignment="0" | 245 | StructMemberAlignment="0" |
@@ -305,6 +305,10 @@ | |||
305 | > | 305 | > |
306 | </File> | 306 | </File> |
307 | <File | 307 | <File |
308 | RelativePath=".\lllogitechlcd.cpp" | ||
309 | > | ||
310 | </File> | ||
311 | <File | ||
308 | RelativePath=".\llwindow.cpp" | 312 | RelativePath=".\llwindow.cpp" |
309 | > | 313 | > |
310 | </File> | 314 | </File> |
@@ -355,6 +359,10 @@ | |||
355 | > | 359 | > |
356 | </File> | 360 | </File> |
357 | <File | 361 | <File |
362 | RelativePath=".\lllogitechlcd.h" | ||
363 | > | ||
364 | </File> | ||
365 | <File | ||
358 | RelativePath=".\llmousehandler.h" | 366 | RelativePath=".\llmousehandler.h" |
359 | > | 367 | > |
360 | </File> | 368 | </File> |
diff --git a/linden/indra/llwindow/llwindowwin32.cpp b/linden/indra/llwindow/llwindowwin32.cpp index bb99d4c..c84611b 100644 --- a/linden/indra/llwindow/llwindowwin32.cpp +++ b/linden/indra/llwindow/llwindowwin32.cpp | |||
@@ -89,6 +89,7 @@ void show_window_creation_error(const char* title) | |||
89 | BOOL LLWindowWin32::sIsClassRegistered = FALSE; | 89 | BOOL LLWindowWin32::sIsClassRegistered = FALSE; |
90 | 90 | ||
91 | BOOL LLWindowWin32::sLanguageTextInputAllowed = TRUE; | 91 | BOOL LLWindowWin32::sLanguageTextInputAllowed = TRUE; |
92 | BOOL LLWindowWin32::sWinIMEOpened = FALSE; | ||
92 | HKL LLWindowWin32::sWinInputLocale = 0; | 93 | HKL LLWindowWin32::sWinInputLocale = 0; |
93 | DWORD LLWindowWin32::sWinIMEConversionMode = IME_CMODE_NATIVE; | 94 | DWORD LLWindowWin32::sWinIMEConversionMode = IME_CMODE_NATIVE; |
94 | DWORD LLWindowWin32::sWinIMESentenceMode = IME_SMODE_AUTOMATIC; | 95 | DWORD LLWindowWin32::sWinIMESentenceMode = IME_SMODE_AUTOMATIC; |
@@ -3324,7 +3325,7 @@ void LLWindowWin32::focusClient() | |||
3324 | 3325 | ||
3325 | void LLWindowWin32::allowLanguageTextInput(BOOL b) | 3326 | void LLWindowWin32::allowLanguageTextInput(BOOL b) |
3326 | { | 3327 | { |
3327 | if ( !LLWinImm::isAvailable() ) | 3328 | if (b == sLanguageTextInputAllowed || !LLWinImm::isAvailable()) |
3328 | { | 3329 | { |
3329 | return; | 3330 | return; |
3330 | } | 3331 | } |
@@ -3335,14 +3336,13 @@ void LLWindowWin32::allowLanguageTextInput(BOOL b) | |||
3335 | // Allowing: Restore the previous IME status, so that the user has a feeling that the previous | 3336 | // Allowing: Restore the previous IME status, so that the user has a feeling that the previous |
3336 | // text input continues naturally. Be careful, however, the IME status is meaningful only during the user keeps | 3337 | // text input continues naturally. Be careful, however, the IME status is meaningful only during the user keeps |
3337 | // using same Input Locale (aka Keyboard Layout). | 3338 | // using same Input Locale (aka Keyboard Layout). |
3338 | HIMC himc = LLWinImm::getContext(mWindowHandle); | 3339 | if (sWinIMEOpened && GetKeyboardLayout(0) == sWinInputLocale) |
3339 | LLWinImm::setOpenStatus(himc, TRUE); | ||
3340 | if (GetKeyboardLayout(0) == sWinInputLocale && sWinIMEConversionMode != IME_CMODE_RESERVED) | ||
3341 | { | 3340 | { |
3341 | HIMC himc = LLWinImm::getContext(mWindowHandle); | ||
3342 | LLWinImm::setOpenStatus(himc, TRUE); | ||
3342 | LLWinImm::setConversionStatus(himc, sWinIMEConversionMode, sWinIMESentenceMode); | 3343 | LLWinImm::setConversionStatus(himc, sWinIMEConversionMode, sWinIMESentenceMode); |
3343 | sWinIMEConversionMode = IME_CMODE_RESERVED; // Set saved state so we won't do this repeatedly | 3344 | LLWinImm::releaseContext(mWindowHandle, himc); |
3344 | } | 3345 | } |
3345 | LLWinImm::releaseContext(mWindowHandle, himc); | ||
3346 | } | 3346 | } |
3347 | else | 3347 | else |
3348 | { | 3348 | { |
@@ -3350,10 +3350,12 @@ void LLWindowWin32::allowLanguageTextInput(BOOL b) | |||
3350 | // However, do it after saving the current IME status. We need to restore the status when | 3350 | // However, do it after saving the current IME status. We need to restore the status when |
3351 | // allowing language text input again. | 3351 | // allowing language text input again. |
3352 | sWinInputLocale = GetKeyboardLayout(0); | 3352 | sWinInputLocale = GetKeyboardLayout(0); |
3353 | if ( LLWinImm::isIME(sWinInputLocale) ) | 3353 | sWinIMEOpened = LLWinImm::isIME(sWinInputLocale); |
3354 | if (sWinIMEOpened) | ||
3354 | { | 3355 | { |
3355 | HIMC himc = LLWinImm::getContext(mWindowHandle); | 3356 | HIMC himc = LLWinImm::getContext(mWindowHandle); |
3356 | if ( LLWinImm::getOpenStatus(himc) ) | 3357 | sWinIMEOpened = LLWinImm::getOpenStatus(himc); |
3358 | if (sWinIMEOpened) | ||
3357 | { | 3359 | { |
3358 | LLWinImm::getConversionStatus(himc, &sWinIMEConversionMode, &sWinIMESentenceMode); | 3360 | LLWinImm::getConversionStatus(himc, &sWinIMEConversionMode, &sWinIMESentenceMode); |
3359 | 3361 | ||
diff --git a/linden/indra/llwindow/llwindowwin32.h b/linden/indra/llwindow/llwindowwin32.h index 938ece9..f1e977e 100644 --- a/linden/indra/llwindow/llwindowwin32.h +++ b/linden/indra/llwindow/llwindowwin32.h | |||
@@ -184,6 +184,7 @@ protected: | |||
184 | // They are all static, since one context is shared by all LLWindowWin32 | 184 | // They are all static, since one context is shared by all LLWindowWin32 |
185 | // instances. | 185 | // instances. |
186 | static BOOL sLanguageTextInputAllowed; | 186 | static BOOL sLanguageTextInputAllowed; |
187 | static BOOL sWinIMEOpened; | ||
187 | static HKL sWinInputLocale; | 188 | static HKL sWinInputLocale; |
188 | static DWORD sWinIMEConversionMode; | 189 | static DWORD sWinIMEConversionMode; |
189 | static DWORD sWinIMESentenceMode; | 190 | static DWORD sWinIMESentenceMode; |
diff --git a/linden/indra/llxml/llcontrol.cpp b/linden/indra/llxml/llcontrol.cpp index 30c6394..11f3c13 100644 --- a/linden/indra/llxml/llcontrol.cpp +++ b/linden/indra/llxml/llcontrol.cpp | |||
@@ -536,7 +536,7 @@ void LLControlGroup::setVector3d(const LLString& name, const LLVector3d &val) | |||
536 | void LLControlGroup::setRect(const LLString& name, const LLRect &val) | 536 | void LLControlGroup::setRect(const LLString& name, const LLRect &val) |
537 | { | 537 | { |
538 | LLControlBase* control = getControl(name); | 538 | LLControlBase* control = getControl(name); |
539 | 539 | ||
540 | if (control && control->isType(TYPE_RECT)) | 540 | if (control && control->isType(TYPE_RECT)) |
541 | { | 541 | { |
542 | control->set(val.getValue()); | 542 | control->set(val.getValue()); |
diff --git a/linden/indra/llxml/llxmlnode.h b/linden/indra/llxml/llxmlnode.h index 7c22157..e2019a8 100644 --- a/linden/indra/llxml/llxmlnode.h +++ b/linden/indra/llxml/llxmlnode.h | |||
@@ -183,7 +183,8 @@ public: | |||
183 | const LLString& getValue() const { return mValue; } | 183 | const LLString& getValue() const { return mValue; } |
184 | LLString getTextContents() const; | 184 | LLString getTextContents() const; |
185 | const LLStringTableEntry* getName() const { return mName; } | 185 | const LLStringTableEntry* getName() const { return mName; } |
186 | BOOL hasName(LLString name) const { return mName == gStringTable.checkStringEntry(name); } | 186 | BOOL hasName(const char* name) const { return mName == gStringTable.checkStringEntry(name); } |
187 | BOOL hasName(LLString name) const { return mName == gStringTable.checkStringEntry(name.c_str()); } | ||
187 | const LLString& getID() const { return mID; } | 188 | const LLString& getID() const { return mID; } |
188 | 189 | ||
189 | U32 getChildCount() const; | 190 | U32 getChildCount() const; |
diff --git a/linden/indra/newview/English.lproj/InfoPlist.strings b/linden/indra/newview/English.lproj/InfoPlist.strings index 8929cb4..794fe0d 100644 --- a/linden/indra/newview/English.lproj/InfoPlist.strings +++ b/linden/indra/newview/English.lproj/InfoPlist.strings | |||
@@ -1,5 +1,5 @@ | |||
1 | /* Localized versions of Info.plist keys */ | 1 | /* Localized versions of Info.plist keys */ |
2 | 2 | ||
3 | CFBundleName = "Second Life"; | 3 | CFBundleName = "Second Life"; |
4 | CFBundleShortVersionString = "Second Life version 1.18.4.3"; | 4 | CFBundleShortVersionString = "Second Life version 1.18.5.0"; |
5 | CFBundleGetInfoString = "Second Life version 1.18.4.3, Copyright 2004-2007 Linden Research, Inc."; | 5 | CFBundleGetInfoString = "Second Life version 1.18.5.0, Copyright 2004-2007 Linden Research, Inc."; |
diff --git a/linden/indra/newview/Info-SecondLife.plist b/linden/indra/newview/Info-SecondLife.plist index 0778494..ec08e21 100644 --- a/linden/indra/newview/Info-SecondLife.plist +++ b/linden/indra/newview/Info-SecondLife.plist | |||
@@ -32,7 +32,7 @@ | |||
32 | </dict> | 32 | </dict> |
33 | </array> | 33 | </array> |
34 | <key>CFBundleVersion</key> | 34 | <key>CFBundleVersion</key> |
35 | <string>1.18.4.3</string> | 35 | <string>1.18.5.0</string> |
36 | <key>CSResourcesFileMapped</key> | 36 | <key>CSResourcesFileMapped</key> |
37 | <true/> | 37 | <true/> |
38 | </dict> | 38 | </dict> |
diff --git a/linden/indra/newview/files.lst b/linden/indra/newview/files.lst index 979ad7a..fe864a3 100644 --- a/linden/indra/newview/files.lst +++ b/linden/indra/newview/files.lst | |||
@@ -88,6 +88,7 @@ newview/llfloaterinspect.cpp | |||
88 | newview/llfloaterlagmeter.cpp | 88 | newview/llfloaterlagmeter.cpp |
89 | newview/llfloaterland.cpp | 89 | newview/llfloaterland.cpp |
90 | newview/llfloaterlandholdings.cpp | 90 | newview/llfloaterlandholdings.cpp |
91 | newview/llfloaterlandmark.cpp | ||
91 | newview/llfloatermap.cpp | 92 | newview/llfloatermap.cpp |
92 | newview/llfloatermute.cpp | 93 | newview/llfloatermute.cpp |
93 | newview/llfloaternamedesc.cpp | 94 | newview/llfloaternamedesc.cpp |
@@ -341,3 +342,9 @@ newview/moviemaker.cpp | |||
341 | newview/noise.cpp | 342 | newview/noise.cpp |
342 | newview/pipeline.cpp | 343 | newview/pipeline.cpp |
343 | newview/viewer.cpp | 344 | newview/viewer.cpp |
345 | newview/llremoteparcelrequest.cpp | ||
346 | newview/llfloaterurldisplay.cpp | ||
347 | newview/llfloaterevent.cpp | ||
348 | newview/llfloaterclassified.cpp | ||
349 | newview/llfloaterparcel.cpp | ||
350 | newview/llclassifiedstatsresponder.cpp | ||
diff --git a/linden/indra/newview/licenses-win32.txt b/linden/indra/newview/licenses-win32.txt index e87d244..3d9ef9b 100644 --- a/linden/indra/newview/licenses-win32.txt +++ b/linden/indra/newview/licenses-win32.txt | |||
@@ -1,4 +1,43 @@ | |||
1 | =========== | 1 | =========== |
2 | Logitech License | ||
3 | =========== | ||
4 | |||
5 | End-User License Agreement for Logitech LCD SDK | ||
6 | |||
7 | This End-User License Agreement for Logitech LCD SDK ( “Agreement”) is a legal agreement between you, either an individual or legal entity (“You” or “you”) and Logitech Inc. (“Logitech”) for use of the Logitech LCD software development kit, which includes computer software and related media and documentation (hereinafter “LCD SDK”). By using this LCD SDK, you are agreeing to be bound by the terms and conditions of this Agreement. If you do not agree to the terms and conditions of this Agreement, promptly return the LCD SDK and other items that are part of this product in their original package with your sales receipt to your point of purchase for a full refund, or if you have downloaded this software from a Logitech web site, then you must stop using the software and destroy any copies of the software in your possession or control. | ||
8 | |||
9 | 1 Grant of License and Restrictions. | ||
10 | This Agreement grants You the following rights provided that You comply with all terms and conditions of this Agreement. | ||
11 | (a) Logitech grants You a limited, non-exclusive, nontransferable license to install and use an unlimited number of copies of the LCD SDK on computers . All other rights are reserved to Logitech. | ||
12 | (b) You shall not reverse engineer, decompile or disassemble any portion of the LCD SDK, except and only to the extent that this limitation is expressly prohibited by applicable law. | ||
13 | (c) At your option, you may provide reasonable feedback to Logitech, including but not limited to usability, bug reports and test results, with respect to the LCD SDK. All bug reports, test results and other feedback provided to Logitech by You shall be the property of Logitech and may be used by Logitech for any purpose. | ||
14 | (d) In the event Logitech, in its sole discretion, elects to provide copies of the LCD SDK to more than one individual employed by You (if You are not a single individual), each such individual shall be entitled to exercise the rights granted in this Agreement and shall be bound by the terms and conditions herein. | ||
15 | |||
16 | 2 Updates. | ||
17 | Logitech is not obligated to provide technical support or updates to You for the LCD SDK provided to You pursuant to this Agreement. However, Logitech may, in its sole discretion, provide further pre-release versions, technical support, updates and/or supplements (“Updates”) to You, in which case such Updates shall be deemed to be included in the “LCD SDK” and shall be governed by this Agreement, unless other terms of use are provided in writing by Logitech with such Updates. | ||
18 | |||
19 | 3 Intellectual Property Rights. | ||
20 | The LCD SDK is licensed, not sold, to You for use only under the terms and conditions of this Agreement. Logitech and its suppliers retain title to the LCD SDK and all intellectual property rights therein. The LCD SDK is protected by intellectual property laws and international treaties, including U.S. copyright law and international copyright treaties. All rights not expressly granted by Logitech are reserved. | ||
21 | |||
22 | 4 Disclaimer of Warranty. | ||
23 | TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, LOGITECH AND ITS SUPPLIERS PROVIDE THE LCD SDK AND OTHER LOGITECH PRODUCTS AND SERVICES (IF ANY) AS IS AND WITHOUT WARRANTY OF ANY KIND. LOGITECH AND ITS SUPPLIERS EXPRESSLY DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD-PARTY RIGHTS WITH RESPECT TO THE LCD SDK AND ANY WARRANTIES OF NON-INTERFERENCE OR ACCURACY OF INFORMATIONAL CONTENT. NO LOGITECH DEALER, AGENT, OR EMPLOYEE IS AUTHORIZED TO MAKE ANY MODIFICATION, EXTENSION, OR ADDITION TO THIS WARRANTY. Some jurisdictions do not allow limitations on how long an implied warranty lasts, so the above limitation may not apply to you. | ||
24 | |||
25 | 5 Limitation of Liability. | ||
26 | IN NO EVENT WILL LOGITECH OR ITS SUPPLIERS BE LIABLE FOR ANY COSTS OF PROCUREMENT OF SUBSTITUTE PRODUCTS OR SERVICES, LOST PROFITS, LOSS OF INFORMATION OR DATA, OR ANY OTHER SPECIAL, INDIRECT, CONSEQUENTIAL, OR INCIDENTAL DAMAGES ARISING IN ANY WAY OUT OF THE SALE OF, USE OF, OR INABILITY TO USE THE LCD SDK OR ANY LOGITECH PRODUCT OR SERVICE, EVEN IF LOGITECH HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN NO CASE SHALL LOGITECH'S AND ITS SUPPLIERS’ TOTAL LIABILITY EXCEED THE ACTUAL MONEY PAID FOR THE LOGITECH PRODUCT OR SERVICE GIVING RISE TO THE LIABILITY. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so the above limitation or exclusion may not apply to you. The above limitations will not apply in case of personal injury where and to the extent that applicable law requires such liability. | ||
27 | |||
28 | 6 U.S. Government Rights. | ||
29 | Use, duplication, or disclosure of the software contained in the LCD SDK by the U.S. Government is subject to restrictions set forth in this Agreement and as provided in DFARS 227.7202-1(a) and 227.7202-3(a) (1995), DFARS 252.227-7013(c)(1)(ii) (OCT 1988) FAR 12.212(a) (1995), FAR 52.227-19, or FAR 52.227-14 (ALT III), as applicable. Logitech Inc. 6505 Kaiser Drive, Fremont, CA 94555. | ||
30 | |||
31 | 7 Export Law Assurances. | ||
32 | You agree and certify that neither the LCD SDK nor any other technical data received from Logitech will be exported outside the United States except as authorized and as permitted by the laws and regulations of the United States. If you have rightfully obtained the LCD SDK outside of the United States, you agree that you will not re-export the LCD SDK nor any other technical data received from Logitech, except as permitted by the laws and regulations of the United States and the laws and regulations of the jurisdiction in which you obtained the LCD SDK. | ||
33 | |||
34 | 8 Termination: | ||
35 | This Agreement is effective until terminated. Upon any violation of any of the provisions of this Agreement, rights to use the LCD SDK shall automatically terminate and the LCD SDK must be returned to Logitech or all copies of the LCD SDK destroyed. You may also terminate this Agreement at any time by destroying all copies of the LCD SDK in your possession or control. If Logitech makes a request via public announcement or press release to stop using the copies of the LCD SDK, you will comply immediately with this request. The provisions of paragraphs 3, 7, 8 and 12 will survive any termination of this Agreement. | ||
36 | |||
37 | 9 General Terms and Conditions. | ||
38 | If You are an individual signing this Agreement on behalf of a company, then You represent that You have authority to execute this Agreement on behalf of such company. This Agreement will be governed by and construed in accordance with the laws of the United States and the State of California, without regard to or application of its choice of law rules or principles. If for any reason a court of competent jurisdiction finds any provision of this Agreement, or portion thereof, to be unenforceable, that provision of the Agreement shall be enforced to the maximum extent permissible so as to affect the intent of the parties, and the remainder of this Agreement shall continue in full force and effect. This Agreement constitutes the entire agreement between You and Logitech respect to the use of the LCD SDK and supersedes all prior or contemporaneous understandings, communications or agreements, written or oral, regarding such subject matter. | ||
39 | |||
40 | =========== | ||
2 | APR License | 41 | APR License |
3 | =========== | 42 | =========== |
4 | 43 | ||
diff --git a/linden/indra/newview/llagent.cpp b/linden/indra/newview/llagent.cpp index 42fc27d..8b49d54 100644 --- a/linden/indra/newview/llagent.cpp +++ b/linden/indra/newview/llagent.cpp | |||
@@ -903,6 +903,7 @@ BOOL LLAgent::canManageEstate() const | |||
903 | { | 903 | { |
904 | return mRegionp && mRegionp->canManageEstate(); | 904 | return mRegionp && mRegionp->canManageEstate(); |
905 | } | 905 | } |
906 | |||
906 | //----------------------------------------------------------------------------- | 907 | //----------------------------------------------------------------------------- |
907 | // sendMessage() | 908 | // sendMessage() |
908 | //----------------------------------------------------------------------------- | 909 | //----------------------------------------------------------------------------- |
@@ -2934,6 +2935,7 @@ void LLAgent::endAnimationUpdateUI() | |||
2934 | // Don't let this be called more than once if the camera | 2935 | // Don't let this be called more than once if the camera |
2935 | // mode hasn't changed. --JC | 2936 | // mode hasn't changed. --JC |
2936 | mLastCameraMode = mCameraMode; | 2937 | mLastCameraMode = mCameraMode; |
2938 | |||
2937 | } | 2939 | } |
2938 | 2940 | ||
2939 | 2941 | ||
@@ -4194,15 +4196,22 @@ void LLAgent::changeCameraToCustomizeAvatar(BOOL animate) | |||
4194 | if (animate && !mAvatarObject.isNull()) | 4196 | if (animate && !mAvatarObject.isNull()) |
4195 | { | 4197 | { |
4196 | sendAnimationRequest(ANIM_AGENT_CUSTOMIZE, ANIM_REQUEST_START); | 4198 | sendAnimationRequest(ANIM_AGENT_CUSTOMIZE, ANIM_REQUEST_START); |
4199 | mAvatarObject->startMotion(ANIM_AGENT_CUSTOMIZE); | ||
4197 | LLMotion* turn_motion = mAvatarObject->findMotion(ANIM_AGENT_CUSTOMIZE); | 4200 | LLMotion* turn_motion = mAvatarObject->findMotion(ANIM_AGENT_CUSTOMIZE); |
4201 | |||
4198 | if (turn_motion) | 4202 | if (turn_motion) |
4199 | { | 4203 | { |
4200 | mAnimationDuration = turn_motion->getDuration() + CUSTOMIZE_AVATAR_CAMERA_ANIM_SLOP; | 4204 | mAnimationDuration = turn_motion->getDuration() + CUSTOMIZE_AVATAR_CAMERA_ANIM_SLOP; |
4205 | |||
4201 | } | 4206 | } |
4202 | else | 4207 | else |
4203 | { | 4208 | { |
4204 | mAnimationDuration = gSavedSettings.getF32("ZoomTime"); | 4209 | mAnimationDuration = gSavedSettings.getF32("ZoomTime"); |
4205 | } | 4210 | } |
4211 | |||
4212 | |||
4213 | |||
4214 | |||
4206 | gAgent.setFocusGlobal(LLVector3d::zero); | 4215 | gAgent.setFocusGlobal(LLVector3d::zero); |
4207 | } | 4216 | } |
4208 | else | 4217 | else |
@@ -4709,6 +4718,22 @@ U8 LLAgent::getGodLevel() const | |||
4709 | #endif | 4718 | #endif |
4710 | } | 4719 | } |
4711 | 4720 | ||
4721 | bool LLAgent::isTeen() const | ||
4722 | { | ||
4723 | return mAccess < SIM_ACCESS_MATURE; | ||
4724 | } | ||
4725 | |||
4726 | void LLAgent::setTeen(bool teen) | ||
4727 | { | ||
4728 | if (teen) | ||
4729 | { | ||
4730 | mAccess = SIM_ACCESS_PG; | ||
4731 | } | ||
4732 | else | ||
4733 | { | ||
4734 | mAccess = SIM_ACCESS_MATURE; | ||
4735 | } | ||
4736 | } | ||
4712 | 4737 | ||
4713 | void LLAgent::buildFullname(std::string& name) const | 4738 | void LLAgent::buildFullname(std::string& name) const |
4714 | { | 4739 | { |
@@ -5627,7 +5652,7 @@ void LLAgent::teleportRequest( | |||
5627 | } | 5652 | } |
5628 | 5653 | ||
5629 | // Landmark ID = LLUUID::null means teleport home | 5654 | // Landmark ID = LLUUID::null means teleport home |
5630 | void LLAgent::teleportViaLandmark(const LLUUID& landmark_id) | 5655 | void LLAgent::teleportViaLandmark(const LLUUID& landmark_asset_id) |
5631 | { | 5656 | { |
5632 | LLViewerRegion *regionp = getRegion(); | 5657 | LLViewerRegion *regionp = getRegion(); |
5633 | if(regionp && teleportCore()) | 5658 | if(regionp && teleportCore()) |
@@ -5637,7 +5662,7 @@ void LLAgent::teleportViaLandmark(const LLUUID& landmark_id) | |||
5637 | msg->nextBlockFast(_PREHASH_Info); | 5662 | msg->nextBlockFast(_PREHASH_Info); |
5638 | msg->addUUIDFast(_PREHASH_AgentID, getID()); | 5663 | msg->addUUIDFast(_PREHASH_AgentID, getID()); |
5639 | msg->addUUIDFast(_PREHASH_SessionID, getSessionID()); | 5664 | msg->addUUIDFast(_PREHASH_SessionID, getSessionID()); |
5640 | msg->addUUIDFast(_PREHASH_LandmarkID, landmark_id); | 5665 | msg->addUUIDFast(_PREHASH_LandmarkID, landmark_asset_id); |
5641 | sendReliableMessage(); | 5666 | sendReliableMessage(); |
5642 | } | 5667 | } |
5643 | } | 5668 | } |
@@ -6850,7 +6875,7 @@ void LLAgent::removeWearable( EWearableType type ) | |||
6850 | { | 6875 | { |
6851 | LLWearable* old_wearable = mWearableEntry[ type ].mWearable; | 6876 | LLWearable* old_wearable = mWearableEntry[ type ].mWearable; |
6852 | 6877 | ||
6853 | if ( (gAgent.mAccess < SIM_ACCESS_MATURE) | 6878 | if ( (gAgent.isTeen()) |
6854 | && (type == WT_UNDERSHIRT || type == WT_UNDERPANTS)) | 6879 | && (type == WT_UNDERSHIRT || type == WT_UNDERPANTS)) |
6855 | { | 6880 | { |
6856 | // Can't take off underclothing in simple UI mode or on PG accounts | 6881 | // Can't take off underclothing in simple UI mode or on PG accounts |
@@ -6985,8 +7010,8 @@ void LLAgent::setWearableOutfit( | |||
6985 | wearables_to_remove[WT_SOCKS] = remove; | 7010 | wearables_to_remove[WT_SOCKS] = remove; |
6986 | wearables_to_remove[WT_JACKET] = remove; | 7011 | wearables_to_remove[WT_JACKET] = remove; |
6987 | wearables_to_remove[WT_GLOVES] = remove; | 7012 | wearables_to_remove[WT_GLOVES] = remove; |
6988 | wearables_to_remove[WT_UNDERSHIRT] = (gAgent.mAccess >= SIM_ACCESS_MATURE) & remove; | 7013 | wearables_to_remove[WT_UNDERSHIRT] = (!gAgent.isTeen()) & remove; |
6989 | wearables_to_remove[WT_UNDERPANTS] = (gAgent.mAccess >= SIM_ACCESS_MATURE) & remove; | 7014 | wearables_to_remove[WT_UNDERPANTS] = (!gAgent.isTeen()) & remove; |
6990 | wearables_to_remove[WT_SKIRT] = remove; | 7015 | wearables_to_remove[WT_SKIRT] = remove; |
6991 | 7016 | ||
6992 | S32 count = wearables.count(); | 7017 | S32 count = wearables.count(); |
@@ -7224,7 +7249,7 @@ void LLAgent::userRemoveWearable( void* userdata ) | |||
7224 | EWearableType type = (EWearableType)(intptr_t)userdata; | 7249 | EWearableType type = (EWearableType)(intptr_t)userdata; |
7225 | 7250 | ||
7226 | if( !(type==WT_SHAPE || type==WT_SKIN || type==WT_HAIR ) ) //&& | 7251 | if( !(type==WT_SHAPE || type==WT_SKIN || type==WT_HAIR ) ) //&& |
7227 | //!((gAgent.mAccess >= SIM_ACCESS_MATURE) && ( type==WT_UNDERPANTS || type==WT_UNDERSHIRT )) ) | 7252 | //!((!gAgent.isTeen()) && ( type==WT_UNDERPANTS || type==WT_UNDERSHIRT )) ) |
7228 | { | 7253 | { |
7229 | gAgent.removeWearable( type ); | 7254 | gAgent.removeWearable( type ); |
7230 | } | 7255 | } |
diff --git a/linden/indra/newview/llagent.h b/linden/indra/newview/llagent.h index 5b6c3c0..ad0606a 100644 --- a/linden/indra/newview/llagent.h +++ b/linden/indra/newview/llagent.h | |||
@@ -239,6 +239,8 @@ public: | |||
239 | 239 | ||
240 | BOOL isGodlike() const; | 240 | BOOL isGodlike() const; |
241 | U8 getGodLevel() const; | 241 | U8 getGodLevel() const; |
242 | bool isTeen() const; | ||
243 | void setTeen(bool teen); | ||
242 | BOOL isGroupTitleHidden() const { return mHideGroupTitle; } | 244 | BOOL isGroupTitleHidden() const { return mHideGroupTitle; } |
243 | BOOL isGroupMember() const { return !mGroupID.isNull(); } // This is only used for building titles! | 245 | BOOL isGroupMember() const { return !mGroupID.isNull(); } // This is only used for building titles! |
244 | const LLUUID &getGroupID() const { return mGroupID; } | 246 | const LLUUID &getGroupID() const { return mGroupID; } |
@@ -666,8 +668,6 @@ public: | |||
666 | 668 | ||
667 | F32 mDrawDistance; | 669 | F32 mDrawDistance; |
668 | 670 | ||
669 | // Access or "maturity" level | ||
670 | U8 mAccess; // SIM_ACCESS_MATURE or SIM_ACCESS_PG | ||
671 | U64 mGroupPowers; | 671 | U64 mGroupPowers; |
672 | BOOL mHideGroupTitle; | 672 | BOOL mHideGroupTitle; |
673 | char mGroupTitle[DB_GROUP_TITLE_BUF_SIZE]; /*Flawfinder: ignore*/ // honorific, like "Sir" | 673 | char mGroupTitle[DB_GROUP_TITLE_BUF_SIZE]; /*Flawfinder: ignore*/ // honorific, like "Sir" |
@@ -703,6 +703,8 @@ public: | |||
703 | static std::map<LLString, LLString> sTeleportProgressMessages; | 703 | static std::map<LLString, LLString> sTeleportProgressMessages; |
704 | 704 | ||
705 | private: | 705 | private: |
706 | // Access or "maturity" level | ||
707 | U8 mAccess; // SIM_ACCESS_MATURE or SIM_ACCESS_PG | ||
706 | ETeleportState mTeleportState; | 708 | ETeleportState mTeleportState; |
707 | LLString mTeleportMessage; | 709 | LLString mTeleportMessage; |
708 | 710 | ||
diff --git a/linden/indra/newview/llclassifiedstatsresponder.cpp b/linden/indra/newview/llclassifiedstatsresponder.cpp new file mode 100644 index 0000000..00b1878 --- /dev/null +++ b/linden/indra/newview/llclassifiedstatsresponder.cpp | |||
@@ -0,0 +1,70 @@ | |||
1 | /** | ||
2 | * @file llparcelrequest.cpp | ||
3 | * @brief Implementation of the LLParcelRequest class. | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2006&license=internal$ | ||
6 | * | ||
7 | * Copyright (c) 2006-2007, Linden Research, Inc. | ||
8 | * | ||
9 | * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of | ||
10 | * this source code is governed by the Linden Lab Source Code Disclosure | ||
11 | * Agreement ("Agreement") previously entered between you and Linden | ||
12 | * Lab. By accessing, using, copying, modifying or distributing this | ||
13 | * software, you acknowledge that you have been informed of your | ||
14 | * obligations under the Agreement and agree to abide by those obligations. | ||
15 | * | ||
16 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
17 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
18 | * COMPLETENESS OR PERFORMANCE. | ||
19 | * $/LicenseInfo$ | ||
20 | */ | ||
21 | |||
22 | #include "llviewerprecompiledheaders.h" | ||
23 | |||
24 | #include "llagent.h" | ||
25 | #include "llclassifiedstatsresponder.h" | ||
26 | |||
27 | #include "llpanelclassified.h" | ||
28 | #include "llpanel.h" | ||
29 | #include "llhttpclient.h" | ||
30 | #include "llsdserialize.h" | ||
31 | #include "llviewerregion.h" | ||
32 | #include "llview.h" | ||
33 | #include "message.h" | ||
34 | |||
35 | LLClassifiedStatsResponder::LLClassifiedStatsResponder(LLViewHandle classified_panel_handle) | ||
36 | : mClassifiedPanelHandle(classified_panel_handle) | ||
37 | { | ||
38 | } | ||
39 | /*virtual*/ | ||
40 | void LLClassifiedStatsResponder::result(const LLSD& content) | ||
41 | { | ||
42 | LLUUID classified_id = content["classified_id"]; | ||
43 | S32 teleport = content["teleport_clicks"].asInteger(); | ||
44 | S32 map = content["map_clicks"].asInteger(); | ||
45 | S32 profile = content["profile_clicks"].asInteger(); | ||
46 | S32 search_teleport = content["search_teleport_clicks"].asInteger(); | ||
47 | S32 search_map = content["search_map_clicks"].asInteger(); | ||
48 | S32 search_profile = content["search_profile_clicks"].asInteger(); | ||
49 | |||
50 | std::string msg = llformat("Clicks: %d teleport, %d map, %d profile", | ||
51 | teleport + search_teleport, | ||
52 | map + search_map, | ||
53 | profile + search_profile); | ||
54 | |||
55 | LLPanelClassified* classified_panelp = (LLPanelClassified*)LLPanel::getPanelByHandle(mClassifiedPanelHandle); | ||
56 | |||
57 | if(classified_panelp) | ||
58 | { | ||
59 | classified_panelp->setClickThroughText(msg); | ||
60 | } | ||
61 | |||
62 | } | ||
63 | |||
64 | /*virtual*/ | ||
65 | void LLClassifiedStatsResponder::error(U32 status, const std::string& reason) | ||
66 | { | ||
67 | llinfos << "LLClassifiedStatsResponder::error(" | ||
68 | << status << ": " << reason << ")" << llendl; | ||
69 | } | ||
70 | |||
diff --git a/linden/indra/newview/llclassifiedstatsresponder.h b/linden/indra/newview/llclassifiedstatsresponder.h new file mode 100644 index 0000000..c3eddbe --- /dev/null +++ b/linden/indra/newview/llclassifiedstatsresponder.h | |||
@@ -0,0 +1,41 @@ | |||
1 | /** | ||
2 | * @file llclassifiedstatsrequest.h | ||
3 | * @brief Responder class for classified stats request. | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2006&license=internal$ | ||
6 | * | ||
7 | * Copyright (c) 2006-2007, Linden Research, Inc. | ||
8 | * | ||
9 | * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of | ||
10 | * this source code is governed by the Linden Lab Source Code Disclosure | ||
11 | * Agreement ("Agreement") previously entered between you and Linden | ||
12 | * Lab. By accessing, using, copying, modifying or distributing this | ||
13 | * software, you acknowledge that you have been informed of your | ||
14 | * obligations under the Agreement and agree to abide by those obligations. | ||
15 | * | ||
16 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
17 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
18 | * COMPLETENESS OR PERFORMANCE. | ||
19 | * $/LicenseInfo$ | ||
20 | */ | ||
21 | |||
22 | #ifndef LL_LLCLASSIFIEDSTATSRESPONDER_H | ||
23 | #define LL_LLCLASSIFIEDSTATSRESPONDER_H | ||
24 | |||
25 | #include "llhttpclient.h" | ||
26 | #include "llview.h" | ||
27 | |||
28 | class LLClassifiedStatsResponder : public LLHTTPClient::Responder | ||
29 | { | ||
30 | public: | ||
31 | LLClassifiedStatsResponder(LLViewHandle classified_panel_handle); | ||
32 | //If we get back a normal response, handle it here | ||
33 | virtual void result(const LLSD& content); | ||
34 | //If we get back an error (not found, etc...), handle it here | ||
35 | virtual void error(U32 status, const std::string& reason); | ||
36 | |||
37 | protected: | ||
38 | LLViewHandle mClassifiedPanelHandle; | ||
39 | }; | ||
40 | |||
41 | #endif // LL_LLCLASSIFIEDSTATSRESPONDER_H | ||
diff --git a/linden/indra/newview/llconsole.cpp b/linden/indra/newview/llconsole.cpp index aebecf5..51ee1f6 100644 --- a/linden/indra/newview/llconsole.cpp +++ b/linden/indra/newview/llconsole.cpp | |||
@@ -49,6 +49,9 @@ | |||
49 | #include "llstartup.h" | 49 | #include "llstartup.h" |
50 | #include "viewer.h" | 50 | #include "viewer.h" |
51 | 51 | ||
52 | // Used for LCD display | ||
53 | extern void AddNewDebugConsoleToLCD(const LLWString &newLine); | ||
54 | |||
52 | LLConsole* gConsole = NULL; // Created and destroyed in LLViewerWindow. | 55 | LLConsole* gConsole = NULL; // Created and destroyed in LLViewerWindow. |
53 | 56 | ||
54 | const F32 FADE_DURATION = 2.f; | 57 | const F32 FADE_DURATION = 2.f; |
@@ -254,6 +257,10 @@ void LLConsole::addLine(const LLWString& wline, F32 size, const LLColor4 &color) | |||
254 | mLineQueue.pop_front(); | 257 | mLineQueue.pop_front(); |
255 | } | 258 | } |
256 | mLineQueue.push_back(LineInfo(wline, size, color, mTimer.getElapsedTimeF32())); | 259 | mLineQueue.push_back(LineInfo(wline, size, color, mTimer.getElapsedTimeF32())); |
260 | #if LL_WINDOWS && LL_LCD_COMPILE | ||
261 | // add to LCD screen | ||
262 | AddNewDebugConsoleToLCD(wline); | ||
263 | #endif | ||
257 | } | 264 | } |
258 | 265 | ||
259 | void LLConsole::addQueuedLines() | 266 | void LLConsole::addQueuedLines() |
diff --git a/linden/indra/newview/llcontroldef.cpp b/linden/indra/newview/llcontroldef.cpp index 7c3e8d7..8cbe22c 100644 --- a/linden/indra/newview/llcontroldef.cpp +++ b/linden/indra/newview/llcontroldef.cpp | |||
@@ -229,7 +229,7 @@ void declare_settings() | |||
229 | // This is a fairly complete Japanese font that ships with Mac OS X. | 229 | // This is a fairly complete Japanese font that ships with Mac OS X. |
230 | // The first filename is in UTF8, but it shows up in the font menu as "Hiragino Kaku Gothic Pro W3". | 230 | // The first filename is in UTF8, but it shows up in the font menu as "Hiragino Kaku Gothic Pro W3". |
231 | // The third filename is in UTF8, but it shows up in the font menu as "STHeiti Light" | 231 | // The third filename is in UTF8, but it shows up in the font menu as "STHeiti Light" |
232 | gSavedSettings.declareString("FontSansSerifFallback", "\xE3\x83\x92\xE3\x83\xA9\xE3\x82\xAD\xE3\x82\x99\xE3\x83\x8E\xE8\xA7\x92\xE3\x82\xB3\xE3\x82\x99 Pro W3.otf;AppleGothic.dfont;\xe5\x8d\x8e\xe6\x96\x87\xe7\xbb\x86\xe9\xbb\x91.ttf", "Name of san-serif font (Truetype file name)"); | 232 | gSavedSettings.declareString("FontSansSerifFallback", "\xE3\x83\x92\xE3\x83\xA9\xE3\x82\xAD\xE3\x82\x99\xE3\x83\x8E\xE8\xA7\x92\xE3\x82\xB3\xE3\x82\x99 Pro W3.otf;\xE3\x83\x92\xE3\x83\xA9\xE3\x82\xAD\xE3\x82\x99\xE3\x83\x8E\xE8\xA7\x92\xE3\x82\xB3\xE3\x82\x99 ProN W3.otf;AppleGothic.dfont;AppleGothic.ttf;\xe5\x8d\x8e\xe6\x96\x87\xe7\xbb\x86\xe9\xbb\x91.ttf", "Name of san-serif font (Truetype file name)"); |
233 | #else | 233 | #else |
234 | // 'unicode.ttf' doesn't exist, but hopefully an international | 234 | // 'unicode.ttf' doesn't exist, but hopefully an international |
235 | // user can take the hint and drop in their favourite local font. | 235 | // user can take the hint and drop in their favourite local font. |
@@ -467,7 +467,8 @@ void declare_settings() | |||
467 | gSavedSettings.declareF32("RenderNameShowTime", 10.f, "Fade avatar names after specified time (seconds)"); // seconds | 467 | gSavedSettings.declareF32("RenderNameShowTime", 10.f, "Fade avatar names after specified time (seconds)"); // seconds |
468 | gSavedSettings.declareF32("RenderNameFadeDuration", 1.f, "Time interval over which to fade avatar names (seconds)"); // seconds | 468 | gSavedSettings.declareF32("RenderNameFadeDuration", 1.f, "Time interval over which to fade avatar names (seconds)"); // seconds |
469 | gSavedSettings.declareBOOL("RenderNameHideSelf", FALSE, "Don't display own name above avatar"); | 469 | gSavedSettings.declareBOOL("RenderNameHideSelf", FALSE, "Don't display own name above avatar"); |
470 | gSavedSettings.declareBOOL("RenderHideGroupTitle", FALSE, "Don't show group titles in name labels"); | 470 | gSavedSettings.declareBOOL("RenderHideGroupTitle", FALSE, "Don't show my group title in my name label"); |
471 | gSavedSettings.declareBOOL("RenderGroupTitleAll", TRUE, "Show group titles in name labels"); | ||
471 | 472 | ||
472 | // Camera widget controls | 473 | // Camera widget controls |
473 | const S32 CAMERA_LEFT = MOVE_BTN_FLY_RIGHT + 10; | 474 | const S32 CAMERA_LEFT = MOVE_BTN_FLY_RIGHT + 10; |
@@ -971,6 +972,9 @@ void declare_settings() | |||
971 | gSavedSettings.declareRect("PreviewScriptRect", LLRect(0, 550, 500, 0), "Rectangle for script preview window" ); // Only width and height are used | 972 | gSavedSettings.declareRect("PreviewScriptRect", LLRect(0, 550, 500, 0), "Rectangle for script preview window" ); // Only width and height are used |
972 | gSavedSettings.declareRect("LSLHelpRect", LLRect(0, 400, 400, 0), "Rectangle for LSL help window" ); // Only width and height are used | 973 | gSavedSettings.declareRect("LSLHelpRect", LLRect(0, 400, 400, 0), "Rectangle for LSL help window" ); // Only width and height are used |
973 | gSavedSettings.declareRect("PreviewLandmarkRect", LLRect(0, 90, 300, 0), "Rectangle for landmark preview window" ); // Only width and height are used | 974 | gSavedSettings.declareRect("PreviewLandmarkRect", LLRect(0, 90, 300, 0), "Rectangle for landmark preview window" ); // Only width and height are used |
975 | gSavedSettings.declareRect("PreviewURLRect", LLRect(0, 90, 300, 0), "Rectangle for URL preview window" ); // Only width and height are used | ||
976 | gSavedSettings.declareRect("PreviewEventRect", LLRect(0, 530, 420, 0), "Rectangle for Event preview window" ); // Only width and height are used | ||
977 | gSavedSettings.declareRect("PreviewClassifiedRect", LLRect(0, 530, 420, 0), "Rectangle for URL preview window" ); // Only width and height are used | ||
974 | gSavedSettings.declareRect("PreviewSoundRect", LLRect(0, 85, 300, 0), "Rectangle for sound preview window" ); // Only width and height are used | 978 | gSavedSettings.declareRect("PreviewSoundRect", LLRect(0, 85, 300, 0), "Rectangle for sound preview window" ); // Only width and height are used |
975 | gSavedSettings.declareRect("PreviewObjectRect", LLRect(0, 85, 300, 0), "Rectangle for object preview window" ); // Only width and height are used | 979 | gSavedSettings.declareRect("PreviewObjectRect", LLRect(0, 85, 300, 0), "Rectangle for object preview window" ); // Only width and height are used |
976 | gSavedSettings.declareRect("PreviewWearableRect", LLRect(0, 85, 300, 0), "Rectangle for wearable preview window" ); // Only width and height are used | 980 | gSavedSettings.declareRect("PreviewWearableRect", LLRect(0, 85, 300, 0), "Rectangle for wearable preview window" ); // Only width and height are used |
@@ -994,6 +998,9 @@ void declare_settings() | |||
994 | 998 | ||
995 | gSavedSettings.declareRect("FloaterRegionInfo", LLRect(0, 512, 480, 0), "Rectangle for region info window"); | 999 | gSavedSettings.declareRect("FloaterRegionInfo", LLRect(0, 512, 480, 0), "Rectangle for region info window"); |
996 | 1000 | ||
1001 | // Landmark Picker | ||
1002 | gSavedSettings.declareRect("FloaterLandmarkRect", LLRect(0, 290, 310, 0), "Rectangle for landmark picker" ); // Only width and height are used | ||
1003 | |||
997 | // editors | 1004 | // editors |
998 | // Only width and height are used | 1005 | // Only width and height are used |
999 | gSavedSettings.declareRect("NotecardEditorRect", LLRect(0, 400, 400, 0), "Rectangle for notecard editor"); | 1006 | gSavedSettings.declareRect("NotecardEditorRect", LLRect(0, 400, 400, 0), "Rectangle for notecard editor"); |
@@ -1322,7 +1329,7 @@ void declare_settings() | |||
1322 | gSavedSettings.declareBOOL("AutomaticFly", TRUE, "Fly by holding jump key or using \"Fly\" command (FALSE = fly by using \"Fly\" command only)"); | 1329 | gSavedSettings.declareBOOL("AutomaticFly", TRUE, "Fly by holding jump key or using \"Fly\" command (FALSE = fly by using \"Fly\" command only)"); |
1323 | 1330 | ||
1324 | // Index of the last find panel you opened. | 1331 | // Index of the last find panel you opened. |
1325 | gSavedSettings.declareString("LastFindPanel", "all_panel", "Controls which find operation appears by default when clicking \"Find\" button "); | 1332 | gSavedSettings.declareString("LastFindPanel", "find_all_panel", "Controls which find operation appears by default when clicking \"Find\" button "); |
1326 | 1333 | ||
1327 | // grab keystrokes at last possible moment to minimize latency | 1334 | // grab keystrokes at last possible moment to minimize latency |
1328 | gSavedSettings.declareBOOL("AsyncKeyboard", TRUE, "Improves responsiveness to keyboard input when at low framerates"); | 1335 | gSavedSettings.declareBOOL("AsyncKeyboard", TRUE, "Improves responsiveness to keyboard input when at low framerates"); |
@@ -1369,6 +1376,15 @@ void declare_settings() | |||
1369 | gSavedSettings.declareBOOL("MapShowInfohubs", TRUE, "Show infohubs on the world map"); | 1376 | gSavedSettings.declareBOOL("MapShowInfohubs", TRUE, "Show infohubs on the world map"); |
1370 | gSavedSettings.declareBOOL("MapShowClassifieds", TRUE, "Show locations associated with classified ads on world map"); | 1377 | gSavedSettings.declareBOOL("MapShowClassifieds", TRUE, "Show locations associated with classified ads on world map"); |
1371 | 1378 | ||
1379 | // Search panel in directory uses this URL for queries | ||
1380 | // Trailing "/" matters. | ||
1381 | gSavedSettings.declareString("SearchDefaultURL", | ||
1382 | "http://secondlife.com/app/search/index.php?m=[MATURE]", | ||
1383 | "URL to load for empty searches"); | ||
1384 | gSavedSettings.declareString("SearchQueryURL", | ||
1385 | "http://secondlife.com/app/search/search_proxy.php?q=[QUERY]&s=[COLLECTION]&m=[MATURE]&t=[TEEN]®ion=[REGION]&x=[X]&y=[Y]&z=[Z]", | ||
1386 | "URL to use for searches"); | ||
1387 | |||
1372 | // Arrow keys move avatar while in chat? | 1388 | // Arrow keys move avatar while in chat? |
1373 | gSavedSettings.declareBOOL("ArrowKeysMoveAvatar", TRUE, "While cursor is in chat entry box, arrow keys still control your avatar"); | 1389 | gSavedSettings.declareBOOL("ArrowKeysMoveAvatar", TRUE, "While cursor is in chat entry box, arrow keys still control your avatar"); |
1374 | gSavedSettings.declareBOOL("ChatBarStealsFocus", TRUE, "Whenever keyboard focus is removed from the UI, and the chat bar is visible, the chat bar takes focus"); | 1390 | gSavedSettings.declareBOOL("ChatBarStealsFocus", TRUE, "Whenever keyboard focus is removed from the UI, and the chat bar is visible, the chat bar takes focus"); |
@@ -1451,6 +1467,15 @@ void declare_settings() | |||
1451 | gSavedSettings.declareBOOL("FlycamAbsolute", FALSE, "Treat Flycam values as absolute positions (not deltas)."); | 1467 | gSavedSettings.declareBOOL("FlycamAbsolute", FALSE, "Treat Flycam values as absolute positions (not deltas)."); |
1452 | gSavedSettings.declareBOOL("FlycamZoomDirect", FALSE, "Map flycam zoom axis directly to camera zoom."); | 1468 | gSavedSettings.declareBOOL("FlycamZoomDirect", FALSE, "Map flycam zoom axis directly to camera zoom."); |
1453 | 1469 | ||
1470 | // logitech LCD settings | ||
1471 | gSavedSettings.declareS32("LCDDestination", 0, "Which LCD to use"); | ||
1472 | gSavedSettings.declareBOOL("DisplayChat", TRUE, "Display Latest Chat message on LCD"); | ||
1473 | gSavedSettings.declareBOOL("DisplayIM", TRUE, "Display Latest IM message on LCD"); | ||
1474 | gSavedSettings.declareBOOL("DisplayRegion", TRUE, "Display Location information on LCD"); | ||
1475 | gSavedSettings.declareBOOL("DisplayDebug", TRUE, "Display Network Information on LCD"); | ||
1476 | gSavedSettings.declareBOOL("DisplayDebugConsole", TRUE, "Display Console Debug Information on LCD"); | ||
1477 | gSavedSettings.declareBOOL("DisplayLinden", TRUE, "Display Account Information on LCD"); | ||
1478 | |||
1454 | // Vector Processor & Math | 1479 | // Vector Processor & Math |
1455 | gSavedSettings.declareBOOL("VectorizePerfTest", TRUE, "Test SSE/vectorization performance and choose fastest version."); | 1480 | gSavedSettings.declareBOOL("VectorizePerfTest", TRUE, "Test SSE/vectorization performance and choose fastest version."); |
1456 | gSavedSettings.declareBOOL("VectorizeEnable", FALSE, "Enable general vector operations and data alignment."); | 1481 | gSavedSettings.declareBOOL("VectorizeEnable", FALSE, "Enable general vector operations and data alignment."); |
diff --git a/linden/indra/newview/llfloateravatarinfo.cpp b/linden/indra/newview/llfloateravatarinfo.cpp index c7341b6..58fe1ab 100644 --- a/linden/indra/newview/llfloateravatarinfo.cpp +++ b/linden/indra/newview/llfloateravatarinfo.cpp | |||
@@ -1,6 +1,9 @@ | |||
1 | /** | 1 | /** |
2 | * @file llfloateravatarinfo.cpp | 2 | * @file llfloateravatarinfo.cpp |
3 | * @brief LLFloaterAvatarInfo class implementation | 3 | * @brief LLFloaterAvatarInfo class implementation |
4 | * Avatar information as shown in a floating window from right-click | ||
5 | * Profile. Used for editing your own avatar info. Just a wrapper | ||
6 | * for LLPanelAvatar, shared with the Find directory. | ||
4 | * | 7 | * |
5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | 8 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
6 | * | 9 | * |
@@ -28,54 +31,42 @@ | |||
28 | * COMPLETENESS OR PERFORMANCE. | 31 | * COMPLETENESS OR PERFORMANCE. |
29 | * $/LicenseInfo$ | 32 | * $/LicenseInfo$ |
30 | */ | 33 | */ |
31 | |||
32 | /** | ||
33 | * Avatar information as shown in a floating window from right-click | ||
34 | * Profile. Used for editing your own avatar info. Just a wrapper | ||
35 | * for LLPanelAvatar, shared with the Find directory. | ||
36 | */ | ||
37 | |||
38 | // system includes | ||
39 | |||
40 | // linden prefix includes | ||
41 | #include "llviewerprecompiledheaders.h" | 34 | #include "llviewerprecompiledheaders.h" |
42 | 35 | ||
43 | // self include | ||
44 | #include "llfloateravatarinfo.h" | 36 | #include "llfloateravatarinfo.h" |
45 | 37 | ||
46 | // linden library includes | ||
47 | #include "llcachename.h" | ||
48 | #include "llfontgl.h" | ||
49 | #include "llinventory.h" | ||
50 | #include "message.h" | ||
51 | |||
52 | // viewer project includes | 38 | // viewer project includes |
53 | #include "llagentdata.h" | 39 | #include "llagentdata.h" |
54 | #include "llbutton.h" | 40 | //#include "llbutton.h" |
55 | #include "llcallingcard.h" | 41 | //#include "llcallingcard.h" |
56 | #include "llcheckboxctrl.h" | 42 | //#include "llcheckboxctrl.h" |
43 | //#include "llcommandhandler.h" | ||
44 | //#include "llfloaterworldmap.h" | ||
45 | //#include "llfloatermute.h" | ||
46 | //#include "llinventoryview.h" | ||
47 | //#include "lllineeditor.h" | ||
48 | //#include "llmutelist.h" | ||
49 | //#include "llscrolllistctrl.h" | ||
50 | //#include "lltabcontainer.h" | ||
51 | //#include "llimview.h" | ||
52 | //#include "lluiconstants.h" | ||
53 | //#include "llviewerobject.h" | ||
54 | //#include "llviewerobjectlist.h" | ||
55 | //#include "llviewerregion.h" | ||
56 | //#include "llviewborder.h" | ||
57 | //#include "llinventorymodel.h" | ||
58 | //#include "lltextbox.h" | ||
59 | //#include "lltexturectrl.h" | ||
60 | //#include "llviewertexteditor.h" | ||
57 | #include "llcommandhandler.h" | 61 | #include "llcommandhandler.h" |
58 | #include "llfloaterworldmap.h" | ||
59 | #include "llfloatermute.h" | ||
60 | #include "llinventoryview.h" | ||
61 | #include "lllineeditor.h" | ||
62 | #include "llmutelist.h" | ||
63 | #include "llscrolllistctrl.h" | ||
64 | #include "lltabcontainer.h" | ||
65 | #include "llimview.h" | ||
66 | #include "lluiconstants.h" | ||
67 | #include "llviewerobject.h" | ||
68 | #include "llviewerobjectlist.h" | ||
69 | #include "llviewerregion.h" | ||
70 | #include "llviewborder.h" | ||
71 | #include "llinventorymodel.h" | ||
72 | #include "lltextbox.h" | ||
73 | #include "lltexturectrl.h" | ||
74 | #include "llviewertexteditor.h" | ||
75 | #include "llpanelavatar.h" | 62 | #include "llpanelavatar.h" |
76 | |||
77 | #include "llvieweruictrlfactory.h" | 63 | #include "llvieweruictrlfactory.h" |
78 | 64 | ||
65 | // linden library includes | ||
66 | #include "llinventory.h" | ||
67 | #include "lluuid.h" | ||
68 | #include "message.h" | ||
69 | |||
79 | const char FLOATER_TITLE[] = "Profile"; | 70 | const char FLOATER_TITLE[] = "Profile"; |
80 | const LLRect FAI_RECT(0, 530, 420, 0); | 71 | const LLRect FAI_RECT(0, 530, 420, 0); |
81 | 72 | ||
@@ -100,7 +91,7 @@ public: | |||
100 | 91 | ||
101 | if (params[1] == "about") | 92 | if (params[1] == "about") |
102 | { | 93 | { |
103 | LLFloaterAvatarInfo::showFromDirectory(agent_id); | 94 | LLFloaterAvatarInfo::show(agent_id); |
104 | return true; | 95 | return true; |
105 | } | 96 | } |
106 | return false; | 97 | return false; |
@@ -172,79 +163,52 @@ void LLFloaterAvatarInfo::resetGroupList() | |||
172 | mPanelAvatarp->resetGroupList(); | 163 | mPanelAvatarp->resetGroupList(); |
173 | } | 164 | } |
174 | 165 | ||
175 | |||
176 | // Open profile to a certian tab. | ||
177 | // static | 166 | // static |
178 | void LLFloaterAvatarInfo::showFromObject( | 167 | LLFloaterAvatarInfo* LLFloaterAvatarInfo::show(const LLUUID &avatar_id) |
179 | const LLUUID& avatar_id, | ||
180 | std::string tab_name) | ||
181 | { | 168 | { |
182 | if(avatar_id.isNull()) | 169 | if (avatar_id.isNull()) |
183 | { | 170 | { |
184 | return; | 171 | return NULL; |
185 | } | 172 | } |
186 | 173 | ||
187 | LLFloaterAvatarInfo *floater = NULL; | 174 | LLFloaterAvatarInfo *floater; |
188 | if (gAvatarInfoInstances.checkData(avatar_id)) | 175 | if (gAvatarInfoInstances.checkData(avatar_id)) |
189 | { | 176 | { |
190 | // ...bring that window to front | 177 | // ...bring that window to front |
191 | floater = gAvatarInfoInstances.getData(avatar_id); | 178 | floater = gAvatarInfoInstances.getData(avatar_id); |
179 | floater->open(); /*Flawfinder: ignore*/ | ||
192 | } | 180 | } |
193 | else | 181 | else |
194 | { | 182 | { |
195 | floater = new LLFloaterAvatarInfo("avatarinfo", FAI_RECT, | 183 | floater = new LLFloaterAvatarInfo("avatarinfo", FAI_RECT, |
196 | avatar_id); | 184 | avatar_id ); |
197 | floater->center(); | 185 | floater->center(); |
198 | floater->mPanelAvatarp->setAvatarID(avatar_id, "", ONLINE_STATUS_NO); | 186 | floater->open(); /*Flawfinder: ignore*/ |
199 | |||
200 | } | 187 | } |
201 | floater->mPanelAvatarp->selectTabByName(tab_name); | 188 | return floater; |
202 | floater->open(); /*Flawfinder: ignore*/ | ||
203 | } | 189 | } |
204 | 190 | ||
191 | // Open profile to a certain tab. | ||
205 | // static | 192 | // static |
206 | void LLFloaterAvatarInfo::showFromDirectory(const LLUUID &avatar_id) | 193 | void LLFloaterAvatarInfo::showFromObject( |
194 | const LLUUID& avatar_id, | ||
195 | std::string tab_name) | ||
207 | { | 196 | { |
208 | if(avatar_id.isNull()) | 197 | LLFloaterAvatarInfo *floater = show(avatar_id); |
198 | if (floater) | ||
209 | { | 199 | { |
210 | return; | ||
211 | } | ||
212 | |||
213 | LLFloaterAvatarInfo *floater; | ||
214 | if (gAvatarInfoInstances.checkData(avatar_id)) | ||
215 | { | ||
216 | // ...bring that window to front | ||
217 | floater = gAvatarInfoInstances.getData(avatar_id); | ||
218 | } | ||
219 | else | ||
220 | { | ||
221 | floater = new LLFloaterAvatarInfo("avatarinfo", FAI_RECT, | ||
222 | avatar_id); | ||
223 | floater->center(); | ||
224 | floater->mPanelAvatarp->setAvatarID(avatar_id, "", ONLINE_STATUS_NO); | 200 | floater->mPanelAvatarp->setAvatarID(avatar_id, "", ONLINE_STATUS_NO); |
225 | } | 201 | floater->mPanelAvatarp->selectTabByName(tab_name); |
226 | if(floater) | ||
227 | { | ||
228 | floater->open(); | ||
229 | } | 202 | } |
230 | } | 203 | } |
231 | 204 | ||
232 | |||
233 | // static | 205 | // static |
234 | void LLFloaterAvatarInfo::showFromAvatar(LLViewerObject *avatar) | 206 | void LLFloaterAvatarInfo::showFromDirectory(const LLUUID &avatar_id) |
235 | { | 207 | { |
236 | if (gAvatarInfoInstances.checkData(avatar->getID())) | 208 | LLFloaterAvatarInfo *floater = show(avatar_id); |
237 | { | 209 | if (floater) |
238 | // ...bring that window to front | ||
239 | LLFloaterAvatarInfo *f = gAvatarInfoInstances.getData(avatar->getID()); | ||
240 | f->open(); /*Flawfinder: ignore*/ | ||
241 | } | ||
242 | else | ||
243 | { | 210 | { |
244 | LLFloaterAvatarInfo *floater = new LLFloaterAvatarInfo("avatarinfo", FAI_RECT, | 211 | floater->mPanelAvatarp->setAvatarID(avatar_id, "", ONLINE_STATUS_NO); |
245 | avatar->getID() ); | ||
246 | floater->center(); | ||
247 | floater->open(); /*Flawfinder: ignore*/ | ||
248 | } | 212 | } |
249 | } | 213 | } |
250 | 214 | ||
@@ -252,21 +216,9 @@ void LLFloaterAvatarInfo::showFromAvatar(LLViewerObject *avatar) | |||
252 | // static | 216 | // static |
253 | void LLFloaterAvatarInfo::showFromFriend(const LLUUID& agent_id, BOOL online) | 217 | void LLFloaterAvatarInfo::showFromFriend(const LLUUID& agent_id, BOOL online) |
254 | { | 218 | { |
255 | if(agent_id.isNull()) | 219 | LLFloaterAvatarInfo *floater = show(agent_id); |
220 | if (floater) | ||
256 | { | 221 | { |
257 | return; | ||
258 | } | ||
259 | if (gAvatarInfoInstances.checkData( agent_id )) | ||
260 | { | ||
261 | // ...bring that window to front | ||
262 | LLFloaterAvatarInfo *f = gAvatarInfoInstances.getData( agent_id ); | ||
263 | f->open(); /*Flawfinder: ignore*/ | ||
264 | } | ||
265 | else | ||
266 | { | ||
267 | LLFloaterAvatarInfo *floater = new LLFloaterAvatarInfo("avatarinfo", FAI_RECT, | ||
268 | agent_id); | ||
269 | floater->center(); | ||
270 | floater->mSuggestedOnlineStatus = online ? ONLINE_STATUS_YES : ONLINE_STATUS_NO; | 222 | floater->mSuggestedOnlineStatus = online ? ONLINE_STATUS_YES : ONLINE_STATUS_NO; |
271 | } | 223 | } |
272 | } | 224 | } |
diff --git a/linden/indra/newview/llfloateravatarinfo.h b/linden/indra/newview/llfloateravatarinfo.h index f305ae0..9b5fcb4 100644 --- a/linden/indra/newview/llfloateravatarinfo.h +++ b/linden/indra/newview/llfloateravatarinfo.h | |||
@@ -62,7 +62,6 @@ class LLFloaterAvatarInfo | |||
62 | : public LLPreview | 62 | : public LLPreview |
63 | { | 63 | { |
64 | public: | 64 | public: |
65 | |||
66 | static void* createPanelAvatar(void* data); | 65 | static void* createPanelAvatar(void* data); |
67 | 66 | ||
68 | virtual BOOL postBuild(); | 67 | virtual BOOL postBuild(); |
@@ -77,16 +76,14 @@ public: | |||
77 | /*virtual*/ void loadAsset(); | 76 | /*virtual*/ void loadAsset(); |
78 | /*virtual*/ EAssetStatus getAssetStatus(); | 77 | /*virtual*/ EAssetStatus getAssetStatus(); |
79 | 78 | ||
80 | // Enables rate button, enables IM | 79 | static LLFloaterAvatarInfo* show(const LLUUID& avatar_id); |
80 | // Core method, doesn't do anything funny with online status or | ||
81 | // tab selection. | ||
82 | |||
81 | static void showFromObject(const LLUUID &avatar_id, std::string tab_name = std::string()); | 83 | static void showFromObject(const LLUUID &avatar_id, std::string tab_name = std::string()); |
82 | 84 | ||
83 | // Disables the rate button, enables IM | ||
84 | static void showFromDirectory(const LLUUID &avatar_id); | 85 | static void showFromDirectory(const LLUUID &avatar_id); |
85 | 86 | ||
86 | // Enables all buttons | ||
87 | static void showFromAvatar(LLViewerObject *object); | ||
88 | |||
89 | // Enables most buttons | ||
90 | static void showFromFriend(const LLUUID& agent_id, BOOL online); | 87 | static void showFromFriend(const LLUUID& agent_id, BOOL online); |
91 | 88 | ||
92 | static LLFloaterAvatarInfo* getInstance(const LLUUID &id); | 89 | static LLFloaterAvatarInfo* getInstance(const LLUUID &id); |
@@ -94,8 +91,6 @@ public: | |||
94 | void resetGroupList(); | 91 | void resetGroupList(); |
95 | 92 | ||
96 | private: | 93 | private: |
97 | |||
98 | protected: | ||
99 | LLUUID mAvatarID; // for which avatar is this window? | 94 | LLUUID mAvatarID; // for which avatar is this window? |
100 | LLPanelAvatar* mPanelAvatarp; | 95 | LLPanelAvatar* mPanelAvatarp; |
101 | EOnlineStatus mSuggestedOnlineStatus; | 96 | EOnlineStatus mSuggestedOnlineStatus; |
diff --git a/linden/indra/newview/llfloaterchat.cpp b/linden/indra/newview/llfloaterchat.cpp index 686cc81..b435ada 100644 --- a/linden/indra/newview/llfloaterchat.cpp +++ b/linden/indra/newview/llfloaterchat.cpp | |||
@@ -73,6 +73,9 @@ | |||
73 | #include "llfloaterhtml.h" | 73 | #include "llfloaterhtml.h" |
74 | #include "llweb.h" | 74 | #include "llweb.h" |
75 | 75 | ||
76 | // Used for LCD display | ||
77 | extern void AddNewIMToLCD(const LLString &newLine); | ||
78 | extern void AddNewChatToLCD(const LLString &newLine); | ||
76 | // | 79 | // |
77 | // Constants | 80 | // Constants |
78 | // | 81 | // |
@@ -309,6 +312,20 @@ void LLFloaterChat::addChat(const LLChat& chat, | |||
309 | chat.mChatType == CHAT_TYPE_DEBUG_MSG | 312 | chat.mChatType == CHAT_TYPE_DEBUG_MSG |
310 | && !gSavedSettings.getBOOL("ScriptErrorsAsChat"); | 313 | && !gSavedSettings.getBOOL("ScriptErrorsAsChat"); |
311 | 314 | ||
315 | #if LL_WINDOWS && LL_LCD_COMPILE | ||
316 | // add into LCD displays | ||
317 | if (!invisible_script_debug_chat) | ||
318 | { | ||
319 | if (!from_instant_message) | ||
320 | { | ||
321 | AddNewChatToLCD(chat.mText); | ||
322 | } | ||
323 | else | ||
324 | { | ||
325 | AddNewIMToLCD(chat.mText); | ||
326 | } | ||
327 | } | ||
328 | #endif | ||
312 | if (!invisible_script_debug_chat | 329 | if (!invisible_script_debug_chat |
313 | && !chat.mMuted | 330 | && !chat.mMuted |
314 | && gConsole | 331 | && gConsole |
diff --git a/linden/indra/newview/llfloaterclassified.cpp b/linden/indra/newview/llfloaterclassified.cpp new file mode 100644 index 0000000..aa57c6f --- /dev/null +++ b/linden/indra/newview/llfloaterclassified.cpp | |||
@@ -0,0 +1,131 @@ | |||
1 | /** | ||
2 | * @file llfloaterclassified.cpp | ||
3 | * @brief LLFloaterClassifiedInfo class implementation | ||
4 | * | ||
5 | * Classified information as shown in a floating window from secondlife:// command | ||
6 | * handler. | ||
7 | * | ||
8 | * $LicenseInfo:firstyear=2002&license=internal$ | ||
9 | * | ||
10 | * Copyright (c) 2002-2007, Linden Research, Inc. | ||
11 | * | ||
12 | * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of | ||
13 | * this source code is governed by the Linden Lab Source Code Disclosure | ||
14 | * Agreement ("Agreement") previously entered between you and Linden | ||
15 | * Lab. By accessing, using, copying, modifying or distributing this | ||
16 | * software, you acknowledge that you have been informed of your | ||
17 | * obligations under the Agreement and agree to abide by those obligations. | ||
18 | * | ||
19 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
20 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
21 | * COMPLETENESS OR PERFORMANCE. | ||
22 | * $/LicenseInfo$ | ||
23 | */ | ||
24 | |||
25 | #include "llviewerprecompiledheaders.h" | ||
26 | |||
27 | #include "llfloaterclassified.h" | ||
28 | |||
29 | // viewer project includes | ||
30 | #include "llcommandhandler.h" | ||
31 | #include "llpanelclassified.h" | ||
32 | #include "llvieweruictrlfactory.h" | ||
33 | |||
34 | // linden library includes | ||
35 | #include "lluuid.h" | ||
36 | |||
37 | //----------------------------------------------------------------------------- | ||
38 | // Globals | ||
39 | //----------------------------------------------------------------------------- | ||
40 | |||
41 | LLMap< const LLUUID, LLFloaterClassifiedInfo* > gClassifiedInfoInstances; | ||
42 | //////////////////////////////////////////////////////////////////////////// | ||
43 | // LLFloaterEventDisplay | ||
44 | |||
45 | class LLClassifiedHandler : public LLCommandHandler | ||
46 | { | ||
47 | public: | ||
48 | LLClassifiedHandler() : LLCommandHandler("classified") { } | ||
49 | bool handle(const std::vector<std::string>& tokens) | ||
50 | { | ||
51 | if (tokens.size() < 2) | ||
52 | { | ||
53 | return false; | ||
54 | } | ||
55 | LLUUID classified_id; | ||
56 | if (!classified_id.set(tokens[0], FALSE)) | ||
57 | { | ||
58 | return false; | ||
59 | } | ||
60 | |||
61 | if (tokens[1] == "about") | ||
62 | { | ||
63 | LLFloaterClassifiedInfo::show(classified_id); | ||
64 | return true; | ||
65 | } | ||
66 | return false; | ||
67 | } | ||
68 | }; | ||
69 | LLClassifiedHandler gClassifiedHandler; | ||
70 | |||
71 | LLFloaterClassifiedInfo::LLFloaterClassifiedInfo(const std::string& name, const LLUUID &id) | ||
72 | : LLFloater(name), | ||
73 | mClassifiedID( id ) | ||
74 | { | ||
75 | mFactoryMap["classified_details_panel"] = LLCallbackMap(LLFloaterClassifiedInfo::createClassifiedDetail, this); | ||
76 | gUICtrlFactory->buildFloater(this, "floater_preview_classified.xml", &getFactoryMap()); | ||
77 | gClassifiedInfoInstances.addData(id, this); | ||
78 | } | ||
79 | |||
80 | LLFloaterClassifiedInfo::~LLFloaterClassifiedInfo() | ||
81 | { | ||
82 | // child views automatically deleted | ||
83 | gClassifiedInfoInstances.removeData(mClassifiedID); | ||
84 | |||
85 | } | ||
86 | |||
87 | void LLFloaterClassifiedInfo::displayClassifiedInfo(const LLUUID& classified_id) | ||
88 | { | ||
89 | mClassifiedPanel->setClassifiedID(classified_id); | ||
90 | mClassifiedPanel->sendClassifiedInfoRequest(); | ||
91 | this->setFrontmost(true); | ||
92 | } | ||
93 | |||
94 | // static | ||
95 | void* LLFloaterClassifiedInfo::createClassifiedDetail(void* userdata) | ||
96 | { | ||
97 | LLFloaterClassifiedInfo *self = (LLFloaterClassifiedInfo*)userdata; | ||
98 | self->mClassifiedPanel = new LLPanelClassified(TRUE, TRUE); | ||
99 | self->mClassifiedPanel->childSetValue("classified_url", self->mClassifiedID); | ||
100 | return self->mClassifiedPanel; | ||
101 | } | ||
102 | |||
103 | // static | ||
104 | LLFloaterClassifiedInfo* LLFloaterClassifiedInfo::show(const LLUUID &classified_id) | ||
105 | { | ||
106 | if (classified_id.isNull()) | ||
107 | { | ||
108 | return NULL; | ||
109 | } | ||
110 | |||
111 | LLFloaterClassifiedInfo *floater; | ||
112 | if (gClassifiedInfoInstances.checkData(classified_id)) | ||
113 | { | ||
114 | // ...bring that window to front | ||
115 | floater = gClassifiedInfoInstances.getData(classified_id); | ||
116 | floater->open(); /*Flawfinder: ignore*/ | ||
117 | floater->setFrontmost(true); | ||
118 | } | ||
119 | else | ||
120 | { | ||
121 | floater = new LLFloaterClassifiedInfo("calssifiedinfo", classified_id ); | ||
122 | floater->center(); | ||
123 | floater->open(); /*Flawfinder: ignore*/ | ||
124 | floater->displayClassifiedInfo(classified_id); | ||
125 | floater->setFrontmost(true); | ||
126 | } | ||
127 | |||
128 | return floater; | ||
129 | } | ||
130 | |||
131 | |||
diff --git a/linden/indra/newview/llfloaterclassified.h b/linden/indra/newview/llfloaterclassified.h new file mode 100644 index 0000000..6cdc77b --- /dev/null +++ b/linden/indra/newview/llfloaterclassified.h | |||
@@ -0,0 +1,54 @@ | |||
1 | /** | ||
2 | * @file llfloaterclassified.h | ||
3 | * @brief LLFloaterClassifiedInfo class declaration | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2002&license=internal$ | ||
6 | * | ||
7 | * Copyright (c) 2002-2007, Linden Research, Inc. | ||
8 | * | ||
9 | * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of | ||
10 | * this source code is governed by the Linden Lab Source Code Disclosure | ||
11 | * Agreement ("Agreement") previously entered between you and Linden | ||
12 | * Lab. By accessing, using, copying, modifying or distributing this | ||
13 | * software, you acknowledge that you have been informed of your | ||
14 | * obligations under the Agreement and agree to abide by those obligations. | ||
15 | * | ||
16 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
17 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
18 | * COMPLETENESS OR PERFORMANCE. | ||
19 | * $/LicenseInfo$ | ||
20 | */ | ||
21 | |||
22 | /** | ||
23 | * Classified information as shown in a floating window from a secondlife:// url. | ||
24 | * Just a wrapper for LLPanelClassified. | ||
25 | */ | ||
26 | |||
27 | |||
28 | #ifndef LL_FLOATERCLASSIFIED_H | ||
29 | #define LL_FLOATERCLASSIFIED_H | ||
30 | |||
31 | #include "llfloater.h" | ||
32 | |||
33 | class LLPanelClassified; | ||
34 | |||
35 | class LLFloaterClassifiedInfo : LLFloater | ||
36 | { | ||
37 | public: | ||
38 | LLFloaterClassifiedInfo(const std::string& name, const LLUUID &id ); | ||
39 | virtual ~LLFloaterClassifiedInfo(); | ||
40 | |||
41 | void displayClassifiedInfo(const LLUUID& classified_id); | ||
42 | |||
43 | static LLFloaterClassifiedInfo* show(const LLUUID& classified_id); | ||
44 | |||
45 | static void* createClassifiedDetail(void* userdata); | ||
46 | |||
47 | private: | ||
48 | |||
49 | LLPanelClassified* mClassifiedPanel; | ||
50 | LLUUID mClassifiedID; | ||
51 | |||
52 | }; | ||
53 | |||
54 | #endif // LL_FLOATERCLASSIFIED_H | ||
diff --git a/linden/indra/newview/llfloaterclothing.cpp b/linden/indra/newview/llfloaterclothing.cpp index fd3812c..e0ef360 100644 --- a/linden/indra/newview/llfloaterclothing.cpp +++ b/linden/indra/newview/llfloaterclothing.cpp | |||
@@ -359,7 +359,7 @@ BOOL wearable_can_take_off(EWearableType wearable_type) | |||
359 | case WT_UNDERSHIRT: | 359 | case WT_UNDERSHIRT: |
360 | case WT_UNDERPANTS: | 360 | case WT_UNDERPANTS: |
361 | // can't take off underpants with PG accounts | 361 | // can't take off underpants with PG accounts |
362 | return (gAgent.mAccess >= SIM_ACCESS_MATURE); | 362 | return (!gAgent.isTeen()); |
363 | } | 363 | } |
364 | } | 364 | } |
365 | 365 | ||
diff --git a/linden/indra/newview/llfloatercustomize.cpp b/linden/indra/newview/llfloatercustomize.cpp index 5351aa5..fb6efe2 100644 --- a/linden/indra/newview/llfloatercustomize.cpp +++ b/linden/indra/newview/llfloatercustomize.cpp | |||
@@ -217,7 +217,7 @@ public: | |||
217 | LLString name = LLString("checkbox_") + LLWearable::typeToTypeLabel( (EWearableType)i ); | 217 | LLString name = LLString("checkbox_") + LLWearable::typeToTypeLabel( (EWearableType)i ); |
218 | mCheckBoxList.push_back(std::make_pair(name,i)); | 218 | mCheckBoxList.push_back(std::make_pair(name,i)); |
219 | // Hide teen items | 219 | // Hide teen items |
220 | if (gAgent.mAccess < SIM_ACCESS_MATURE && | 220 | if (gAgent.isTeen() && |
221 | !edit_wearable_for_teens((EWearableType)i)) | 221 | !edit_wearable_for_teens((EWearableType)i)) |
222 | { | 222 | { |
223 | // hide wearable checkboxes that don't apply to this account | 223 | // hide wearable checkboxes that don't apply to this account |
@@ -462,7 +462,7 @@ BOOL LLPanelEditWearable::postBuild() | |||
462 | // If PG, can't take off underclothing or shirt | 462 | // If PG, can't take off underclothing or shirt |
463 | mCanTakeOff = | 463 | mCanTakeOff = |
464 | LLWearable::typeToAssetType( mType ) == LLAssetType::AT_CLOTHING && | 464 | LLWearable::typeToAssetType( mType ) == LLAssetType::AT_CLOTHING && |
465 | !( gAgent.mAccess < SIM_ACCESS_MATURE && (mType == WT_UNDERSHIRT || mType == WT_UNDERPANTS) ); | 465 | !( gAgent.isTeen() && (mType == WT_UNDERSHIRT || mType == WT_UNDERPANTS) ); |
466 | childSetVisible("Take Off", mCanTakeOff); | 466 | childSetVisible("Take Off", mCanTakeOff); |
467 | childSetAction("Take Off", LLPanelEditWearable::onBtnTakeOff, this ); | 467 | childSetAction("Take Off", LLPanelEditWearable::onBtnTakeOff, this ); |
468 | 468 | ||
@@ -1606,8 +1606,8 @@ BOOL LLFloaterCustomize::postBuild() | |||
1606 | childSetTabChangeCallback("customize tab container", "Underpants", onTabChanged, (void*)WT_UNDERPANTS ); | 1606 | childSetTabChangeCallback("customize tab container", "Underpants", onTabChanged, (void*)WT_UNDERPANTS ); |
1607 | childSetTabChangeCallback("customize tab container", "Skirt", onTabChanged, (void*)WT_SKIRT ); | 1607 | childSetTabChangeCallback("customize tab container", "Skirt", onTabChanged, (void*)WT_SKIRT ); |
1608 | 1608 | ||
1609 | // Remove underware panels for teens | 1609 | // Remove underwear panels for teens |
1610 | if (gAgent.mAccess < SIM_ACCESS_MATURE) | 1610 | if (gAgent.isTeen()) |
1611 | { | 1611 | { |
1612 | LLTabContainerCommon* tab_container = LLUICtrlFactory::getTabContainerByName(this, "customize tab container"); | 1612 | LLTabContainerCommon* tab_container = LLUICtrlFactory::getTabContainerByName(this, "customize tab container"); |
1613 | if (tab_container) | 1613 | if (tab_container) |
@@ -1693,7 +1693,7 @@ void LLFloaterCustomize::onBtnMakeOutfit( void* userdata ) | |||
1693 | { | 1693 | { |
1694 | BOOL enabled = (gAgent.getWearable( (EWearableType) i ) != NULL); | 1694 | BOOL enabled = (gAgent.getWearable( (EWearableType) i ) != NULL); |
1695 | BOOL selected = (enabled && (WT_SHIRT <= i) && (i < WT_COUNT)); // only select clothing by default | 1695 | BOOL selected = (enabled && (WT_SHIRT <= i) && (i < WT_COUNT)); // only select clothing by default |
1696 | if (gAgent.mAccess < SIM_ACCESS_MATURE | 1696 | if (gAgent.isTeen() |
1697 | && !edit_wearable_for_teens((EWearableType)i)) | 1697 | && !edit_wearable_for_teens((EWearableType)i)) |
1698 | { | 1698 | { |
1699 | dialog->setWearableToInclude( i, FALSE, FALSE ); | 1699 | dialog->setWearableToInclude( i, FALSE, FALSE ); |
@@ -1730,7 +1730,7 @@ void* LLFloaterCustomize::createWearablePanel(void* userdata) | |||
1730 | WearablePanelData* data = (WearablePanelData*)userdata; | 1730 | WearablePanelData* data = (WearablePanelData*)userdata; |
1731 | EWearableType type = data->mType; | 1731 | EWearableType type = data->mType; |
1732 | LLPanelEditWearable* panel; | 1732 | LLPanelEditWearable* panel; |
1733 | if ((gAgent.mAccess < SIM_ACCESS_MATURE && !edit_wearable_for_teens(data->mType) )) | 1733 | if ((gAgent.isTeen() && !edit_wearable_for_teens(data->mType) )) |
1734 | { | 1734 | { |
1735 | panel = NULL; | 1735 | panel = NULL; |
1736 | } | 1736 | } |
diff --git a/linden/indra/newview/llfloaterdirectory.cpp b/linden/indra/newview/llfloaterdirectory.cpp index 1c06ed1..3b7142e 100644 --- a/linden/indra/newview/llfloaterdirectory.cpp +++ b/linden/indra/newview/llfloaterdirectory.cpp | |||
@@ -52,14 +52,6 @@ | |||
52 | #include "lluiconstants.h" | 52 | #include "lluiconstants.h" |
53 | #include "llviewercontrol.h" | 53 | #include "llviewercontrol.h" |
54 | 54 | ||
55 | LLFloaterDirectory* LLFloaterDirectory::sInstance = NULL; | ||
56 | |||
57 | ////////////////////////////////////////////// | ||
58 | // LLFloaterDirectory | ||
59 | |||
60 | const S32 MIN_WIDTH = 400; | ||
61 | const S32 MIN_HEIGHT = 200; | ||
62 | |||
63 | #include "llagent.h" | 55 | #include "llagent.h" |
64 | #include "llpanelavatar.h" | 56 | #include "llpanelavatar.h" |
65 | #include "llpanelevent.h" | 57 | #include "llpanelevent.h" |
@@ -72,20 +64,18 @@ const S32 MIN_HEIGHT = 200; | |||
72 | #include "lldir.h" | 64 | #include "lldir.h" |
73 | #include "llvieweruictrlfactory.h" | 65 | #include "llvieweruictrlfactory.h" |
74 | 66 | ||
67 | LLFloaterDirectory* LLFloaterDirectory::sInstance = NULL; | ||
68 | |||
75 | LLFloaterDirectory::LLFloaterDirectory(const std::string& name) | 69 | LLFloaterDirectory::LLFloaterDirectory(const std::string& name) |
76 | : LLFloater(name, "FloaterFindRect2", "") | 70 | : LLFloater(name, "FloaterFindRect2", "") |
77 | { | 71 | { |
78 | sInstance = this; | 72 | sInstance = this; |
79 | 73 | ||
80 | // INITIALIZE SUBPANELS TO NULL | 74 | mFindAllPanel = NULL; |
81 | mClassifiedPanel = NULL; | 75 | mClassifiedPanel = NULL; |
82 | mEventsPanel = NULL; | 76 | mEventsPanel = NULL; |
83 | mPopularPanel = NULL; | 77 | mPopularPanel = NULL; |
84 | mPlacesPanel = NULL; | ||
85 | mLandPanel = NULL; | 78 | mLandPanel = NULL; |
86 | mPeoplePanel = NULL; | ||
87 | mGroupsPanel = NULL; | ||
88 | mFindPanel = NULL; | ||
89 | 79 | ||
90 | mPanelAvatarp = NULL; | 80 | mPanelAvatarp = NULL; |
91 | mPanelEventp = NULL; | 81 | mPanelEventp = NULL; |
@@ -98,6 +88,7 @@ LLFloaterDirectory::LLFloaterDirectory(const std::string& name) | |||
98 | // Build the floater with our tab panel classes | 88 | // Build the floater with our tab panel classes |
99 | 89 | ||
100 | LLCallbackMap::map_t factory_map; | 90 | LLCallbackMap::map_t factory_map; |
91 | factory_map["find_all_panel"] = LLCallbackMap(createFindAll, this); | ||
101 | factory_map["classified_panel"] = LLCallbackMap(createClassified, this); | 92 | factory_map["classified_panel"] = LLCallbackMap(createClassified, this); |
102 | factory_map["events_panel"] = LLCallbackMap(createEvents, this); | 93 | factory_map["events_panel"] = LLCallbackMap(createEvents, this); |
103 | factory_map["popular_panel"] = LLCallbackMap(createPopular, this); | 94 | factory_map["popular_panel"] = LLCallbackMap(createPopular, this); |
@@ -105,7 +96,7 @@ LLFloaterDirectory::LLFloaterDirectory(const std::string& name) | |||
105 | factory_map["land_sales_panel"] = LLCallbackMap(createLand, this); | 96 | factory_map["land_sales_panel"] = LLCallbackMap(createLand, this); |
106 | factory_map["people_panel"] = LLCallbackMap(createPeople, this); | 97 | factory_map["people_panel"] = LLCallbackMap(createPeople, this); |
107 | factory_map["groups_panel"] = LLCallbackMap(createGroups, this); | 98 | factory_map["groups_panel"] = LLCallbackMap(createGroups, this); |
108 | factory_map["all_panel"] = LLCallbackMap(createFind, this); | 99 | factory_map["find_all_old_panel"] = LLCallbackMap(createFindAllOld, this); |
109 | 100 | ||
110 | factory_map["classified_details_panel"] = LLCallbackMap(createClassifiedDetail, this); | 101 | factory_map["classified_details_panel"] = LLCallbackMap(createClassifiedDetail, this); |
111 | factory_map["event_details_panel"] = LLCallbackMap(createEventDetail, this); | 102 | factory_map["event_details_panel"] = LLCallbackMap(createEventDetail, this); |
@@ -117,12 +108,14 @@ LLFloaterDirectory::LLFloaterDirectory(const std::string& name) | |||
117 | factory_map["Panel Avatar"] = LLCallbackMap(createPanelAvatar, this); | 108 | factory_map["Panel Avatar"] = LLCallbackMap(createPanelAvatar, this); |
118 | 109 | ||
119 | gUICtrlFactory->buildFloater(this, "floater_directory.xml", &factory_map); | 110 | gUICtrlFactory->buildFloater(this, "floater_directory.xml", &factory_map); |
111 | moveResizeHandlesToFront(); | ||
120 | 112 | ||
121 | if(mPanelAvatarp) | 113 | if(mPanelAvatarp) |
122 | { | 114 | { |
123 | mPanelAvatarp->selectTab(0); | 115 | mPanelAvatarp->selectTab(0); |
124 | } | 116 | } |
125 | 117 | ||
118 | childSetTabChangeCallback("Directory Tabs", "find_all_panel", onTabChangedFindAll, this); | ||
126 | childSetTabChangeCallback("Directory Tabs", "classified_panel", onTabChanged, this); | 119 | childSetTabChangeCallback("Directory Tabs", "classified_panel", onTabChanged, this); |
127 | childSetTabChangeCallback("Directory Tabs", "events_panel", onTabChanged, this); | 120 | childSetTabChangeCallback("Directory Tabs", "events_panel", onTabChanged, this); |
128 | childSetTabChangeCallback("Directory Tabs", "popular_panel", onTabChanged, this); | 121 | childSetTabChangeCallback("Directory Tabs", "popular_panel", onTabChanged, this); |
@@ -130,7 +123,28 @@ LLFloaterDirectory::LLFloaterDirectory(const std::string& name) | |||
130 | childSetTabChangeCallback("Directory Tabs", "land_sales_panel", onTabChanged, this); | 123 | childSetTabChangeCallback("Directory Tabs", "land_sales_panel", onTabChanged, this); |
131 | childSetTabChangeCallback("Directory Tabs", "people_panel", onTabChanged, this); | 124 | childSetTabChangeCallback("Directory Tabs", "people_panel", onTabChanged, this); |
132 | childSetTabChangeCallback("Directory Tabs", "groups_panel", onTabChanged, this); | 125 | childSetTabChangeCallback("Directory Tabs", "groups_panel", onTabChanged, this); |
133 | childSetTabChangeCallback("Directory Tabs", "all_panel", onTabChanged, this); | 126 | childSetTabChangeCallback("Directory Tabs", "find_all_old_panel", onTabChanged, this); |
127 | } | ||
128 | |||
129 | LLFloaterDirectory::~LLFloaterDirectory() | ||
130 | { | ||
131 | sInstance = NULL; | ||
132 | delete mPanelAvatarp; mPanelAvatarp = NULL; | ||
133 | delete mPanelEventp; mPanelEventp = NULL; | ||
134 | delete mPanelGroupp; mPanelGroupp = NULL; | ||
135 | delete mPanelGroupHolderp; mPanelGroupHolderp = NULL; | ||
136 | delete mPanelPlacep; mPanelPlacep = NULL; | ||
137 | delete mPanelPlaceSmallp; mPanelPlaceSmallp = NULL; | ||
138 | delete mPanelClassifiedp; mPanelClassifiedp = NULL; | ||
139 | gSavedSettings.setBOOL("ShowDirectory", FALSE); | ||
140 | } | ||
141 | |||
142 | // static | ||
143 | void *LLFloaterDirectory::createFindAll(void* userdata) | ||
144 | { | ||
145 | LLFloaterDirectory *self = (LLFloaterDirectory*)userdata; | ||
146 | self->mFindAllPanel = LLPanelDirFindAllInterface::create(self); | ||
147 | return self->mFindAllPanel; | ||
134 | } | 148 | } |
135 | 149 | ||
136 | // static | 150 | // static |
@@ -161,8 +175,7 @@ void* LLFloaterDirectory::createPopular(void* userdata) | |||
161 | void* LLFloaterDirectory::createPlaces(void* userdata) | 175 | void* LLFloaterDirectory::createPlaces(void* userdata) |
162 | { | 176 | { |
163 | LLFloaterDirectory *self = (LLFloaterDirectory*)userdata; | 177 | LLFloaterDirectory *self = (LLFloaterDirectory*)userdata; |
164 | self->mPlacesPanel = new LLPanelDirPlaces("places_panel", self); | 178 | return new LLPanelDirPlaces("places_panel", self); |
165 | return self->mPlacesPanel; | ||
166 | } | 179 | } |
167 | 180 | ||
168 | // static | 181 | // static |
@@ -178,24 +191,21 @@ void* LLFloaterDirectory::createLand(void* userdata) | |||
178 | void* LLFloaterDirectory::createPeople(void* userdata) | 191 | void* LLFloaterDirectory::createPeople(void* userdata) |
179 | { | 192 | { |
180 | LLFloaterDirectory *self = (LLFloaterDirectory*)userdata; | 193 | LLFloaterDirectory *self = (LLFloaterDirectory*)userdata; |
181 | self->mPeoplePanel = new LLPanelDirPeople("people_panel", self); | 194 | return new LLPanelDirPeople("people_panel", self); |
182 | return self->mPeoplePanel; | ||
183 | } | 195 | } |
184 | 196 | ||
185 | // static | 197 | // static |
186 | void* LLFloaterDirectory::createGroups(void* userdata) | 198 | void* LLFloaterDirectory::createGroups(void* userdata) |
187 | { | 199 | { |
188 | LLFloaterDirectory *self = (LLFloaterDirectory*)userdata; | 200 | LLFloaterDirectory *self = (LLFloaterDirectory*)userdata; |
189 | self->mGroupsPanel = new LLPanelDirGroups("groups_panel", self); | 201 | return new LLPanelDirGroups("groups_panel", self); |
190 | return self->mGroupsPanel; | ||
191 | } | 202 | } |
192 | 203 | ||
193 | // static | 204 | // static |
194 | void *LLFloaterDirectory::createFind(void* userdata) | 205 | void *LLFloaterDirectory::createFindAllOld(void* userdata) |
195 | { | 206 | { |
196 | LLFloaterDirectory *self = (LLFloaterDirectory*)userdata; | 207 | LLFloaterDirectory *self = (LLFloaterDirectory*)userdata; |
197 | self->mFindPanel = new LLPanelDirFind("find_panel", self); | 208 | return new LLPanelDirFindAllOld("find_all_old_panel", self); |
198 | return self->mFindPanel; | ||
199 | } | 209 | } |
200 | 210 | ||
201 | // static | 211 | // static |
@@ -282,6 +292,13 @@ void LLFloaterDirectory::requestClassifieds() | |||
282 | } | 292 | } |
283 | } | 293 | } |
284 | 294 | ||
295 | void LLFloaterDirectory::showFindAll(const std::string& search_text) | ||
296 | { | ||
297 | showPanel("find_all_panel"); | ||
298 | LLPanelDirFindAllInterface::search(sInstance->mFindAllPanel, search_text); | ||
299 | } | ||
300 | |||
301 | |||
285 | void LLFloaterDirectory::showClassified(const LLUUID& classified_id) | 302 | void LLFloaterDirectory::showClassified(const LLUUID& classified_id) |
286 | { | 303 | { |
287 | showPanel("classified_panel"); | 304 | showPanel("classified_panel"); |
@@ -348,19 +365,6 @@ void LLFloaterDirectory::refreshGroup(const LLUUID& group_id) | |||
348 | } | 365 | } |
349 | } | 366 | } |
350 | 367 | ||
351 | LLFloaterDirectory::~LLFloaterDirectory() | ||
352 | { | ||
353 | sInstance = NULL; | ||
354 | delete mPanelAvatarp; mPanelAvatarp = NULL; | ||
355 | delete mPanelEventp; mPanelEventp = NULL; | ||
356 | delete mPanelGroupp; mPanelGroupp = NULL; | ||
357 | delete mPanelGroupHolderp; mPanelGroupHolderp = NULL; | ||
358 | delete mPanelPlacep; mPanelPlacep = NULL; | ||
359 | delete mPanelPlaceSmallp; mPanelPlaceSmallp = NULL; | ||
360 | delete mPanelClassifiedp; mPanelClassifiedp = NULL; | ||
361 | gSavedSettings.setBOOL("ShowDirectory", FALSE); | ||
362 | } | ||
363 | |||
364 | void LLFloaterDirectory::focusCurrentPanel() | 368 | void LLFloaterDirectory::focusCurrentPanel() |
365 | { | 369 | { |
366 | LLTabContainerCommon* tabs = LLUICtrlFactory::getTabContainerByName(this, "Directory Tabs"); | 370 | LLTabContainerCommon* tabs = LLUICtrlFactory::getTabContainerByName(this, "Directory Tabs"); |
@@ -373,25 +377,16 @@ void LLFloaterDirectory::focusCurrentPanel() | |||
373 | } | 377 | } |
374 | 378 | ||
375 | // static | 379 | // static |
376 | void LLFloaterDirectory::show(void *) | 380 | void LLFloaterDirectory::showPanel(const std::string& tabname) |
377 | { | 381 | { |
378 | #ifndef LL_RELEASE_FOR_DOWNLOAD | 382 | // This function gets called when web browser clicks are processed, |
379 | delete sInstance; | 383 | // so we don't delete the existing panel, which would delete the |
380 | sInstance = NULL; | 384 | // web browser instance currently handling the click. JC |
381 | #endif | ||
382 | if (!sInstance) | 385 | if (!sInstance) |
383 | { | 386 | { |
384 | sInstance = new LLFloaterDirectory("directory"); | 387 | sInstance = new LLFloaterDirectory("directory"); |
385 | } | 388 | } |
386 | |||
387 | sInstance->open(); /*Flawfinder: ignore*/ | 389 | sInstance->open(); /*Flawfinder: ignore*/ |
388 | sInstance->focusCurrentPanel(); | ||
389 | } | ||
390 | |||
391 | // static | ||
392 | void LLFloaterDirectory::showPanel(const LLString& tabname) | ||
393 | { | ||
394 | show(NULL); | ||
395 | sInstance->childShowTab("Directory Tabs", tabname); | 390 | sInstance->childShowTab("Directory Tabs", tabname); |
396 | sInstance->focusCurrentPanel(); | 391 | sInstance->focusCurrentPanel(); |
397 | } | 392 | } |
@@ -474,6 +469,21 @@ void LLFloaterDirectory::setVisible(BOOL visible) | |||
474 | LLFloater::setVisible(visible); | 469 | LLFloater::setVisible(visible); |
475 | } | 470 | } |
476 | 471 | ||
472 | // virtual | ||
473 | void LLFloaterDirectory::reshape(S32 width, S32 height, BOOL called_from_parent) | ||
474 | { | ||
475 | // Don't let this floater go below its minimum width and height, ever. | ||
476 | if (width < getMinWidth()) | ||
477 | { | ||
478 | width = getMinWidth(); | ||
479 | } | ||
480 | if (height < getMinHeight()) | ||
481 | { | ||
482 | height = getMinHeight(); | ||
483 | } | ||
484 | LLFloater::reshape(width, height, called_from_parent); | ||
485 | } | ||
486 | |||
477 | void LLFloaterDirectory::onClose(bool app_quitting) | 487 | void LLFloaterDirectory::onClose(bool app_quitting) |
478 | { | 488 | { |
479 | setVisible(FALSE); | 489 | setVisible(FALSE); |
@@ -491,3 +501,25 @@ void LLFloaterDirectory::onTabChanged(void* data, bool from_click) | |||
491 | gSavedSettings.setString("LastFindPanel", panel->getName()); | 501 | gSavedSettings.setString("LastFindPanel", panel->getName()); |
492 | } | 502 | } |
493 | } | 503 | } |
504 | |||
505 | // static | ||
506 | void LLFloaterDirectory::onTabChangedFindAll(void* data, bool from_click) | ||
507 | { | ||
508 | LLFloaterDirectory* self = (LLFloaterDirectory*)data; | ||
509 | if (!self) return; | ||
510 | |||
511 | self->hideAllDetailPanels(); | ||
512 | LLPanelDirFindAllInterface::focus(self->mFindAllPanel); | ||
513 | onTabChanged(data, from_click); | ||
514 | } | ||
515 | |||
516 | void LLFloaterDirectory::hideAllDetailPanels() | ||
517 | { | ||
518 | if (mPanelAvatarp) mPanelAvatarp->setVisible(FALSE); | ||
519 | if (mPanelEventp) mPanelEventp->setVisible(FALSE); | ||
520 | if (mPanelGroupp) mPanelGroupp->setVisible(FALSE); | ||
521 | if (mPanelGroupHolderp) mPanelGroupHolderp->setVisible(FALSE); | ||
522 | if (mPanelPlacep) mPanelPlacep->setVisible(FALSE); | ||
523 | if (mPanelPlaceSmallp) mPanelPlaceSmallp->setVisible(FALSE); | ||
524 | if (mPanelClassifiedp) mPanelClassifiedp->setVisible(FALSE); | ||
525 | } | ||
diff --git a/linden/indra/newview/llfloaterdirectory.h b/linden/indra/newview/llfloaterdirectory.h index 7314da7..f7a2905 100644 --- a/linden/indra/newview/llfloaterdirectory.h +++ b/linden/indra/newview/llfloaterdirectory.h | |||
@@ -33,18 +33,18 @@ | |||
33 | #define LL_LLFLOATERDIRECTORY_H | 33 | #define LL_LLFLOATERDIRECTORY_H |
34 | 34 | ||
35 | #include "llfloater.h" | 35 | #include "llfloater.h" |
36 | #include "lltabcontainer.h" | ||
37 | #include "viewer.h" | ||
38 | 36 | ||
39 | class LLDirectoryCore; | 37 | class LLDirectoryCore; |
40 | class LLPanelDirAdvanced; | ||
41 | class LLPanelDirBrowser; | 38 | class LLPanelDirBrowser; |
39 | |||
40 | class LLPanelDirAdvanced; | ||
41 | class LLPanelDirClassified; | ||
42 | class LLPanelDirEvents; | 42 | class LLPanelDirEvents; |
43 | class LLPanelDirFind; | 43 | class LLPanelDirFindAll; |
44 | class LLPanelDirFindAllOld; | ||
44 | class LLPanelDirGroups; | 45 | class LLPanelDirGroups; |
45 | class LLPanelDirLand; | 46 | class LLPanelDirLand; |
46 | class LLPanelDirPeople; | 47 | class LLPanelDirPeople; |
47 | class LLPanelDirClassified; | ||
48 | class LLPanelDirPlaces; | 48 | class LLPanelDirPlaces; |
49 | class LLPanelDirPopular; | 49 | class LLPanelDirPopular; |
50 | 50 | ||
@@ -62,11 +62,15 @@ public: | |||
62 | /*virtual*/ ~LLFloaterDirectory(); | 62 | /*virtual*/ ~LLFloaterDirectory(); |
63 | 63 | ||
64 | /*virtual*/ void setVisible(BOOL visible); | 64 | /*virtual*/ void setVisible(BOOL visible); |
65 | /*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent); | ||
65 | 66 | ||
66 | // Used for toggling God mode, which changes to visibility of | 67 | // Used for toggling God mode, which changes to visibility of |
67 | // some picks. | 68 | // some picks. |
68 | static void requestClassifieds(); | 69 | static void requestClassifieds(); |
69 | 70 | ||
71 | // Outside UI widgets can spawn this floater with various tabs | ||
72 | // selected. | ||
73 | static void showFindAll(const std::string& search_text); | ||
70 | static void showClassified(const LLUUID& classified_id); | 74 | static void showClassified(const LLUUID& classified_id); |
71 | static void showEvents(S32 event_id); | 75 | static void showEvents(S32 event_id); |
72 | static void showPopular(const LLUUID& parcel_id); | 76 | static void showPopular(const LLUUID& parcel_id); |
@@ -78,39 +82,25 @@ public: | |||
78 | static void toggleEvents(void*); | 82 | static void toggleEvents(void*); |
79 | static void toggleFind(void*); | 83 | static void toggleFind(void*); |
80 | static void onTabChanged(void*, bool); | 84 | static void onTabChanged(void*, bool); |
85 | static void onTabChangedFindAll(void*, bool); | ||
86 | |||
87 | void hideAllDetailPanels(); | ||
81 | 88 | ||
82 | protected: | 89 | private: |
83 | static void show(void *); | 90 | static void showPanel(const std::string& tabname); |
84 | static void showPanel(const LLString& tabname); | 91 | /*virtual*/ void onClose(bool app_quitting); |
85 | /*virtual*/ void onClose(bool app_quitting); | ||
86 | void focusCurrentPanel(); | 92 | void focusCurrentPanel(); |
87 | 93 | ||
88 | protected: | 94 | private: |
89 | 95 | // Some special "showByID" functions use these cached pointers. | |
90 | // This determines the order of panels in the directory | 96 | // They could be replaced by getPanelByName(), perhaps. JC |
91 | // From Left to Right | 97 | LLPanelDirFindAll* mFindAllPanel; |
92 | enum DIRECTORY_PANEL | 98 | LLPanelDirClassified* mClassifiedPanel; |
93 | { | 99 | LLPanelDirEvents* mEventsPanel; |
94 | DIRECTORY_PANEL_ALL, | 100 | LLPanelDirPopular* mPopularPanel; |
95 | DIRECTORY_PANEL_CLASSIFIED, | 101 | LLPanelDirLand* mLandPanel; |
96 | DIRECTORY_PANEL_EVENTS, | ||
97 | DIRECTORY_PANEL_POPULAR, | ||
98 | DIRECTORY_PANEL_LAND, | ||
99 | DIRECTORY_PANEL_PLACES, | ||
100 | DIRECTORY_PANEL_PEOPLE, | ||
101 | DIRECTORY_PANEL_GROUPS, | ||
102 | DIRECTORY_PANEL_TOTAL | ||
103 | }; | ||
104 | |||
105 | LLPanelDirClassified* mClassifiedPanel; | ||
106 | LLPanelDirEvents* mEventsPanel; | ||
107 | LLPanelDirPopular* mPopularPanel; | ||
108 | LLPanelDirPlaces* mPlacesPanel; | ||
109 | LLPanelDirLand* mLandPanel; | ||
110 | LLPanelDirPeople* mPeoplePanel; | ||
111 | LLPanelDirGroups* mGroupsPanel; | ||
112 | LLPanelDirFind* mFindPanel; | ||
113 | 102 | ||
103 | static void* createFindAll(void* userdata); | ||
114 | static void* createClassified(void* userdata); | 104 | static void* createClassified(void* userdata); |
115 | static void* createEvents(void* userdata); | 105 | static void* createEvents(void* userdata); |
116 | static void* createPopular(void* userdata); | 106 | static void* createPopular(void* userdata); |
@@ -118,7 +108,7 @@ protected: | |||
118 | static void* createLand(void* userdata); | 108 | static void* createLand(void* userdata); |
119 | static void* createPeople(void* userdata); | 109 | static void* createPeople(void* userdata); |
120 | static void* createGroups(void* userdata); | 110 | static void* createGroups(void* userdata); |
121 | static void* createFind(void* userdata); | 111 | static void* createFindAllOld(void* userdata); |
122 | 112 | ||
123 | static void* createClassifiedDetail(void* userdata); | 113 | static void* createClassifiedDetail(void* userdata); |
124 | static void* createAvatarDetail(void* userdata); | 114 | static void* createAvatarDetail(void* userdata); |
diff --git a/linden/indra/newview/llfloaterevent.cpp b/linden/indra/newview/llfloaterevent.cpp new file mode 100644 index 0000000..d237fc9 --- /dev/null +++ b/linden/indra/newview/llfloaterevent.cpp | |||
@@ -0,0 +1,120 @@ | |||
1 | /** | ||
2 | * @file llfloaterevent.cpp | ||
3 | * @brief LLFloaterEventInfo class implementation | ||
4 | * | ||
5 | * Event information as shown in a floating window from secondlife:// command | ||
6 | * handler. | ||
7 | * | ||
8 | * $LicenseInfo:firstyear=2002&license=internal$ | ||
9 | * | ||
10 | * Copyright (c) 2002-2007, Linden Research, Inc. | ||
11 | * | ||
12 | * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of | ||
13 | * this source code is governed by the Linden Lab Source Code Disclosure | ||
14 | * Agreement ("Agreement") previously entered between you and Linden | ||
15 | * Lab. By accessing, using, copying, modifying or distributing this | ||
16 | * software, you acknowledge that you have been informed of your | ||
17 | * obligations under the Agreement and agree to abide by those obligations. | ||
18 | * | ||
19 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
20 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
21 | * COMPLETENESS OR PERFORMANCE. | ||
22 | * $/LicenseInfo$ | ||
23 | */ | ||
24 | |||
25 | #include "llviewerprecompiledheaders.h" | ||
26 | |||
27 | #include "llfloaterevent.h" | ||
28 | |||
29 | // viewer project includes | ||
30 | #include "llcommandhandler.h" | ||
31 | #include "llpanelevent.h" | ||
32 | #include "llvieweruictrlfactory.h" | ||
33 | |||
34 | // linden library includes | ||
35 | #include "lluuid.h" | ||
36 | |||
37 | //////////////////////////////////////////////////////////////////////////// | ||
38 | // LLFloaterEventInfo | ||
39 | |||
40 | //----------------------------------------------------------------------------- | ||
41 | // Globals | ||
42 | //----------------------------------------------------------------------------- | ||
43 | |||
44 | LLMap< U32, LLFloaterEventInfo* > gEventInfoInstances; | ||
45 | |||
46 | class LLEventHandler : public LLCommandHandler | ||
47 | { | ||
48 | public: | ||
49 | LLEventHandler() : LLCommandHandler("event") { } | ||
50 | bool handle(const std::vector<std::string>& tokens) | ||
51 | { | ||
52 | if (tokens.size() < 2) | ||
53 | { | ||
54 | return false; | ||
55 | } | ||
56 | U32 event_id = atoi(tokens[0].c_str()); | ||
57 | if (tokens[1] == "about") | ||
58 | { | ||
59 | LLFloaterEventInfo::show(event_id); | ||
60 | return true; | ||
61 | } | ||
62 | return false; | ||
63 | } | ||
64 | }; | ||
65 | LLEventHandler gEventHandler; | ||
66 | |||
67 | LLFloaterEventInfo::LLFloaterEventInfo(const std::string& name, const U32 event_id) | ||
68 | : LLFloater(name), | ||
69 | mEventID( event_id ) | ||
70 | { | ||
71 | |||
72 | mFactoryMap["event_details_panel"] = LLCallbackMap(LLFloaterEventInfo::createEventDetail, this); | ||
73 | gUICtrlFactory->buildFloater(this, "floater_preview_event.xml", &getFactoryMap()); | ||
74 | gEventInfoInstances.addData(event_id, this); | ||
75 | } | ||
76 | |||
77 | LLFloaterEventInfo::~LLFloaterEventInfo() | ||
78 | { | ||
79 | // child views automatically deleted | ||
80 | gEventInfoInstances.removeData(mEventID); | ||
81 | } | ||
82 | |||
83 | void LLFloaterEventInfo::displayEventInfo(const U32 event_id) | ||
84 | { | ||
85 | mPanelEventp->setEventID(event_id); | ||
86 | this->setFrontmost(true); | ||
87 | } | ||
88 | |||
89 | // static | ||
90 | void* LLFloaterEventInfo::createEventDetail(void* userdata) | ||
91 | { | ||
92 | LLFloaterEventInfo *self = (LLFloaterEventInfo*)userdata; | ||
93 | self->mPanelEventp = new LLPanelEvent(); | ||
94 | gUICtrlFactory->buildPanel(self->mPanelEventp, "panel_event.xml"); | ||
95 | |||
96 | return self->mPanelEventp; | ||
97 | } | ||
98 | |||
99 | // static | ||
100 | LLFloaterEventInfo* LLFloaterEventInfo::show(const U32 event_id) | ||
101 | { | ||
102 | LLFloaterEventInfo *floater; | ||
103 | if (gEventInfoInstances.checkData(event_id)) | ||
104 | { | ||
105 | // ...bring that window to front | ||
106 | floater = gEventInfoInstances.getData(event_id); | ||
107 | floater->open(); /*Flawfinder: ignore*/ | ||
108 | floater->setFrontmost(true); | ||
109 | } | ||
110 | else | ||
111 | { | ||
112 | floater = new LLFloaterEventInfo("eventinfo", event_id ); | ||
113 | floater->center(); | ||
114 | floater->open(); /*Flawfinder: ignore*/ | ||
115 | floater->displayEventInfo(event_id); | ||
116 | floater->setFrontmost(true); | ||
117 | } | ||
118 | |||
119 | return floater; | ||
120 | } | ||
diff --git a/linden/indra/newview/llfloaterevent.h b/linden/indra/newview/llfloaterevent.h new file mode 100644 index 0000000..2946ff4 --- /dev/null +++ b/linden/indra/newview/llfloaterevent.h | |||
@@ -0,0 +1,52 @@ | |||
1 | /** | ||
2 | * @file llfloaterevent.h | ||
3 | * @brief LLFloaterEvent class implementation | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2002&license=internal$ | ||
6 | * | ||
7 | * Copyright (c) 2002-2007, Linden Research, Inc. | ||
8 | * | ||
9 | * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of | ||
10 | * this source code is governed by the Linden Lab Source Code Disclosure | ||
11 | * Agreement ("Agreement") previously entered between you and Linden | ||
12 | * Lab. By accessing, using, copying, modifying or distributing this | ||
13 | * software, you acknowledge that you have been informed of your | ||
14 | * obligations under the Agreement and agree to abide by those obligations. | ||
15 | * | ||
16 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
17 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
18 | * COMPLETENESS OR PERFORMANCE. | ||
19 | * $/LicenseInfo$ | ||
20 | */ | ||
21 | |||
22 | /** | ||
23 | * Event information as shown in a floating window from a secondlife:// url. | ||
24 | * Just a wrapper for LLPanelEvent. | ||
25 | */ | ||
26 | |||
27 | #ifndef LL_LLFLOATEREVENT_H | ||
28 | #define LL_LLFLOATEREVENT_H | ||
29 | |||
30 | #include "llfloater.h" | ||
31 | |||
32 | class LLPanelEvent; | ||
33 | |||
34 | class LLFloaterEventInfo : public LLFloater | ||
35 | { | ||
36 | public: | ||
37 | LLFloaterEventInfo(const std::string& name, const U32 event_id ); | ||
38 | /*virtual*/ ~LLFloaterEventInfo(); | ||
39 | |||
40 | void displayEventInfo(const U32 event_id); | ||
41 | |||
42 | static LLFloaterEventInfo* show(const U32 event_id); | ||
43 | |||
44 | static void* createEventDetail(void* userdata); | ||
45 | |||
46 | private: | ||
47 | U32 mEventID; // for which event is this window? | ||
48 | LLPanelEvent* mPanelEventp; | ||
49 | |||
50 | }; | ||
51 | |||
52 | #endif // LL_LLFLOATEREVENT_H | ||
diff --git a/linden/indra/newview/llfloatergroupinfo.cpp b/linden/indra/newview/llfloatergroupinfo.cpp index 3ddf968..eb3b692 100644 --- a/linden/indra/newview/llfloatergroupinfo.cpp +++ b/linden/indra/newview/llfloatergroupinfo.cpp | |||
@@ -1,6 +1,8 @@ | |||
1 | /** | 1 | /** |
2 | * @file llfloatergroupinfo.cpp | 2 | * @file llfloatergroupinfo.cpp |
3 | * @brief LLFloaterGroupInfo class implementation | 3 | * @brief LLFloaterGroupInfo class implementation |
4 | * Floater used both for display of group information and for | ||
5 | * creating new groups. | ||
4 | * | 6 | * |
5 | * $LicenseInfo:firstyear=2002&license=viewergpl$ | 7 | * $LicenseInfo:firstyear=2002&license=viewergpl$ |
6 | * | 8 | * |
@@ -29,23 +31,18 @@ | |||
29 | * $/LicenseInfo$ | 31 | * $/LicenseInfo$ |
30 | */ | 32 | */ |
31 | 33 | ||
32 | /** | ||
33 | * Floater used both for display of group information and for | ||
34 | * creating new groups. | ||
35 | * | ||
36 | * Help, I'm trapped in a software factory! | ||
37 | */ | ||
38 | |||
39 | #include "llviewerprecompiledheaders.h" | 34 | #include "llviewerprecompiledheaders.h" |
40 | 35 | ||
41 | #include "llfloatergroupinfo.h" | 36 | #include "llfloatergroupinfo.h" |
42 | 37 | ||
43 | #include "llagent.h" | 38 | #include "llagent.h" |
44 | #include "llcachename.h" | 39 | #include "llcommandhandler.h" |
45 | #include "llcommandhandler.h" | 40 | #include "llcommandhandler.h" |
46 | #include "llpanelgroup.h" | 41 | #include "llpanelgroup.h" |
47 | #include "llviewermessage.h" // for inventory_offer_callback | 42 | #include "llviewermessage.h" // for inventory_offer_callback |
43 | //#include "llviewerwindow.h" | ||
48 | 44 | ||
45 | #include "llcachename.h" | ||
49 | 46 | ||
50 | const char FLOATER_TITLE[] = "Group Information"; | 47 | const char FLOATER_TITLE[] = "Group Information"; |
51 | const LLRect FGI_RECT(0, 530, 420, 0); | 48 | const LLRect FGI_RECT(0, 530, 420, 0); |
diff --git a/linden/indra/newview/llfloaterhtml.cpp b/linden/indra/newview/llfloaterhtml.cpp index ebcf29f..86caaf5 100644 --- a/linden/indra/newview/llfloaterhtml.cpp +++ b/linden/indra/newview/llfloaterhtml.cpp | |||
@@ -84,10 +84,9 @@ LLFloaterHtml::LLFloaterHtml() | |||
84 | // open links in internal browser | 84 | // open links in internal browser |
85 | mWebBrowser->setOpenInExternalBrowser( false ); | 85 | mWebBrowser->setOpenInExternalBrowser( false ); |
86 | 86 | ||
87 | // *FIX: code in merge sl-search-8 | 87 | // don't automatically open secondlife links since we want to catch |
88 | // // don't automatically open secondlife links since we want to catch | 88 | // special ones that do other stuff (like open F1 Help) |
89 | // // special ones that do other stuff (like open F1 Help) | 89 | mWebBrowser->setOpenSLURLsInMap( false ); |
90 | // mWebBrowser->setOpenSLURLsInMap( false ); | ||
91 | } | 90 | } |
92 | #endif // LL_LIBXUL_ENABLED | 91 | #endif // LL_LIBXUL_ENABLED |
93 | } | 92 | } |
@@ -116,7 +115,7 @@ void LLFloaterHtml::draw() | |||
116 | bool enable_forward = mWebBrowser->canNavigateForward(); | 115 | bool enable_forward = mWebBrowser->canNavigateForward(); |
117 | childSetEnabled( "forward_btn", enable_forward ); | 116 | childSetEnabled( "forward_btn", enable_forward ); |
118 | }; | 117 | }; |
119 | #endif | 118 | #endif // LL_LIBXUL_ENABLED |
120 | 119 | ||
121 | LLFloater::draw(); | 120 | LLFloater::draw(); |
122 | } | 121 | } |
@@ -180,7 +179,7 @@ void LLFloaterHtml::onClickBack( void* data ) | |||
180 | self->mWebBrowser->navigateBack(); | 179 | self->mWebBrowser->navigateBack(); |
181 | }; | 180 | }; |
182 | }; | 181 | }; |
183 | #endif | 182 | #endif // LL_LIBXUL_ENABLED |
184 | } | 183 | } |
185 | 184 | ||
186 | //////////////////////////////////////////////////////////////////////////////// | 185 | //////////////////////////////////////////////////////////////////////////////// |
@@ -204,7 +203,7 @@ void LLFloaterHtml::onClickHome( void* data ) | |||
204 | self->mWebBrowser->navigateTo( "http://google.com" ); | 203 | self->mWebBrowser->navigateTo( "http://google.com" ); |
205 | } | 204 | } |
206 | }; | 205 | }; |
207 | #endif | 206 | #endif // LL_LIBXUL_ENABLED |
208 | }; | 207 | }; |
209 | } | 208 | } |
210 | 209 | ||
@@ -220,7 +219,7 @@ void LLFloaterHtml::onClickForward( void* data ) | |||
220 | { | 219 | { |
221 | self->mWebBrowser->navigateForward(); | 220 | self->mWebBrowser->navigateForward(); |
222 | }; | 221 | }; |
223 | #endif | 222 | #endif // LL_LIBXUL_ENABLED |
224 | }; | 223 | }; |
225 | } | 224 | } |
226 | 225 | ||
@@ -228,17 +227,17 @@ void LLFloaterHtml::onClickForward( void* data ) | |||
228 | // static | 227 | // static |
229 | void LLFloaterHtml::onCommitUrlEdit(LLUICtrl* ctrl, void* user_data) | 228 | void LLFloaterHtml::onCommitUrlEdit(LLUICtrl* ctrl, void* user_data) |
230 | { | 229 | { |
230 | #if LL_LIBXUL_ENABLED | ||
231 | LLFloaterHtml* self = (LLFloaterHtml*)user_data; | 231 | LLFloaterHtml* self = (LLFloaterHtml*)user_data; |
232 | 232 | ||
233 | LLLineEditor* editor = (LLLineEditor*)ctrl; | 233 | LLLineEditor* editor = (LLLineEditor*)ctrl; |
234 | std::string url = editor->getText(); | 234 | std::string url = editor->getText(); |
235 | 235 | ||
236 | #if LL_LIBXUL_ENABLED | ||
237 | if ( self->mWebBrowser ) | 236 | if ( self->mWebBrowser ) |
238 | { | 237 | { |
239 | self->mWebBrowser->navigateTo( url ); | 238 | self->mWebBrowser->navigateTo( url ); |
240 | }; | 239 | }; |
241 | #endif | 240 | #endif // LL_LIBXUL_ENABLED |
242 | } | 241 | } |
243 | 242 | ||
244 | //////////////////////////////////////////////////////////////////////////////// | 243 | //////////////////////////////////////////////////////////////////////////////// |
@@ -256,7 +255,7 @@ void LLFloaterHtml::onClickGo( void* data ) | |||
256 | { | 255 | { |
257 | self->mWebBrowser->navigateTo( url ); | 256 | self->mWebBrowser->navigateTo( url ); |
258 | }; | 257 | }; |
259 | #endif | 258 | #endif // LL_LIBXUL_ENABLED |
260 | }; | 259 | }; |
261 | }; | 260 | }; |
262 | } | 261 | } |
diff --git a/linden/indra/newview/llfloaterhtmlhelp.cpp b/linden/indra/newview/llfloaterhtmlhelp.cpp index 10afce8..70de21d 100644 --- a/linden/indra/newview/llfloaterhtmlhelp.cpp +++ b/linden/indra/newview/llfloaterhtmlhelp.cpp | |||
@@ -49,14 +49,13 @@ class LLFloaterHtmlHelp : | |||
49 | public LLWebBrowserCtrlObserver | 49 | public LLWebBrowserCtrlObserver |
50 | { | 50 | { |
51 | public: | 51 | public: |
52 | LLFloaterHtmlHelp(std::string start_url = ""); | 52 | LLFloaterHtmlHelp(std::string start_url, std::string title); |
53 | virtual ~LLFloaterHtmlHelp(); | 53 | virtual ~LLFloaterHtmlHelp(); |
54 | 54 | ||
55 | virtual void onClose( bool app_quitting ); | 55 | virtual void onClose( bool app_quitting ); |
56 | virtual void draw(); | 56 | virtual void draw(); |
57 | 57 | ||
58 | static void show(); | 58 | static void show(std::string url, std::string title); |
59 | static void show(std::string url); | ||
60 | static void onClickBack( void* data ); | 59 | static void onClickBack( void* data ); |
61 | static void onClickHome( void* data ); | 60 | static void onClickHome( void* data ); |
62 | static void onClickForward( void* data ); | 61 | static void onClickForward( void* data ); |
@@ -88,7 +87,7 @@ BOOL LLFloaterHtmlHelp::sFloaterOpened = FALSE; | |||
88 | 87 | ||
89 | //////////////////////////////////////////////////////////////////////////////// | 88 | //////////////////////////////////////////////////////////////////////////////// |
90 | // | 89 | // |
91 | LLFloaterHtmlHelp::LLFloaterHtmlHelp(std::string start_url) | 90 | LLFloaterHtmlHelp::LLFloaterHtmlHelp(std::string start_url, std::string title) |
92 | : LLFloater( "HTML Help" ), | 91 | : LLFloater( "HTML Help" ), |
93 | mWebBrowser( 0 ), | 92 | mWebBrowser( 0 ), |
94 | mStatusTextContents( "" ), | 93 | mStatusTextContents( "" ), |
@@ -102,10 +101,12 @@ LLFloaterHtmlHelp::LLFloaterHtmlHelp(std::string start_url) | |||
102 | childSetAction("back_btn", onClickBack, this); | 101 | childSetAction("back_btn", onClickBack, this); |
103 | childSetAction("home_btn", onClickHome, this); | 102 | childSetAction("home_btn", onClickHome, this); |
104 | childSetAction("forward_btn", onClickForward, this); | 103 | childSetAction("forward_btn", onClickForward, this); |
105 | childSetAction("close_btn", onClickClose, this); | ||
106 | 104 | ||
107 | setDefaultBtn("close_btn"); | 105 | if (!title.empty()) |
108 | 106 | { | |
107 | setTitle(title); | ||
108 | } | ||
109 | |||
109 | mWebBrowser = LLViewerUICtrlFactory::getWebBrowserByName(this, "html_help_browser" ); | 110 | mWebBrowser = LLViewerUICtrlFactory::getWebBrowserByName(this, "html_help_browser" ); |
110 | if ( mWebBrowser ) | 111 | if ( mWebBrowser ) |
111 | { | 112 | { |
@@ -168,7 +169,7 @@ void LLFloaterHtmlHelp::draw() | |||
168 | 169 | ||
169 | //////////////////////////////////////////////////////////////////////////////// | 170 | //////////////////////////////////////////////////////////////////////////////// |
170 | // | 171 | // |
171 | void LLFloaterHtmlHelp::show(std::string url) | 172 | void LLFloaterHtmlHelp::show(std::string url, std::string title) |
172 | { | 173 | { |
173 | gViewerWindow->alertXml("ClickOpenF1Help", onClickF1HelpLoadURL, (void*) NULL); | 174 | gViewerWindow->alertXml("ClickOpenF1Help", onClickF1HelpLoadURL, (void*) NULL); |
174 | 175 | ||
@@ -188,7 +189,7 @@ void LLFloaterHtmlHelp::show(std::string url) | |||
188 | return; | 189 | return; |
189 | } | 190 | } |
190 | 191 | ||
191 | LLFloaterHtmlHelp* self = new LLFloaterHtmlHelp(url); | 192 | LLFloaterHtmlHelp* self = new LLFloaterHtmlHelp(url, title); |
192 | 193 | ||
193 | // reposition floater from saved settings | 194 | // reposition floater from saved settings |
194 | LLRect rect = gSavedSettings.getRect( "HtmlHelpRect" ); | 195 | LLRect rect = gSavedSettings.getRect( "HtmlHelpRect" ); |
@@ -313,9 +314,9 @@ LLViewerHtmlHelp::~LLViewerHtmlHelp() | |||
313 | LLUI::setHtmlHelp(NULL); | 314 | LLUI::setHtmlHelp(NULL); |
314 | } | 315 | } |
315 | 316 | ||
316 | void LLViewerHtmlHelp::show(std::string url) | 317 | void LLViewerHtmlHelp::show(std::string url, std::string title) |
317 | { | 318 | { |
318 | LLFloaterHtmlHelp::show(url); | 319 | LLFloaterHtmlHelp::show(url, title); |
319 | } | 320 | } |
320 | 321 | ||
321 | BOOL LLViewerHtmlHelp::getFloaterOpened() | 322 | BOOL LLViewerHtmlHelp::getFloaterOpened() |
diff --git a/linden/indra/newview/llfloaterhtmlhelp.h b/linden/indra/newview/llfloaterhtmlhelp.h index c9a6d5b..28f3061 100644 --- a/linden/indra/newview/llfloaterhtmlhelp.h +++ b/linden/indra/newview/llfloaterhtmlhelp.h | |||
@@ -42,7 +42,7 @@ public: | |||
42 | LLViewerHtmlHelp(); | 42 | LLViewerHtmlHelp(); |
43 | virtual ~LLViewerHtmlHelp(); | 43 | virtual ~LLViewerHtmlHelp(); |
44 | 44 | ||
45 | /*virtual*/ void show(std::string start_url = std::string()); | 45 | /*virtual*/ void show(std::string start_url = "", std::string title = ""); |
46 | /*virtual*/ BOOL getFloaterOpened(); | 46 | /*virtual*/ BOOL getFloaterOpened(); |
47 | }; | 47 | }; |
48 | 48 | ||
diff --git a/linden/indra/newview/llfloaterland.cpp b/linden/indra/newview/llfloaterland.cpp index 43c39aa..283b3f4 100644 --- a/linden/indra/newview/llfloaterland.cpp +++ b/linden/indra/newview/llfloaterland.cpp | |||
@@ -355,7 +355,6 @@ BOOL LLPanelLandGeneral::postBuild() | |||
355 | childSetPrevalidate("Name", LLLineEditor::prevalidatePrintableNotPipe); | 355 | childSetPrevalidate("Name", LLLineEditor::prevalidatePrintableNotPipe); |
356 | childSetUserData("Name", this); | 356 | childSetUserData("Name", this); |
357 | 357 | ||
358 | |||
359 | mEditDesc = LLUICtrlFactory::getTextEditorByName(this, "Description"); | 358 | mEditDesc = LLUICtrlFactory::getTextEditorByName(this, "Description"); |
360 | mEditDesc->setCommitOnFocusLost(TRUE); | 359 | mEditDesc->setCommitOnFocusLost(TRUE); |
361 | mEditDesc->setCommitCallback(onCommitAny); | 360 | mEditDesc->setCommitCallback(onCommitAny); |
@@ -1865,13 +1864,11 @@ LLPanelLandOptions::LLPanelLandOptions(LLParcelSelectionHandle& parcel) | |||
1865 | mLocationText(NULL), | 1864 | mLocationText(NULL), |
1866 | mSetBtn(NULL), | 1865 | mSetBtn(NULL), |
1867 | mClearBtn(NULL), | 1866 | mClearBtn(NULL), |
1868 | mAllowPublishCtrl(NULL), | ||
1869 | mMatureCtrl(NULL), | 1867 | mMatureCtrl(NULL), |
1870 | mPushRestrictionCtrl(NULL), | 1868 | mPushRestrictionCtrl(NULL), |
1871 | mPublishHelpButton(NULL), | 1869 | mPublishHelpButton(NULL), |
1872 | mParcel(parcel) | 1870 | mParcel(parcel) |
1873 | { | 1871 | { |
1874 | |||
1875 | } | 1872 | } |
1876 | 1873 | ||
1877 | 1874 | ||
@@ -1932,7 +1929,7 @@ BOOL LLPanelLandOptions::postBuild() | |||
1932 | mPublishHelpButton->setClickedCallback(onClickPublishHelp, this); | 1929 | mPublishHelpButton->setClickedCallback(onClickPublishHelp, this); |
1933 | 1930 | ||
1934 | 1931 | ||
1935 | if (gAgent.mAccess < SIM_ACCESS_MATURE) | 1932 | if (gAgent.isTeen()) |
1936 | { | 1933 | { |
1937 | // Disable these buttons if they are PG (Teen) users | 1934 | // Disable these buttons if they are PG (Teen) users |
1938 | mPublishHelpButton->setVisible(FALSE); | 1935 | mPublishHelpButton->setVisible(FALSE); |
@@ -2147,7 +2144,7 @@ void LLPanelLandOptions::refresh() | |||
2147 | mMatureCtrl->setEnabled( can_change_identity ); | 2144 | mMatureCtrl->setEnabled( can_change_identity ); |
2148 | mPublishHelpButton->setEnabled( can_change_identity ); | 2145 | mPublishHelpButton->setEnabled( can_change_identity ); |
2149 | 2146 | ||
2150 | if (gAgent.mAccess < SIM_ACCESS_MATURE) | 2147 | if (gAgent.isTeen()) |
2151 | { | 2148 | { |
2152 | // Disable these buttons if they are PG (Teen) users | 2149 | // Disable these buttons if they are PG (Teen) users |
2153 | mPublishHelpButton->setVisible(FALSE); | 2150 | mPublishHelpButton->setVisible(FALSE); |
diff --git a/linden/indra/newview/llfloaterland.h b/linden/indra/newview/llfloaterland.h index 9eb9172..d8b7ecf 100644 --- a/linden/indra/newview/llfloaterland.h +++ b/linden/indra/newview/llfloaterland.h | |||
@@ -42,17 +42,18 @@ | |||
42 | typedef std::set<LLUUID, lluuid_less> uuid_list_t; | 42 | typedef std::set<LLUUID, lluuid_less> uuid_list_t; |
43 | const F32 CACHE_REFRESH_TIME = 2.5f; | 43 | const F32 CACHE_REFRESH_TIME = 2.5f; |
44 | 44 | ||
45 | class LLTextBox; | 45 | class LLButton; |
46 | class LLCheckBoxCtrl; | 46 | class LLCheckBoxCtrl; |
47 | class LLRadioGroup; | 47 | class LLRadioGroup; |
48 | class LLComboBox; | 48 | class LLComboBox; |
49 | class LLButton; | ||
50 | class LLNameListCtrl; | 49 | class LLNameListCtrl; |
51 | class LLSpinCtrl; | 50 | class LLSpinCtrl; |
52 | class LLLineEditor; | 51 | class LLLineEditor; |
53 | class LLRadioGroup; | 52 | class LLRadioGroup; |
54 | class LLParcelSelectionObserver; | 53 | class LLParcelSelectionObserver; |
55 | class LLTabContainer; | 54 | class LLTabContainer; |
55 | class LLTextBox; | ||
56 | class LLTextEditor; | ||
56 | class LLTextureCtrl; | 57 | class LLTextureCtrl; |
57 | class LLViewerTextEditor; | 58 | class LLViewerTextEditor; |
58 | class LLParcelSelection; | 59 | class LLParcelSelection; |
@@ -347,7 +348,6 @@ protected: | |||
347 | LLButton* mSetBtn; | 348 | LLButton* mSetBtn; |
348 | LLButton* mClearBtn; | 349 | LLButton* mClearBtn; |
349 | 350 | ||
350 | LLCheckBoxCtrl *mAllowPublishCtrl; | ||
351 | LLCheckBoxCtrl *mMatureCtrl; | 351 | LLCheckBoxCtrl *mMatureCtrl; |
352 | LLCheckBoxCtrl *mPushRestrictionCtrl; | 352 | LLCheckBoxCtrl *mPushRestrictionCtrl; |
353 | LLButton *mPublishHelpButton; | 353 | LLButton *mPublishHelpButton; |
diff --git a/linden/indra/newview/llfloaterlandmark.cpp b/linden/indra/newview/llfloaterlandmark.cpp new file mode 100644 index 0000000..14277c6 --- /dev/null +++ b/linden/indra/newview/llfloaterlandmark.cpp | |||
@@ -0,0 +1,471 @@ | |||
1 | /** | ||
2 | * @file lllandmark.cpp | ||
3 | * @author Richard Nelson, James Cook, Sam Kolb | ||
4 | * @brief LLLandmarkCtrl class implementation including related functions | ||
5 | * | ||
6 | * $LicenseInfo:firstyear=2002&license=internal$ | ||
7 | * | ||
8 | * Copyright (c) 2002-2007, Linden Research, Inc. | ||
9 | * | ||
10 | * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of | ||
11 | * this source code is governed by the Linden Lab Source Code Disclosure | ||
12 | * Agreement ("Agreement") previously entered between you and Linden | ||
13 | * Lab. By accessing, using, copying, modifying or distributing this | ||
14 | * software, you acknowledge that you have been informed of your | ||
15 | * obligations under the Agreement and agree to abide by those obligations. | ||
16 | * | ||
17 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
18 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
19 | * COMPLETENESS OR PERFORMANCE. | ||
20 | * $/LicenseInfo$ | ||
21 | */ | ||
22 | |||
23 | #include "llviewerprecompiledheaders.h" | ||
24 | |||
25 | #include "llfloaterlandmark.h" | ||
26 | |||
27 | #include "llagent.h" | ||
28 | #include "llviewerimagelist.h" | ||
29 | #include "llcheckboxctrl.h" | ||
30 | #include "llcombobox.h" | ||
31 | #include "llbutton.h" | ||
32 | #include "lldraghandle.h" | ||
33 | #include "llfocusmgr.h" | ||
34 | #include "llviewerimage.h" | ||
35 | #include "llviewerparcelmgr.h" | ||
36 | #include "llfolderview.h" | ||
37 | #include "llinventory.h" | ||
38 | #include "llinventorymodel.h" | ||
39 | #include "llinventoryview.h" | ||
40 | #include "lllineeditor.h" | ||
41 | #include "llui.h" | ||
42 | #include "llviewerinventory.h" | ||
43 | #include "llpermissions.h" | ||
44 | #include "llsaleinfo.h" | ||
45 | #include "llassetstorage.h" | ||
46 | #include "lltextbox.h" | ||
47 | #include "llparcel.h" | ||
48 | #include "llresizehandle.h" | ||
49 | #include "llscrollcontainer.h" | ||
50 | #include "lltoolmgr.h" | ||
51 | #include "lltoolpipette.h" | ||
52 | |||
53 | #include "lltool.h" | ||
54 | #include "llviewerwindow.h" | ||
55 | #include "llviewerobject.h" | ||
56 | #include "llviewercontrol.h" | ||
57 | #include "llglheaders.h" | ||
58 | #include "llvieweruictrlfactory.h" | ||
59 | |||
60 | #include "roles_constants.h" | ||
61 | |||
62 | |||
63 | |||
64 | static const S32 CLOSE_BTN_WIDTH = 100; | ||
65 | const S32 PIPETTE_BTN_WIDTH = 32; | ||
66 | static const S32 HPAD = 4; | ||
67 | static const S32 VPAD = 4; | ||
68 | static const S32 LINE = 16; | ||
69 | static const S32 SMALL_BTN_WIDTH = 64; | ||
70 | static const S32 TEX_PICKER_MIN_WIDTH = | ||
71 | (HPAD + | ||
72 | CLOSE_BTN_WIDTH + | ||
73 | HPAD + | ||
74 | CLOSE_BTN_WIDTH + | ||
75 | HPAD + | ||
76 | SMALL_BTN_WIDTH + | ||
77 | HPAD + | ||
78 | SMALL_BTN_WIDTH + | ||
79 | HPAD + | ||
80 | 30 + | ||
81 | RESIZE_HANDLE_WIDTH * 2); | ||
82 | static const S32 CLEAR_BTN_WIDTH = 50; | ||
83 | static const S32 TEX_PICKER_MIN_HEIGHT = 290; | ||
84 | static const S32 FOOTER_HEIGHT = 100; | ||
85 | static const S32 BORDER_PAD = HPAD; | ||
86 | static const S32 TEXTURE_INVENTORY_PADDING = 30; | ||
87 | static const F32 CONTEXT_CONE_IN_ALPHA = 0.0f; | ||
88 | static const F32 CONTEXT_CONE_OUT_ALPHA = 1.f; | ||
89 | static const F32 CONTEXT_FADE_TIME = 0.08f; | ||
90 | |||
91 | //static const char CURRENT_IMAGE_NAME[] = "Current Landmark"; | ||
92 | //static const char WHITE_IMAGE_NAME[] = "Blank Landmark"; | ||
93 | //static const char NO_IMAGE_NAME[] = "None"; | ||
94 | |||
95 | |||
96 | LLFloaterLandmark::LLFloaterLandmark(const LLSD& data) | ||
97 | : | ||
98 | mTentativeLabel(NULL), | ||
99 | mResolutionLabel(NULL), | ||
100 | mIsDirty( FALSE ), | ||
101 | mActive( TRUE ), | ||
102 | mSearchEdit(NULL), | ||
103 | mContextConeOpacity(0.f) | ||
104 | { | ||
105 | gUICtrlFactory->buildFloater(this,"floater_landmark_ctrl.xml"); | ||
106 | |||
107 | mTentativeLabel = LLUICtrlFactory::getTextBoxByName(this,"Multiple"); | ||
108 | |||
109 | mResolutionLabel = LLUICtrlFactory::getTextBoxByName(this,"unknown"); | ||
110 | |||
111 | |||
112 | childSetCommitCallback("show_folders_check", onShowFolders, this); | ||
113 | childSetVisible("show_folders_check", FALSE); | ||
114 | |||
115 | mSearchEdit = (LLSearchEditor*)getCtrlByNameAndType("inventory search editor", WIDGET_TYPE_SEARCH_EDITOR); | ||
116 | mSearchEdit->setSearchCallback(onSearchEdit, this); | ||
117 | |||
118 | mInventoryPanel = (LLInventoryPanel*)this->getCtrlByNameAndType("inventory panel", WIDGET_TYPE_INVENTORY_PANEL); | ||
119 | |||
120 | if(mInventoryPanel) | ||
121 | { | ||
122 | U32 filter_types = 0x0; | ||
123 | filter_types |= 0x1 << LLInventoryType::IT_LANDMARK; | ||
124 | // filter_types |= 0x1 << LLInventoryType::IT_SNAPSHOT; | ||
125 | |||
126 | mInventoryPanel->setFilterTypes(filter_types); | ||
127 | //mInventoryPanel->setFilterPermMask(getFilterPermMask()); //Commented out due to no-copy texture loss. | ||
128 | mInventoryPanel->setSelectCallback(onSelectionChange, this); | ||
129 | mInventoryPanel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS); | ||
130 | mInventoryPanel->setAllowMultiSelect(FALSE); | ||
131 | |||
132 | // store this filter as the default one | ||
133 | mInventoryPanel->getRootFolder()->getFilter()->markDefault(); | ||
134 | |||
135 | // Commented out to stop opening all folders with textures | ||
136 | mInventoryPanel->openDefaultFolderForType(LLAssetType::AT_LANDMARK); | ||
137 | |||
138 | // don't put keyboard focus on selected item, because the selection callback | ||
139 | // will assume that this was user input | ||
140 | mInventoryPanel->setSelection(findItemID(mImageAssetID, FALSE), TAKE_FOCUS_NO); | ||
141 | } | ||
142 | |||
143 | mSavedFolderState = new LLSaveFolderState(); | ||
144 | mNoCopyLandmarkSelected = FALSE; | ||
145 | |||
146 | childSetAction("Close", LLFloaterLandmark::onBtnClose,this); | ||
147 | childSetAction("New", LLFloaterLandmark::onBtnNew,this); | ||
148 | childSetAction("NewFolder", LLFloaterLandmark::onBtnNewFolder,this); | ||
149 | childSetAction("Edit", LLFloaterLandmark::onBtnEdit,this); | ||
150 | childSetAction("Rename", LLFloaterLandmark::onBtnRename,this); | ||
151 | childSetAction("Delete", LLFloaterLandmark::onBtnDelete,this); | ||
152 | |||
153 | setCanMinimize(FALSE); | ||
154 | |||
155 | mSavedFolderState->setApply(FALSE); | ||
156 | } | ||
157 | |||
158 | LLFloaterLandmark::~LLFloaterLandmark() | ||
159 | { | ||
160 | delete mSavedFolderState; | ||
161 | } | ||
162 | |||
163 | void LLFloaterLandmark::setActive( BOOL active ) | ||
164 | { | ||
165 | mActive = active; | ||
166 | } | ||
167 | |||
168 | // virtual | ||
169 | BOOL LLFloaterLandmark::handleDragAndDrop( | ||
170 | S32 x, S32 y, MASK mask, | ||
171 | BOOL drop, | ||
172 | EDragAndDropType cargo_type, void *cargo_data, | ||
173 | EAcceptance *accept, | ||
174 | LLString& tooltip_msg) | ||
175 | { | ||
176 | BOOL handled = FALSE; | ||
177 | |||
178 | if (cargo_type == DAD_LANDMARK) | ||
179 | { | ||
180 | LLInventoryItem *item = (LLInventoryItem *)cargo_data; | ||
181 | |||
182 | BOOL copy = item->getPermissions().allowCopyBy(gAgent.getID()); | ||
183 | BOOL mod = item->getPermissions().allowModifyBy(gAgent.getID()); | ||
184 | BOOL xfer = item->getPermissions().allowOperationBy(PERM_TRANSFER, | ||
185 | gAgent.getID()); | ||
186 | |||
187 | PermissionMask item_perm_mask = 0; | ||
188 | if (copy) item_perm_mask |= PERM_COPY; | ||
189 | if (mod) item_perm_mask |= PERM_MODIFY; | ||
190 | if (xfer) item_perm_mask |= PERM_TRANSFER; | ||
191 | |||
192 | //PermissionMask filter_perm_mask = getFilterPermMask(); Commented out due to no-copy texture loss. | ||
193 | PermissionMask filter_perm_mask = mImmediateFilterPermMask; | ||
194 | if ( (item_perm_mask & filter_perm_mask) == filter_perm_mask ) | ||
195 | { | ||
196 | |||
197 | *accept = ACCEPT_YES_SINGLE; | ||
198 | } | ||
199 | else | ||
200 | { | ||
201 | *accept = ACCEPT_NO; | ||
202 | } | ||
203 | } | ||
204 | else | ||
205 | { | ||
206 | *accept = ACCEPT_NO; | ||
207 | } | ||
208 | |||
209 | handled = TRUE; | ||
210 | lldebugst(LLERR_USER_INPUT) << "dragAndDrop handled by LLFloaterLandmark " << getName() << llendl; | ||
211 | |||
212 | return handled; | ||
213 | } | ||
214 | |||
215 | BOOL LLFloaterLandmark::handleKeyHere(KEY key, MASK mask, BOOL called_from_parent) | ||
216 | { | ||
217 | LLFolderView* root_folder = mInventoryPanel->getRootFolder(); | ||
218 | |||
219 | if (root_folder && mSearchEdit) | ||
220 | { | ||
221 | if (!called_from_parent && mSearchEdit->hasFocus() && | ||
222 | (key == KEY_RETURN || key == KEY_DOWN) && | ||
223 | mask == MASK_NONE) | ||
224 | { | ||
225 | if (!root_folder->getCurSelectedItem()) | ||
226 | { | ||
227 | LLFolderViewItem* itemp = root_folder->getItemByID(gAgent.getInventoryRootID()); | ||
228 | if (itemp) | ||
229 | { | ||
230 | root_folder->setSelection(itemp, FALSE, FALSE); | ||
231 | } | ||
232 | } | ||
233 | root_folder->scrollToShowSelection(); | ||
234 | |||
235 | // move focus to inventory proper | ||
236 | root_folder->setFocus(TRUE); | ||
237 | |||
238 | return TRUE; | ||
239 | } | ||
240 | |||
241 | if (root_folder->hasFocus() && key == KEY_UP) | ||
242 | { | ||
243 | mSearchEdit->focusFirstItem(TRUE); | ||
244 | } | ||
245 | } | ||
246 | |||
247 | return LLFloater::handleKeyHere(key, mask, called_from_parent); | ||
248 | } | ||
249 | |||
250 | // virtual | ||
251 | void LLFloaterLandmark::onClose(bool app_quitting) | ||
252 | { | ||
253 | destroy(); | ||
254 | } | ||
255 | |||
256 | |||
257 | |||
258 | const LLUUID& LLFloaterLandmark::findItemID(const LLUUID& asset_id, BOOL copyable_only) | ||
259 | { | ||
260 | LLViewerInventoryCategory::cat_array_t cats; | ||
261 | LLViewerInventoryItem::item_array_t items; | ||
262 | LLAssetIDMatches asset_id_matches(asset_id); | ||
263 | gInventory.collectDescendentsIf(LLUUID::null, | ||
264 | cats, | ||
265 | items, | ||
266 | LLInventoryModel::INCLUDE_TRASH, | ||
267 | asset_id_matches); | ||
268 | |||
269 | if (items.count()) | ||
270 | { | ||
271 | // search for copyable version first | ||
272 | for (S32 i = 0; i < items.count(); i++) | ||
273 | { | ||
274 | LLInventoryItem* itemp = items[i]; | ||
275 | LLPermissions item_permissions = itemp->getPermissions(); | ||
276 | if (item_permissions.allowCopyBy(gAgent.getID(), gAgent.getGroupID())) | ||
277 | { | ||
278 | return itemp->getUUID(); | ||
279 | } | ||
280 | } | ||
281 | // otherwise just return first instance, unless copyable requested | ||
282 | if (copyable_only) | ||
283 | { | ||
284 | return LLUUID::null; | ||
285 | } | ||
286 | else | ||
287 | { | ||
288 | return items[0]->getUUID(); | ||
289 | } | ||
290 | } | ||
291 | |||
292 | return LLUUID::null; | ||
293 | } | ||
294 | |||
295 | // static | ||
296 | void LLFloaterLandmark::onBtnClose(void* userdata) | ||
297 | { | ||
298 | LLFloaterLandmark* self = (LLFloaterLandmark*) userdata; | ||
299 | self->mIsDirty = FALSE; | ||
300 | self->close(); | ||
301 | } | ||
302 | |||
303 | // static | ||
304 | void LLFloaterLandmark::onBtnEdit(void* userdata) | ||
305 | { | ||
306 | LLFloaterLandmark* self = (LLFloaterLandmark*) userdata; | ||
307 | // There isn't one, so make a new preview | ||
308 | LLViewerInventoryItem* itemp = gInventory.getItem(self->mImageAssetID); | ||
309 | if(itemp) | ||
310 | { | ||
311 | open_landmark(itemp, itemp->getName(), TRUE); | ||
312 | } | ||
313 | } | ||
314 | // static | ||
315 | void LLFloaterLandmark::onBtnNew(void* userdata) | ||
316 | { | ||
317 | LLViewerRegion* agent_region = gAgent.getRegion(); | ||
318 | if(!agent_region) | ||
319 | { | ||
320 | llwarns << "No agent region" << llendl; | ||
321 | return; | ||
322 | } | ||
323 | LLParcel* agent_parcel = gParcelMgr->getAgentParcel(); | ||
324 | if (!agent_parcel) | ||
325 | { | ||
326 | llwarns << "No agent parcel" << llendl; | ||
327 | return; | ||
328 | } | ||
329 | if (!agent_parcel->getAllowLandmark() | ||
330 | && !LLViewerParcelMgr::isParcelOwnedByAgent(agent_parcel, GP_LAND_ALLOW_LANDMARK)) | ||
331 | { | ||
332 | gViewerWindow->alertXml("CannotCreateLandmarkNotOwner"); | ||
333 | return; | ||
334 | } | ||
335 | |||
336 | LLUUID folder_id; | ||
337 | folder_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_LANDMARK); | ||
338 | std::string pos_string; | ||
339 | gAgent.buildLocationString(pos_string); | ||
340 | |||
341 | create_inventory_item(gAgent.getID(), gAgent.getSessionID(), | ||
342 | folder_id, LLTransactionID::tnull, | ||
343 | pos_string, pos_string, // name, desc | ||
344 | LLAssetType::AT_LANDMARK, | ||
345 | LLInventoryType::IT_LANDMARK, | ||
346 | NOT_WEARABLE, PERM_ALL, | ||
347 | NULL); | ||
348 | } | ||
349 | // static | ||
350 | void LLFloaterLandmark::onBtnNewFolder(void* userdata) | ||
351 | { | ||
352 | |||
353 | } | ||
354 | // static | ||
355 | void LLFloaterLandmark::onBtnDelete(void* userdata) | ||
356 | { | ||
357 | LLFloaterLandmark* self = (LLFloaterLandmark*)userdata; | ||
358 | |||
359 | LLViewerInventoryItem* item = gInventory.getItem(self->mImageAssetID); | ||
360 | if(item) | ||
361 | { | ||
362 | // Move the item to the trash | ||
363 | LLUUID trash_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_TRASH); | ||
364 | if (item->getParentUUID() != trash_id) | ||
365 | { | ||
366 | LLInventoryModel::update_list_t update; | ||
367 | LLInventoryModel::LLCategoryUpdate old_folder(item->getParentUUID(),-1); | ||
368 | update.push_back(old_folder); | ||
369 | LLInventoryModel::LLCategoryUpdate new_folder(trash_id, 1); | ||
370 | update.push_back(new_folder); | ||
371 | gInventory.accountForUpdate(update); | ||
372 | |||
373 | LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item); | ||
374 | new_item->setParent(trash_id); | ||
375 | // no need to restamp it though it's a move into trash because | ||
376 | // it's a brand new item already. | ||
377 | new_item->updateParentOnServer(FALSE); | ||
378 | gInventory.updateItem(new_item); | ||
379 | gInventory.notifyObservers(); | ||
380 | } | ||
381 | } | ||
382 | |||
383 | // Delete the item entirely | ||
384 | /* | ||
385 | item->removeFromServer(); | ||
386 | gInventory.deleteObject(item->getUUID()); | ||
387 | gInventory.notifyObservers(); | ||
388 | */ | ||
389 | |||
390 | |||
391 | } | ||
392 | |||
393 | // static | ||
394 | void LLFloaterLandmark::onBtnRename(void* userdata) | ||
395 | { | ||
396 | |||
397 | } | ||
398 | |||
399 | // static | ||
400 | void LLFloaterLandmark::onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action, void* data) | ||
401 | { | ||
402 | LLFloaterLandmark* self = (LLFloaterLandmark*)data; | ||
403 | if (items.size()) | ||
404 | { | ||
405 | LLFolderViewItem* first_item = items.front(); | ||
406 | LLInventoryItem* itemp = gInventory.getItem(first_item->getListener()->getUUID()); | ||
407 | self->mNoCopyLandmarkSelected = FALSE; | ||
408 | if (itemp) | ||
409 | { | ||
410 | if (!itemp->getPermissions().allowCopyBy(gAgent.getID())) | ||
411 | { | ||
412 | self->mNoCopyLandmarkSelected = TRUE; | ||
413 | } | ||
414 | self->mImageAssetID = itemp->getUUID(); | ||
415 | self->mIsDirty = TRUE; | ||
416 | } | ||
417 | } | ||
418 | } | ||
419 | |||
420 | // static | ||
421 | void LLFloaterLandmark::onShowFolders(LLUICtrl* ctrl, void *user_data) | ||
422 | { | ||
423 | LLCheckBoxCtrl* check_box = (LLCheckBoxCtrl*)ctrl; | ||
424 | LLFloaterLandmark* picker = (LLFloaterLandmark*)user_data; | ||
425 | |||
426 | if (check_box->get()) | ||
427 | { | ||
428 | picker->mInventoryPanel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS); | ||
429 | } | ||
430 | else | ||
431 | { | ||
432 | picker->mInventoryPanel->setShowFolderState(LLInventoryFilter::SHOW_NO_FOLDERS); | ||
433 | } | ||
434 | } | ||
435 | |||
436 | void LLFloaterLandmark::onSearchEdit(const LLString& search_string, void* user_data ) | ||
437 | { | ||
438 | LLFloaterLandmark* picker = (LLFloaterLandmark*)user_data; | ||
439 | |||
440 | std::string upper_case_search_string = search_string; | ||
441 | LLString::toUpper(upper_case_search_string); | ||
442 | |||
443 | if (upper_case_search_string.empty()) | ||
444 | { | ||
445 | if (picker->mInventoryPanel->getFilterSubString().empty()) | ||
446 | { | ||
447 | // current filter and new filter empty, do nothing | ||
448 | return; | ||
449 | } | ||
450 | |||
451 | picker->mSavedFolderState->setApply(TRUE); | ||
452 | picker->mInventoryPanel->getRootFolder()->applyFunctorRecursively(*picker->mSavedFolderState); | ||
453 | // add folder with current item to list of previously opened folders | ||
454 | LLOpenFoldersWithSelection opener; | ||
455 | picker->mInventoryPanel->getRootFolder()->applyFunctorRecursively(opener); | ||
456 | picker->mInventoryPanel->getRootFolder()->scrollToShowSelection(); | ||
457 | |||
458 | } | ||
459 | else if (picker->mInventoryPanel->getFilterSubString().empty()) | ||
460 | { | ||
461 | // first letter in search term, save existing folder open state | ||
462 | if (!picker->mInventoryPanel->getRootFolder()->isFilterModified()) | ||
463 | { | ||
464 | picker->mSavedFolderState->setApply(FALSE); | ||
465 | picker->mInventoryPanel->getRootFolder()->applyFunctorRecursively(*picker->mSavedFolderState); | ||
466 | } | ||
467 | } | ||
468 | |||
469 | picker->mInventoryPanel->setFilterSubString(upper_case_search_string); | ||
470 | } | ||
471 | |||
diff --git a/linden/indra/newview/llfloaterlandmark.h b/linden/indra/newview/llfloaterlandmark.h new file mode 100644 index 0000000..ad52596 --- /dev/null +++ b/linden/indra/newview/llfloaterlandmark.h | |||
@@ -0,0 +1,107 @@ | |||
1 | /** | ||
2 | * @file lltexturectrl.h | ||
3 | * @author Richard Nelson, James Cook | ||
4 | * @brief LLTextureCtrl class header file including related functions | ||
5 | * | ||
6 | * $LicenseInfo:firstyear=2002&license=internal$ | ||
7 | * | ||
8 | * Copyright (c) 2002-2007, Linden Research, Inc. | ||
9 | * | ||
10 | * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of | ||
11 | * this source code is governed by the Linden Lab Source Code Disclosure | ||
12 | * Agreement ("Agreement") previously entered between you and Linden | ||
13 | * Lab. By accessing, using, copying, modifying or distributing this | ||
14 | * software, you acknowledge that you have been informed of your | ||
15 | * obligations under the Agreement and agree to abide by those obligations. | ||
16 | * | ||
17 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
18 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
19 | * COMPLETENESS OR PERFORMANCE. | ||
20 | * $/LicenseInfo$ | ||
21 | */ | ||
22 | |||
23 | #ifndef LL_LLFLOATERLANDMARK_H | ||
24 | #define LL_LLFLOATERLANDMARK_H | ||
25 | |||
26 | #include "llcoord.h" | ||
27 | #include "llfloater.h" | ||
28 | #include "llstring.h" | ||
29 | #include "lluictrl.h" | ||
30 | #include "llpermissionsflags.h" | ||
31 | |||
32 | class LLButton; | ||
33 | class LLFloaterTexturePicker; | ||
34 | class LLInventoryItem; | ||
35 | class LLTextBox; | ||
36 | class LLViewBorder; | ||
37 | class LLFolderViewItem; | ||
38 | class LLSearchEditor; | ||
39 | class LLInventoryPanel; | ||
40 | class LLSaveFolderState; | ||
41 | |||
42 | // used for setting drag & drop callbacks. | ||
43 | typedef BOOL (*drag_n_drop_callback)(LLUICtrl*, LLInventoryItem*, void*); | ||
44 | |||
45 | |||
46 | ////////////////////////////////////////////////////////////////////////////////////////// | ||
47 | // LLFloaterLandmark | ||
48 | |||
49 | class LLFloaterLandmark: public LLFloater, public LLUISingleton<LLFloaterLandmark> | ||
50 | { | ||
51 | public: | ||
52 | LLFloaterLandmark(const LLSD& data); | ||
53 | virtual ~LLFloaterLandmark(); | ||
54 | |||
55 | // LLView overrides | ||
56 | virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, | ||
57 | BOOL drop, EDragAndDropType cargo_type, void *cargo_data, | ||
58 | EAcceptance *accept, | ||
59 | LLString& tooltip_msg); | ||
60 | virtual BOOL handleKeyHere(KEY key, MASK mask, BOOL called_from_parent); | ||
61 | |||
62 | // LLFloater overrides | ||
63 | virtual void onClose(bool app_quitting); | ||
64 | |||
65 | const LLUUID& getAssetID() { return mImageAssetID; } | ||
66 | const LLUUID& findItemID(const LLUUID& asset_id, BOOL copyable_only); | ||
67 | |||
68 | void setDirty( BOOL b ) { mIsDirty = b; } | ||
69 | BOOL isDirty() { return mIsDirty; } | ||
70 | void setActive( BOOL active ); | ||
71 | |||
72 | static void onBtnClose( void* userdata ); | ||
73 | static void onBtnNew( void* userdata ); | ||
74 | static void onBtnEdit( void* userdata ); | ||
75 | static void onBtnDelete( void* userdata ); | ||
76 | static void onBtnNewFolder( void* userdata ); | ||
77 | static void onBtnRename( void* userdata ); | ||
78 | static void onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action, void* data); | ||
79 | static void onShowFolders(LLUICtrl* ctrl, void* userdata); | ||
80 | static void onSearchEdit(const LLString& search_string, void* user_data ); | ||
81 | |||
82 | protected: | ||
83 | LLPointer<LLViewerImage> mLandmarkp; | ||
84 | |||
85 | LLUUID mImageAssetID; // Currently selected texture | ||
86 | |||
87 | LLUUID mWhiteImageAssetID; | ||
88 | LLUUID mSpecialCurrentImageAssetID; // Used when the asset id has no corresponding texture in the user's inventory. | ||
89 | LLUUID mOriginalImageAssetID; | ||
90 | |||
91 | LLTextBox* mTentativeLabel; | ||
92 | LLTextBox* mResolutionLabel; | ||
93 | |||
94 | LLString mPendingName; | ||
95 | BOOL mIsDirty; | ||
96 | BOOL mActive; | ||
97 | |||
98 | LLSearchEditor* mSearchEdit; | ||
99 | LLInventoryPanel* mInventoryPanel; | ||
100 | PermissionMask mImmediateFilterPermMask; | ||
101 | PermissionMask mNonImmediateFilterPermMask; | ||
102 | BOOL mNoCopyLandmarkSelected; | ||
103 | F32 mContextConeOpacity; | ||
104 | LLSaveFolderState* mSavedFolderState; | ||
105 | }; | ||
106 | |||
107 | #endif // LL_FLOATERLANDMARK_H | ||
diff --git a/linden/indra/newview/llfloatermap.cpp b/linden/indra/newview/llfloatermap.cpp index 952c56a..a158000 100644 --- a/linden/indra/newview/llfloatermap.cpp +++ b/linden/indra/newview/llfloatermap.cpp | |||
@@ -57,7 +57,7 @@ | |||
57 | #include "llspinctrl.h" | 57 | #include "llspinctrl.h" |
58 | #include "llstatgraph.h" | 58 | #include "llstatgraph.h" |
59 | #include "llstatusbar.h" | 59 | #include "llstatusbar.h" |
60 | #include "lltextbox.h" | 60 | //#include "lltextbox.h" |
61 | #include "llui.h" | 61 | #include "llui.h" |
62 | #include "llviewermenu.h" | 62 | #include "llviewermenu.h" |
63 | #include "llviewerparceloverlay.h" | 63 | #include "llviewerparceloverlay.h" |
diff --git a/linden/indra/newview/llfloatermap.h b/linden/indra/newview/llfloatermap.h index 24f7b9f..369ac32 100644 --- a/linden/indra/newview/llfloatermap.h +++ b/linden/indra/newview/llfloatermap.h | |||
@@ -35,11 +35,6 @@ | |||
35 | #include "llfloater.h" | 35 | #include "llfloater.h" |
36 | 36 | ||
37 | class LLNetMap; | 37 | class LLNetMap; |
38 | class LLSliderCtrl; | ||
39 | class LLStatGraph; | ||
40 | class LLTextBox; | ||
41 | class LLUICtrl; | ||
42 | class LLViewerImage; | ||
43 | 38 | ||
44 | // | 39 | // |
45 | // Classes | 40 | // Classes |
diff --git a/linden/indra/newview/llfloaterparcel.cpp b/linden/indra/newview/llfloaterparcel.cpp new file mode 100644 index 0000000..a63987a --- /dev/null +++ b/linden/indra/newview/llfloaterparcel.cpp | |||
@@ -0,0 +1,133 @@ | |||
1 | /** | ||
2 | * @file llfloaterparcel.cpp | ||
3 | * @brief LLFloaterParcel class implementation | ||
4 | * Parcel information as shown in a floating window from secondlife:// command | ||
5 | * handler. | ||
6 | * | ||
7 | * $LicenseInfo:firstyear=2002&license=internal$ | ||
8 | * | ||
9 | * Copyright (c) 2002-2007, Linden Research, Inc. | ||
10 | * | ||
11 | * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of | ||
12 | * this source code is governed by the Linden Lab Source Code Disclosure | ||
13 | * Agreement ("Agreement") previously entered between you and Linden | ||
14 | * Lab. By accessing, using, copying, modifying or distributing this | ||
15 | * software, you acknowledge that you have been informed of your | ||
16 | * obligations under the Agreement and agree to abide by those obligations. | ||
17 | * | ||
18 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
19 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
20 | * COMPLETENESS OR PERFORMANCE. | ||
21 | * $/LicenseInfo$ | ||
22 | */ | ||
23 | #include "llviewerprecompiledheaders.h" | ||
24 | |||
25 | #include "llfloaterparcel.h" | ||
26 | |||
27 | // viewer project includes | ||
28 | #include "llcommandhandler.h" | ||
29 | #include "llpanelplace.h" | ||
30 | #include "llvieweruictrlfactory.h" | ||
31 | |||
32 | // linden library includes | ||
33 | #include "lluuid.h" | ||
34 | |||
35 | //----------------------------------------------------------------------------- | ||
36 | // Globals | ||
37 | //----------------------------------------------------------------------------- | ||
38 | |||
39 | LLMap< const LLUUID, LLFloaterParcelInfo* > gPlaceInfoInstances; | ||
40 | |||
41 | class LLParcelHandler : public LLCommandHandler | ||
42 | { | ||
43 | public: | ||
44 | LLParcelHandler() : LLCommandHandler("parcel") { } | ||
45 | bool handle(const std::vector<std::string>& params) | ||
46 | { | ||
47 | if (params.size() < 2) | ||
48 | { | ||
49 | return false; | ||
50 | } | ||
51 | LLUUID parcel_id; | ||
52 | if (!parcel_id.set(params[0], FALSE)) | ||
53 | { | ||
54 | return false; | ||
55 | } | ||
56 | if (params[1] == "about") | ||
57 | { | ||
58 | LLFloaterParcelInfo::show(parcel_id); | ||
59 | return true; | ||
60 | } | ||
61 | return false; | ||
62 | } | ||
63 | }; | ||
64 | LLParcelHandler gParcelHandler; | ||
65 | |||
66 | //----------------------------------------------------------------------------- | ||
67 | // Member functions | ||
68 | //----------------------------------------------------------------------------- | ||
69 | |||
70 | //---------------------------------------------------------------------------- | ||
71 | |||
72 | void* LLFloaterParcelInfo::createPanelPlace(void* data) | ||
73 | { | ||
74 | LLFloaterParcelInfo* self = (LLFloaterParcelInfo*)data; | ||
75 | self->mPanelParcelp = new LLPanelPlace(); // allow edit self | ||
76 | gUICtrlFactory->buildPanel(self->mPanelParcelp, "panel_place.xml"); | ||
77 | return self->mPanelParcelp; | ||
78 | } | ||
79 | |||
80 | //---------------------------------------------------------------------------- | ||
81 | |||
82 | |||
83 | LLFloaterParcelInfo::LLFloaterParcelInfo(const std::string& name, const LLUUID &parcel_id) | ||
84 | : LLFloater(name), | ||
85 | mParcelID( parcel_id ) | ||
86 | { | ||
87 | mFactoryMap["place_details_panel"] = LLCallbackMap(LLFloaterParcelInfo::createPanelPlace, this); | ||
88 | gUICtrlFactory->buildFloater(this, "floater_preview_url.xml", &getFactoryMap()); | ||
89 | gPlaceInfoInstances.addData(parcel_id, this); | ||
90 | } | ||
91 | |||
92 | // virtual | ||
93 | LLFloaterParcelInfo::~LLFloaterParcelInfo() | ||
94 | { | ||
95 | // child views automatically deleted | ||
96 | gPlaceInfoInstances.removeData(mParcelID); | ||
97 | |||
98 | } | ||
99 | |||
100 | void LLFloaterParcelInfo::displayParcelInfo(const LLUUID& parcel_id) | ||
101 | { | ||
102 | mPanelParcelp->setParcelID(parcel_id); | ||
103 | } | ||
104 | |||
105 | // static | ||
106 | LLFloaterParcelInfo* LLFloaterParcelInfo::show(const LLUUID &parcel_id) | ||
107 | { | ||
108 | if (parcel_id.isNull()) | ||
109 | { | ||
110 | return NULL; | ||
111 | } | ||
112 | |||
113 | LLFloaterParcelInfo *floater; | ||
114 | if (gPlaceInfoInstances.checkData(parcel_id)) | ||
115 | { | ||
116 | // ...bring that window to front | ||
117 | floater = gPlaceInfoInstances.getData(parcel_id); | ||
118 | floater->open(); /*Flawfinder: ignore*/ | ||
119 | floater->setFrontmost(true); | ||
120 | } | ||
121 | else | ||
122 | { | ||
123 | floater = new LLFloaterParcelInfo("parcelinfo", parcel_id ); | ||
124 | floater->center(); | ||
125 | floater->open(); /*Flawfinder: ignore*/ | ||
126 | floater->displayParcelInfo(parcel_id); | ||
127 | floater->setFrontmost(true); | ||
128 | } | ||
129 | |||
130 | return floater; | ||
131 | } | ||
132 | |||
133 | |||
diff --git a/linden/indra/newview/llfloaterparcel.h b/linden/indra/newview/llfloaterparcel.h new file mode 100644 index 0000000..e0e8b9a --- /dev/null +++ b/linden/indra/newview/llfloaterparcel.h | |||
@@ -0,0 +1,53 @@ | |||
1 | /** | ||
2 | * @file llfloaterparcelinfo.h | ||
3 | * @brief LLFloaterParcelInfo class definition | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2002&license=internal$ | ||
6 | * | ||
7 | * Copyright (c) 2002-2007, Linden Research, Inc. | ||
8 | * | ||
9 | * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of | ||
10 | * this source code is governed by the Linden Lab Source Code Disclosure | ||
11 | * Agreement ("Agreement") previously entered between you and Linden | ||
12 | * Lab. By accessing, using, copying, modifying or distributing this | ||
13 | * software, you acknowledge that you have been informed of your | ||
14 | * obligations under the Agreement and agree to abide by those obligations. | ||
15 | * | ||
16 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
17 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
18 | * COMPLETENESS OR PERFORMANCE. | ||
19 | * $/LicenseInfo$ | ||
20 | */ | ||
21 | |||
22 | /** | ||
23 | * Parcel information as shown in a floating window from a sl-url. | ||
24 | * Just a wrapper for LLPanelPlace, shared with the Find directory. | ||
25 | */ | ||
26 | |||
27 | #ifndef LL_FLOATERPARCELINFO_H | ||
28 | #define LL_FLOATERPARCELINFO_H | ||
29 | |||
30 | #include "llfloater.h" | ||
31 | |||
32 | class LLPanelPlace; | ||
33 | |||
34 | class LLFloaterParcelInfo | ||
35 | : public LLFloater | ||
36 | { | ||
37 | public: | ||
38 | static void* createPanelPlace(void* data); | ||
39 | |||
40 | LLFloaterParcelInfo(const std::string& name, const LLUUID &parcel_id ); | ||
41 | /*virtual*/ ~LLFloaterParcelInfo(); | ||
42 | |||
43 | void displayParcelInfo(const LLUUID& parcel_id); | ||
44 | |||
45 | static LLFloaterParcelInfo* show(const LLUUID& parcel_id); | ||
46 | |||
47 | private: | ||
48 | LLUUID mParcelID; // for which parcel is this window? | ||
49 | LLPanelPlace* mPanelParcelp; | ||
50 | }; | ||
51 | |||
52 | |||
53 | #endif | ||
diff --git a/linden/indra/newview/llfloaterpostcard.cpp b/linden/indra/newview/llfloaterpostcard.cpp index 8dcdb99..cab9d37 100644 --- a/linden/indra/newview/llfloaterpostcard.cpp +++ b/linden/indra/newview/llfloaterpostcard.cpp | |||
@@ -116,7 +116,7 @@ BOOL LLFloaterPostcard::postBuild() | |||
116 | childDisable("from_form"); | 116 | childDisable("from_form"); |
117 | childSetAction("publish_help_btn", onClickPublishHelp, this); | 117 | childSetAction("publish_help_btn", onClickPublishHelp, this); |
118 | 118 | ||
119 | if (gAgent.mAccess < SIM_ACCESS_MATURE) | 119 | if (gAgent.isTeen()) |
120 | { | 120 | { |
121 | // Disable these buttons if they are PG (Teen) users | 121 | // Disable these buttons if they are PG (Teen) users |
122 | childDisable("allow_publish_check"); | 122 | childDisable("allow_publish_check"); |
diff --git a/linden/indra/newview/llfloaterpreference.cpp b/linden/indra/newview/llfloaterpreference.cpp index f061018..100ae0c 100644 --- a/linden/indra/newview/llfloaterpreference.cpp +++ b/linden/indra/newview/llfloaterpreference.cpp | |||
@@ -54,6 +54,7 @@ | |||
54 | #include "llpaneldebug.h" | 54 | #include "llpaneldebug.h" |
55 | #include "llpanelgeneral.h" | 55 | #include "llpanelgeneral.h" |
56 | #include "llpanelinput.h" | 56 | #include "llpanelinput.h" |
57 | #include "llpanelLCD.h" | ||
57 | #include "llpanelmsgs.h" | 58 | #include "llpanelmsgs.h" |
58 | #include "llpanelweb.h" | 59 | #include "llpanelweb.h" |
59 | #include "llprefschat.h" | 60 | #include "llprefschat.h" |
@@ -80,6 +81,14 @@ const S32 PREF_FLOATER_MIN_HEIGHT = 2 * SCROLLBAR_SIZE + 2 * LLPANEL_BORDER_WIDT | |||
80 | 81 | ||
81 | LLFloaterPreference* LLFloaterPreference::sInstance = NULL; | 82 | LLFloaterPreference* LLFloaterPreference::sInstance = NULL; |
82 | 83 | ||
84 | #if LL_WINDOWS | ||
85 | // for Logitech LCD keyboards / speakers | ||
86 | #ifndef LL_LOGITECH_LCD_H | ||
87 | #include "lllogitechlcd.h" | ||
88 | #endif | ||
89 | extern llLCD *gLcdScreen; | ||
90 | #endif | ||
91 | |||
83 | // Must be done at run time, not compile time. JC | 92 | // Must be done at run time, not compile time. JC |
84 | S32 pref_min_width() | 93 | S32 pref_min_width() |
85 | { | 94 | { |
@@ -108,7 +117,8 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainerCommon* tab_container, LLButton | |||
108 | mDisplayPanel(NULL), | 117 | mDisplayPanel(NULL), |
109 | mDisplayPanel2(NULL), | 118 | mDisplayPanel2(NULL), |
110 | mAudioPanel(NULL), | 119 | mAudioPanel(NULL), |
111 | mMsgPanel(NULL) | 120 | mMsgPanel(NULL), |
121 | mLCDPanel(NULL) | ||
112 | { | 122 | { |
113 | mGeneralPanel = new LLPanelGeneral(); | 123 | mGeneralPanel = new LLPanelGeneral(); |
114 | mTabContainer->addTabPanel(mGeneralPanel, mGeneralPanel->getLabel(), FALSE, onTabChanged, mTabContainer); | 124 | mTabContainer->addTabPanel(mGeneralPanel, mGeneralPanel->getLabel(), FALSE, onTabChanged, mTabContainer); |
@@ -156,6 +166,20 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainerCommon* tab_container, LLButton | |||
156 | mTabContainer->addTabPanel(mPrefsIM->getPanel(), mPrefsIM->getPanel()->getLabel(), FALSE, onTabChanged, mTabContainer); | 166 | mTabContainer->addTabPanel(mPrefsIM->getPanel(), mPrefsIM->getPanel()->getLabel(), FALSE, onTabChanged, mTabContainer); |
157 | mPrefsIM->getPanel()->setDefaultBtn(default_btn); | 167 | mPrefsIM->getPanel()->setDefaultBtn(default_btn); |
158 | 168 | ||
169 | #if LL_WINDOWS && LL_LCD_COMPILE | ||
170 | |||
171 | // only add this option if we actually have a logitech keyboard / speaker set | ||
172 | if (gLcdScreen->Enabled()) | ||
173 | { | ||
174 | mLCDPanel = new LLPanelLCD(); | ||
175 | mTabContainer->addTabPanel(mLCDPanel, mLCDPanel->getLabel(), FALSE, onTabChanged, mTabContainer); | ||
176 | mLCDPanel->setDefaultBtn(default_btn); | ||
177 | } | ||
178 | |||
179 | #else | ||
180 | mLCDPanel = NULL; | ||
181 | #endif | ||
182 | |||
159 | mMsgPanel = new LLPanelMsgs(); | 183 | mMsgPanel = new LLPanelMsgs(); |
160 | mTabContainer->addTabPanel(mMsgPanel, mMsgPanel->getLabel(), FALSE, onTabChanged, mTabContainer); | 184 | mTabContainer->addTabPanel(mMsgPanel, mMsgPanel->getLabel(), FALSE, onTabChanged, mTabContainer); |
161 | mMsgPanel->setDefaultBtn(default_btn); | 185 | mMsgPanel->setDefaultBtn(default_btn); |
@@ -240,6 +264,14 @@ void LLPreferenceCore::apply() | |||
240 | #if LL_LIBXUL_ENABLED | 264 | #if LL_LIBXUL_ENABLED |
241 | mWebPanel->apply(); | 265 | mWebPanel->apply(); |
242 | #endif | 266 | #endif |
267 | #if LL_WINDOWS && LL_LCD_COMPILE | ||
268 | // only add this option if we actually have a logitech keyboard / speaker set | ||
269 | if (gLcdScreen->Enabled()) | ||
270 | { | ||
271 | mLCDPanel->apply(); | ||
272 | } | ||
273 | #endif | ||
274 | // mWebPanel->apply(); | ||
243 | } | 275 | } |
244 | 276 | ||
245 | 277 | ||
@@ -259,6 +291,14 @@ void LLPreferenceCore::cancel() | |||
259 | #if LL_LIBXUL_ENABLED | 291 | #if LL_LIBXUL_ENABLED |
260 | mWebPanel->cancel(); | 292 | mWebPanel->cancel(); |
261 | #endif | 293 | #endif |
294 | #if LL_WINDOWS && LL_LCD_COMPILE | ||
295 | // only add this option if we actually have a logitech keyboard / speaker set | ||
296 | if (gLcdScreen->Enabled()) | ||
297 | { | ||
298 | mLCDPanel->cancel(); | ||
299 | } | ||
300 | #endif | ||
301 | // mWebPanel->cancel(); | ||
262 | } | 302 | } |
263 | 303 | ||
264 | // static | 304 | // static |
diff --git a/linden/indra/newview/llfloaterpreference.h b/linden/indra/newview/llfloaterpreference.h index db77ebd..a4c43fc 100644 --- a/linden/indra/newview/llfloaterpreference.h +++ b/linden/indra/newview/llfloaterpreference.h | |||
@@ -43,6 +43,7 @@ | |||
43 | 43 | ||
44 | class LLPanelGeneral; | 44 | class LLPanelGeneral; |
45 | class LLPanelInput; | 45 | class LLPanelInput; |
46 | class LLPanelLCD; | ||
46 | class LLPanelDisplay; | 47 | class LLPanelDisplay; |
47 | class LLPanelDisplay2; | 48 | class LLPanelDisplay2; |
48 | class LLPanelDisplay3; | 49 | class LLPanelDisplay3; |
@@ -89,8 +90,9 @@ private: | |||
89 | LLPrefsChat *mPrefsChat; | 90 | LLPrefsChat *mPrefsChat; |
90 | LLPrefsVoice *mPrefsVoice; | 91 | LLPrefsVoice *mPrefsVoice; |
91 | LLPrefsIM *mPrefsIM; | 92 | LLPrefsIM *mPrefsIM; |
92 | LLPanelMsgs *mMsgPanel; | ||
93 | LLPanelWeb *mWebPanel; | 93 | LLPanelWeb *mWebPanel; |
94 | LLPanelMsgs *mMsgPanel; | ||
95 | LLPanelLCD *mLCDPanel; | ||
94 | }; | 96 | }; |
95 | 97 | ||
96 | // Floater to control preferences (display, audio, bandwidth, general. | 98 | // Floater to control preferences (display, audio, bandwidth, general. |
diff --git a/linden/indra/newview/llfloaterurldisplay.cpp b/linden/indra/newview/llfloaterurldisplay.cpp new file mode 100644 index 0000000..82db380 --- /dev/null +++ b/linden/indra/newview/llfloaterurldisplay.cpp | |||
@@ -0,0 +1,84 @@ | |||
1 | /** | ||
2 | * @file llpreviewlandmark.cpp | ||
3 | * @brief LLFloaterURLDisplayList class implementation | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2002&license=internal$ | ||
6 | * | ||
7 | * Copyright (c) 2002-2007, Linden Research, Inc. | ||
8 | * | ||
9 | * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of | ||
10 | * this source code is governed by the Linden Lab Source Code Disclosure | ||
11 | * Agreement ("Agreement") previously entered between you and Linden | ||
12 | * Lab. By accessing, using, copying, modifying or distributing this | ||
13 | * software, you acknowledge that you have been informed of your | ||
14 | * obligations under the Agreement and agree to abide by those obligations. | ||
15 | * | ||
16 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
17 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
18 | * COMPLETENESS OR PERFORMANCE. | ||
19 | * $/LicenseInfo$ | ||
20 | */ | ||
21 | |||
22 | #include "llviewerprecompiledheaders.h" | ||
23 | |||
24 | #include "llfloaterurldisplay.h" | ||
25 | |||
26 | #include "llpanelplace.h" | ||
27 | #include "llvieweruictrlfactory.h" | ||
28 | |||
29 | #include "v3dmath.h" | ||
30 | |||
31 | //////////////////////////////////////////////////////////////////////////// | ||
32 | // LLFloaterURLDisplay | ||
33 | |||
34 | |||
35 | LLFloaterURLDisplay::LLFloaterURLDisplay(const LLSD& sd) | ||
36 | { | ||
37 | mFactoryMap["place_details_panel"] = LLCallbackMap(LLFloaterURLDisplay::createPlaceDetail, this); | ||
38 | gUICtrlFactory->buildFloater(this, "floater_preview_url.xml", &getFactoryMap()); | ||
39 | this->setVisible(false); | ||
40 | } | ||
41 | |||
42 | LLFloaterURLDisplay::~LLFloaterURLDisplay() | ||
43 | { | ||
44 | } | ||
45 | |||
46 | void LLFloaterURLDisplay::displayParcelInfo(U64 region_handle, const LLVector3& pos_local) | ||
47 | { | ||
48 | mRegionHandle = region_handle; | ||
49 | mRegionPosition = pos_local; | ||
50 | LLVector3d pos_global = from_region_handle(region_handle); | ||
51 | pos_global += (LLVector3d)pos_local; | ||
52 | |||
53 | LLUUID region_id; // don't know this | ||
54 | LLUUID landmark_asset_id; // don't know this either | ||
55 | mPlacePanel->displayParcelInfo(pos_local, landmark_asset_id, region_id, pos_global); | ||
56 | |||
57 | this->setVisible(true); | ||
58 | this->setFrontmost(true); | ||
59 | } | ||
60 | |||
61 | void LLFloaterURLDisplay::setSnapshotDisplay(const LLUUID& snapshot_id) | ||
62 | { | ||
63 | mPlacePanel->setSnapshot(snapshot_id); | ||
64 | } | ||
65 | |||
66 | void LLFloaterURLDisplay::setName(const std::string& name) | ||
67 | { | ||
68 | mPlacePanel->setName(name); | ||
69 | } | ||
70 | |||
71 | void LLFloaterURLDisplay::setLocationString(const std::string& name) | ||
72 | { | ||
73 | mPlacePanel->setLocationString(name); | ||
74 | } | ||
75 | |||
76 | // static | ||
77 | void* LLFloaterURLDisplay::createPlaceDetail(void* userdata) | ||
78 | { | ||
79 | LLFloaterURLDisplay *self = (LLFloaterURLDisplay*)userdata; | ||
80 | self->mPlacePanel = new LLPanelPlace(); | ||
81 | gUICtrlFactory->buildPanel(self->mPlacePanel, "panel_place.xml"); | ||
82 | |||
83 | return self->mPlacePanel; | ||
84 | } | ||
diff --git a/linden/indra/newview/llfloaterurldisplay.h b/linden/indra/newview/llfloaterurldisplay.h new file mode 100644 index 0000000..5ee4473 --- /dev/null +++ b/linden/indra/newview/llfloaterurldisplay.h | |||
@@ -0,0 +1,61 @@ | |||
1 | /** | ||
2 | * @file llfloaterurldisplay.h | ||
3 | * @brief LLFloaterURLDisplay class implementation | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2006-2007, Linden Research, Inc. | ||
8 | * | ||
9 | * Second Life Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
11 | * to you under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
15 | * online at http://secondlife.com/developers/opensource/gplv2 | ||
16 | * | ||
17 | * There are special exceptions to the terms and conditions of the GPL as | ||
18 | * it is applied to this Source Code. View the full text of the exception | ||
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
20 | * online at http://secondlife.com/developers/opensource/flossexception | ||
21 | * | ||
22 | * By copying, modifying or distributing this software, you acknowledge | ||
23 | * that you have read and understood your obligations described above, | ||
24 | * and agree to abide by those obligations. | ||
25 | * | ||
26 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
27 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
28 | * COMPLETENESS OR PERFORMANCE. | ||
29 | * $/LicenseInfo$ | ||
30 | */ | ||
31 | |||
32 | #ifndef LL_LLFLOATERURLDISPLAY_H | ||
33 | #define LL_LLFLOATERURLDISPLAY_H | ||
34 | |||
35 | #include "llfloater.h" | ||
36 | #include "v3math.h" | ||
37 | |||
38 | class LLPanelPlace; | ||
39 | class LLSD; | ||
40 | class LLUUID; | ||
41 | |||
42 | class LLFloaterURLDisplay : public LLFloater, public LLUISingleton<LLFloaterURLDisplay> | ||
43 | { | ||
44 | public: | ||
45 | LLFloaterURLDisplay(const LLSD& sd); | ||
46 | virtual ~LLFloaterURLDisplay(); | ||
47 | |||
48 | void displayParcelInfo(U64 region_handle, const LLVector3& pos); | ||
49 | void setSnapshotDisplay(const LLUUID& snapshot_id); | ||
50 | void setName(const std::string& name); | ||
51 | void setLocationString(const std::string& name); | ||
52 | |||
53 | static void* createPlaceDetail(void* userdata); | ||
54 | |||
55 | private: | ||
56 | LLVector3 mRegionPosition; | ||
57 | U64 mRegionHandle; | ||
58 | LLPanelPlace* mPlacePanel; | ||
59 | }; | ||
60 | |||
61 | #endif // LL_LLFLOATERURLDISPLAY_H | ||
diff --git a/linden/indra/newview/llfloaterworldmap.cpp b/linden/indra/newview/llfloaterworldmap.cpp index bdb7f09..b411bb2 100644 --- a/linden/indra/newview/llfloaterworldmap.cpp +++ b/linden/indra/newview/llfloaterworldmap.cpp | |||
@@ -236,7 +236,7 @@ BOOL LLFloaterWorldMap::postBuild() | |||
236 | childSetKeystrokeCallback("location", (void (*)(LLLineEditor*,void*))updateSearchEnabled, NULL); | 236 | childSetKeystrokeCallback("location", (void (*)(LLLineEditor*,void*))updateSearchEnabled, NULL); |
237 | 237 | ||
238 | childSetCommitCallback("search_results", onCommitSearchResult, this); | 238 | childSetCommitCallback("search_results", onCommitSearchResult, this); |
239 | childSetDoubleClickCallback("search_results", onTeleportBtn); | 239 | childSetDoubleClickCallback("search_results", onClickTeleportBtn); |
240 | childSetCommitCallback("spin x", onCommitLocation, this); | 240 | childSetCommitCallback("spin x", onCommitLocation, this); |
241 | childSetCommitCallback("spin y", onCommitLocation, this); | 241 | childSetCommitCallback("spin y", onCommitLocation, this); |
242 | childSetCommitCallback("spin z", onCommitLocation, this); | 242 | childSetCommitCallback("spin z", onCommitLocation, this); |
@@ -252,7 +252,7 @@ BOOL LLFloaterWorldMap::postBuild() | |||
252 | 252 | ||
253 | childSetAction("Go Home", onGoHome, this); | 253 | childSetAction("Go Home", onGoHome, this); |
254 | 254 | ||
255 | childSetAction("Teleport", onTeleportBtn, this); | 255 | childSetAction("Teleport", onClickTeleportBtn, this); |
256 | 256 | ||
257 | childSetAction("Show Destination", onShowTargetBtn, this); | 257 | childSetAction("Show Destination", onShowTargetBtn, this); |
258 | childSetAction("Show My Location", onShowAgentBtn, this); | 258 | childSetAction("Show My Location", onShowAgentBtn, this); |
@@ -264,7 +264,7 @@ BOOL LLFloaterWorldMap::postBuild() | |||
264 | 264 | ||
265 | setDefaultBtn(NULL); | 265 | setDefaultBtn(NULL); |
266 | 266 | ||
267 | if ( gAgent.mAccess <= SIM_ACCESS_PG ) | 267 | if ( gAgent.isTeen() ) |
268 | { | 268 | { |
269 | // Hide Mature Events controls | 269 | // Hide Mature Events controls |
270 | childHide("events_mature_icon"); | 270 | childHide("events_mature_icon"); |
@@ -1288,7 +1288,7 @@ void LLFloaterWorldMap::onShowAgentBtn(void* data) | |||
1288 | } | 1288 | } |
1289 | 1289 | ||
1290 | // static | 1290 | // static |
1291 | void LLFloaterWorldMap::onTeleportBtn(void* data) | 1291 | void LLFloaterWorldMap::onClickTeleportBtn(void* data) |
1292 | { | 1292 | { |
1293 | LLFloaterWorldMap* self = (LLFloaterWorldMap*)data; | 1293 | LLFloaterWorldMap* self = (LLFloaterWorldMap*)data; |
1294 | self->teleport(); | 1294 | self->teleport(); |
diff --git a/linden/indra/newview/llfloaterworldmap.h b/linden/indra/newview/llfloaterworldmap.h index 1757f86..b98bbbb 100644 --- a/linden/indra/newview/llfloaterworldmap.h +++ b/linden/indra/newview/llfloaterworldmap.h | |||
@@ -108,6 +108,9 @@ public: | |||
108 | // Catch changes in the sim list | 108 | // Catch changes in the sim list |
109 | void updateSims(bool found_null_sim); | 109 | void updateSims(bool found_null_sim); |
110 | 110 | ||
111 | // teleport to the tracked item, if there is one | ||
112 | void teleport(); | ||
113 | |||
111 | protected: | 114 | protected: |
112 | static void onPanBtn( void* userdata ); | 115 | static void onPanBtn( void* userdata ); |
113 | 116 | ||
@@ -123,7 +126,7 @@ protected: | |||
123 | 126 | ||
124 | static void onClearBtn(void*); | 127 | static void onClearBtn(void*); |
125 | static void onFlyBtn(void*); | 128 | static void onFlyBtn(void*); |
126 | static void onTeleportBtn(void*); | 129 | static void onClickTeleportBtn(void*); |
127 | static void onShowTargetBtn(void*); | 130 | static void onShowTargetBtn(void*); |
128 | static void onShowAgentBtn(void*); | 131 | static void onShowAgentBtn(void*); |
129 | static void onCopySLURL(void*); | 132 | static void onCopySLURL(void*); |
@@ -136,9 +139,6 @@ protected: | |||
136 | // fly to the tracked item, if there is one | 139 | // fly to the tracked item, if there is one |
137 | void fly(); | 140 | void fly(); |
138 | 141 | ||
139 | // teleport to the tracked item, if there is one | ||
140 | void teleport(); | ||
141 | |||
142 | void buildLandmarkIDLists(); | 142 | void buildLandmarkIDLists(); |
143 | static void onGoToLandmarkDialog(S32 option,void* userdata); | 143 | static void onGoToLandmarkDialog(S32 option,void* userdata); |
144 | void flyToLandmark(); | 144 | void flyToLandmark(); |
diff --git a/linden/indra/newview/llfolderview.cpp b/linden/indra/newview/llfolderview.cpp index a68b937..c6a2710 100644 --- a/linden/indra/newview/llfolderview.cpp +++ b/linden/indra/newview/llfolderview.cpp | |||
@@ -1736,7 +1736,7 @@ bool LLFolderViewFolder::isTrash() | |||
1736 | { | 1736 | { |
1737 | if (mAmTrash == LLFolderViewFolder::UNKNOWN) | 1737 | if (mAmTrash == LLFolderViewFolder::UNKNOWN) |
1738 | { | 1738 | { |
1739 | mAmTrash = mListener->getUUID() == gInventory.findCategoryUUIDForType(LLAssetType::AT_TRASH) ? LLFolderViewFolder::TRASH : LLFolderViewFolder::NOT_TRASH; | 1739 | mAmTrash = mListener->getUUID() == gInventory.findCategoryUUIDForType(LLAssetType::AT_TRASH, false) ? LLFolderViewFolder::TRASH : LLFolderViewFolder::NOT_TRASH; |
1740 | } | 1740 | } |
1741 | return mAmTrash == LLFolderViewFolder::TRASH; | 1741 | return mAmTrash == LLFolderViewFolder::TRASH; |
1742 | } | 1742 | } |
diff --git a/linden/indra/newview/llgivemoney.cpp b/linden/indra/newview/llgivemoney.cpp index df902fb..01ffb02 100644 --- a/linden/indra/newview/llgivemoney.cpp +++ b/linden/indra/newview/llgivemoney.cpp | |||
@@ -239,8 +239,8 @@ void LLFloaterPay::processPayPriceReply(LLMessageSystem* msg, void **userdata) | |||
239 | msg->getS32Fast(_PREHASH_ButtonData,_PREHASH_PayButton,pay_button,i); | 239 | msg->getS32Fast(_PREHASH_ButtonData,_PREHASH_PayButton,pay_button,i); |
240 | if (pay_button > 0) | 240 | if (pay_button > 0) |
241 | { | 241 | { |
242 | LLString button_str; | 242 | LLString button_str = "L$"; |
243 | gResMgr->getMonetaryString( button_str, pay_button ); | 243 | button_str += gResMgr->getMonetaryString( pay_button ); |
244 | 244 | ||
245 | self->mQuickPayButton[i]->setLabelSelected(button_str); | 245 | self->mQuickPayButton[i]->setLabelSelected(button_str); |
246 | self->mQuickPayButton[i]->setLabelUnselected(button_str); | 246 | self->mQuickPayButton[i]->setLabelUnselected(button_str); |
@@ -260,8 +260,8 @@ void LLFloaterPay::processPayPriceReply(LLMessageSystem* msg, void **userdata) | |||
260 | } | 260 | } |
261 | 261 | ||
262 | // build a string containing the maximum value and calc nerw button width from it. | 262 | // build a string containing the maximum value and calc nerw button width from it. |
263 | LLString balance_str; | 263 | LLString balance_str = "L$"; |
264 | gResMgr->getMonetaryString( balance_str, max_pay_amount ); | 264 | balance_str += gResMgr->getMonetaryString( max_pay_amount ); |
265 | const LLFontGL* font = gResMgr->getRes(LLFONT_SANSSERIF); | 265 | const LLFontGL* font = gResMgr->getRes(LLFONT_SANSSERIF); |
266 | S32 new_button_width = font->getWidth( LLString(balance_str)); | 266 | S32 new_button_width = font->getWidth( LLString(balance_str)); |
267 | new_button_width += ( 12 + 12 ); // padding | 267 | new_button_width += ( 12 + 12 ); // padding |
diff --git a/linden/indra/newview/llimpanel.cpp b/linden/indra/newview/llimpanel.cpp index 3a947bc..b259b80 100644 --- a/linden/indra/newview/llimpanel.cpp +++ b/linden/indra/newview/llimpanel.cpp | |||
@@ -79,6 +79,7 @@ | |||
79 | const S32 LINE_HEIGHT = 16; | 79 | const S32 LINE_HEIGHT = 16; |
80 | const S32 MIN_WIDTH = 200; | 80 | const S32 MIN_WIDTH = 200; |
81 | const S32 MIN_HEIGHT = 130; | 81 | const S32 MIN_HEIGHT = 130; |
82 | const U32 DEFAULT_RETRIES_COUNT = 3; | ||
82 | 83 | ||
83 | // | 84 | // |
84 | // Statics | 85 | // Statics |
@@ -502,6 +503,8 @@ void LLVoiceChannel::initClass() | |||
502 | LLVoiceChannelGroup::LLVoiceChannelGroup(const LLUUID& session_id, const LLString& session_name) : | 503 | LLVoiceChannelGroup::LLVoiceChannelGroup(const LLUUID& session_id, const LLString& session_name) : |
503 | LLVoiceChannel(session_id, session_name) | 504 | LLVoiceChannel(session_id, session_name) |
504 | { | 505 | { |
506 | mRetries = DEFAULT_RETRIES_COUNT; | ||
507 | mIsRetrying = FALSE; | ||
505 | } | 508 | } |
506 | 509 | ||
507 | LLVoiceChannelGroup::~LLVoiceChannelGroup() | 510 | LLVoiceChannelGroup::~LLVoiceChannelGroup() |
@@ -548,18 +551,92 @@ void LLVoiceChannelGroup::getChannelInfo() | |||
548 | } | 551 | } |
549 | } | 552 | } |
550 | 553 | ||
554 | void LLVoiceChannelGroup::setChannelInfo( | ||
555 | const LLString& uri, | ||
556 | const LLString& credentials) | ||
557 | { | ||
558 | setURI(uri); | ||
559 | |||
560 | mCredentials = credentials; | ||
561 | |||
562 | if (mState == STATE_NO_CHANNEL_INFO) | ||
563 | { | ||
564 | if(!mURI.empty() && !mCredentials.empty()) | ||
565 | { | ||
566 | setState(STATE_READY); | ||
567 | |||
568 | // if we are supposed to be active, reconnect | ||
569 | // this will happen on initial connect, as we request credentials on first use | ||
570 | if (sCurrentVoiceChannel == this) | ||
571 | { | ||
572 | // just in case we got new channel info while active | ||
573 | // should move over to new channel | ||
574 | activate(); | ||
575 | } | ||
576 | } | ||
577 | else | ||
578 | { | ||
579 | //*TODO: notify user | ||
580 | llwarns << "Received invalid credentials for channel " << mSessionName << llendl; | ||
581 | deactivate(); | ||
582 | } | ||
583 | } | ||
584 | else if ( mIsRetrying ) | ||
585 | { | ||
586 | // we have the channel info, just need to use it now | ||
587 | LLVoiceClient::getInstance()->setNonSpatialChannel( | ||
588 | mURI, | ||
589 | mCredentials); | ||
590 | } | ||
591 | } | ||
592 | |||
593 | void LLVoiceChannelGroup::handleStatusChange(EStatusType type) | ||
594 | { | ||
595 | // status updates | ||
596 | switch(type) | ||
597 | { | ||
598 | case STATUS_JOINED: | ||
599 | mRetries = 3; | ||
600 | mIsRetrying = FALSE; | ||
601 | default: | ||
602 | break; | ||
603 | } | ||
604 | |||
605 | LLVoiceChannel::handleStatusChange(type); | ||
606 | } | ||
607 | |||
551 | void LLVoiceChannelGroup::handleError(EStatusType status) | 608 | void LLVoiceChannelGroup::handleError(EStatusType status) |
552 | { | 609 | { |
553 | std::string notify; | 610 | std::string notify; |
554 | switch(status) | 611 | switch(status) |
555 | { | 612 | { |
556 | case ERROR_CHANNEL_LOCKED: | 613 | case ERROR_CHANNEL_LOCKED: |
557 | case ERROR_CHANNEL_FULL: | 614 | case ERROR_CHANNEL_FULL: |
558 | notify = "VoiceChannelFull"; | 615 | notify = "VoiceChannelFull"; |
559 | break; | 616 | break; |
560 | case ERROR_UNKNOWN: | 617 | case ERROR_NOT_AVAILABLE: |
618 | //clear URI and credentials | ||
619 | //set the state to be no info | ||
620 | //and activate | ||
621 | if ( mRetries > 0 ) | ||
622 | { | ||
623 | mRetries--; | ||
624 | mIsRetrying = TRUE; | ||
625 | mIgnoreNextSessionLeave = TRUE; | ||
626 | |||
627 | getChannelInfo(); | ||
628 | return; | ||
629 | } | ||
630 | else | ||
631 | { | ||
632 | notify = "VoiceChannelJoinFailed"; | ||
633 | mRetries = DEFAULT_RETRIES_COUNT; | ||
634 | mIsRetrying = FALSE; | ||
635 | } | ||
636 | |||
561 | break; | 637 | break; |
562 | default: | 638 | case ERROR_UNKNOWN: |
639 | default: | ||
563 | break; | 640 | break; |
564 | } | 641 | } |
565 | 642 | ||
@@ -570,10 +647,27 @@ void LLVoiceChannelGroup::handleError(EStatusType status) | |||
570 | // echo to im window | 647 | // echo to im window |
571 | gIMMgr->addMessage(mSessionID, LLUUID::null, SYSTEM_FROM, LLNotifyBox::getTemplateMessage(notify, mNotifyArgs).c_str()); | 648 | gIMMgr->addMessage(mSessionID, LLUUID::null, SYSTEM_FROM, LLNotifyBox::getTemplateMessage(notify, mNotifyArgs).c_str()); |
572 | } | 649 | } |
573 | 650 | ||
574 | LLVoiceChannel::handleError(status); | 651 | LLVoiceChannel::handleError(status); |
575 | } | 652 | } |
576 | 653 | ||
654 | void LLVoiceChannelGroup::setState(EState state) | ||
655 | { | ||
656 | switch(state) | ||
657 | { | ||
658 | case STATE_RINGING: | ||
659 | if ( !mIsRetrying ) | ||
660 | { | ||
661 | gIMMgr->addSystemMessage(mSessionID, "ringing", mNotifyArgs); | ||
662 | } | ||
663 | |||
664 | mState = state; | ||
665 | break; | ||
666 | default: | ||
667 | LLVoiceChannel::setState(state); | ||
668 | } | ||
669 | } | ||
670 | |||
577 | // | 671 | // |
578 | // LLVoiceChannelProximal | 672 | // LLVoiceChannelProximal |
579 | // | 673 | // |
@@ -710,7 +804,7 @@ void LLVoiceChannelP2P::handleStatusChange(EStatusType type) | |||
710 | break; | 804 | break; |
711 | } | 805 | } |
712 | 806 | ||
713 | LLVoiceChannelGroup::handleStatusChange(type); | 807 | LLVoiceChannel::handleStatusChange(type); |
714 | } | 808 | } |
715 | 809 | ||
716 | void LLVoiceChannelP2P::handleError(EStatusType type) | 810 | void LLVoiceChannelP2P::handleError(EStatusType type) |
@@ -724,7 +818,7 @@ void LLVoiceChannelP2P::handleError(EStatusType type) | |||
724 | break; | 818 | break; |
725 | } | 819 | } |
726 | 820 | ||
727 | LLVoiceChannelGroup::handleError(type); | 821 | LLVoiceChannel::handleError(type); |
728 | } | 822 | } |
729 | 823 | ||
730 | void LLVoiceChannelP2P::activate() | 824 | void LLVoiceChannelP2P::activate() |
diff --git a/linden/indra/newview/llimpanel.h b/linden/indra/newview/llimpanel.h index 631dc5c..c1ad18d 100644 --- a/linden/indra/newview/llimpanel.h +++ b/linden/indra/newview/llimpanel.h | |||
@@ -62,13 +62,15 @@ public: | |||
62 | LLVoiceChannel(const LLUUID& session_id, const LLString& session_name); | 62 | LLVoiceChannel(const LLUUID& session_id, const LLString& session_name); |
63 | virtual ~LLVoiceChannel(); | 63 | virtual ~LLVoiceChannel(); |
64 | 64 | ||
65 | void setChannelInfo(const LLString& uri, const LLString& credentials); | ||
66 | /*virtual*/ void onChange(EStatusType status, const std::string &channelURI, bool proximal); | 65 | /*virtual*/ void onChange(EStatusType status, const std::string &channelURI, bool proximal); |
67 | 66 | ||
68 | virtual void handleStatusChange(EStatusType status); | 67 | virtual void handleStatusChange(EStatusType status); |
69 | virtual void handleError(EStatusType status); | 68 | virtual void handleError(EStatusType status); |
70 | virtual void deactivate(); | 69 | virtual void deactivate(); |
71 | virtual void activate(); | 70 | virtual void activate(); |
71 | virtual void setChannelInfo( | ||
72 | const LLString& uri, | ||
73 | const LLString& credentials); | ||
72 | virtual void getChannelInfo(); | 74 | virtual void getChannelInfo(); |
73 | virtual BOOL isActive(); | 75 | virtual BOOL isActive(); |
74 | virtual BOOL callStarted(); | 76 | virtual BOOL callStarted(); |
@@ -82,7 +84,7 @@ public: | |||
82 | static void initClass(); | 84 | static void initClass(); |
83 | 85 | ||
84 | protected: | 86 | protected: |
85 | void setState(EState state); | 87 | virtual void setState(EState state); |
86 | void setURI(LLString uri); | 88 | void setURI(LLString uri); |
87 | 89 | ||
88 | LLString mURI; | 90 | LLString mURI; |
@@ -109,10 +111,21 @@ public: | |||
109 | LLVoiceChannelGroup(const LLUUID& session_id, const LLString& session_name); | 111 | LLVoiceChannelGroup(const LLUUID& session_id, const LLString& session_name); |
110 | virtual ~LLVoiceChannelGroup(); | 112 | virtual ~LLVoiceChannelGroup(); |
111 | 113 | ||
114 | /*virtual*/ void handleStatusChange(EStatusType status); | ||
112 | /*virtual*/ void handleError(EStatusType status); | 115 | /*virtual*/ void handleError(EStatusType status); |
113 | /*virtual*/ void activate(); | 116 | /*virtual*/ void activate(); |
114 | /*virtual*/ void deactivate(); | 117 | /*virtual*/ void deactivate(); |
118 | /*vritual*/ void setChannelInfo( | ||
119 | const LLString& uri, | ||
120 | const LLString& credentials); | ||
115 | /*virtual*/ void getChannelInfo(); | 121 | /*virtual*/ void getChannelInfo(); |
122 | |||
123 | protected: | ||
124 | virtual void setState(EState state); | ||
125 | |||
126 | private: | ||
127 | U32 mRetries; | ||
128 | BOOL mIsRetrying; | ||
116 | }; | 129 | }; |
117 | 130 | ||
118 | class LLVoiceChannelProximal : public LLVoiceChannel, public LLSingleton<LLVoiceChannelProximal> | 131 | class LLVoiceChannelProximal : public LLVoiceChannel, public LLSingleton<LLVoiceChannelProximal> |
diff --git a/linden/indra/newview/llimview.cpp b/linden/indra/newview/llimview.cpp index dee1ed2..a6e2a13 100644 --- a/linden/indra/newview/llimview.cpp +++ b/linden/indra/newview/llimview.cpp | |||
@@ -310,6 +310,7 @@ LLIMMgr::LLIMMgr() : | |||
310 | delete dummy_floater; | 310 | delete dummy_floater; |
311 | 311 | ||
312 | mPendingVoiceInvitations = LLSD::emptyMap(); | 312 | mPendingVoiceInvitations = LLSD::emptyMap(); |
313 | mPendingAgentListUpdates = LLSD::emptyMap(); | ||
313 | } | 314 | } |
314 | 315 | ||
315 | LLIMMgr::~LLIMMgr() | 316 | LLIMMgr::~LLIMMgr() |
@@ -725,15 +726,41 @@ public: | |||
725 | 726 | ||
726 | if (floaterp) | 727 | if (floaterp) |
727 | { | 728 | { |
729 | //we've accepted our invitation | ||
730 | //and received a list of agents that were | ||
731 | //currently in the session when the reply was sent | ||
732 | //to us. Now, it is possible that there were some agents | ||
733 | //to slip in/out between when that message was sent to us | ||
734 | //and now. | ||
735 | |||
736 | //the agent list updates we've received have been | ||
737 | //accurate from the time we were added to the session | ||
738 | //but unfortunately, our base that we are receiving here | ||
739 | //may not be the most up to date. It was accurate at | ||
740 | //some point in time though. | ||
728 | floaterp->setSpeakersList(content["agents"]); | 741 | floaterp->setSpeakersList(content["agents"]); |
729 | 742 | ||
743 | //we now have our base of users in the session | ||
744 | //that was accurate at some point, but maybe not now | ||
745 | //so now we apply all of the udpates we've received | ||
746 | //in case of race conditions | ||
747 | |||
748 | //reapplying a user entrance will do nothing | ||
749 | //reapplying a user leaving will not have the user | ||
750 | //in our base. So it's all good | ||
751 | floaterp->updateSpeakersList( | ||
752 | gIMMgr->getPendingAgentListUpdates(mSessionID)); | ||
753 | |||
730 | if ( mIsVoiceInvitiation ) | 754 | if ( mIsVoiceInvitiation ) |
731 | { | 755 | { |
732 | floaterp->requestAutoConnect(); | 756 | floaterp->requestAutoConnect(); |
733 | LLFloaterIMPanel::onClickStartCall(floaterp); | 757 | LLFloaterIMPanel::onClickStartCall(floaterp); |
758 | // always open IM window when connecting to voice | ||
759 | LLFloaterChatterBox::showInstance(TRUE); | ||
734 | } | 760 | } |
735 | } | 761 | } |
736 | 762 | ||
763 | gIMMgr->clearPendingAgentListUpdates(mSessionID); | ||
737 | if ( mIsVoiceInvitiation ) | 764 | if ( mIsVoiceInvitiation ) |
738 | { | 765 | { |
739 | gIMMgr->clearPendingVoiceInviation(mSessionID); | 766 | gIMMgr->clearPendingVoiceInviation(mSessionID); |
@@ -779,6 +806,8 @@ void LLIMMgr::inviteUserResponse(S32 option, void* user_data) | |||
779 | { | 806 | { |
780 | im_floater->requestAutoConnect(); | 807 | im_floater->requestAutoConnect(); |
781 | LLFloaterIMPanel::onClickStartCall(im_floater); | 808 | LLFloaterIMPanel::onClickStartCall(im_floater); |
809 | // always open IM window when connecting to voice | ||
810 | LLFloaterChatterBox::showInstance(TRUE); | ||
782 | } | 811 | } |
783 | 812 | ||
784 | gIMMgr->clearPendingVoiceInviation(invitep->mSessionID); | 813 | gIMMgr->clearPendingVoiceInviation(invitep->mSessionID); |
@@ -911,6 +940,41 @@ void LLIMMgr::clearPendingVoiceInviation(const LLUUID& session_id) | |||
911 | } | 940 | } |
912 | } | 941 | } |
913 | 942 | ||
943 | LLSD LLIMMgr::getPendingAgentListUpdates(const LLUUID& session_id) | ||
944 | { | ||
945 | if ( mPendingAgentListUpdates.has(session_id.asString()) ) | ||
946 | { | ||
947 | return mPendingAgentListUpdates[session_id.asString()]; | ||
948 | } | ||
949 | else | ||
950 | { | ||
951 | return LLSD(); | ||
952 | } | ||
953 | } | ||
954 | |||
955 | void LLIMMgr::addPendingAgentListUpdates( | ||
956 | const LLUUID& session_id, | ||
957 | const LLSD& updates) | ||
958 | { | ||
959 | LLSD::map_const_iterator iter; | ||
960 | |||
961 | for ( iter = updates.beginMap(); | ||
962 | iter != updates.endMap(); | ||
963 | iter++) | ||
964 | { | ||
965 | //we only want to include the last update for a given agent | ||
966 | mPendingAgentListUpdates[session_id.asString()][iter->first] = | ||
967 | iter->second; | ||
968 | } | ||
969 | } | ||
970 | |||
971 | void LLIMMgr::clearPendingAgentListUpdates(const LLUUID& session_id) | ||
972 | { | ||
973 | if ( mPendingAgentListUpdates.has(session_id.asString()) ) | ||
974 | { | ||
975 | mPendingAgentListUpdates.erase(session_id.asString()); | ||
976 | } | ||
977 | } | ||
914 | 978 | ||
915 | // create a floater and update internal representation for | 979 | // create a floater and update internal representation for |
916 | // consistency. Returns the pointer, caller (the class instance since | 980 | // consistency. Returns the pointer, caller (the class instance since |
@@ -1078,7 +1142,12 @@ public: | |||
1078 | if (floaterp) | 1142 | if (floaterp) |
1079 | { | 1143 | { |
1080 | floaterp->setSpeakersList(body["agents"]); | 1144 | floaterp->setSpeakersList(body["agents"]); |
1145 | |||
1146 | //aply updates we've possibly received previously | ||
1147 | floaterp->updateSpeakersList( | ||
1148 | gIMMgr->getPendingAgentListUpdates(session_id)); | ||
1081 | } | 1149 | } |
1150 | gIMMgr->clearPendingAgentListUpdates(session_id); | ||
1082 | } | 1151 | } |
1083 | else | 1152 | else |
1084 | { | 1153 | { |
@@ -1191,6 +1260,15 @@ public: | |||
1191 | { | 1260 | { |
1192 | floaterp->updateSpeakersList(input["body"]["updates"]); | 1261 | floaterp->updateSpeakersList(input["body"]["updates"]); |
1193 | } | 1262 | } |
1263 | else | ||
1264 | { | ||
1265 | //we don't have a floater yet..something went wrong | ||
1266 | //we are probably receiving an update here before | ||
1267 | //a start or an acceptance of an invitation. Race condition. | ||
1268 | gIMMgr->addPendingAgentListUpdates( | ||
1269 | input["body"]["session_id"].asUUID(), | ||
1270 | input["body"]["updates"]); | ||
1271 | } | ||
1194 | } | 1272 | } |
1195 | }; | 1273 | }; |
1196 | 1274 | ||
diff --git a/linden/indra/newview/llimview.h b/linden/indra/newview/llimview.h index 5f7829c..f5356ef 100644 --- a/linden/indra/newview/llimview.h +++ b/linden/indra/newview/llimview.h | |||
@@ -148,7 +148,13 @@ public: | |||
148 | static LLUUID computeSessionID(EInstantMessage dialog, const LLUUID& other_participant_id); | 148 | static LLUUID computeSessionID(EInstantMessage dialog, const LLUUID& other_participant_id); |
149 | 149 | ||
150 | void clearPendingVoiceInviation(const LLUUID& session_id); | 150 | void clearPendingVoiceInviation(const LLUUID& session_id); |
151 | 151 | ||
152 | LLSD getPendingAgentListUpdates(const LLUUID& session_id); | ||
153 | void addPendingAgentListUpdates( | ||
154 | const LLUUID& sessioN_id, | ||
155 | const LLSD& updates); | ||
156 | void clearPendingAgentListUpdates(const LLUUID& session_id); | ||
157 | |||
152 | private: | 158 | private: |
153 | class LLIMSessionInvite; | 159 | class LLIMSessionInvite; |
154 | 160 | ||
@@ -188,6 +194,7 @@ private: | |||
188 | BOOL mIMReceived; | 194 | BOOL mIMReceived; |
189 | 195 | ||
190 | LLSD mPendingVoiceInvitations; | 196 | LLSD mPendingVoiceInvitations; |
197 | LLSD mPendingAgentListUpdates; | ||
191 | }; | 198 | }; |
192 | 199 | ||
193 | 200 | ||
diff --git a/linden/indra/newview/llinventorybridge.cpp b/linden/indra/newview/llinventorybridge.cpp index 505364f..f777e09 100644 --- a/linden/indra/newview/llinventorybridge.cpp +++ b/linden/indra/newview/llinventorybridge.cpp | |||
@@ -1845,7 +1845,7 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags) | |||
1845 | else if(isAgentInventory()) // do not allow creating in library | 1845 | else if(isAgentInventory()) // do not allow creating in library |
1846 | { | 1846 | { |
1847 | // only mature accounts can create undershirts/underwear | 1847 | // only mature accounts can create undershirts/underwear |
1848 | /*if (gAgent.mAccess >= SIM_ACCESS_MATURE) | 1848 | /*if (!gAgent.isTeen()) |
1849 | { | 1849 | { |
1850 | sub_menu->append(new LLMenuItemCallGL("New Undershirt", | 1850 | sub_menu->append(new LLMenuItemCallGL("New Undershirt", |
1851 | &createNewUndershirt, | 1851 | &createNewUndershirt, |
@@ -2524,6 +2524,14 @@ void LLLandmarkBridge::performAction(LLFolderView* folder, LLInventoryModel* mod | |||
2524 | } | 2524 | } |
2525 | } | 2525 | } |
2526 | } | 2526 | } |
2527 | if ("about" == action) | ||
2528 | { | ||
2529 | LLViewerInventoryItem* item = getItem(); | ||
2530 | if(item) | ||
2531 | { | ||
2532 | open_landmark(item, LLString(" ") + getPrefix() + item->getName(), FALSE); | ||
2533 | } | ||
2534 | } | ||
2527 | else LLItemBridge::performAction(folder, model, action); | 2535 | else LLItemBridge::performAction(folder, model, action); |
2528 | } | 2536 | } |
2529 | 2537 | ||
@@ -2555,12 +2563,35 @@ void open_landmark(LLViewerInventoryItem* inv_item, | |||
2555 | } | 2563 | } |
2556 | } | 2564 | } |
2557 | 2565 | ||
2566 | static void open_landmark_callback(S32 option, void* data) | ||
2567 | { | ||
2568 | LLUUID* asset_idp = (LLUUID*)data; | ||
2569 | if (option == 0) | ||
2570 | { | ||
2571 | // HACK: This is to demonstrate teleport on double click for landmarks | ||
2572 | gAgent.teleportViaLandmark( *asset_idp ); | ||
2573 | |||
2574 | // we now automatically track the landmark you're teleporting to | ||
2575 | // because you'll probably arrive at a telehub instead | ||
2576 | if( gFloaterWorldMap ) | ||
2577 | { | ||
2578 | gFloaterWorldMap->trackLandmark( *asset_idp ); | ||
2579 | } | ||
2580 | } | ||
2581 | delete asset_idp; | ||
2582 | } | ||
2583 | |||
2558 | void LLLandmarkBridge::openItem() | 2584 | void LLLandmarkBridge::openItem() |
2559 | { | 2585 | { |
2560 | LLViewerInventoryItem* item = getItem(); | 2586 | LLViewerInventoryItem* item = getItem(); |
2561 | if( item ) | 2587 | if( item ) |
2562 | { | 2588 | { |
2563 | open_landmark(item, LLString(" ") + getPrefix() + item->getName(), FALSE); | 2589 | // Opening (double-clicking) a landmark immediately teleports, |
2590 | // but warns you the first time. | ||
2591 | // open_landmark(item, LLString(" ") + getPrefix() + item->getName(), FALSE); | ||
2592 | LLUUID* asset_idp = new LLUUID(item->getAssetUUID()); | ||
2593 | LLAlertDialog::showXml("TeleportFromLandmark", | ||
2594 | open_landmark_callback, (void*)asset_idp); | ||
2564 | } | 2595 | } |
2565 | } | 2596 | } |
2566 | 2597 | ||
@@ -4463,7 +4494,7 @@ void LLWearableBridge::onRemoveFromAvatarArrived(LLWearable* wearable, | |||
4463 | EWearableType type = wearable->getType(); | 4494 | EWearableType type = wearable->getType(); |
4464 | 4495 | ||
4465 | if( !(type==WT_SHAPE || type==WT_SKIN || type==WT_HAIR ) ) //&& | 4496 | if( !(type==WT_SHAPE || type==WT_SKIN || type==WT_HAIR ) ) //&& |
4466 | //!((gAgent.mAccess >= SIM_ACCESS_MATURE) && ( type==WT_UNDERPANTS || type==WT_UNDERSHIRT )) ) | 4497 | //!((!gAgent.isTeen()) && ( type==WT_UNDERPANTS || type==WT_UNDERSHIRT )) ) |
4467 | { | 4498 | { |
4468 | gAgent.removeWearable( type ); | 4499 | gAgent.removeWearable( type ); |
4469 | } | 4500 | } |
diff --git a/linden/indra/newview/lllcd.cpp b/linden/indra/newview/lllcd.cpp new file mode 100644 index 0000000..f6fec7d --- /dev/null +++ b/linden/indra/newview/lllcd.cpp | |||
@@ -0,0 +1,703 @@ | |||
1 | /** | ||
2 | * @file lllcd.cpp | ||
3 | * @brief Lcd panel class | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2001-2007, Linden Research, Inc. | ||
8 | * | ||
9 | * Second Life Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
11 | * to you under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
15 | * online at http://secondlife.com/developers/opensource/gplv2 | ||
16 | * | ||
17 | * There are special exceptions to the terms and conditions of the GPL as | ||
18 | * it is applied to this Source Code. View the full text of the exception | ||
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
20 | * online at http://secondlife.com/developers/opensource/flossexception | ||
21 | * | ||
22 | * By copying, modifying or distributing this software, you acknowledge | ||
23 | * that you have read and understood your obligations described above, | ||
24 | * and agree to abide by those obligations. | ||
25 | * | ||
26 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
27 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
28 | * COMPLETENESS OR PERFORMANCE. | ||
29 | * $/LicenseInfo$ | ||
30 | */ | ||
31 | |||
32 | |||
33 | #include "llviewerprecompiledheaders.h" | ||
34 | #include "llcontrol.h" | ||
35 | #include "llstatusbar.h" | ||
36 | #include "llviewerregion.h" | ||
37 | #include "llviewerstats.h" | ||
38 | #include "llvieweruictrlfactory.h" | ||
39 | |||
40 | #if LL_LCD_COMPILE | ||
41 | |||
42 | extern LLControlGroup gSavedSettings; | ||
43 | |||
44 | #define ICON_WIDTH 28 | ||
45 | |||
46 | #if LL_WINDOWS | ||
47 | // for Logitech LCD keyboards / speakers | ||
48 | #include "EZ_LCD.h" | ||
49 | #include "lllogitechlcd.h" | ||
50 | #include "lllcd.h" | ||
51 | |||
52 | // not happy about this, but there's no local class to put it in. | ||
53 | LLPanel *bogus = NULL; | ||
54 | |||
55 | // oh yeah baby! Construct those LCD page group handlers - make them all and we just turn off displaying them according to the preferences set up | ||
56 | void CreateLCDDebugWindows() | ||
57 | { | ||
58 | if (gLcdScreen->Enabled()) | ||
59 | { | ||
60 | // load up the text so we are sure it's externalized and localized correctly. | ||
61 | bogus = new LLPanel(); | ||
62 | gUICtrlFactory->buildPanel(bogus, "lcd_text.xml"); | ||
63 | |||
64 | llLCDPageGroup *pageGroup = NULL; | ||
65 | pageGroup = new llDefaultPageGroup(gLcdScreen->mLCD, llLCD::kLCDDefault, gLcdScreen->mSLIcon); | ||
66 | // push this new group onto the array | ||
67 | gLcdScreen->mPageGroupArray.push_back(pageGroup); | ||
68 | |||
69 | pageGroup = new llChatPageGroup(gLcdScreen->mLCD, llLCD::kLCDChat, gLcdScreen->mSLIcon); | ||
70 | // push this new group onto the array | ||
71 | gLcdScreen->mPageGroupArray.push_back(pageGroup); | ||
72 | |||
73 | pageGroup = new llIMPageGroup(gLcdScreen->mLCD, llLCD::kLCDIM, gLcdScreen->mSLIcon); | ||
74 | // push this new group onto the array | ||
75 | gLcdScreen->mPageGroupArray.push_back(pageGroup); | ||
76 | |||
77 | pageGroup = new llDebugPageGroup(gLcdScreen->mLCD, llLCD::kLCDDebug, gLcdScreen->mSLIcon); | ||
78 | // push this new group onto the array | ||
79 | gLcdScreen->mPageGroupArray.push_back(pageGroup); | ||
80 | |||
81 | pageGroup = new llLindenPageGroup(gLcdScreen->mLCD, llLCD::kLCDLinden, gLcdScreen->mSLIcon); | ||
82 | // push this new group onto the array | ||
83 | gLcdScreen->mPageGroupArray.push_back(pageGroup); | ||
84 | |||
85 | pageGroup = new llRegionPageGroup(gLcdScreen->mLCD, llLCD::kLCDRegion, gLcdScreen->mSLIcon); | ||
86 | // push this new group onto the array | ||
87 | gLcdScreen->mPageGroupArray.push_back(pageGroup); | ||
88 | |||
89 | pageGroup = new llDebugConsolePageGroup(gLcdScreen->mLCD, llLCD::kLCDDebugConsole, gLcdScreen->mSLIcon); | ||
90 | // push this new group onto the array | ||
91 | gLcdScreen->mPageGroupArray.push_back(pageGroup); | ||
92 | } | ||
93 | } | ||
94 | |||
95 | // functions that allow the chat and IM handler to insert new lines directly into the LCD page group handlers | ||
96 | void AddNewIMToLCD(const LLString &newLine) | ||
97 | { | ||
98 | if (gLcdScreen->Enabled()) | ||
99 | { | ||
100 | llIMPageGroup *imGroup = (llIMPageGroup *)gLcdScreen->mPageGroupArray[2]; | ||
101 | imGroup->InsertText(newLine); | ||
102 | } | ||
103 | } | ||
104 | |||
105 | void AddNewChatToLCD(const LLString &newLine) | ||
106 | { | ||
107 | if (gLcdScreen->Enabled()) | ||
108 | { | ||
109 | llChatPageGroup *chatGroup = (llChatPageGroup *)gLcdScreen->mPageGroupArray[1]; | ||
110 | chatGroup->InsertText(newLine); | ||
111 | } | ||
112 | } | ||
113 | |||
114 | void AddNewDebugConsoleToLCD(const LLWString &newLine) | ||
115 | { | ||
116 | if (gLcdScreen->Enabled()) | ||
117 | { | ||
118 | llDebugConsolePageGroup *debugGroup = (llDebugConsolePageGroup *)gLcdScreen->mPageGroupArray[6]; | ||
119 | debugGroup->InsertText(newLine); | ||
120 | } | ||
121 | } | ||
122 | |||
123 | ///////////////////////////////////// | ||
124 | // | ||
125 | // Debug Console Page group class | ||
126 | // | ||
127 | ///////////////////////////////////// | ||
128 | |||
129 | void llDebugConsolePageGroup::UpdateDetails() | ||
130 | { | ||
131 | mLCD->ModifyControlsOnPage(mPageArray[0].mPageIndex); | ||
132 | mLCD->SetText(mPageArray[0].mDisplayItemArray[0], (LPCTSTR)(wstring_to_utf16str(mLine1).c_str())); | ||
133 | mLCD->SetText(mPageArray[0].mDisplayItemArray[1], (LPCTSTR)(wstring_to_utf16str(mLine2).c_str())); | ||
134 | mLCD->SetText(mPageArray[0].mDisplayItemArray[2], (LPCTSTR)(wstring_to_utf16str(mLine3).c_str())); | ||
135 | } | ||
136 | |||
137 | void llDebugConsolePageGroup::GetDisplayable() | ||
138 | { | ||
139 | mDisplayPage = gSavedSettings.getBOOL("DisplayDebugConsole"); | ||
140 | } | ||
141 | |||
142 | void llDebugConsolePageGroup::InsertText(const LLWString &newLine) | ||
143 | { | ||
144 | mLine1 = mLine2; | ||
145 | mLine2 = mLine3; | ||
146 | mLine3 = newLine; | ||
147 | } | ||
148 | |||
149 | llDebugConsolePageGroup::llDebugConsolePageGroup(CEzLcd *LCD, int type, HICON SLIcon) | ||
150 | :llLCDPageGroup(LCD, type, SLIcon) | ||
151 | { | ||
152 | // create a new specific pagea | ||
153 | llLCDSpecificPage newPage; | ||
154 | newPage.mPageIndex = mLCD->AddNewPage() - 1; | ||
155 | mLCD->ModifyControlsOnPage(newPage.mPageIndex); | ||
156 | |||
157 | // add in all the display parts for this specific page | ||
158 | |||
159 | // add in the icon - all pages have this - we don't need to track this because we never update it | ||
160 | HANDLE m_rightIcon = mLCD->AddIcon(mSLIcon, 32, 32); | ||
161 | mLCD->SetOrigin(m_rightIcon, 0, 0); | ||
162 | |||
163 | // add Title | ||
164 | HANDLE title = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_CENTER, 128); | ||
165 | mLCD->SetOrigin(title, 32, 0); | ||
166 | mLCD->SetText(title, _T("Debug Console")); | ||
167 | |||
168 | // add line | ||
169 | HANDLE chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH); | ||
170 | mLCD->SetOrigin(chatLine, ICON_WIDTH, 11); | ||
171 | mLCD->SetText(chatLine, _T("")); | ||
172 | newPage.mDisplayItemArray.push_back(chatLine); | ||
173 | |||
174 | // add line | ||
175 | chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH); | ||
176 | mLCD->SetOrigin(chatLine, ICON_WIDTH, 22); | ||
177 | mLCD->SetText(chatLine, _T("")); | ||
178 | newPage.mDisplayItemArray.push_back(chatLine); | ||
179 | |||
180 | // add line | ||
181 | chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH); | ||
182 | mLCD->SetOrigin(chatLine, ICON_WIDTH, 33); | ||
183 | mLCD->SetText(chatLine, _T("")); | ||
184 | newPage.mDisplayItemArray.push_back(chatLine); | ||
185 | |||
186 | // and then insert it | ||
187 | mPageArray.push_back(newPage); | ||
188 | } | ||
189 | |||
190 | ///////////////////////////////////// | ||
191 | // | ||
192 | // Network Comms Page group class | ||
193 | // | ||
194 | ///////////////////////////////////// | ||
195 | |||
196 | void llDebugPageGroup::UpdateDetails() | ||
197 | { | ||
198 | mLCD->ModifyControlsOnPage(mPageArray[0].mPageIndex); | ||
199 | LLString ping = llformat("1000"); | ||
200 | LLString packetsIn = llformat("0"); | ||
201 | LLString packetsOut = llformat("0"); | ||
202 | LLString packetLoss = llformat("0"); | ||
203 | LLString fps = llformat("0"); | ||
204 | LLString simfps = llformat("0"); | ||
205 | // region name | ||
206 | if (gStatusBar) | ||
207 | { | ||
208 | ping = llformat("%d", gStatusBar->mRegionDetails.mPing); | ||
209 | } | ||
210 | |||
211 | if (gViewerStats) | ||
212 | { | ||
213 | packetLoss = llformat("%.1f%%", gViewerStats->mPacketsLostPercentStat.getCurrent()); | ||
214 | simfps = llformat("%d", (int)gViewerStats->mSimFPS.getCurrent()); | ||
215 | fps = llformat("%.1f%", gViewerStats->mFPSStat.getMeanPerSec()); | ||
216 | packetsIn = llformat("%d", (int)gViewerStats->mSimInPPS.getCurrent()); | ||
217 | packetsOut = llformat("%d", (int)gViewerStats->mSimOutPPS.getCurrent()); | ||
218 | } | ||
219 | |||
220 | // fps | ||
221 | mLCD->SetText(mPageArray[0].mDisplayItemArray[0], (LPCTSTR)(utf8str_to_utf16str(fps).c_str())); | ||
222 | // simfps | ||
223 | mLCD->SetText(mPageArray[0].mDisplayItemArray[1], (LPCTSTR)(utf8str_to_utf16str(simfps).c_str())); | ||
224 | // packets in | ||
225 | mLCD->SetText(mPageArray[0].mDisplayItemArray[2], (LPCTSTR)(utf8str_to_utf16str(packetsIn).c_str())); | ||
226 | // packets out | ||
227 | mLCD->SetText(mPageArray[0].mDisplayItemArray[3], (LPCTSTR)(utf8str_to_utf16str(packetsOut).c_str())); | ||
228 | // packet loss | ||
229 | mLCD->SetText(mPageArray[0].mDisplayItemArray[4], (LPCTSTR)(utf8str_to_utf16str(packetLoss).c_str())); | ||
230 | // ping | ||
231 | mLCD->SetText(mPageArray[0].mDisplayItemArray[5], (LPCTSTR)(utf8str_to_utf16str(ping).c_str())); | ||
232 | } | ||
233 | |||
234 | void llDebugPageGroup::GetDisplayable() | ||
235 | { | ||
236 | mDisplayPage = gSavedSettings.getBOOL("DisplayDebug"); | ||
237 | } | ||
238 | |||
239 | llDebugPageGroup::llDebugPageGroup(CEzLcd *LCD, int type, HICON SLIcon) | ||
240 | :llLCDPageGroup(LCD, type, SLIcon) | ||
241 | { | ||
242 | // create a new specific page | ||
243 | llLCDSpecificPage newPage; | ||
244 | newPage.mPageIndex = mLCD->AddNewPage() - 1; | ||
245 | mLCD->ModifyControlsOnPage(newPage.mPageIndex); | ||
246 | |||
247 | // add in all the display parts for this specific page | ||
248 | |||
249 | // add in the icon - all pages have this - we don't need to track this because we never update it | ||
250 | HANDLE m_rightIcon = mLCD->AddIcon(mSLIcon, 32, 32); | ||
251 | mLCD->SetOrigin(m_rightIcon, 0, 0); | ||
252 | |||
253 | // add Title | ||
254 | HANDLE title = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_CENTER, 128); | ||
255 | mLCD->SetOrigin(title, 32, 0); | ||
256 | mLCD->SetText(title, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("DebugInfo")).c_str())); | ||
257 | |||
258 | HANDLE fpsStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 18); | ||
259 | mLCD->SetOrigin(fpsStatic, ICON_WIDTH, 11); | ||
260 | mLCD->SetText(fpsStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("FPS")).c_str())); | ||
261 | |||
262 | HANDLE fps = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 25); | ||
263 | mLCD->SetOrigin(fps, ICON_WIDTH+25, 11); | ||
264 | mLCD->SetText(fps, _T("")); | ||
265 | newPage.mDisplayItemArray.push_back(fps); | ||
266 | |||
267 | HANDLE simfpsStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 35); | ||
268 | mLCD->SetOrigin(simfpsStatic, ICON_WIDTH+37+25, 11); | ||
269 | mLCD->SetText(simfpsStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("SimFPS")).c_str())); | ||
270 | |||
271 | HANDLE simfps = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 25); | ||
272 | mLCD->SetOrigin(simfps, ICON_WIDTH+37+27+37, 11); | ||
273 | mLCD->SetText(simfps, _T("")); | ||
274 | newPage.mDisplayItemArray.push_back(simfps); | ||
275 | |||
276 | HANDLE packetsinStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 25); | ||
277 | mLCD->SetOrigin(packetsinStatic, ICON_WIDTH, 22); | ||
278 | mLCD->SetText(packetsinStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("Pin")).c_str())); | ||
279 | |||
280 | HANDLE packetsin = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 25); | ||
281 | mLCD->SetOrigin(packetsin, ICON_WIDTH+32, 22); | ||
282 | mLCD->SetText(packetsin, _T("")); | ||
283 | newPage.mDisplayItemArray.push_back(packetsin); | ||
284 | |||
285 | HANDLE packetsoutStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30); | ||
286 | mLCD->SetOrigin(packetsoutStatic, ICON_WIDTH+37+25, 22); | ||
287 | mLCD->SetText(packetsoutStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("Pout")).c_str())); | ||
288 | |||
289 | HANDLE packetsout = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 25); | ||
290 | mLCD->SetOrigin(packetsout, ICON_WIDTH+37+27+37, 22); | ||
291 | mLCD->SetText(packetsout, _T("")); | ||
292 | newPage.mDisplayItemArray.push_back(packetsout); | ||
293 | |||
294 | HANDLE packetlossStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30); | ||
295 | mLCD->SetOrigin(packetlossStatic, ICON_WIDTH, 33); | ||
296 | mLCD->SetText(packetlossStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("PLoss")).c_str())); | ||
297 | |||
298 | HANDLE packetloss = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 35); | ||
299 | mLCD->SetOrigin(packetloss, ICON_WIDTH+33, 33); | ||
300 | mLCD->SetText(packetloss, _T("")); | ||
301 | newPage.mDisplayItemArray.push_back(packetloss); | ||
302 | |||
303 | HANDLE pingStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 20); | ||
304 | mLCD->SetOrigin(pingStatic, ICON_WIDTH+32+38, 33); | ||
305 | mLCD->SetText(pingStatic,(LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("Ping")).c_str())); | ||
306 | |||
307 | HANDLE ping = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30); | ||
308 | mLCD->SetOrigin(ping, ICON_WIDTH+37+27+37, 33); | ||
309 | mLCD->SetText(ping, _T("")); | ||
310 | newPage.mDisplayItemArray.push_back(ping); | ||
311 | |||
312 | // and then insert it | ||
313 | mPageArray.push_back(newPage); | ||
314 | } | ||
315 | |||
316 | ///////////////////////////////////// | ||
317 | // | ||
318 | // Linden Account group class | ||
319 | // | ||
320 | ///////////////////////////////////// | ||
321 | |||
322 | void llLindenPageGroup::UpdateDetails() | ||
323 | { | ||
324 | mLCD->ModifyControlsOnPage(mPageArray[0].mPageIndex); | ||
325 | LLString time = llformat("Unknown"); | ||
326 | LLString balance = llformat("Unknown"); | ||
327 | // region name | ||
328 | if (gStatusBar) | ||
329 | { | ||
330 | time = gStatusBar->mRegionDetails.mTime; | ||
331 | balance = llformat("%d", gStatusBar->mRegionDetails.mBalance); | ||
332 | } | ||
333 | |||
334 | // time name | ||
335 | mLCD->SetText(mPageArray[0].mDisplayItemArray[0], (LPCTSTR)(utf8str_to_utf16str(time).c_str())); | ||
336 | // balance | ||
337 | mLCD->SetText(mPageArray[0].mDisplayItemArray[1], (LPCTSTR)(utf8str_to_utf16str(balance).c_str())); | ||
338 | } | ||
339 | |||
340 | void llLindenPageGroup::GetDisplayable() | ||
341 | { | ||
342 | mDisplayPage = gSavedSettings.getBOOL("DisplayLinden"); | ||
343 | } | ||
344 | |||
345 | llLindenPageGroup::llLindenPageGroup(CEzLcd *LCD, int type, HICON SLIcon) | ||
346 | :llLCDPageGroup(LCD, type, SLIcon) | ||
347 | { | ||
348 | // create a new specific page | ||
349 | llLCDSpecificPage newPage; | ||
350 | newPage.mPageIndex = mLCD->AddNewPage() - 1; | ||
351 | mLCD->ModifyControlsOnPage(newPage.mPageIndex); | ||
352 | |||
353 | // add in all the display parts for this specific page | ||
354 | |||
355 | // add in the icon - all pages have this - we don't need to track this because we never update it | ||
356 | HANDLE m_rightIcon = mLCD->AddIcon(mSLIcon, 32, 32); | ||
357 | mLCD->SetOrigin(m_rightIcon, 0, 0); | ||
358 | |||
359 | // add Title | ||
360 | HANDLE title = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_CENTER, 128); | ||
361 | mLCD->SetOrigin(title, 32, 0); | ||
362 | mLCD->SetText(title, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("AccountDetails")).c_str())); | ||
363 | |||
364 | HANDLE timeStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30); | ||
365 | mLCD->SetOrigin(timeStatic, ICON_WIDTH, 11); | ||
366 | mLCD->SetText(timeStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("Time")).c_str())); | ||
367 | |||
368 | HANDLE time = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH - 32); | ||
369 | mLCD->SetOrigin(time, ICON_WIDTH+32, 11); | ||
370 | mLCD->SetText(time, _T("")); | ||
371 | newPage.mDisplayItemArray.push_back(time); | ||
372 | |||
373 | HANDLE balanceStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30); | ||
374 | mLCD->SetOrigin(balanceStatic, ICON_WIDTH, 22); | ||
375 | mLCD->SetText(balanceStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("LBal")).c_str())); | ||
376 | |||
377 | HANDLE balance = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH - 35); | ||
378 | mLCD->SetOrigin(balance, ICON_WIDTH+35, 22); | ||
379 | mLCD->SetText(balance, _T("")); | ||
380 | newPage.mDisplayItemArray.push_back(balance); | ||
381 | |||
382 | // and then insert it | ||
383 | mPageArray.push_back(newPage); | ||
384 | } | ||
385 | |||
386 | ///////////////////////////////////// | ||
387 | // | ||
388 | // Region Group page | ||
389 | // | ||
390 | ///////////////////////////////////// | ||
391 | |||
392 | void llRegionPageGroup::UpdateDetails() | ||
393 | { | ||
394 | LLString pos = llformat("Unknown"); | ||
395 | LLString parcel = llformat("Unknown"); | ||
396 | LLString region = llformat("Unknown"); | ||
397 | LLString owner = llformat("Unknown"); | ||
398 | LLString forsale = bogus->childGetText("No"); | ||
399 | LLString rtype = llformat("Unknown"); | ||
400 | LLString sqm = llformat("0"); | ||
401 | LLString traffic = llformat("0"); | ||
402 | |||
403 | // region name | ||
404 | if (gStatusBar) | ||
405 | { | ||
406 | pos = llformat(" %d, %d, %d", gStatusBar->mRegionDetails.mX, gStatusBar->mRegionDetails.mY, gStatusBar->mRegionDetails.mZ); | ||
407 | parcel = llformat("%s", gStatusBar->mRegionDetails.mParcelName); | ||
408 | region = gStatusBar->mRegionDetails.mRegionName; | ||
409 | rtype = llformat("%s", gStatusBar->mRegionDetails.mAccesString); | ||
410 | sqm = llformat("%d", gStatusBar->mRegionDetails.mArea); | ||
411 | if (gStatusBar->mRegionDetails.mForSale) | ||
412 | { | ||
413 | forsale = bogus->childGetText("Yes"); | ||
414 | } | ||
415 | owner = llformat("%s", gStatusBar->mRegionDetails.mOwner); | ||
416 | traffic = llformat("%d", (int)gStatusBar->mRegionDetails.mTraffic); | ||
417 | } | ||
418 | |||
419 | // update first page | ||
420 | mLCD->ModifyControlsOnPage(mPageArray[0].mPageIndex); | ||
421 | // region name | ||
422 | mLCD->SetText(mPageArray[0].mDisplayItemArray[0], (LPCTSTR)(utf8str_to_utf16str(region).c_str())); | ||
423 | // parcel name | ||
424 | mLCD->SetText(mPageArray[0].mDisplayItemArray[1], (LPCTSTR)(utf8str_to_utf16str(parcel).c_str())); | ||
425 | // position name | ||
426 | mLCD->SetText(mPageArray[0].mDisplayItemArray[2], (LPCTSTR)(utf8str_to_utf16str(pos).c_str())); | ||
427 | // Sqm | ||
428 | mLCD->SetText(mPageArray[0].mDisplayItemArray[3], (LPCTSTR)(utf8str_to_utf16str(sqm).c_str())); | ||
429 | |||
430 | // update second page | ||
431 | mLCD->ModifyControlsOnPage(mPageArray[1].mPageIndex); | ||
432 | // owner | ||
433 | mLCD->SetText(mPageArray[1].mDisplayItemArray[0], (LPCTSTR)(utf8str_to_utf16str(owner).c_str())); | ||
434 | // access type | ||
435 | mLCD->SetText(mPageArray[1].mDisplayItemArray[1], (LPCTSTR)(utf8str_to_utf16str(rtype).c_str())); | ||
436 | // forsale | ||
437 | mLCD->SetText(mPageArray[1].mDisplayItemArray[2], (LPCTSTR)(utf8str_to_utf16str(forsale).c_str())); | ||
438 | // traffic | ||
439 | mLCD->SetText(mPageArray[1].mDisplayItemArray[3], (LPCTSTR)(utf8str_to_utf16str(traffic).c_str())); | ||
440 | |||
441 | } | ||
442 | |||
443 | void llRegionPageGroup::GetDisplayable() | ||
444 | { | ||
445 | mDisplayPage = gSavedSettings.getBOOL("DisplayRegion"); | ||
446 | } | ||
447 | |||
448 | llRegionPageGroup::llRegionPageGroup(CEzLcd *LCD, int type, HICON SLIcon) | ||
449 | :llLCDPageGroup(LCD, type, SLIcon) | ||
450 | { | ||
451 | // create a new specific page | ||
452 | llLCDSpecificPage newPage; | ||
453 | newPage.mPageIndex = mLCD->AddNewPage() - 1; | ||
454 | mLCD->ModifyControlsOnPage(newPage.mPageIndex); | ||
455 | |||
456 | // add in all the display parts for this specific page | ||
457 | |||
458 | // add in the icon - all pages have this - we don't need to track this because we never update it | ||
459 | HANDLE m_rightIcon = mLCD->AddIcon(mSLIcon, 32, 32); | ||
460 | mLCD->SetOrigin(m_rightIcon, 0, 0); | ||
461 | |||
462 | // add Title | ||
463 | HANDLE title = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_CENTER, 128); | ||
464 | mLCD->SetOrigin(title, 32, 0); | ||
465 | mLCD->SetText(title, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("LocationDetails1")).c_str())); | ||
466 | |||
467 | HANDLE regionNameStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30); | ||
468 | mLCD->SetOrigin(regionNameStatic, ICON_WIDTH, 11); | ||
469 | mLCD->SetText(regionNameStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("Region")).c_str())); | ||
470 | |||
471 | HANDLE regionName = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH - 30 - 2); | ||
472 | mLCD->SetOrigin(regionName, ICON_WIDTH+32, 11); | ||
473 | mLCD->SetText(regionName, _T("")); | ||
474 | newPage.mDisplayItemArray.push_back(regionName); | ||
475 | |||
476 | HANDLE parcelStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30); | ||
477 | mLCD->SetOrigin(parcelStatic, ICON_WIDTH, 22); | ||
478 | mLCD->SetText(parcelStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("Parcel")).c_str())); | ||
479 | |||
480 | HANDLE parcel = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_CENTER, 160 - ICON_WIDTH - 30 - 2); | ||
481 | mLCD->SetOrigin(parcel, ICON_WIDTH+32, 22); | ||
482 | mLCD->SetText(parcel, _T("")); | ||
483 | newPage.mDisplayItemArray.push_back(parcel); | ||
484 | |||
485 | HANDLE positionStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 18); | ||
486 | mLCD->SetOrigin(positionStatic, 0, 33); | ||
487 | mLCD->SetText(positionStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("Parcel")).c_str())); | ||
488 | |||
489 | HANDLE position = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 60); | ||
490 | mLCD->SetOrigin(position, 20, 33); | ||
491 | mLCD->SetText(position, _T("100, 100, 100")); | ||
492 | newPage.mDisplayItemArray.push_back(position); | ||
493 | |||
494 | HANDLE sqmStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 18); | ||
495 | mLCD->SetOrigin(sqmStatic, 90, 33); | ||
496 | mLCD->SetText(sqmStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("Sqm")).c_str())); | ||
497 | |||
498 | HANDLE sqm = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 40); | ||
499 | mLCD->SetOrigin(sqm, 90 + 20, 33); | ||
500 | mLCD->SetText(sqm, _T("1000")); | ||
501 | newPage.mDisplayItemArray.push_back(sqm); | ||
502 | |||
503 | // and then insert it | ||
504 | mPageArray.push_back(newPage); | ||
505 | |||
506 | // create a new specific page | ||
507 | llLCDSpecificPage newPage2; | ||
508 | newPage2.mPageIndex = mLCD->AddNewPage() - 1; | ||
509 | mLCD->ModifyControlsOnPage(newPage2.mPageIndex); | ||
510 | |||
511 | // add in all the display parts for this specific page | ||
512 | |||
513 | // add in the icon - all pages have this - we don't need to track this because we never update it | ||
514 | m_rightIcon = mLCD->AddIcon(mSLIcon, 32, 32); | ||
515 | mLCD->SetOrigin(m_rightIcon, 0, 0); | ||
516 | |||
517 | // add Title | ||
518 | title = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_CENTER, 128); | ||
519 | mLCD->SetOrigin(title, 32, 0); | ||
520 | mLCD->SetText(title, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("LocationDetails2")).c_str())); | ||
521 | |||
522 | HANDLE ownerStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30); | ||
523 | mLCD->SetOrigin(ownerStatic, ICON_WIDTH, 11); | ||
524 | mLCD->SetText(ownerStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("Owner")).c_str())); | ||
525 | |||
526 | HANDLE owner = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - 30 - ICON_WIDTH - 2); | ||
527 | mLCD->SetOrigin(owner, ICON_WIDTH+32, 11); | ||
528 | mLCD->SetText(owner, _T("")); | ||
529 | newPage2.mDisplayItemArray.push_back(owner); | ||
530 | |||
531 | HANDLE typeStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30); | ||
532 | mLCD->SetOrigin(typeStatic, ICON_WIDTH, 22); | ||
533 | mLCD->SetText(typeStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("Type")).c_str())); | ||
534 | |||
535 | HANDLE rtype = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 160 - 30 - ICON_WIDTH - 2); | ||
536 | mLCD->SetOrigin(rtype, ICON_WIDTH+32, 22); | ||
537 | mLCD->SetText(rtype, _T("")); | ||
538 | newPage2.mDisplayItemArray.push_back(rtype); | ||
539 | |||
540 | HANDLE forsaleStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 40); | ||
541 | mLCD->SetOrigin(forsaleStatic, 0, 33); | ||
542 | mLCD->SetText(forsaleStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("Forsale")).c_str())); | ||
543 | |||
544 | HANDLE forsale = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30); | ||
545 | mLCD->SetOrigin(forsale, 42, 33); | ||
546 | mLCD->SetText(forsale, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("No")).c_str())); | ||
547 | newPage2.mDisplayItemArray.push_back(forsale); | ||
548 | |||
549 | HANDLE trafficStatic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 50); | ||
550 | mLCD->SetOrigin(trafficStatic, 70, 33); | ||
551 | mLCD->SetText(trafficStatic, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("Traffic")).c_str())); | ||
552 | |||
553 | HANDLE traffic = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_LEFT, 30); | ||
554 | mLCD->SetOrigin(traffic, 122, 33); | ||
555 | mLCD->SetText(traffic, _T("200")); | ||
556 | newPage2.mDisplayItemArray.push_back(traffic); | ||
557 | |||
558 | // and then insert it | ||
559 | mPageArray.push_back(newPage2); | ||
560 | } | ||
561 | |||
562 | ///////////////////////////////////// | ||
563 | // | ||
564 | // Chat group Page class | ||
565 | // | ||
566 | ///////////////////////////////////// | ||
567 | |||
568 | void llChatPageGroup::UpdateDetails() | ||
569 | { | ||
570 | mLCD->ModifyControlsOnPage(mPageArray[0].mPageIndex); | ||
571 | mLCD->SetText(mPageArray[0].mDisplayItemArray[0], (LPCTSTR)(utf8str_to_utf16str(mLine1).c_str())); | ||
572 | mLCD->SetText(mPageArray[0].mDisplayItemArray[1], (LPCTSTR)(utf8str_to_utf16str(mLine2).c_str())); | ||
573 | mLCD->SetText(mPageArray[0].mDisplayItemArray[2], (LPCTSTR)(utf8str_to_utf16str(mLine3).c_str())); | ||
574 | } | ||
575 | |||
576 | void llChatPageGroup::GetDisplayable() | ||
577 | { | ||
578 | mDisplayPage = gSavedSettings.getBOOL("DisplayChat"); | ||
579 | } | ||
580 | |||
581 | void llChatPageGroup::InsertText(const LLString &newLine) | ||
582 | { | ||
583 | mLine1 = mLine2; | ||
584 | mLine2 = mLine3; | ||
585 | mLine3 = newLine; | ||
586 | } | ||
587 | |||
588 | llChatPageGroup::llChatPageGroup(CEzLcd *LCD, int type, HICON SLIcon) | ||
589 | :llLCDPageGroup(LCD, type, SLIcon) | ||
590 | { | ||
591 | mLine1 = llformat(""); | ||
592 | mLine2 = llformat(""); | ||
593 | mLine3 = llformat(""); | ||
594 | // create a new specific page | ||
595 | llLCDSpecificPage newPage; | ||
596 | newPage.mPageIndex = mLCD->AddNewPage() - 1; | ||
597 | mLCD->ModifyControlsOnPage(newPage.mPageIndex); | ||
598 | |||
599 | // add in all the display parts for this specific page | ||
600 | |||
601 | // add in the icon - all pages have this - we don't need to track this because we never update it | ||
602 | HANDLE m_rightIcon = mLCD->AddIcon(mSLIcon, 32, 32); | ||
603 | mLCD->SetOrigin(m_rightIcon, 0, 0); | ||
604 | |||
605 | // add Title | ||
606 | HANDLE title = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_CENTER, 128); | ||
607 | mLCD->SetOrigin(title, 32, 0); | ||
608 | mLCD->SetText(title, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("Last3ChatLines")).c_str())); | ||
609 | |||
610 | // add line | ||
611 | HANDLE chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH); | ||
612 | mLCD->SetOrigin(chatLine, ICON_WIDTH, 11); | ||
613 | mLCD->SetText(chatLine, _T("")); | ||
614 | newPage.mDisplayItemArray.push_back(chatLine); | ||
615 | |||
616 | // add line | ||
617 | chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH); | ||
618 | mLCD->SetOrigin(chatLine, ICON_WIDTH, 22); | ||
619 | mLCD->SetText(chatLine, _T("")); | ||
620 | newPage.mDisplayItemArray.push_back(chatLine); | ||
621 | |||
622 | // add line | ||
623 | chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH); | ||
624 | mLCD->SetOrigin(chatLine, ICON_WIDTH, 33); | ||
625 | mLCD->SetText(chatLine, _T("")); | ||
626 | newPage.mDisplayItemArray.push_back(chatLine); | ||
627 | |||
628 | // and then insert it | ||
629 | mPageArray.push_back(newPage); | ||
630 | } | ||
631 | |||
632 | ///////////////////////////////////// | ||
633 | // | ||
634 | // IM Page Group class | ||
635 | // | ||
636 | ///////////////////////////////////// | ||
637 | |||
638 | void llIMPageGroup::UpdateDetails() | ||
639 | { | ||
640 | mLCD->ModifyControlsOnPage(mPageArray[0].mPageIndex); | ||
641 | mLCD->SetText(mPageArray[0].mDisplayItemArray[0], (LPCTSTR)(utf8str_to_utf16str(mLine1).c_str())); | ||
642 | mLCD->SetText(mPageArray[0].mDisplayItemArray[1], (LPCTSTR)(utf8str_to_utf16str(mLine2).c_str())); | ||
643 | mLCD->SetText(mPageArray[0].mDisplayItemArray[2], (LPCTSTR)(utf8str_to_utf16str(mLine3).c_str())); | ||
644 | } | ||
645 | |||
646 | void llIMPageGroup::GetDisplayable() | ||
647 | { | ||
648 | mDisplayPage = gSavedSettings.getBOOL("DisplayIM"); | ||
649 | } | ||
650 | |||
651 | void llIMPageGroup::InsertText(const LLString &newLine) | ||
652 | { | ||
653 | mLine1 = mLine2; | ||
654 | mLine2 = mLine3; | ||
655 | mLine3 = newLine; | ||
656 | } | ||
657 | |||
658 | llIMPageGroup::llIMPageGroup(CEzLcd *LCD, int type, HICON SLIcon) | ||
659 | :llLCDPageGroup(LCD, type, SLIcon) | ||
660 | { | ||
661 | mLine1 = llformat(""); | ||
662 | mLine2 = llformat(""); | ||
663 | mLine3 = llformat(""); | ||
664 | // create a new specific page | ||
665 | llLCDSpecificPage newPage; | ||
666 | newPage.mPageIndex = mLCD->AddNewPage() - 1; | ||
667 | mLCD->ModifyControlsOnPage(newPage.mPageIndex); | ||
668 | |||
669 | // add in all the display parts for this specific page | ||
670 | |||
671 | // add in the icon - all pages have this - we don't need to track this because we never update it | ||
672 | HANDLE m_rightIcon = mLCD->AddIcon(mSLIcon, 32, 32); | ||
673 | mLCD->SetOrigin(m_rightIcon, 0, 0); | ||
674 | |||
675 | // add Title | ||
676 | HANDLE title = mLCD->AddText(LG_STATIC_TEXT, LG_SMALL, DT_CENTER, 128); | ||
677 | mLCD->SetOrigin(title, 32, 0); | ||
678 | mLCD->SetText(title, (LPCTSTR)(utf8str_to_utf16str(bogus->childGetText("Last3IMLines")).c_str())); | ||
679 | |||
680 | // add line | ||
681 | HANDLE chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH); | ||
682 | mLCD->SetOrigin(chatLine, ICON_WIDTH, 11); | ||
683 | mLCD->SetText(chatLine, _T("")); | ||
684 | newPage.mDisplayItemArray.push_back(chatLine); | ||
685 | |||
686 | // add line | ||
687 | chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH); | ||
688 | mLCD->SetOrigin(chatLine, ICON_WIDTH, 22); | ||
689 | mLCD->SetText(chatLine, _T("")); | ||
690 | newPage.mDisplayItemArray.push_back(chatLine); | ||
691 | |||
692 | // add line | ||
693 | chatLine = mLCD->AddText(LG_SCROLLING_TEXT, LG_SMALL, DT_LEFT, 160 - ICON_WIDTH); | ||
694 | mLCD->SetOrigin(chatLine, ICON_WIDTH, 33); | ||
695 | mLCD->SetText(chatLine, _T("")); | ||
696 | newPage.mDisplayItemArray.push_back(chatLine); | ||
697 | |||
698 | // and then insert it | ||
699 | mPageArray.push_back(newPage); | ||
700 | } | ||
701 | |||
702 | #endif //LL_WINDOWS | ||
703 | #endif //LL_LCD_COMPILE \ No newline at end of file | ||
diff --git a/linden/indra/newview/lllcd.h b/linden/indra/newview/lllcd.h new file mode 100644 index 0000000..e6583c7 --- /dev/null +++ b/linden/indra/newview/lllcd.h | |||
@@ -0,0 +1,110 @@ | |||
1 | /** | ||
2 | * @file lllcd.h | ||
3 | * @brief Description of the LCDdisplay class. | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2001-2007, Linden Research, Inc. | ||
8 | * | ||
9 | * Second Life Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
11 | * to you under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
15 | * online at http://secondlife.com/developers/opensource/gplv2 | ||
16 | * | ||
17 | * There are special exceptions to the terms and conditions of the GPL as | ||
18 | * it is applied to this Source Code. View the full text of the exception | ||
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
20 | * online at http://secondlife.com/developers/opensource/flossexception | ||
21 | * | ||
22 | * By copying, modifying or distributing this software, you acknowledge | ||
23 | * that you have read and understood your obligations described above, | ||
24 | * and agree to abide by those obligations. | ||
25 | * | ||
26 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
27 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
28 | * COMPLETENESS OR PERFORMANCE. | ||
29 | * $/LicenseInfo$ | ||
30 | */ | ||
31 | #define LL_LLLCD_H | ||
32 | |||
33 | #ifndef LL_LOGITECH_LCD_H | ||
34 | #include "lllogitechlcd.h" | ||
35 | #endif | ||
36 | |||
37 | |||
38 | // class that defines the specific Debug page group of pages | ||
39 | class llDebugPageGroup : public llLCDPageGroup | ||
40 | { | ||
41 | public: | ||
42 | llDebugPageGroup(CEzLcd *LCD, int type, HICON SLIcon); | ||
43 | virtual void UpdateDetails(); | ||
44 | virtual void GetDisplayable(); | ||
45 | }; | ||
46 | |||
47 | // class that defines the specific Debug Console group of pages | ||
48 | class llDebugConsolePageGroup : public llLCDPageGroup | ||
49 | { | ||
50 | public: | ||
51 | llDebugConsolePageGroup(CEzLcd *LCD, int type, HICON SLIcon); | ||
52 | virtual void UpdateDetails(); | ||
53 | virtual void GetDisplayable(); | ||
54 | void InsertText(const LLWString &newLine); | ||
55 | private: | ||
56 | LLWString mLine1; | ||
57 | LLWString mLine2; | ||
58 | LLWString mLine3; | ||
59 | }; | ||
60 | |||
61 | // class that defines the specific Linden Account group of pages | ||
62 | class llLindenPageGroup : public llLCDPageGroup | ||
63 | { | ||
64 | public: | ||
65 | llLindenPageGroup(CEzLcd *LCD, int type, HICON SLIcon); | ||
66 | virtual void UpdateDetails(); | ||
67 | virtual void GetDisplayable(); | ||
68 | }; | ||
69 | |||
70 | // class that defines the specific Chat group of pages | ||
71 | class llChatPageGroup : public llLCDPageGroup | ||
72 | { | ||
73 | public: | ||
74 | llChatPageGroup(CEzLcd *LCD, int type, HICON SLIcon); | ||
75 | virtual void UpdateDetails(); | ||
76 | virtual void GetDisplayable(); | ||
77 | void InsertText(const LLString &newLine); | ||
78 | private: | ||
79 | LLString mLine1; | ||
80 | LLString mLine2; | ||
81 | LLString mLine3; | ||
82 | }; | ||
83 | |||
84 | // class that defines the specific IM group of pages | ||
85 | class llIMPageGroup : public llLCDPageGroup | ||
86 | { | ||
87 | public: | ||
88 | llIMPageGroup(CEzLcd *LCD, int type, HICON SLIcon); | ||
89 | virtual void UpdateDetails(); | ||
90 | virtual void GetDisplayable(); | ||
91 | void InsertText(const LLString &newLine); | ||
92 | private: | ||
93 | LLString mLine1; | ||
94 | LLString mLine2; | ||
95 | LLString mLine3; | ||
96 | }; | ||
97 | |||
98 | // class that defines the specific Region group of pages | ||
99 | class llRegionPageGroup : public llLCDPageGroup | ||
100 | { | ||
101 | public: | ||
102 | llRegionPageGroup(CEzLcd *LCD, int type, HICON SLIcon); | ||
103 | virtual void UpdateDetails(); | ||
104 | virtual void GetDisplayable(); | ||
105 | }; | ||
106 | |||
107 | class llLCD; | ||
108 | extern llLCD *gLcdScreen; | ||
109 | |||
110 | //#endif | ||
diff --git a/linden/indra/newview/lloverlaybar.cpp b/linden/indra/newview/lloverlaybar.cpp index d8131c2..bcdb6c6 100644 --- a/linden/indra/newview/lloverlaybar.cpp +++ b/linden/indra/newview/lloverlaybar.cpp | |||
@@ -42,6 +42,7 @@ | |||
42 | #include "llfocusmgr.h" | 42 | #include "llfocusmgr.h" |
43 | #include "llimview.h" | 43 | #include "llimview.h" |
44 | #include "llmediaengine.h" | 44 | #include "llmediaengine.h" |
45 | #include "llmediaremotectrl.h" | ||
45 | #include "llpanelaudiovolume.h" | 46 | #include "llpanelaudiovolume.h" |
46 | #include "llparcel.h" | 47 | #include "llparcel.h" |
47 | #include "lltextbox.h" | 48 | #include "lltextbox.h" |
@@ -124,7 +125,7 @@ LLOverlayBar::LLOverlayBar(const std::string& name, const LLRect& rect) | |||
124 | setMouseOpaque(FALSE); | 125 | setMouseOpaque(FALSE); |
125 | setIsChrome(TRUE); | 126 | setIsChrome(TRUE); |
126 | 127 | ||
127 | isBuilt = FALSE; | 128 | mBuilt = false; |
128 | 129 | ||
129 | LLCallbackMap::map_t factory_map; | 130 | LLCallbackMap::map_t factory_map; |
130 | factory_map["master_volume"] = LLCallbackMap(LLOverlayBar::createMasterRemote, this); | 131 | factory_map["master_volume"] = LLCallbackMap(LLOverlayBar::createMasterRemote, this); |
@@ -141,7 +142,7 @@ LLOverlayBar::LLOverlayBar(const std::string& name, const LLRect& rect) | |||
141 | childSetAction("Stand Up",onClickStandUp,this); | 142 | childSetAction("Stand Up",onClickStandUp,this); |
142 | 143 | ||
143 | mIsFocusRoot = TRUE; | 144 | mIsFocusRoot = TRUE; |
144 | isBuilt = true; | 145 | mBuilt = true; |
145 | 146 | ||
146 | // make overlay bar conform to window size | 147 | // make overlay bar conform to window size |
147 | setRect(rect); | 148 | setRect(rect); |
@@ -168,7 +169,7 @@ void LLOverlayBar::reshape(S32 width, S32 height, BOOL called_from_parent) | |||
168 | { | 169 | { |
169 | LLView::reshape(width, height, called_from_parent); | 170 | LLView::reshape(width, height, called_from_parent); |
170 | 171 | ||
171 | if (isBuilt) | 172 | if (mBuilt) |
172 | { | 173 | { |
173 | layoutButtons(); | 174 | layoutButtons(); |
174 | } | 175 | } |
diff --git a/linden/indra/newview/lloverlaybar.h b/linden/indra/newview/lloverlaybar.h index d8b9ba1..2293463 100644 --- a/linden/indra/newview/lloverlaybar.h +++ b/linden/indra/newview/lloverlaybar.h | |||
@@ -33,13 +33,13 @@ | |||
33 | #define LL_LLOVERLAYBAR_H | 33 | #define LL_LLOVERLAYBAR_H |
34 | 34 | ||
35 | #include "llpanel.h" | 35 | #include "llpanel.h" |
36 | #include "llmediaremotectrl.h" | ||
37 | 36 | ||
38 | // "Constants" loaded from settings.xml at start time | 37 | // "Constants" loaded from settings.xml at start time |
39 | extern S32 STATUS_BAR_HEIGHT; | 38 | extern S32 STATUS_BAR_HEIGHT; |
40 | 39 | ||
41 | class LLButton; | 40 | class LLButton; |
42 | class LLLineEditor; | 41 | class LLLineEditor; |
42 | class LLMediaRemoteCtrl; | ||
43 | class LLMessageSystem; | 43 | class LLMessageSystem; |
44 | class LLTextBox; | 44 | class LLTextBox; |
45 | class LLTextEditor; | 45 | class LLTextEditor; |
@@ -102,7 +102,7 @@ protected: | |||
102 | LLMediaRemoteCtrl* mMusicRemote; | 102 | LLMediaRemoteCtrl* mMusicRemote; |
103 | LLMediaRemoteCtrl* mMediaRemote; | 103 | LLMediaRemoteCtrl* mMediaRemote; |
104 | LLVoiceRemoteCtrl* mVoiceRemote; | 104 | LLVoiceRemoteCtrl* mVoiceRemote; |
105 | BOOL isBuilt; | 105 | bool mBuilt; // dialog constructed yet? |
106 | enum { STOPPED=0, PLAYING=1, PAUSED=2 }; | 106 | enum { STOPPED=0, PLAYING=1, PAUSED=2 }; |
107 | BOOL mMediaState; | 107 | BOOL mMediaState; |
108 | BOOL mMusicState; | 108 | BOOL mMusicState; |
diff --git a/linden/indra/newview/llpanelLCD.cpp b/linden/indra/newview/llpanelLCD.cpp new file mode 100644 index 0000000..960a321 --- /dev/null +++ b/linden/indra/newview/llpanelLCD.cpp | |||
@@ -0,0 +1,131 @@ | |||
1 | /** | ||
2 | * @file llpanellcd.cpp | ||
3 | * @brief lcd options panel | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2001-2007, Linden Research, Inc. | ||
8 | * | ||
9 | * Second Life Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
11 | * to you under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
15 | * online at http://secondlife.com/developers/opensource/gplv2 | ||
16 | * | ||
17 | * There are special exceptions to the terms and conditions of the GPL as | ||
18 | * it is applied to this Source Code. View the full text of the exception | ||
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
20 | * online at http://secondlife.com/developers/opensource/flossexception | ||
21 | * | ||
22 | * By copying, modifying or distributing this software, you acknowledge | ||
23 | * that you have read and understood your obligations described above, | ||
24 | * and agree to abide by those obligations. | ||
25 | * | ||
26 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
27 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
28 | * COMPLETENESS OR PERFORMANCE. | ||
29 | * $/LicenseInfo$ | ||
30 | */ | ||
31 | |||
32 | #include "llviewerprecompiledheaders.h" | ||
33 | |||
34 | #include "llpanelLCD.h" | ||
35 | |||
36 | // linden library includes | ||
37 | #include "llerror.h" | ||
38 | #include "llrect.h" | ||
39 | #include "llfontgl.h" | ||
40 | #include "message.h" | ||
41 | #include "llvieweruictrlfactory.h" | ||
42 | |||
43 | // project includes | ||
44 | #include "llviewerwindow.h" | ||
45 | #include "llcheckboxctrl.h" | ||
46 | #include "llradiogroup.h" | ||
47 | #include "llresmgr.h" | ||
48 | #include "lltextbox.h" | ||
49 | #include "llui.h" | ||
50 | #include "viewer.h" | ||
51 | |||
52 | //Ventrella | ||
53 | #include "llagent.h" | ||
54 | //end Ventrella | ||
55 | |||
56 | // for Logitech LCD keyboards / speakers | ||
57 | #ifndef LL_LCD_H | ||
58 | #include "lllcd.h" | ||
59 | #endif | ||
60 | |||
61 | |||
62 | // | ||
63 | // Globals | ||
64 | // | ||
65 | |||
66 | // | ||
67 | // Static functions | ||
68 | // | ||
69 | |||
70 | |||
71 | LLPanelLCD::LLPanelLCD() | ||
72 | { | ||
73 | gUICtrlFactory->buildPanel(this, "panel_preferences_lcd.xml"); | ||
74 | } | ||
75 | |||
76 | BOOL LLPanelLCD::postBuild() | ||
77 | { | ||
78 | requires("LCDDestination", WIDGET_TYPE_RADIO_GROUP); | ||
79 | requires("DisplayLinden", WIDGET_TYPE_CHECKBOX); | ||
80 | requires("DisplayDebug", WIDGET_TYPE_CHECKBOX); | ||
81 | requires("DisplayDebugConsole", WIDGET_TYPE_CHECKBOX); | ||
82 | requires("DisplayRegion", WIDGET_TYPE_CHECKBOX); | ||
83 | requires("DisplayChat", WIDGET_TYPE_CHECKBOX); | ||
84 | requires("DisplayIM", WIDGET_TYPE_CHECKBOX); | ||
85 | |||
86 | if (!checkRequirements()) | ||
87 | { | ||
88 | return FALSE; | ||
89 | } | ||
90 | |||
91 | refresh(); | ||
92 | |||
93 | return TRUE; | ||
94 | } | ||
95 | |||
96 | |||
97 | LLPanelLCD::~LLPanelLCD() | ||
98 | { | ||
99 | // Children all cleaned up by default view destructor. | ||
100 | } | ||
101 | |||
102 | void LLPanelLCD::refresh() | ||
103 | { | ||
104 | mLCDDestination = gSavedSettings.getS32("LCDDestination"); | ||
105 | mDisplayChat = gSavedSettings.getBOOL("DisplayChat"); | ||
106 | mDisplayIM = gSavedSettings.getBOOL("DisplayIM"); | ||
107 | mDisplayRegion = gSavedSettings.getBOOL("DisplayRegion"); | ||
108 | mDisplayDebug = gSavedSettings.getBOOL("DisplayDebug"); | ||
109 | mDisplayDebugConsole = gSavedSettings.getBOOL("DisplayDebugConsole"); | ||
110 | mDisplayLinden = gSavedSettings.getBOOL("DisplayLinden"); | ||
111 | |||
112 | LLPanel::refresh(); | ||
113 | } | ||
114 | |||
115 | void LLPanelLCD::apply() | ||
116 | { | ||
117 | // nothing really to do here. | ||
118 | } | ||
119 | |||
120 | |||
121 | void LLPanelLCD::cancel() | ||
122 | { | ||
123 | // doing this to restore situation when we entered this function | ||
124 | gSavedSettings.setS32("LCDDestination", mLCDDestination); | ||
125 | gSavedSettings.setBOOL("DisplayChat", mDisplayChat); | ||
126 | gSavedSettings.setBOOL("DisplayIM", mDisplayIM); | ||
127 | gSavedSettings.setBOOL("DisplayRegion", mDisplayRegion); | ||
128 | gSavedSettings.setBOOL("DisplayDebug", mDisplayDebug); | ||
129 | gSavedSettings.setBOOL("DisplayDebugConsole", mDisplayDebugConsole); | ||
130 | gSavedSettings.setBOOL("DisplayLinden", mDisplayLinden); | ||
131 | } \ No newline at end of file | ||
diff --git a/linden/indra/newview/llpanelLCD.h b/linden/indra/newview/llpanelLCD.h new file mode 100644 index 0000000..60c3b9d --- /dev/null +++ b/linden/indra/newview/llpanelLCD.h | |||
@@ -0,0 +1,62 @@ | |||
1 | /** | ||
2 | * @file llpanelLCD.h | ||
3 | * @brief lcd options panel | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2001-2007, Linden Research, Inc. | ||
8 | * | ||
9 | * Second Life Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
11 | * to you under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
15 | * online at http://secondlife.com/developers/opensource/gplv2 | ||
16 | * | ||
17 | * There are special exceptions to the terms and conditions of the GPL as | ||
18 | * it is applied to this Source Code. View the full text of the exception | ||
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
20 | * online at http://secondlife.com/developers/opensource/flossexception | ||
21 | * | ||
22 | * By copying, modifying or distributing this software, you acknowledge | ||
23 | * that you have read and understood your obligations described above, | ||
24 | * and agree to abide by those obligations. | ||
25 | * | ||
26 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
27 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
28 | * COMPLETENESS OR PERFORMANCE. | ||
29 | * $/LicenseInfo$ | ||
30 | */ | ||
31 | |||
32 | #ifndef LL_PANEL_LCD_H | ||
33 | #define LL_PANEL_LCD_H | ||
34 | |||
35 | #include "llpanel.h" | ||
36 | |||
37 | class LLCheckBoxCtrl; | ||
38 | |||
39 | |||
40 | class LLPanelLCD : public LLPanel | ||
41 | { | ||
42 | public: | ||
43 | LLPanelLCD(); | ||
44 | virtual ~LLPanelLCD(); | ||
45 | |||
46 | virtual BOOL postBuild(); | ||
47 | virtual void refresh(); | ||
48 | void apply(); | ||
49 | void cancel(); | ||
50 | |||
51 | protected: | ||
52 | S32 mLCDDestination; | ||
53 | BOOL mDisplayChat; | ||
54 | BOOL mDisplayRegion; | ||
55 | BOOL mDisplayDebug; | ||
56 | BOOL mDisplayDebugConsole; | ||
57 | BOOL mDisplayLinden; | ||
58 | BOOL mDisplayIM; | ||
59 | |||
60 | }; | ||
61 | |||
62 | #endif | ||
diff --git a/linden/indra/newview/llpanelclassified.cpp b/linden/indra/newview/llpanelclassified.cpp index 1e93c12..cb75f16 100644 --- a/linden/indra/newview/llpanelclassified.cpp +++ b/linden/indra/newview/llpanelclassified.cpp | |||
@@ -47,9 +47,11 @@ | |||
47 | #include "llbutton.h" | 47 | #include "llbutton.h" |
48 | #include "llcheckboxctrl.h" | 48 | #include "llcheckboxctrl.h" |
49 | #include "llclassifiedflags.h" | 49 | #include "llclassifiedflags.h" |
50 | #include "llclassifiedstatsresponder.h" | ||
50 | #include "llviewercontrol.h" | 51 | #include "llviewercontrol.h" |
51 | #include "lllineeditor.h" | 52 | #include "lllineeditor.h" |
52 | #include "llfloateravatarinfo.h" | 53 | #include "llfloateravatarinfo.h" |
54 | #include "llfloaterclassified.h" | ||
53 | #include "lltabcontainervertical.h" | 55 | #include "lltabcontainervertical.h" |
54 | #include "lltextbox.h" | 56 | #include "lltextbox.h" |
55 | #include "llcombobox.h" | 57 | #include "llcombobox.h" |
@@ -62,6 +64,7 @@ | |||
62 | #include "llworldmap.h" | 64 | #include "llworldmap.h" |
63 | #include "llfloaterworldmap.h" | 65 | #include "llfloaterworldmap.h" |
64 | #include "llviewergenericmessage.h" // send_generic_message | 66 | #include "llviewergenericmessage.h" // send_generic_message |
67 | #include "llviewerregion.h" | ||
65 | #include "llviewerwindow.h" // for window width, height | 68 | #include "llviewerwindow.h" // for window width, height |
66 | #include "viewer.h" // app_abort_quit() | 69 | #include "viewer.h" // app_abort_quit() |
67 | 70 | ||
@@ -98,9 +101,10 @@ static LLDispatchClassifiedClickThrough sClassifiedClickThrough; | |||
98 | //static | 101 | //static |
99 | std::list<LLPanelClassified*> LLPanelClassified::sAllPanels; | 102 | std::list<LLPanelClassified*> LLPanelClassified::sAllPanels; |
100 | 103 | ||
101 | LLPanelClassified::LLPanelClassified(BOOL in_finder) | 104 | LLPanelClassified::LLPanelClassified(BOOL in_finder, bool from_search) |
102 | : LLPanel("Classified Panel"), | 105 | : LLPanel("Classified Panel"), |
103 | mInFinder(in_finder), | 106 | mInFinder(in_finder), |
107 | mFromSearch(from_search), | ||
104 | mDirty(false), | 108 | mDirty(false), |
105 | mForceClose(false), | 109 | mForceClose(false), |
106 | mLocationChanged(false), | 110 | mLocationChanged(false), |
@@ -225,7 +229,7 @@ BOOL LLPanelClassified::postBuild() | |||
225 | mMatureCheck = LLViewerUICtrlFactory::getCheckBoxByName(this, "classified_mature_check"); | 229 | mMatureCheck = LLViewerUICtrlFactory::getCheckBoxByName(this, "classified_mature_check"); |
226 | mMatureCheck->setCommitCallback(onCommitAny); | 230 | mMatureCheck->setCommitCallback(onCommitAny); |
227 | mMatureCheck->setCallbackUserData(this); | 231 | mMatureCheck->setCallbackUserData(this); |
228 | if (gAgent.mAccess < SIM_ACCESS_MATURE) | 232 | if (gAgent.isTeen()) |
229 | { | 233 | { |
230 | // Teens don't get to set mature flag. JC | 234 | // Teens don't get to set mature flag. JC |
231 | mMatureCheck->setVisible(FALSE); | 235 | mMatureCheck->setVisible(FALSE); |
@@ -364,7 +368,11 @@ void LLPanelClassified::setClassifiedID(const LLUUID& id) | |||
364 | mClassifiedID = id; | 368 | mClassifiedID = id; |
365 | } | 369 | } |
366 | 370 | ||
367 | 371 | void LLPanelClassified::setClickThroughText(const std::string& text) | |
372 | { | ||
373 | if(mClickThroughText) | ||
374 | this->mClickThroughText->setText(text); | ||
375 | } | ||
368 | //static | 376 | //static |
369 | void LLPanelClassified::setClickThrough(const LLUUID& classified_id, | 377 | void LLPanelClassified::setClickThrough(const LLUUID& classified_id, |
370 | S32 teleport, | 378 | S32 teleport, |
@@ -380,6 +388,16 @@ void LLPanelClassified::setClickThrough(const LLUUID& classified_id, | |||
380 | continue; | 388 | continue; |
381 | } | 389 | } |
382 | 390 | ||
391 | // We need to see if we should use the new stat table or the old. | ||
392 | // If the SearchStatRequest capability exists, then the data will come | ||
393 | // from the new table. | ||
394 | std::string url = gAgent.getRegion()->getCapability("SearchStatRequest"); | ||
395 | |||
396 | if (!url.empty()) | ||
397 | { | ||
398 | return; | ||
399 | } | ||
400 | |||
383 | if (self->mClickThroughText) | 401 | if (self->mClickThroughText) |
384 | { | 402 | { |
385 | std::string msg = llformat("Clicks: %d teleport, %d map, %d profile", | 403 | std::string msg = llformat("Clicks: %d teleport, %d map, %d profile", |
@@ -421,6 +439,18 @@ void LLPanelClassified::sendClassifiedInfoRequest() | |||
421 | 439 | ||
422 | mDataRequested = TRUE; | 440 | mDataRequested = TRUE; |
423 | mRequestedID = mClassifiedID; | 441 | mRequestedID = mClassifiedID; |
442 | |||
443 | // While we're at it let's get the stats from the new table if that | ||
444 | // capability exists. | ||
445 | std::string url = gAgent.getRegion()->getCapability("SearchStatRequest"); | ||
446 | LLSD body; | ||
447 | body["classified_id"] = mClassifiedID; | ||
448 | |||
449 | if (!url.empty()) | ||
450 | { | ||
451 | llinfos << "Classified stat request via capability" << llendl; | ||
452 | LLHTTPClient::post(url, body, new LLClassifiedStatsResponder(this->getHandle())); | ||
453 | } | ||
424 | } | 454 | } |
425 | } | 455 | } |
426 | 456 | ||
@@ -900,6 +930,19 @@ void LLPanelClassified::sendClassifiedClickMessage(const char* type) | |||
900 | strings.push_back(type); | 930 | strings.push_back(type); |
901 | LLUUID no_invoice; | 931 | LLUUID no_invoice; |
902 | send_generic_message("classifiedclick", strings, no_invoice); | 932 | send_generic_message("classifiedclick", strings, no_invoice); |
933 | |||
934 | // New classified click-through handling | ||
935 | LLSD body; | ||
936 | body["type"] = type; | ||
937 | body["from_search"] = mFromSearch; | ||
938 | body["classified_id"] = mClassifiedID; | ||
939 | std::string url = gAgent.getRegion()->getCapability("SearchStatTracking"); | ||
940 | |||
941 | if (!url.empty()) | ||
942 | { | ||
943 | llinfos << "LLPanelClassified::sendClassifiedClickMessage via capability" << llendl; | ||
944 | LLHTTPClient::post(url, body, new LLHTTPClient::Responder()); | ||
945 | } | ||
903 | } | 946 | } |
904 | 947 | ||
905 | //////////////////////////////////////////////////////////////////////////////////////////// | 948 | //////////////////////////////////////////////////////////////////////////////////////////// |
diff --git a/linden/indra/newview/llpanelclassified.h b/linden/indra/newview/llpanelclassified.h index 56c2fbd..6ebac4c 100644 --- a/linden/indra/newview/llpanelclassified.h +++ b/linden/indra/newview/llpanelclassified.h | |||
@@ -57,7 +57,7 @@ class LLMessageSystem; | |||
57 | class LLPanelClassified : public LLPanel | 57 | class LLPanelClassified : public LLPanel |
58 | { | 58 | { |
59 | public: | 59 | public: |
60 | LLPanelClassified(BOOL in_finder); | 60 | LLPanelClassified(BOOL in_finder, bool from_search = false); |
61 | /*virtual*/ ~LLPanelClassified(); | 61 | /*virtual*/ ~LLPanelClassified(); |
62 | 62 | ||
63 | void reset(); | 63 | void reset(); |
@@ -79,6 +79,7 @@ public: | |||
79 | void initNewClassified(); | 79 | void initNewClassified(); |
80 | 80 | ||
81 | void setClassifiedID(const LLUUID& id); | 81 | void setClassifiedID(const LLUUID& id); |
82 | void setClickThroughText(const std::string& text); | ||
82 | static void setClickThrough(const LLUUID& classified_id, | 83 | static void setClickThrough(const LLUUID& classified_id, |
83 | S32 teleport, S32 map, S32 profile); | 84 | S32 teleport, S32 map, S32 profile); |
84 | 85 | ||
@@ -118,6 +119,7 @@ protected: | |||
118 | 119 | ||
119 | protected: | 120 | protected: |
120 | BOOL mInFinder; | 121 | BOOL mInFinder; |
122 | bool mFromSearch; | ||
121 | BOOL mDirty; | 123 | BOOL mDirty; |
122 | bool mForceClose; | 124 | bool mForceClose; |
123 | bool mLocationChanged; | 125 | bool mLocationChanged; |
diff --git a/linden/indra/newview/llpaneldirbrowser.cpp b/linden/indra/newview/llpaneldirbrowser.cpp index 3e79c9d..c4e33cb 100644 --- a/linden/indra/newview/llpaneldirbrowser.cpp +++ b/linden/indra/newview/llpaneldirbrowser.cpp | |||
@@ -297,13 +297,7 @@ void LLPanelDirBrowser::onCommitList(LLUICtrl* ctrl, void* data) | |||
297 | // Start with everyone invisible | 297 | // Start with everyone invisible |
298 | if (self->mFloaterDirectory) | 298 | if (self->mFloaterDirectory) |
299 | { | 299 | { |
300 | if (self->mFloaterDirectory->mPanelAvatarp) self->mFloaterDirectory->mPanelAvatarp->setVisible(FALSE); | 300 | self->mFloaterDirectory->hideAllDetailPanels(); |
301 | if (self->mFloaterDirectory->mPanelEventp) self->mFloaterDirectory->mPanelEventp->setVisible(FALSE); | ||
302 | if (self->mFloaterDirectory->mPanelGroupp) self->mFloaterDirectory->mPanelGroupp->setVisible(FALSE); | ||
303 | if (self->mFloaterDirectory->mPanelGroupHolderp) self->mFloaterDirectory->mPanelGroupHolderp->setVisible(FALSE); | ||
304 | if (self->mFloaterDirectory->mPanelPlacep) self->mFloaterDirectory->mPanelPlacep->setVisible(FALSE); | ||
305 | if (self->mFloaterDirectory->mPanelPlaceSmallp) self->mFloaterDirectory->mPanelPlaceSmallp->setVisible(FALSE); | ||
306 | if (self->mFloaterDirectory->mPanelClassifiedp) self->mFloaterDirectory->mPanelClassifiedp->setVisible(FALSE); | ||
307 | } | 301 | } |
308 | 302 | ||
309 | if (FALSE == list->getCanSelect()) | 303 | if (FALSE == list->getCanSelect()) |
@@ -317,62 +311,70 @@ void LLPanelDirBrowser::onCommitList(LLUICtrl* ctrl, void* data) | |||
317 | return; | 311 | return; |
318 | } | 312 | } |
319 | 313 | ||
320 | LLUUID id = list->getCurrentID(); | 314 | LLSD item_id = list->getCurrentID(); |
321 | S32 type = self->mResultsContents[id_str]["type"]; | 315 | S32 type = self->mResultsContents[id_str]["type"]; |
322 | LLString name = self->mResultsContents[id_str]["name"].asString(); | 316 | if (type == EVENT_CODE) |
323 | 317 | { | |
318 | // all but events use the UUID above | ||
319 | item_id = self->mResultsContents[id_str]["event_id"]; | ||
320 | } | ||
321 | |||
322 | //LLString name = self->mResultsContents[id_str]["name"].asString(); | ||
323 | self->showDetailPanel(type, item_id); | ||
324 | } | ||
325 | |||
326 | void LLPanelDirBrowser::showDetailPanel(S32 type, LLSD id) | ||
327 | { | ||
324 | switch(type) | 328 | switch(type) |
325 | { | 329 | { |
326 | // These are both people searches. Let the panel decide if they are online or offline. | 330 | case AVATAR_CODE: |
327 | case ONLINE_CODE: | 331 | if (mFloaterDirectory && mFloaterDirectory->mPanelAvatarp) |
328 | case OFFLINE_CODE: | ||
329 | if (self->mFloaterDirectory && self->mFloaterDirectory->mPanelAvatarp) | ||
330 | { | 332 | { |
331 | self->mFloaterDirectory->mPanelAvatarp->setVisible(TRUE); | 333 | mFloaterDirectory->mPanelAvatarp->setVisible(TRUE); |
332 | self->mFloaterDirectory->mPanelAvatarp->setAvatarID(id, name, ONLINE_STATUS_NO); | 334 | mFloaterDirectory->mPanelAvatarp->setAvatarID(id.asUUID(), "", ONLINE_STATUS_NO); |
333 | } | 335 | } |
334 | break; | 336 | break; |
335 | case EVENT_CODE: | 337 | case EVENT_CODE: |
336 | { | 338 | { |
337 | U32 event_id = (U32)self->mResultsContents[id_str]["event_id"].asInteger(); | 339 | U32 event_id = (U32)id.asInteger(); |
338 | self->showEvent(event_id); | 340 | showEvent(event_id); |
339 | } | 341 | } |
340 | break; | 342 | break; |
341 | case GROUP_CODE: | 343 | case GROUP_CODE: |
342 | if (self->mFloaterDirectory && self->mFloaterDirectory->mPanelGroupHolderp) | 344 | if (mFloaterDirectory && mFloaterDirectory->mPanelGroupHolderp) |
343 | { | 345 | { |
344 | self->mFloaterDirectory->mPanelGroupHolderp->setVisible(TRUE); | 346 | mFloaterDirectory->mPanelGroupHolderp->setVisible(TRUE); |
345 | } | 347 | } |
346 | if (self->mFloaterDirectory && self->mFloaterDirectory->mPanelGroupp) | 348 | if (mFloaterDirectory && mFloaterDirectory->mPanelGroupp) |
347 | { | 349 | { |
348 | self->mFloaterDirectory->mPanelGroupp->setVisible(TRUE); | 350 | mFloaterDirectory->mPanelGroupp->setVisible(TRUE); |
349 | self->mFloaterDirectory->mPanelGroupp->setGroupID(id); | 351 | mFloaterDirectory->mPanelGroupp->setGroupID(id.asUUID()); |
350 | } | 352 | } |
351 | break; | 353 | break; |
352 | case CLASSIFIED_CODE: | 354 | case CLASSIFIED_CODE: |
353 | if (self->mFloaterDirectory && self->mFloaterDirectory->mPanelClassifiedp) | 355 | if (mFloaterDirectory && mFloaterDirectory->mPanelClassifiedp) |
354 | { | 356 | { |
355 | self->mFloaterDirectory->mPanelClassifiedp->setVisible(TRUE); | 357 | mFloaterDirectory->mPanelClassifiedp->setVisible(TRUE); |
356 | self->mFloaterDirectory->mPanelClassifiedp->setClassifiedID(id); | 358 | mFloaterDirectory->mPanelClassifiedp->setClassifiedID(id.asUUID()); |
357 | self->mFloaterDirectory->mPanelClassifiedp->sendClassifiedInfoRequest(); | 359 | mFloaterDirectory->mPanelClassifiedp->sendClassifiedInfoRequest(); |
358 | } | 360 | } |
359 | break; | 361 | break; |
360 | case FOR_SALE_CODE: | 362 | case FOR_SALE_CODE: |
361 | case AUCTION_CODE: | 363 | case AUCTION_CODE: |
362 | if (self->mFloaterDirectory && self->mFloaterDirectory->mPanelPlaceSmallp) | 364 | if (mFloaterDirectory && mFloaterDirectory->mPanelPlaceSmallp) |
363 | { | 365 | { |
364 | self->mFloaterDirectory->mPanelPlaceSmallp->setVisible(TRUE); | 366 | mFloaterDirectory->mPanelPlaceSmallp->setVisible(TRUE); |
365 | self->mFloaterDirectory->mPanelPlaceSmallp->setParcelID(id); | 367 | mFloaterDirectory->mPanelPlaceSmallp->resetLocation(); |
366 | self->mFloaterDirectory->mPanelPlaceSmallp->sendParcelInfoRequest(); | 368 | mFloaterDirectory->mPanelPlaceSmallp->setParcelID(id.asUUID()); |
367 | } | 369 | } |
368 | break; | 370 | break; |
369 | case PLACE_CODE: | 371 | case PLACE_CODE: |
370 | case POPULAR_CODE: | 372 | case POPULAR_CODE: |
371 | if (self->mFloaterDirectory && self->mFloaterDirectory->mPanelPlacep) | 373 | if (mFloaterDirectory && mFloaterDirectory->mPanelPlacep) |
372 | { | 374 | { |
373 | self->mFloaterDirectory->mPanelPlacep->setVisible(TRUE); | 375 | mFloaterDirectory->mPanelPlacep->setVisible(TRUE); |
374 | self->mFloaterDirectory->mPanelPlacep->setParcelID(id); | 376 | mFloaterDirectory->mPanelPlacep->resetLocation(); |
375 | self->mFloaterDirectory->mPanelPlacep->sendParcelInfoRequest(); | 377 | mFloaterDirectory->mPanelPlacep->setParcelID(id.asUUID()); |
376 | } | 378 | } |
377 | break; | 379 | break; |
378 | default: | 380 | default: |
@@ -389,12 +391,7 @@ void LLPanelDirBrowser::showEvent(const U32 event_id) | |||
389 | // Start with everyone invisible | 391 | // Start with everyone invisible |
390 | if (mFloaterDirectory) | 392 | if (mFloaterDirectory) |
391 | { | 393 | { |
392 | if (mFloaterDirectory->mPanelAvatarp) mFloaterDirectory->mPanelAvatarp->setVisible(FALSE); | 394 | mFloaterDirectory->hideAllDetailPanels(); |
393 | if (mFloaterDirectory->mPanelGroupp) mFloaterDirectory->mPanelGroupp->setVisible(FALSE); | ||
394 | if (mFloaterDirectory->mPanelGroupHolderp) mFloaterDirectory->mPanelGroupHolderp->setVisible(FALSE); | ||
395 | if (mFloaterDirectory->mPanelPlacep) mFloaterDirectory->mPanelPlacep->setVisible(FALSE); | ||
396 | if (mFloaterDirectory->mPanelPlaceSmallp) mFloaterDirectory->mPanelPlaceSmallp->setVisible(FALSE); | ||
397 | if (mFloaterDirectory->mPanelClassifiedp) mFloaterDirectory->mPanelClassifiedp->setVisible(FALSE); | ||
398 | if (mFloaterDirectory->mPanelEventp) | 395 | if (mFloaterDirectory->mPanelEventp) |
399 | { | 396 | { |
400 | mFloaterDirectory->mPanelEventp->setVisible(TRUE); | 397 | mFloaterDirectory->mPanelEventp->setVisible(TRUE); |
@@ -436,9 +433,6 @@ void LLPanelDirBrowser::processDirPeopleReply(LLMessageSystem *msg, void**) | |||
436 | 433 | ||
437 | rows = self->showNextButton(rows); | 434 | rows = self->showNextButton(rows); |
438 | 435 | ||
439 | LLString online_type = llformat("%d", ONLINE_CODE); | ||
440 | LLString offline_type = llformat("%d", OFFLINE_CODE); | ||
441 | |||
442 | for (S32 i = 0; i < rows; i++) | 436 | for (S32 i = 0; i < rows; i++) |
443 | { | 437 | { |
444 | msg->getStringFast(_PREHASH_QueryReplies,_PREHASH_FirstName, DB_FIRST_NAME_BUF_SIZE, first_name, i); | 438 | msg->getStringFast(_PREHASH_QueryReplies,_PREHASH_FirstName, DB_FIRST_NAME_BUF_SIZE, first_name, i); |
@@ -467,7 +461,7 @@ void LLPanelDirBrowser::processDirPeopleReply(LLMessageSystem *msg, void**) | |||
467 | row["columns"][0]["type"] = "icon"; | 461 | row["columns"][0]["type"] = "icon"; |
468 | row["columns"][0]["value"] = image_id; | 462 | row["columns"][0]["value"] = image_id; |
469 | 463 | ||
470 | content["type"] = OFFLINE_CODE; | 464 | content["type"] = AVATAR_CODE; |
471 | 465 | ||
472 | LLString fullname = LLString(first_name) + " " + LLString(last_name); | 466 | LLString fullname = LLString(first_name) + " " + LLString(last_name); |
473 | row["columns"][1]["column"] = "name"; | 467 | row["columns"][1]["column"] = "name"; |
@@ -1183,13 +1177,7 @@ void LLPanelDirBrowser::setupNewSearch() | |||
1183 | mHaveSearchResults = FALSE; | 1177 | mHaveSearchResults = FALSE; |
1184 | 1178 | ||
1185 | // Set all panels to be invisible | 1179 | // Set all panels to be invisible |
1186 | if (mFloaterDirectory->mPanelAvatarp) mFloaterDirectory->mPanelAvatarp->setVisible(FALSE); | 1180 | mFloaterDirectory->hideAllDetailPanels(); |
1187 | if (mFloaterDirectory->mPanelEventp) mFloaterDirectory->mPanelEventp->setVisible(FALSE); | ||
1188 | if (mFloaterDirectory->mPanelGroupp) mFloaterDirectory->mPanelGroupp->setVisible(FALSE); | ||
1189 | if (mFloaterDirectory->mPanelGroupHolderp) mFloaterDirectory->mPanelGroupHolderp->setVisible(FALSE); | ||
1190 | if (mFloaterDirectory->mPanelPlacep) mFloaterDirectory->mPanelPlacep->setVisible(FALSE); | ||
1191 | if (mFloaterDirectory->mPanelPlaceSmallp) mFloaterDirectory->mPanelPlaceSmallp->setVisible(FALSE); | ||
1192 | if (mFloaterDirectory->mPanelClassifiedp) mFloaterDirectory->mPanelClassifiedp->setVisible(FALSE); | ||
1193 | 1181 | ||
1194 | updateResultCount(); | 1182 | updateResultCount(); |
1195 | } | 1183 | } |
@@ -1237,11 +1225,6 @@ void LLPanelDirBrowser::addHelpText(const char* text) | |||
1237 | } | 1225 | } |
1238 | 1226 | ||
1239 | 1227 | ||
1240 | BOOL enable_never(void*) | ||
1241 | { | ||
1242 | return FALSE; | ||
1243 | } | ||
1244 | |||
1245 | void LLPanelDirBrowser::onKeystrokeName(LLLineEditor* line, void* data) | 1228 | void LLPanelDirBrowser::onKeystrokeName(LLLineEditor* line, void* data) |
1246 | { | 1229 | { |
1247 | LLPanelDirBrowser *self = (LLPanelDirBrowser*)data; | 1230 | LLPanelDirBrowser *self = (LLPanelDirBrowser*)data; |
@@ -1270,7 +1253,7 @@ S32 LLPanelDirBrowser::showNextButton(S32 rows) | |||
1270 | { | 1253 | { |
1271 | // HACK: This hack doesn't work for llpaneldirfind (ALL) | 1254 | // HACK: This hack doesn't work for llpaneldirfind (ALL) |
1272 | // because other data is being returned as well. | 1255 | // because other data is being returned as well. |
1273 | if ( getName() != "all_panel") | 1256 | if ( getName() != "find_all_old_panel") |
1274 | { | 1257 | { |
1275 | // HACK: The (mResultsPerPage)+1th entry indicates there are 'more' | 1258 | // HACK: The (mResultsPerPage)+1th entry indicates there are 'more' |
1276 | bool show_next = (mResultsReceived > mResultsPerPage); | 1259 | bool show_next = (mResultsReceived > mResultsPerPage); |
diff --git a/linden/indra/newview/llpaneldirbrowser.h b/linden/indra/newview/llpaneldirbrowser.h index aa19721..c589c81 100644 --- a/linden/indra/newview/llpaneldirbrowser.h +++ b/linden/indra/newview/llpaneldirbrowser.h | |||
@@ -38,10 +38,8 @@ | |||
38 | 38 | ||
39 | #include "llpanel.h" | 39 | #include "llpanel.h" |
40 | 40 | ||
41 | #include "llmemory.h" // LLPointer | ||
42 | #include "lluuid.h" | 41 | #include "lluuid.h" |
43 | #include "llframetimer.h" | 42 | #include "llframetimer.h" |
44 | #include "llviewerimage.h" | ||
45 | #include "llmap.h" | 43 | #include "llmap.h" |
46 | 44 | ||
47 | class LLMessageSystem; | 45 | class LLMessageSystem; |
@@ -78,6 +76,10 @@ public: | |||
78 | U32 getSelectedEventID() const; | 76 | U32 getSelectedEventID() const; |
79 | void getSelectedInfo(LLUUID* id, S32 *type); | 77 | void getSelectedInfo(LLUUID* id, S32 *type); |
80 | 78 | ||
79 | void showDetailPanel(S32 type, LLSD item_id); | ||
80 | // type is EVENT_CODE, PLACE_CODE, etc. from below. | ||
81 | // item_id is integer for events, UUID for all others. | ||
82 | |||
81 | // from llpaneldirbase | 83 | // from llpaneldirbase |
82 | void setupNewSearch(); | 84 | void setupNewSearch(); |
83 | 85 | ||
@@ -156,10 +158,13 @@ protected: | |||
156 | }; | 158 | }; |
157 | 159 | ||
158 | // Codes used for sorting by type. | 160 | // Codes used for sorting by type. |
161 | const S32 INVALID_CODE = -1; | ||
159 | const S32 EVENT_CODE = 0; | 162 | const S32 EVENT_CODE = 0; |
160 | const S32 PLACE_CODE = 1; | 163 | const S32 PLACE_CODE = 1; |
161 | const S32 ONLINE_CODE = 2; | 164 | // We no longer show online vs. offline in search result icons. |
162 | const S32 OFFLINE_CODE = 3; | 165 | //const S32 ONLINE_CODE = 2; |
166 | //const S32 OFFLINE_CODE = 3; | ||
167 | const S32 AVATAR_CODE = 3; | ||
163 | const S32 GROUP_CODE = 4; | 168 | const S32 GROUP_CODE = 4; |
164 | const S32 CLASSIFIED_CODE = 5; | 169 | const S32 CLASSIFIED_CODE = 5; |
165 | const S32 FOR_SALE_CODE = 6; // for sale place | 170 | const S32 FOR_SALE_CODE = 6; // for sale place |
diff --git a/linden/indra/newview/llpaneldirclassified.cpp b/linden/indra/newview/llpaneldirclassified.cpp index 50bdfda..f3d464c 100644 --- a/linden/indra/newview/llpaneldirclassified.cpp +++ b/linden/indra/newview/llpaneldirclassified.cpp | |||
@@ -79,7 +79,7 @@ BOOL LLPanelDirClassified::postBuild() | |||
79 | LLPanelDirBrowser::postBuild(); | 79 | LLPanelDirBrowser::postBuild(); |
80 | 80 | ||
81 | // Teens don't get mature checkbox | 81 | // Teens don't get mature checkbox |
82 | if (gAgent.mAccess < SIM_ACCESS_MATURE) | 82 | if (gAgent.isTeen()) |
83 | { | 83 | { |
84 | childSetValue("incmature", FALSE); | 84 | childSetValue("incmature", FALSE); |
85 | childHide("incmature"); | 85 | childHide("incmature"); |
@@ -174,7 +174,7 @@ void LLPanelDirClassified::performQuery() | |||
174 | BOOL filter_mature = !childGetValue("incmature").asBoolean(); | 174 | BOOL filter_mature = !childGetValue("incmature").asBoolean(); |
175 | BOOL filter_auto_renew = FALSE; | 175 | BOOL filter_auto_renew = FALSE; |
176 | U32 query_flags = pack_classified_flags(filter_mature, filter_auto_renew); | 176 | U32 query_flags = pack_classified_flags(filter_mature, filter_auto_renew); |
177 | //if (gAgent.mAccess <= SIM_ACCESS_PG) query_flags |= DFQ_PG_SIMS_ONLY; | 177 | //if (gAgent.isTeen()) query_flags |= DFQ_PG_SIMS_ONLY; |
178 | 178 | ||
179 | U32 category = childGetValue("Category").asInteger(); | 179 | U32 category = childGetValue("Category").asInteger(); |
180 | 180 | ||
diff --git a/linden/indra/newview/llpaneldirevents.cpp b/linden/indra/newview/llpaneldirevents.cpp index 861c54d..d8a4652 100644 --- a/linden/indra/newview/llpaneldirevents.cpp +++ b/linden/indra/newview/llpaneldirevents.cpp | |||
@@ -111,7 +111,7 @@ void LLPanelDirEvents::draw() | |||
111 | void LLPanelDirEvents::refresh() | 111 | void LLPanelDirEvents::refresh() |
112 | { | 112 | { |
113 | // You only have a choice if you are mature | 113 | // You only have a choice if you are mature |
114 | childSetVisible("incmature", gAgent.mAccess >= SIM_ACCESS_MATURE); | 114 | childSetVisible("incmature", !gAgent.isTeen()); |
115 | 115 | ||
116 | BOOL godlike = gAgent.isGodlike(); | 116 | BOOL godlike = gAgent.isGodlike(); |
117 | childSetVisible("Delete", godlike); | 117 | childSetVisible("Delete", godlike); |
@@ -182,7 +182,7 @@ void LLPanelDirEvents::performQueryOrDelete(U32 event_id) | |||
182 | setupNewSearch(); | 182 | setupNewSearch(); |
183 | 183 | ||
184 | U32 scope = DFQ_DATE_EVENTS; | 184 | U32 scope = DFQ_DATE_EVENTS; |
185 | if ( gAgent.mAccess <= SIM_ACCESS_PG) scope |= DFQ_PG_SIMS_ONLY; | 185 | if ( gAgent.isTeen()) scope |= DFQ_PG_SIMS_ONLY; |
186 | if ( !childGetValue("incmature").asBoolean() ) scope |= DFQ_PG_EVENTS_ONLY; | 186 | if ( !childGetValue("incmature").asBoolean() ) scope |= DFQ_PG_EVENTS_ONLY; |
187 | 187 | ||
188 | std::ostringstream params; | 188 | std::ostringstream params; |
diff --git a/linden/indra/newview/llpaneldirfind.cpp b/linden/indra/newview/llpaneldirfind.cpp index 73643bf..50bdc9e 100644 --- a/linden/indra/newview/llpaneldirfind.cpp +++ b/linden/indra/newview/llpaneldirfind.cpp | |||
@@ -1,6 +1,6 @@ | |||
1 | /** | 1 | /** |
2 | * @file llpaneldirfind.cpp | 2 | * @file llpaneldirfind.cpp |
3 | * @brief The "Find All" panel in the Find directory. | 3 | * @brief The "All" panel in the Search directory. |
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ |
6 | * | 6 | * |
@@ -44,29 +44,356 @@ | |||
44 | #include "llagent.h" | 44 | #include "llagent.h" |
45 | #include "llbutton.h" | 45 | #include "llbutton.h" |
46 | #include "llcheckboxctrl.h" | 46 | #include "llcheckboxctrl.h" |
47 | #include "lllineeditor.h" | ||
47 | #include "llcombobox.h" | 48 | #include "llcombobox.h" |
48 | #include "llviewercontrol.h" | 49 | #include "llviewercontrol.h" |
49 | #include "lllineeditor.h" | ||
50 | #include "llmenucommands.h" | 50 | #include "llmenucommands.h" |
51 | #include "llmenugl.h" | 51 | #include "llmenugl.h" |
52 | #include "llscrolllistctrl.h" | ||
53 | #include "lltextbox.h" | 52 | #include "lltextbox.h" |
54 | #include "lluiconstants.h" | 53 | #include "lluiconstants.h" |
55 | #include "llviewerimagelist.h" | 54 | #include "llviewerimagelist.h" |
56 | #include "llviewermessage.h" | 55 | #include "llviewermessage.h" |
57 | #include "llfloateravatarinfo.h" | 56 | #include "llfloateravatarinfo.h" |
58 | #include "lldir.h" | 57 | #include "lldir.h" |
58 | #include "llviewercontrol.h" | ||
59 | #include "llviewerregion.h" // for region name for search urls | ||
59 | #include "llvieweruictrlfactory.h" | 60 | #include "llvieweruictrlfactory.h" |
60 | #include "llfloaterdirectory.h" | 61 | #include "llfloaterdirectory.h" |
61 | #include "llpaneldirbrowser.h" | 62 | #include "llpaneldirbrowser.h" |
62 | 63 | ||
63 | LLPanelDirFind::LLPanelDirFind(const std::string& name, LLFloaterDirectory* floater) | 64 | #include <boost/tokenizer.hpp> |
65 | |||
66 | //--------------------------------------------------------------------------- | ||
67 | // LLPanelDirFindAll - Google search appliance based search | ||
68 | //--------------------------------------------------------------------------- | ||
69 | |||
70 | class LLPanelDirFindAll | ||
71 | : public LLPanelDirBrowser, | ||
72 | public LLWebBrowserCtrlObserver | ||
73 | { | ||
74 | public: | ||
75 | LLPanelDirFindAll(const std::string& name, LLFloaterDirectory* floater); | ||
76 | /*virtual*/ ~LLPanelDirFindAll(); | ||
77 | |||
78 | /*virtual*/ BOOL postBuild(); | ||
79 | /*virtual*/ void draw(); | ||
80 | |||
81 | void search(const std::string& search_text); | ||
82 | void focus(); | ||
83 | void navigateToDefaultPage(); | ||
84 | |||
85 | private: | ||
86 | static void onClickBack( void* data ); | ||
87 | static void onClickForward( void* data ); | ||
88 | static void onClickHome( void* data ); | ||
89 | static void onClickSearch( void* data ); | ||
90 | static void onCommitSearch(LLUICtrl*, void* data); | ||
91 | static void onKeystrokeSearchEditor(LLLineEditor* line, void* data); | ||
92 | |||
93 | /*virtual*/ void onNavigateBegin( const EventType& eventIn ); | ||
94 | /*virtual*/ void onNavigateComplete( const EventType& eventIn ); | ||
95 | // Used to update progress indicator | ||
96 | |||
97 | private: | ||
98 | #if LL_LIBXUL_ENABLED | ||
99 | LLWebBrowserCtrl* mWebBrowser; | ||
100 | #endif // LL_LIBXUL_ENABLED | ||
101 | }; | ||
102 | |||
103 | |||
104 | LLPanelDirFindAll::LLPanelDirFindAll(const std::string& name, LLFloaterDirectory* floater) | ||
105 | : LLPanelDirBrowser(name, floater) | ||
106 | #if LL_LIBXUL_ENABLED | ||
107 | ,mWebBrowser(NULL) | ||
108 | #endif // LL_LIBXUL_ENABLED | ||
109 | { | ||
110 | mMinSearchChars = 3; | ||
111 | } | ||
112 | |||
113 | BOOL LLPanelDirFindAll::postBuild() | ||
114 | { | ||
115 | LLPanelDirBrowser::postBuild(); | ||
116 | |||
117 | childSetAction("back_btn", onClickBack, this); | ||
118 | childSetAction("home_btn", onClickHome, this); | ||
119 | childSetAction("forward_btn", onClickForward, this); | ||
120 | childSetCommitCallback("search_editor", onCommitSearch, this); | ||
121 | childSetAction("search_btn", onClickSearch, this); | ||
122 | |||
123 | if (gAgent.isTeen()) | ||
124 | { | ||
125 | childSetVisible("mature_check", false); | ||
126 | } | ||
127 | |||
128 | // we don't record the last search query (yet) so search text will be empty -> disable search | ||
129 | childDisable("search_btn"); | ||
130 | |||
131 | childSetKeystrokeCallback("search_editor", onKeystrokeSearchEditor, this); | ||
132 | |||
133 | #if LL_LIBXUL_ENABLED | ||
134 | mWebBrowser = LLViewerUICtrlFactory::getWebBrowserByName(this, "find_browser"); | ||
135 | if (mWebBrowser) | ||
136 | { | ||
137 | // new pages appear in same window as the results page now | ||
138 | mWebBrowser->setOpenInInternalBrowser( false ); | ||
139 | mWebBrowser->setOpenInExternalBrowser( false ); | ||
140 | |||
141 | // Track updates for progress display. | ||
142 | mWebBrowser->addObserver(this); | ||
143 | |||
144 | navigateToDefaultPage(); | ||
145 | } | ||
146 | #endif // LL_LIBXUL_ENABLED | ||
147 | |||
148 | return TRUE; | ||
149 | } | ||
150 | |||
151 | LLPanelDirFindAll::~LLPanelDirFindAll() | ||
152 | { | ||
153 | #if LL_LIBXUL_ENABLED | ||
154 | if (mWebBrowser) mWebBrowser->remObserver(this); | ||
155 | #endif // LL_LIBXUL_ENABLED | ||
156 | } | ||
157 | |||
158 | // virtual | ||
159 | void LLPanelDirFindAll::draw() | ||
160 | { | ||
161 | // enable/disable buttons depending on state | ||
162 | #if LL_LIBXUL_ENABLED | ||
163 | if ( mWebBrowser ) | ||
164 | { | ||
165 | bool enable_back = mWebBrowser->canNavigateBack(); | ||
166 | childSetEnabled( "back_btn", enable_back ); | ||
167 | |||
168 | bool enable_forward = mWebBrowser->canNavigateForward(); | ||
169 | childSetEnabled( "forward_btn", enable_forward ); | ||
170 | } | ||
171 | #endif // LL_LIBXUL_ENABLED | ||
172 | |||
173 | LLPanelDirBrowser::draw(); | ||
174 | } | ||
175 | |||
176 | void LLPanelDirFindAll::search(const std::string& search_text) | ||
177 | { | ||
178 | if (!search_text.empty()) | ||
179 | { | ||
180 | // Replace spaces with "+" for use by Google search appliance | ||
181 | // Yes, this actually works for double-spaces | ||
182 | // " foo bar" becomes "+foo++bar" and works fine. JC | ||
183 | std::string query = search_text; | ||
184 | std::string::iterator it = query.begin(); | ||
185 | for ( ; it != query.end(); ++it ) | ||
186 | { | ||
187 | if ( std::isspace( *it ) ) | ||
188 | { | ||
189 | *it = '+'; | ||
190 | } | ||
191 | } | ||
192 | |||
193 | std::string url = gSavedSettings.getString("SearchQueryURL"); | ||
194 | std::string substring = "[QUERY]"; | ||
195 | url.replace(url.find(substring), substring.length(), query); | ||
196 | |||
197 | // replace the collection name with the one selected from the combo box | ||
198 | std::string selected_collection = childGetValue( "Category" ).asString(); | ||
199 | substring = "[COLLECTION]"; | ||
200 | url.replace(url.find(substring), substring.length(), selected_collection); | ||
201 | |||
202 | // if the mature checkbox is unchecked, modify query to remove | ||
203 | // terms with given phrase from the result set | ||
204 | substring = "[MATURE]"; | ||
205 | if ( childGetValue( "mature_check" ).asBoolean() == false ) | ||
206 | { | ||
207 | url.replace(url.find(substring), substring.length(), "N"); | ||
208 | } | ||
209 | else | ||
210 | { | ||
211 | url.replace(url.find(substring), substring.length(), "Y"); | ||
212 | } | ||
213 | |||
214 | substring = "[TEEN]"; | ||
215 | const char* teen = (gAgent.isTeen() ? "Y" : "N"); | ||
216 | url.replace(url.find(substring), substring.length(), teen); | ||
217 | |||
218 | // Include region and x/y position, not for the GSA, but | ||
219 | // just to get logs on the web server for search_proxy.php | ||
220 | // showing where people were standing when they searched. | ||
221 | std::string region_name; | ||
222 | LLViewerRegion* region = gAgent.getRegion(); | ||
223 | if (region) | ||
224 | { | ||
225 | region_name = region->getName(); | ||
226 | } | ||
227 | // take care of spaces in names | ||
228 | region_name = LLURI::escape(region_name); | ||
229 | substring = "[REGION]"; | ||
230 | url.replace(url.find(substring), substring.length(), region_name); | ||
231 | |||
232 | LLVector3 pos_region = gAgent.getPositionAgent(); | ||
233 | std::string x = llformat("%.0f", pos_region.mV[VX]); | ||
234 | substring = "[X]"; | ||
235 | url.replace(url.find(substring), substring.length(), x); | ||
236 | std::string y = llformat("%.0f", pos_region.mV[VY]); | ||
237 | substring = "[Y]"; | ||
238 | url.replace(url.find(substring), substring.length(), y); | ||
239 | std::string z = llformat("%.0f", pos_region.mV[VZ]); | ||
240 | substring = "[Z]"; | ||
241 | url.replace(url.find(substring), substring.length(), z); | ||
242 | |||
243 | llinfos << "url " << url << llendl; | ||
244 | |||
245 | #if LL_LIBXUL_ENABLED | ||
246 | if (mWebBrowser) | ||
247 | { | ||
248 | mWebBrowser->navigateTo(url); | ||
249 | } | ||
250 | #endif // LL_LIBXUL_ENABLED | ||
251 | } | ||
252 | else | ||
253 | { | ||
254 | // empty search text | ||
255 | navigateToDefaultPage(); | ||
256 | } | ||
257 | |||
258 | childSetText("search_editor", search_text); | ||
259 | } | ||
260 | |||
261 | void LLPanelDirFindAll::focus() | ||
262 | { | ||
263 | childSetFocus("search_editor"); | ||
264 | } | ||
265 | |||
266 | void LLPanelDirFindAll::navigateToDefaultPage() | ||
267 | { | ||
268 | std::string start_url = gSavedSettings.getString("SearchDefaultURL"); | ||
269 | |||
270 | std::string substring = "[MATURE]"; | ||
271 | if ( childGetValue( "mature_check" ).asBoolean() == false ) | ||
272 | { | ||
273 | start_url.replace( start_url.find( substring ), substring.length(), "N" ); | ||
274 | } | ||
275 | else | ||
276 | { | ||
277 | start_url.replace( start_url.find( substring ), substring.length(), "Y" ); | ||
278 | } | ||
279 | llinfos << "SEARCH> browsing to default url: " << start_url << llendl; | ||
280 | |||
281 | #if LL_LIBXUL_ENABLED | ||
282 | if (mWebBrowser) | ||
283 | { | ||
284 | mWebBrowser->navigateTo( start_url ); | ||
285 | } | ||
286 | #endif //LL_LIBXUL_ENABLED | ||
287 | } | ||
288 | |||
289 | // static - only enable search if there is at least 1 character | ||
290 | void LLPanelDirFindAll::onKeystrokeSearchEditor(LLLineEditor* line, void* data) | ||
291 | { | ||
292 | LLPanelDirBrowser *self = (LLPanelDirBrowser*)data; | ||
293 | if (line->getLength() > 0 ) | ||
294 | { | ||
295 | self->childEnable("search_btn"); | ||
296 | } | ||
297 | else | ||
298 | { | ||
299 | self->childDisable("search_btn"); | ||
300 | } | ||
301 | } | ||
302 | |||
303 | // static | ||
304 | void LLPanelDirFindAll::onClickBack( void* data ) | ||
305 | { | ||
306 | #if LL_LIBXUL_ENABLED | ||
307 | LLPanelDirFindAll* self = ( LLPanelDirFindAll* )data; | ||
308 | if ( self->mWebBrowser ) | ||
309 | { | ||
310 | self->mWebBrowser->navigateBack(); | ||
311 | } | ||
312 | #endif // LL_LIBXUL_ENABLED | ||
313 | } | ||
314 | |||
315 | // static | ||
316 | void LLPanelDirFindAll::onClickForward( void* data ) | ||
317 | { | ||
318 | #if LL_LIBXUL_ENABLED | ||
319 | LLPanelDirFindAll* self = ( LLPanelDirFindAll* )data; | ||
320 | if ( self->mWebBrowser ) | ||
321 | { | ||
322 | self->mWebBrowser->navigateForward(); | ||
323 | } | ||
324 | #endif // LL_LIBXUL_ENABLED | ||
325 | } | ||
326 | |||
327 | // static | ||
328 | void LLPanelDirFindAll::onClickHome( void* data ) | ||
329 | { | ||
330 | #if LL_LIBXUL_ENABLED | ||
331 | LLPanelDirFindAll* self = ( LLPanelDirFindAll* )data; | ||
332 | if ( self->mWebBrowser ) | ||
333 | { | ||
334 | self->mWebBrowser->navigateHome(); | ||
335 | } | ||
336 | #endif // LL_LIBXUL_ENABLED | ||
337 | } | ||
338 | |||
339 | // static | ||
340 | void LLPanelDirFindAll::onCommitSearch(LLUICtrl*, void* data) | ||
341 | { | ||
342 | onClickSearch(data); | ||
343 | } | ||
344 | |||
345 | // static | ||
346 | void LLPanelDirFindAll::onClickSearch(void* data) | ||
347 | { | ||
348 | LLPanelDirFindAll* self = ( LLPanelDirFindAll* )data; | ||
349 | LLString search_text = self->childGetText("search_editor"); | ||
350 | self->search(search_text); | ||
351 | } | ||
352 | |||
353 | void LLPanelDirFindAll::onNavigateBegin( const EventType& eventIn ) | ||
354 | { | ||
355 | childSetText("status_text", childGetText("loading_text")); | ||
356 | } | ||
357 | |||
358 | void LLPanelDirFindAll::onNavigateComplete( const EventType& eventIn ) | ||
359 | { | ||
360 | childSetText("status_text", childGetText("done_text")); | ||
361 | } | ||
362 | |||
363 | //--------------------------------------------------------------------------- | ||
364 | // LLPanelDirFindAllInterface | ||
365 | //--------------------------------------------------------------------------- | ||
366 | |||
367 | // static | ||
368 | LLPanelDirFindAll* LLPanelDirFindAllInterface::create(LLFloaterDirectory* floater) | ||
369 | { | ||
370 | return new LLPanelDirFindAll("find_all_panel", floater); | ||
371 | } | ||
372 | |||
373 | // static | ||
374 | void LLPanelDirFindAllInterface::search(LLPanelDirFindAll* panel, | ||
375 | const std::string& search_text) | ||
376 | { | ||
377 | panel->search(search_text); | ||
378 | } | ||
379 | |||
380 | // static | ||
381 | void LLPanelDirFindAllInterface::focus(LLPanelDirFindAll* panel) | ||
382 | { | ||
383 | panel->focus(); | ||
384 | } | ||
385 | |||
386 | //--------------------------------------------------------------------------- | ||
387 | // LLPanelDirFindAllOld - deprecated if new Google search works out. JC | ||
388 | //--------------------------------------------------------------------------- | ||
389 | |||
390 | LLPanelDirFindAllOld::LLPanelDirFindAllOld(const std::string& name, LLFloaterDirectory* floater) | ||
64 | : LLPanelDirBrowser(name, floater) | 391 | : LLPanelDirBrowser(name, floater) |
65 | { | 392 | { |
66 | mMinSearchChars = 3; | 393 | mMinSearchChars = 3; |
67 | } | 394 | } |
68 | 395 | ||
69 | BOOL LLPanelDirFind::postBuild() | 396 | BOOL LLPanelDirFindAllOld::postBuild() |
70 | { | 397 | { |
71 | LLPanelDirBrowser::postBuild(); | 398 | LLPanelDirBrowser::postBuild(); |
72 | 399 | ||
@@ -79,32 +406,32 @@ BOOL LLPanelDirFind::postBuild() | |||
79 | return TRUE; | 406 | return TRUE; |
80 | } | 407 | } |
81 | 408 | ||
409 | LLPanelDirFindAllOld::~LLPanelDirFindAllOld() | ||
410 | { | ||
411 | // Children all cleaned up by default view destructor. | ||
412 | } | ||
413 | |||
82 | // virtual | 414 | // virtual |
83 | void LLPanelDirFind::draw() | 415 | void LLPanelDirFindAllOld::draw() |
84 | { | 416 | { |
85 | // You only have a choice if you are mature | 417 | // You only have a choice if you are mature |
86 | childSetVisible("incmature", gAgent.mAccess >= SIM_ACCESS_MATURE); | 418 | childSetVisible("incmature", !gAgent.isTeen()); |
87 | childSetValue("incmature", gSavedSettings.getBOOL("ShowMatureFindAll")); | 419 | childSetValue("incmature", gSavedSettings.getBOOL("ShowMatureFindAll")); |
88 | 420 | ||
89 | LLPanelDirBrowser::draw(); | 421 | LLPanelDirBrowser::draw(); |
90 | } | 422 | } |
91 | 423 | ||
92 | LLPanelDirFind::~LLPanelDirFind() | ||
93 | { | ||
94 | // Children all cleaned up by default view destructor. | ||
95 | } | ||
96 | |||
97 | // static | 424 | // static |
98 | void LLPanelDirFind::onCommitScope(LLUICtrl* ctrl, void* data) | 425 | void LLPanelDirFindAllOld::onCommitScope(LLUICtrl* ctrl, void* data) |
99 | { | 426 | { |
100 | LLPanelDirFind* self = (LLPanelDirFind*)data; | 427 | LLPanelDirFindAllOld* self = (LLPanelDirFindAllOld*)data; |
101 | self->setFocus(TRUE); | 428 | self->setFocus(TRUE); |
102 | } | 429 | } |
103 | 430 | ||
104 | // static | 431 | // static |
105 | void LLPanelDirFind::onClickSearch(void *userdata) | 432 | void LLPanelDirFindAllOld::onClickSearch(void *userdata) |
106 | { | 433 | { |
107 | LLPanelDirFind *self = (LLPanelDirFind *)userdata; | 434 | LLPanelDirFindAllOld *self = (LLPanelDirFindAllOld *)userdata; |
108 | 435 | ||
109 | if (self->childGetValue("name").asString().length() < self->mMinSearchChars) | 436 | if (self->childGetValue("name").asString().length() < self->mMinSearchChars) |
110 | { | 437 | { |
@@ -121,7 +448,7 @@ void LLPanelDirFind::onClickSearch(void *userdata) | |||
121 | scope |= DFQ_GROUPS; // groups | 448 | scope |= DFQ_GROUPS; // groups |
122 | 449 | ||
123 | BOOL filter_mature = (!gSavedSettings.getBOOL("ShowMatureFindAll") || | 450 | BOOL filter_mature = (!gSavedSettings.getBOOL("ShowMatureFindAll") || |
124 | gAgent.mAccess <= SIM_ACCESS_PG || | 451 | gAgent.isTeen() || |
125 | !self->childGetValue("incmature").asBoolean() ); | 452 | !self->childGetValue("incmature").asBoolean() ); |
126 | 453 | ||
127 | if ( filter_mature ) | 454 | if ( filter_mature ) |
diff --git a/linden/indra/newview/llpaneldirfind.h b/linden/indra/newview/llpaneldirfind.h index 57bdadb..baff473 100644 --- a/linden/indra/newview/llpaneldirfind.h +++ b/linden/indra/newview/llpaneldirfind.h | |||
@@ -34,17 +34,27 @@ | |||
34 | 34 | ||
35 | #include "llpaneldirbrowser.h" | 35 | #include "llpaneldirbrowser.h" |
36 | 36 | ||
37 | // UI class forward declarations | 37 | class LLUICtrl; |
38 | class LLLineEditor; | 38 | class LLLineEditor; |
39 | class LLPanelDirFindAll; | ||
40 | class LLFloaterDirectory; | ||
39 | 41 | ||
42 | class LLPanelDirFindAllInterface | ||
43 | { | ||
44 | public: | ||
45 | static LLPanelDirFindAll* create(LLFloaterDirectory* floater); | ||
46 | static void search(LLPanelDirFindAll* panel, const std::string& search_text); | ||
47 | static void focus(LLPanelDirFindAll* panel); | ||
48 | }; | ||
40 | 49 | ||
41 | class LLPanelDirFind : public LLPanelDirBrowser | 50 | |
51 | class LLPanelDirFindAllOld : public LLPanelDirBrowser | ||
42 | { | 52 | { |
43 | public: | 53 | public: |
44 | LLPanelDirFind(const std::string& name, LLFloaterDirectory* floater); | 54 | LLPanelDirFindAllOld(const std::string& name, LLFloaterDirectory* floater); |
45 | virtual ~LLPanelDirFind(); | 55 | /*virtual*/ ~LLPanelDirFindAllOld(); |
46 | 56 | ||
47 | virtual BOOL postBuild(); | 57 | /*virtual*/ BOOL postBuild(); |
48 | 58 | ||
49 | /*virtual*/ void draw(); | 59 | /*virtual*/ void draw(); |
50 | 60 | ||
@@ -53,6 +63,4 @@ public: | |||
53 | static void onKeystrokeName(LLLineEditor* line, void* data); | 63 | static void onKeystrokeName(LLLineEditor* line, void* data); |
54 | }; | 64 | }; |
55 | 65 | ||
56 | BOOL enable_never(void*); | ||
57 | |||
58 | #endif | 66 | #endif |
diff --git a/linden/indra/newview/llpaneldirgroups.cpp b/linden/indra/newview/llpaneldirgroups.cpp index e9bcb53..3f6d795 100644 --- a/linden/indra/newview/llpaneldirgroups.cpp +++ b/linden/indra/newview/llpaneldirgroups.cpp | |||
@@ -71,7 +71,7 @@ LLPanelDirGroups::~LLPanelDirGroups() | |||
71 | void LLPanelDirGroups::draw() | 71 | void LLPanelDirGroups::draw() |
72 | { | 72 | { |
73 | // You only have a choice if you are mature | 73 | // You only have a choice if you are mature |
74 | childSetVisible("incmature", gAgent.mAccess >= SIM_ACCESS_MATURE); | 74 | childSetVisible("incmature", !gAgent.isTeen()); |
75 | childSetValue("incmature", gSavedSettings.getBOOL("ShowMatureGroups")); | 75 | childSetValue("incmature", gSavedSettings.getBOOL("ShowMatureGroups")); |
76 | 76 | ||
77 | LLPanelDirBrowser::draw(); | 77 | LLPanelDirBrowser::draw(); |
@@ -93,7 +93,7 @@ void LLPanelDirGroups::performQuery() | |||
93 | 93 | ||
94 | // Check group mature filter. | 94 | // Check group mature filter. |
95 | if ( !gSavedSettings.getBOOL("ShowMatureGroups") | 95 | if ( !gSavedSettings.getBOOL("ShowMatureGroups") |
96 | || gAgent.mAccess <= SIM_ACCESS_PG ) | 96 | || gAgent.isTeen() ) |
97 | { | 97 | { |
98 | scope |= DFQ_FILTER_MATURE; | 98 | scope |= DFQ_FILTER_MATURE; |
99 | } | 99 | } |
diff --git a/linden/indra/newview/llpaneldirland.cpp b/linden/indra/newview/llpaneldirland.cpp index 3c8e5cc..df8dfc2 100644 --- a/linden/indra/newview/llpaneldirland.cpp +++ b/linden/indra/newview/llpaneldirland.cpp | |||
@@ -75,7 +75,7 @@ BOOL LLPanelDirLand::postBuild() | |||
75 | 75 | ||
76 | childSetValue("type", gSavedSettings.getString("FindLandType")); | 76 | childSetValue("type", gSavedSettings.getString("FindLandType")); |
77 | 77 | ||
78 | if (gAgent.mAccess <= SIM_ACCESS_PG) | 78 | if (gAgent.isTeen()) |
79 | { | 79 | { |
80 | childSetValue("rating", PG_ONLY); | 80 | childSetValue("rating", PG_ONLY); |
81 | childDisable("rating"); | 81 | childDisable("rating"); |
@@ -156,7 +156,7 @@ void LLPanelDirLand::performQuery() | |||
156 | } | 156 | } |
157 | 157 | ||
158 | U32 query_flags = 0x0; | 158 | U32 query_flags = 0x0; |
159 | if (gAgent.mAccess <= SIM_ACCESS_PG) query_flags |= DFQ_PG_SIMS_ONLY; | 159 | if (gAgent.isTeen()) query_flags |= DFQ_PG_SIMS_ONLY; |
160 | 160 | ||
161 | const std::string& rating = childGetValue("rating").asString(); | 161 | const std::string& rating = childGetValue("rating").asString(); |
162 | if (rating == PG_ONLY) | 162 | if (rating == PG_ONLY) |
diff --git a/linden/indra/newview/llpaneldirplaces.cpp b/linden/indra/newview/llpaneldirplaces.cpp index 5802992..6ba8652 100644 --- a/linden/indra/newview/llpaneldirplaces.cpp +++ b/linden/indra/newview/llpaneldirplaces.cpp | |||
@@ -89,7 +89,7 @@ LLPanelDirPlaces::~LLPanelDirPlaces() | |||
89 | void LLPanelDirPlaces::draw() | 89 | void LLPanelDirPlaces::draw() |
90 | { | 90 | { |
91 | // You only have a choice if you are mature | 91 | // You only have a choice if you are mature |
92 | childSetVisible("incmature", gAgent.mAccess >= SIM_ACCESS_MATURE); | 92 | childSetVisible("incmature", !gAgent.isTeen()); |
93 | childSetValue("incmature", gSavedSettings.getBOOL("ShowMatureSims")); | 93 | childSetValue("incmature", gSavedSettings.getBOOL("ShowMatureSims")); |
94 | 94 | ||
95 | LLPanelDirBrowser::draw(); | 95 | LLPanelDirBrowser::draw(); |
@@ -118,7 +118,7 @@ void LLPanelDirPlaces::performQuery() | |||
118 | } | 118 | } |
119 | 119 | ||
120 | BOOL pg_only = !gSavedSettings.getBOOL("ShowMatureSims") | 120 | BOOL pg_only = !gSavedSettings.getBOOL("ShowMatureSims") |
121 | || gAgent.mAccess <= SIM_ACCESS_PG; | 121 | || gAgent.isTeen(); |
122 | 122 | ||
123 | queryCore(name, category, pg_only); | 123 | queryCore(name, category, pg_only); |
124 | } | 124 | } |
diff --git a/linden/indra/newview/llpaneldirpopular.cpp b/linden/indra/newview/llpaneldirpopular.cpp index 39465d5..1534767 100644 --- a/linden/indra/newview/llpaneldirpopular.cpp +++ b/linden/indra/newview/llpaneldirpopular.cpp | |||
@@ -77,7 +77,7 @@ LLPanelDirPopular::~LLPanelDirPopular() | |||
77 | void LLPanelDirPopular::draw() | 77 | void LLPanelDirPopular::draw() |
78 | { | 78 | { |
79 | // You only have a choice if you are mature] | 79 | // You only have a choice if you are mature] |
80 | childSetVisible("incmature", gAgent.mAccess >= SIM_ACCESS_MATURE); | 80 | childSetVisible("incmature", !gAgent.isTeen()); |
81 | childSetValue("incmature", gSavedSettings.getBOOL("ShowMatureSims")); | 81 | childSetValue("incmature", gSavedSettings.getBOOL("ShowMatureSims")); |
82 | 82 | ||
83 | LLPanelDirBrowser::draw(); | 83 | LLPanelDirBrowser::draw(); |
@@ -93,7 +93,7 @@ void LLPanelDirPopular::draw() | |||
93 | void LLPanelDirPopular::requestPopular() | 93 | void LLPanelDirPopular::requestPopular() |
94 | { | 94 | { |
95 | LLMessageSystem* msg = gMessageSystem; | 95 | LLMessageSystem* msg = gMessageSystem; |
96 | BOOL pg_only = !childGetValue("incmature").asBoolean() || gAgent.mAccess <= SIM_ACCESS_PG; | 96 | BOOL pg_only = !childGetValue("incmature").asBoolean() || gAgent.isTeen(); |
97 | BOOL pictures_only = childGetValue("incpictures").asBoolean(); | 97 | BOOL pictures_only = childGetValue("incpictures").asBoolean(); |
98 | 98 | ||
99 | U32 flags = 0x0; | 99 | U32 flags = 0x0; |
diff --git a/linden/indra/newview/llpanelevent.cpp b/linden/indra/newview/llpanelevent.cpp index a35e8f8..c30e3b4 100644 --- a/linden/indra/newview/llpanelevent.cpp +++ b/linden/indra/newview/llpanelevent.cpp | |||
@@ -121,7 +121,6 @@ BOOL LLPanelEvent::postBuild() | |||
121 | return TRUE; | 121 | return TRUE; |
122 | } | 122 | } |
123 | 123 | ||
124 | |||
125 | void LLPanelEvent::setEventID(const U32 event_id) | 124 | void LLPanelEvent::setEventID(const U32 event_id) |
126 | { | 125 | { |
127 | mEventID = event_id; | 126 | mEventID = event_id; |
diff --git a/linden/indra/newview/llpanelgeneral.cpp b/linden/indra/newview/llpanelgeneral.cpp index c64bce0..9cdf919 100644 --- a/linden/indra/newview/llpanelgeneral.cpp +++ b/linden/indra/newview/llpanelgeneral.cpp | |||
@@ -43,20 +43,18 @@ | |||
43 | // project includes | 43 | // project includes |
44 | #include "llagent.h" | 44 | #include "llagent.h" |
45 | #include "llviewerwindow.h" | 45 | #include "llviewerwindow.h" |
46 | #include "llcheckboxctrl.h" | ||
47 | #include "llcolorswatch.h" | 46 | #include "llcolorswatch.h" |
48 | #include "llcombobox.h" | 47 | #include "llcombobox.h" |
49 | #include "llconsole.h" | 48 | #include "llconsole.h" |
50 | #include "llpanellogin.h" | 49 | #include "llpanellogin.h" |
51 | #include "llnetmap.h" | 50 | #include "llnetmap.h" |
52 | #include "llradiogroup.h" | ||
53 | #include "llresmgr.h" | 51 | #include "llresmgr.h" |
54 | #include "llspinctrl.h" | 52 | #include "llspinctrl.h" |
55 | #include "lltextbox.h" | 53 | #include "lltextbox.h" |
56 | #include "llui.h" | 54 | #include "llui.h" |
57 | #include "llurlsimstring.h" | 55 | #include "llurlsimstring.h" |
58 | #include "llviewercontrol.h" | 56 | #include "llviewercontrol.h" |
59 | #include "viewer.h" | 57 | #include "viewer.h" // gCrashBehavior |
60 | 58 | ||
61 | // | 59 | // |
62 | // Imported globals | 60 | // Imported globals |
diff --git a/linden/indra/newview/llpanelgroupgeneral.cpp b/linden/indra/newview/llpanelgroupgeneral.cpp index 33dbcd7..3ad65b5 100644 --- a/linden/indra/newview/llpanelgroupgeneral.cpp +++ b/linden/indra/newview/llpanelgroupgeneral.cpp | |||
@@ -161,7 +161,7 @@ BOOL LLPanelGroupGeneral::postBuild() | |||
161 | { | 161 | { |
162 | mCtrlMature->setCommitCallback(onCommitAny); | 162 | mCtrlMature->setCommitCallback(onCommitAny); |
163 | mCtrlMature->setCallbackUserData(this); | 163 | mCtrlMature->setCallbackUserData(this); |
164 | mCtrlMature->setVisible( gAgent.mAccess > SIM_ACCESS_PG ); | 164 | mCtrlMature->setVisible( !gAgent.isTeen() ); |
165 | } | 165 | } |
166 | 166 | ||
167 | mCtrlOpenEnrollment = (LLCheckBoxCtrl*) getChildByName("open_enrollement", recurse); | 167 | mCtrlOpenEnrollment = (LLCheckBoxCtrl*) getChildByName("open_enrollement", recurse); |
@@ -476,7 +476,7 @@ bool LLPanelGroupGeneral::apply(LLString& mesg) | |||
476 | if (mInsignia) gdatap->mInsigniaID = mInsignia->getImageAssetID(); | 476 | if (mInsignia) gdatap->mInsigniaID = mInsignia->getImageAssetID(); |
477 | if (mCtrlMature) | 477 | if (mCtrlMature) |
478 | { | 478 | { |
479 | if (gAgent.mAccess > SIM_ACCESS_PG) | 479 | if (!gAgent.isTeen()) |
480 | { | 480 | { |
481 | gdatap->mMaturePublish = mCtrlMature->get(); | 481 | gdatap->mMaturePublish = mCtrlMature->get(); |
482 | } | 482 | } |
@@ -639,7 +639,7 @@ void LLPanelGroupGeneral::update(LLGroupChange gc) | |||
639 | { | 639 | { |
640 | mCtrlMature->set(gdatap->mMaturePublish); | 640 | mCtrlMature->set(gdatap->mMaturePublish); |
641 | mCtrlMature->setEnabled(mAllowEdit && can_change_ident); | 641 | mCtrlMature->setEnabled(mAllowEdit && can_change_ident); |
642 | mCtrlMature->setVisible( gAgent.mAccess > SIM_ACCESS_PG ); | 642 | mCtrlMature->setVisible( !gAgent.isTeen() ); |
643 | } | 643 | } |
644 | if (mCtrlOpenEnrollment) | 644 | if (mCtrlOpenEnrollment) |
645 | { | 645 | { |
diff --git a/linden/indra/newview/llpanelplace.cpp b/linden/indra/newview/llpanelplace.cpp index 93a86dc..d08d25e 100644 --- a/linden/indra/newview/llpanelplace.cpp +++ b/linden/indra/newview/llpanelplace.cpp | |||
@@ -38,6 +38,8 @@ | |||
38 | #include "message.h" | 38 | #include "message.h" |
39 | #include "llui.h" | 39 | #include "llui.h" |
40 | #include "llsecondlifeurls.h" | 40 | #include "llsecondlifeurls.h" |
41 | #include "llremoteparcelrequest.h" | ||
42 | #include "llfloater.h" | ||
41 | 43 | ||
42 | #include "llagent.h" | 44 | #include "llagent.h" |
43 | #include "llviewerwindow.h" | 45 | #include "llviewerwindow.h" |
@@ -53,6 +55,7 @@ | |||
53 | #include "llvieweruictrlfactory.h" | 55 | #include "llvieweruictrlfactory.h" |
54 | //#include "llviewermenu.h" // create_landmark() | 56 | //#include "llviewermenu.h" // create_landmark() |
55 | #include "llweb.h" | 57 | #include "llweb.h" |
58 | #include "llsdutil.h" | ||
56 | 59 | ||
57 | //static | 60 | //static |
58 | std::list<LLPanelPlace*> LLPanelPlace::sAllPanels; | 61 | std::list<LLPanelPlace*> LLPanelPlace::sAllPanels; |
@@ -60,8 +63,12 @@ std::list<LLPanelPlace*> LLPanelPlace::sAllPanels; | |||
60 | LLPanelPlace::LLPanelPlace() | 63 | LLPanelPlace::LLPanelPlace() |
61 | : LLPanel("Places Panel"), | 64 | : LLPanel("Places Panel"), |
62 | mParcelID(), | 65 | mParcelID(), |
66 | mRequestedID(), | ||
67 | mRegionID(), | ||
63 | mPosGlobal(), | 68 | mPosGlobal(), |
64 | mAuctionID(0) | 69 | mPosRegion(), |
70 | mAuctionID(0), | ||
71 | mLandmarkAssetID() | ||
65 | { | 72 | { |
66 | sAllPanels.push_back(this); | 73 | sAllPanels.push_back(this); |
67 | } | 74 | } |
@@ -81,13 +88,13 @@ BOOL LLPanelPlace::postBuild() | |||
81 | mSnapshotCtrl = LLViewerUICtrlFactory::getTexturePickerByName(this, "snapshot_ctrl"); | 88 | mSnapshotCtrl = LLViewerUICtrlFactory::getTexturePickerByName(this, "snapshot_ctrl"); |
82 | mSnapshotCtrl->setEnabled(FALSE); | 89 | mSnapshotCtrl->setEnabled(FALSE); |
83 | 90 | ||
84 | mNameEditor = LLViewerUICtrlFactory::getLineEditorByName(this, "name_editor"); | 91 | mNameEditor = LLViewerUICtrlFactory::getTextBoxByName(this, "name_editor"); |
85 | 92 | ||
86 | mDescEditor = LLUICtrlFactory::getTextEditorByName(this, "desc_editor"); | 93 | mDescEditor = LLUICtrlFactory::getTextEditorByName(this, "desc_editor"); |
87 | 94 | ||
88 | mInfoEditor = LLViewerUICtrlFactory::getLineEditorByName(this, "info_editor"); | 95 | mInfoEditor = LLViewerUICtrlFactory::getTextBoxByName(this, "info_editor"); |
89 | 96 | ||
90 | mLocationEditor = LLViewerUICtrlFactory::getLineEditorByName(this, "location_editor"); | 97 | mLocationEditor = LLViewerUICtrlFactory::getTextBoxByName(this, "location_editor"); |
91 | 98 | ||
92 | mTeleportBtn = LLViewerUICtrlFactory::getButtonByName(this, "teleport_btn"); | 99 | mTeleportBtn = LLViewerUICtrlFactory::getButtonByName(this, "teleport_btn"); |
93 | mTeleportBtn->setClickedCallback(onClickTeleport); | 100 | mTeleportBtn->setClickedCallback(onClickTeleport); |
@@ -108,16 +115,54 @@ BOOL LLPanelPlace::postBuild() | |||
108 | // Default to no auction button. We'll show it if we get an auction id | 115 | // Default to no auction button. We'll show it if we get an auction id |
109 | mAuctionBtn->setVisible(FALSE); | 116 | mAuctionBtn->setVisible(FALSE); |
110 | 117 | ||
118 | // Temporary text to explain why the description panel is blank. | ||
119 | // mDescEditor->setText("Parcel information not available without server update"); | ||
120 | |||
111 | return TRUE; | 121 | return TRUE; |
112 | } | 122 | } |
113 | 123 | ||
124 | void LLPanelPlace::displayItemInfo(const LLInventoryItem* pItem) | ||
125 | { | ||
126 | mNameEditor->setText(pItem->getName()); | ||
127 | mDescEditor->setText(pItem->getDescription()); | ||
128 | } | ||
114 | 129 | ||
130 | // Use this for search directory clicks, because we are totally | ||
131 | // recycling the panel and don't need to use what's there. | ||
132 | // | ||
133 | // For SLURL clicks, don't call this, because we need to cache | ||
134 | // the location info from the user. | ||
135 | void LLPanelPlace::resetLocation() | ||
136 | { | ||
137 | mParcelID.setNull(); | ||
138 | mRequestedID.setNull(); | ||
139 | mRegionID.setNull(); | ||
140 | mLandmarkAssetID.setNull(); | ||
141 | mPosGlobal.clearVec(); | ||
142 | mPosRegion.clearVec(); | ||
143 | mAuctionID = 0; | ||
144 | } | ||
115 | 145 | ||
116 | void LLPanelPlace::setParcelID(const LLUUID& parcel_id) | 146 | void LLPanelPlace::setParcelID(const LLUUID& parcel_id) |
117 | { | 147 | { |
118 | mParcelID = parcel_id; | 148 | mParcelID = parcel_id; |
149 | sendParcelInfoRequest(); | ||
150 | } | ||
151 | |||
152 | void LLPanelPlace::setSnapshot(const LLUUID& snapshot_id) | ||
153 | { | ||
154 | mSnapshotCtrl->setImageAssetID(snapshot_id); | ||
155 | } | ||
156 | |||
157 | void LLPanelPlace::setName(const std::string& name) | ||
158 | { | ||
159 | mNameEditor->setText(name); | ||
119 | } | 160 | } |
120 | 161 | ||
162 | void LLPanelPlace::setLocationString(const std::string& location) | ||
163 | { | ||
164 | mLocationEditor->setText(location); | ||
165 | } | ||
121 | 166 | ||
122 | void LLPanelPlace::sendParcelInfoRequest() | 167 | void LLPanelPlace::sendParcelInfoRequest() |
123 | { | 168 | { |
@@ -136,6 +181,20 @@ void LLPanelPlace::sendParcelInfoRequest() | |||
136 | } | 181 | } |
137 | } | 182 | } |
138 | 183 | ||
184 | void LLPanelPlace::setErrorStatus(U32 status, const std::string& reason) | ||
185 | { | ||
186 | // We only really handle 404 and 499 errors | ||
187 | LLString error_text; | ||
188 | if(status == 404) | ||
189 | { | ||
190 | error_text = childGetText("server_error_text"); | ||
191 | } | ||
192 | else if(status == 499) | ||
193 | { | ||
194 | error_text = childGetText("server_forbidden_text"); | ||
195 | } | ||
196 | mDescEditor->setText(error_text); | ||
197 | } | ||
139 | 198 | ||
140 | //static | 199 | //static |
141 | void LLPanelPlace::processParcelInfoReply(LLMessageSystem *msg, void **) | 200 | void LLPanelPlace::processParcelInfoReply(LLMessageSystem *msg, void **) |
@@ -184,19 +243,28 @@ void LLPanelPlace::processParcelInfoReply(LLMessageSystem *msg, void **) | |||
184 | msg->getS32 ("Data", "SalePrice", sale_price); | 243 | msg->getS32 ("Data", "SalePrice", sale_price); |
185 | msg->getS32 ("Data", "AuctionID", auction_id); | 244 | msg->getS32 ("Data", "AuctionID", auction_id); |
186 | 245 | ||
187 | self->mPosGlobal.setVec(global_x, global_y, global_z); | ||
188 | 246 | ||
189 | self->mAuctionID = auction_id; | 247 | self->mAuctionID = auction_id; |
190 | 248 | ||
191 | self->mSnapshotCtrl->setImageAssetID(snapshot_id); | 249 | if(snapshot_id.notNull()) |
250 | { | ||
251 | self->mSnapshotCtrl->setImageAssetID(snapshot_id); | ||
252 | } | ||
253 | |||
254 | // Only assign the name and description if they are not empty and there is not a | ||
255 | // value present (passed in from a landmark, e.g.) | ||
256 | std::string name_str(name); | ||
257 | std::string desc_str(desc); | ||
192 | 258 | ||
193 | self->mNameEditor->setText(LLString(name)); | 259 | if(! name_str.empty() && ! self->mNameEditor->getText().empty()) |
260 | self->mNameEditor->setText(name_str); | ||
194 | 261 | ||
195 | self->mDescEditor->setText(LLString(desc)); | 262 | if(! desc_str.empty() && ! self->mDescEditor->getText().empty()) |
263 | self->mDescEditor->setText(desc_str); | ||
196 | 264 | ||
197 | LLString info_text; | 265 | LLString info_text; |
198 | LLUIString traffic = self->getUIString("traffic_text"); | 266 | LLUIString traffic = self->getUIString("traffic_text"); |
199 | traffic.setArg("[TRAFFIC]", llformat("%.0f", dwell)); | 267 | traffic.setArg("[TRAFFIC]", llformat("%d ", (int)dwell)); |
200 | info_text = traffic; | 268 | info_text = traffic; |
201 | LLUIString area = self->getUIString("area_text"); | 269 | LLUIString area = self->getUIString("area_text"); |
202 | area.setArg("[AREA]", llformat("%d", actual_area)); | 270 | area.setArg("[AREA]", llformat("%d", actual_area)); |
@@ -210,14 +278,11 @@ void LLPanelPlace::processParcelInfoReply(LLMessageSystem *msg, void **) | |||
210 | if (auction_id != 0) | 278 | if (auction_id != 0) |
211 | { | 279 | { |
212 | LLUIString auction = self->getUIString("auction_text"); | 280 | LLUIString auction = self->getUIString("auction_text"); |
213 | auction.setArg("[ID]", llformat("%010d", auction_id)); | 281 | auction.setArg("[ID]", llformat("%010d ", auction_id)); |
214 | info_text += auction; | 282 | info_text += auction; |
215 | } | 283 | } |
216 | self->mInfoEditor->setText(info_text); | 284 | self->mInfoEditor->setText(info_text); |
217 | 285 | ||
218 | S32 region_x = llround(global_x) % REGION_WIDTH_UNITS; | ||
219 | S32 region_y = llround(global_y) % REGION_WIDTH_UNITS; | ||
220 | S32 region_z = llround(global_z); | ||
221 | 286 | ||
222 | // HACK: Flag 0x1 == mature region, otherwise assume PG | 287 | // HACK: Flag 0x1 == mature region, otherwise assume PG |
223 | const char* rating = LLViewerRegion::accessToString(SIM_ACCESS_PG); | 288 | const char* rating = LLViewerRegion::accessToString(SIM_ACCESS_PG); |
@@ -226,8 +291,26 @@ void LLPanelPlace::processParcelInfoReply(LLMessageSystem *msg, void **) | |||
226 | rating = LLViewerRegion::accessToString(SIM_ACCESS_MATURE); | 291 | rating = LLViewerRegion::accessToString(SIM_ACCESS_MATURE); |
227 | } | 292 | } |
228 | 293 | ||
229 | LLString location = llformat("%s %d, %d, %d (%s)", | 294 | // Just use given region position for display |
230 | sim_name, region_x, region_y, region_z, rating); | 295 | S32 region_x = llround(self->mPosRegion.mV[0]); |
296 | S32 region_y = llround(self->mPosRegion.mV[1]); | ||
297 | S32 region_z = llround(self->mPosRegion.mV[2]); | ||
298 | |||
299 | // If the region position is zero, grab position from the global | ||
300 | if(self->mPosRegion.isExactlyZero()) | ||
301 | { | ||
302 | region_x = llround(global_x) % REGION_WIDTH_UNITS; | ||
303 | region_y = llround(global_y) % REGION_WIDTH_UNITS; | ||
304 | region_z = llround(global_z); | ||
305 | } | ||
306 | |||
307 | if(self->mPosGlobal.isExactlyZero()) | ||
308 | { | ||
309 | self->mPosGlobal.setVec(global_x, global_y, global_z); | ||
310 | } | ||
311 | |||
312 | LLString location = llformat("%s %d, %d, %d (%s)", | ||
313 | sim_name, region_x, region_y, region_z, rating); | ||
231 | self->mLocationEditor->setText(location); | 314 | self->mLocationEditor->setText(location); |
232 | 315 | ||
233 | BOOL show_auction = (auction_id > 0); | 316 | BOOL show_auction = (auction_id > 0); |
@@ -236,12 +319,58 @@ void LLPanelPlace::processParcelInfoReply(LLMessageSystem *msg, void **) | |||
236 | } | 319 | } |
237 | 320 | ||
238 | 321 | ||
322 | void LLPanelPlace::displayParcelInfo(const LLVector3& pos_region, | ||
323 | const LLUUID& landmark_asset_id, | ||
324 | const LLUUID& region_id, | ||
325 | const LLVector3d& pos_global) | ||
326 | { | ||
327 | LLSD body; | ||
328 | mPosRegion = pos_region; | ||
329 | mPosGlobal = pos_global; | ||
330 | mLandmarkAssetID = landmark_asset_id; | ||
331 | std::string url = gAgent.getRegion()->getCapability("RemoteParcelRequest"); | ||
332 | if (!url.empty()) | ||
333 | { | ||
334 | body["location"] = ll_sd_from_vector3(pos_region); | ||
335 | if (!region_id.isNull()) | ||
336 | { | ||
337 | body["region_id"] = region_id; | ||
338 | } | ||
339 | if (!pos_global.isExactlyZero()) | ||
340 | { | ||
341 | U64 region_handle = to_region_handle(pos_global); | ||
342 | body["region_handle"] = ll_sd_from_U64(region_handle); | ||
343 | } | ||
344 | LLHTTPClient::post(url, body, new LLRemoteParcelRequestResponder(this->getHandle())); | ||
345 | } | ||
346 | else | ||
347 | { | ||
348 | mDescEditor->setText(childGetText("server_update_text")); | ||
349 | } | ||
350 | mSnapshotCtrl->setImageAssetID(LLUUID::null); | ||
351 | } | ||
352 | |||
353 | |||
239 | // static | 354 | // static |
240 | void LLPanelPlace::onClickTeleport(void* data) | 355 | void LLPanelPlace::onClickTeleport(void* data) |
241 | { | 356 | { |
242 | LLPanelPlace* self = (LLPanelPlace*)data; | 357 | LLPanelPlace* self = (LLPanelPlace*)data; |
243 | 358 | ||
244 | if (!self->mPosGlobal.isExactlyZero()) | 359 | LLView* parent_viewp = self->getParent(); |
360 | if (parent_viewp->getWidgetType() == WIDGET_TYPE_FLOATER) | ||
361 | { | ||
362 | LLFloater* parent_floaterp = (LLFloater*)parent_viewp; | ||
363 | parent_floaterp->close(); | ||
364 | } | ||
365 | // LLFloater* parent_floaterp = (LLFloater*)self->getParent(); | ||
366 | parent_viewp->setVisible(false); | ||
367 | if(self->mLandmarkAssetID.notNull()) | ||
368 | { | ||
369 | gAgent.teleportViaLandmark(self->mLandmarkAssetID); | ||
370 | gFloaterWorldMap->trackLandmark(self->mLandmarkAssetID); | ||
371 | |||
372 | } | ||
373 | else if (!self->mPosGlobal.isExactlyZero()) | ||
245 | { | 374 | { |
246 | gAgent.teleportViaLocation(self->mPosGlobal); | 375 | gAgent.teleportViaLocation(self->mPosGlobal); |
247 | gFloaterWorldMap->trackLocation(self->mPosGlobal); | 376 | gFloaterWorldMap->trackLocation(self->mPosGlobal); |
@@ -252,6 +381,12 @@ void LLPanelPlace::onClickTeleport(void* data) | |||
252 | void LLPanelPlace::onClickMap(void* data) | 381 | void LLPanelPlace::onClickMap(void* data) |
253 | { | 382 | { |
254 | LLPanelPlace* self = (LLPanelPlace*)data; | 383 | LLPanelPlace* self = (LLPanelPlace*)data; |
384 | LLView* parent_viewp = self->getParent(); | ||
385 | if (parent_viewp->getWidgetType() == WIDGET_TYPE_FLOATER) | ||
386 | { | ||
387 | LLFloater* parent_floaterp = (LLFloater*)parent_viewp; | ||
388 | parent_floaterp->close(); | ||
389 | } | ||
255 | 390 | ||
256 | if (!self->mPosGlobal.isExactlyZero()) | 391 | if (!self->mPosGlobal.isExactlyZero()) |
257 | { | 392 | { |
diff --git a/linden/indra/newview/llpanelplace.h b/linden/indra/newview/llpanelplace.h index 81a2a63..e7c17cf 100644 --- a/linden/indra/newview/llpanelplace.h +++ b/linden/indra/newview/llpanelplace.h | |||
@@ -43,6 +43,7 @@ class LLLineEditor; | |||
43 | class LLTextEditor; | 43 | class LLTextEditor; |
44 | class LLTextureCtrl; | 44 | class LLTextureCtrl; |
45 | class LLMessageSystem; | 45 | class LLMessageSystem; |
46 | class LLInventoryItem; | ||
46 | 47 | ||
47 | class LLPanelPlace : public LLPanel | 48 | class LLPanelPlace : public LLPanel |
48 | { | 49 | { |
@@ -52,11 +53,26 @@ public: | |||
52 | 53 | ||
53 | /*virtual*/ BOOL postBuild(); | 54 | /*virtual*/ BOOL postBuild(); |
54 | 55 | ||
56 | void resetLocation(); | ||
57 | // Ignore all old location information, useful if you are | ||
58 | // recycling an existing dialog and need to clear it. | ||
55 | 59 | ||
56 | void setParcelID(const LLUUID& parcel_id); | 60 | void setParcelID(const LLUUID& parcel_id); |
61 | // Sends a request for data about the given parcel, which will | ||
62 | // only update the location if there is none already available. | ||
57 | 63 | ||
58 | void sendParcelInfoRequest(); | 64 | void displayItemInfo(const LLInventoryItem* pItem); |
65 | void setRegionID(const LLUUID& region_id) { mRegionID = region_id; } | ||
66 | void setSnapshot(const LLUUID& snapshot_id); | ||
67 | void setName(const std::string& name); | ||
68 | void setLocationString(const std::string& location); | ||
69 | void setErrorStatus(U32 status, const std::string& reason); | ||
59 | 70 | ||
71 | void sendParcelInfoRequest(); | ||
72 | void displayParcelInfo(const LLVector3& pos_region, | ||
73 | const LLUUID& landmark_asset_id, | ||
74 | const LLUUID& region_id, | ||
75 | const LLVector3d& pos_global); | ||
60 | static void processParcelInfoReply(LLMessageSystem* msg, void**); | 76 | static void processParcelInfoReply(LLMessageSystem* msg, void**); |
61 | 77 | ||
62 | protected: | 78 | protected: |
@@ -71,16 +87,22 @@ protected: | |||
71 | protected: | 87 | protected: |
72 | LLUUID mParcelID; | 88 | LLUUID mParcelID; |
73 | LLUUID mRequestedID; | 89 | LLUUID mRequestedID; |
90 | LLUUID mRegionID; | ||
91 | LLUUID mLandmarkAssetID; | ||
92 | // Absolute position of the location for teleport, may not | ||
93 | // be available (hence zero) | ||
74 | LLVector3d mPosGlobal; | 94 | LLVector3d mPosGlobal; |
95 | // Region-local position for teleport, always available. | ||
96 | LLVector3 mPosRegion; | ||
75 | // Zero if this is not an auction | 97 | // Zero if this is not an auction |
76 | S32 mAuctionID; | 98 | S32 mAuctionID; |
77 | 99 | ||
78 | LLTextureCtrl* mSnapshotCtrl; | 100 | LLTextureCtrl* mSnapshotCtrl; |
79 | 101 | ||
80 | LLLineEditor* mNameEditor; | 102 | LLTextBox* mNameEditor; |
81 | LLTextEditor* mDescEditor; | 103 | LLTextEditor* mDescEditor; |
82 | LLLineEditor* mInfoEditor; | 104 | LLTextBox* mInfoEditor; |
83 | LLLineEditor* mLocationEditor; | 105 | LLTextBox* mLocationEditor; |
84 | 106 | ||
85 | LLButton* mTeleportBtn; | 107 | LLButton* mTeleportBtn; |
86 | LLButton* mMapBtn; | 108 | LLButton* mMapBtn; |
diff --git a/linden/indra/newview/llpreviewlandmark.cpp b/linden/indra/newview/llpreviewlandmark.cpp index ac1bd3f..2d20fd5 100644 --- a/linden/indra/newview/llpreviewlandmark.cpp +++ b/linden/indra/newview/llpreviewlandmark.cpp | |||
@@ -48,6 +48,7 @@ | |||
48 | #include "lliconctrl.h" | 48 | #include "lliconctrl.h" |
49 | #include "lllandmarklist.h" | 49 | #include "lllandmarklist.h" |
50 | #include "lllineeditor.h" | 50 | #include "lllineeditor.h" |
51 | #include "llpanelplace.h" | ||
51 | #include "llresmgr.h" | 52 | #include "llresmgr.h" |
52 | #include "llstatusbar.h" | 53 | #include "llstatusbar.h" |
53 | #include "lltextbox.h" | 54 | #include "lltextbox.h" |
@@ -89,26 +90,14 @@ LLPreviewLandmark::LLPreviewLandmark(const std::string& name, | |||
89 | mLandmark( NULL ) | 90 | mLandmark( NULL ) |
90 | { | 91 | { |
91 | 92 | ||
92 | if (show_keep_discard) | 93 | mFactoryMap["place_details_panel"] = LLCallbackMap(LLPreviewLandmark::createPlaceDetail, this); |
93 | { | 94 | gUICtrlFactory->buildFloater(this, "floater_preview_existing_landmark.xml", &getFactoryMap()); |
94 | gUICtrlFactory->buildFloater(this,"floater_preview_new_landmark.xml"); | ||
95 | childSetAction("Discard btn",onDiscardBtn,this); | ||
96 | } | ||
97 | else | ||
98 | { | ||
99 | gUICtrlFactory->buildFloater(this,"floater_preview_existing_landmark.xml"); | ||
100 | childSetVisible("desc txt", FALSE); | ||
101 | childSetEnabled("desc", FALSE); | ||
102 | } | ||
103 | |||
104 | childSetAction("Teleport btn", onTeleportBtn,this); | ||
105 | childSetAction("Show on Map btn", onMapBtn,this); | ||
106 | 95 | ||
107 | const LLInventoryItem* item = getItem(); | 96 | /* |
108 | 97 | childSetCommitCallback("desc_editor", LLPreview::onText, this); | |
109 | childSetCommitCallback("desc", LLPreview::onText, this); | 98 | childSetText("desc_editor", item->getDescription()); |
110 | childSetText("desc", item->getDescription()); | 99 | childSetText("name_editor", item->getName()); |
111 | childSetPrevalidate("desc", &LLLineEditor::prevalidatePrintableNotPipe); | 100 | childSetPrevalidate("desc_editor", &LLLineEditor::prevalidatePrintableNotPipe); |
112 | 101 | ||
113 | setTitle(title); | 102 | setTitle(title); |
114 | 103 | ||
@@ -117,45 +106,10 @@ LLPreviewLandmark::LLPreviewLandmark(const std::string& name, | |||
117 | LLRect curRect = getRect(); | 106 | LLRect curRect = getRect(); |
118 | translate(rect.mLeft - curRect.mLeft, rect.mTop - curRect.mTop); | 107 | translate(rect.mLeft - curRect.mLeft, rect.mTop - curRect.mTop); |
119 | } | 108 | } |
120 | 109 | */ | |
121 | LLPreviewLandmark::sOrderedInstances.push_back( this ); | 110 | LLPreviewLandmark::sOrderedInstances.push_back( this ); |
122 | } | 111 | } |
123 | 112 | ||
124 | // static | ||
125 | void LLPreviewLandmark::onMapBtn( void* userdata ) | ||
126 | { | ||
127 | LLPreviewLandmark* self = (LLPreviewLandmark*) userdata; | ||
128 | gFocusMgr.setKeyboardFocus(NULL, NULL); | ||
129 | |||
130 | if( gFloaterWorldMap ) | ||
131 | { | ||
132 | gFloaterWorldMap->trackLandmark( self->mItemUUID ); | ||
133 | LLFloaterWorldMap::show(NULL, TRUE); | ||
134 | |||
135 | self->close(); | ||
136 | } | ||
137 | } | ||
138 | |||
139 | // static | ||
140 | void LLPreviewLandmark::onTeleportBtn( void* userdata ) | ||
141 | { | ||
142 | LLPreviewLandmark* self = (LLPreviewLandmark*) userdata; | ||
143 | gFocusMgr.setKeyboardFocus(NULL, NULL); | ||
144 | |||
145 | const LLInventoryItem *item = self->getItem(); | ||
146 | if(item) | ||
147 | { | ||
148 | gAgent.teleportViaLandmark(item->getAssetUUID()); | ||
149 | |||
150 | // we now automatically track the landmark you're teleporting to | ||
151 | // because you'll probably arrive at a telehub instead | ||
152 | if( gFloaterWorldMap ) | ||
153 | { | ||
154 | gFloaterWorldMap->trackLandmark( self->mItemUUID ); | ||
155 | } | ||
156 | } | ||
157 | self->close(); | ||
158 | } | ||
159 | 113 | ||
160 | LLPreviewLandmark::~LLPreviewLandmark() | 114 | LLPreviewLandmark::~LLPreviewLandmark() |
161 | { | 115 | { |
@@ -222,31 +176,17 @@ void LLPreviewLandmark::draw() | |||
222 | if( item && !mLandmark ) | 176 | if( item && !mLandmark ) |
223 | { | 177 | { |
224 | mLandmark = gLandmarkList.getAsset( item->getAssetUUID() ); | 178 | mLandmark = gLandmarkList.getAsset( item->getAssetUUID() ); |
225 | } | 179 | if(mLandmark && mPlacePanel) |
226 | |||
227 | if(mLandmark) | ||
228 | { | ||
229 | F32 degrees = 0; | ||
230 | F64 horiz_dist = 0; | ||
231 | F64 vert_dist = 0; | ||
232 | getDegreesAndDist( °rees, &horiz_dist, &vert_dist); | ||
233 | S32 offset = 180 + (360/16); | ||
234 | if( S32(degrees) + offset >= 360 ) | ||
235 | { | 180 | { |
236 | offset -= 360; | 181 | LLVector3 pos_region = mLandmark->getRegionPos(); // always have this |
182 | LLUUID landmark_asset_id = item->getAssetUUID(); // always have this | ||
183 | LLUUID region_id; | ||
184 | mLandmark->getRegionID(region_id); // might find null? | ||
185 | LLVector3d pos_global = getPositionGlobal(); // might be 0 | ||
186 | mPlacePanel->displayParcelInfo(pos_region, landmark_asset_id, region_id, pos_global); | ||
237 | } | 187 | } |
238 | #if _DEBUG | ||
239 | S32 dir_index = (S32(degrees) + offset) / (360/8); | ||
240 | llassert( 0 <= dir_index && dir_index <= 7 ); | ||
241 | #endif | ||
242 | // See also llfloatermap.cpp -> onLandmarkGo | ||
243 | |||
244 | childSetEnabled("Teleport btn", TRUE); | ||
245 | } | 188 | } |
246 | 189 | ||
247 | BOOL in_prelude = gAgent.inPrelude(); | ||
248 | childSetEnabled("Show on Map btn", !in_prelude); | ||
249 | |||
250 | LLFloater::draw(); | 190 | LLFloater::draw(); |
251 | } | 191 | } |
252 | } | 192 | } |
@@ -271,3 +211,14 @@ LLPreview::EAssetStatus LLPreviewLandmark::getAssetStatus() | |||
271 | } | 211 | } |
272 | return mAssetStatus; | 212 | return mAssetStatus; |
273 | } | 213 | } |
214 | // static | ||
215 | void* LLPreviewLandmark::createPlaceDetail(void* userdata) | ||
216 | { | ||
217 | LLPreviewLandmark *self = (LLPreviewLandmark*)userdata; | ||
218 | self->mPlacePanel = new LLPanelPlace(); | ||
219 | gUICtrlFactory->buildPanel(self->mPlacePanel, "panel_place.xml"); | ||
220 | const LLInventoryItem* item = self->getItem(); | ||
221 | self->mPlacePanel->displayItemInfo(item); | ||
222 | |||
223 | return self->mPlacePanel; | ||
224 | } | ||
diff --git a/linden/indra/newview/llpreviewlandmark.h b/linden/indra/newview/llpreviewlandmark.h index 91088b0..f5da4ec 100644 --- a/linden/indra/newview/llpreviewlandmark.h +++ b/linden/indra/newview/llpreviewlandmark.h | |||
@@ -36,7 +36,6 @@ | |||
36 | 36 | ||
37 | #include "lllandmark.h" | 37 | #include "lllandmark.h" |
38 | 38 | ||
39 | #include "doublelinkedlist.h" | ||
40 | #include "llfloater.h" | 39 | #include "llfloater.h" |
41 | #include "llmap.h" | 40 | #include "llmap.h" |
42 | #include "llstring.h" | 41 | #include "llstring.h" |
@@ -53,6 +52,7 @@ class LLLandmarkList; | |||
53 | class LLLineEditor; | 52 | class LLLineEditor; |
54 | class LLMessageSystem; | 53 | class LLMessageSystem; |
55 | class LLPreviewLandmark; | 54 | class LLPreviewLandmark; |
55 | class LLPanelPlace; | ||
56 | 56 | ||
57 | const S32 PREVIEW_LANDMARK_NUM_COLORS = 6; | 57 | const S32 PREVIEW_LANDMARK_NUM_COLORS = 6; |
58 | 58 | ||
@@ -78,9 +78,7 @@ public: | |||
78 | //static const LLPreviewLandmark* getFirst() { return LLPreviewLandmark::sOrderedInstances.getFirstData(); } | 78 | //static const LLPreviewLandmark* getFirst() { return LLPreviewLandmark::sOrderedInstances.getFirstData(); } |
79 | //static const LLPreviewLandmark* getNext() { return LLPreviewLandmark::sOrderedInstances.getNextData(); } | 79 | //static const LLPreviewLandmark* getNext() { return LLPreviewLandmark::sOrderedInstances.getNextData(); } |
80 | 80 | ||
81 | static void onTeleportBtn(void *user_data); | 81 | static void* createPlaceDetail(void* userdata); |
82 | //static void onFlyBtn(void *user_data); | ||
83 | static void onMapBtn(void *user_data); | ||
84 | 82 | ||
85 | /*virtual*/ void loadAsset(); | 83 | /*virtual*/ void loadAsset(); |
86 | /*virtual*/ EAssetStatus getAssetStatus(); | 84 | /*virtual*/ EAssetStatus getAssetStatus(); |
@@ -93,7 +91,7 @@ private: | |||
93 | // LLPointer<LLHUDText> mBeaconText; | 91 | // LLPointer<LLHUDText> mBeaconText; |
94 | 92 | ||
95 | LLIconCtrl* mIconLandmark; | 93 | LLIconCtrl* mIconLandmark; |
96 | 94 | LLPanelPlace* mPlacePanel; | |
97 | LLLandmark* mLandmark; | 95 | LLLandmark* mLandmark; |
98 | LLColor4 mMarkerColor; | 96 | LLColor4 mMarkerColor; |
99 | 97 | ||
diff --git a/linden/indra/newview/llremoteparcelrequest.cpp b/linden/indra/newview/llremoteparcelrequest.cpp new file mode 100644 index 0000000..3837cbf --- /dev/null +++ b/linden/indra/newview/llremoteparcelrequest.cpp | |||
@@ -0,0 +1,66 @@ | |||
1 | /** | ||
2 | * @file llparcelrequest.cpp | ||
3 | * @brief Implementation of the LLParcelRequest class. | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2006&license=internal$ | ||
6 | * | ||
7 | * Copyright (c) 2006-2007, Linden Research, Inc. | ||
8 | * | ||
9 | * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of | ||
10 | * this source code is governed by the Linden Lab Source Code Disclosure | ||
11 | * Agreement ("Agreement") previously entered between you and Linden | ||
12 | * Lab. By accessing, using, copying, modifying or distributing this | ||
13 | * software, you acknowledge that you have been informed of your | ||
14 | * obligations under the Agreement and agree to abide by those obligations. | ||
15 | * | ||
16 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
17 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
18 | * COMPLETENESS OR PERFORMANCE. | ||
19 | * $/LicenseInfo$ | ||
20 | */ | ||
21 | |||
22 | #include "llviewerprecompiledheaders.h" | ||
23 | |||
24 | #include "llagent.h" | ||
25 | #include "llremoteparcelrequest.h" | ||
26 | |||
27 | #include "llpanelplace.h" | ||
28 | #include "llpanel.h" | ||
29 | #include "llhttpclient.h" | ||
30 | #include "llsdserialize.h" | ||
31 | #include "llviewerregion.h" | ||
32 | #include "llview.h" | ||
33 | #include "message.h" | ||
34 | |||
35 | LLRemoteParcelRequestResponder::LLRemoteParcelRequestResponder(LLViewHandle place_panel_handle) | ||
36 | { | ||
37 | mPlacePanelHandle = place_panel_handle; | ||
38 | } | ||
39 | /*virtual*/ | ||
40 | void LLRemoteParcelRequestResponder::result(const LLSD& content) | ||
41 | { | ||
42 | LLUUID parcel_id = content["parcel_id"]; | ||
43 | |||
44 | LLPanelPlace* place_panelp = (LLPanelPlace*)LLPanel::getPanelByHandle(mPlacePanelHandle); | ||
45 | |||
46 | if(place_panelp) | ||
47 | { | ||
48 | place_panelp->setParcelID(parcel_id); | ||
49 | } | ||
50 | |||
51 | } | ||
52 | |||
53 | /*virtual*/ | ||
54 | void LLRemoteParcelRequestResponder::error(U32 status, const std::string& reason) | ||
55 | { | ||
56 | llinfos << "LLRemoteParcelRequest::error(" | ||
57 | << status << ": " << reason << ")" << llendl; | ||
58 | LLPanelPlace* place_panelp = (LLPanelPlace*)LLPanel::getPanelByHandle(mPlacePanelHandle); | ||
59 | |||
60 | if(place_panelp) | ||
61 | { | ||
62 | place_panelp->setErrorStatus(status, reason); | ||
63 | } | ||
64 | |||
65 | } | ||
66 | |||
diff --git a/linden/indra/newview/llremoteparcelrequest.h b/linden/indra/newview/llremoteparcelrequest.h new file mode 100644 index 0000000..9bb87bf --- /dev/null +++ b/linden/indra/newview/llremoteparcelrequest.h | |||
@@ -0,0 +1,41 @@ | |||
1 | /** | ||
2 | * @file lleventpoll.h | ||
3 | * @brief LLEvDescription of the LLEventPoll class. | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2006&license=internal$ | ||
6 | * | ||
7 | * Copyright (c) 2006-2007, Linden Research, Inc. | ||
8 | * | ||
9 | * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of | ||
10 | * this source code is governed by the Linden Lab Source Code Disclosure | ||
11 | * Agreement ("Agreement") previously entered between you and Linden | ||
12 | * Lab. By accessing, using, copying, modifying or distributing this | ||
13 | * software, you acknowledge that you have been informed of your | ||
14 | * obligations under the Agreement and agree to abide by those obligations. | ||
15 | * | ||
16 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
17 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
18 | * COMPLETENESS OR PERFORMANCE. | ||
19 | * $/LicenseInfo$ | ||
20 | */ | ||
21 | |||
22 | #ifndef LL_LLREMOTEPARCELREQUEST_H | ||
23 | #define LL_LLREMOTEPARCELREQUEST_H | ||
24 | |||
25 | #include "llhttpclient.h" | ||
26 | #include "llview.h" | ||
27 | |||
28 | class LLRemoteParcelRequestResponder : public LLHTTPClient::Responder | ||
29 | { | ||
30 | public: | ||
31 | LLRemoteParcelRequestResponder(LLViewHandle place_panel_handle); | ||
32 | //If we get back a normal response, handle it here | ||
33 | virtual void result(const LLSD& content); | ||
34 | //If we get back an error (not found, etc...), handle it here | ||
35 | virtual void error(U32 status, const std::string& reason); | ||
36 | |||
37 | protected: | ||
38 | LLViewHandle mPlacePanelHandle; | ||
39 | }; | ||
40 | |||
41 | #endif // LL_LLREMOTEPARCELREQUEST_H | ||
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp index a84590f..dad8046 100644 --- a/linden/indra/newview/llstartup.cpp +++ b/linden/indra/newview/llstartup.cpp | |||
@@ -817,7 +817,7 @@ BOOL idle_startup() | |||
817 | if (LLURLSimString::parse()) | 817 | if (LLURLSimString::parse()) |
818 | { | 818 | { |
819 | // a startup URL was specified | 819 | // a startup URL was specified |
820 | agent_location_id = START_LOCATION_ID_TELEHUB; | 820 | agent_location_id = START_LOCATION_ID_URL; |
821 | 821 | ||
822 | // doesn't really matter what location_which is, since | 822 | // doesn't really matter what location_which is, since |
823 | // agent_start_look_at will be overwritten when the | 823 | // agent_start_look_at will be overwritten when the |
@@ -1243,11 +1243,11 @@ BOOL idle_startup() | |||
1243 | text = gUserAuthp->getResponse("agent_access"); | 1243 | text = gUserAuthp->getResponse("agent_access"); |
1244 | if(text && (text[0] == 'M')) | 1244 | if(text && (text[0] == 'M')) |
1245 | { | 1245 | { |
1246 | gAgent.mAccess = SIM_ACCESS_MATURE; | 1246 | gAgent.setTeen(false); |
1247 | } | 1247 | } |
1248 | else | 1248 | else |
1249 | { | 1249 | { |
1250 | gAgent.mAccess = SIM_ACCESS_PG; | 1250 | gAgent.setTeen(true); |
1251 | } | 1251 | } |
1252 | 1252 | ||
1253 | text = gUserAuthp->getResponse("start_location"); | 1253 | text = gUserAuthp->getResponse("start_location"); |
@@ -1505,6 +1505,7 @@ BOOL idle_startup() | |||
1505 | 1505 | ||
1506 | LLStartUp::setStartupState( STATE_SEED_GRANTED_WAIT ); | 1506 | LLStartUp::setStartupState( STATE_SEED_GRANTED_WAIT ); |
1507 | regionp->setSeedCapability(first_sim_seed_cap); | 1507 | regionp->setSeedCapability(first_sim_seed_cap); |
1508 | llinfos << "Waiting for seed grant ...." << llendl; | ||
1508 | 1509 | ||
1509 | // Set agent's initial region to be the one we just created. | 1510 | // Set agent's initial region to be the one we just created. |
1510 | gAgent.setRegion(regionp); | 1511 | gAgent.setRegion(regionp); |
@@ -1523,7 +1524,6 @@ BOOL idle_startup() | |||
1523 | //--------------------------------------------------------------------- | 1524 | //--------------------------------------------------------------------- |
1524 | if(STATE_SEED_GRANTED_WAIT == LLStartUp::getStartupState()) | 1525 | if(STATE_SEED_GRANTED_WAIT == LLStartUp::getStartupState()) |
1525 | { | 1526 | { |
1526 | llinfos << "Waiting for seed grant ...." << llendl; | ||
1527 | return do_normal_idle; | 1527 | return do_normal_idle; |
1528 | } | 1528 | } |
1529 | 1529 | ||
@@ -1714,30 +1714,36 @@ BOOL idle_startup() | |||
1714 | } | 1714 | } |
1715 | 1715 | ||
1716 | #if LL_QUICKTIME_ENABLED // windows only right now but will be ported to mac | 1716 | #if LL_QUICKTIME_ENABLED // windows only right now but will be ported to mac |
1717 | if (gUseQuickTime | 1717 | if (gUseQuickTime) |
1718 | && !gQuickTimeInitialized) | ||
1719 | { | 1718 | { |
1720 | // initialize quicktime libraries (fails gracefully if quicktime not installed ($QUICKTIME) | 1719 | if(!gQuickTimeInitialized) |
1721 | llinfos << "Initializing QuickTime...." << llendl; | 1720 | { |
1722 | set_startup_status(0.57f, "Initializing QuickTime...", gAgent.mMOTD.c_str()); | 1721 | // initialize quicktime libraries (fails gracefully if quicktime not installed ($QUICKTIME) |
1723 | display_startup(); | 1722 | llinfos << "Initializing QuickTime...." << llendl; |
1724 | #if LL_WINDOWS | 1723 | set_startup_status(0.57f, "Initializing QuickTime...", gAgent.mMOTD.c_str()); |
1725 | // Only necessary/available on Windows. | 1724 | display_startup(); |
1726 | if ( InitializeQTML ( 0L ) != noErr ) | 1725 | #if LL_WINDOWS |
1727 | { | 1726 | // Only necessary/available on Windows. |
1728 | // quicktime init failed - turn off media engine support | 1727 | if ( InitializeQTML ( 0L ) != noErr ) |
1729 | LLMediaEngine::getInstance ()->setAvailable ( FALSE ); | 1728 | { |
1730 | llinfos << "...not found - unable to initialize." << llendl; | 1729 | // quicktime init failed - turn off media engine support |
1731 | set_startup_status(0.57f, "QuickTime not found - unable to initialize.", gAgent.mMOTD.c_str()); | 1730 | LLMediaEngine::getInstance ()->setAvailable ( FALSE ); |
1732 | } | 1731 | llinfos << "...not found - unable to initialize." << llendl; |
1733 | else | 1732 | set_startup_status(0.57f, "QuickTime not found - unable to initialize.", gAgent.mMOTD.c_str()); |
1734 | { | 1733 | } |
1735 | llinfos << ".. initialized successfully." << llendl; | 1734 | else |
1736 | set_startup_status(0.57f, "QuickTime initialized successfully.", gAgent.mMOTD.c_str()); | 1735 | { |
1737 | }; | 1736 | llinfos << ".. initialized successfully." << llendl; |
1738 | #endif | 1737 | set_startup_status(0.57f, "QuickTime initialized successfully.", gAgent.mMOTD.c_str()); |
1739 | EnterMovies (); | 1738 | }; |
1740 | gQuickTimeInitialized = true; | 1739 | #endif |
1740 | EnterMovies (); | ||
1741 | gQuickTimeInitialized = true; | ||
1742 | } | ||
1743 | } | ||
1744 | else | ||
1745 | { | ||
1746 | LLMediaEngine::getInstance()->setAvailable( FALSE ); | ||
1741 | } | 1747 | } |
1742 | #endif | 1748 | #endif |
1743 | 1749 | ||
@@ -2316,6 +2322,7 @@ BOOL idle_startup() | |||
2316 | #if 0 // sjb: enable for auto-enabling timer display | 2322 | #if 0 // sjb: enable for auto-enabling timer display |
2317 | gDebugView->mFastTimerView->setVisible(TRUE); | 2323 | gDebugView->mFastTimerView->setVisible(TRUE); |
2318 | #endif | 2324 | #endif |
2325 | |||
2319 | return do_normal_idle; | 2326 | return do_normal_idle; |
2320 | } | 2327 | } |
2321 | 2328 | ||
@@ -3623,6 +3630,7 @@ void release_start_screen() | |||
3623 | gStartImageGL = NULL; | 3630 | gStartImageGL = NULL; |
3624 | } | 3631 | } |
3625 | 3632 | ||
3633 | |||
3626 | // static | 3634 | // static |
3627 | void LLStartUp::setStartupState( S32 state ) | 3635 | void LLStartUp::setStartupState( S32 state ) |
3628 | { | 3636 | { |
diff --git a/linden/indra/newview/llstatusbar.cpp b/linden/indra/newview/llstatusbar.cpp index 9bbb25f..8c50eca 100644 --- a/linden/indra/newview/llstatusbar.cpp +++ b/linden/indra/newview/llstatusbar.cpp | |||
@@ -48,6 +48,7 @@ | |||
48 | #include "llviewercontrol.h" | 48 | #include "llviewercontrol.h" |
49 | #include "llfloaterbuycurrency.h" | 49 | #include "llfloaterbuycurrency.h" |
50 | #include "llfloaterchat.h" | 50 | #include "llfloaterchat.h" |
51 | #include "llfloaterdirectory.h" // to spawn search | ||
51 | #include "llfloaterland.h" | 52 | #include "llfloaterland.h" |
52 | #include "llfloaterregioninfo.h" | 53 | #include "llfloaterregioninfo.h" |
53 | #include "llfloaterscriptdebug.h" | 54 | #include "llfloaterscriptdebug.h" |
@@ -150,53 +151,6 @@ LLStatusBar::LLStatusBar(const std::string& name, const LLRect& rect) | |||
150 | mTextHealth = LLUICtrlFactory::getTextBoxByName( this, "HealthText" ); | 151 | mTextHealth = LLUICtrlFactory::getTextBoxByName( this, "HealthText" ); |
151 | mTextTime = LLUICtrlFactory::getTextBoxByName( this, "TimeText" ); | 152 | mTextTime = LLUICtrlFactory::getTextBoxByName( this, "TimeText" ); |
152 | 153 | ||
153 | S32 x = mRect.getWidth() - 2; | ||
154 | S32 y = 0; | ||
155 | LLRect r; | ||
156 | r.set( x-SIM_STAT_WIDTH, y+MENU_BAR_HEIGHT-1, x, y+1); | ||
157 | mSGBandwidth = new LLStatGraph("BandwidthGraph", r); | ||
158 | mSGBandwidth->setFollows(FOLLOWS_BOTTOM | FOLLOWS_RIGHT); | ||
159 | mSGBandwidth->setStat(&gViewerStats->mKBitStat); | ||
160 | LLString text = childGetText("bandwidth_tooltip") + " "; | ||
161 | LLUIString bandwidth_tooltip = text; // get the text from XML until this widget is XML driven | ||
162 | mSGBandwidth->setLabel(bandwidth_tooltip.getString().c_str()); | ||
163 | mSGBandwidth->setUnits("kbps"); | ||
164 | mSGBandwidth->setPrecision(0); | ||
165 | addChild(mSGBandwidth); | ||
166 | x -= SIM_STAT_WIDTH + 2; | ||
167 | |||
168 | r.set( x-SIM_STAT_WIDTH, y+MENU_BAR_HEIGHT-1, x, y+1); | ||
169 | mSGPacketLoss = new LLStatGraph("PacketLossPercent", r); | ||
170 | mSGPacketLoss->setFollows(FOLLOWS_BOTTOM | FOLLOWS_RIGHT); | ||
171 | mSGPacketLoss->setStat(&gViewerStats->mPacketsLostPercentStat); | ||
172 | text = childGetText("packet_loss_tooltip") + " "; | ||
173 | LLUIString packet_loss_tooltip = text; // get the text from XML until this widget is XML driven | ||
174 | mSGPacketLoss->setLabel(packet_loss_tooltip.getString().c_str()); | ||
175 | mSGPacketLoss->setUnits("%"); | ||
176 | mSGPacketLoss->setMin(0.f); | ||
177 | mSGPacketLoss->setMax(5.f); | ||
178 | mSGPacketLoss->setThreshold(0, 0.5f); | ||
179 | mSGPacketLoss->setThreshold(1, 1.f); | ||
180 | mSGPacketLoss->setThreshold(2, 3.f); | ||
181 | mSGPacketLoss->setPrecision(1); | ||
182 | mSGPacketLoss->mPerSec = FALSE; | ||
183 | addChild(mSGPacketLoss); | ||
184 | |||
185 | } | ||
186 | |||
187 | LLStatusBar::~LLStatusBar() | ||
188 | { | ||
189 | delete mBalanceTimer; | ||
190 | mBalanceTimer = NULL; | ||
191 | |||
192 | delete mHealthTimer; | ||
193 | mHealthTimer = NULL; | ||
194 | |||
195 | // LLView destructor cleans up children | ||
196 | } | ||
197 | |||
198 | BOOL LLStatusBar::postBuild() | ||
199 | { | ||
200 | childSetAction("scriptout", onClickScriptDebug, this); | 154 | childSetAction("scriptout", onClickScriptDebug, this); |
201 | childSetAction("health", onClickHealth, this); | 155 | childSetAction("health", onClickHealth, this); |
202 | childSetAction("fly", onClickFly, this); | 156 | childSetAction("fly", onClickFly, this); |
@@ -207,17 +161,31 @@ BOOL LLStatusBar::postBuild() | |||
207 | childSetAction("restrictpush", onClickPush, this ); | 161 | childSetAction("restrictpush", onClickPush, this ); |
208 | childSetAction("status_voice", onClickVoice, this ); | 162 | childSetAction("status_voice", onClickVoice, this ); |
209 | 163 | ||
164 | childSetCommitCallback("search_editor", onCommitSearch, this); | ||
165 | childSetAction("search_btn", onClickSearch, this); | ||
166 | |||
210 | childSetActionTextbox("ParcelNameText", onClickParcelInfo ); | 167 | childSetActionTextbox("ParcelNameText", onClickParcelInfo ); |
211 | childSetActionTextbox("BalanceText", onClickBalance ); | 168 | childSetActionTextbox("BalanceText", onClickBalance ); |
169 | } | ||
170 | |||
171 | LLStatusBar::~LLStatusBar() | ||
172 | { | ||
173 | delete mBalanceTimer; | ||
174 | mBalanceTimer = NULL; | ||
175 | |||
176 | delete mHealthTimer; | ||
177 | mHealthTimer = NULL; | ||
212 | 178 | ||
213 | return TRUE; | 179 | // LLView destructor cleans up children |
214 | } | 180 | } |
215 | 181 | ||
182 | //virtual | ||
216 | EWidgetType LLStatusBar::getWidgetType() const | 183 | EWidgetType LLStatusBar::getWidgetType() const |
217 | { | 184 | { |
218 | return WIDGET_TYPE_STATUS_BAR; | 185 | return WIDGET_TYPE_STATUS_BAR; |
219 | } | 186 | } |
220 | 187 | ||
188 | //virtual | ||
221 | LLString LLStatusBar::getWidgetTag() const | 189 | LLString LLStatusBar::getWidgetTag() const |
222 | { | 190 | { |
223 | return LL_STATUS_BAR_TAG; | 191 | return LL_STATUS_BAR_TAG; |
@@ -245,13 +213,6 @@ void LLStatusBar::draw() | |||
245 | // Per-frame updates of visibility | 213 | // Per-frame updates of visibility |
246 | void LLStatusBar::refresh() | 214 | void LLStatusBar::refresh() |
247 | { | 215 | { |
248 | F32 bwtotal = gViewerThrottle.getMaxBandwidth() / 1000.f; | ||
249 | mSGBandwidth->setMin(0.f); | ||
250 | mSGBandwidth->setMax(bwtotal*1.25f); | ||
251 | mSGBandwidth->setThreshold(0, bwtotal*0.75f); | ||
252 | mSGBandwidth->setThreshold(1, bwtotal); | ||
253 | mSGBandwidth->setThreshold(2, bwtotal); | ||
254 | |||
255 | // *TODO: Localize / translate time | 216 | // *TODO: Localize / translate time |
256 | 217 | ||
257 | // Get current UTC time, adjusted for the user's clock | 218 | // Get current UTC time, adjusted for the user's clock |
@@ -464,6 +425,10 @@ void LLStatusBar::refresh() | |||
464 | pos_y -= pos_y % 2; | 425 | pos_y -= pos_y % 2; |
465 | } | 426 | } |
466 | 427 | ||
428 | mRegionDetails.mTime = mTextTime->getText(); | ||
429 | mRegionDetails.mBalance = mBalance; | ||
430 | mRegionDetails.mAccesString = (char *)region->getSimAccessString(); | ||
431 | mRegionDetails.mPing = region->getNetDetailsForLCD(); | ||
467 | if (parcel && !parcel->getName().empty()) | 432 | if (parcel && !parcel->getName().empty()) |
468 | { | 433 | { |
469 | location_name = region->getName() | 434 | location_name = region->getName() |
@@ -471,6 +436,43 @@ void LLStatusBar::refresh() | |||
471 | pos_x, pos_y, pos_z, | 436 | pos_x, pos_y, pos_z, |
472 | region->getSimAccessString(), | 437 | region->getSimAccessString(), |
473 | parcel->getName().c_str()); | 438 | parcel->getName().c_str()); |
439 | |||
440 | // keep these around for the LCD to use | ||
441 | mRegionDetails.mRegionName = region->getName(); | ||
442 | mRegionDetails.mParcelName = (char *)parcel->getName().c_str(); | ||
443 | mRegionDetails.mX = pos_x; | ||
444 | mRegionDetails.mY = pos_y; | ||
445 | mRegionDetails.mZ = pos_z; | ||
446 | mRegionDetails.mArea = parcel->getArea(); | ||
447 | mRegionDetails.mForSale = parcel->getForSale(); | ||
448 | mRegionDetails.mTraffic = gParcelMgr->getDwelling(); | ||
449 | |||
450 | if (parcel->isPublic()) | ||
451 | { | ||
452 | snprintf(mRegionDetails.mOwner, MAX_STRING, "Public"); | ||
453 | } | ||
454 | else | ||
455 | { | ||
456 | if (parcel->getIsGroupOwned()) | ||
457 | { | ||
458 | if(!parcel->getGroupID().isNull()) | ||
459 | { | ||
460 | gCacheName->getGroupName(parcel->getGroupID(), mRegionDetails.mOwner); | ||
461 | } | ||
462 | else | ||
463 | { | ||
464 | snprintf(mRegionDetails.mOwner, MAX_STRING, "Group Owned"); | ||
465 | } | ||
466 | } | ||
467 | else | ||
468 | { | ||
469 | // Figure out the owner's name | ||
470 | char owner_first[MAX_STRING]; /*Flawfinder: ignore*/ | ||
471 | char owner_last[MAX_STRING]; /*Flawfinder: ignore*/ | ||
472 | gCacheName->getName(parcel->getOwnerID(), owner_first, owner_last); | ||
473 | snprintf(mRegionDetails.mOwner, MAX_STRING, "%s %s", owner_first, owner_last); /* Flawfinder: ignore */ | ||
474 | } | ||
475 | } | ||
474 | } | 476 | } |
475 | else | 477 | else |
476 | { | 478 | { |
@@ -478,12 +480,34 @@ void LLStatusBar::refresh() | |||
478 | + llformat(" %d, %d, %d (%s)", | 480 | + llformat(" %d, %d, %d (%s)", |
479 | pos_x, pos_y, pos_z, | 481 | pos_x, pos_y, pos_z, |
480 | region->getSimAccessString()); | 482 | region->getSimAccessString()); |
483 | // keep these around for the LCD to use | ||
484 | mRegionDetails.mRegionName = region->getName(); | ||
485 | mRegionDetails.mParcelName = "Unknown"; | ||
486 | |||
487 | mRegionDetails.mX = pos_x; | ||
488 | mRegionDetails.mY = pos_y; | ||
489 | mRegionDetails.mZ = pos_z; | ||
490 | mRegionDetails.mArea = 0; | ||
491 | mRegionDetails.mForSale = FALSE; | ||
492 | snprintf(mRegionDetails.mOwner, MAX_STRING, "Unknown"); | ||
493 | mRegionDetails.mTraffic = 0.0f; | ||
481 | } | 494 | } |
482 | } | 495 | } |
483 | else | 496 | else |
484 | { | 497 | { |
485 | // no region | 498 | // no region |
486 | location_name = "(Unknown)"; | 499 | location_name = "(Unknown)"; |
500 | // keep these around for the LCD to use | ||
501 | mRegionDetails.mRegionName = LLString("Unknown"); | ||
502 | mRegionDetails.mParcelName = "Unknown"; | ||
503 | mRegionDetails.mAccesString = "Unknown"; | ||
504 | mRegionDetails.mX = 0; | ||
505 | mRegionDetails.mY = 0; | ||
506 | mRegionDetails.mZ = 0; | ||
507 | mRegionDetails.mArea = 0; | ||
508 | mRegionDetails.mForSale = FALSE; | ||
509 | snprintf(mRegionDetails.mOwner, MAX_STRING, "Unknown"); | ||
510 | mRegionDetails.mTraffic = 0.0f; | ||
487 | } | 511 | } |
488 | mTextParcelName->setText(location_name); | 512 | mTextParcelName->setText(location_name); |
489 | 513 | ||
@@ -499,9 +523,9 @@ void LLStatusBar::setVisibleForMouselook(bool visible) | |||
499 | { | 523 | { |
500 | mTextBalance->setVisible(visible); | 524 | mTextBalance->setVisible(visible); |
501 | mTextTime->setVisible(visible); | 525 | mTextTime->setVisible(visible); |
502 | mSGBandwidth->setVisible(visible); | ||
503 | mSGPacketLoss->setVisible(visible); | ||
504 | childSetVisible("buycurrency", visible); | 526 | childSetVisible("buycurrency", visible); |
527 | childSetVisible("search_editor", visible); | ||
528 | childSetVisible("search_btn", visible); | ||
505 | setBackgroundVisible(visible); | 529 | setBackgroundVisible(visible); |
506 | } | 530 | } |
507 | 531 | ||
@@ -517,8 +541,9 @@ void LLStatusBar::creditBalance(S32 credit) | |||
517 | 541 | ||
518 | void LLStatusBar::setBalance(S32 balance) | 542 | void LLStatusBar::setBalance(S32 balance) |
519 | { | 543 | { |
520 | LLString balance_str; | 544 | LLString money_str = gResMgr->getMonetaryString( balance ); |
521 | gResMgr->getMonetaryString( balance_str, balance ); | 545 | LLString balance_str = "L$"; |
546 | balance_str += money_str; | ||
522 | mTextBalance->setText( balance_str ); | 547 | mTextBalance->setText( balance_str ); |
523 | 548 | ||
524 | if (mBalance && (fabs((F32)(mBalance - balance)) > gSavedSettings.getF32("UISndMoneyChangeThreshold"))) | 549 | if (mBalance && (fabs((F32)(mBalance - balance)) > gSavedSettings.getF32("UISndMoneyChangeThreshold"))) |
@@ -742,6 +767,21 @@ void LLStatusBar::setupDate() | |||
742 | } | 767 | } |
743 | } | 768 | } |
744 | 769 | ||
770 | // static | ||
771 | void LLStatusBar::onCommitSearch(LLUICtrl*, void* data) | ||
772 | { | ||
773 | // committing is the same as clicking "search" | ||
774 | onClickSearch(data); | ||
775 | } | ||
776 | |||
777 | // static | ||
778 | void LLStatusBar::onClickSearch(void* data) | ||
779 | { | ||
780 | LLStatusBar* self = (LLStatusBar*)data; | ||
781 | LLString search_text = self->childGetText("search_editor"); | ||
782 | LLFloaterDirectory::showFindAll(search_text); | ||
783 | } | ||
784 | |||
745 | BOOL can_afford_transaction(S32 cost) | 785 | BOOL can_afford_transaction(S32 cost) |
746 | { | 786 | { |
747 | return((cost <= 0)||((gStatusBar) && (gStatusBar->getBalance() >=cost))); | 787 | return((cost <= 0)||((gStatusBar) && (gStatusBar->getBalance() >=cost))); |
diff --git a/linden/indra/newview/llstatusbar.h b/linden/indra/newview/llstatusbar.h index 5832dee..88a97ba 100644 --- a/linden/indra/newview/llstatusbar.h +++ b/linden/indra/newview/llstatusbar.h | |||
@@ -47,19 +47,36 @@ class LLUUID; | |||
47 | class LLFrameTimer; | 47 | class LLFrameTimer; |
48 | class LLStatGraph; | 48 | class LLStatGraph; |
49 | 49 | ||
50 | // used by LCD screen | ||
51 | class cLLRegionDetails | ||
52 | { | ||
53 | public: | ||
54 | LLString mRegionName; | ||
55 | char *mParcelName; | ||
56 | char *mAccesString; | ||
57 | S32 mX; | ||
58 | S32 mY; | ||
59 | S32 mZ; | ||
60 | S32 mArea; | ||
61 | BOOL mForSale; | ||
62 | char mOwner[MAX_STRING]; | ||
63 | F32 mTraffic; | ||
64 | S32 mBalance; | ||
65 | LLString mTime; | ||
66 | U32 mPing; | ||
67 | }; | ||
68 | |||
50 | class LLStatusBar | 69 | class LLStatusBar |
51 | : public LLPanel | 70 | : public LLPanel |
52 | { | 71 | { |
53 | public: | 72 | public: |
54 | LLStatusBar(const std::string& name, const LLRect& rect ); | 73 | LLStatusBar(const std::string& name, const LLRect& rect ); |
55 | ~LLStatusBar(); | 74 | /*virtual*/ ~LLStatusBar(); |
56 | virtual BOOL postBuild(); | ||
57 | 75 | ||
58 | virtual EWidgetType getWidgetType() const; | 76 | /*virtual*/ EWidgetType getWidgetType() const; |
59 | virtual LLString getWidgetTag() const; | 77 | /*virtual*/ LLString getWidgetTag() const; |
60 | 78 | ||
61 | // OVERRIDES | 79 | /*virtual*/ void draw(); |
62 | virtual void draw(); | ||
63 | 80 | ||
64 | // MANIPULATORS | 81 | // MANIPULATORS |
65 | void setBalance(S32 balance); | 82 | void setBalance(S32 balance); |
@@ -83,21 +100,22 @@ public: | |||
83 | S32 getSquareMetersCredit() const; | 100 | S32 getSquareMetersCredit() const; |
84 | S32 getSquareMetersCommitted() const; | 101 | S32 getSquareMetersCommitted() const; |
85 | S32 getSquareMetersLeft() const; | 102 | S32 getSquareMetersLeft() const; |
103 | cLLRegionDetails mRegionDetails; | ||
86 | 104 | ||
87 | protected: | 105 | private: |
88 | // simple method to setup the part that holds the date | 106 | // simple method to setup the part that holds the date |
89 | void setupDate(); | 107 | void setupDate(); |
90 | 108 | ||
91 | protected: | 109 | static void onCommitSearch(LLUICtrl*, void* data); |
110 | static void onClickSearch(void* data); | ||
111 | |||
112 | private: | ||
92 | LLTextBox *mTextBalance; | 113 | LLTextBox *mTextBalance; |
93 | LLTextBox *mTextHealth; | 114 | LLTextBox *mTextHealth; |
94 | LLTextBox *mTextTime; | 115 | LLTextBox *mTextTime; |
95 | 116 | ||
96 | LLTextBox* mTextParcelName; | 117 | LLTextBox* mTextParcelName; |
97 | 118 | ||
98 | LLStatGraph *mSGBandwidth; | ||
99 | LLStatGraph *mSGPacketLoss; | ||
100 | |||
101 | LLButton *mBtnBuyCurrency; | 119 | LLButton *mBtnBuyCurrency; |
102 | 120 | ||
103 | S32 mBalance; | 121 | S32 mBalance; |
diff --git a/linden/indra/newview/lltoolpie.cpp b/linden/indra/newview/lltoolpie.cpp index 55692d1..166209d 100644 --- a/linden/indra/newview/lltoolpie.cpp +++ b/linden/indra/newview/lltoolpie.cpp | |||
@@ -605,7 +605,7 @@ BOOL LLToolPie::handleDoubleClick(S32 x, S32 y, MASK mask) | |||
605 | { | 605 | { |
606 | if (object->isAvatar()) | 606 | if (object->isAvatar()) |
607 | { | 607 | { |
608 | LLFloaterAvatarInfo::showFromAvatar(object); | 608 | LLFloaterAvatarInfo::showFromAvatar(object->getID()); |
609 | } | 609 | } |
610 | else | 610 | else |
611 | { | 611 | { |
diff --git a/linden/indra/newview/llurldispatcher.cpp b/linden/indra/newview/llurldispatcher.cpp index e49e9e5..880822a 100644 --- a/linden/indra/newview/llurldispatcher.cpp +++ b/linden/indra/newview/llurldispatcher.cpp | |||
@@ -35,11 +35,10 @@ | |||
35 | // viewer includes | 35 | // viewer includes |
36 | #include "llagent.h" // teleportViaLocation() | 36 | #include "llagent.h" // teleportViaLocation() |
37 | #include "llcommandhandler.h" | 37 | #include "llcommandhandler.h" |
38 | // *FIX: code in merge sl-search-8 | 38 | #include "llfloaterurldisplay.h" |
39 | //#include "llfloaterurldisplay.h" | ||
40 | #include "llfloaterdirectory.h" | 39 | #include "llfloaterdirectory.h" |
41 | #include "llfloaterhtmlhelp.h" | 40 | #include "llfloaterhtmlhelp.h" |
42 | #include "llfloaterworldmap.h" | 41 | //#include "llfloaterworldmap.h" |
43 | #include "llpanellogin.h" | 42 | #include "llpanellogin.h" |
44 | #include "llstartup.h" // gStartupState | 43 | #include "llstartup.h" // gStartupState |
45 | #include "llurlsimstring.h" | 44 | #include "llurlsimstring.h" |
@@ -88,11 +87,10 @@ private: | |||
88 | // handles secondlife://Ahern/123/45/67/ | 87 | // handles secondlife://Ahern/123/45/67/ |
89 | // Returns true if handled. | 88 | // Returns true if handled. |
90 | 89 | ||
91 | // *FIX: code in merge sl-search-8 | 90 | static void regionHandleCallback(U64 handle, const std::string& url, |
92 | // static void regionHandleCallback(U64 handle, const std::string& url, | 91 | const LLUUID& snapshot_id, bool teleport); |
93 | // const LLUUID& snapshot_id, bool teleport); | 92 | // Called by LLWorldMap when a region name has been resolved to a |
94 | // // Called by LLWorldMap when a region name has been resolved to a | 93 | // location in-world, used by places-panel display. |
95 | // // location in-world, used by places-panel display. | ||
96 | 94 | ||
97 | static bool matchPrefix(const std::string& url, const std::string& prefix); | 95 | static bool matchPrefix(const std::string& url, const std::string& prefix); |
98 | 96 | ||
@@ -151,7 +149,9 @@ bool LLURLDispatcherImpl::dispatchHelp(const std::string& url, BOOL right_mouse) | |||
151 | { | 149 | { |
152 | if (matchPrefix(url, SLURL_SL_HELP_PREFIX)) | 150 | if (matchPrefix(url, SLURL_SL_HELP_PREFIX)) |
153 | { | 151 | { |
152 | #if LL_LIBXUL_ENABLED | ||
154 | gViewerHtmlHelp.show(); | 153 | gViewerHtmlHelp.show(); |
154 | #endif // LL_LIBXUL_ENABLED | ||
155 | return true; | 155 | return true; |
156 | } | 156 | } |
157 | return false; | 157 | return false; |
@@ -228,13 +228,52 @@ bool LLURLDispatcherImpl::dispatchRegion(const std::string& url, BOOL right_mous | |||
228 | S32 y = 128; | 228 | S32 y = 128; |
229 | S32 z = 0; | 229 | S32 z = 0; |
230 | LLURLSimString::parse(sim_string, ®ion_name, &x, &y, &z); | 230 | LLURLSimString::parse(sim_string, ®ion_name, &x, &y, &z); |
231 | if (gFloaterWorldMap) | 231 | |
232 | LLFloaterURLDisplay* url_displayp = LLFloaterURLDisplay::getInstance(LLSD()); | ||
233 | url_displayp->setName(region_name); | ||
234 | |||
235 | // Request a region handle by name | ||
236 | gWorldMap->sendNamedRegionRequest(region_name, | ||
237 | LLURLDispatcherImpl::regionHandleCallback, | ||
238 | url, | ||
239 | false); // don't teleport | ||
240 | return true; | ||
241 | } | ||
242 | |||
243 | /*static*/ | ||
244 | void LLURLDispatcherImpl::regionHandleCallback(U64 region_handle, const std::string& url, const LLUUID& snapshot_id, bool teleport) | ||
245 | { | ||
246 | std::string sim_string = stripProtocol(url); | ||
247 | std::string region_name; | ||
248 | S32 x = 128; | ||
249 | S32 y = 128; | ||
250 | S32 z = 0; | ||
251 | LLURLSimString::parse(sim_string, ®ion_name, &x, &y, &z); | ||
252 | |||
253 | LLVector3 local_pos; | ||
254 | local_pos.mV[VX] = (F32)x; | ||
255 | local_pos.mV[VY] = (F32)y; | ||
256 | local_pos.mV[VZ] = (F32)z; | ||
257 | |||
258 | if (teleport) | ||
232 | { | 259 | { |
233 | llinfos << "Opening map to " << region_name << llendl; | 260 | LLVector3d global_pos = from_region_handle(region_handle); |
234 | gFloaterWorldMap->trackURL( region_name.c_str(), x, y, z ); | 261 | global_pos += LLVector3d(local_pos); |
235 | LLFloaterWorldMap::show(NULL, TRUE); | 262 | gAgent.teleportViaLocation(global_pos); |
263 | } | ||
264 | else | ||
265 | { | ||
266 | // display informational floater, allow user to click teleport btn | ||
267 | LLFloaterURLDisplay* url_displayp = LLFloaterURLDisplay::getInstance(LLSD()); | ||
268 | |||
269 | url_displayp->displayParcelInfo(region_handle, local_pos); | ||
270 | if(snapshot_id.notNull()) | ||
271 | { | ||
272 | url_displayp->setSnapshotDisplay(snapshot_id); | ||
273 | } | ||
274 | std::string locationString = llformat("%s %d, %d, %d", region_name.c_str(), x, y, z); | ||
275 | url_displayp->setLocationString(locationString); | ||
236 | } | 276 | } |
237 | return true; | ||
238 | } | 277 | } |
239 | 278 | ||
240 | // static | 279 | // static |
@@ -268,38 +307,36 @@ std::string LLURLDispatcherImpl::stripProtocol(const std::string& url) | |||
268 | return stripped; | 307 | return stripped; |
269 | } | 308 | } |
270 | 309 | ||
271 | // *FIX: code in merge sl-search-8 | 310 | //--------------------------------------------------------------------------- |
272 | // | 311 | // Teleportation links are handled here because they are tightly coupled |
273 | ////--------------------------------------------------------------------------- | 312 | // to URL parsing and sim-fragment parsing |
274 | //// Teleportation links are handled here because they are tightly coupled | 313 | class LLTeleportHandler : public LLCommandHandler |
275 | //// to URL parsing and sim-fragment parsing | 314 | { |
276 | //class LLTeleportHandler : public LLCommandHandler | 315 | public: |
277 | //{ | 316 | LLTeleportHandler() : LLCommandHandler("teleport") { } |
278 | //public: | 317 | bool handle(const std::vector<std::string>& tokens) |
279 | // LLTeleportHandler() : LLCommandHandler("teleport") { } | 318 | { |
280 | // bool handle(const std::vector<std::string>& tokens) | 319 | // construct a "normal" SLURL, resolve the region to |
281 | // { | 320 | // a global position, and teleport to it |
282 | // // construct a "normal" SLURL, resolve the region to | 321 | if (tokens.size() < 1) return false; |
283 | // // a global position, and teleport to it | 322 | |
284 | // if (tokens.size() < 1) return false; | 323 | // Region names may be %20 escaped. |
285 | // | 324 | std::string region_name = LLURLSimString::unescapeRegionName(tokens[0]); |
286 | // // Region names may be %20 escaped. | 325 | |
287 | // std::string region_name = LLURLSimString::unescapeRegionName(tokens[0]); | 326 | // build secondlife://De%20Haro/123/45/67 for use in callback |
288 | // | 327 | std::string url = SLURL_SECONDLIFE_PREFIX; |
289 | // // build secondlife://De%20Haro/123/45/67 for use in callback | 328 | for (size_t i = 0; i < tokens.size(); ++i) |
290 | // std::string url = SLURL_SECONDLIFE_PREFIX; | 329 | { |
291 | // for (size_t i = 0; i < tokens.size(); ++i) | 330 | url += tokens[i] + "/"; |
292 | // { | 331 | } |
293 | // url += tokens[i] + "/"; | 332 | gWorldMap->sendNamedRegionRequest(region_name, |
294 | // } | 333 | LLURLDispatcherImpl::regionHandleCallback, |
295 | // gWorldMap->sendNamedRegionRequest(region_name, | 334 | url, |
296 | // LLURLDispatcherImpl::regionHandleCallback, | 335 | true); // teleport |
297 | // url, | 336 | return true; |
298 | // true); // teleport | 337 | } |
299 | // return true; | 338 | }; |
300 | // } | 339 | LLTeleportHandler gTeleportHandler; |
301 | //}; | ||
302 | //LLTeleportHandler gTeleportHandler; | ||
303 | 340 | ||
304 | //--------------------------------------------------------------------------- | 341 | //--------------------------------------------------------------------------- |
305 | 342 | ||
@@ -325,4 +362,3 @@ bool LLURLDispatcher::dispatchRightClick(const std::string& url) | |||
325 | { | 362 | { |
326 | return LLURLDispatcherImpl::dispatchRightClick(url); | 363 | return LLURLDispatcherImpl::dispatchRightClick(url); |
327 | } | 364 | } |
328 | |||
diff --git a/linden/indra/newview/llviewerdisplay.cpp b/linden/indra/newview/llviewerdisplay.cpp index b4dc093..24b8105 100644 --- a/linden/indra/newview/llviewerdisplay.cpp +++ b/linden/indra/newview/llviewerdisplay.cpp | |||
@@ -240,6 +240,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield) | |||
240 | LLImageGL::updateStats(gFrameTimeSeconds); | 240 | LLImageGL::updateStats(gFrameTimeSeconds); |
241 | 241 | ||
242 | LLVOAvatar::sRenderName = gSavedSettings.getS32("RenderName"); | 242 | LLVOAvatar::sRenderName = gSavedSettings.getS32("RenderName"); |
243 | LLVOAvatar::sRenderGroupTitles = gSavedSettings.getBOOL("RenderGroupTitleAll"); | ||
243 | gPipeline.mBackfaceCull = TRUE; | 244 | gPipeline.mBackfaceCull = TRUE; |
244 | gFrameCount++; | 245 | gFrameCount++; |
245 | if (gFocusMgr.getAppHasFocus()) | 246 | if (gFocusMgr.getAppHasFocus()) |
diff --git a/linden/indra/newview/llviewerimagelist.cpp b/linden/indra/newview/llviewerimagelist.cpp index aa9c2c0..a31ed86 100644 --- a/linden/indra/newview/llviewerimagelist.cpp +++ b/linden/indra/newview/llviewerimagelist.cpp | |||
@@ -116,6 +116,7 @@ void LLViewerImageList::init() | |||
116 | doPreloadImages(); | 116 | doPreloadImages(); |
117 | } | 117 | } |
118 | 118 | ||
119 | |||
119 | void LLViewerImageList::doPreloadImages() | 120 | void LLViewerImageList::doPreloadImages() |
120 | { | 121 | { |
121 | llinfos << "Preloading images..." << llendl; | 122 | llinfos << "Preloading images..." << llendl; |
@@ -313,6 +314,9 @@ void LLViewerImageList::doPreloadImages() | |||
313 | preloadImage("icn_voice_ptt-on-lvl1.tga", LLUUID::null, FALSE); | 314 | preloadImage("icn_voice_ptt-on-lvl1.tga", LLUUID::null, FALSE); |
314 | preloadImage("icn_voice_ptt-on-lvl2.tga", LLUUID::null, FALSE); | 315 | preloadImage("icn_voice_ptt-on-lvl2.tga", LLUUID::null, FALSE); |
315 | preloadImage("icn_voice_ptt-on-lvl3.tga", LLUUID::null, FALSE); | 316 | preloadImage("icn_voice_ptt-on-lvl3.tga", LLUUID::null, FALSE); |
317 | preloadImage("lag_status_good.tga", LLUUID::null, FALSE); | ||
318 | preloadImage("lag_status_warning.tga", LLUUID::null, FALSE); | ||
319 | preloadImage("lag_status_critical.tga", LLUUID::null, FALSE); | ||
316 | } | 320 | } |
317 | 321 | ||
318 | static std::string get_texture_list_name() | 322 | static std::string get_texture_list_name() |
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp index 2ac9caf..45006c1 100644 --- a/linden/indra/newview/llviewermenu.cpp +++ b/linden/indra/newview/llviewermenu.cpp | |||
@@ -138,6 +138,7 @@ | |||
138 | #include "llinventoryview.h" | 138 | #include "llinventoryview.h" |
139 | #include "llkeyboard.h" | 139 | #include "llkeyboard.h" |
140 | #include "llpanellogin.h" | 140 | #include "llpanellogin.h" |
141 | #include "llfloaterlandmark.h" | ||
141 | #include "llmenucommands.h" | 142 | #include "llmenucommands.h" |
142 | #include "llmenugl.h" | 143 | #include "llmenugl.h" |
143 | #include "llmorphview.h" | 144 | #include "llmorphview.h" |
@@ -196,6 +197,9 @@ | |||
196 | 197 | ||
197 | #include "lltexlayer.h" | 198 | #include "lltexlayer.h" |
198 | 199 | ||
200 | void init_landmark_menu(LLMenuGL* menu); | ||
201 | void clear_landmark_menu(LLMenuGL* menu); | ||
202 | |||
199 | void init_client_menu(LLMenuGL* menu); | 203 | void init_client_menu(LLMenuGL* menu); |
200 | void init_server_menu(LLMenuGL* menu); | 204 | void init_server_menu(LLMenuGL* menu); |
201 | 205 | ||
@@ -244,6 +248,7 @@ LLPieMenu *gPieAttachment = NULL; | |||
244 | LLPieMenu *gPieLand = NULL; | 248 | LLPieMenu *gPieLand = NULL; |
245 | 249 | ||
246 | // local constants | 250 | // local constants |
251 | const LLString LANDMARK_MENU_NAME("Landmarks"); | ||
247 | const LLString CLIENT_MENU_NAME("Client"); | 252 | const LLString CLIENT_MENU_NAME("Client"); |
248 | const LLString SERVER_MENU_NAME("Server"); | 253 | const LLString SERVER_MENU_NAME("Server"); |
249 | 254 | ||
@@ -273,6 +278,7 @@ LLPieMenu* gDetachPieMenu = NULL; | |||
273 | LLPieMenu* gDetachScreenPieMenu = NULL; | 278 | LLPieMenu* gDetachScreenPieMenu = NULL; |
274 | LLPieMenu* gDetachBodyPartPieMenus[8]; | 279 | LLPieMenu* gDetachBodyPartPieMenus[8]; |
275 | 280 | ||
281 | LLMenuGL* gLandmarkMenu = NULL; | ||
276 | LLMenuItemCallGL* gAFKMenu = NULL; | 282 | LLMenuItemCallGL* gAFKMenu = NULL; |
277 | LLMenuItemCallGL* gBusyMenu = NULL; | 283 | LLMenuItemCallGL* gBusyMenu = NULL; |
278 | 284 | ||
@@ -334,6 +340,9 @@ void handle_audio_status_2(void*); | |||
334 | void handle_audio_status_3(void*); | 340 | void handle_audio_status_3(void*); |
335 | void handle_audio_status_4(void*); | 341 | void handle_audio_status_4(void*); |
336 | #endif | 342 | #endif |
343 | void manage_landmarks(void*); | ||
344 | void create_new_landmark(void*); | ||
345 | void landmark_menu_action(void*); | ||
337 | void reload_ui(void*); | 346 | void reload_ui(void*); |
338 | void handle_agent_stop_moving(void*); | 347 | void handle_agent_stop_moving(void*); |
339 | void print_packets_lost(void*); | 348 | void print_packets_lost(void*); |
@@ -362,6 +371,7 @@ void toggle_show_xui_names(void *); | |||
362 | BOOL check_show_xui_names(void *); | 371 | BOOL check_show_xui_names(void *); |
363 | 372 | ||
364 | // Debug UI | 373 | // Debug UI |
374 | void handle_web_search_demo(void*); | ||
365 | void handle_slurl_test(void*); | 375 | void handle_slurl_test(void*); |
366 | void handle_save_to_xml(void*); | 376 | void handle_save_to_xml(void*); |
367 | void handle_load_from_xml(void*); | 377 | void handle_load_from_xml(void*); |
@@ -483,6 +493,54 @@ BOOL enable_have_card(void*); | |||
483 | BOOL enable_detach(void*); | 493 | BOOL enable_detach(void*); |
484 | BOOL enable_region_owner(void*); | 494 | BOOL enable_region_owner(void*); |
485 | 495 | ||
496 | class LLLandmarkObserver : public LLInventoryObserver | ||
497 | { | ||
498 | public: | ||
499 | LLLandmarkObserver(); | ||
500 | virtual ~LLLandmarkObserver(); | ||
501 | |||
502 | virtual void changed(U32 mask) | ||
503 | { | ||
504 | // JAMESDEBUG disabled for now - slows down client or causes crashes | ||
505 | // in inventory code. | ||
506 | // | ||
507 | // Also, this may not be faster than just rebuilding the menu each time. | ||
508 | // I believe gInventory.getObject() is not fast. | ||
509 | // | ||
510 | //const std::set<LLUUID>& changed_ids = gInventory.getChangedIDs(); | ||
511 | //std::set<LLUUID>::const_iterator id_it; | ||
512 | //BOOL need_to_rebuild_menu = FALSE; | ||
513 | //for(id_it = changed_ids.begin(); id_it != changed_ids.end(); ++id_it) | ||
514 | //{ | ||
515 | // LLInventoryObject* objectp = gInventory.getObject(*id_it); | ||
516 | // if (objectp && (objectp->getType() == LLAssetType::AT_LANDMARK || objectp->getType() == LLAssetType::AT_CATEGORY)) | ||
517 | // { | ||
518 | // need_to_rebuild_menu = TRUE; | ||
519 | // } | ||
520 | //} | ||
521 | //if (need_to_rebuild_menu) | ||
522 | //{ | ||
523 | // init_landmark_menu(gLandmarkMenu); | ||
524 | //} | ||
525 | } | ||
526 | }; | ||
527 | |||
528 | // For debugging only, I think the inventory observer doesn't get | ||
529 | // called if the inventory is loaded from cache. | ||
530 | void build_landmark_menu(void*) | ||
531 | { | ||
532 | init_landmark_menu(gLandmarkMenu); | ||
533 | } | ||
534 | |||
535 | LLLandmarkObserver::LLLandmarkObserver() | ||
536 | { | ||
537 | gInventory.addObserver(this); | ||
538 | } | ||
539 | |||
540 | LLLandmarkObserver::~LLLandmarkObserver() | ||
541 | { | ||
542 | gInventory.removeObserver(this); | ||
543 | } | ||
486 | 544 | ||
487 | class LLMenuParcelObserver : public LLParcelObserver | 545 | class LLMenuParcelObserver : public LLParcelObserver |
488 | { | 546 | { |
@@ -493,6 +551,7 @@ public: | |||
493 | }; | 551 | }; |
494 | 552 | ||
495 | static LLMenuParcelObserver* gMenuParcelObserver = NULL; | 553 | static LLMenuParcelObserver* gMenuParcelObserver = NULL; |
554 | static LLLandmarkObserver* gLandmarkObserver = NULL; | ||
496 | 555 | ||
497 | LLMenuParcelObserver::LLMenuParcelObserver() | 556 | LLMenuParcelObserver::LLMenuParcelObserver() |
498 | { | 557 | { |
@@ -584,7 +643,7 @@ void init_menus() | |||
584 | gDetachScreenPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Detach HUD", true); | 643 | gDetachScreenPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Detach HUD", true); |
585 | gDetachPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Detach", true); | 644 | gDetachPieMenu = (LLPieMenu*)gMenuHolder->getChildByName("Object Detach", true); |
586 | 645 | ||
587 | if (gAgent.mAccess < SIM_ACCESS_MATURE) | 646 | if (gAgent.isTeen()) |
588 | { | 647 | { |
589 | gMenuHolder->getChildByName("Self Underpants", TRUE)->setVisible(FALSE); | 648 | gMenuHolder->getChildByName("Self Underpants", TRUE)->setVisible(FALSE); |
590 | gMenuHolder->getChildByName("Self Undershirt", TRUE)->setVisible(FALSE); | 649 | gMenuHolder->getChildByName("Self Undershirt", TRUE)->setVisible(FALSE); |
@@ -648,7 +707,7 @@ void init_menus() | |||
648 | gAttachSubMenu = gMenuBarView->getChildMenuByName("Attach Object", TRUE); | 707 | gAttachSubMenu = gMenuBarView->getChildMenuByName("Attach Object", TRUE); |
649 | gDetachSubMenu = gMenuBarView->getChildMenuByName("Detach Object", TRUE); | 708 | gDetachSubMenu = gMenuBarView->getChildMenuByName("Detach Object", TRUE); |
650 | 709 | ||
651 | if (gAgent.mAccess < SIM_ACCESS_MATURE) | 710 | if (gAgent.isTeen()) |
652 | { | 711 | { |
653 | gMenuBarView->getChildByName("Menu Underpants", TRUE)->setVisible(FALSE); | 712 | gMenuBarView->getChildByName("Menu Underpants", TRUE)->setVisible(FALSE); |
654 | gMenuBarView->getChildByName("Menu Undershirt", TRUE)->setVisible(FALSE); | 713 | gMenuBarView->getChildByName("Menu Undershirt", TRUE)->setVisible(FALSE); |
@@ -656,6 +715,18 @@ void init_menus() | |||
656 | 715 | ||
657 | // TomY TODO convert these two | 716 | // TomY TODO convert these two |
658 | LLMenuGL*menu; | 717 | LLMenuGL*menu; |
718 | |||
719 | // JAMESDEBUG - Maybe we don't want a global landmark menu | ||
720 | /* | ||
721 | menu = new LLMenuGL(LANDMARK_MENU_NAME); | ||
722 | // Defer init_landmark_menu() until inventory observer reports that we actually | ||
723 | // have inventory. Otherwise findCategoryByUUID() will create an empty | ||
724 | // Landmarks folder in inventory. JC | ||
725 | gMenuBarView->appendMenu( menu ); | ||
726 | menu->updateParent(LLMenuGL::sMenuContainer); | ||
727 | gLandmarkMenu = menu; | ||
728 | */ | ||
729 | |||
659 | menu = new LLMenuGL(CLIENT_MENU_NAME); | 730 | menu = new LLMenuGL(CLIENT_MENU_NAME); |
660 | init_client_menu(menu); | 731 | init_client_menu(menu); |
661 | gMenuBarView->appendMenu( menu ); | 732 | gMenuBarView->appendMenu( menu ); |
@@ -671,12 +742,74 @@ void init_menus() | |||
671 | // Let land based option enable when parcel changes | 742 | // Let land based option enable when parcel changes |
672 | gMenuParcelObserver = new LLMenuParcelObserver(); | 743 | gMenuParcelObserver = new LLMenuParcelObserver(); |
673 | 744 | ||
745 | // Let landmarks menu update when landmarks are added/removed | ||
746 | gLandmarkObserver = new LLLandmarkObserver(); | ||
747 | |||
674 | // | 748 | // |
675 | // Debug menu visiblity | 749 | // Debug menu visiblity |
676 | // | 750 | // |
677 | show_debug_menus(); | 751 | show_debug_menus(); |
678 | } | 752 | } |
679 | 753 | ||
754 | void init_landmark_menu(LLMenuGL* menu) | ||
755 | { | ||
756 | if (!menu) return; | ||
757 | |||
758 | // clear existing menu, as we might be rebuilding as result of inventory update | ||
759 | clear_landmark_menu(menu); | ||
760 | |||
761 | menu->append(new LLMenuItemCallGL("Organize Landmarks", | ||
762 | &manage_landmarks, NULL)); | ||
763 | menu->append(new LLMenuItemCallGL("New Landmark...", | ||
764 | &create_new_landmark, NULL)); | ||
765 | menu->appendSeparator(); | ||
766 | |||
767 | // now collect all landmarks in inventory and build menu... | ||
768 | LLInventoryModel::cat_array_t* cats; | ||
769 | LLInventoryModel::item_array_t* items; | ||
770 | gInventory.getDirectDescendentsOf(gInventory.findCategoryUUIDForType(LLAssetType::AT_LANDMARK), cats, items); | ||
771 | if(items) | ||
772 | { | ||
773 | S32 count = items->count(); | ||
774 | for(S32 i = 0; i < count; ++i) | ||
775 | { | ||
776 | LLInventoryItem* item = items->get(i); | ||
777 | LLString landmark_name = item->getName(); | ||
778 | LLUUID* landmark_id_ptr = new LLUUID( item->getUUID() ); | ||
779 | LLMenuItemCallGL* menu_item = | ||
780 | new LLMenuItemCallGL(landmark_name, landmark_menu_action, | ||
781 | NULL, NULL, landmark_id_ptr); | ||
782 | menu->append(menu_item); | ||
783 | } | ||
784 | } | ||
785 | } | ||
786 | |||
787 | void clear_landmark_menu(LLMenuGL* menu) | ||
788 | { | ||
789 | if (!menu) return; | ||
790 | |||
791 | // We store the UUIDs of the landmark inventory items in the userdata | ||
792 | // field of the menus. Therefore when we clean up the menu we need to | ||
793 | // delete that data. | ||
794 | const LLView::child_list_t* child_list = menu->getChildList(); | ||
795 | LLView::child_list_const_iter_t it = child_list->begin(); | ||
796 | for ( ; it != child_list->end(); ++it) | ||
797 | { | ||
798 | LLView* view = *it; | ||
799 | if (view->getWidgetType() == WIDGET_TYPE_MENU_ITEM_CALL) | ||
800 | { | ||
801 | LLMenuItemCallGL* menu_item = (LLMenuItemCallGL*)view; | ||
802 | if (menu_item->getMenuCallback() == landmark_menu_action) | ||
803 | { | ||
804 | void* user_data = menu_item->getUserData(); | ||
805 | delete (LLUUID*)user_data; | ||
806 | } | ||
807 | } | ||
808 | } | ||
809 | |||
810 | menu->empty(); | ||
811 | } | ||
812 | |||
680 | void init_client_menu(LLMenuGL* menu) | 813 | void init_client_menu(LLMenuGL* menu) |
681 | { | 814 | { |
682 | LLMenuGL* sub_menu = NULL; | 815 | LLMenuGL* sub_menu = NULL; |
@@ -1010,7 +1143,7 @@ void init_debug_ui_menu(LLMenuGL* menu) | |||
1010 | menu->append(new LLMenuItemCallGL( "Dump VolumeMgr", &dump_volume_mgr, NULL, NULL)); | 1143 | menu->append(new LLMenuItemCallGL( "Dump VolumeMgr", &dump_volume_mgr, NULL, NULL)); |
1011 | menu->append(new LLMenuItemCallGL( "Print Selected Object Info", &print_object_info, NULL, NULL, 'P', MASK_CONTROL|MASK_SHIFT )); | 1144 | menu->append(new LLMenuItemCallGL( "Print Selected Object Info", &print_object_info, NULL, NULL, 'P', MASK_CONTROL|MASK_SHIFT )); |
1012 | menu->append(new LLMenuItemCallGL( "Print Agent Info", &print_agent_nvpairs, NULL, NULL, 'P', MASK_SHIFT )); | 1145 | menu->append(new LLMenuItemCallGL( "Print Agent Info", &print_agent_nvpairs, NULL, NULL, 'P', MASK_SHIFT )); |
1013 | menu->append(new LLMenuItemCallGL( "Print Texture Memory Stats", &output_statistics, NULL, NULL, 'M', MASK_SHIFT | MASK_ALT | MASK_CONTROL)); | 1146 | menu->append(new LLMenuItemCallGL( "Texture Memory Stats", &output_statistics, NULL, NULL, 'M', MASK_SHIFT | MASK_ALT | MASK_CONTROL)); |
1014 | menu->append(new LLMenuItemCheckGL("Double-Click Auto-Pilot", | 1147 | menu->append(new LLMenuItemCheckGL("Double-Click Auto-Pilot", |
1015 | menu_toggle_control, NULL, menu_check_control, | 1148 | menu_toggle_control, NULL, menu_check_control, |
1016 | (void*)"DoubleClickAutoPilot")); | 1149 | (void*)"DoubleClickAutoPilot")); |
@@ -1456,9 +1589,14 @@ static std::vector<LLPointer<view_listener_t> > sMenus; | |||
1456 | //----------------------------------------------------------------------------- | 1589 | //----------------------------------------------------------------------------- |
1457 | void cleanup_menus() | 1590 | void cleanup_menus() |
1458 | { | 1591 | { |
1592 | clear_landmark_menu(gLandmarkMenu); | ||
1593 | |||
1459 | delete gMenuParcelObserver; | 1594 | delete gMenuParcelObserver; |
1460 | gMenuParcelObserver = NULL; | 1595 | gMenuParcelObserver = NULL; |
1461 | 1596 | ||
1597 | delete gLandmarkObserver; | ||
1598 | gLandmarkObserver = NULL; | ||
1599 | |||
1462 | delete gPieSelf; | 1600 | delete gPieSelf; |
1463 | gPieSelf = NULL; | 1601 | gPieSelf = NULL; |
1464 | 1602 | ||
@@ -2860,6 +2998,60 @@ void handle_audio_status_4(void*) | |||
2860 | } | 2998 | } |
2861 | #endif | 2999 | #endif |
2862 | 3000 | ||
3001 | void manage_landmarks(void*) | ||
3002 | { | ||
3003 | LLFloaterLandmark::showInstance(1); | ||
3004 | } | ||
3005 | |||
3006 | void create_new_landmark(void*) | ||
3007 | { | ||
3008 | // Note this is temporary cut and paste of legacy functionality. | ||
3009 | // TODO: Make this spawn a floater allowing user customize before creating the inventory object | ||
3010 | |||
3011 | LLViewerRegion* agent_region = gAgent.getRegion(); | ||
3012 | if(!agent_region) | ||
3013 | { | ||
3014 | llwarns << "No agent region" << llendl; | ||
3015 | return; | ||
3016 | } | ||
3017 | LLParcel* agent_parcel = gParcelMgr->getAgentParcel(); | ||
3018 | if (!agent_parcel) | ||
3019 | { | ||
3020 | llwarns << "No agent parcel" << llendl; | ||
3021 | return; | ||
3022 | } | ||
3023 | if (!agent_parcel->getAllowLandmark() | ||
3024 | && !LLViewerParcelMgr::isParcelOwnedByAgent(agent_parcel, GP_LAND_ALLOW_LANDMARK)) | ||
3025 | { | ||
3026 | gViewerWindow->alertXml("CannotCreateLandmarkNotOwner"); | ||
3027 | return; | ||
3028 | } | ||
3029 | |||
3030 | LLUUID folder_id; | ||
3031 | folder_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_LANDMARK); | ||
3032 | std::string pos_string; | ||
3033 | gAgent.buildLocationString(pos_string); | ||
3034 | |||
3035 | create_inventory_item(gAgent.getID(), gAgent.getSessionID(), | ||
3036 | folder_id, LLTransactionID::tnull, | ||
3037 | pos_string, pos_string, // name, desc | ||
3038 | LLAssetType::AT_LANDMARK, | ||
3039 | LLInventoryType::IT_LANDMARK, | ||
3040 | NOT_WEARABLE, PERM_ALL, | ||
3041 | NULL); | ||
3042 | } | ||
3043 | |||
3044 | void landmark_menu_action(void* userdata) | ||
3045 | { | ||
3046 | LLUUID item_id = *(LLUUID*)userdata; | ||
3047 | |||
3048 | LLViewerInventoryItem* itemp = gInventory.getItem(item_id); | ||
3049 | if (itemp) | ||
3050 | { | ||
3051 | open_landmark(itemp, itemp->getName(), FALSE); | ||
3052 | } | ||
3053 | } | ||
3054 | |||
2863 | void reload_ui(void *) | 3055 | void reload_ui(void *) |
2864 | { | 3056 | { |
2865 | gUICtrlFactory->rebuild(); | 3057 | gUICtrlFactory->rebuild(); |
@@ -5160,7 +5352,7 @@ class LLShowFloater : public view_listener_t | |||
5160 | else if (floater_name == "help f1") | 5352 | else if (floater_name == "help f1") |
5161 | { | 5353 | { |
5162 | #if LL_LIBXUL_ENABLED | 5354 | #if LL_LIBXUL_ENABLED |
5163 | gViewerHtmlHelp.show(); | 5355 | gViewerHtmlHelp.show( gSavedSettings.getString("HelpHomeURL") ); |
5164 | #endif | 5356 | #endif |
5165 | } | 5357 | } |
5166 | else if (floater_name == "help in-world") | 5358 | else if (floater_name == "help in-world") |
@@ -5363,7 +5555,7 @@ class LLShowAgentProfile : public view_listener_t | |||
5363 | LLVOAvatar* avatar = find_avatar_from_object(agent_id); | 5555 | LLVOAvatar* avatar = find_avatar_from_object(agent_id); |
5364 | if (avatar) | 5556 | if (avatar) |
5365 | { | 5557 | { |
5366 | LLFloaterAvatarInfo::showFromAvatar(avatar); | 5558 | LLFloaterAvatarInfo::show(agent_id); |
5367 | } | 5559 | } |
5368 | return true; | 5560 | return true; |
5369 | } | 5561 | } |
@@ -6080,18 +6272,11 @@ void handle_test_female(void*) | |||
6080 | 6272 | ||
6081 | void handle_toggle_pg(void*) | 6273 | void handle_toggle_pg(void*) |
6082 | { | 6274 | { |
6083 | if (gAgent.mAccess < SIM_ACCESS_MATURE) | 6275 | gAgent.setTeen( !gAgent.isTeen() ); |
6084 | { | ||
6085 | gAgent.mAccess = SIM_ACCESS_MATURE; | ||
6086 | } | ||
6087 | else | ||
6088 | { | ||
6089 | gAgent.mAccess = SIM_ACCESS_PG; | ||
6090 | } | ||
6091 | 6276 | ||
6092 | LLFloaterWorldMap::reloadIcons(NULL); | 6277 | LLFloaterWorldMap::reloadIcons(NULL); |
6093 | 6278 | ||
6094 | llinfos << "Access set to " << (S32)gAgent.mAccess << llendl; | 6279 | llinfos << "PG status set to " << (S32)gAgent.isTeen() << llendl; |
6095 | } | 6280 | } |
6096 | 6281 | ||
6097 | void handle_dump_attachments(void*) | 6282 | void handle_dump_attachments(void*) |
diff --git a/linden/indra/newview/llviewerparcelmgr.cpp b/linden/indra/newview/llviewerparcelmgr.cpp index f0e8132..d5fc9fa 100644 --- a/linden/indra/newview/llviewerparcelmgr.cpp +++ b/linden/indra/newview/llviewerparcelmgr.cpp | |||
@@ -51,7 +51,7 @@ | |||
51 | #include "llfirstuse.h" | 51 | #include "llfirstuse.h" |
52 | #include "llfloaterbuyland.h" | 52 | #include "llfloaterbuyland.h" |
53 | #include "llfloatergroups.h" | 53 | #include "llfloatergroups.h" |
54 | #include "llfloaterhtml.h" | 54 | //#include "llfloaterhtml.h" |
55 | #include "llfloatersellland.h" | 55 | #include "llfloatersellland.h" |
56 | #include "llfloatertools.h" | 56 | #include "llfloatertools.h" |
57 | #include "llnotify.h" | 57 | #include "llnotify.h" |
diff --git a/linden/indra/newview/llviewerparcelmgr.h b/linden/indra/newview/llviewerparcelmgr.h index 58a7067..2dd4f28 100644 --- a/linden/indra/newview/llviewerparcelmgr.h +++ b/linden/indra/newview/llviewerparcelmgr.h | |||
@@ -130,6 +130,7 @@ public: | |||
130 | F32 getSelectionHeight() const { return F32(mEastNorth.mdV[VY] - mWestSouth.mdV[VY]); } | 130 | F32 getSelectionHeight() const { return F32(mEastNorth.mdV[VY] - mWestSouth.mdV[VY]); } |
131 | BOOL getSelection(LLVector3d &min, LLVector3d &max) { min = mWestSouth; max = mEastNorth; return !selectionEmpty();} | 131 | BOOL getSelection(LLVector3d &min, LLVector3d &max) { min = mWestSouth; max = mEastNorth; return !selectionEmpty();} |
132 | LLViewerRegion* getSelectionRegion(); | 132 | LLViewerRegion* getSelectionRegion(); |
133 | F32 getDwelling() const { return mSelectedDwell;} | ||
133 | 134 | ||
134 | void getDisplayInfo(S32* area, S32* claim, S32* rent, BOOL* for_sale, F32* dwell); | 135 | void getDisplayInfo(S32* area, S32* claim, S32* rent, BOOL* for_sale, F32* dwell); |
135 | 136 | ||
diff --git a/linden/indra/newview/llviewerregion.cpp b/linden/indra/newview/llviewerregion.cpp index 0a8d9a8..643df1e 100644 --- a/linden/indra/newview/llviewerregion.cpp +++ b/linden/indra/newview/llviewerregion.cpp | |||
@@ -696,7 +696,10 @@ void LLViewerRegion::calculateCameraDistance() | |||
696 | mCameraDistanceSquared = (F32)(gAgent.getCameraPositionGlobal() - getCenterGlobal()).magVecSquared(); | 696 | mCameraDistanceSquared = (F32)(gAgent.getCameraPositionGlobal() - getCenterGlobal()).magVecSquared(); |
697 | } | 697 | } |
698 | 698 | ||
699 | // ---------------- Friends ---------------- | 699 | U32 LLViewerRegion::getNetDetailsForLCD() |
700 | { | ||
701 | return mPingDelay; | ||
702 | } | ||
700 | 703 | ||
701 | std::ostream& operator<<(std::ostream &s, const LLViewerRegion ®ion) | 704 | std::ostream& operator<<(std::ostream &s, const LLViewerRegion ®ion) |
702 | { | 705 | { |
@@ -868,7 +871,7 @@ public: | |||
868 | 871 | ||
869 | for(int i=0; | 872 | for(int i=0; |
870 | locs_it != locs.endArray(); | 873 | locs_it != locs.endArray(); |
871 | i++, locs_it++, agents_it++) | 874 | i++, locs_it++) |
872 | { | 875 | { |
873 | U8 | 876 | U8 |
874 | x = locs_it->get("X").asInteger(), | 877 | x = locs_it->get("X").asInteger(), |
@@ -901,6 +904,10 @@ public: | |||
901 | avatar_ids->put(agent_id); | 904 | avatar_ids->put(agent_id); |
902 | } | 905 | } |
903 | } | 906 | } |
907 | if (has_agent_data) | ||
908 | { | ||
909 | agents_it++; | ||
910 | } | ||
904 | } | 911 | } |
905 | } | 912 | } |
906 | }; | 913 | }; |
@@ -1342,30 +1349,35 @@ void LLViewerRegion::setSeedCapability(const std::string& url) | |||
1342 | setCapability("Seed", url); | 1349 | setCapability("Seed", url); |
1343 | 1350 | ||
1344 | LLSD capabilityNames = LLSD::emptyArray(); | 1351 | LLSD capabilityNames = LLSD::emptyArray(); |
1352 | capabilityNames.append("ChatSessionRequest"); | ||
1353 | capabilityNames.append("CopyInventoryFromNotecard"); | ||
1354 | capabilityNames.append("DispatchRegionInfo"); | ||
1355 | capabilityNames.append("EventQueueGet"); | ||
1345 | capabilityNames.append("MapLayer"); | 1356 | capabilityNames.append("MapLayer"); |
1346 | capabilityNames.append("MapLayerGod"); | 1357 | capabilityNames.append("MapLayerGod"); |
1347 | capabilityNames.append("NewFileAgentInventory"); | 1358 | capabilityNames.append("NewFileAgentInventory"); |
1348 | capabilityNames.append("EventQueueGet"); | 1359 | capabilityNames.append("ParcelGodReserveForNewbie"); |
1360 | capabilityNames.append("ParcelVoiceInfoRequest"); | ||
1361 | capabilityNames.append("ProvisionVoiceAccountRequest"); | ||
1362 | capabilityNames.append("RemoteParcelRequest"); | ||
1363 | capabilityNames.append("RequestTextureDownload"); | ||
1364 | capabilityNames.append("SearchStatRequest"); | ||
1365 | capabilityNames.append("SearchStatTracking"); | ||
1366 | capabilityNames.append("SendPostcard"); | ||
1367 | capabilityNames.append("SendUserReport"); | ||
1368 | capabilityNames.append("SendUserReportWithScreenshot"); | ||
1369 | capabilityNames.append("ServerReleaseNotes"); | ||
1349 | capabilityNames.append("UpdateGestureAgentInventory"); | 1370 | capabilityNames.append("UpdateGestureAgentInventory"); |
1350 | capabilityNames.append("UpdateNotecardAgentInventory"); | 1371 | capabilityNames.append("UpdateNotecardAgentInventory"); |
1351 | capabilityNames.append("UpdateScriptAgentInventory"); | 1372 | capabilityNames.append("UpdateScriptAgentInventory"); |
1352 | capabilityNames.append("UpdateGestureTaskInventory"); | 1373 | capabilityNames.append("UpdateGestureTaskInventory"); |
1353 | capabilityNames.append("UpdateNotecardTaskInventory"); | 1374 | capabilityNames.append("UpdateNotecardTaskInventory"); |
1354 | capabilityNames.append("UpdateScriptTaskInventory"); | 1375 | capabilityNames.append("UpdateScriptTaskInventory"); |
1355 | capabilityNames.append("SendPostcard"); | ||
1356 | capabilityNames.append("ViewerStartAuction"); | 1376 | capabilityNames.append("ViewerStartAuction"); |
1357 | capabilityNames.append("ParcelGodReserveForNewbie"); | ||
1358 | capabilityNames.append("SendUserReport"); | ||
1359 | capabilityNames.append("SendUserReportWithScreenshot"); | ||
1360 | capabilityNames.append("RequestTextureDownload"); | ||
1361 | capabilityNames.append("UntrustedSimulatorMessage"); | 1377 | capabilityNames.append("UntrustedSimulatorMessage"); |
1362 | capabilityNames.append("ParcelVoiceInfoRequest"); | ||
1363 | capabilityNames.append("ChatSessionRequest"); | ||
1364 | capabilityNames.append("ViewerStats"); | 1378 | capabilityNames.append("ViewerStats"); |
1365 | capabilityNames.append("ProvisionVoiceAccountRequest"); | 1379 | // Please add new capabilities alphabetically to reduce |
1366 | capabilityNames.append("ServerReleaseNotes"); | 1380 | // merge conflicts. |
1367 | capabilityNames.append("CopyInventoryFromNotecard"); | ||
1368 | capabilityNames.append("DispatchRegionInfo"); | ||
1369 | 1381 | ||
1370 | llinfos << "posting to seed " << url << llendl; | 1382 | llinfos << "posting to seed " << url << llendl; |
1371 | 1383 | ||
diff --git a/linden/indra/newview/llviewerregion.h b/linden/indra/newview/llviewerregion.h index d759361..013a96f 100644 --- a/linden/indra/newview/llviewerregion.h +++ b/linden/indra/newview/llviewerregion.h | |||
@@ -240,6 +240,9 @@ public: | |||
240 | 240 | ||
241 | friend std::ostream& operator<<(std::ostream &s, const LLViewerRegion ®ion); | 241 | friend std::ostream& operator<<(std::ostream &s, const LLViewerRegion ®ion); |
242 | 242 | ||
243 | // used by LCD to get details for debug screen | ||
244 | U32 getNetDetailsForLCD(); | ||
245 | |||
243 | public: | 246 | public: |
244 | struct CompareDistance | 247 | struct CompareDistance |
245 | { | 248 | { |
diff --git a/linden/indra/newview/llviewerstats.cpp b/linden/indra/newview/llviewerstats.cpp index da75de6..96f52a1 100644 --- a/linden/indra/newview/llviewerstats.cpp +++ b/linden/indra/newview/llviewerstats.cpp | |||
@@ -176,7 +176,11 @@ const StatAttributes STAT_INFO[LLViewerStats::ST_COUNT] = | |||
176 | // ST_TEX_BAKES | 176 | // ST_TEX_BAKES |
177 | StatAttributes("Texture Bakes", FALSE, FALSE), | 177 | StatAttributes("Texture Bakes", FALSE, FALSE), |
178 | // ST_TEX_REBAKES | 178 | // ST_TEX_REBAKES |
179 | StatAttributes("Texture Rebakes", FALSE, FALSE) | 179 | StatAttributes("Texture Rebakes", FALSE, FALSE), |
180 | |||
181 | // ST_LOGITECH_KEYBOARD | ||
182 | StatAttributes("Logitech LCD", FALSE, FALSE) | ||
183 | |||
180 | }; | 184 | }; |
181 | 185 | ||
182 | LLViewerStats::LLViewerStats() | 186 | LLViewerStats::LLViewerStats() |
diff --git a/linden/indra/newview/llviewerstats.h b/linden/indra/newview/llviewerstats.h index 9e42f29..3c959a5 100644 --- a/linden/indra/newview/llviewerstats.h +++ b/linden/indra/newview/llviewerstats.h | |||
@@ -160,8 +160,9 @@ public: | |||
160 | ST_WINDOW_HEIGHT = 55, | 160 | ST_WINDOW_HEIGHT = 55, |
161 | ST_TEX_BAKES = 56, | 161 | ST_TEX_BAKES = 56, |
162 | ST_TEX_REBAKES = 57, | 162 | ST_TEX_REBAKES = 57, |
163 | ST_LOGITECH_LCD = 58, | ||
163 | 164 | ||
164 | ST_COUNT = 58 | 165 | ST_COUNT = 59 |
165 | }; | 166 | }; |
166 | 167 | ||
167 | 168 | ||
diff --git a/linden/indra/newview/llviewertexteditor.cpp b/linden/indra/newview/llviewertexteditor.cpp index 2c382cb..1e75e42 100644 --- a/linden/indra/newview/llviewertexteditor.cpp +++ b/linden/indra/newview/llviewertexteditor.cpp | |||
@@ -53,8 +53,10 @@ | |||
53 | #include "llviewerimagelist.h" | 53 | #include "llviewerimagelist.h" |
54 | #include "llviewerwindow.h" | 54 | #include "llviewerwindow.h" |
55 | #include "llviewerinventory.h" | 55 | #include "llviewerinventory.h" |
56 | #include "llvieweruictrlfactory.h" | ||
56 | #include "llnotecard.h" | 57 | #include "llnotecard.h" |
57 | #include "llmemorystream.h" | 58 | #include "llmemorystream.h" |
59 | #include "llmenugl.h" | ||
58 | 60 | ||
59 | extern BOOL gPacificDaylightTime; | 61 | extern BOOL gPacificDaylightTime; |
60 | 62 | ||
@@ -567,6 +569,18 @@ LLViewerTextEditor::LLViewerTextEditor(const LLString& name, | |||
567 | { | 569 | { |
568 | mEmbeddedItemList = new LLEmbeddedItems(this); | 570 | mEmbeddedItemList = new LLEmbeddedItems(this); |
569 | mInventoryCallback->setEditor(this); | 571 | mInventoryCallback->setEditor(this); |
572 | |||
573 | // Build the right click menu | ||
574 | // make the popup menu available | ||
575 | |||
576 | LLMenuGL* menu = gUICtrlFactory->buildMenu("menu_slurl.xml", this); | ||
577 | if (!menu) | ||
578 | { | ||
579 | menu = new LLMenuGL(""); | ||
580 | } | ||
581 | menu->setBackgroundColor(gColors.getColor("MenuPopupBgColor")); | ||
582 | // menu->setVisible(FALSE); | ||
583 | mPopupMenuHandle = menu->mViewHandle; | ||
570 | } | 584 | } |
571 | 585 | ||
572 | LLViewerTextEditor::~LLViewerTextEditor() | 586 | LLViewerTextEditor::~LLViewerTextEditor() |
@@ -732,6 +746,7 @@ BOOL LLViewerTextEditor::handleMouseDown(S32 x, S32 y, MASK mask) | |||
732 | } | 746 | } |
733 | // assume we're starting a drag select | 747 | // assume we're starting a drag select |
734 | mIsSelecting = TRUE; | 748 | mIsSelecting = TRUE; |
749 | |||
735 | } | 750 | } |
736 | else | 751 | else |
737 | { | 752 | { |
@@ -941,6 +956,42 @@ BOOL LLViewerTextEditor::handleMouseUp(S32 x, S32 y, MASK mask) | |||
941 | return handled; | 956 | return handled; |
942 | } | 957 | } |
943 | 958 | ||
959 | BOOL LLViewerTextEditor::handleRightMouseDown(S32 x, S32 y, MASK mask) | ||
960 | { | ||
961 | |||
962 | |||
963 | BOOL handled = childrenHandleRightMouseDown(x, y, mask) != NULL; | ||
964 | |||
965 | if(! handled) | ||
966 | { | ||
967 | LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y ); | ||
968 | if( cur_segment ) | ||
969 | { | ||
970 | if(cur_segment->getStyle().isLink()) | ||
971 | { | ||
972 | handled = TRUE; | ||
973 | mHTML = cur_segment->getStyle().getLinkHREF(); | ||
974 | } | ||
975 | } | ||
976 | } | ||
977 | LLMenuGL* menu = (LLMenuGL*)LLView::getViewByHandle(mPopupMenuHandle); | ||
978 | if(handled && menu && mParseHTML && mHTML.length() > 0) | ||
979 | { | ||
980 | menu->setVisible(TRUE); | ||
981 | menu->arrange(); | ||
982 | menu->updateParent(LLMenuGL::sMenuContainer); | ||
983 | LLMenuGL::showPopup(this, menu, x, y); | ||
984 | mHTML = ""; | ||
985 | } | ||
986 | else | ||
987 | { | ||
988 | if(menu && menu->getVisible()) | ||
989 | { | ||
990 | menu->setVisible(FALSE); | ||
991 | } | ||
992 | } | ||
993 | return handled; | ||
994 | } | ||
944 | 995 | ||
945 | BOOL LLViewerTextEditor::handleDoubleClick(S32 x, S32 y, MASK mask) | 996 | BOOL LLViewerTextEditor::handleDoubleClick(S32 x, S32 y, MASK mask) |
946 | { | 997 | { |
diff --git a/linden/indra/newview/llviewertexteditor.h b/linden/indra/newview/llviewertexteditor.h index e05a61c..1ec173a 100644 --- a/linden/indra/newview/llviewertexteditor.h +++ b/linden/indra/newview/llviewertexteditor.h | |||
@@ -63,6 +63,7 @@ public: | |||
63 | // mousehandler overrides | 63 | // mousehandler overrides |
64 | virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); | 64 | virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); |
65 | virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); | 65 | virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); |
66 | virtual BOOL handleRightMouseDown(S32 x, S32 y, MASK mask); | ||
66 | virtual BOOL handleHover(S32 x, S32 y, MASK mask); | 67 | virtual BOOL handleHover(S32 x, S32 y, MASK mask); |
67 | virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask ); | 68 | virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask ); |
68 | 69 | ||
@@ -128,6 +129,8 @@ protected: | |||
128 | LLUUID mNotecardInventoryID; | 129 | LLUUID mNotecardInventoryID; |
129 | 130 | ||
130 | LLPointer<LLEmbeddedNotecardOpener> mInventoryCallback; | 131 | LLPointer<LLEmbeddedNotecardOpener> mInventoryCallback; |
132 | |||
133 | LLViewHandle mPopupMenuHandle; | ||
131 | }; | 134 | }; |
132 | 135 | ||
133 | #endif // LL_VIEWERTEXTEDITOR_H | 136 | #endif // LL_VIEWERTEXTEDITOR_H |
diff --git a/linden/indra/newview/llviewerwindow.cpp b/linden/indra/newview/llviewerwindow.cpp index 49abf13..7aaf9c0 100644 --- a/linden/indra/newview/llviewerwindow.cpp +++ b/linden/indra/newview/llviewerwindow.cpp | |||
@@ -32,9 +32,15 @@ | |||
32 | #include "llviewerprecompiledheaders.h" | 32 | #include "llviewerprecompiledheaders.h" |
33 | 33 | ||
34 | #include "llviewerwindow.h" | 34 | #include "llviewerwindow.h" |
35 | |||
36 | // system library includes | ||
37 | #include <stdio.h> | ||
38 | #include <iostream> | ||
39 | #include <fstream> | ||
40 | |||
35 | #include "llviewquery.h" | 41 | #include "llviewquery.h" |
36 | #include "llxmltree.h" | 42 | #include "llxmltree.h" |
37 | #include "llviewercamera.h" | 43 | //#include "llviewercamera.h" |
38 | //#include "imdebug.h" | 44 | //#include "imdebug.h" |
39 | 45 | ||
40 | #include "llvoiceclient.h" // for push-to-talk button handling | 46 | #include "llvoiceclient.h" // for push-to-talk button handling |
@@ -1823,6 +1829,8 @@ void LLViewerWindow::adjustRectanglesForFirstUse(const LLRect& window) | |||
1823 | adjust_rect_top_left("FloaterGestureRect", window); | 1829 | adjust_rect_top_left("FloaterGestureRect", window); |
1824 | 1830 | ||
1825 | adjust_rect_top_right("FloaterMapRect", window); | 1831 | adjust_rect_top_right("FloaterMapRect", window); |
1832 | |||
1833 | adjust_rect_top_right("FloaterLagMeter", window); | ||
1826 | 1834 | ||
1827 | adjust_rect_top_right("FloaterLagMeter", window); | 1835 | adjust_rect_top_right("FloaterLagMeter", window); |
1828 | 1836 | ||
@@ -2925,6 +2933,10 @@ BOOL LLViewerWindow::handlePerFrameHover() | |||
2925 | { | 2933 | { |
2926 | gFloaterTools->setVisible(FALSE); | 2934 | gFloaterTools->setVisible(FALSE); |
2927 | } | 2935 | } |
2936 | // In the future we may wish to hide the tools menu unless you | ||
2937 | // are building. JC | ||
2938 | //gMenuBarView->setItemVisible("Tools", gFloaterTools->getVisible()); | ||
2939 | //gMenuBarView->arrange(); | ||
2928 | } | 2940 | } |
2929 | if (gToolBar) | 2941 | if (gToolBar) |
2930 | { | 2942 | { |
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp index 41873c7..4905ff8 100644 --- a/linden/indra/newview/llvoavatar.cpp +++ b/linden/indra/newview/llvoavatar.cpp | |||
@@ -271,6 +271,7 @@ LLUUID LLVOAvatar::sStepSounds[LL_MCODE_END] = | |||
271 | }; | 271 | }; |
272 | 272 | ||
273 | S32 LLVOAvatar::sRenderName = RENDER_NAME_ALWAYS; | 273 | S32 LLVOAvatar::sRenderName = RENDER_NAME_ALWAYS; |
274 | BOOL LLVOAvatar::sRenderGroupTitles = TRUE; | ||
274 | S32 LLVOAvatar::sNumVisibleChatBubbles = 0; | 275 | S32 LLVOAvatar::sNumVisibleChatBubbles = 0; |
275 | BOOL LLVOAvatar::sDebugInvisible = FALSE; | 276 | BOOL LLVOAvatar::sDebugInvisible = FALSE; |
276 | BOOL LLVOAvatar::sShowAttachmentPoints = FALSE; | 277 | BOOL LLVOAvatar::sShowAttachmentPoints = FALSE; |
@@ -2704,7 +2705,15 @@ BOOL LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) | |||
2704 | || is_appearance != mNameAppearance) | 2705 | || is_appearance != mNameAppearance) |
2705 | { | 2706 | { |
2706 | char line[MAX_STRING]; /* Flawfinder: ignore */ | 2707 | char line[MAX_STRING]; /* Flawfinder: ignore */ |
2707 | if (title && title->getString() && title->getString()[0] != '\0') | 2708 | if (!sRenderGroupTitles) |
2709 | { | ||
2710 | // If all group titles are turned off, stack first name | ||
2711 | // on a line above last name | ||
2712 | strncpy(line, firstname->getString(), MAX_STRING -1 ); /* Flawfinder: ignore */ | ||
2713 | line[MAX_STRING -1] = '\0'; | ||
2714 | strcat(line, "\n"); | ||
2715 | } | ||
2716 | else if (title && title->getString() && title->getString()[0] != '\0') | ||
2708 | { | 2717 | { |
2709 | strncpy(line, title->getString(), MAX_STRING -1 ); /* Flawfinder: ignore */ | 2718 | strncpy(line, title->getString(), MAX_STRING -1 ); /* Flawfinder: ignore */ |
2710 | line[MAX_STRING -1] = '\0'; | 2719 | line[MAX_STRING -1] = '\0'; |
diff --git a/linden/indra/newview/llvoavatar.h b/linden/indra/newview/llvoavatar.h index 18f69a0..7ef9aee 100644 --- a/linden/indra/newview/llvoavatar.h +++ b/linden/indra/newview/llvoavatar.h | |||
@@ -831,6 +831,7 @@ public: | |||
831 | static LLUUID sStepSoundOnLand; | 831 | static LLUUID sStepSoundOnLand; |
832 | 832 | ||
833 | static S32 sRenderName; | 833 | static S32 sRenderName; |
834 | static BOOL sRenderGroupTitles; | ||
834 | static S32 sNumVisibleChatBubbles; | 835 | static S32 sNumVisibleChatBubbles; |
835 | static BOOL sDebugInvisible; | 836 | static BOOL sDebugInvisible; |
836 | static BOOL sShowAttachmentPoints; | 837 | static BOOL sShowAttachmentPoints; |
diff --git a/linden/indra/newview/llvoiceclient.cpp b/linden/indra/newview/llvoiceclient.cpp index 3a74f16..f6f7ce7 100644 --- a/linden/indra/newview/llvoiceclient.cpp +++ b/linden/indra/newview/llvoiceclient.cpp | |||
@@ -3954,8 +3954,10 @@ void LLVoiceClient::notifyStatusObservers(LLVoiceClientStatusObserver::EStatusTy | |||
3954 | { | 3954 | { |
3955 | switch(mVivoxErrorStatusCode) | 3955 | switch(mVivoxErrorStatusCode) |
3956 | { | 3956 | { |
3957 | case 20713: status = LLVoiceClientStatusObserver::ERROR_CHANNEL_FULL; break; | 3957 | case 20713: status = LLVoiceClientStatusObserver::ERROR_CHANNEL_FULL; break; |
3958 | case 20714: status = LLVoiceClientStatusObserver::ERROR_CHANNEL_LOCKED; break; | 3958 | case 20714: status = LLVoiceClientStatusObserver::ERROR_CHANNEL_LOCKED; break; |
3959 | case 20715: status = LLVoiceClientStatusObserver::ERROR_NOT_AVAILABLE; | ||
3960 | break; | ||
3959 | } | 3961 | } |
3960 | 3962 | ||
3961 | // Reset the error code to make sure it won't be reused later by accident. | 3963 | // Reset the error code to make sure it won't be reused later by accident. |
diff --git a/linden/indra/newview/llweb.cpp b/linden/indra/newview/llweb.cpp index f908cd2..7ee4869 100644 --- a/linden/indra/newview/llweb.cpp +++ b/linden/indra/newview/llweb.cpp | |||
@@ -36,7 +36,7 @@ | |||
36 | 36 | ||
37 | #include "llwindow.h" | 37 | #include "llwindow.h" |
38 | 38 | ||
39 | #include "llfloaterhtml.h" | 39 | //#include "llfloaterhtml.h" |
40 | #include "llviewercontrol.h" | 40 | #include "llviewercontrol.h" |
41 | 41 | ||
42 | // static | 42 | // static |
diff --git a/linden/indra/newview/llwebbrowserctrl.cpp b/linden/indra/newview/llwebbrowserctrl.cpp index 5de0d43..ca03f48 100644 --- a/linden/indra/newview/llwebbrowserctrl.cpp +++ b/linden/indra/newview/llwebbrowserctrl.cpp | |||
@@ -34,14 +34,18 @@ | |||
34 | #if LL_LIBXUL_ENABLED | 34 | #if LL_LIBXUL_ENABLED |
35 | 35 | ||
36 | #include "llwebbrowserctrl.h" | 36 | #include "llwebbrowserctrl.h" |
37 | #include "llviewborder.h" | 37 | |
38 | #include "llviewerwindow.h" | 38 | // viewer includes |
39 | #include "llfloaterworldmap.h" | 39 | #include "llfloaterworldmap.h" |
40 | #include "llurldispatcher.h" | 40 | #include "llurldispatcher.h" |
41 | #include "llfocusmgr.h" | 41 | #include "llviewborder.h" |
42 | #include "llviewerwindow.h" | ||
43 | #include "llfloaterhtml.h" | ||
42 | #include "llweb.h" | 44 | #include "llweb.h" |
43 | #include "viewer.h" | 45 | #include "viewer.h" |
44 | #include "llpanellogin.h" | 46 | |
47 | // linden library includes | ||
48 | #include "llfocusmgr.h" | ||
45 | 49 | ||
46 | // Setting the mozilla buffer width to 2048 exactly doesn't work, since it pads its rowbytes a bit, pushing the texture width over 2048. | 50 | // Setting the mozilla buffer width to 2048 exactly doesn't work, since it pads its rowbytes a bit, pushing the texture width over 2048. |
47 | // 2000 should give enough headroom for any amount of padding it cares to add. | 51 | // 2000 should give enough headroom for any amount of padding it cares to add. |
@@ -55,7 +59,9 @@ LLWebBrowserCtrl::LLWebBrowserCtrl( const std::string& name, const LLRect& rect | |||
55 | mBorder(NULL), | 59 | mBorder(NULL), |
56 | mFrequentUpdates( true ), | 60 | mFrequentUpdates( true ), |
57 | mOpenLinksInExternalBrowser( false ), | 61 | mOpenLinksInExternalBrowser( false ), |
58 | mOpenSecondLifeLinksInMap( true ), | 62 | mOpenLinksInInternalBrowser( false ), |
63 | mOpenSLURLsInMap( true ), | ||
64 | mOpenSLURLsViaTeleport( false ), | ||
59 | mHomePageUrl( "" ), | 65 | mHomePageUrl( "" ), |
60 | mIgnoreUIScale( true ), | 66 | mIgnoreUIScale( true ), |
61 | mAlwaysRefresh( false ) | 67 | mAlwaysRefresh( false ) |
@@ -132,17 +138,31 @@ void LLWebBrowserCtrl::setBorderVisible( BOOL border_visible ) | |||
132 | }; | 138 | }; |
133 | 139 | ||
134 | //////////////////////////////////////////////////////////////////////////////// | 140 | //////////////////////////////////////////////////////////////////////////////// |
135 | // allows access to the raw web browser window by consumers of this class | 141 | // set flag that forces the embedded browser to open links in the external system browser |
136 | void LLWebBrowserCtrl::setOpenInExternalBrowser( bool valIn ) | 142 | void LLWebBrowserCtrl::setOpenInExternalBrowser( bool valIn ) |
137 | { | 143 | { |
138 | mOpenLinksInExternalBrowser = valIn; | 144 | mOpenLinksInExternalBrowser = valIn; |
139 | }; | 145 | }; |
140 | 146 | ||
141 | //////////////////////////////////////////////////////////////////////////////// | 147 | //////////////////////////////////////////////////////////////////////////////// |
148 | // set flag that forces the embedded browser to open links in the internal browser floater | ||
149 | void LLWebBrowserCtrl::setOpenInInternalBrowser( bool valIn ) | ||
150 | { | ||
151 | mOpenLinksInInternalBrowser = valIn; | ||
152 | }; | ||
153 | |||
154 | //////////////////////////////////////////////////////////////////////////////// | ||
142 | // open secondlife:// links in map automatically or not | 155 | // open secondlife:// links in map automatically or not |
143 | void LLWebBrowserCtrl::setOpenSecondLifeLinksInMap( bool valIn ) | 156 | void LLWebBrowserCtrl::setOpenSLURLsInMap( bool valIn ) |
144 | { | 157 | { |
145 | mOpenSecondLifeLinksInMap = valIn; | 158 | mOpenSLURLsInMap = valIn; |
159 | }; | ||
160 | |||
161 | //////////////////////////////////////////////////////////////////////////////// | ||
162 | // teleport directly to secondlife:// links | ||
163 | void LLWebBrowserCtrl::setOpenSLURLsViaTeleport( bool valIn ) | ||
164 | { | ||
165 | mOpenSLURLsViaTeleport = valIn; | ||
146 | }; | 166 | }; |
147 | 167 | ||
148 | //////////////////////////////////////////////////////////////////////////////// | 168 | //////////////////////////////////////////////////////////////////////////////// |
@@ -345,6 +365,7 @@ bool LLWebBrowserCtrl::canNavigateForward() | |||
345 | void LLWebBrowserCtrl::navigateTo( std::string urlIn ) | 365 | void LLWebBrowserCtrl::navigateTo( std::string urlIn ) |
346 | { | 366 | { |
347 | const std::string protocol( "secondlife://" ); | 367 | const std::string protocol( "secondlife://" ); |
368 | const std::string protocol2( "sl://" ); | ||
348 | 369 | ||
349 | // don't browse to anything that starts with secondlife:// | 370 | // don't browse to anything that starts with secondlife:// |
350 | if ( urlIn.length() >= protocol.length() ) | 371 | if ( urlIn.length() >= protocol.length() ) |
@@ -354,6 +375,13 @@ void LLWebBrowserCtrl::navigateTo( std::string urlIn ) | |||
354 | LLMozLib::getInstance()->navigateTo( mEmbeddedBrowserWindowId, urlIn ); | 375 | LLMozLib::getInstance()->navigateTo( mEmbeddedBrowserWindowId, urlIn ); |
355 | } | 376 | } |
356 | } | 377 | } |
378 | else if ( urlIn.length() >= protocol2.length() ) | ||
379 | { | ||
380 | if ( LLString::compareInsensitive( urlIn.substr( 0, protocol2.length() ).c_str(), protocol2.c_str() ) != 0 ) | ||
381 | { | ||
382 | LLMozLib::getInstance()->navigateTo( mEmbeddedBrowserWindowId, urlIn ); | ||
383 | } | ||
384 | } | ||
357 | else | 385 | else |
358 | { | 386 | { |
359 | LLMozLib::getInstance()->navigateTo( mEmbeddedBrowserWindowId, urlIn ); | 387 | LLMozLib::getInstance()->navigateTo( mEmbeddedBrowserWindowId, urlIn ); |
@@ -512,9 +540,26 @@ void LLWebBrowserCtrl::onClickLinkHref( const EventType& eventIn ) | |||
512 | const std::string protocol( "http://" ); | 540 | const std::string protocol( "http://" ); |
513 | 541 | ||
514 | if( mOpenLinksInExternalBrowser ) | 542 | if( mOpenLinksInExternalBrowser ) |
543 | { | ||
515 | if ( eventIn.getStringValue().length() ) | 544 | if ( eventIn.getStringValue().length() ) |
545 | { | ||
516 | if ( LLString::compareInsensitive( eventIn.getStringValue().substr( 0, protocol.length() ).c_str(), protocol.c_str() ) == 0 ) | 546 | if ( LLString::compareInsensitive( eventIn.getStringValue().substr( 0, protocol.length() ).c_str(), protocol.c_str() ) == 0 ) |
547 | { | ||
517 | LLWeb::loadURL( eventIn.getStringValue() ); | 548 | LLWeb::loadURL( eventIn.getStringValue() ); |
549 | }; | ||
550 | }; | ||
551 | } | ||
552 | else | ||
553 | if( mOpenLinksInInternalBrowser ) | ||
554 | { | ||
555 | if ( eventIn.getStringValue().length() ) | ||
556 | { | ||
557 | if ( LLString::compareInsensitive( eventIn.getStringValue().substr( 0, protocol.length() ).c_str(), protocol.c_str() ) == 0 ) | ||
558 | { | ||
559 | LLFloaterHtml::getInstance()->show( eventIn.getStringValue(), "Second Life Browser"); | ||
560 | }; | ||
561 | }; | ||
562 | }; | ||
518 | 563 | ||
519 | // chain this event on to observers of an instance of LLWebBrowserCtrl | 564 | // chain this event on to observers of an instance of LLWebBrowserCtrl |
520 | LLWebBrowserCtrlEvent event( eventIn.getStringValue() ); | 565 | LLWebBrowserCtrlEvent event( eventIn.getStringValue() ); |
diff --git a/linden/indra/newview/llwebbrowserctrl.h b/linden/indra/newview/llwebbrowserctrl.h index 892345a..ec3ddfd 100644 --- a/linden/indra/newview/llwebbrowserctrl.h +++ b/linden/indra/newview/llwebbrowserctrl.h | |||
@@ -191,7 +191,9 @@ class LLWebBrowserCtrl : | |||
191 | bool canNavigateBack(); | 191 | bool canNavigateBack(); |
192 | bool canNavigateForward(); | 192 | bool canNavigateForward(); |
193 | void setOpenInExternalBrowser( bool valIn ); | 193 | void setOpenInExternalBrowser( bool valIn ); |
194 | void setOpenSecondLifeLinksInMap( bool valIn ); | 194 | void setOpenInInternalBrowser( bool valIn ); |
195 | void setOpenSLURLsInMap( bool valIn ); | ||
196 | void setOpenSLURLsViaTeleport( bool valIn ); | ||
195 | void setHomePageUrl( const std::string urlIn ); | 197 | void setHomePageUrl( const std::string urlIn ); |
196 | std::string getHomePageUrl(); | 198 | std::string getHomePageUrl(); |
197 | 199 | ||
@@ -240,7 +242,9 @@ class LLWebBrowserCtrl : | |||
240 | LLViewBorder* mBorder; | 242 | LLViewBorder* mBorder; |
241 | bool mFrequentUpdates; | 243 | bool mFrequentUpdates; |
242 | bool mOpenLinksInExternalBrowser; | 244 | bool mOpenLinksInExternalBrowser; |
243 | bool mOpenSecondLifeLinksInMap; | 245 | bool mOpenLinksInInternalBrowser; |
246 | bool mOpenSLURLsInMap; | ||
247 | bool mOpenSLURLsViaTeleport; | ||
244 | std::string mHomePageUrl; | 248 | std::string mHomePageUrl; |
245 | bool mIgnoreUIScale; | 249 | bool mIgnoreUIScale; |
246 | bool mAlwaysRefresh; | 250 | bool mAlwaysRefresh; |
diff --git a/linden/indra/newview/llworldmap.cpp b/linden/indra/newview/llworldmap.cpp index 16a8be7..6ba10ea 100644 --- a/linden/indra/newview/llworldmap.cpp +++ b/linden/indra/newview/llworldmap.cpp | |||
@@ -106,7 +106,11 @@ LLWorldMap::LLWorldMap() : | |||
106 | mNeighborMap(NULL), | 106 | mNeighborMap(NULL), |
107 | mTelehubCoverageMap(NULL), | 107 | mTelehubCoverageMap(NULL), |
108 | mNeighborMapWidth(0), | 108 | mNeighborMapWidth(0), |
109 | mNeighborMapHeight(0) | 109 | mNeighborMapHeight(0), |
110 | mSLURLRegionName(), | ||
111 | mSLURL(), | ||
112 | mSLURLCallback(0), | ||
113 | mSLURLTeleport(false) | ||
110 | { | 114 | { |
111 | for (S32 map=0; map<MAP_SIM_IMAGE_TYPES; ++map) | 115 | for (S32 map=0; map<MAP_SIM_IMAGE_TYPES; ++map) |
112 | { | 116 | { |
@@ -398,6 +402,19 @@ void LLWorldMap::sendNamedRegionRequest(std::string region_name) | |||
398 | msg->addStringFast(_PREHASH_Name, region_name); | 402 | msg->addStringFast(_PREHASH_Name, region_name); |
399 | gAgent.sendReliableMessage(); | 403 | gAgent.sendReliableMessage(); |
400 | } | 404 | } |
405 | // public | ||
406 | void LLWorldMap::sendNamedRegionRequest(std::string region_name, | ||
407 | url_callback_t callback, | ||
408 | const std::string& callback_url, | ||
409 | bool teleport) // immediately teleport when result returned | ||
410 | { | ||
411 | mSLURLRegionName = region_name; | ||
412 | mSLURL = callback_url; | ||
413 | mSLURLCallback = callback; | ||
414 | mSLURLTeleport = teleport; | ||
415 | |||
416 | sendNamedRegionRequest(region_name); | ||
417 | } | ||
401 | 418 | ||
402 | // public | 419 | // public |
403 | void LLWorldMap::sendMapBlockRequest(U16 min_x, U16 min_y, U16 max_x, U16 max_y, bool return_nonexistent) | 420 | void LLWorldMap::sendMapBlockRequest(U16 min_x, U16 min_y, U16 max_x, U16 max_y, bool return_nonexistent) |
@@ -532,6 +549,8 @@ void LLWorldMap::processMapBlockReply(LLMessageSystem* msg, void**) | |||
532 | U32 x_meters = x_regions * REGION_WIDTH_UNITS; | 549 | U32 x_meters = x_regions * REGION_WIDTH_UNITS; |
533 | U32 y_meters = y_regions * REGION_WIDTH_UNITS; | 550 | U32 y_meters = y_regions * REGION_WIDTH_UNITS; |
534 | 551 | ||
552 | U64 handle = to_region_handle(x_meters, y_meters); | ||
553 | |||
535 | if (access == 255) | 554 | if (access == 255) |
536 | { | 555 | { |
537 | // This region doesn't exist | 556 | // This region doesn't exist |
@@ -547,13 +566,23 @@ void LLWorldMap::processMapBlockReply(LLMessageSystem* msg, void**) | |||
547 | 566 | ||
548 | found_null_sim = true; | 567 | found_null_sim = true; |
549 | } | 568 | } |
569 | else if(gWorldMap->mSLURLCallback != NULL) | ||
570 | { | ||
571 | // Server returns definitive capitalization, SLURL might | ||
572 | // not have that. | ||
573 | if (!stricmp(gWorldMap->mSLURLRegionName.c_str(), name)) | ||
574 | { | ||
575 | gWorldMap->mSLURLCallback(handle, gWorldMap->mSLURL, image_id, gWorldMap->mSLURLTeleport); | ||
576 | gWorldMap->mSLURLCallback = NULL; | ||
577 | gWorldMap->mSLURLRegionName.clear(); | ||
578 | } | ||
579 | } | ||
550 | else | 580 | else |
551 | { | 581 | { |
552 | adjust = gWorldMap->extendAABB(x_meters, | 582 | adjust = gWorldMap->extendAABB(x_meters, |
553 | y_meters, | 583 | y_meters, |
554 | x_meters+REGION_WIDTH_UNITS, | 584 | x_meters+REGION_WIDTH_UNITS, |
555 | y_meters+REGION_WIDTH_UNITS) || adjust; | 585 | y_meters+REGION_WIDTH_UNITS) || adjust; |
556 | U64 handle = to_region_handle(x_meters, y_meters); | ||
557 | 586 | ||
558 | // llinfos << "Map sim " << name << " image layer " << agent_flags << " ID " << image_id.getString() << llendl; | 587 | // llinfos << "Map sim " << name << " image layer " << agent_flags << " ID " << image_id.getString() << llendl; |
559 | 588 | ||
@@ -614,6 +643,7 @@ void LLWorldMap::processMapBlockReply(LLMessageSystem* msg, void**) | |||
614 | } | 643 | } |
615 | } | 644 | } |
616 | } | 645 | } |
646 | |||
617 | if(adjust) gFloaterWorldMap->adjustZoomSliderBounds(); | 647 | if(adjust) gFloaterWorldMap->adjustZoomSliderBounds(); |
618 | gFloaterWorldMap->updateSims(found_null_sim); | 648 | gFloaterWorldMap->updateSims(found_null_sim); |
619 | } | 649 | } |
diff --git a/linden/indra/newview/llworldmap.h b/linden/indra/newview/llworldmap.h index 5b2b977..b0c6f35 100644 --- a/linden/indra/newview/llworldmap.h +++ b/linden/indra/newview/llworldmap.h | |||
@@ -113,6 +113,8 @@ struct LLWorldMapLayer | |||
113 | class LLWorldMap | 113 | class LLWorldMap |
114 | { | 114 | { |
115 | public: | 115 | public: |
116 | typedef void(*url_callback_t)(U64 region_handle, const std::string& url, const LLUUID& snapshot_id, bool teleport); | ||
117 | |||
116 | LLWorldMap(); | 118 | LLWorldMap(); |
117 | ~LLWorldMap(); | 119 | ~LLWorldMap(); |
118 | 120 | ||
@@ -147,6 +149,10 @@ public: | |||
147 | void sendMapLayerRequest(); | 149 | void sendMapLayerRequest(); |
148 | void sendMapBlockRequest(U16 min_x, U16 min_y, U16 max_x, U16 max_y, bool return_nonexistent = false); | 150 | void sendMapBlockRequest(U16 min_x, U16 min_y, U16 max_x, U16 max_y, bool return_nonexistent = false); |
149 | void sendNamedRegionRequest(std::string region_name); | 151 | void sendNamedRegionRequest(std::string region_name); |
152 | void sendNamedRegionRequest(std::string region_name, | ||
153 | url_callback_t callback, | ||
154 | const std::string& callback_url, | ||
155 | bool teleport); | ||
150 | void sendItemRequest(U32 type, U64 handle = 0); | 156 | void sendItemRequest(U32 type, U64 handle = 0); |
151 | 157 | ||
152 | static void processMapLayerReply(LLMessageSystem*, void**); | 158 | static void processMapLayerReply(LLMessageSystem*, void**); |
@@ -208,6 +214,12 @@ public: | |||
208 | 214 | ||
209 | private: | 215 | private: |
210 | LLTimer mRequestTimer; | 216 | LLTimer mRequestTimer; |
217 | |||
218 | // search for named region for url processing | ||
219 | std::string mSLURLRegionName; | ||
220 | std::string mSLURL; | ||
221 | url_callback_t mSLURLCallback; | ||
222 | bool mSLURLTeleport; | ||
211 | }; | 223 | }; |
212 | 224 | ||
213 | extern LLWorldMap* gWorldMap; | 225 | extern LLWorldMap* gWorldMap; |
diff --git a/linden/indra/newview/llworldmapview.cpp b/linden/indra/newview/llworldmapview.cpp index 48f1aac..dc68910 100644 --- a/linden/indra/newview/llworldmapview.cpp +++ b/linden/indra/newview/llworldmapview.cpp | |||
@@ -621,7 +621,9 @@ void LLWorldMapView::draw() | |||
621 | } | 621 | } |
622 | 622 | ||
623 | // If this is mature, and you are not, draw a line across it | 623 | // If this is mature, and you are not, draw a line across it |
624 | if (info->mAccess != SIM_ACCESS_DOWN && info->mAccess > gAgent.mAccess) | 624 | if (info->mAccess != SIM_ACCESS_DOWN |
625 | && info->mAccess > SIM_ACCESS_PG | ||
626 | && gAgent.isTeen()) | ||
625 | { | 627 | { |
626 | glBlendFunc(GL_DST_ALPHA, GL_ZERO); | 628 | glBlendFunc(GL_DST_ALPHA, GL_ZERO); |
627 | 629 | ||
diff --git a/linden/indra/newview/macview.xcodeproj/project.pbxproj b/linden/indra/newview/macview.xcodeproj/project.pbxproj index 4292995..549eb11 100644 --- a/linden/indra/newview/macview.xcodeproj/project.pbxproj +++ b/linden/indra/newview/macview.xcodeproj/project.pbxproj | |||
@@ -53,6 +53,10 @@ | |||
53 | 1A97C4560B8BCF9C00331A24 /* llliveappconfig.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A97C4540B8BCF9C00331A24 /* llliveappconfig.cpp */; }; | 53 | 1A97C4560B8BCF9C00331A24 /* llliveappconfig.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A97C4540B8BCF9C00331A24 /* llliveappconfig.cpp */; }; |
54 | 1A9897E90B98E2F4005C45D7 /* llbase32.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A9897E80B98E2F4005C45D7 /* llbase32.cpp */; }; | 54 | 1A9897E90B98E2F4005C45D7 /* llbase32.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A9897E80B98E2F4005C45D7 /* llbase32.cpp */; }; |
55 | 1A9EC237083EA0100023D510 /* llfloatereditui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A9EC236083EA0100023D510 /* llfloatereditui.cpp */; }; | 55 | 1A9EC237083EA0100023D510 /* llfloatereditui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A9EC236083EA0100023D510 /* llfloatereditui.cpp */; }; |
56 | 1AA2EE9E0CBBE2790017E185 /* llfloaterlandmark.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AA2EE9D0CBBE2790017E185 /* llfloaterlandmark.cpp */; }; | ||
57 | 1AA2EEA10CBBE28C0017E185 /* llclassifiedstatsresponder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AA2EEA00CBBE28C0017E185 /* llclassifiedstatsresponder.cpp */; }; | ||
58 | 1AA2EEA40CBBE2BF0017E185 /* llfloaterurldisplay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AA2EEA30CBBE2BF0017E185 /* llfloaterurldisplay.cpp */; }; | ||
59 | 1AA2EEA70CBBE2D40017E185 /* llremoteparcelrequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AA2EEA60CBBE2D40017E185 /* llremoteparcelrequest.cpp */; }; | ||
56 | 1AD394100CAB000F004BA76A /* llurlsimstring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AD3940E0CAB000F004BA76A /* llurlsimstring.cpp */; }; | 60 | 1AD394100CAB000F004BA76A /* llurlsimstring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AD3940E0CAB000F004BA76A /* llurlsimstring.cpp */; }; |
57 | 1AD394110CAB000F004BA76A /* llurldispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AD3940F0CAB000F004BA76A /* llurldispatcher.cpp */; }; | 61 | 1AD394110CAB000F004BA76A /* llurldispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AD3940F0CAB000F004BA76A /* llurldispatcher.cpp */; }; |
58 | 1AD394130CAB001B004BA76A /* llcommandhandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AD394120CAB001B004BA76A /* llcommandhandler.cpp */; }; | 62 | 1AD394130CAB001B004BA76A /* llcommandhandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AD394120CAB001B004BA76A /* llcommandhandler.cpp */; }; |
@@ -707,6 +711,10 @@ | |||
707 | FDE8766409BEA3C700AF6316 /* libvorbisenc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FDE8765609BEA39600AF6316 /* libvorbisenc.a */; }; | 711 | FDE8766409BEA3C700AF6316 /* libvorbisenc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FDE8765609BEA39600AF6316 /* libvorbisenc.a */; }; |
708 | FDE8766509BEA3C700AF6316 /* libvorbisfile.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FDE8765709BEA39600AF6316 /* libvorbisfile.a */; }; | 712 | FDE8766509BEA3C700AF6316 /* libvorbisfile.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FDE8765709BEA39600AF6316 /* libvorbisfile.a */; }; |
709 | FDE8766609BEA3C800AF6316 /* libxmlrpc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FDE8765809BEA39700AF6316 /* libxmlrpc.a */; }; | 713 | FDE8766609BEA3C800AF6316 /* libxmlrpc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FDE8765809BEA39700AF6316 /* libxmlrpc.a */; }; |
714 | FE5138790CD80BAE00F32EE3 /* lldebugmessagebox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5138700CD80BAE00F32EE3 /* lldebugmessagebox.cpp */; }; | ||
715 | FE51387B0CD80BAE00F32EE3 /* llfloaterclassified.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5138730CD80BAE00F32EE3 /* llfloaterclassified.cpp */; }; | ||
716 | FE51387C0CD80BAE00F32EE3 /* llfloaterevent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5138750CD80BAE00F32EE3 /* llfloaterevent.cpp */; }; | ||
717 | FE51387D0CD80BAE00F32EE3 /* llfloaterparcel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5138770CD80BAE00F32EE3 /* llfloaterparcel.cpp */; }; | ||
710 | /* End PBXBuildFile section */ | 718 | /* End PBXBuildFile section */ |
711 | 719 | ||
712 | /* Begin PBXBuildRule section */ | 720 | /* Begin PBXBuildRule section */ |
@@ -901,6 +909,14 @@ | |||
901 | 1A9897E80B98E2F4005C45D7 /* llbase32.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llbase32.cpp; sourceTree = "<group>"; }; | 909 | 1A9897E80B98E2F4005C45D7 /* llbase32.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llbase32.cpp; sourceTree = "<group>"; }; |
902 | 1A9EC236083EA0100023D510 /* llfloatereditui.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llfloatereditui.cpp; sourceTree = "<group>"; }; | 910 | 1A9EC236083EA0100023D510 /* llfloatereditui.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llfloatereditui.cpp; sourceTree = "<group>"; }; |
903 | 1A9EC23A083EA01F0023D510 /* llfloatereditui.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfloatereditui.h; sourceTree = "<group>"; }; | 911 | 1A9EC23A083EA01F0023D510 /* llfloatereditui.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfloatereditui.h; sourceTree = "<group>"; }; |
912 | 1AA2EE9C0CBBE2790017E185 /* llfloaterlandmark.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfloaterlandmark.h; sourceTree = "<group>"; }; | ||
913 | 1AA2EE9D0CBBE2790017E185 /* llfloaterlandmark.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llfloaterlandmark.cpp; sourceTree = "<group>"; }; | ||
914 | 1AA2EE9F0CBBE28C0017E185 /* llclassifiedstatsresponder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llclassifiedstatsresponder.h; sourceTree = "<group>"; }; | ||
915 | 1AA2EEA00CBBE28C0017E185 /* llclassifiedstatsresponder.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llclassifiedstatsresponder.cpp; sourceTree = "<group>"; }; | ||
916 | 1AA2EEA20CBBE2BF0017E185 /* llfloaterurldisplay.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfloaterurldisplay.h; sourceTree = "<group>"; }; | ||
917 | 1AA2EEA30CBBE2BF0017E185 /* llfloaterurldisplay.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llfloaterurldisplay.cpp; sourceTree = "<group>"; }; | ||
918 | 1AA2EEA50CBBE2D40017E185 /* llremoteparcelrequest.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llremoteparcelrequest.h; sourceTree = "<group>"; }; | ||
919 | 1AA2EEA60CBBE2D40017E185 /* llremoteparcelrequest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llremoteparcelrequest.cpp; sourceTree = "<group>"; }; | ||
904 | 1AB0DADC0A52E8A0001CACEB /* message_template.msg */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = message_template.msg; path = ../../scripts/messages/message_template.msg; sourceTree = SOURCE_ROOT; }; | 920 | 1AB0DADC0A52E8A0001CACEB /* message_template.msg */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = message_template.msg; path = ../../scripts/messages/message_template.msg; sourceTree = SOURCE_ROOT; }; |
905 | 1AD3940C0CAB0003004BA76A /* llurlsimstring.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llurlsimstring.h; sourceTree = "<group>"; }; | 921 | 1AD3940C0CAB0003004BA76A /* llurlsimstring.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llurlsimstring.h; sourceTree = "<group>"; }; |
906 | 1AD3940D0CAB0003004BA76A /* llurldispatcher.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llurldispatcher.h; sourceTree = "<group>"; }; | 922 | 1AD3940D0CAB0003004BA76A /* llurldispatcher.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llurldispatcher.h; sourceTree = "<group>"; }; |
@@ -1904,7 +1920,7 @@ | |||
1904 | 99BB5174099AC2A4004BF9F2 /* llconfirmationmanager.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llconfirmationmanager.cpp; sourceTree = SOURCE_ROOT; }; | 1920 | 99BB5174099AC2A4004BF9F2 /* llconfirmationmanager.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llconfirmationmanager.cpp; sourceTree = SOURCE_ROOT; }; |
1905 | 99BB5175099AC2A4004BF9F2 /* llconfirmationmanager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llconfirmationmanager.h; sourceTree = SOURCE_ROOT; }; | 1921 | 99BB5175099AC2A4004BF9F2 /* llconfirmationmanager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llconfirmationmanager.h; sourceTree = SOURCE_ROOT; }; |
1906 | 99C9FA660B6AD9BF00A1BBA6 /* SLVoice */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = SLVoice; path = "vivox-runtime/universal-darwin/SLVoice"; sourceTree = SOURCE_ROOT; }; | 1922 | 99C9FA660B6AD9BF00A1BBA6 /* SLVoice */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = SLVoice; path = "vivox-runtime/universal-darwin/SLVoice"; sourceTree = SOURCE_ROOT; }; |
1907 | 99D5703305BDEFD7004DE704 /* AutoUpdater.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = AutoUpdater.app; sourceTree = BUILT_PRODUCTS_DIR; }; | 1923 | 99D5703305BDEFD7004DE704 /* AutoUpdater.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AutoUpdater.app; sourceTree = BUILT_PRODUCTS_DIR; }; |
1908 | 99D5703505BDEFD8004DE704 /* AutoUpdater-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = "AutoUpdater-Info.plist"; sourceTree = SOURCE_ROOT; }; | 1924 | 99D5703505BDEFD8004DE704 /* AutoUpdater-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = "AutoUpdater-Info.plist"; sourceTree = SOURCE_ROOT; }; |
1909 | 99D8B25508735BFE002F8938 /* material_codes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = material_codes.h; sourceTree = "<group>"; }; | 1925 | 99D8B25508735BFE002F8938 /* material_codes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = material_codes.h; sourceTree = "<group>"; }; |
1910 | 99DB67DA07C161A500CF3185 /* llmediaimplquicktime.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llmediaimplquicktime.h; sourceTree = "<group>"; }; | 1926 | 99DB67DA07C161A500CF3185 /* llmediaimplquicktime.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llmediaimplquicktime.h; sourceTree = "<group>"; }; |
@@ -2209,6 +2225,15 @@ | |||
2209 | FDE8765609BEA39600AF6316 /* libvorbisenc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libvorbisenc.a; sourceTree = BUILT_PRODUCTS_DIR; }; | 2225 | FDE8765609BEA39600AF6316 /* libvorbisenc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libvorbisenc.a; sourceTree = BUILT_PRODUCTS_DIR; }; |
2210 | FDE8765709BEA39600AF6316 /* libvorbisfile.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libvorbisfile.a; sourceTree = BUILT_PRODUCTS_DIR; }; | 2226 | FDE8765709BEA39600AF6316 /* libvorbisfile.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libvorbisfile.a; sourceTree = BUILT_PRODUCTS_DIR; }; |
2211 | FDE8765809BEA39700AF6316 /* libxmlrpc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libxmlrpc.a; sourceTree = BUILT_PRODUCTS_DIR; }; | 2227 | FDE8765809BEA39700AF6316 /* libxmlrpc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libxmlrpc.a; sourceTree = BUILT_PRODUCTS_DIR; }; |
2228 | FE51386F0CD80BAE00F32EE3 /* llclassifiedinfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llclassifiedinfo.h; sourceTree = "<group>"; }; | ||
2229 | FE5138700CD80BAE00F32EE3 /* lldebugmessagebox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lldebugmessagebox.cpp; sourceTree = "<group>"; }; | ||
2230 | FE5138710CD80BAE00F32EE3 /* lldebugmessagebox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lldebugmessagebox.h; sourceTree = "<group>"; }; | ||
2231 | FE5138730CD80BAE00F32EE3 /* llfloaterclassified.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llfloaterclassified.cpp; sourceTree = "<group>"; }; | ||
2232 | FE5138740CD80BAE00F32EE3 /* llfloaterclassified.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfloaterclassified.h; sourceTree = "<group>"; }; | ||
2233 | FE5138750CD80BAE00F32EE3 /* llfloaterevent.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llfloaterevent.cpp; sourceTree = "<group>"; }; | ||
2234 | FE5138760CD80BAE00F32EE3 /* llfloaterevent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfloaterevent.h; sourceTree = "<group>"; }; | ||
2235 | FE5138770CD80BAE00F32EE3 /* llfloaterparcel.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llfloaterparcel.cpp; sourceTree = "<group>"; }; | ||
2236 | FE5138780CD80BAE00F32EE3 /* llfloaterparcel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfloaterparcel.h; sourceTree = "<group>"; }; | ||
2212 | /* End PBXFileReference section */ | 2237 | /* End PBXFileReference section */ |
2213 | 2238 | ||
2214 | /* Begin PBXFrameworksBuildPhase section */ | 2239 | /* Begin PBXFrameworksBuildPhase section */ |
@@ -2394,6 +2419,23 @@ | |||
2394 | 26F529A0051F61CD00A80050 /* newview */ = { | 2419 | 26F529A0051F61CD00A80050 /* newview */ = { |
2395 | isa = PBXGroup; | 2420 | isa = PBXGroup; |
2396 | children = ( | 2421 | children = ( |
2422 | FE51386F0CD80BAE00F32EE3 /* llclassifiedinfo.h */, | ||
2423 | FE5138700CD80BAE00F32EE3 /* lldebugmessagebox.cpp */, | ||
2424 | FE5138710CD80BAE00F32EE3 /* lldebugmessagebox.h */, | ||
2425 | FE5138730CD80BAE00F32EE3 /* llfloaterclassified.cpp */, | ||
2426 | FE5138740CD80BAE00F32EE3 /* llfloaterclassified.h */, | ||
2427 | FE5138750CD80BAE00F32EE3 /* llfloaterevent.cpp */, | ||
2428 | FE5138760CD80BAE00F32EE3 /* llfloaterevent.h */, | ||
2429 | FE5138770CD80BAE00F32EE3 /* llfloaterparcel.cpp */, | ||
2430 | FE5138780CD80BAE00F32EE3 /* llfloaterparcel.h */, | ||
2431 | 1AA2EEA50CBBE2D40017E185 /* llremoteparcelrequest.h */, | ||
2432 | 1AA2EEA60CBBE2D40017E185 /* llremoteparcelrequest.cpp */, | ||
2433 | 1AA2EEA20CBBE2BF0017E185 /* llfloaterurldisplay.h */, | ||
2434 | 1AA2EEA30CBBE2BF0017E185 /* llfloaterurldisplay.cpp */, | ||
2435 | 1AA2EE9F0CBBE28C0017E185 /* llclassifiedstatsresponder.h */, | ||
2436 | 1AA2EEA00CBBE28C0017E185 /* llclassifiedstatsresponder.cpp */, | ||
2437 | 1AA2EE9C0CBBE2790017E185 /* llfloaterlandmark.h */, | ||
2438 | 1AA2EE9D0CBBE2790017E185 /* llfloaterlandmark.cpp */, | ||
2397 | 1AD394120CAB001B004BA76A /* llcommandhandler.cpp */, | 2439 | 1AD394120CAB001B004BA76A /* llcommandhandler.cpp */, |
2398 | 1AD3940E0CAB000F004BA76A /* llurlsimstring.cpp */, | 2440 | 1AD3940E0CAB000F004BA76A /* llurlsimstring.cpp */, |
2399 | 1AD3940F0CAB000F004BA76A /* llurldispatcher.cpp */, | 2441 | 1AD3940F0CAB000F004BA76A /* llurldispatcher.cpp */, |
@@ -4646,6 +4688,14 @@ | |||
4646 | 1AD394100CAB000F004BA76A /* llurlsimstring.cpp in Sources */, | 4688 | 1AD394100CAB000F004BA76A /* llurlsimstring.cpp in Sources */, |
4647 | 1AD394110CAB000F004BA76A /* llurldispatcher.cpp in Sources */, | 4689 | 1AD394110CAB000F004BA76A /* llurldispatcher.cpp in Sources */, |
4648 | 1AD394130CAB001B004BA76A /* llcommandhandler.cpp in Sources */, | 4690 | 1AD394130CAB001B004BA76A /* llcommandhandler.cpp in Sources */, |
4691 | 1AA2EE9E0CBBE2790017E185 /* llfloaterlandmark.cpp in Sources */, | ||
4692 | 1AA2EEA10CBBE28C0017E185 /* llclassifiedstatsresponder.cpp in Sources */, | ||
4693 | 1AA2EEA40CBBE2BF0017E185 /* llfloaterurldisplay.cpp in Sources */, | ||
4694 | 1AA2EEA70CBBE2D40017E185 /* llremoteparcelrequest.cpp in Sources */, | ||
4695 | FE5138790CD80BAE00F32EE3 /* lldebugmessagebox.cpp in Sources */, | ||
4696 | FE51387B0CD80BAE00F32EE3 /* llfloaterclassified.cpp in Sources */, | ||
4697 | FE51387C0CD80BAE00F32EE3 /* llfloaterevent.cpp in Sources */, | ||
4698 | FE51387D0CD80BAE00F32EE3 /* llfloaterparcel.cpp in Sources */, | ||
4649 | ); | 4699 | ); |
4650 | runOnlyForDeploymentPostprocessing = 0; | 4700 | runOnlyForDeploymentPostprocessing = 0; |
4651 | }; | 4701 | }; |
diff --git a/linden/indra/newview/newview.vcproj b/linden/indra/newview/newview.vcproj index 6fda220..075fdcb 100644 --- a/linden/indra/newview/newview.vcproj +++ b/linden/indra/newview/newview.vcproj | |||
@@ -20,7 +20,7 @@ | |||
20 | <Tool | 20 | <Tool |
21 | Name="VCCLCompilerTool" | 21 | Name="VCCLCompilerTool" |
22 | Optimization="0" | 22 | Optimization="0" |
23 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include;..\..\libraries\include\zlib;"..\..\libraries\i686-win32\include\quicktime"" | 23 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include;..\..\libraries\include\zlib;"..\..\libraries\i686-win32\include\quicktime";..\..\libraries\include\Logitech_LCD;..\..\libraries\include\Logitech_LCD\LCDUI" |
24 | PreprocessorDefinitions="WIN32;_DEBUG;LL_WINDOWS;LL_DEBUG;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" | 24 | PreprocessorDefinitions="WIN32;_DEBUG;LL_WINDOWS;LL_DEBUG;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" |
25 | MinimalRebuild="FALSE" | 25 | MinimalRebuild="FALSE" |
26 | BasicRuntimeChecks="3" | 26 | BasicRuntimeChecks="3" |
@@ -86,7 +86,7 @@ | |||
86 | EnableIntrinsicFunctions="TRUE" | 86 | EnableIntrinsicFunctions="TRUE" |
87 | OptimizeForProcessor="3" | 87 | OptimizeForProcessor="3" |
88 | OptimizeForWindowsApplication="TRUE" | 88 | OptimizeForWindowsApplication="TRUE" |
89 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include;..\..\libraries\include\zlib;"..\..\libraries\i686-win32\include\quicktime"" | 89 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include;..\..\libraries\include\zlib;"..\..\libraries\i686-win32\include\quicktime";..\..\libraries\include\Logitech_LCD;..\..\libraries\include\Logitech_LCD\LCDUI" |
90 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;LL_RELEASE;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" | 90 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;LL_RELEASE;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" |
91 | StringPooling="TRUE" | 91 | StringPooling="TRUE" |
92 | RuntimeLibrary="0" | 92 | RuntimeLibrary="0" |
@@ -102,7 +102,7 @@ | |||
102 | Name="VCCustomBuildTool"/> | 102 | Name="VCCustomBuildTool"/> |
103 | <Tool | 103 | <Tool |
104 | Name="VCLinkerTool" | 104 | Name="VCLinkerTool" |
105 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc71-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib" | 105 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc71-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib EZ_LCD_Wrapper.lib lgLcd.lib" |
106 | OutputFile="$(ConfigurationName)/newview.exe" | 106 | OutputFile="$(ConfigurationName)/newview.exe" |
107 | LinkIncremental="2" | 107 | LinkIncremental="2" |
108 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" | 108 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" |
@@ -146,7 +146,7 @@ | |||
146 | CharacterSet="1"> | 146 | CharacterSet="1"> |
147 | <Tool | 147 | <Tool |
148 | Name="VCCLCompilerTool" | 148 | Name="VCCLCompilerTool" |
149 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include;..\..\libraries\include\zlib;"..\..\libraries\i686-win32\include\quicktime"" | 149 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include;..\..\libraries\include\zlib;"..\..\libraries\i686-win32\include\quicktime";..\..\libraries\include\Logitech_LCD;..\..\libraries\include\Logitech_LCD\LCDUI" |
150 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;LL_RELEASE;LL_RELEASE_FOR_DOWNLOAD;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" | 150 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;LL_RELEASE;LL_RELEASE_FOR_DOWNLOAD;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" |
151 | RuntimeLibrary="0" | 151 | RuntimeLibrary="0" |
152 | StructMemberAlignment="0" | 152 | StructMemberAlignment="0" |
@@ -164,7 +164,7 @@ | |||
164 | Outputs="$(TargetFileName)"/> | 164 | Outputs="$(TargetFileName)"/> |
165 | <Tool | 165 | <Tool |
166 | Name="VCLinkerTool" | 166 | Name="VCLinkerTool" |
167 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc71-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib" | 167 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc71-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib EZ_LCD_Wrapper.lib lgLcd.lib" |
168 | OutputFile="$(ConfigurationName)/SecondLife.exe" | 168 | OutputFile="$(ConfigurationName)/SecondLife.exe" |
169 | LinkIncremental="0" | 169 | LinkIncremental="0" |
170 | AdditionalLibraryDirectories=""../lib_release/i686-win32";"../../libraries/i686-win32/lib_release"" | 170 | AdditionalLibraryDirectories=""../lib_release/i686-win32";"../../libraries/i686-win32/lib_release"" |
@@ -209,7 +209,7 @@ | |||
209 | <Tool | 209 | <Tool |
210 | Name="VCCLCompilerTool" | 210 | Name="VCCLCompilerTool" |
211 | Optimization="0" | 211 | Optimization="0" |
212 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include;..\..\libraries\include\zlib;"..\..\libraries\i686-win32\include\quicktime"" | 212 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include;..\..\libraries\include\zlib;"..\..\libraries\i686-win32\include\quicktime";..\..\libraries\include\Logitech_LCD;..\..\libraries\include\Logitech_LCD\LCDUI" |
213 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;LL_RELEASE;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" | 213 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;LL_RELEASE;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" |
214 | RuntimeLibrary="0" | 214 | RuntimeLibrary="0" |
215 | StructMemberAlignment="0" | 215 | StructMemberAlignment="0" |
@@ -224,7 +224,7 @@ | |||
224 | Name="VCCustomBuildTool"/> | 224 | Name="VCCustomBuildTool"/> |
225 | <Tool | 225 | <Tool |
226 | Name="VCLinkerTool" | 226 | Name="VCLinkerTool" |
227 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc71-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llmozlib.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib" | 227 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc71-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llmozlib.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib EZ_LCD_Wrapper.lib lgLcd.lib" |
228 | OutputFile="$(ConfigurationName)/newview_noopt.exe" | 228 | OutputFile="$(ConfigurationName)/newview_noopt.exe" |
229 | LinkIncremental="2" | 229 | LinkIncremental="2" |
230 | AdditionalLibraryDirectories=""../lib_releasenoopt/i686-win32";"../../libraries/i686-win32/lib_release"" | 230 | AdditionalLibraryDirectories=""../lib_releasenoopt/i686-win32";"../../libraries/i686-win32/lib_release"" |
@@ -322,6 +322,9 @@ | |||
322 | RelativePath=".\llclassifiedinfo.cpp"> | 322 | RelativePath=".\llclassifiedinfo.cpp"> |
323 | </File> | 323 | </File> |
324 | <File | 324 | <File |
325 | RelativePath=".\llclassifiedstatsresponder.cpp"> | ||
326 | </File> | ||
327 | <File | ||
325 | RelativePath=".\llcloud.cpp"> | 328 | RelativePath=".\llcloud.cpp"> |
326 | </File> | 329 | </File> |
327 | <File | 330 | <File |
@@ -490,6 +493,9 @@ | |||
490 | RelativePath=".\llfloaterchatterbox.cpp"> | 493 | RelativePath=".\llfloaterchatterbox.cpp"> |
491 | </File> | 494 | </File> |
492 | <File | 495 | <File |
496 | RelativePath=".\llfloaterclassified.cpp"> | ||
497 | </File> | ||
498 | <File | ||
493 | RelativePath=".\llfloaterclothing.cpp"> | 499 | RelativePath=".\llfloaterclothing.cpp"> |
494 | </File> | 500 | </File> |
495 | <File | 501 | <File |
@@ -505,6 +511,9 @@ | |||
505 | RelativePath=".\llfloatereditui.cpp"> | 511 | RelativePath=".\llfloatereditui.cpp"> |
506 | </File> | 512 | </File> |
507 | <File | 513 | <File |
514 | RelativePath=".\llfloaterevent.cpp"> | ||
515 | </File> | ||
516 | <File | ||
508 | RelativePath=".\llfloaterfriends.cpp"> | 517 | RelativePath=".\llfloaterfriends.cpp"> |
509 | </File> | 518 | </File> |
510 | <File | 519 | <File |
@@ -547,6 +556,9 @@ | |||
547 | RelativePath=".\llfloaterlandholdings.cpp"> | 556 | RelativePath=".\llfloaterlandholdings.cpp"> |
548 | </File> | 557 | </File> |
549 | <File | 558 | <File |
559 | RelativePath=".\llfloaterlandmark.cpp"> | ||
560 | </File> | ||
561 | <File | ||
550 | RelativePath=".\llfloatermap.cpp"> | 562 | RelativePath=".\llfloatermap.cpp"> |
551 | </File> | 563 | </File> |
552 | <File | 564 | <File |
@@ -562,6 +574,9 @@ | |||
562 | RelativePath=".\llfloateropenobject.cpp"> | 574 | RelativePath=".\llfloateropenobject.cpp"> |
563 | </File> | 575 | </File> |
564 | <File | 576 | <File |
577 | RelativePath=".\llfloaterparcel.cpp"> | ||
578 | </File> | ||
579 | <File | ||
565 | RelativePath=".\llfloaterpermissionsmgr.cpp"> | 580 | RelativePath=".\llfloaterpermissionsmgr.cpp"> |
566 | </File> | 581 | </File> |
567 | <File | 582 | <File |
@@ -610,6 +625,9 @@ | |||
610 | RelativePath=".\llfloatertos.cpp"> | 625 | RelativePath=".\llfloatertos.cpp"> |
611 | </File> | 626 | </File> |
612 | <File | 627 | <File |
628 | RelativePath=".\llfloaterurldisplay.cpp"> | ||
629 | </File> | ||
630 | <File | ||
613 | RelativePath=".\llfloatervoicewizard.cpp"> | 631 | RelativePath=".\llfloatervoicewizard.cpp"> |
614 | </File> | 632 | </File> |
615 | <File | 633 | <File |
@@ -718,6 +736,9 @@ | |||
718 | RelativePath=".\lllandmarklist.cpp"> | 736 | RelativePath=".\lllandmarklist.cpp"> |
719 | </File> | 737 | </File> |
720 | <File | 738 | <File |
739 | RelativePath=".\lllcd.cpp"> | ||
740 | </File> | ||
741 | <File | ||
721 | RelativePath=".\lllocalanimationobject.cpp"> | 742 | RelativePath=".\lllocalanimationobject.cpp"> |
722 | </File> | 743 | </File> |
723 | <File | 744 | <File |
@@ -868,6 +889,9 @@ | |||
868 | RelativePath=".\llpanellandoptions.cpp"> | 889 | RelativePath=".\llpanellandoptions.cpp"> |
869 | </File> | 890 | </File> |
870 | <File | 891 | <File |
892 | RelativePath=".\llpanelLCD.cpp"> | ||
893 | </File> | ||
894 | <File | ||
871 | RelativePath=".\llpanellogin.cpp"> | 895 | RelativePath=".\llpanellogin.cpp"> |
872 | </File> | 896 | </File> |
873 | <File | 897 | <File |
@@ -946,6 +970,9 @@ | |||
946 | RelativePath=".\llregionposition.cpp"> | 970 | RelativePath=".\llregionposition.cpp"> |
947 | </File> | 971 | </File> |
948 | <File | 972 | <File |
973 | RelativePath=".\llremoteparcelrequest.cpp"> | ||
974 | </File> | ||
975 | <File | ||
949 | RelativePath=".\llroam.cpp"> | 976 | RelativePath=".\llroam.cpp"> |
950 | </File> | 977 | </File> |
951 | <File | 978 | <File |
@@ -1430,6 +1457,9 @@ | |||
1430 | RelativePath=".\llclassifiedinfo.h"> | 1457 | RelativePath=".\llclassifiedinfo.h"> |
1431 | </File> | 1458 | </File> |
1432 | <File | 1459 | <File |
1460 | RelativePath=".\llclassifiedstatsresponder.h"> | ||
1461 | </File> | ||
1462 | <File | ||
1433 | RelativePath=".\llcloud.h"> | 1463 | RelativePath=".\llcloud.h"> |
1434 | </File> | 1464 | </File> |
1435 | <File | 1465 | <File |
@@ -1598,6 +1628,9 @@ | |||
1598 | RelativePath=".\llfloaterchatterbox.h"> | 1628 | RelativePath=".\llfloaterchatterbox.h"> |
1599 | </File> | 1629 | </File> |
1600 | <File | 1630 | <File |
1631 | RelativePath=".\llfloaterclassified.h"> | ||
1632 | </File> | ||
1633 | <File | ||
1601 | RelativePath=".\llfloaterclothing.h"> | 1634 | RelativePath=".\llfloaterclothing.h"> |
1602 | </File> | 1635 | </File> |
1603 | <File | 1636 | <File |
@@ -1613,6 +1646,9 @@ | |||
1613 | RelativePath=".\llfloatereditui.h"> | 1646 | RelativePath=".\llfloatereditui.h"> |
1614 | </File> | 1647 | </File> |
1615 | <File | 1648 | <File |
1649 | RelativePath=".\llfloaterevent.h"> | ||
1650 | </File> | ||
1651 | <File | ||
1616 | RelativePath=".\llfloaterfriends.h"> | 1652 | RelativePath=".\llfloaterfriends.h"> |
1617 | </File> | 1653 | </File> |
1618 | <File | 1654 | <File |
@@ -1655,6 +1691,9 @@ | |||
1655 | RelativePath=".\llfloaterlandholdings.h"> | 1691 | RelativePath=".\llfloaterlandholdings.h"> |
1656 | </File> | 1692 | </File> |
1657 | <File | 1693 | <File |
1694 | RelativePath=".\llfloaterlandmark.h"> | ||
1695 | </File> | ||
1696 | <File | ||
1658 | RelativePath=".\llfloatermap.h"> | 1697 | RelativePath=".\llfloatermap.h"> |
1659 | </File> | 1698 | </File> |
1660 | <File | 1699 | <File |
@@ -1670,6 +1709,9 @@ | |||
1670 | RelativePath=".\llfloateropenobject.h"> | 1709 | RelativePath=".\llfloateropenobject.h"> |
1671 | </File> | 1710 | </File> |
1672 | <File | 1711 | <File |
1712 | RelativePath=".\llfloaterparcel.h"> | ||
1713 | </File> | ||
1714 | <File | ||
1673 | RelativePath=".\llfloaterpermissionsmgr.h"> | 1715 | RelativePath=".\llfloaterpermissionsmgr.h"> |
1674 | </File> | 1716 | </File> |
1675 | <File | 1717 | <File |
@@ -1715,6 +1757,9 @@ | |||
1715 | RelativePath=".\llfloatertos.h"> | 1757 | RelativePath=".\llfloatertos.h"> |
1716 | </File> | 1758 | </File> |
1717 | <File | 1759 | <File |
1760 | RelativePath=".\llfloaterurldisplay.h"> | ||
1761 | </File> | ||
1762 | <File | ||
1718 | RelativePath=".\llfloatervoicewizard.h"> | 1763 | RelativePath=".\llfloatervoicewizard.h"> |
1719 | </File> | 1764 | </File> |
1720 | <File | 1765 | <File |
@@ -1817,6 +1862,9 @@ | |||
1817 | RelativePath=".\lllandmarklist.h"> | 1862 | RelativePath=".\lllandmarklist.h"> |
1818 | </File> | 1863 | </File> |
1819 | <File | 1864 | <File |
1865 | RelativePath=".\lllcd.h"> | ||
1866 | </File> | ||
1867 | <File | ||
1820 | RelativePath=".\lllightconstants.h"> | 1868 | RelativePath=".\lllightconstants.h"> |
1821 | </File> | 1869 | </File> |
1822 | <File | 1870 | <File |
@@ -1970,6 +2018,9 @@ | |||
1970 | RelativePath=".\llpanellandoptions.h"> | 2018 | RelativePath=".\llpanellandoptions.h"> |
1971 | </File> | 2019 | </File> |
1972 | <File | 2020 | <File |
2021 | RelativePath=".\llpanelLCD.h"> | ||
2022 | </File> | ||
2023 | <File | ||
1973 | RelativePath=".\llpanellogin.h"> | 2024 | RelativePath=".\llpanellogin.h"> |
1974 | </File> | 2025 | </File> |
1975 | <File | 2026 | <File |
@@ -2054,6 +2105,9 @@ | |||
2054 | RelativePath=".\llregionposition.h"> | 2105 | RelativePath=".\llregionposition.h"> |
2055 | </File> | 2106 | </File> |
2056 | <File | 2107 | <File |
2108 | RelativePath=".\llremoteparcelrequest.h"> | ||
2109 | </File> | ||
2110 | <File | ||
2057 | RelativePath=".\llresourcedata.h"> | 2111 | RelativePath=".\llresourcedata.h"> |
2058 | </File> | 2112 | </File> |
2059 | <File | 2113 | <File |
@@ -2626,9 +2680,15 @@ | |||
2626 | RelativePath=".\skins\xui\en-us\floater_preview_animation.xml"> | 2680 | RelativePath=".\skins\xui\en-us\floater_preview_animation.xml"> |
2627 | </File> | 2681 | </File> |
2628 | <File | 2682 | <File |
2683 | RelativePath=".\skins\xui\en-us\floater_preview_classified.xml"> | ||
2684 | </File> | ||
2685 | <File | ||
2629 | RelativePath=".\skins\xui\en-us\floater_preview_embedded_texture.xml"> | 2686 | RelativePath=".\skins\xui\en-us\floater_preview_embedded_texture.xml"> |
2630 | </File> | 2687 | </File> |
2631 | <File | 2688 | <File |
2689 | RelativePath=".\skins\xui\en-us\floater_preview_event.xml"> | ||
2690 | </File> | ||
2691 | <File | ||
2632 | RelativePath=".\skins\xui\en-us\floater_preview_existing_landmark.xml"> | 2692 | RelativePath=".\skins\xui\en-us\floater_preview_existing_landmark.xml"> |
2633 | </File> | 2693 | </File> |
2634 | <File | 2694 | <File |
@@ -2653,6 +2713,9 @@ | |||
2653 | RelativePath=".\skins\xui\en-us\floater_preview_texture_keep_discard.xml"> | 2713 | RelativePath=".\skins\xui\en-us\floater_preview_texture_keep_discard.xml"> |
2654 | </File> | 2714 | </File> |
2655 | <File | 2715 | <File |
2716 | RelativePath=".\skins\xui\en-us\floater_preview_url.xml"> | ||
2717 | </File> | ||
2718 | <File | ||
2656 | RelativePath=".\skins\xui\en-us\floater_price_for_listing.xml"> | 2719 | RelativePath=".\skins\xui\en-us\floater_price_for_listing.xml"> |
2657 | </File> | 2720 | </File> |
2658 | <File | 2721 | <File |
@@ -3169,6 +3232,9 @@ | |||
3169 | Outputs="./app_settings/message_template.msg"/> | 3232 | Outputs="./app_settings/message_template.msg"/> |
3170 | </FileConfiguration> | 3233 | </FileConfiguration> |
3171 | </File> | 3234 | </File> |
3235 | <File | ||
3236 | RelativePath=".\skins\textures\textures.xml"> | ||
3237 | </File> | ||
3172 | </Files> | 3238 | </Files> |
3173 | <Globals> | 3239 | <Globals> |
3174 | </Globals> | 3240 | </Globals> |
diff --git a/linden/indra/newview/newview_vc8.vcproj b/linden/indra/newview/newview_vc8.vcproj index 7e8068c..6b669d9 100644 --- a/linden/indra/newview/newview_vc8.vcproj +++ b/linden/indra/newview/newview_vc8.vcproj | |||
@@ -43,7 +43,7 @@ | |||
43 | <Tool | 43 | <Tool |
44 | Name="VCCLCompilerTool" | 44 | Name="VCCLCompilerTool" |
45 | Optimization="0" | 45 | Optimization="0" |
46 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include\;"..\..\libraries\i686-win32\include\quicktime";..\llwindow\Logitech_LCD;..\llwindow\Logitech_LCD\LCDUI" | 46 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include\;"..\..\libraries\i686-win32\include\quicktime";..\..\libraries\include\Logitech_LCD;..\..\libraries\include\Logitech_LCD\LCDUI" |
47 | PreprocessorDefinitions="WIN32;_DEBUG;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_DEBUG;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" | 47 | PreprocessorDefinitions="WIN32;_DEBUG;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_DEBUG;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" |
48 | MinimalRebuild="false" | 48 | MinimalRebuild="false" |
49 | BasicRuntimeChecks="3" | 49 | BasicRuntimeChecks="3" |
@@ -69,7 +69,7 @@ | |||
69 | /> | 69 | /> |
70 | <Tool | 70 | <Tool |
71 | Name="VCLinkerTool" | 71 | Name="VCLinkerTool" |
72 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llmozlib-vc80.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib" | 72 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llmozlib-vc80.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib EZ_LCD_Wrapper_vc8.lib lgLcd.lib" |
73 | OutputFile="$(ConfigurationName)/debugview.exe" | 73 | OutputFile="$(ConfigurationName)/debugview.exe" |
74 | LinkIncremental="2" | 74 | LinkIncremental="2" |
75 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_debug"" | 75 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_debug"" |
@@ -137,7 +137,7 @@ | |||
137 | Name="VCCLCompilerTool" | 137 | Name="VCCLCompilerTool" |
138 | InlineFunctionExpansion="2" | 138 | InlineFunctionExpansion="2" |
139 | EnableIntrinsicFunctions="true" | 139 | EnableIntrinsicFunctions="true" |
140 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include\;"..\..\libraries\i686-win32\include\quicktime";..\llwindow\Logitech_LCD;..\llwindow\Logitech_LCD\LCDUI" | 140 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include\;"..\..\libraries\i686-win32\include\quicktime";..\..\libraries\include\Logitech_LCD;..\..\libraries\include\Logitech_LCD\LCDUI" |
141 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" | 141 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" |
142 | StringPooling="true" | 142 | StringPooling="true" |
143 | RuntimeLibrary="0" | 143 | RuntimeLibrary="0" |
@@ -162,7 +162,7 @@ | |||
162 | /> | 162 | /> |
163 | <Tool | 163 | <Tool |
164 | Name="VCLinkerTool" | 164 | Name="VCLinkerTool" |
165 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib" | 165 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib EZ_LCD_Wrapper_vc8.lib lgLcd.lib" |
166 | OutputFile="$(ConfigurationName)/newview.exe" | 166 | OutputFile="$(ConfigurationName)/newview.exe" |
167 | LinkIncremental="2" | 167 | LinkIncremental="2" |
168 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" | 168 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" |
@@ -231,7 +231,7 @@ | |||
231 | /> | 231 | /> |
232 | <Tool | 232 | <Tool |
233 | Name="VCCLCompilerTool" | 233 | Name="VCCLCompilerTool" |
234 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include\;"..\..\libraries\i686-win32\include\quicktime";..\llwindow\Logitech_LCD;..\llwindow\Logitech_LCD\LCDUI" | 234 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include\;"..\..\libraries\i686-win32\include\quicktime";..\..\libraries\include\Logitech_LCD;..\..\libraries\include\Logitech_LCD\LCDUI" |
235 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE;LL_RELEASE_FOR_DOWNLOAD;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" | 235 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE;LL_RELEASE_FOR_DOWNLOAD;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" |
236 | RuntimeLibrary="0" | 236 | RuntimeLibrary="0" |
237 | StructMemberAlignment="0" | 237 | StructMemberAlignment="0" |
@@ -255,7 +255,7 @@ | |||
255 | <Tool | 255 | <Tool |
256 | Name="VCLinkerTool" | 256 | Name="VCLinkerTool" |
257 | LinkLibraryDependencies="false" | 257 | LinkLibraryDependencies="false" |
258 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_compile.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib" | 258 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_compile.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib EZ_LCD_Wrapper_vc8.lib lgLcd.lib" |
259 | OutputFile="$(ConfigurationName)/SecondLife.exe" | 259 | OutputFile="$(ConfigurationName)/SecondLife.exe" |
260 | LinkIncremental="0" | 260 | LinkIncremental="0" |
261 | AdditionalLibraryDirectories=""../lib_release/i686-win32";"../../libraries/i686-win32/lib_release"" | 261 | AdditionalLibraryDirectories=""../lib_release/i686-win32";"../../libraries/i686-win32/lib_release"" |
@@ -322,7 +322,7 @@ | |||
322 | <Tool | 322 | <Tool |
323 | Name="VCCLCompilerTool" | 323 | Name="VCCLCompilerTool" |
324 | Optimization="0" | 324 | Optimization="0" |
325 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include\;"..\..\libraries\i686-win32\include\quicktime";..\llwindow\Logitech_LCD;..\llwindow\Logitech_LCD\LCDUI" | 325 | AdditionalIncludeDirectories="..\llcommon;..\llmath;..\llvfs;..\llaudio;..\llmedia;..\llimage;..\llscene;..\llxml;..\llmessage;..\llprimitive;..\llrender;..\llwindow;..\llcharacter;..\llinventory;..\llui;..\lscript;"..\..\libraries\i686-win32\include";..\..\libraries\include\;"..\..\libraries\i686-win32\include\quicktime";..\..\libraries\include\Logitech_LCD;..\..\libraries\include\Logitech_LCD\LCDUI" |
326 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" | 326 | PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE;XP_WIN;XP_WIN32;MOZILLA_INTERNAL_API" |
327 | RuntimeLibrary="0" | 327 | RuntimeLibrary="0" |
328 | StructMemberAlignment="0" | 328 | StructMemberAlignment="0" |
@@ -346,7 +346,7 @@ | |||
346 | /> | 346 | /> |
347 | <Tool | 347 | <Tool |
348 | Name="VCLinkerTool" | 348 | Name="VCLinkerTool" |
349 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib OpenJPEG.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib" | 349 | AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib areslib.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib fmodvc.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib OpenJPEG.lib llaudio.lib llmedia.lib llcharacter.lib llcommon.lib llimage.lib llimagej2coj.lib llinventory.lib llmath.lib llmessage.lib llmozlib-vc80.lib llprimitive.lib llrender.lib llui.lib llvfs.lib llwindow.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ogg_static_mt.lib ole32.lib oleaut32.lib opengl32.lib png12.lib psapi.lib qtmlclient.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib vorbis_static_mt.lib vorbisenc_static_mt.lib vorbisfile_static_mt.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib dnsapi.lib lgLcd.lib EZ_LCD_Wrapper_vc8.lib" |
350 | OutputFile="$(ConfigurationName)/newview_noopt.exe" | 350 | OutputFile="$(ConfigurationName)/newview_noopt.exe" |
351 | LinkIncremental="2" | 351 | LinkIncremental="2" |
352 | AdditionalLibraryDirectories=""../lib_releasenoopt/i686-win32";"../../libraries/i686-win32/lib_release"" | 352 | AdditionalLibraryDirectories=""../lib_releasenoopt/i686-win32";"../../libraries/i686-win32/lib_release"" |
@@ -461,6 +461,10 @@ | |||
461 | > | 461 | > |
462 | </File> | 462 | </File> |
463 | <File | 463 | <File |
464 | RelativePath=".\llclassifiedstatsresponder.cpp" | ||
465 | > | ||
466 | </File> | ||
467 | <File | ||
464 | RelativePath=".\llcloud.cpp" | 468 | RelativePath=".\llcloud.cpp" |
465 | > | 469 | > |
466 | </File> | 470 | </File> |
@@ -761,6 +765,10 @@ | |||
761 | > | 765 | > |
762 | </File> | 766 | </File> |
763 | <File | 767 | <File |
768 | RelativePath=".\llfloaterlandmark.cpp" | ||
769 | > | ||
770 | </File> | ||
771 | <File | ||
764 | RelativePath=".\llfloatermap.cpp" | 772 | RelativePath=".\llfloatermap.cpp" |
765 | > | 773 | > |
766 | </File> | 774 | </File> |
@@ -845,6 +853,10 @@ | |||
845 | > | 853 | > |
846 | </File> | 854 | </File> |
847 | <File | 855 | <File |
856 | RelativePath=".\llfloaterurldisplay.cpp" | ||
857 | > | ||
858 | </File> | ||
859 | <File | ||
848 | RelativePath=".\llfloatervoicewizard.cpp" | 860 | RelativePath=".\llfloatervoicewizard.cpp" |
849 | > | 861 | > |
850 | </File> | 862 | </File> |
@@ -989,6 +1001,10 @@ | |||
989 | > | 1001 | > |
990 | </File> | 1002 | </File> |
991 | <File | 1003 | <File |
1004 | RelativePath=".\lllcd.cpp" | ||
1005 | > | ||
1006 | </File> | ||
1007 | <File | ||
992 | RelativePath=".\lllocalanimationobject.cpp" | 1008 | RelativePath=".\lllocalanimationobject.cpp" |
993 | > | 1009 | > |
994 | </File> | 1010 | </File> |
@@ -1189,6 +1205,10 @@ | |||
1189 | > | 1205 | > |
1190 | </File> | 1206 | </File> |
1191 | <File | 1207 | <File |
1208 | RelativePath=".\llpanelLCD.cpp" | ||
1209 | > | ||
1210 | </File> | ||
1211 | <File | ||
1192 | RelativePath=".\llpanellogin.cpp" | 1212 | RelativePath=".\llpanellogin.cpp" |
1193 | > | 1213 | > |
1194 | </File> | 1214 | </File> |
@@ -1293,6 +1313,10 @@ | |||
1293 | > | 1313 | > |
1294 | </File> | 1314 | </File> |
1295 | <File | 1315 | <File |
1316 | RelativePath=".\llremoteparcelrequest.cpp" | ||
1317 | > | ||
1318 | </File> | ||
1319 | <File | ||
1296 | RelativePath=".\llroam.cpp" | 1320 | RelativePath=".\llroam.cpp" |
1297 | > | 1321 | > |
1298 | </File> | 1322 | </File> |
@@ -1935,6 +1959,10 @@ | |||
1935 | > | 1959 | > |
1936 | </File> | 1960 | </File> |
1937 | <File | 1961 | <File |
1962 | RelativePath=".\llclassifiedstatsresponder.h" | ||
1963 | > | ||
1964 | </File> | ||
1965 | <File | ||
1938 | RelativePath=".\llcloud.h" | 1966 | RelativePath=".\llcloud.h" |
1939 | > | 1967 | > |
1940 | </File> | 1968 | </File> |
@@ -2207,10 +2235,6 @@ | |||
2207 | > | 2235 | > |
2208 | </File> | 2236 | </File> |
2209 | <File | 2237 | <File |
2210 | RelativePath=".\llfloaterhtmlfind.h" | ||
2211 | > | ||
2212 | </File> | ||
2213 | <File | ||
2214 | RelativePath=".\llfloaterhtmlhelp.h" | 2238 | RelativePath=".\llfloaterhtmlhelp.h" |
2215 | > | 2239 | > |
2216 | </File> | 2240 | </File> |
@@ -2239,6 +2263,10 @@ | |||
2239 | > | 2263 | > |
2240 | </File> | 2264 | </File> |
2241 | <File | 2265 | <File |
2266 | RelativePath=".\llfloaterlandmark.h" | ||
2267 | > | ||
2268 | </File> | ||
2269 | <File | ||
2242 | RelativePath=".\llfloatermap.h" | 2270 | RelativePath=".\llfloatermap.h" |
2243 | > | 2271 | > |
2244 | </File> | 2272 | </File> |
@@ -2323,6 +2351,10 @@ | |||
2323 | > | 2351 | > |
2324 | </File> | 2352 | </File> |
2325 | <File | 2353 | <File |
2354 | RelativePath=".\llfloaterurldisplay.h" | ||
2355 | > | ||
2356 | </File> | ||
2357 | <File | ||
2326 | RelativePath=".\llfloatervoicewizard.h" | 2358 | RelativePath=".\llfloatervoicewizard.h" |
2327 | > | 2359 | > |
2328 | </File> | 2360 | </File> |
@@ -2459,6 +2491,10 @@ | |||
2459 | > | 2491 | > |
2460 | </File> | 2492 | </File> |
2461 | <File | 2493 | <File |
2494 | RelativePath=".\lllcd.h" | ||
2495 | > | ||
2496 | </File> | ||
2497 | <File | ||
2462 | RelativePath=".\lllightconstants.h" | 2498 | RelativePath=".\lllightconstants.h" |
2463 | > | 2499 | > |
2464 | </File> | 2500 | </File> |
@@ -2663,6 +2699,10 @@ | |||
2663 | > | 2699 | > |
2664 | </File> | 2700 | </File> |
2665 | <File | 2701 | <File |
2702 | RelativePath=".\llpanelLCD.h" | ||
2703 | > | ||
2704 | </File> | ||
2705 | <File | ||
2666 | RelativePath=".\llpanellogin.h" | 2706 | RelativePath=".\llpanellogin.h" |
2667 | > | 2707 | > |
2668 | </File> | 2708 | </File> |
@@ -2775,6 +2815,10 @@ | |||
2775 | > | 2815 | > |
2776 | </File> | 2816 | </File> |
2777 | <File | 2817 | <File |
2818 | RelativePath=".\llremoteparcelrequest.h" | ||
2819 | > | ||
2820 | </File> | ||
2821 | <File | ||
2778 | RelativePath=".\llresourcedata.h" | 2822 | RelativePath=".\llresourcedata.h" |
2779 | > | 2823 | > |
2780 | </File> | 2824 | </File> |
diff --git a/linden/indra/newview/releasenotes.txt b/linden/indra/newview/releasenotes.txt index 1c05b15..6d8fdd1 100644 --- a/linden/indra/newview/releasenotes.txt +++ b/linden/indra/newview/releasenotes.txt | |||
@@ -1,3 +1,16 @@ | |||
1 | Release Notes for Second Life 1.18.5(0) November 13, 2007 | ||
2 | ===================================== | ||
3 | New features: | ||
4 | * New inworld search via the 'All' tab | ||
5 | ** Includes improved search functionality on land parcels, profiles, groups, wiki documents, events, classifieds, and some individual objects | ||
6 | ** Classifieds are returned both within and next to search results | ||
7 | |||
8 | Bug fixes: | ||
9 | * Fixed avatar turning in Appearance mode | ||
10 | * Fixed Lag Meter metrics for non-USA residents | ||
11 | * Fixed open source build issues | ||
12 | * Fixed Korean text display on Mac OSX 10.5 | ||
13 | |||
1 | Release Notes for Second Life 1.18.4(3) November 7, 2007 | 14 | Release Notes for Second Life 1.18.4(3) November 7, 2007 |
2 | ===================================== | 15 | ===================================== |
3 | New features: | 16 | New features: |
diff --git a/linden/indra/newview/res/newViewRes.rc b/linden/indra/newview/res/newViewRes.rc index ccb649a..2d5def4 100644 --- a/linden/indra/newview/res/newViewRes.rc +++ b/linden/indra/newview/res/newViewRes.rc | |||
@@ -63,6 +63,7 @@ END | |||
63 | // remains consistent on all systems. | 63 | // remains consistent on all systems. |
64 | IDI_LL_ICON ICON "ll_icon.ico" | 64 | IDI_LL_ICON ICON "ll_icon.ico" |
65 | IDI_INSTALL_ICON ICON "install_icon.ico" | 65 | IDI_INSTALL_ICON ICON "install_icon.ico" |
66 | IDI_LCD_LL_ICON ICON "icon1.ico" | ||
66 | 67 | ||
67 | ///////////////////////////////////////////////////////////////////////////// | 68 | ///////////////////////////////////////////////////////////////////////////// |
68 | // | 69 | // |
@@ -227,8 +228,8 @@ TOOLPIPETTE CURSOR "toolpipette.cur" | |||
227 | // | 228 | // |
228 | 229 | ||
229 | VS_VERSION_INFO VERSIONINFO | 230 | VS_VERSION_INFO VERSIONINFO |
230 | FILEVERSION 1,18,4,3 | 231 | FILEVERSION 1,18,5,0 |
231 | PRODUCTVERSION 1,18,4,3 | 232 | PRODUCTVERSION 1,18,5,0 |
232 | FILEFLAGSMASK 0x3fL | 233 | FILEFLAGSMASK 0x3fL |
233 | #ifdef _DEBUG | 234 | #ifdef _DEBUG |
234 | FILEFLAGS 0x1L | 235 | FILEFLAGS 0x1L |
@@ -245,12 +246,12 @@ BEGIN | |||
245 | BEGIN | 246 | BEGIN |
246 | VALUE "CompanyName", "Linden Lab" | 247 | VALUE "CompanyName", "Linden Lab" |
247 | VALUE "FileDescription", "Second Life" | 248 | VALUE "FileDescription", "Second Life" |
248 | VALUE "FileVersion", "1.18.4.3" | 249 | VALUE "FileVersion", "1.18.5.0" |
249 | VALUE "InternalName", "Second Life" | 250 | VALUE "InternalName", "Second Life" |
250 | VALUE "LegalCopyright", "Copyright © 2001-2007, Linden Research, Inc." | 251 | VALUE "LegalCopyright", "Copyright © 2001-2007, Linden Research, Inc." |
251 | VALUE "OriginalFilename", "SecondLife.exe" | 252 | VALUE "OriginalFilename", "SecondLife.exe" |
252 | VALUE "ProductName", "Second Life" | 253 | VALUE "ProductName", "Second Life" |
253 | VALUE "ProductVersion", "1.18.4.3" | 254 | VALUE "ProductVersion", "1.18.5.0" |
254 | END | 255 | END |
255 | END | 256 | END |
256 | BLOCK "VarFileInfo" | 257 | BLOCK "VarFileInfo" |
diff --git a/linden/indra/newview/res/resource.h b/linden/indra/newview/res/resource.h index c7e1552..e4d01b1 100644 --- a/linden/indra/newview/res/resource.h +++ b/linden/indra/newview/res/resource.h | |||
@@ -19,6 +19,7 @@ | |||
19 | #define IDB_LOGIN 149 | 19 | #define IDB_LOGIN 149 |
20 | #define IDC_CURSOR4 153 | 20 | #define IDC_CURSOR4 153 |
21 | #define IDC_CURSOR5 154 | 21 | #define IDC_CURSOR5 154 |
22 | #define IDI_LCD_LL_ICON 157 | ||
22 | #define IDC_RADIO_56 1000 | 23 | #define IDC_RADIO_56 1000 |
23 | #define IDC_RADIO_128 1001 | 24 | #define IDC_RADIO_128 1001 |
24 | #define IDC_RADIO_256 1002 | 25 | #define IDC_RADIO_256 1002 |
@@ -151,7 +152,7 @@ | |||
151 | // | 152 | // |
152 | #ifdef APSTUDIO_INVOKED | 153 | #ifdef APSTUDIO_INVOKED |
153 | #ifndef APSTUDIO_READONLY_SYMBOLS | 154 | #ifndef APSTUDIO_READONLY_SYMBOLS |
154 | #define _APS_NEXT_RESOURCE_VALUE 156 | 155 | #define _APS_NEXT_RESOURCE_VALUE 167 |
155 | #define _APS_NEXT_COMMAND_VALUE 40002 | 156 | #define _APS_NEXT_COMMAND_VALUE 40002 |
156 | #define _APS_NEXT_CONTROL_VALUE 1139 | 157 | #define _APS_NEXT_CONTROL_VALUE 1139 |
157 | #define _APS_NEXT_SYMED_VALUE 101 | 158 | #define _APS_NEXT_SYMED_VALUE 101 |
diff --git a/linden/indra/newview/skins/textures/textures.xml b/linden/indra/newview/skins/textures/textures.xml index 72c6621..cc9f61c 100644 --- a/linden/indra/newview/skins/textures/textures.xml +++ b/linden/indra/newview/skins/textures/textures.xml | |||
@@ -307,6 +307,7 @@ | |||
307 | <account_id_green.tga value="3bf64d5a-38d3-b752-cf52-3d9f8fca353a"/> | 307 | <account_id_green.tga value="3bf64d5a-38d3-b752-cf52-3d9f8fca353a"/> |
308 | <status_push.tga value="07d1f523-e327-4d10-20d6-8bc22a6e8f56"/> | 308 | <status_push.tga value="07d1f523-e327-4d10-20d6-8bc22a6e8f56"/> |
309 | <status_voice.tga value="c49b0b3b-fe04-46ee-abab-777fa0b462b6"/> | 309 | <status_voice.tga value="c49b0b3b-fe04-46ee-abab-777fa0b462b6"/> |
310 | <status_search.tga value="6846fb08-fe38-40be-b145-d8d7b2e1d0d8"/> | ||
310 | <ff_visible_online.tga value="d609a41f-34c0-7aae-b2c6-2fc3ab26d916"/> | 311 | <ff_visible_online.tga value="d609a41f-34c0-7aae-b2c6-2fc3ab26d916"/> |
311 | <ff_visible_map.tga value="20b52706-c1ab-414a-9dea-1cb788ad5689"/> | 312 | <ff_visible_map.tga value="20b52706-c1ab-414a-9dea-1cb788ad5689"/> |
312 | <ff_edit_mine.tga value="1baee0b9-4b89-39eb-8815-866d82300ab5"/> | 313 | <ff_edit_mine.tga value="1baee0b9-4b89-39eb-8815-866d82300ab5"/> |
diff --git a/linden/indra/newview/skins/xui/en-us/LCD_text.xml b/linden/indra/newview/skins/xui/en-us/LCD_text.xml new file mode 100644 index 0000000..d679d64 --- /dev/null +++ b/linden/indra/newview/skins/xui/en-us/LCD_text.xml | |||
@@ -0,0 +1,28 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <panel bottom="0" follows="left|top|right|bottom" height="600" hidden="true" left="0" | ||
3 | mouse_opaque="true" name="panel_login" width="800"> | ||
4 | <text hidden="true" name="DebugInfo">Debug Info</text> | ||
5 | <text hidden="true" name="FPS">FPS</text> | ||
6 | <text hidden="true" name="SimFPS">SimFPS</text> | ||
7 | <text hidden="true" name="Pin">P-In</text> | ||
8 | <text hidden="true" name="Pout">P-Out</text> | ||
9 | <text hidden="true" name="PLoss">P-Loss</text> | ||
10 | <text hidden="true" name="Ping">Ping</text> | ||
11 | <text hidden="true" name="AccountDetails">Account Details</text> | ||
12 | <text hidden="true" name="LBal">L$ bal</text> | ||
13 | <text hidden="true" name="Time">Time</text> | ||
14 | <text hidden="true" name="LocationDetails1">Location Details 1</text> | ||
15 | <text hidden="true" name="LocationDetails2">Location Details 2</text> | ||
16 | <text hidden="true" name="Region">Region</text> | ||
17 | <text hidden="true" name="Parcel">Parcel</text> | ||
18 | <text hidden="true" name="Pos">Pos</text> | ||
19 | <text hidden="true" name="Sqm">Sqm</text> | ||
20 | <text hidden="true" name="Owner">Owner</text> | ||
21 | <text hidden="true" name="Type">Type</text> | ||
22 | <text hidden="true" name="Yes">Yes</text> | ||
23 | <text hidden="true" name="No">No</text> | ||
24 | <text hidden="true" name="Forsale">ForSale</text> | ||
25 | <text hidden="true" name="Traffic">Traffic</text> | ||
26 | <text hidden="true" name="Last3ChatLines">Last 3 Chat Lines</text> | ||
27 | <text hidden="true" name="Last3IMLines">Last 3 IM Lines</text> | ||
28 | </panel> \ No newline at end of file | ||
diff --git a/linden/indra/newview/skins/xui/en-us/alerts.xml b/linden/indra/newview/skins/xui/en-us/alerts.xml index 0bad2fc..192fcdb 100644 --- a/linden/indra/newview/skins/xui/en-us/alerts.xml +++ b/linden/indra/newview/skins/xui/en-us/alerts.xml | |||
@@ -1,5 +1,8 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <alerts> | 2 | <alerts> |
3 | <global name="skipnexttime">Don't show me this again</global> | ||
4 | <global name="alwayschoose">Always choose this option</global> | ||
5 | |||
3 | <alert modal="true" name="MissingAlert"> | 6 | <alert modal="true" name="MissingAlert"> |
4 | <message name="message"> | 7 | <message name="message"> |
5 | [ALERT_NAME] is missing from alerts.xml! | 8 | [ALERT_NAME] is missing from alerts.xml! |
@@ -334,7 +337,7 @@ Community Standards. | |||
334 | </alert> | 337 | </alert> |
335 | <alert modal="true" name="ClickPublishHelpAvatar"> | 338 | <alert modal="true" name="ClickPublishHelpAvatar"> |
336 | <message name="message"> | 339 | <message name="message"> |
337 | Selecting the "Publish in Search" will show: | 340 | Selecting "Show in Search" will show: |
338 | - my profile in search results | 341 | - my profile in search results |
339 | - a link to my profile in public group pages | 342 | - a link to my profile in public group pages |
340 | </message> | 343 | </message> |
@@ -3230,6 +3233,20 @@ from the 'Edit' menu. | |||
3230 | Cancel | 3233 | Cancel |
3231 | </option> | 3234 | </option> |
3232 | </alert> | 3235 | </alert> |
3236 | <alert modal="true" name="TeleportFromLandmark"> | ||
3237 | <message name="message"> | ||
3238 | Are you sure you want to teleport? | ||
3239 | </message> | ||
3240 | <ignore name="ignore"> | ||
3241 | When teleporting from a landmark in inventory | ||
3242 | </ignore> | ||
3243 | <option name="Teleport"> | ||
3244 | Teleport | ||
3245 | </option> | ||
3246 | <option name="Cancel"> | ||
3247 | Cancel | ||
3248 | </option> | ||
3249 | </alert> | ||
3233 | <alert name="MessageEstate" title="Message everyone in your Estate"> | 3250 | <alert name="MessageEstate" title="Message everyone in your Estate"> |
3234 | <message name="message"> | 3251 | <message name="message"> |
3235 | Type a short announcement which will be | 3252 | Type a short announcement which will be |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_about.xml b/linden/indra/newview/skins/xui/en-us/floater_about.xml index 87833aa..40cdcf1 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_about.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_about.xml | |||
@@ -11,7 +11,7 @@ | |||
11 | 11 | ||
12 | In Memory of Jesse Malthus, you will be fondly remembered by all who heard your voice. | 12 | In Memory of Jesse Malthus, you will be fondly remembered by all who heard your voice. |
13 | 13 | ||
14 | Thank you to the following residents for helping to ensure that this is the best version yet: Aces Spade, Adrian Buckler, Adrienne LeShelle, Amanda Ascot, AnnaQuay Heart, Aquamina Khalifa, Arienne Anatine, Aston Hildyard, Ayami Kamachi, Badinage Odets, Biffy Berjis, Bigfox Pye, BigJohn Jade, BigRick Byrd, Brettus Tripsa, Brock Fitzgerald, Broker Allen, Browse by Name, Chiria Celt, Christopher Prudhomme, dale Cao, dale Lynch, Dante Tucker, DaQbet Kish, Dargon Pacer, Darius Antonelli, Deira Llanfair, DeviantBone Xi, Dore Dorado, Englishwob Etchegaray, Enya Masala, Eric Renneville, Fairfax Michinaga, FireFox Bancroft, FOXI Cortes, Frederick Earp, Geo Meek, Gotthilf Fischer, Hallo Loon, Hawk Carter, Hazel Kyrgyz, Hecter Barbosa, Hex Link, Ice Pak, Ideasu Mukerji, Itoku Kamachi, Jared Halleck, Jaykob Carter, Jennifer Drumheller, JensMartin Tomsen, JIAB Boa, Jim Gustafson, JimmyJet Fossett, Joseph Rustamova, Jt Volos, Karilyn Kidomen, Kaysha Sion, Keaton Nacon, Kevin Susenko, Khashai Steinbeck, Kira Cuddihy, Kit Massiel, Kojo Dixon, KUieTSToRm Lightcloud, Kwai Kyong, Kyrtis Daehlie, LazyGunGuy Bartlett, Lewcas Zapedzki, Lioc Cioc, LLIB Utu, Lou Liebknecht, Luca Draken, Maci Homewood, Major Sewell, Mari Todriya, MarieElize Noel, matt27 Churchill, Maverick Miasma, maydaysos Young, Mediaho Ball, Mikayla Gillespie, Mike Faulkland, Modfire Milland, MollyBrown Foxley, Mosley Jewell, Nuahs Zapedzki, Nyx Divine, Panther Farber, Paul Bumi, PrincessNina Prefect, Prio Serpentine, Rainbow Drake, Randall Rall, Randy Kazan, Reinhart Mokeev, Rhyph Somme, Rico Roizman, Ruge Dryke, Ryan Orbit, Safira Rosher, Samantha Bainbridge, Sammy Foxley, Sash Furst, Saturn Ariantho, Sienna Summers, Skye Enoch, Sofie Kanno, Solar Legion, Sonic Oki, Sunra Saenz, Taina Heart, Taryn Sprawl, tenerife Wei, TomDragon Nilsson, Trebla Reve, Trouble Carnell, user1cat Orbit, Vance Merlin, Veritas Variscan, Web Page, Wi3g3ht3s Ihnen, WinDrftr DeFarge, Yuu Nakamichi, Zac Delec, Zed Fairweather, Zimmo Hallard. | 14 | Thank you to the following residents for helping to ensure that this is the best version yet: Aces Spade, Adrian Buckler, Adrienne LeShelle, Amanda Ascot, AnnaQuay Heart, Aquamina Khalifa, Arienne Anatine, Aston Hildyard, Ayami Kamachi, Badinage Odets, Biffy Berjis, Bigfox Pye, BigJohn Jade, BigRick Byrd, Brettus Tripsa, Brock Fitzgerald, Broker Allen, Browse by Name, Chiria Celt, Christopher Prudhomme, dale Cao, dale Lynch, Dante Tucker, DaQbet Kish, Dargon Pacer, Darius Antonelli, Deira Llanfair, DeviantBone Xi, Dore Dorado, Englishwob Etchegaray, Enya Masala, Eric Renneville, Fairfax Michinaga, FireFox Bancroft, FOXI Cortes, Frederick Earp, Geo Meek, Gotthilf Fischer, Hallo Loon, Hawk Carter, Hazel Kyrgyz, Hecter Barbosa, Hex Link, Ice Pak, Ideasu Mukerji, Itoku Kamachi, Jared Halleck, Jaykob Carter, Jennifer Drumheller, JensMartin Tomsen, JIAB Boa, Jim Gustafson, JimmyJet Fossett, Joseph Rustamova, Jt Volos, Karilyn Kidomen, Kaysha Sion, Keaton Nacon, Kevin Susenko, Khashai Steinbeck, Kira Cuddihy, Kit Massiel, Kojo Dixon, KUieTSToRm Lightcloud, Kwai Kyong, Kyrtis Daehlie, LazyGunGuy Bartlett, Lewcas Zapedzki, Lioc Cioc, LLIB Utu, Lou Liebknecht, Luca Draken, Maci Homewood, Major Sewell, Mari Todriya, MarieElize Noel, matt27 Churchill, Maverick Miasma, maydaysos Young, Mediaho Ball, Mikayla Gillespie, Mike Faulkland, Modfire Milland, MollyBrown Foxley, Mosley Jewell, Nuahs Zapedzki, Nyx Divine, Panther Farber, Paul Bumi, Preciousse Moody, PrincessNina Prefect, Prio Serpentine, Rainbow Drake, Randall Rall, Randy Kazan, Reinhart Mokeev, Rhyph Somme, Rico Roizman, Ruge Dryke, Ryan Orbit, Safira Rosher, Samantha Bainbridge, Sammy Foxley, Sash Furst, Saturn Ariantho, Sienna Summers, Skye Enoch, Sofie Kanno, Solar Legion, Sonic Oki, Sunra Saenz, Taina Heart, Taryn Sprawl, tenerife Wei, TomDragon Nilsson, Trebla Reve, Trouble Carnell, user1cat Orbit, Vance Merlin, Veritas Variscan, Web Page, Wi3g3ht3s Ihnen, WinDrftr DeFarge, Yuu Nakamichi, Zac Delec, Zed Fairweather, Zimmo Hallard. |
15 | 15 | ||
16 | APR Copyright (C) 2000-2004 The Apache Software Foundation | 16 | APR Copyright (C) 2000-2004 The Apache Software Foundation |
17 | cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se) | 17 | cURL Copyright (C) 1996-2002, Daniel Stenberg, (daniel@haxx.se) |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_about_land.xml b/linden/indra/newview/skins/xui/en-us/floater_about_land.xml index 3a877ea..eb5448f 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_about_land.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_about_land.xml | |||
@@ -557,11 +557,11 @@ | |||
557 | width="119" /> | 557 | width="119" /> |
558 | <check_box bottom="-140" enabled="true" follows="left|top" font="SansSerifSmall" | 558 | <check_box bottom="-140" enabled="true" follows="left|top" font="SansSerifSmall" |
559 | height="16" hidden="false" initial_value="false" | 559 | height="16" hidden="false" initial_value="false" |
560 | label="Show in Search > Places (L$30/week) under" left="14" | 560 | label="Show Place in Search (L$30/week) under" left="14" |
561 | mouse_opaque="true" name="ShowDirectoryCheck" radio_style="false" | 561 | mouse_opaque="true" name="ShowDirectoryCheck" radio_style="false" |
562 | width="268" tool_tip="Let people see this parcel in search results"/> | 562 | width="268" tool_tip="Let people see this parcel in search results"/> |
563 | <combo_box allow_text_entry="false" bottom="-140" enabled="true" follows="left|top" | 563 | <combo_box allow_text_entry="false" bottom="-140" enabled="true" follows="left|top" |
564 | height="18" hidden="false" left="260" max_chars="20" mouse_opaque="true" | 564 | height="18" hidden="false" left="255" max_chars="20" mouse_opaque="true" |
565 | name="land category" width="130"> | 565 | name="land category" width="130"> |
566 | <combo_item name="AnyCategory" value="any"> | 566 | <combo_item name="AnyCategory" value="any"> |
567 | Any Category | 567 | Any Category |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_directory.xml b/linden/indra/newview/skins/xui/en-us/floater_directory.xml index 7068b82..6f253a1 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_directory.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_directory.xml | |||
@@ -1,54 +1,100 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <floater can_close="true" can_drag_on_left="false" can_minimize="true" | 2 | <floater can_close="true" can_drag_on_left="false" can_minimize="true" |
3 | can_resize="false" height="570" min_height="200" min_width="400" | 3 | can_resize="true" height="570" min_height="570" min_width="780" |
4 | name="directory" rect_control="FloaterFindRect2" title="Search" width="780"> | 4 | name="directory" rect_control="FloaterFindRect2" |
5 | title="Search Second Life" width="780"> | ||
5 | <tab_container bottom="-570" follows="left|top|right|bottom" height="550" left="0" | 6 | <tab_container bottom="-570" follows="left|top|right|bottom" height="550" left="0" |
6 | mouse_opaque="false" name="Directory Tabs" tab_position="top" width="780"> | 7 | mouse_opaque="false" name="Directory Tabs" tab_position="top" width="780"> |
8 | |||
7 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" | 9 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" |
8 | label="All" left="1" mouse_opaque="false" name="all_panel" width="778"> | 10 | label="All" left="1" mouse_opaque="false" |
9 | <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" | 11 | name="find_all_panel" |
10 | height="20" label="Next >" label_selected="Next >" right="344" | 12 | width="778"> |
11 | mouse_opaque="true" name="Next >" width="80" /> | 13 | <button bottom="-30" follows="top|left" font="SansSerifSmall" height="20" |
12 | <button bottom_delta="0" follows="left|bottom" font="SansSerif" halign="center" | 14 | label="Back" |
13 | height="20" label="< Prev" label_selected="< Prev" right="258" | 15 | left="10" |
14 | mouse_opaque="true" name="< Prev" width="80" /> | 16 | name="back_btn" width="70" /> |
15 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 17 | <button bottom_delta="0" follows="top|left" font="SansSerifSmall" height="20" |
16 | bottom="-24" drop_shadow_visible="true" follows="left|top" font="SansSerif" | 18 | label="Forward" left_delta="75" |
17 | h_pad="0" halign="left" height="16" left="4" mouse_opaque="true" | 19 | name="forward_btn" width="70" /> |
18 | name="find" v_pad="0" width="50"> | 20 | <line_editor bevel_style="in" |
19 | Find: | 21 | border_style="line" |
20 | </text> | 22 | border_thickness="1" |
21 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-24" | 23 | bottom_delta="0" |
22 | follows="left|top" font="SansSerif" height="18" left_delta="38" | 24 | enabled="true" |
23 | max_length="63" mouse_opaque="true" name="name" width="128" /> | 25 | follows="top|left|right" |
24 | <button bottom="-26" follows="left|top" font="SansSerif" halign="center" height="20" | 26 | font="SansSerif" |
25 | label="Search" label_selected="Search" left_delta="136" mouse_opaque="true" | 27 | handle_edit_keys_directly="false" |
26 | name="Search" width="70" /> | 28 | commit_on_focus_lost="false" |
27 | <check_box bottom="-22" control_name="ShowMatureFindAll" follows="left|top" | 29 | height="20" |
30 | hidden="false" | ||
31 | label="Search" | ||
32 | left_delta="80" | ||
33 | width="180" | ||
34 | max_length="254" | ||
35 | mouse_opaque="true" | ||
36 | name="search_editor" | ||
37 | select_all_on_focus_received="false" | ||
38 | select_on_focus="false" | ||
39 | tab_group="1" | ||
40 | tool_tip="Search Second Life" /> | ||
41 | <button follows="top|right" font="SansSerif" height="20" | ||
42 | label="Search" | ||
43 | left_delta="185" | ||
44 | bottom_delta="0" | ||
45 | name="search_btn" width="70" /> | ||
46 | <combo_box allow_text_entry="false" | ||
47 | bottom_delta="0" follows="right|top" height="18" | ||
48 | left_delta="100" | ||
49 | max_chars="20" mouse_opaque="true" name="Category" | ||
50 | width="128"> | ||
51 | <combo_item name="AnyCategory" value="All"> | ||
52 | Any Category | ||
53 | </combo_item> | ||
54 | <combo_item name="Classifieds" value="Classifieds"> | ||
55 | Classifieds | ||
56 | </combo_item> | ||
57 | <combo_item name="Events" value="Events"> | ||
58 | Events | ||
59 | </combo_item> | ||
60 | <combo_item name="Groups" value="Groups"> | ||
61 | Groups | ||
62 | </combo_item> | ||
63 | <combo_item name="People" value="People"> | ||
64 | People | ||
65 | </combo_item> | ||
66 | <combo_item name="Places" value="Places"> | ||
67 | Places | ||
68 | </combo_item> | ||
69 | <combo_item name="Wiki" value="Wiki"> | ||
70 | Wiki | ||
71 | </combo_item> | ||
72 | </combo_box> | ||
73 | <check_box bottom_delta="0" | ||
74 | control_name="ShowMatureFindAll" follows="right|top" | ||
28 | font="SansSerifSmall" height="16" initial_value="false" | 75 | font="SansSerifSmall" height="16" initial_value="false" |
29 | label="Include Mature content" left_delta="78" mouse_opaque="true" | 76 | label="Include Mature content" |
30 | name="incmature" width="156" /> | 77 | left_delta="133" |
31 | <scroll_list background_visible="false" bottom="-513" column_padding="0" draw_border="true" | 78 | name="mature_check" |
32 | draw_heading="false" fg_disable_color="1, 1, 1, 1" | 79 | width="156" /> |
33 | fg_selected_color="1, 1, 1, 1" fg_unselected_color="1, 1, 1, 1" | 80 | <web_browser name="find_browser" |
34 | follows="left|top|right|bottom" height="464" left="4" mouse_opaque="true" | 81 | bottom="25" |
35 | multi_select="false" name="results" search_column="1" width="339"> | 82 | follows="top|left|bottom|right" |
36 | <column label="" name="icon" width="24" /> | 83 | font="SansSerifSmall" |
37 | <column label="Name" name="name" width="235" /> | 84 | left="10" |
38 | <column label="Price" name="price" width="90" /> | 85 | right="-10" |
39 | <column label="Time (PT)" name="date" width="90" /> | 86 | top="-40" /> |
40 | <column label="Time" name="time" width="-1" /> | 87 | <text bottom="5" |
41 | <column label="Traffic" name="dwell" width="90" /> | 88 | follows="bottom|left" |
42 | <column label="Area" name="area" width="90" /> | 89 | halign="left" |
43 | <column label="L$/sq.m" name="per_meter" width="90" /> | 90 | left="10" |
44 | <column label="Online" name="online" width="90" /> | 91 | width="150" |
45 | <column label="Members" name="members" width="90" /> | 92 | name="status_text" |
46 | </scroll_list> | 93 | height="16" /> |
47 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 94 | <text hidden="true" name="loading_text">Loading...</text> |
48 | bottom_delta="-20" drop_shadow_visible="true" follows="left|bottom" | 95 | <text hidden="true" name="done_text">Done</text> |
49 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" | ||
50 | mouse_opaque="true" name="result_text" v_pad="0" width="328" /> | ||
51 | </panel> | 96 | </panel> |
97 | |||
52 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" | 98 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" |
53 | label="Classifieds" left="1" left_delta="68" mouse_opaque="false" | 99 | label="Classifieds" left="1" left_delta="68" mouse_opaque="false" |
54 | name="classified_panel" width="778"> | 100 | name="classified_panel" width="778"> |
@@ -65,13 +111,13 @@ | |||
65 | Find: | 111 | Find: |
66 | </text> | 112 | </text> |
67 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-24" | 113 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-24" |
68 | follows="left|top" font="SansSerif" height="18" left_delta="30" | 114 | follows="left|top" font="SansSerif" height="18" left_delta="38" |
69 | max_length="63" mouse_opaque="true" name="name" width="136" /> | 115 | max_length="63" mouse_opaque="true" name="name" width="128" /> |
70 | <check_box bottom_delta="-18" control_name="ShowMatureClassifieds" follows="left|top" | 116 | <check_box bottom_delta="-18" control_name="ShowMatureClassifieds" follows="left|top" |
71 | font="SansSerifSmall" height="16" initial_value="true" | 117 | font="SansSerifSmall" height="16" initial_value="true" |
72 | label="Include Mature content" left="32" mouse_opaque="true" | 118 | label="Include Mature content" left_delta="0" mouse_opaque="true" |
73 | name="incmature" width="156" /> | 119 | name="incmature" width="156" /> |
74 | <combo_box allow_text_entry="false" bottom="-24" follows="left|top" height="18" left="174" | 120 | <combo_box allow_text_entry="false" bottom="-24" follows="left|top" height="18" left="182" |
75 | max_chars="20" mouse_opaque="true" name="Category" width="128"> | 121 | max_chars="20" mouse_opaque="true" name="Category" width="128"> |
76 | <combo_item name="AnyCategory" value="0"> | 122 | <combo_item name="AnyCategory" value="0"> |
77 | Any Category | 123 | Any Category |
@@ -110,9 +156,9 @@ | |||
110 | <button bottom="-26" follows="left|top" font="SansSerif" halign="center" height="20" | 156 | <button bottom="-26" follows="left|top" font="SansSerif" halign="center" height="20" |
111 | label="Search" label_selected="Search" mouse_opaque="true" | 157 | label="Search" label_selected="Search" mouse_opaque="true" |
112 | name="Search" width="70" visible="false"/> | 158 | name="Search" width="70" visible="false"/> |
113 | <button bottom="-26" follows="left|top" font="SansSerif" halign="center" height="20" | 159 | <button bottom="-26" follows="right|top" font="SansSerif" halign="center" height="20" |
114 | label="Place an Ad..." label_selected="Place an Ad..." left_delta="320" | 160 | label="Place an Ad..." label_selected="Place an Ad..." left="-140" |
115 | mouse_opaque="true" name="Place an Ad..." width="123" /> | 161 | mouse_opaque="true" name="Place an Ad..." width="125" /> |
116 | <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" | 162 | <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" |
117 | height="20" label="Delete" label_selected="Delete" left="80" | 163 | height="20" label="Delete" label_selected="Delete" left="80" |
118 | mouse_opaque="true" name="Delete" width="80" /> | 164 | mouse_opaque="true" name="Delete" width="80" /> |
@@ -131,6 +177,7 @@ | |||
131 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" | 177 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" |
132 | mouse_opaque="true" name="result_text" v_pad="0" width="328" /> | 178 | mouse_opaque="true" name="result_text" v_pad="0" width="328" /> |
133 | </panel> | 179 | </panel> |
180 | |||
134 | <panel border="true" bottom="-549" default_tab_group="1" | 181 | <panel border="true" bottom="-549" default_tab_group="1" |
135 | follows="left|top|right|bottom" height="533" label="Events" left="1" | 182 | follows="left|top|right|bottom" height="533" label="Events" left="1" |
136 | mouse_opaque="false" name="events_panel" width="778"> | 183 | mouse_opaque="false" name="events_panel" width="778"> |
@@ -233,7 +280,7 @@ | |||
233 | font="SansSerifSmall" height="16" initial_value="false" label="Show Mature" | 280 | font="SansSerifSmall" height="16" initial_value="false" label="Show Mature" |
234 | left="569" mouse_opaque="true" name="incmature" width="120" /> | 281 | left="569" mouse_opaque="true" name="incmature" width="120" /> |
235 | <button bottom="-28" follows="left|top" font="SansSerif" halign="center" height="20" | 282 | <button bottom="-28" follows="left|top" font="SansSerif" halign="center" height="20" |
236 | label="Search" label_selected="Search" left_delta="120" mouse_opaque="true" | 283 | label="Search" label_selected="Search" left_delta="100" mouse_opaque="true" |
237 | name="Search" tool_tip="Search" width="80" /> | 284 | name="Search" tool_tip="Search" width="80" /> |
238 | <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" | 285 | <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" |
239 | height="20" label="Delete" label_selected="Delete" left="80" | 286 | height="20" label="Delete" label_selected="Delete" left="80" |
@@ -245,7 +292,7 @@ | |||
245 | multi_select="false" name="results" search_column="2" width="339"> | 292 | multi_select="false" name="results" search_column="2" width="339"> |
246 | <column label="" name="icon" width="24" /> | 293 | <column label="" name="icon" width="24" /> |
247 | <column label="" name="type" width="-1" /> | 294 | <column label="" name="type" width="-1" /> |
248 | <column label="Name" name="name" width="178" /> | 295 | <column label="Name" name="name" dynamicwidth="true" /> |
249 | <column label="Time (PT)" name="date" sort="time" width="106" /> | 296 | <column label="Time (PT)" name="date" sort="time" width="106" /> |
250 | <column label="" name="event_id" width="-1" /> | 297 | <column label="" name="event_id" width="-1" /> |
251 | <column label="Time" name="time" width="-1" /> | 298 | <column label="Time" name="time" width="-1" /> |
@@ -279,7 +326,7 @@ | |||
279 | label="Include parcels with Mature Content" left="24" mouse_opaque="true" | 326 | label="Include parcels with Mature Content" left="24" mouse_opaque="true" |
280 | name="incmature" width="204" /> | 327 | name="incmature" width="204" /> |
281 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 328 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
282 | bottom="-38" drop_shadow_visible="true" follows="left|top" | 329 | bottom="-38" drop_shadow_visible="true" follows="right|top" |
283 | font="SansSerifSmall" h_pad="0" halign="left" height="32" left_delta="326" | 330 | font="SansSerifSmall" h_pad="0" halign="left" height="32" left_delta="326" |
284 | mouse_opaque="true" | 331 | mouse_opaque="true" |
285 | name="These are the most popular places in the world, as measured by traffic, the amount of time people spend there." | 332 | name="These are the most popular places in the world, as measured by traffic, the amount of time people spend there." |
@@ -294,7 +341,7 @@ the amount of time people spend there. | |||
294 | multi_select="false" name="results" search_column="2" width="339"> | 341 | multi_select="false" name="results" search_column="2" width="339"> |
295 | <column label="" name="icon" width="24" /> | 342 | <column label="" name="icon" width="24" /> |
296 | <column label="" name="type" width="-1" /> | 343 | <column label="" name="type" width="-1" /> |
297 | <column label="Name" name="name" width="215" /> | 344 | <column label="Name" name="name" dynamicwidth="true" /> |
298 | <column label="Traffic" name="dwell" width="70" /> | 345 | <column label="Traffic" name="dwell" width="70" /> |
299 | </scroll_list> | 346 | </scroll_list> |
300 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 347 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
@@ -369,7 +416,7 @@ To buy direct, visit the land and click on the place name in the title bar. | |||
369 | multi_select="false" name="results" search_column="2" width="387"> | 416 | multi_select="false" name="results" search_column="2" width="387"> |
370 | <column label="" name="icon" width="24" /> | 417 | <column label="" name="icon" width="24" /> |
371 | <column label="" name="type" width="-1" /> | 418 | <column label="" name="type" width="-1" /> |
372 | <column label="Name" name="name" width="164" /> | 419 | <column label="Name" name="name" dynamicwidth="true" /> |
373 | <column label="L$ Price" name="price" width="65" /> | 420 | <column label="L$ Price" name="price" width="65" /> |
374 | <column label="Area" name="area" width="50" /> | 421 | <column label="Area" name="area" width="50" /> |
375 | <column label="L$/sq.m" name="per_meter" width="65" /> | 422 | <column label="L$/sq.m" name="per_meter" width="65" /> |
@@ -399,9 +446,9 @@ To buy direct, visit the land and click on the place name in the title bar. | |||
399 | max_length="63" mouse_opaque="true" name="name" width="128" /> | 446 | max_length="63" mouse_opaque="true" name="name" width="128" /> |
400 | <check_box bottom_delta="-18" control_name="ShowMatureSims" follows="left|top" | 447 | <check_box bottom_delta="-18" control_name="ShowMatureSims" follows="left|top" |
401 | font="SansSerifSmall" height="16" initial_value="false" | 448 | font="SansSerifSmall" height="16" initial_value="false" |
402 | label="Include parcels with Mature content" left="42" mouse_opaque="true" | 449 | label="Include parcels with Mature content" left_delta="0" mouse_opaque="true" |
403 | name="incmature" width="204" /> | 450 | name="incmature" width="204" /> |
404 | <combo_box allow_text_entry="false" bottom="-24" follows="left|top" height="18" left="178" | 451 | <combo_box allow_text_entry="false" bottom="-24" follows="left|top" height="18" left="182" |
405 | max_chars="20" mouse_opaque="true" name="Category" width="128"> | 452 | max_chars="20" mouse_opaque="true" name="Category" width="128"> |
406 | <combo_item name="AnyCategory" value="any"> | 453 | <combo_item name="AnyCategory" value="any"> |
407 | Any Category | 454 | Any Category |
@@ -446,14 +493,26 @@ To buy direct, visit the land and click on the place name in the title bar. | |||
446 | <button bottom="-26" follows="left|top" font="SansSerif" halign="center" height="20" | 493 | <button bottom="-26" follows="left|top" font="SansSerif" halign="center" height="20" |
447 | label="Search" label_selected="Search" left_delta="136" mouse_opaque="true" | 494 | label="Search" label_selected="Search" left_delta="136" mouse_opaque="true" |
448 | name="Search" width="70" /> | 495 | name="Search" width="70" /> |
449 | <scroll_list background_visible="false" bottom="-513" column_padding="0" draw_border="true" | 496 | <scroll_list |
450 | draw_heading="true" fg_disable_color="1, 1, 1, 1" | 497 | name="results" |
451 | fg_selected_color="1, 1, 1, 1" fg_unselected_color="1, 1, 1, 1" | 498 | background_visible="false" |
452 | follows="left|top|right|bottom" height="464" left="4" mouse_opaque="true" | 499 | bottom="-513" |
453 | multi_select="false" name="results" search_column="2" width="339"> | 500 | column_padding="0" |
501 | draw_border="true" | ||
502 | draw_heading="true" | ||
503 | fg_disable_color="1, 1, 1, 1" | ||
504 | fg_selected_color="1, 1, 1, 1" | ||
505 | fg_unselected_color="1, 1, 1, 1" | ||
506 | follows="left|top|right|bottom" | ||
507 | height="464" | ||
508 | left="4" | ||
509 | mouse_opaque="true" | ||
510 | multi_select="false" | ||
511 | search_column="2" | ||
512 | width="339"> | ||
454 | <column label="" name="icon" width="24" /> | 513 | <column label="" name="icon" width="24" /> |
455 | <column label="" name="type" width="-1" /> | 514 | <column label="" name="type" width="-1" /> |
456 | <column label="Name" name="name" width="215" /> | 515 | <column label="Name" name="name" dynamicwidth="true" /> |
457 | <column label="Traffic" name="dwell" width="75" /> | 516 | <column label="Traffic" name="dwell" width="75" /> |
458 | </scroll_list> | 517 | </scroll_list> |
459 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 518 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
@@ -529,8 +588,8 @@ To buy direct, visit the land and click on the place name in the title bar. | |||
529 | multi_select="false" name="results" search_column="2" width="339"> | 588 | multi_select="false" name="results" search_column="2" width="339"> |
530 | <column label="" name="icon" width="24" sort="score" sort_ascending="false" /> | 589 | <column label="" name="icon" width="24" sort="score" sort_ascending="false" /> |
531 | <column label="" name="type" width="-1" /> | 590 | <column label="" name="type" width="-1" /> |
532 | <column label="Name" name="name" width="184" /> | 591 | <column label="Name" name="name" dynamicwidth="true" /> |
533 | <column label="Members" name="members" width="100" halign="right" sort_ascending="false" /> | 592 | <column label="Members" name="members" width="100" halign="left" sort_ascending="false" /> |
534 | <column label="" name="score" width="-1"/> | 593 | <column label="" name="score" width="-1"/> |
535 | </scroll_list> | 594 | </scroll_list> |
536 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 595 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
@@ -538,15 +597,60 @@ To buy direct, visit the land and click on the place name in the title bar. | |||
538 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" | 597 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" |
539 | mouse_opaque="true" name="result_text" v_pad="0" width="328" /> | 598 | mouse_opaque="true" name="result_text" v_pad="0" width="328" /> |
540 | </panel> | 599 | </panel> |
600 | <panel border="true" bottom="-549" follows="left|top|right|bottom" height="533" | ||
601 | label="All (old)" left="1" mouse_opaque="false" | ||
602 | name="find_all_old_panel" width="778"> | ||
603 | <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" | ||
604 | height="20" label="< Prev" label_selected="< Prev" left="80" | ||
605 | mouse_opaque="true" name="< Prev" width="60" /> | ||
606 | <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" | ||
607 | height="20" label="Next >" label_selected="Next >" | ||
608 | mouse_opaque="true" name="Next >" width="60" /> | ||
609 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
610 | bottom="-24" drop_shadow_visible="true" follows="left|top" font="SansSerif" | ||
611 | h_pad="0" halign="left" height="16" left="4" mouse_opaque="true" | ||
612 | name="find" v_pad="0" width="50"> | ||
613 | Find: | ||
614 | </text> | ||
615 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-24" | ||
616 | follows="left|top" font="SansSerif" height="18" left_delta="38" | ||
617 | max_length="63" mouse_opaque="true" name="name" width="128" /> | ||
618 | <button bottom="-26" follows="left|top" font="SansSerif" halign="center" height="20" | ||
619 | label="Search" label_selected="Search" left_delta="136" mouse_opaque="true" | ||
620 | name="Search" width="70" /> | ||
621 | <check_box bottom="-22" control_name="ShowMatureFindAll" follows="left|top" | ||
622 | font="SansSerifSmall" height="16" initial_value="false" | ||
623 | label="Include Mature content" left_delta="78" mouse_opaque="true" | ||
624 | name="incmature" width="156" /> | ||
625 | <scroll_list background_visible="false" bottom="-513" column_padding="0" draw_border="true" | ||
626 | draw_heading="false" fg_disable_color="1, 1, 1, 1" | ||
627 | fg_selected_color="1, 1, 1, 1" fg_unselected_color="1, 1, 1, 1" | ||
628 | follows="left|top|right|bottom" height="464" left="4" mouse_opaque="true" | ||
629 | multi_select="false" name="results" search_column="1" width="339"> | ||
630 | <column label="" name="icon" width="24" /> | ||
631 | <column label="Name" name="name" width="235" /> | ||
632 | <column label="Price" name="price" width="90" /> | ||
633 | <column label="Time (PT)" name="date" width="90" /> | ||
634 | <column label="Time" name="time" width="-1" /> | ||
635 | <column label="Traffic" name="dwell" width="90" /> | ||
636 | <column label="Area" name="area" width="90" /> | ||
637 | <column label="L$/sq.m" name="per_meter" width="90" /> | ||
638 | <column label="Online" name="online" width="90" /> | ||
639 | <column label="Members" name="members" width="90" /> | ||
640 | </scroll_list> | ||
641 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
642 | bottom_delta="-20" drop_shadow_visible="true" follows="left|bottom" | ||
643 | font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" | ||
644 | mouse_opaque="true" name="result_text" v_pad="0" width="328" /> | ||
645 | </panel> | ||
541 | </tab_container> | 646 | </tab_container> |
542 | <panel bottom="0" height="470" left="340" name="classified_details_panel" width="440" /> | 647 | <panel follows="right|top" bottom="-560" height="470" left="340" name="classified_details_panel" width="440" /> |
543 | <panel bottom="-550" height="486" left="350" name="Panel Avatar" width="430" /> | 648 | <panel follows="right|top" bottom="-560" height="486" left="350" name="Panel Avatar" width="430" /> |
544 | <panel bottom="0" height="470" left="340" name="event_details_panel" width="440" /> | 649 | <panel follows="right|top" bottom="-560" height="470" left="340" name="event_details_panel" width="440" /> |
545 | <panel bottom="0" height="515" left="350" name="group_details_panel_holder" | 650 | <panel follows="right|top" bottom="-580" height="515" left="350" name="group_details_panel_holder" width="430"> |
546 | width="430"> | 651 | <panel follows="right|top" bottom="0" height="470" left="0" name="group_details_panel" width="430" /> |
547 | <panel bottom="0" height="470" left="0" name="group_details_panel" width="430" /> | ||
548 | </panel> | 652 | </panel> |
549 | <panel bottom="20" height="470" left="340" name="place_details_panel" width="440" /> | 653 | <panel follows="right|top" bottom="20" height="470" left="340" name="place_details_panel" width="440" /> |
550 | <panel bottom="20" height="470" left="385" name="place_details_small_panel" | 654 | <panel follows="right|top" bottom="20" height="470" left="385" name="place_details_small_panel" |
551 | width="395" /> | 655 | width="395" /> |
552 | </floater> | 656 | </floater> |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_html_help.xml b/linden/indra/newview/skins/xui/en-us/floater_html_help.xml index fa5a7db..91c0873 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_html_help.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_html_help.xml | |||
@@ -5,15 +5,21 @@ | |||
5 | <button bottom="-45" follows="top|left" font="SansSerifSmall" height="20" label="Back" | 5 | <button bottom="-45" follows="top|left" font="SansSerifSmall" height="20" label="Back" |
6 | left="15" name="back_btn" width="70" /> | 6 | left="15" name="back_btn" width="70" /> |
7 | <button bottom_delta="0" follows="top|left" font="SansSerifSmall" height="20" | 7 | <button bottom_delta="0" follows="top|left" font="SansSerifSmall" height="20" |
8 | label="Home" left_delta="75" name="home_btn" width="70" /> | ||
9 | <button bottom_delta="0" follows="top|left" font="SansSerifSmall" height="20" | ||
10 | label="Forward" left_delta="75" name="forward_btn" width="70" /> | 8 | label="Forward" left_delta="75" name="forward_btn" width="70" /> |
11 | <button bottom="10" follows="bottom|right" font="SansSerifSmall" height="20" | 9 | <button bottom_delta="0" follows="top|left" font="SansSerifSmall" height="20" |
12 | label="Close" name="close_btn" right="-10" width="50" /> | 10 | label="Home" left_delta="75" name="home_btn" width="70" /> |
13 | <web_browser bottom="40" follows="top|left|bottom|right" font="SansSerifSmall" left="15" | 11 | <text bottom_delta="5" |
14 | name="html_help_browser" right="-15" top="-55" start_url="http://secondlife.com/app/help/" /> | 12 | follows="top|left|right" |
15 | <text bottom="5" follows="bottom|left|right" left="15" name="status_text" right="-70" | 13 | left_delta="100" |
16 | top="25"> | 14 | name="status_text" |
17 | Done | 15 | right="-5" |
16 | height="16"> | ||
17 | Ready | ||
18 | </text> | 18 | </text> |
19 | <web_browser name="html_help_browser" | ||
20 | bottom="10" | ||
21 | follows="top|left|bottom|right" | ||
22 | font="SansSerifSmall" | ||
23 | left="15" | ||
24 | right="-15" top="-55" start_url="http://secondlife.com/app/help/" /> | ||
19 | </floater> | 25 | </floater> |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_lagmeter.xml b/linden/indra/newview/skins/xui/en-us/floater_lagmeter.xml index 0aa42cb..9e2c410 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_lagmeter.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_lagmeter.xml | |||
@@ -362,7 +362,7 @@ | |||
362 | 600 | 362 | 600 |
363 | </text> | 363 | </text> |
364 | <text hidden="true" name="network_ping_warning_ms"> | 364 | <text hidden="true" name="network_ping_warning_ms"> |
365 | 250 | 365 | 300 |
366 | </text> | 366 | </text> |
367 | <text hidden="true" name="network_ping_critical_msg"> | 367 | <text hidden="true" name="network_ping_critical_msg"> |
368 | Connection ping time is over [NETWORK_PING_CRITICAL] ms | 368 | Connection ping time is over [NETWORK_PING_CRITICAL] ms |
@@ -423,4 +423,4 @@ | |||
423 | <text hidden="true" name="bigger_label"> | 423 | <text hidden="true" name="bigger_label"> |
424 | << | 424 | << |
425 | </text> | 425 | </text> |
426 | </floater> \ No newline at end of file | 426 | </floater> |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_landmark_ctrl.xml b/linden/indra/newview/skins/xui/en-us/floater_landmark_ctrl.xml new file mode 100644 index 0000000..07a709a --- /dev/null +++ b/linden/indra/newview/skins/xui/en-us/floater_landmark_ctrl.xml | |||
@@ -0,0 +1,40 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater bottom="-516" can_close="true" can_drag_on_left="false" can_minimize="false" | ||
3 | can_resize="true" can_tear_off="true" enabled="true" height="320" | ||
4 | hidden="false" left="478" min_height="310" min_width="241" rect_control="FloaterLandmarkRect" | ||
5 | mouse_opaque="true" name="landmarkpicker" title="Organize: Landmarks" width="310"> | ||
6 | <check_box bottom="-44" enabled="true" follows="left|top" font="SansSerifSmall" | ||
7 | height="24" hidden="false" initial_value="true" label="Show Folders" | ||
8 | left="175" mouse_opaque="true" name="show_folders_check" | ||
9 | radio_style="false" width="201" /> | ||
10 | <search_editor bottom="-36" enabled="true" follows="left|top" height="16" hidden="false" | ||
11 | left="20" mouse_opaque="true" name="inventory search editor" width="231" /> | ||
12 | <inventory_panel allow_multi_select="false" border="true" bottom="-256" enabled="true" | ||
13 | follows="left|top|right|bottom" height="216" hidden="false" left="20" | ||
14 | mouse_opaque="true" name="inventory panel" | ||
15 | sort_order="TexturePickerSortOrder" width="231" /> | ||
16 | <button bottom="-282" enabled="true" follows="bottom" font="SansSerif" | ||
17 | halign="center" height="20" hidden="false" label="New" | ||
18 | label_selected="New" left="20" mouse_opaque="true" name="New" | ||
19 | scale_image="true" width="100" /> | ||
20 | <button bottom="-282" enabled="true" follows="bottom" font="SansSerif" | ||
21 | halign="center" height="20" hidden="false" label="Rename" | ||
22 | label_selected="Rename" left="125" mouse_opaque="true" name="Rename" | ||
23 | scale_image="true" width="100" /> | ||
24 | <button bottom="-282" enabled="true" follows="bottom" font="SansSerif" | ||
25 | halign="center" height="20" hidden="false" label="New Folder" | ||
26 | label_selected="New Folder" left="230" mouse_opaque="true" name="NewFolder" | ||
27 | scale_image="true" width="100" /> | ||
28 | <button bottom="-307" enabled="true" follows="bottom" font="SansSerif" | ||
29 | halign="center" height="20" hidden="false" label="Edit" | ||
30 | label_selected="Edit" left="20" mouse_opaque="true" name="Edit" | ||
31 | scale_image="true" width="100" /> | ||
32 | <button bottom="-307" enabled="true" follows="bottom" font="SansSerif" | ||
33 | halign="center" height="20" hidden="false" label="Delete" | ||
34 | label_selected="Delete" left="125" mouse_opaque="true" name="Delete" | ||
35 | scale_image="true" width="100" /> | ||
36 | <button bottom="-307" enabled="true" follows="bottom" font="SansSerif" | ||
37 | halign="center" height="20" hidden="false" label="Close" | ||
38 | label_selected="Close" left="230" mouse_opaque="true" name="Close" | ||
39 | scale_image="true" width="100" /> | ||
40 | </floater> | ||
diff --git a/linden/indra/newview/skins/xui/en-us/floater_preview_classified.xml b/linden/indra/newview/skins/xui/en-us/floater_preview_classified.xml new file mode 100644 index 0000000..5a6e739 --- /dev/null +++ b/linden/indra/newview/skins/xui/en-us/floater_preview_classified.xml | |||
@@ -0,0 +1,8 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater bottom="-311" can_close="true" can_drag_on_left="false" can_minimize="true" | ||
3 | can_resize="false" enabled="true" height="510" hidden="false" left="242" | ||
4 | min_height="480" min_width="450" mouse_opaque="true" | ||
5 | name="classified_preview" width="440" title="Classified Information" rect_control="PreviewClassifiedRect"> | ||
6 | <panel follows="bottom|left" bottom="20" height="470" left="0" name="classified_details_panel" width="440" /> | ||
7 | |||
8 | </floater> | ||
diff --git a/linden/indra/newview/skins/xui/en-us/floater_preview_event.xml b/linden/indra/newview/skins/xui/en-us/floater_preview_event.xml new file mode 100644 index 0000000..2eaebfe --- /dev/null +++ b/linden/indra/newview/skins/xui/en-us/floater_preview_event.xml | |||
@@ -0,0 +1,8 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater bottom="-311" can_close="true" can_drag_on_left="false" can_minimize="true" | ||
3 | can_resize="false" enabled="true" height="510" hidden="false" left="242" | ||
4 | min_height="480" min_width="450" mouse_opaque="true" | ||
5 | name="event_preview" width="440" title="Event Information" rect_control="PreviewEventRect"> | ||
6 | <panel follows="bottom|left" bottom="20" height="470" left="0" name="event_details_panel" width="440" /> | ||
7 | |||
8 | </floater> | ||
diff --git a/linden/indra/newview/skins/xui/en-us/floater_preview_existing_landmark.xml b/linden/indra/newview/skins/xui/en-us/floater_preview_existing_landmark.xml index 7d7d435..cbf5da4 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_preview_existing_landmark.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_preview_existing_landmark.xml | |||
@@ -1,28 +1,8 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <floater bottom="-311" can_close="true" can_drag_on_left="false" can_minimize="true" | 2 | <floater bottom="-311" can_close="true" can_drag_on_left="false" can_minimize="true" |
3 | can_resize="false" enabled="true" height="90" hidden="false" left="242" | 3 | can_resize="false" enabled="true" height="495" hidden="false" left="242" |
4 | min_height="90" min_width="300" mouse_opaque="true" | 4 | min_height="510" min_width="460" mouse_opaque="true" |
5 | name="existing_landmark_preview" width="300"> | 5 | name="existing_landmark_preview" width="440"> |
6 | <line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-43" | 6 | <panel follows="bottom|left" bottom="0" height="475" left="0" name="place_details_panel" width="440" /> |
7 | enabled="true" follows="left|top|right" font="SansSerif" | 7 | |
8 | handle_edit_keys_directly="false" height="19" hidden="false" left="13" | ||
9 | max_length="127" mouse_opaque="true" name="desc" | ||
10 | select_all_on_focus_received="false" select_on_focus="false" width="274" /> | ||
11 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
12 | bottom="-38" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
13 | font="SansSerif" h_pad="0" halign="left" height="19" hidden="false" | ||
14 | left="13" mouse_opaque="true" name="desc txt" v_pad="0" width="80"> | ||
15 | Description: | ||
16 | </text> | ||
17 | <icon bottom="-21" color="1 1 1 1" enabled="true" follows="left|top" height="16" | ||
18 | hidden="false" image_name="inv_item_landmark_visited.tga" left="5" | ||
19 | mouse_opaque="true" name="icon_landmark" width="16" /> | ||
20 | <button bottom="-77" enabled="true" follows="left|bottom" font="SansSerif" | ||
21 | halign="center" height="20" hidden="false" label="Teleport" | ||
22 | label_selected="" left="13" mouse_opaque="true" name="Teleport btn" | ||
23 | width="100" /> | ||
24 | <button bottom="-77" enabled="true" follows="left|bottom" font="SansSerif" | ||
25 | halign="center" height="20" hidden="false" label="Show on Map" | ||
26 | label_selected="" left="126" mouse_opaque="true" name="Show on Map btn" | ||
27 | width="100" /> | ||
28 | </floater> | 8 | </floater> |
diff --git a/linden/indra/newview/skins/xui/en-us/floater_preview_url.xml b/linden/indra/newview/skins/xui/en-us/floater_preview_url.xml new file mode 100644 index 0000000..fcc04c5 --- /dev/null +++ b/linden/indra/newview/skins/xui/en-us/floater_preview_url.xml | |||
@@ -0,0 +1,8 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater bottom="-311" can_close="true" can_drag_on_left="false" can_minimize="true" | ||
3 | can_resize="false" enabled="true" height="495" hidden="false" left="242" | ||
4 | mouse_opaque="true" | ||
5 | name="url_preview" width="440" title="Place Information" rect_control="PreviewURLRect"> | ||
6 | <panel follows="bottom|left" bottom="0" height="475" left="0" name="place_details_panel" width="440" /> | ||
7 | |||
8 | </floater> | ||
diff --git a/linden/indra/newview/skins/xui/en-us/floater_tools.xml b/linden/indra/newview/skins/xui/en-us/floater_tools.xml index a2ad5f1..cb237fa 100644 --- a/linden/indra/newview/skins/xui/en-us/floater_tools.xml +++ b/linden/indra/newview/skins/xui/en-us/floater_tools.xml | |||
@@ -426,7 +426,7 @@ | |||
426 | hidden="false" initial_value="false" label="Allow anyone to copy" left="10" | 426 | hidden="false" initial_value="false" label="Allow anyone to copy" left="10" |
427 | mouse_opaque="true" name="checkbox allow everyone copy" width="141" /> | 427 | mouse_opaque="true" name="checkbox allow everyone copy" width="141" /> |
428 | <check_box bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="16" | 428 | <check_box bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="16" |
429 | initial_value="false" label="Show in Search" left="10" | 429 | initial_value="false" label="Show in search" left="10" |
430 | name="search_check" tool_tip="Let people see this object in search results" width="78" /> | 430 | name="search_check" tool_tip="Let people see this object in search results" width="78" /> |
431 | <check_box bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="16" | 431 | <check_box bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="16" |
432 | hidden="false" initial_value="false" label="For Sale" left="10" | 432 | hidden="false" initial_value="false" label="For Sale" left="10" |
diff --git a/linden/indra/newview/skins/xui/en-us/menu_inventory.xml b/linden/indra/newview/skins/xui/en-us/menu_inventory.xml index a57a8b6..c13b81e 100644 --- a/linden/indra/newview/skins/xui/en-us/menu_inventory.xml +++ b/linden/indra/newview/skins/xui/en-us/menu_inventory.xml | |||
@@ -184,9 +184,9 @@ | |||
184 | <on_click filter="" function="Inventory.DoToSelected" userdata="open" /> | 184 | <on_click filter="" function="Inventory.DoToSelected" userdata="open" /> |
185 | </menu_item_call> | 185 | </menu_item_call> |
186 | <menu_item_separator name="Landmark Separator" /> | 186 | <menu_item_separator name="Landmark Separator" /> |
187 | <menu_item_call bottom_delta="-18" height="18" hidden="false" label="Teleport To Landmark" | 187 | <menu_item_call bottom_delta="-18" height="18" hidden="false" label="About Landmark" |
188 | left="0" mouse_opaque="true" name="Teleport To Landmark" width="128"> | 188 | left="0" mouse_opaque="true" name="Teleport To Landmark" width="128"> |
189 | <on_click filter="" function="Inventory.DoToSelected" userdata="teleport" /> | 189 | <on_click filter="" function="Inventory.DoToSelected" userdata="about" /> |
190 | </menu_item_call> | 190 | </menu_item_call> |
191 | <menu_item_separator name="Animation Separator" /> | 191 | <menu_item_separator name="Animation Separator" /> |
192 | <menu_item_call bottom_delta="-18" height="18" hidden="false" label="Play in World" left="0" | 192 | <menu_item_call bottom_delta="-18" height="18" hidden="false" label="Play in World" left="0" |
diff --git a/linden/indra/newview/skins/xui/en-us/menu_slurl.xml b/linden/indra/newview/skins/xui/en-us/menu_slurl.xml new file mode 100644 index 0000000..0682334 --- /dev/null +++ b/linden/indra/newview/skins/xui/en-us/menu_slurl.xml | |||
@@ -0,0 +1,17 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <menu bottom="100" color="0, 0, 0, 1" drop_shadow="true" height="101" hidden="false" | ||
3 | left="100" mouse_opaque="false" name="Popup" opaque="true" width="128"> | ||
4 | <menu_item_separator name="Landmark Separator" /> | ||
5 | <menu_item_call bottom_delta="-18" height="18" hidden="false" label="About URL" | ||
6 | left="0" mouse_opaque="true" name="about_url" width="128"> | ||
7 | <on_click filter="" function="Inventory.DoToSelected" userdata="about" /> | ||
8 | </menu_item_call> | ||
9 | <menu_item_call bottom_delta="-18" height="18" hidden="false" label="Teleport to URL" | ||
10 | left="0" mouse_opaque="true" name="teleport_to_url" width="128"> | ||
11 | <on_click filter="" function="Inventory.DoToSelected" userdata="about" /> | ||
12 | </menu_item_call> | ||
13 | <menu_item_call bottom_delta="-18" height="18" hidden="false" label="Show on Map" | ||
14 | left="0" mouse_opaque="true" name="show_on_map" width="128"> | ||
15 | <on_click filter="" function="Inventory.DoToSelected" userdata="about" /> | ||
16 | </menu_item_call> | ||
17 | </menu> | ||
diff --git a/linden/indra/newview/skins/xui/en-us/menu_viewer.xml b/linden/indra/newview/skins/xui/en-us/menu_viewer.xml index cb6835c..3b289d4 100644 --- a/linden/indra/newview/skins/xui/en-us/menu_viewer.xml +++ b/linden/indra/newview/skins/xui/en-us/menu_viewer.xml | |||
@@ -810,7 +810,7 @@ | |||
810 | left="0" mouse_opaque="true" name="separator7" width="250" /> | 810 | left="0" mouse_opaque="true" name="separator7" width="250" /> |
811 | <menu bottom="-554" drop_shadow="true" enabled="true" height="109" | 811 | <menu bottom="-554" drop_shadow="true" enabled="true" height="109" |
812 | hidden="false" label="Bug Reporting" left="0" mouse_opaque="false" | 812 | hidden="false" label="Bug Reporting" left="0" mouse_opaque="false" |
813 | name="Select Tool" opaque="true" tear_off="true" create_jump_keys="true" | 813 | name="Bug Reporting" opaque="true" tear_off="true" create_jump_keys="true" |
814 | width="118"> | 814 | width="118"> |
815 | <menu_item_call bottom="-94" enabled="true" height="19" hidden="false" | 815 | <menu_item_call bottom="-94" enabled="true" height="19" hidden="false" |
816 | label="Public Issue Tracker..." left="0" mouse_opaque="true" | 816 | label="Public Issue Tracker..." left="0" mouse_opaque="true" |
diff --git a/linden/indra/newview/skins/xui/en-us/notify.xml b/linden/indra/newview/skins/xui/en-us/notify.xml index 5bf5c78..ad9e049 100644 --- a/linden/indra/newview/skins/xui/en-us/notify.xml +++ b/linden/indra/newview/skins/xui/en-us/notify.xml | |||
@@ -960,6 +960,11 @@ Click Accept to join the call or Decline to decline the invitation. Click Mute t | |||
960 | [VOICE_CHANNEL_NAME] is not available to take your call. You will now be reconnected to spatial voice chat. | 960 | [VOICE_CHANNEL_NAME] is not available to take your call. You will now be reconnected to spatial voice chat. |
961 | </message> | 961 | </message> |
962 | </notify> | 962 | </notify> |
963 | <notify name="VoiceChannelJoinFailed" tip="true" unique="true"> | ||
964 | <message name="message"> | ||
965 | Failed to connect to [VOICE_CHANNEL_NAME], please try again later. You will now be reconnected to spatial voice chat. | ||
966 | </message> | ||
967 | </notify> | ||
963 | <notify name="VoiceLoginRetry" tip="true" unique="true" duration="10"> | 968 | <notify name="VoiceLoginRetry" tip="true" unique="true" duration="10"> |
964 | <message name="message"> | 969 | <message name="message"> |
965 | We are creating a voice channel for you. This may take up to one minute. | 970 | We are creating a voice channel for you. This may take up to one minute. |
diff --git a/linden/indra/newview/skins/xui/en-us/panel_avatar.xml b/linden/indra/newview/skins/xui/en-us/panel_avatar.xml index 2e16380..fa64706 100644 --- a/linden/indra/newview/skins/xui/en-us/panel_avatar.xml +++ b/linden/indra/newview/skins/xui/en-us/panel_avatar.xml | |||
@@ -62,7 +62,7 @@ | |||
62 | mouse_opaque="true" name="label2" v_pad="0" width="121"> | 62 | mouse_opaque="true" name="label2" v_pad="0" width="121"> |
63 | Account: | 63 | Account: |
64 | </text> | 64 | </text> |
65 | <view_border blevel_style="in" bottom_delta="-32" follows="left|top" height="32" left="279" | 65 | <view_border bevel_style="in" bottom_delta="-32" follows="left|top" height="32" left="279" |
66 | mouse_opaque="false" name="acct_border" width="121" /> | 66 | mouse_opaque="false" name="acct_border" width="121" /> |
67 | <text bg_color="0, 0, 0, 0" bg_visible="false" border_drop_shadow_visible="false" | 67 | <text bg_color="0, 0, 0, 0" bg_visible="false" border_drop_shadow_visible="false" |
68 | border_visible="true" bottom_delta="0" drop_shadow_visible="true" | 68 | border_visible="true" bottom_delta="0" drop_shadow_visible="true" |
@@ -144,7 +144,7 @@ | |||
144 | Drop inventory item here. | 144 | Drop inventory item here. |
145 | </text> | 145 | </text> |
146 | <check_box bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="16" | 146 | <check_box bottom_delta="-20" follows="left|top" font="SansSerifSmall" height="16" |
147 | initial_value="false" label="Show In Search" left="75" | 147 | initial_value="false" label="Show in search" left="75" |
148 | mouse_opaque="true" name="allow_publish" | 148 | mouse_opaque="true" name="allow_publish" |
149 | tool_tip="Publish extra profile information such as description and image in Search." width="130" /> | 149 | tool_tip="Publish extra profile information such as description and image in Search." width="130" /> |
150 | <button bottom="-423" follows="left|top" font="SansSerif" halign="center" height="16" | 150 | <button bottom="-423" follows="left|top" font="SansSerif" halign="center" height="16" |
diff --git a/linden/indra/newview/skins/xui/en-us/panel_group_general.xml b/linden/indra/newview/skins/xui/en-us/panel_group_general.xml index 05252ab..fb1e082 100644 --- a/linden/indra/newview/skins/xui/en-us/panel_group_general.xml +++ b/linden/indra/newview/skins/xui/en-us/panel_group_general.xml | |||
@@ -79,25 +79,25 @@ Hover your mouse over the options for more help. | |||
79 | bottom_delta="-104" follows="left|top" height="96" left_delta="0" | 79 | bottom_delta="-104" follows="left|top" height="96" left_delta="0" |
80 | mouse_opaque="true" name="preferences_container" width="404"> | 80 | mouse_opaque="true" name="preferences_container" width="404"> |
81 | <check_box bottom="-20" follows="left|top" font="SansSerifSmall" height="16" | 81 | <check_box bottom="-20" follows="left|top" font="SansSerifSmall" height="16" |
82 | initial_value="true" label="Show In Search" left="4" | 82 | initial_value="true" label="Show in search" left="4" |
83 | mouse_opaque="true" name="show_in_group_list" radio_style="false" | 83 | mouse_opaque="true" name="show_in_group_list" radio_style="false" |
84 | text_disabled_color="0.67647, 0.76275, 0.93529, 0.45" | 84 | text_disabled_color="0.67647, 0.76275, 0.93529, 0.45" |
85 | tool_tip="Let people see this group in search results." | 85 | tool_tip="Let people see this group in search results." |
86 | width="95" /> | 86 | width="95" /> |
87 | <check_box bottom_delta="-18" follows="left|top" font="SansSerifSmall" height="16" | 87 | <check_box bottom_delta="-18" follows="left|top" font="SansSerifSmall" height="16" |
88 | initial_value="false" label="Mature Group" left_delta="0" mouse_opaque="true" | 88 | initial_value="false" label="Mature group" left_delta="0" mouse_opaque="true" |
89 | name="mature" radio_style="false" | 89 | name="mature" radio_style="false" |
90 | text_disabled_color="0.67647, 0.76275, 0.93529, 0.45" | 90 | text_disabled_color="0.67647, 0.76275, 0.93529, 0.45" |
91 | tool_tip="Sets whether your group information is considered mature." | 91 | tool_tip="Sets whether your group information is considered mature." |
92 | visible="true" width="95" /> | 92 | visible="true" width="95" /> |
93 | <check_box bottom_delta="-18" follows="right|top" font="SansSerifSmall" height="16" | 93 | <check_box bottom_delta="-18" follows="right|top" font="SansSerifSmall" height="16" |
94 | initial_value="false" label="Open Enrollment" left="4" | 94 | initial_value="false" label="Open enrollment" left="4" |
95 | mouse_opaque="true" name="open_enrollement" radio_style="false" | 95 | mouse_opaque="true" name="open_enrollement" radio_style="false" |
96 | text_disabled_color="0.67647, 0.76275, 0.93529, 0.45" | 96 | text_disabled_color="0.67647, 0.76275, 0.93529, 0.45" |
97 | tool_tip="Sets whether this group allows new members to join without being invited." | 97 | tool_tip="Sets whether this group allows new members to join without being invited." |
98 | width="95" /> | 98 | width="95" /> |
99 | <check_box bottom_delta="-18" follows="left|top" font="SansSerifSmall" height="16" | 99 | <check_box bottom_delta="-18" follows="left|top" font="SansSerifSmall" height="16" |
100 | initial_value="false" label="Enrollment Fee: L$" left_delta="16" | 100 | initial_value="false" label="Enrollment fee: L$" left_delta="16" |
101 | max_length="5" mouse_opaque="true" name="check_enrollment_fee" | 101 | max_length="5" mouse_opaque="true" name="check_enrollment_fee" |
102 | radio_style="false" text_disabled_color="0.67647, 0.76275, 0.93529, 0.45" | 102 | radio_style="false" text_disabled_color="0.67647, 0.76275, 0.93529, 0.45" |
103 | tool_tip="Sets whether to require an enrollment fee to join the group." | 103 | tool_tip="Sets whether to require an enrollment fee to join the group." |
@@ -121,12 +121,12 @@ Hover your mouse over the options for more help. | |||
121 | tool_tip="Sets the title that appears in your avatar's name tag when this group is active." /> | 121 | tool_tip="Sets the title that appears in your avatar's name tag when this group is active." /> |
122 | </panel> | 122 | </panel> |
123 | <check_box follows="left|top" font="SansSerifSmall" height="16" bottom_delta="-25" | 123 | <check_box follows="left|top" font="SansSerifSmall" height="16" bottom_delta="-25" |
124 | initial_value="false" label="Receive Group Notices" left_delta="0" | 124 | initial_value="false" label="Receive group notices" left_delta="0" |
125 | mouse_opaque="true" name="receive_notices" radio_style="false" | 125 | mouse_opaque="true" name="receive_notices" radio_style="false" |
126 | tool_tip="Sets whether you want to receive Notices from this group. Uncheck this box if this group is spamming you." | 126 | tool_tip="Sets whether you want to receive Notices from this group. Uncheck this box if this group is spamming you." |
127 | width="95" /> | 127 | width="95" /> |
128 | <check_box bottom_delta="-18" follows="left|top" font="SansSerifSmall" height="16" | 128 | <check_box bottom_delta="-18" follows="left|top" font="SansSerifSmall" height="16" |
129 | initial_value="false" label="List Group in Profile" left_delta="0" | 129 | initial_value="false" label="List group in my profile" left_delta="0" |
130 | mouse_opaque="true" name="list_groups_in_profile" radio_style="false" | 130 | mouse_opaque="true" name="list_groups_in_profile" radio_style="false" |
131 | tool_tip="Sets whether you want to list this group in your Profile" | 131 | tool_tip="Sets whether you want to list this group in your Profile" |
132 | width="95" /> | 132 | width="95" /> |
diff --git a/linden/indra/newview/skins/xui/en-us/panel_place.xml b/linden/indra/newview/skins/xui/en-us/panel_place.xml index 06efe6c..479e8be 100644 --- a/linden/indra/newview/skins/xui/en-us/panel_place.xml +++ b/linden/indra/newview/skins/xui/en-us/panel_place.xml | |||
@@ -1,29 +1,53 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel border="false" bottom="20" can_close="true" can_minimize="true" | 2 | <panel border="false" bottom="20" can_close="true" can_minimize="true" |
3 | can_resize="false" follows="bottom|left" height="470" left="330" | 3 | can_resize="false" follows="bottom|left" height="400" left="330" |
4 | name="Place" title="Place" width="450"> | 4 | name="Place" title="Place" width="450"> |
5 | <texture_picker bottom="-315" follows="left|top" height="300" left="20" name="snapshot_ctrl" | 5 | <texture_picker bottom="95" follows="left|top" height="300" left="20" name="snapshot_ctrl" |
6 | width="400" /> | 6 | width="400" /> |
7 | <line_editor bg_readonly_color="clear" bottom_delta="-8" enabled="false" follows="left|top" | 7 | <text bottom_delta="-10" follows="left|top" |
8 | font="SansSerif" height="20" left="20" name="name_editor" | 8 | font="SansSerif" height="20" left="20"> |
9 | text_readonly_color="white" width="400" /> | 9 | Name: |
10 | <text_editor bg_readonly_color="clear" enabled="false" follows="left|top" font="SansSerif" | 10 | </text> |
11 | <text bottom_delta="0" follows="left|top" | ||
12 | font="SansSerif" height="20" left="60" name="name_editor" | ||
13 | text_color="white" | ||
14 | width="361" /> | ||
15 | |||
16 | <text bottom_delta="-20" follows="left|top" | ||
17 | font="SansSerif" height="20" left="20"> | ||
18 | Description: | ||
19 | </text> | ||
20 | <text_editor bottom_delta="-68" bg_readonly_color="clear" enabled="false" follows="left|top" font="SansSerif" | ||
11 | height="70" left="20" max_length="1023" name="desc_editor" | 21 | height="70" left="20" max_length="1023" name="desc_editor" |
12 | text_readonly_color="white" width="400" word_wrap="true" /> | 22 | text_readonly_color="white" width="400" word_wrap="true"></text_editor> |
13 | <line_editor bg_readonly_color="clear" enabled="false" follows="left|top" font="SansSerif" | 23 | |
14 | height="20" left="20" name="info_editor" text_readonly_color="white" | 24 | <text bottom_delta="-25" follows="left|top" |
15 | width="400" /> | 25 | font="SansSerif" height="20" left="20"> |
16 | <line_editor bg_readonly_color="clear" enabled="false" follows="left|top" font="SansSerif" | 26 | Information: |
17 | height="20" left="20" name="location_editor" text_readonly_color="white" | 27 | </text> |
18 | width="400" /> | 28 | <text bottom_delta="0" follows="left|top" font="SansSerif" |
19 | <button bottom_delta="-30" follows="left|top" height="20" label="Teleport" left="20" | 29 | text_color="white" |
20 | name="teleport_btn" width="120" /> | 30 | height="20" left="95" name="info_editor" width="328" /> |
21 | <button bottom_delta="0" follows="left|top" height="20" label="Show on Map" left="150" | 31 | |
32 | <text bottom_delta="-20" follows="left|top" | ||
33 | font="SansSerif" height="20" left="20"> | ||
34 | Location: | ||
35 | </text> | ||
36 | <text bottom_delta="0" follows="left|top" font="SansSerif" | ||
37 | height="20" left="95" name="location_editor" | ||
38 | width="342" text_color="white" /> | ||
39 | |||
40 | <button bottom_delta="-20" follows="left|top" height="20" label="Teleport" left="20" | ||
41 | name="teleport_btn" width="100" /> | ||
42 | <button bottom_delta="0" follows="left|top" height="20" label="Show on Map" left="130" | ||
22 | name="map_btn" width="100" /> | 43 | name="map_btn" width="100" /> |
23 | <button bottom_delta="0" follows="left|top" height="20" label="Bids..." left="275" | 44 | <button bottom_delta="0" follows="left|top" height="20" label="Bids..." left="275" |
24 | name="auction_btn" width="80" /> | 45 | name="auction_btn" width="80" /> |
25 | <string name="traffic_text">Traffic: [TRAFFIC]</string> | 46 | <string name="traffic_text">Traffic: [TRAFFIC] </string> |
26 | <string name="area_text">, Area: [AREA] sq. m.</string> | 47 | <string name="area_text"> Area: [AREA] sq. m. </string> |
27 | <string name="forsale_text">, For Sale for L$ [PRICE]</string> | 48 | <string name="forsale_text"> For Sale for L$ [PRICE] </string> |
28 | <string name="auction_text">, Auction ID [ID].</string> | 49 | <string name="auction_text"> Auction ID [ID]. </string> |
50 | <text hidden="true" name="server_update_text">Place information not available without server update.</text> | ||
51 | <text hidden="true" name="server_error_text">Information about this location is unavailable at this time, please try again later.</text> | ||
52 | <text hidden="true" name="server_forbidden_text">Information about this location is unavailable due to access restrictions. Please check your permissions with the parcel owner.</text> | ||
29 | </panel> | 53 | </panel> |
diff --git a/linden/indra/newview/skins/xui/en-us/panel_place_small.xml b/linden/indra/newview/skins/xui/en-us/panel_place_small.xml index f7523df..0b846f1 100644 --- a/linden/indra/newview/skins/xui/en-us/panel_place_small.xml +++ b/linden/indra/newview/skins/xui/en-us/panel_place_small.xml | |||
@@ -1,29 +1,53 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel border="false" bottom="20" can_close="true" can_minimize="true" | 2 | <panel border="false" bottom="20" can_close="true" can_minimize="true" |
3 | can_resize="false" follows="bottom|left" height="470" left="380" | 3 | can_resize="false" follows="bottom|left" height="400" left="380" |
4 | name="Place" title="Place" width="450"> | 4 | name="Place" title="Place" width="450"> |
5 | <texture_picker bottom="-285" follows="left|top" height="270" left="20" name="snapshot_ctrl" | 5 | <texture_picker bottom="-274" follows="left|top" height="270" left="20" name="snapshot_ctrl" |
6 | width="360" /> | 6 | width="360" /> |
7 | <line_editor bg_readonly_color="clear" bottom_delta="-8" enabled="false" follows="left|top" | 7 | <text bottom_delta="-12" follows="left|top" |
8 | font="SansSerif" height="20" left="20" name="name_editor" | 8 | font="SansSerif" height="20" left="20"> |
9 | text_readonly_color="white" width="360" /> | 9 | Name: |
10 | <text_editor bg_readonly_color="clear" enabled="false" follows="left|top" font="SansSerif" | 10 | </text> |
11 | <text bottom_delta="0" follows="left|top" | ||
12 | font="SansSerif" height="20" left="60" name="name_editor" | ||
13 | text_color="white" | ||
14 | width="320" /> | ||
15 | |||
16 | <text bottom_delta="-24" follows="left|top" | ||
17 | font="SansSerif" height="20" left="20"> | ||
18 | Description: | ||
19 | </text> | ||
20 | <text_editor bottom_delta="-68" bg_readonly_color="clear" enabled="false" follows="left|top" font="SansSerif" | ||
11 | height="70" left="20" max_length="1023" name="desc_editor" | 21 | height="70" left="20" max_length="1023" name="desc_editor" |
12 | text_readonly_color="white" width="360" word_wrap="true" /> | 22 | text_readonly_color="white" width="360" word_wrap="true"></text_editor> |
13 | <line_editor bg_readonly_color="clear" enabled="false" follows="left|top" font="SansSerif" | 23 | |
14 | height="20" left="20" name="info_editor" text_readonly_color="white" | 24 | <text bottom_delta="-30" follows="left|top" |
15 | width="360" /> | 25 | font="SansSerif" height="20" left="20"> |
16 | <line_editor bg_readonly_color="clear" enabled="false" follows="left|top" font="SansSerif" | 26 | Information: |
17 | height="20" left="20" name="location_editor" text_readonly_color="white" | 27 | </text> |
18 | width="360" /> | 28 | <text bottom_delta="0" follows="left|top" font="SansSerif" |
19 | <button bottom_delta="-30" follows="left|top" height="20" label="Teleport" left="20" | 29 | text_color="white" |
30 | height="20" left="95" name="info_editor" width="328" /> | ||
31 | |||
32 | <text bottom_delta="-30" follows="left|top" | ||
33 | font="SansSerif" height="20" left="20"> | ||
34 | Location: | ||
35 | </text> | ||
36 | <text bottom_delta="0" follows="left|top" font="SansSerif" | ||
37 | height="20" left="95" name="location_editor" | ||
38 | width="342" text_color="white" /> | ||
39 | |||
40 | <button bottom_delta="-25" follows="left|top" height="20" label="Teleport" left="20" | ||
20 | name="teleport_btn" width="100" /> | 41 | name="teleport_btn" width="100" /> |
21 | <button bottom_delta="0" follows="left|top" height="20" label="Show on Map" left="125" | 42 | <button bottom_delta="0" follows="left|top" height="20" label="Show on Map" left="130" |
22 | name="map_btn" width="100" /> | 43 | name="map_btn" width="100" /> |
23 | <button bottom_delta="0" follows="left|top" height="20" label="Bids..." left="275" | 44 | <button bottom_delta="0" follows="left|top" height="20" label="Bids..." left="275" |
24 | name="auction_btn" width="80" /> | 45 | name="auction_btn" width="80" /> |
25 | <string name="traffic_text">Traffic: [TRAFFIC]</string> | 46 | <string name="traffic_text">Traffic: [TRAFFIC] </string> |
26 | <string name="area_text">, Area: [AREA] sq. m.</string> | 47 | <string name="area_text"> Area: [AREA] sq. m. </string> |
27 | <string name="forsale_text">, For Sale for L$ [PRICE]</string> | 48 | <string name="forsale_text"> For Sale for L$ [PRICE] </string> |
28 | <string name="auction_text">, Auction ID [ID].</string> | 49 | <string name="auction_text"> Auction ID [ID]. </string> |
50 | <text hidden="true" name="server_update_text">Place information not available without server update.</text> | ||
51 | <text hidden="true" name="server_error_text">Information about this location is unavailable at this time, please try again later.</text> | ||
52 | <text hidden="true" name="server_forbidden_text">Information about this location is unavailable due to access restrictions. Please check your permissions with the parcel owner.</text> | ||
29 | </panel> | 53 | </panel> |
diff --git a/linden/indra/newview/skins/xui/en-us/panel_preferences_LCD.xml b/linden/indra/newview/skins/xui/en-us/panel_preferences_LCD.xml new file mode 100644 index 0000000..bd2eeba --- /dev/null +++ b/linden/indra/newview/skins/xui/en-us/panel_preferences_LCD.xml | |||
@@ -0,0 +1,70 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom" | ||
3 | height="408" hidden="false" label="Logitech LCD" left="102" | ||
4 | mouse_opaque="true" name="LCD Options" width="517"> | ||
5 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
6 | bottom="-20" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
7 | font="SansSerifSmall" h_pad="0" halign="left" height="10" hidden="false" | ||
8 | left="10" mouse_opaque="true" name="LCD Destination:" v_pad="0" | ||
9 | width="266"> | ||
10 | LCD Destination: | ||
11 | </text> | ||
12 | |||
13 | <radio_group bottom="-45" control_name="LCDDestination" draw_border="true" enabled="true" | ||
14 | follows="left|top" height="36" hidden="false" left="148" | ||
15 | mouse_opaque="true" name="LCDDestination" width="193"> | ||
16 | <radio_item type="string" length="1" bottom="-19" enabled="true" follows="left|top" height="16" hidden="false" | ||
17 | tool_tip="Display forms selected appear on Logitech G15 Keyboard LCD" | ||
18 | left="3" mouse_opaque="true" name="DestinationG15" width="463"> | ||
19 | Logitech G15 Gaming Keyboard | ||
20 | </radio_item> | ||
21 | <radio_item type="string" length="1" bottom="-35" enabled="true" follows="left|top" height="16" hidden="false" | ||
22 | tool_tip="Display forms selected appear on Logitech Z10 Speaker LCD" | ||
23 | left="3" mouse_opaque="true" name="DestinationZ10" width="463"> | ||
24 | Logitech Z10 Speakers | ||
25 | </radio_item> | ||
26 | </radio_group> | ||
27 | |||
28 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
29 | bottom="-68" drop_shadow_visible="true" enabled="true" follows="left|top" | ||
30 | font="SansSerifSmall" h_pad="0" halign="left" height="10" hidden="false" | ||
31 | left="10" mouse_opaque="true" name="LCD Display Options" v_pad="0" | ||
32 | width="266"> | ||
33 | LCD Display Options: | ||
34 | </text> | ||
35 | <check_box bottom="-72" control_name="DisplayChat" enabled="true" follows="left|top" | ||
36 | font="SansSerifSmall" height="16" hidden="false" label="Display Chat" | ||
37 | left="148" mouse_opaque="true" name="DisplayChat" radio_style="false" | ||
38 | tool_tip="Display Last Chat line in LCD Window" | ||
39 | width="128" /> | ||
40 | <check_box bottom="-90" control_name="DisplayIM" enabled="true" | ||
41 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | ||
42 | initial_value="false" label="Display IM's" | ||
43 | left="148" mouse_opaque="true" name="DisplayIM" | ||
44 | radio_style="false" | ||
45 | tool_tip="Display Last IM in LCD Window" width="242" /> | ||
46 | <check_box bottom="-108" control_name="DisplayRegion" enabled="true" | ||
47 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | ||
48 | initial_value="false" label="Show Location Information" left="148" | ||
49 | mouse_opaque="true" name="DisplayRegion" radio_style="false" | ||
50 | tool_tip="Display current location information in LCD Window" | ||
51 | width="201" /> | ||
52 | <check_box bottom="-126" control_name="DisplayLinden" enabled="true" | ||
53 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | ||
54 | initial_value="false" label="Show Account Information" left="148" | ||
55 | mouse_opaque="true" name="DisplayLinden" radio_style="false" | ||
56 | tool_tip="Display current account information in LCD Window" | ||
57 | width="201" /> | ||
58 | <check_box bottom="-144" control_name="DisplayDebug" enabled="true" | ||
59 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | ||
60 | initial_value="false" label="Display Network Comms Info" | ||
61 | left="148" mouse_opaque="true" name="DisplayDebug" | ||
62 | radio_style="false" | ||
63 | tool_tip="Display debug information in LCD Window" width="242" /> | ||
64 | <check_box bottom="-162" control_name="DisplayDebugConsole" enabled="true" | ||
65 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | ||
66 | initial_value="false" label="Display Debug Info from Console" | ||
67 | left="148" mouse_opaque="true" name="DisplayDebugConsole" | ||
68 | radio_style="false" | ||
69 | tool_tip="Display console debug information in LCD Window" width="242" /> | ||
70 | </panel> | ||
diff --git a/linden/indra/newview/skins/xui/en-us/panel_region_general.xml b/linden/indra/newview/skins/xui/en-us/panel_region_general.xml index 045be99..e02f1f6 100644 --- a/linden/indra/newview/skins/xui/en-us/panel_region_general.xml +++ b/linden/indra/newview/skins/xui/en-us/panel_region_general.xml | |||
@@ -35,7 +35,7 @@ | |||
35 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?" | 35 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?" |
36 | left="205" name="parcel_changes_help" width="18" /> | 36 | left="205" name="parcel_changes_help" width="18" /> |
37 | <check_box bottom_delta="-20" follows="left|top" height="20" | 37 | <check_box bottom_delta="-20" follows="left|top" height="20" |
38 | label="Block Parcel Search" left="10" tool_tip="Let people see this region and its parcels in | 38 | label="Block Land Show in Search" left="10" tool_tip="Let people see this region and its parcels in |
39 | search results" name="block_parcel_search_check" width="80" /> | 39 | search results" name="block_parcel_search_check" width="80" /> |
40 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?" | 40 | <button bottom_delta="0" follows="left|top" font="SansSerifSmall" height="18" label="?" |
41 | left="205" name="parcel_search_help" width="18" /> | 41 | left="205" name="parcel_search_help" width="18" /> |
diff --git a/linden/indra/newview/skins/xui/en-us/panel_status_bar.xml b/linden/indra/newview/skins/xui/en-us/panel_status_bar.xml index 51338f1..30bb347 100644 --- a/linden/indra/newview/skins/xui/en-us/panel_status_bar.xml +++ b/linden/indra/newview/skins/xui/en-us/panel_status_bar.xml | |||
@@ -15,7 +15,7 @@ | |||
15 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 15 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
16 | bottom="-20" disabled_color="0 1 0 1" drop_shadow_visible="true" | 16 | bottom="-20" disabled_color="0 1 0 1" drop_shadow_visible="true" |
17 | enabled="true" follows="right|bottom" font="SansSerifSmall" h_pad="0" | 17 | enabled="true" follows="right|bottom" font="SansSerifSmall" h_pad="0" |
18 | halign="right" height="18" hidden="false" left="-120" mouse_opaque="true" | 18 | halign="right" height="18" hidden="false" left="-210" mouse_opaque="true" |
19 | name="BalanceText" text_color="0 1 0 1" tool_tip="Account Balance" | 19 | name="BalanceText" text_color="0 1 0 1" tool_tip="Account Balance" |
20 | v_pad="2" width="76"> | 20 | v_pad="2" width="76"> |
21 | Loading... | 21 | Loading... |
@@ -26,13 +26,13 @@ | |||
26 | image_disabled_selected="status_buy_currency_pressed.tga" | 26 | image_disabled_selected="status_buy_currency_pressed.tga" |
27 | image_selected="status_buy_currency_pressed.tga" | 27 | image_selected="status_buy_currency_pressed.tga" |
28 | image_unselected="status_buy_currency.tga" label="" label_selected="" | 28 | image_unselected="status_buy_currency.tga" label="" label_selected="" |
29 | left="-120" mouse_opaque="true" name="buycurrency" scale_image="true" | 29 | left="-210" mouse_opaque="true" name="buycurrency" scale_image="true" |
30 | tool_tip="Buy currency" width="16" /> | 30 | tool_tip="Buy currency" width="16" /> |
31 | <text type="string" length="12" bg_visible="false" border_drop_shadow_visible="false" | 31 | <text type="string" length="12" bg_visible="false" border_drop_shadow_visible="false" |
32 | border_visible="false" | 32 | border_visible="false" |
33 | bottom="-20" disabled_color="1 1 1 1" drop_shadow_visible="true" | 33 | bottom="-20" disabled_color="1 1 1 1" drop_shadow_visible="true" |
34 | enabled="true" follows="right|bottom" font="SansSerifSmall" h_pad="0" | 34 | enabled="true" follows="right|bottom" font="SansSerifSmall" h_pad="0" |
35 | halign="right" height="18" hidden="false" left="-210" mouse_opaque="true" | 35 | halign="right" height="18" hidden="false" left="-300" mouse_opaque="true" |
36 | name="TimeText" text_color="1 1 1 1" tool_tip="Current Time (Pacific)" | 36 | name="TimeText" text_color="1 1 1 1" tool_tip="Current Time (Pacific)" |
37 | v_pad="2" width="80"> | 37 | v_pad="2" width="80"> |
38 | 12:00 AM | 38 | 12:00 AM |
@@ -108,10 +108,49 @@ | |||
108 | image_unselected="status_buy_land.tga" label="" label_selected="" | 108 | image_unselected="status_buy_land.tga" label="" label_selected="" |
109 | left="569" mouse_opaque="true" name="buyland" scale_image="true" | 109 | left="569" mouse_opaque="true" name="buyland" scale_image="true" |
110 | tool_tip="Buy this parcel" width="16" /> | 110 | tool_tip="Buy this parcel" width="16" /> |
111 | <text hidden="true" name="packet_loss_tooltip"> | 111 | |
112 | Packet Loss | 112 | <!-- When the user hits return we spawn the search directory, |
113 | </text> | 113 | which makes this lose focus. We don't want to commit twice. |
114 | <text hidden="true" name="bandwidth_tooltip"> | 114 | commit_on_focus_lost must be false. JC --> |
115 | Bandwidth | 115 | <line_editor bevel_style="in" |
116 | </text> | 116 | border_style="line" |
117 | border_thickness="1" | ||
118 | bottom="-18" | ||
119 | enabled="true" | ||
120 | follows="right|bottom" | ||
121 | font="SansSerif" | ||
122 | handle_edit_keys_directly="false" | ||
123 | commit_on_focus_lost="false" | ||
124 | height="20" | ||
125 | hidden="false" | ||
126 | label="Search" | ||
127 | left="-125" | ||
128 | max_length="254" | ||
129 | mouse_opaque="true" | ||
130 | name="search_editor" | ||
131 | select_all_on_focus_received="false" | ||
132 | select_on_focus="false" | ||
133 | tab_group="1" | ||
134 | tool_tip="Search Second Life" | ||
135 | width="104" /> | ||
136 | <!-- *TODO: pressed state --> | ||
137 | <button bottom="-17" | ||
138 | enabled="true" | ||
139 | follows="right|bottom" | ||
140 | font="SansSerifSmall" | ||
141 | halign="center" | ||
142 | height="20" | ||
143 | hidden="false" | ||
144 | image_disabled="status_search.tga" | ||
145 | image_disabled_selected="status_search.tga" | ||
146 | image_selected="status_search.tga" | ||
147 | image_unselected="status_search.tga" | ||
148 | label="" | ||
149 | label_selected="" | ||
150 | left="-20" | ||
151 | mouse_opaque="true" | ||
152 | name="search_btn" | ||
153 | tool_tip="Search Second Life" | ||
154 | width="20" /> | ||
155 | |||
117 | </panel> | 156 | </panel> |
diff --git a/linden/indra/newview/viewer.cpp b/linden/indra/newview/viewer.cpp index a29185f..747d4e0 100644 --- a/linden/indra/newview/viewer.cpp +++ b/linden/indra/newview/viewer.cpp | |||
@@ -49,7 +49,6 @@ | |||
49 | #include <sys/stat.h> | 49 | #include <sys/stat.h> |
50 | #include <memory> | 50 | #include <memory> |
51 | #include <boost/tokenizer.hpp> | 51 | #include <boost/tokenizer.hpp> |
52 | #include "curl/curl.h" | ||
53 | 52 | ||
54 | #if LL_WINDOWS | 53 | #if LL_WINDOWS |
55 | #include <fcntl.h> //_O_APPEND | 54 | #include <fcntl.h> //_O_APPEND |
@@ -156,7 +155,7 @@ | |||
156 | #include "llbutton.h" // For constants | 155 | #include "llbutton.h" // For constants |
157 | #include "llcallbacklist.h" | 156 | #include "llcallbacklist.h" |
158 | #include "llchatbar.h" | 157 | #include "llchatbar.h" |
159 | #include "llcombobox.h" // For constants | 158 | //#include "llcombobox.h" // For constants |
160 | #include "llconsole.h" | 159 | #include "llconsole.h" |
161 | #include "llcontainerview.h" | 160 | #include "llcontainerview.h" |
162 | #include "lldebugview.h" | 161 | #include "lldebugview.h" |
@@ -248,6 +247,13 @@ | |||
248 | #include "llwindebug.h" | 247 | #include "llwindebug.h" |
249 | #include "lldxhardware.h" | 248 | #include "lldxhardware.h" |
250 | #include "llwindowwin32.h" | 249 | #include "llwindowwin32.h" |
250 | |||
251 | // for Logitech LCD keyboards / speakers | ||
252 | #ifndef LL_LOGITECH_LCD_H | ||
253 | #include "lllogitechlcd.h" | ||
254 | #endif | ||
255 | extern void CreateLCDDebugWindows(); | ||
256 | |||
251 | #endif // LL_WINDOWS | 257 | #endif // LL_WINDOWS |
252 | 258 | ||
253 | #if LL_QUICKTIME_ENABLED | 259 | #if LL_QUICKTIME_ENABLED |
@@ -321,6 +327,9 @@ F32 gSimFrames; | |||
321 | // | 327 | // |
322 | // Core Application globals | 328 | // Core Application globals |
323 | // | 329 | // |
330 | #if LL_WINDOWS | ||
331 | llLCD *gLcdScreen = NULL; | ||
332 | #endif | ||
324 | 333 | ||
325 | LLString gSecondLife; | 334 | LLString gSecondLife; |
326 | LLString gWindowTitle; | 335 | LLString gWindowTitle; |
@@ -483,7 +492,6 @@ LLVector3 gRelativeWindVec(0.0, 0.0, 0.0); | |||
483 | BOOL gVelocityInterpolate = TRUE; // (These are written once/frame with the data from gSavedSettings) | 492 | BOOL gVelocityInterpolate = TRUE; // (These are written once/frame with the data from gSavedSettings) |
484 | BOOL gPingInterpolate = TRUE; | 493 | BOOL gPingInterpolate = TRUE; |
485 | 494 | ||
486 | |||
487 | // | 495 | // |
488 | // System info | 496 | // System info |
489 | // | 497 | // |
@@ -1167,7 +1175,8 @@ int main( int argc, char **argv ) | |||
1167 | // | 1175 | // |
1168 | // Check for another instance of the app running | 1176 | // Check for another instance of the app running |
1169 | // | 1177 | // |
1170 | //RN: if we received a URL, hand it off to the existing instance | 1178 | |
1179 | // RN: if we received a URL, hand it off to the existing instance | ||
1171 | // don't call another_instance_running() when doing URL handoff, as | 1180 | // don't call another_instance_running() when doing URL handoff, as |
1172 | // it relies on checking a marker file which will not work when running | 1181 | // it relies on checking a marker file which will not work when running |
1173 | // out of different directories | 1182 | // out of different directories |
@@ -1300,14 +1309,6 @@ int main( int argc, char **argv ) | |||
1300 | if (gSecondInstance) | 1309 | if (gSecondInstance) |
1301 | { | 1310 | { |
1302 | gDisableVoice = TRUE; | 1311 | gDisableVoice = TRUE; |
1303 | /* Don't start another instance if using -multiple | ||
1304 | //RN: if we received a URL, hand it off to the existing instance | ||
1305 | if (LLURLSimString::parse()) | ||
1306 | { | ||
1307 | LLURLSimString::send_to_other_instance(); | ||
1308 | return 1; | ||
1309 | } | ||
1310 | */ | ||
1311 | } | 1312 | } |
1312 | 1313 | ||
1313 | init_marker_file(); | 1314 | init_marker_file(); |
@@ -1689,6 +1690,13 @@ int main( int argc, char **argv ) | |||
1689 | // Show watch cursor | 1690 | // Show watch cursor |
1690 | gViewerWindow->setCursor(UI_CURSOR_WAIT); | 1691 | gViewerWindow->setCursor(UI_CURSOR_WAIT); |
1691 | 1692 | ||
1693 | |||
1694 | #if LL_WINDOWS && LL_LCD_COMPILE | ||
1695 | // start up an LCD window on a logitech keyboard, if there is one | ||
1696 | gLcdScreen = new llLCD(hInstance); | ||
1697 | CreateLCDDebugWindows(); | ||
1698 | #endif | ||
1699 | |||
1692 | // Finish view initialization | 1700 | // Finish view initialization |
1693 | gViewerWindow->initBase(); | 1701 | gViewerWindow->initBase(); |
1694 | 1702 | ||
@@ -1937,8 +1945,11 @@ void main_loop() | |||
1937 | gMovieMaker.Snap(); | 1945 | gMovieMaker.Snap(); |
1938 | } | 1946 | } |
1939 | #endif | 1947 | #endif |
1948 | #if LL_WINDOWS && LL_LCD_COMPILE | ||
1949 | // update LCD Screen | ||
1950 | gLcdScreen->UpdateDisplay(); | ||
1951 | #endif | ||
1940 | } | 1952 | } |
1941 | |||
1942 | } | 1953 | } |
1943 | 1954 | ||
1944 | // Sleep and run background threads | 1955 | // Sleep and run background threads |
@@ -3509,6 +3520,14 @@ void update_statistics(U32 frame_count) | |||
3509 | 3520 | ||
3510 | LLViewerImageList::sTextureBits = 0; | 3521 | LLViewerImageList::sTextureBits = 0; |
3511 | LLViewerImageList::sTexturePackets = 0; | 3522 | LLViewerImageList::sTexturePackets = 0; |
3523 | |||
3524 | #if LL_WINDOWS && LL_LCD_COMPILE | ||
3525 | bool LCDenabled = gLcdScreen->Enabled(); | ||
3526 | gViewerStats->setStat(LLViewerStats::ST_LOGITECH_LCD, LCDenabled); | ||
3527 | #else | ||
3528 | gViewerStats->setStat(LLViewerStats::ST_LOGITECH_LCD, false); | ||
3529 | #endif | ||
3530 | |||
3512 | } | 3531 | } |
3513 | 3532 | ||
3514 | // | 3533 | // |
@@ -5419,7 +5438,6 @@ int parse_args(int argc, char **argv) | |||
5419 | gArgs += argv[j]; | 5438 | gArgs += argv[j]; |
5420 | gArgs += " "; | 5439 | gArgs += " "; |
5421 | 5440 | ||
5422 | LLString argument = argv[j]; | ||
5423 | if ((!strcmp(argv[j], "-port")) && (++j < argc)) | 5441 | if ((!strcmp(argv[j], "-port")) && (++j < argc)) |
5424 | { | 5442 | { |
5425 | sscanf(argv[j], "%u", &(gAgent.mViewerPort)); | 5443 | sscanf(argv[j], "%u", &(gAgent.mViewerPort)); |
@@ -6178,6 +6196,11 @@ void cleanup_app() | |||
6178 | gDXHardware.cleanup(); | 6196 | gDXHardware.cleanup(); |
6179 | #endif // LL_WINDOWS | 6197 | #endif // LL_WINDOWS |
6180 | 6198 | ||
6199 | #if LL_WINDOWS && LL_LCD_COMPILE | ||
6200 | // shut down the LCD window on a logitech keyboard, if there is one | ||
6201 | delete gLcdScreen; | ||
6202 | #endif | ||
6203 | |||
6181 | if (!gVolumeMgr->cleanup()) | 6204 | if (!gVolumeMgr->cleanup()) |
6182 | { | 6205 | { |
6183 | llwarns << "Remaining references in the volume manager!" << llendflush; | 6206 | llwarns << "Remaining references in the volume manager!" << llendflush; |
diff --git a/linden/indra/newview/viewer.h b/linden/indra/newview/viewer.h index c2ec173..afd62a7 100644 --- a/linden/indra/newview/viewer.h +++ b/linden/indra/newview/viewer.h | |||
@@ -36,7 +36,10 @@ | |||
36 | // Almost every file in the viewer depends on this file. | 36 | // Almost every file in the viewer depends on this file. |
37 | // If you need to add a shared class, put it in its own | 37 | // If you need to add a shared class, put it in its own |
38 | // little file. JC | 38 | // little file. JC |
39 | #include "lltransactiontypes.h" | 39 | |
40 | // *TODO: remove this, viewer.h doesn't need it, but there | ||
41 | // are lots of .cpp files that depend on this recursive | ||
42 | // dependency. | ||
40 | #include "llviewercontrol.h" | 43 | #include "llviewercontrol.h" |
41 | 44 | ||
42 | // Enabled this definition to compile a 'hacked' viewer that | 45 | // Enabled this definition to compile a 'hacked' viewer that |
@@ -314,4 +317,9 @@ const std::vector<std::string>& getLoginURIs(); | |||
314 | const std::string& getHelperURI(); | 317 | const std::string& getHelperURI(); |
315 | void resetURIs(); | 318 | void resetURIs(); |
316 | 319 | ||
320 | #if LL_WINDOWS | ||
321 | class llLCD; | ||
322 | extern llLCD *gLcdScreen; | ||
323 | #endif | ||
324 | |||
317 | #endif | 325 | #endif |