diff options
162 files changed, 1056 insertions, 982 deletions
diff --git a/indra/llcharacter/llcharacter.cpp b/indra/llcharacter/llcharacter.cpp index 528a7bb4a5..40a9752268 100644 --- a/indra/llcharacter/llcharacter.cpp +++ b/indra/llcharacter/llcharacter.cpp @@ -181,16 +181,18 @@ void LLCharacter::requestStopMotion( LLMotion* motion) // updateMotions() //----------------------------------------------------------------------------- static LLFastTimer::DeclareTimer FTM_UPDATE_ANIMATION("Update Animation"); +static LLFastTimer::DeclareTimer FTM_UPDATE_HIDDEN_ANIMATION("Update Hidden Anim"); void LLCharacter::updateMotions(e_update_t update_type) { - LLFastTimer t(FTM_UPDATE_ANIMATION); if (update_type == HIDDEN_UPDATE) { + LLFastTimer t(FTM_UPDATE_HIDDEN_ANIMATION); mMotionController.updateMotionsMinimal(); } else { + LLFastTimer t(FTM_UPDATE_ANIMATION); // unpause if the number of outstanding pause requests has dropped to the initial one if (mMotionController.isPaused() && mPauseRequest->getNumRefs() == 1) { diff --git a/indra/llcharacter/lleditingmotion.cpp b/indra/llcharacter/lleditingmotion.cpp index 381d19e614..57554bdc35 100644 --- a/indra/llcharacter/lleditingmotion.cpp +++ b/indra/llcharacter/lleditingmotion.cpp @@ -221,7 +221,7 @@ BOOL LLEditingMotion::onUpdate(F32 time, U8* joint_mask) if (!target.isFinite()) { llerrs << "Non finite target in editing motion with target distance of " << target_dist << - " and focus point " << focus_pt << " and pointAtPt: " << *pointAtPt << llendl; + " and focus point " << focus_pt << llendl; } mTarget.setPosition( target + mParentJoint.getPosition()); diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp index df4c618ac1..192c6157a8 100644 --- a/indra/llmath/llvolume.cpp +++ b/indra/llmath/llvolume.cpp @@ -3822,6 +3822,7 @@ BOOL LLVolume::cleanupTriangleData( const S32 num_input_vertices, // Generate the vertex mapping and the list of vertices without // duplicates. This will crash if there are no vertices. + llassert(num_input_vertices > 0); // check for no vertices! S32 *vertex_mapping = new S32[num_input_vertices]; LLVector3 *new_vertices = new LLVector3[num_input_vertices]; LLVertexIndexPair *prev_pairp = NULL; diff --git a/indra/llplugin/llpluginmessagepipe.cpp b/indra/llplugin/llpluginmessagepipe.cpp index cc193fca42..1d7ddc5592 100644 --- a/indra/llplugin/llpluginmessagepipe.cpp +++ b/indra/llplugin/llpluginmessagepipe.cpp @@ -304,7 +304,14 @@ void LLPluginMessagePipe::processInput(void) while((delim = mInput.find(MESSAGE_DELIMITER, start)) != std::string::npos) { // Let the owner process this message - mOwner->receiveMessageRaw(mInput.substr(start, delim - start)); + if (mOwner) + { + mOwner->receiveMessageRaw(mInput.substr(start, delim - start)); + } + else + { + LL_WARNS("Plugin") << "!mOwner" << LL_ENDL; + } start = delim + 1; } diff --git a/indra/llplugin/llpluginprocesschild.cpp b/indra/llplugin/llpluginprocesschild.cpp index 0f3254d78d..52b5a319ec 100644 --- a/indra/llplugin/llpluginprocesschild.cpp +++ b/indra/llplugin/llpluginprocesschild.cpp @@ -278,14 +278,21 @@ bool LLPluginProcessChild::isDone(void) void LLPluginProcessChild::sendMessageToPlugin(const LLPluginMessage &message) { - std::string buffer = message.generate(); - - LL_DEBUGS("Plugin") << "Sending to plugin: " << buffer << LL_ENDL; - LLTimer elapsed; - - mInstance->sendMessage(buffer); - - mCPUElapsed += elapsed.getElapsedTimeF64(); + if (mInstance) + { + std::string buffer = message.generate(); + + LL_DEBUGS("Plugin") << "Sending to plugin: " << buffer << LL_ENDL; + LLTimer elapsed; + + mInstance->sendMessage(buffer); + + mCPUElapsed += elapsed.getElapsedTimeF64(); + } + else + { + LL_WARNS("Plugin") << "mInstance == NULL" << LL_ENDL; + } } void LLPluginProcessChild::sendMessageToParent(const LLPluginMessage &message) diff --git a/indra/llui/llconsole.cpp b/indra/llui/llconsole.cpp index 0237c80efa..a4f69e7ac1 100644 --- a/indra/llui/llconsole.cpp +++ b/indra/llui/llconsole.cpp @@ -244,23 +244,6 @@ void LLConsole::draw() } } -void LLConsole::addLine(const std::string& utf8line) -{ - LLWString wline = utf8str_to_wstring(utf8line); - addLine(wline, 0.f, LLColor4(1.f, 1.f, 1.f, 1.f)); -} - -void LLConsole::addLine(const LLWString& wline) -{ - addLine(wline, 0.f, LLColor4(1.f, 1.f, 1.f, 1.f)); -} - -void LLConsole::addLine(const std::string& utf8line, F32 size, const LLColor4 &color) -{ - LLWString wline = utf8str_to_wstring(utf8line); - addLine(wline, size, color); -} - //Generate highlight color segments for this paragraph. Pass in default color of paragraph. void LLConsole::Paragraph::makeParagraphColorSegments (const LLColor4 &color) { @@ -383,21 +366,45 @@ void LLConsole::Paragraph::updateLines(F32 screen_width, const LLFontGL* font, b //Pass in the string and the default color for this block of text. LLConsole::Paragraph::Paragraph (LLWString str, const LLColor4 &color, F32 add_time, const LLFontGL* font, F32 screen_width) - : mParagraphText(str), mAddTime(add_time), mMaxWidth(-1) +: mParagraphText(str), mAddTime(add_time), mMaxWidth(-1) { makeParagraphColorSegments(color); updateLines( screen_width, font ); } -void LLConsole::addLine(const LLWString& wline, F32 size, const LLColor4 &color) +// called once per frame regardless of console visibility +// static +void LLConsole::updateClass() { - Paragraph paragraph(wline, color, mTimer.getElapsedTimeF32(), mFont, (F32)getRect().getWidth() ); - - mParagraphs.push_back ( paragraph ); + LLInstanceTrackerScopedGuard guard; + + for (instance_iter it = guard.beginInstances(); it != guard.endInstances(); ++it) + { + it->update(); + } +} + +void LLConsole::update() +{ + { + LLMutexLock lock(&mMutex); + + while (!mLines.empty()) + { + mParagraphs.push_back( + Paragraph( mLines.front(), + LLColor4::white, + mTimer.getElapsedTimeF32(), + mFont, + (F32)getRect().getWidth())); + mLines.pop_front(); + } + } // remove old paragraphs which can't possibly be visible any more. ::draw() will do something similar but more conservative - we do this here because ::draw() isn't guaranteed to ever be called! (i.e. the console isn't visible) - while ((S32)mParagraphs.size() > llmax((S32)0, (S32)(mMaxLines))) - { - mParagraphs.pop_front(); - } + while ((S32)mParagraphs.size() > llmax((S32)0, (S32)(mMaxLines))) + { + mParagraphs.pop_front(); + } } + diff --git a/indra/llui/llconsole.h b/indra/llui/llconsole.h index 4719950f28..f38e2bc9c2 100644 --- a/indra/llui/llconsole.h +++ b/indra/llui/llconsole.h @@ -40,7 +40,7 @@ class LLSD; -class LLConsole : public LLFixedBuffer, public LLUICtrl +class LLConsole : public LLFixedBuffer, public LLUICtrl, public LLInstanceTracker<LLConsole> { public: typedef enum e_font_size @@ -68,6 +68,9 @@ protected: friend class LLUICtrlFactory; public: + // call once per frame to pull data out of LLFixedBuffer + static void updateClass(); + //A paragraph color segment defines the color of text in a line //of text that was received for console display. It has no //notion of line wraps, screen position, or the text it contains. @@ -139,14 +142,12 @@ public: // -1 = monospace, 0 means small, font size = 1 means big void setFontSize(S32 size_index); - void addLine(const std::string& utf8line, F32 size, const LLColor4 &color); - void addLine(const LLWString& wline, F32 size, const LLColor4 &color); // Overrides /*virtual*/ void draw(); - /*virtual*/ void addLine(const std::string& utf8line); - /*virtual*/ void addLine(const LLWString& line); private: + void update(); + F32 mLinePersistTime; // Age at which to stop drawing. F32 mFadeTime; // Age at which to start fading const LLFontGL* mFont; diff --git a/indra/llui/llmultisliderctrl.cpp b/indra/llui/llmultisliderctrl.cpp index cb81c39103..50942e55ca 100644 --- a/indra/llui/llmultisliderctrl.cpp +++ b/indra/llui/llmultisliderctrl.cpp @@ -331,6 +331,10 @@ void LLMultiSliderCtrl::updateText() void LLMultiSliderCtrl::onEditorCommit( LLUICtrl* ctrl, const LLSD& userdata) { LLMultiSliderCtrl* self = dynamic_cast<LLMultiSliderCtrl*>(ctrl->getParent()); + llassert(self); + if (!self) // cast failed - wrong type! :O + return; + if (!ctrl) return; diff --git a/indra/llui/lltabcontainer.cpp b/indra/llui/lltabcontainer.cpp index 2ec56d6089..fe699cfa01 100644 --- a/indra/llui/lltabcontainer.cpp +++ b/indra/llui/lltabcontainer.cpp @@ -119,6 +119,7 @@ protected: LLCustomButtonIconCtrl(const Params& p): LLButton(p), mIcon(NULL), + mIconAlignment(LLFontGL::HCENTER), mIconCtrlPad(p.icon_ctrl_pad) {} diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index ad9f066539..ce5f1bd082 100644 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -737,7 +737,7 @@ BOOL LLTextEditor::handleRightMouseDown(S32 x, S32 y, MASK mask) } if (!LLTextBase::handleRightMouseDown(x, y, mask)) { - if(getChowContextMenu()) + if(getShowContextMenu()) { showContextMenu(x, y); } diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h index 00c6a8b68a..71d937b2c4 100644 --- a/indra/llui/lltexteditor.h +++ b/indra/llui/lltexteditor.h @@ -204,7 +204,7 @@ public: void getSelectedSegments(segment_vec_t& segments) const; void setShowContextMenu(bool show) { mShowContextMenu = show; } - bool getChowContextMenu() const { return mShowContextMenu; } + bool getShowContextMenu() const { return mShowContextMenu; } protected: void showContextMenu(S32 x, S32 y); diff --git a/indra/llui/lluicolortable.cpp b/indra/llui/lluicolortable.cpp index 9be33483d0..1b64ef3abe 100644 --- a/indra/llui/lluicolortable.cpp +++ b/indra/llui/lluicolortable.cpp @@ -56,7 +56,7 @@ LLUIColorTable::Params::Params() { } -void LLUIColorTable::insertFromParams(const Params& p) +void LLUIColorTable::insertFromParams(const Params& p, string_color_map_t& table) { // this map will contain all color references after the following loop typedef std::map<std::string, std::string> string_string_map_t; @@ -69,14 +69,7 @@ void LLUIColorTable::insertFromParams(const Params& p) ColorEntryParams color_entry = *it; if(color_entry.color.value.isChosen()) { - if(mUserSetColors.find(color_entry.name)!=mUserSetColors.end()) - { - setColor(color_entry.name, color_entry.color.value); - } - else - { - setColor(color_entry.name, color_entry.color.value, mLoadedColors); - } + setColor(color_entry.name, color_entry.color.value, table); } else { @@ -220,16 +213,16 @@ bool LLUIColorTable::loadFromSettings() bool result = false; std::string default_filename = gDirUtilp->getExpandedFilename(LL_PATH_DEFAULT_SKIN, "colors.xml"); - result |= loadFromFilename(default_filename); + result |= loadFromFilename(default_filename, mLoadedColors); std::string current_filename = gDirUtilp->getExpandedFilename(LL_PATH_TOP_SKIN, "colors.xml"); if(current_filename != default_filename) { - result |= loadFromFilename(current_filename); + result |= loadFromFilename(current_filename, mLoadedColors); } std::string user_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "colors.xml"); - loadFromFilename(user_filename); + loadFromFilename(user_filename, mUserSetColors); return result; } @@ -299,7 +292,7 @@ void LLUIColorTable::setColor(const std::string& name, const LLColor4& color, st } } -bool LLUIColorTable::loadFromFilename(const std::string& filename) +bool LLUIColorTable::loadFromFilename(const std::string& filename, string_color_map_t& table) { LLXMLNodePtr root; @@ -320,7 +313,7 @@ bool LLUIColorTable::loadFromFilename(const std::string& filename) if(params.validateBlock()) { - insertFromParams(params); + insertFromParams(params, table); } else { @@ -330,3 +323,11 @@ bool LLUIColorTable::loadFromFilename(const std::string& filename) return true; } + +void LLUIColorTable::insertFromParams(const Params& p) +{ + insertFromParams(p, mUserSetColors); +} + +// EOF + diff --git a/indra/llui/lluicolortable.h b/indra/llui/lluicolortable.h index c87695f456..d401e5e724 100644 --- a/indra/llui/lluicolortable.h +++ b/indra/llui/lluicolortable.h @@ -45,6 +45,10 @@ class LLUIColor; class LLUIColorTable : public LLSingleton<LLUIColorTable> { LOG_CLASS(LLUIColorTable); + + // consider using sorted vector, can be much faster + typedef std::map<std::string, LLUIColor> string_color_map_t; + public: struct ColorParams : LLInitParam::Choice<ColorParams> { @@ -91,10 +95,9 @@ public: void saveUserSettings() const; private: - bool loadFromFilename(const std::string& filename); + bool loadFromFilename(const std::string& filename, string_color_map_t& table); - // consider using sorted vector, can be much faster - typedef std::map<std::string, LLUIColor> string_color_map_t; + void insertFromParams(const Params& p, string_color_map_t& table); void clearTable(string_color_map_t& table); void setColor(const std::string& name, const LLColor4& color, string_color_map_t& table); diff --git a/indra/llwindow/lldragdropwin32.cpp b/indra/llwindow/lldragdropwin32.cpp index 9b80fe0a84..b85960be10 100644 --- a/indra/llwindow/lldragdropwin32.cpp +++ b/indra/llwindow/lldragdropwin32.cpp @@ -50,7 +50,8 @@ class LLDragDropWin32Target: LLDragDropWin32Target( HWND hWnd ) : mRefCount( 1 ), mAppWindowHandle( hWnd ), - mAllowDrop( false) + mAllowDrop(false), + mIsSlurl(false) { }; diff --git a/indra/newview/app_settings/ignorable_dialogs.xml b/indra/newview/app_settings/ignorable_dialogs.xml index e825f13e82..d0e1f62a84 100644 --- a/indra/newview/app_settings/ignorable_dialogs.xml +++ b/indra/newview/app_settings/ignorable_dialogs.xml @@ -177,17 +177,6 @@ <key>Value</key> <integer>1</integer> </map> - <key>FirstStreamingMedia</key> - <map> - <key>Comment</key> - <string>Enables FirstStreamingMedia warning dialog</string> - <key>Persist</key> - <integer>1</integer> - <key>Type</key> - <string>Boolean</string> - <key>Value</key> - <integer>1</integer> - </map> <key>FirstTeleport</key> <map> <key>Comment</key> diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 2354323a66..59f61dfdfb 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -956,6 +956,7 @@ void LLAgent::sendMessage() if (!mRegionp) { llerrs << "No region for agent yet!" << llendl; + return; } gMessageSystem->sendMessage(mRegionp->getHost()); } @@ -4482,7 +4483,9 @@ void LLAgent::setCameraPosAndFocusGlobal(const LLVector3d& camera_pos, const LLV { const F64 ANIM_METERS_PER_SECOND = 10.0; const F64 MIN_ANIM_SECONDS = 0.5; + const F64 MAX_ANIM_SECONDS = 10.0; F64 anim_duration = llmax( MIN_ANIM_SECONDS, sqrt(focus_delta_squared) / ANIM_METERS_PER_SECOND ); + anim_duration = llmin( anim_duration, MAX_ANIM_SECONDS ); setAnimationDuration( (F32)anim_duration ); } diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index d560331392..6078620e87 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -310,21 +310,24 @@ void LLAgentWearables::addWearabletoAgentInventoryDone(const S32 type, return; LLUUID old_item_id = getWearableItemID((EWearableType)type,index); + if (wearable) { wearable->setItemID(item_id); - } - if (old_item_id.notNull()) - { - gInventory.addChangedMask(LLInventoryObserver::LABEL, old_item_id); - setWearable((EWearableType)type,index,wearable); - } - else - { - pushWearable((EWearableType)type,wearable); + if (old_item_id.notNull()) + { + gInventory.addChangedMask(LLInventoryObserver::LABEL, old_item_id); + setWearable((EWearableType)type,index,wearable); + } + else + { + pushWearable((EWearableType)type,wearable); + } } + gInventory.addChangedMask(LLInventoryObserver::LABEL, item_id); + LLViewerInventoryItem* item = gInventory.getItem(item_id); if (item && wearable) { @@ -1287,25 +1290,29 @@ void LLAgentWearables::makeNewOutfit(const std::string& new_folder_name, j, new_wearable, todo); - if (isWearableCopyable((EWearableType)type, j)) + llassert(item); + if (item) { - copy_inventory_item( - gAgent.getID(), - item->getPermissions().getOwner(), - item->getUUID(), - folder_id, - new_name, - cb); - } - else - { - move_inventory_item( - gAgent.getID(), - gAgent.getSessionID(), - item->getUUID(), - folder_id, - new_name, - cb); + if (isWearableCopyable((EWearableType)type, j)) + { + copy_inventory_item( + gAgent.getID(), + item->getPermissions().getOwner(), + item->getUUID(), + folder_id, + new_name, + cb); + } + else + { + move_inventory_item( + gAgent.getID(), + gAgent.getSessionID(), + item->getUUID(), + folder_id, + new_name, + cb); + } } } } @@ -1618,8 +1625,10 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it } if (new_wearable) + { new_wearable->setItemID(new_item->getUUID()); - setWearable(type,0,new_wearable); + setWearable(type,0,new_wearable); + } } std::vector<LLWearable*> wearables_being_removed; diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 5349ccabec..00a9e4d745 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1933,7 +1933,6 @@ bool LLAppViewer::initConfiguration() // LLFirstUse::addConfigVariable("FirstSandbox"); // LLFirstUse::addConfigVariable("FirstFlexible"); // LLFirstUse::addConfigVariable("FirstDebugMenus"); -// LLFirstUse::addConfigVariable("FirstStreamingMedia"); // LLFirstUse::addConfigVariable("FirstSculptedPrim"); // LLFirstUse::addConfigVariable("FirstVoice"); // LLFirstUse::addConfigVariable("FirstMedia"); @@ -3005,7 +3004,7 @@ bool LLAppViewer::initCache() // Purge cache if it belongs to an old version else { - static const S32 cache_version = 5; + static const S32 cache_version = 6; if (gSavedSettings.getS32("LocalCacheVersion") != cache_version) { mPurgeCache = true; diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp index bd987eac77..1d75374930 100644 --- a/indra/newview/llavataractions.cpp +++ b/indra/newview/llavataractions.cpp @@ -181,7 +181,12 @@ void LLAvatarActions::startIM(const LLUUID& id) return; std::string name; - gCacheName->getFullName(id, name); + if (!gCacheName->getFullName(id, name)) + { + gCacheName->get(id, FALSE, boost::bind(&LLAvatarActions::startIM, id)); + return; + } + LLUUID session_id = gIMMgr->addSession(name, IM_NOTHING_SPECIAL, id); if (session_id != LLUUID::null) { diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp index 97a5c3b8e2..0aaaa8e705 100644 --- a/indra/newview/llcallfloater.cpp +++ b/indra/newview/llcallfloater.cpp @@ -303,8 +303,8 @@ void LLCallFloater::updateSession() refreshParticipantList(); updateAgentModeratorState(); - //show floater for voice calls - if (!is_local_chat) + //show floater for voice calls & only in CONNECTED to voice channel state + if (!is_local_chat && LLVoiceChannel::STATE_CONNECTED == voice_channel->getState()) { LLIMFloater* im_floater = LLIMFloater::findInstance(session_id); bool show_me = !(im_floater && im_floater->getVisible()); diff --git a/indra/newview/llcallingcard.cpp b/indra/newview/llcallingcard.cpp index d988770f90..996139fccc 100644 --- a/indra/newview/llcallingcard.cpp +++ b/indra/newview/llcallingcard.cpp @@ -56,6 +56,7 @@ #include "llnotifications.h" #include "llnotificationsutil.h" #include "llresmgr.h" +#include "llslurl.h" #include "llimview.h" #include "llviewercontrol.h" #include "llviewernetwork.h" @@ -689,13 +690,8 @@ void LLAvatarTracker::processNotify(LLMessageSystem* msg, bool online) setBuddyOnline(agent_id,online); if(chat_notify) { - std::string first, last; - if(gCacheName->getName(agent_id, first, last)) - { - notify = TRUE; - args["FIRST"] = first; - args["LAST"] = last; - } + notify = TRUE; + args["NAME_SLURL"] = LLSLURL::buildCommand("agent", agent_id, "about"); } } else diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp index 929457046c..7a5d8be84a 100644 --- a/indra/newview/llchathistory.cpp +++ b/indra/newview/llchathistory.cpp @@ -66,6 +66,8 @@ static LLDefaultChildRegistry::Register<LLChatHistory> r("chat_history"); const static std::string NEW_LINE(rawstr_to_utf8("\n")); +const static U32 LENGTH_OF_TIME_STR = std::string("12:00").length(); + // support for secondlife:///app/objectim/{UUID}/ SLapps class LLObjectIMHandler : public LLCommandHandler { @@ -116,7 +118,7 @@ public: //*TODO remake it using mouse enter/leave and static LLHandle<LLIconCtrl> to add/remove as a child BOOL handleToolTip(S32 x, S32 y, MASK mask) { - LLViewerTextEditor* name = getChild<LLViewerTextEditor>("user_name"); + LLTextBase* name = getChild<LLTextBase>("user_name"); if (name && name->parentPointInView(x, y) && mAvatarID.notNull() && SYSTEM_FROM != mFrom) { @@ -289,7 +291,12 @@ public: if(!chat.mFromID.isNull()) { - icon->setValue(chat.mFromID); + if(mSourceType != CHAT_SOURCE_AGENT) + icon->setValue(LLSD("OBJECT_Icon")); + else + icon->setValue(chat.mFromID); + + } else if (userName->getValue().asString()==LLTrans::getString("SECOND_LIFE")) { @@ -539,6 +546,7 @@ void LLChatHistory::clear() void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LLStyle::Params& input_append_params) { bool use_plain_text_chat_history = args["use_plain_text_chat_history"].asBoolean(); + if (!mEditor->scrolledToEnd() && chat.mFromID != gAgent.getID() && !chat.mFromName.empty()) { mUnreadChatSources.insert(chat.mFromName); @@ -604,6 +612,14 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL style_params.font.style = "ITALIC"; } + //*HACK we graying out chat history by graying out messages that contains full date in a time string + bool message_from_log = chat.mTimeStr.length() > LENGTH_OF_TIME_STR; + if (message_from_log) + { + style_params.color(LLColor4::grey); + style_params.readonly_color(LLColor4::grey); + } + if (use_plain_text_chat_history) { mEditor->appendText("[" + chat.mTimeStr + "] ", mEditor->getText().size() != 0, style_params); @@ -639,10 +655,10 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL mEditor->appendText("<nolink>" + chat.mFromName + "</nolink>" + delimiter, false, link_params); } - else if ( chat.mFromName != SYSTEM_FROM && chat.mFromID.notNull() ) + else if ( chat.mFromName != SYSTEM_FROM && chat.mFromID.notNull() && !message_from_log) { LLStyle::Params link_params(style_params); - link_params.fillFrom(LLStyleMap::instance().lookupAgent(chat.mFromID)); + link_params.overwriteFrom(LLStyleMap::instance().lookupAgent(chat.mFromID)); // Convert the name to a hotlink and add to message. mEditor->appendText(chat.mFromName + delimiter, false, link_params); } diff --git a/indra/newview/llchatitemscontainerctrl.cpp b/indra/newview/llchatitemscontainerctrl.cpp index f772aea4bd..e164aa8fc4 100644 --- a/indra/newview/llchatitemscontainerctrl.cpp +++ b/indra/newview/llchatitemscontainerctrl.cpp @@ -321,7 +321,10 @@ void LLNearbyChatToastPanel::draw() if(icon) { icon->setDrawTooltip(mSourceType == CHAT_SOURCE_AGENT); - icon->setValue(mFromID); + if(mSourceType == CHAT_SOURCE_AGENT) + icon->setValue(mFromID); + else + icon->setValue(LLSD("OBJECT_Icon")); } mIsDirty = false; } diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp index d60330024a..9fbc3408d7 100644 --- a/indra/newview/lldrawable.cpp +++ b/indra/newview/lldrawable.cpp @@ -1049,9 +1049,13 @@ LLSpatialBridge::LLSpatialBridge(LLDrawable* root, BOOL render_by_group, U32 dat llassert(mDrawable); llassert(mDrawable->getRegion()); - llassert(mDrawable->getRegion()->getSpatialPartition(mPartitionType)); + LLSpatialPartition *part = mDrawable->getRegion()->getSpatialPartition(mPartitionType); + llassert(part); - mDrawable->getRegion()->getSpatialPartition(mPartitionType)->put(this); + if (part) + { + part->put(this); + } } LLSpatialBridge::~LLSpatialBridge() @@ -1367,10 +1371,14 @@ BOOL LLSpatialBridge::updateMove() { llassert(mDrawable); llassert(mDrawable->getRegion()); - llassert(mDrawable->getRegion()->getSpatialPartition(mPartitionType)); + LLSpatialPartition* part = mDrawable->getRegion()->getSpatialPartition(mPartitionType); + llassert(part); mOctree->balance(); - mDrawable->getRegion()->getSpatialPartition(mPartitionType)->move(this, getSpatialGroup(), TRUE); + if (part) + { + part->move(this, getSpatialGroup(), TRUE); + } return TRUE; } diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp index 6d77361414..7be6e82251 100644 --- a/indra/newview/lldrawpoolalpha.cpp +++ b/indra/newview/lldrawpoolalpha.cpp @@ -180,6 +180,7 @@ void LLDrawPoolAlpha::render(S32 pass) if (LLPipeline::sFastAlpha && !deferred_render) { + LLGLDisable blend_disable(GL_BLEND); gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.33f); if (mVertexShaderLevel > 0) { diff --git a/indra/newview/lldriverparam.cpp b/indra/newview/lldriverparam.cpp index 8ebfa471f3..830e975e8a 100644 --- a/indra/newview/lldriverparam.cpp +++ b/indra/newview/lldriverparam.cpp @@ -432,6 +432,12 @@ const LLVector3* LLDriverParam::getNextDistortion(U32 *index, LLPolyMesh **poly_ } } + llassert(driven); + if (!driven) + { + return NULL; // shouldn't happen, but... + } + // We're already in the middle of a param's distortions, so get the next one. const LLVector3* v = driven->mParam->getNextDistortion( index, poly_mesh ); if( (!v) && (iter != mDriven.end()) ) diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index 965ac1cad0..c0a3eb1316 100644 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -301,7 +301,8 @@ void LLFace::switchTexture(LLViewerTexture* new_texture) if(!new_texture) { - llerrs << "Can not switch to a null texture." << llendl ; + llerrs << "Can not switch to a null texture." << llendl; + return; } new_texture->addTextureStats(mTexture->getMaxVirtualSize()) ; @@ -1040,17 +1041,20 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, if (rebuild_color) { - GLfloat alpha[4] = - { - 0.00f, - 0.25f, - 0.5f, - 0.75f - }; - - if (getPoolType() != LLDrawPool::POOL_ALPHA && (LLPipeline::sRenderDeferred || (LLPipeline::sRenderBump && tep->getShiny()))) + if (tep) { - color.mV[3] = U8 (alpha[tep->getShiny()] * 255); + GLfloat alpha[4] = + { + 0.00f, + 0.25f, + 0.5f, + 0.75f + }; + + if (getPoolType() != LLDrawPool::POOL_ALPHA && (LLPipeline::sRenderDeferred || (LLPipeline::sRenderBump && tep->getShiny()))) + { + color.mV[3] = U8 (alpha[tep->getShiny()] * 255); + } } } @@ -1323,6 +1327,21 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume, return TRUE; } +//check if the face has a media +BOOL LLFace::hasMedia() const +{ + if(mHasMedia) + { + return TRUE ; + } + if(mTexture.notNull()) + { + return mTexture->hasParcelMedia() ; //if has a parcel media + } + + return FALSE ; //no media. +} + const F32 LEAST_IMPORTANCE = 0.05f ; const F32 LEAST_IMPORTANCE_FOR_LARGE_IMAGE = 0.3f ; @@ -1332,7 +1351,7 @@ F32 LLFace::getTextureVirtualSize() F32 cos_angle_to_view_dir; mPixelArea = calcPixelArea(cos_angle_to_view_dir, radius); - if (mPixelArea <= 0) + if (mPixelArea < 0.0001f) { return 0.f; } @@ -1377,14 +1396,38 @@ F32 LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius) { //get area of circle around face LLVector3 center = getPositionAgent(); - LLVector3 size = (mExtents[1] - mExtents[0]) * 0.5f; - + LLVector3 size = (mExtents[1] - mExtents[0]) * 0.5f; LLViewerCamera* camera = LLViewerCamera::getInstance(); + + //if has media, check if the face is out of the view frustum. + BOOL has_media = hasMedia() ; + if(has_media && !camera->AABBInFrustum(center, size)) + { + mImportanceToCamera = 0.f ; + return 0.f ; + } + + F32 size_squared = size.lengthSquared() ; LLVector3 lookAt = center - camera->getOrigin(); F32 dist = lookAt.normVec() ; + cos_angle_to_view_dir = lookAt * camera->getXAxis() ; + if(has_media) + { + if(cos_angle_to_view_dir > camera->getCosHalfFov()) //the center is within the view frustum + { + cos_angle_to_view_dir = 1.0f ; + } + else + { + if(dist * dist * (lookAt - camera->getXAxis()).lengthSquared() < size_squared) + { + cos_angle_to_view_dir = 1.0f ; + } + } + } //get area of circle around node - F32 app_angle = atanf(size.length()/dist); + F32 app_angle = atanf(fsqrtf(size_squared) / dist); radius = app_angle*LLDrawable::sCurPixelAngle; F32 face_area = radius*radius * 3.14159f; @@ -1394,8 +1437,7 @@ F32 LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius) mImportanceToCamera = 1.0f ; } else - { - cos_angle_to_view_dir = lookAt * camera->getXAxis() ; + { mImportanceToCamera = LLFace::calcImportanceToCamera(cos_angle_to_view_dir, dist) ; } diff --git a/indra/newview/llface.h b/indra/newview/llface.h index e12b64a2f2..bf658dc00c 100644 --- a/indra/newview/llface.h +++ b/indra/newview/llface.h @@ -194,6 +194,9 @@ public: F32 getTextureVirtualSize() ; F32 getImportanceToCamera()const {return mImportanceToCamera ;} + void setHasMedia(bool has_media) { mHasMedia = has_media ;} + BOOL hasMedia() const ; + //for atlas LLTextureAtlasSlot* getAtlasInfo() ; void setAtlasInUse(BOOL flag); @@ -262,7 +265,7 @@ private: //based on the distance from the face to the view point and the angle from the face center to the view direction. F32 mImportanceToCamera ; F32 mBoundingSphereRadius ; - + bool mHasMedia ; //atlas LLPointer<LLTextureAtlasSlot> mAtlasInfop ; diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp index 1e8a739d78..bf7c735488 100644 --- a/indra/newview/llfavoritesbar.cpp +++ b/indra/newview/llfavoritesbar.cpp @@ -1264,8 +1264,11 @@ LLInventoryModel::item_array_t::iterator LLFavoritesBarCtrl::findItemByUUID(LLIn void LLFavoritesBarCtrl::insertBeforeItem(LLInventoryModel::item_array_t& items, const LLUUID& beforeItemId, LLViewerInventoryItem* insertedItem) { LLViewerInventoryItem* beforeItem = gInventory.getItem(beforeItemId); - - items.insert(findItemByUUID(items, beforeItem->getUUID()), insertedItem); + llassert(beforeItem); + if (beforeItem) + { + items.insert(findItemByUUID(items, beforeItem->getUUID()), insertedItem); + } } // EOF diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp index fb724f30e0..fbb90c69f3 100644 --- a/indra/newview/llfeaturemanager.cpp +++ b/indra/newview/llfeaturemanager.cpp @@ -287,6 +287,7 @@ BOOL LLFeatureManager::loadFeatureTables() if (!flp) { LL_ERRS("RenderInit") << "Specified parameter before <list> keyword!" << LL_ENDL; + return FALSE; } S32 available; F32 recommended; diff --git a/indra/newview/llfloatergesture.cpp b/indra/newview/llfloatergesture.cpp index b684e1f985..90617a337a 100644 --- a/indra/newview/llfloatergesture.cpp +++ b/indra/newview/llfloatergesture.cpp @@ -427,8 +427,13 @@ void LLFloaterGesture::onClickPlay() BOOL inform_server = TRUE; BOOL deactivate_similar = FALSE; LLGestureManager::instance().setGestureLoadedCallback(item_id, boost::bind(&LLFloaterGesture::playGesture, this, item_id)); - LLGestureManager::instance().activateGestureWithAsset(item_id, gInventory.getItem(item_id)->getAssetUUID(), inform_server, deactivate_similar); - LL_DEBUGS("Gesture")<< "Activating gesture with inventory ID: " << item_id <<LL_ENDL; + LLViewerInventoryItem *item = gInventory.getItem(item_id); + llassert(item); + if (item) + { + LLGestureManager::instance().activateGestureWithAsset(item_id, item->getAssetUUID(), inform_server, deactivate_similar); + LL_DEBUGS("Gesture")<< "Activating gesture with inventory ID: " << item_id <<LL_ENDL; + } } else { @@ -510,15 +515,16 @@ void LLFloaterGesture::onCopyPasteAction(const LLSD& command) if(ids.empty() || !gInventory.isCategoryComplete(mGestureFolderID)) return; LLInventoryCategory* gesture_dir = gInventory.getCategory(mGestureFolderID); + llassert(gesture_dir); LLPointer<GestureCopiedCallback> cb = new GestureCopiedCallback(this); for(LLDynamicArray<LLUUID>::iterator it = ids.begin(); it != ids.end(); it++) { LLInventoryItem* item = gInventory.getItem(*it); - LLStringUtil::format_map_t string_args; - string_args["[COPY_NAME]"] = item->getName(); - if(item && item->getInventoryType() == LLInventoryType::IT_GESTURE) + if(gesture_dir && item && item->getInventoryType() == LLInventoryType::IT_GESTURE) { + LLStringUtil::format_map_t string_args; + string_args["[COPY_NAME]"] = item->getName(); LL_DEBUGS("Gesture")<< "Copying gesture " << item->getName() << " "<< item->getUUID() << " into " << gesture_dir->getName() << " "<< gesture_dir->getUUID() << LL_ENDL; copy_inventory_item(gAgent.getID(), item->getPermissions().getOwner(), item->getUUID(), diff --git a/indra/newview/llfloatermediasettings.cpp b/indra/newview/llfloatermediasettings.cpp index 7388f7ea3f..62ec17f89a 100644 --- a/indra/newview/llfloatermediasettings.cpp +++ b/indra/newview/llfloatermediasettings.cpp @@ -207,7 +207,7 @@ void LLFloaterMediaSettings::commitFields() if (hasFocus()) { LLUICtrl* cur_focus = dynamic_cast<LLUICtrl*>(gFocusMgr.getKeyboardFocus()); - if (cur_focus->acceptsTextInput()) + if (cur_focus && cur_focus->acceptsTextInput()) { cur_focus->onCommit(); }; diff --git a/indra/newview/llfloaternotificationsconsole.cpp b/indra/newview/llfloaternotificationsconsole.cpp index 90db8988b2..94b5ebba00 100644 --- a/indra/newview/llfloaternotificationsconsole.cpp +++ b/indra/newview/llfloaternotificationsconsole.cpp @@ -112,10 +112,15 @@ void LLNotificationChannelPanel::onClickNotification(void* user_data) { LLNotificationChannelPanel* self = (LLNotificationChannelPanel*)user_data; if (!self) return; - void* data = self->getChild<LLScrollListCtrl>("notifications_list")->getFirstSelected()->getUserdata(); - if (data) + LLScrollListItem* firstselected = self->getChild<LLScrollListCtrl>("notifications_list")->getFirstSelected(); + llassert(firstselected); + if (firstselected) { - gFloaterView->getParentFloater(self)->addDependentFloater(new LLFloaterNotification((LLNotification*)data), TRUE); + void* data = firstselected->getUserdata(); + if (data) + { + gFloaterView->getParentFloater(self)->addDependentFloater(new LLFloaterNotification((LLNotification*)data), TRUE); + } } } @@ -124,10 +129,15 @@ void LLNotificationChannelPanel::onClickNotificationReject(void* user_data) { LLNotificationChannelPanel* self = (LLNotificationChannelPanel*)user_data; if (!self) return; - void* data = self->getChild<LLScrollListCtrl>("notification_rejects_list")->getFirstSelected()->getUserdata(); - if (data) + LLScrollListItem* firstselected = self->getChild<LLScrollListCtrl>("notification_rejects_list")->getFirstSelected(); + llassert(firstselected); + if (firstselected) { - gFloaterView->getParentFloater(self)->addDependentFloater(new LLFloaterNotification((LLNotification*)data), TRUE); + void* data = firstselected->getUserdata(); + if (data) + { + gFloaterView->getParentFloater(self)->addDependentFloater(new LLFloaterNotification((LLNotification*)data), TRUE); + } } } diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 9d9fbacee3..43111d76f7 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -110,8 +110,6 @@ const F32 MAX_USER_FAR_CLIP = 512.f; const F32 MIN_USER_FAR_CLIP = 64.f; -const S32 ASPECT_RATIO_STR_LEN = 100; - class LLVoiceSetKeyDialog : public LLModalDialog { public: @@ -283,7 +281,6 @@ void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator) } // static std::string LLFloaterPreference::sSkin = ""; -F32 LLFloaterPreference::sAspectRatio = 0.0; ////////////////////////////////////////////// // LLFloaterPreference @@ -324,11 +321,9 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key) mCommitCallbackRegistrar.add("Pref.VertexShaderEnable", boost::bind(&LLFloaterPreference::onVertexShaderEnable, this)); mCommitCallbackRegistrar.add("Pref.WindowedMod", boost::bind(&LLFloaterPreference::onCommitWindowedMode, this)); mCommitCallbackRegistrar.add("Pref.UpdateSliderText", boost::bind(&LLFloaterPreference::onUpdateSliderText,this, _1,_2)); - mCommitCallbackRegistrar.add("Pref.AutoDetectAspect", boost::bind(&LLFloaterPreference::onCommitAutoDetectAspect, this)); mCommitCallbackRegistrar.add("Pref.ParcelMediaAutoPlayEnable", boost::bind(&LLFloaterPreference::onCommitParcelMediaAutoPlayEnable, this)); mCommitCallbackRegistrar.add("Pref.MediaEnabled", boost::bind(&LLFloaterPreference::onCommitMediaEnabled, this)); mCommitCallbackRegistrar.add("Pref.MusicEnabled", boost::bind(&LLFloaterPreference::onCommitMusicEnabled, this)); - mCommitCallbackRegistrar.add("Pref.onSelectAspectRatio", boost::bind(&LLFloaterPreference::onKeystrokeAspectRatio, this)); mCommitCallbackRegistrar.add("Pref.QualityPerformance", boost::bind(&LLFloaterPreference::onChangeQuality, this, _2)); mCommitCallbackRegistrar.add("Pref.applyUIColor", boost::bind(&LLFloaterPreference::applyUIColor, this ,_1, _2)); mCommitCallbackRegistrar.add("Pref.getUIColor", boost::bind(&LLFloaterPreference::getUIColor, this ,_1, _2)); @@ -359,12 +354,7 @@ BOOL LLFloaterPreference::postBuild() LLFloaterPreference::~LLFloaterPreference() { // clean up user data - LLComboBox* ctrl_aspect_ratio = getChild<LLComboBox>( "aspect_ratio"); LLComboBox* ctrl_window_size = getChild<LLComboBox>("windowsize combo"); - for (S32 i = 0; i < ctrl_aspect_ratio->getItemCount(); i++) - { - ctrl_aspect_ratio->setCurrentByIndex(i); - } for (S32 i = 0; i < ctrl_window_size->getItemCount(); i++) { ctrl_window_size->setCurrentByIndex(i); @@ -514,8 +504,6 @@ void LLFloaterPreference::cancel() LLFloaterReg::hideInstance("pref_voicedevicesettings"); - gSavedSettings.setF32("FullScreenAspectRatio", sAspectRatio); - } void LLFloaterPreference::onOpen(const LLSD& key) @@ -602,7 +590,7 @@ void LLFloaterPreference::onBtnOK() if (hasFocus()) { LLUICtrl* cur_focus = dynamic_cast<LLUICtrl*>(gFocusMgr.getKeyboardFocus()); - if (cur_focus->acceptsTextInput()) + if (cur_focus && cur_focus->acceptsTextInput()) { cur_focus->onCommit(); } @@ -635,7 +623,7 @@ void LLFloaterPreference::onBtnApply( ) if (hasFocus()) { LLUICtrl* cur_focus = dynamic_cast<LLUICtrl*>(gFocusMgr.getKeyboardFocus()); - if (cur_focus->acceptsTextInput()) + if (cur_focus && cur_focus->acceptsTextInput()) { cur_focus->onCommit(); } @@ -652,7 +640,7 @@ void LLFloaterPreference::onBtnCancel() if (hasFocus()) { LLUICtrl* cur_focus = dynamic_cast<LLUICtrl*>(gFocusMgr.getKeyboardFocus()); - if (cur_focus->acceptsTextInput()) + if (cur_focus && cur_focus->acceptsTextInput()) { cur_focus->onCommit(); } @@ -968,37 +956,6 @@ void LLFloaterPreference::disableUnavailableSettings() } } -void LLFloaterPreference::onCommitAutoDetectAspect() -{ - BOOL auto_detect = getChild<LLCheckBoxCtrl>("aspect_auto_detect")->get(); - F32 ratio; - - if (auto_detect) - { - S32 numerator = 0; - S32 denominator = 0; - - // clear any aspect ratio override - gViewerWindow->mWindow->setNativeAspectRatio(0.f); - fractionFromDecimal(gViewerWindow->mWindow->getNativeAspectRatio(), numerator, denominator); - - std::string aspect; - if (numerator != 0) - { - aspect = llformat("%d:%d", numerator, denominator); - } - else - { - aspect = llformat("%.3f", gViewerWindow->mWindow->getNativeAspectRatio()); - } - - getChild<LLComboBox>( "aspect_ratio")->setLabel(aspect); - - ratio = gViewerWindow->mWindow->getNativeAspectRatio(); - gSavedSettings.setF32("FullScreenAspectRatio", ratio); - } -} - void LLFloaterPreference::onCommitParcelMediaAutoPlayEnable() { BOOL autoplay = getChild<LLCheckBoxCtrl>("autoplay_enabled")->get(); @@ -1266,56 +1223,9 @@ void LLFloaterPreference::updateSliderText(LLSliderCtrl* ctrl, LLTextBox* text_b } } -void LLFloaterPreference::onKeystrokeAspectRatio() -{ - getChild<LLCheckBoxCtrl>("aspect_auto_detect")->set(FALSE); -} - void LLFloaterPreference::applyResolution() { - LLComboBox* ctrl_aspect_ratio = getChild<LLComboBox>( "aspect_ratio"); gGL.flush(); - char aspect_ratio_text[ASPECT_RATIO_STR_LEN]; /*Flawfinder: ignore*/ - if (ctrl_aspect_ratio->getCurrentIndex() == -1) - { - // *Can't pass const char* from c_str() into strtok - strncpy(aspect_ratio_text, ctrl_aspect_ratio->getSimple().c_str(), sizeof(aspect_ratio_text) -1); /*Flawfinder: ignore*/ - aspect_ratio_text[sizeof(aspect_ratio_text) -1] = '\0'; - char *element = strtok(aspect_ratio_text, ":/\\"); - if (!element) - { - sAspectRatio = 0.f; // will be clamped later - } - else - { - LLLocale locale(LLLocale::USER_LOCALE); - sAspectRatio = (F32)atof(element); - } - - // look for denominator - element = strtok(NULL, ":/\\"); - if (element) - { - LLLocale locale(LLLocale::USER_LOCALE); - - F32 denominator = (F32)atof(element); - if (denominator != 0.f) - { - sAspectRatio /= denominator; - } - } - } - else - { - sAspectRatio = (F32)ctrl_aspect_ratio->getValue().asReal(); - } - - // presumably, user entered a non-numeric value if aspect_ratio == 0.f - if (sAspectRatio != 0.f) - { - sAspectRatio = llclamp(sAspectRatio, 0.2f, 5.f); - gSavedSettings.setF32("FullScreenAspectRatio", sAspectRatio); - } // Screen resolution S32 num_resolutions; @@ -1393,48 +1303,6 @@ BOOL LLPanelPreference::postBuild() childSetText("email_address",getString("log_in_to_change") ); // childSetText("busy_response", getString("log_in_to_change")); } - - - if(hasChild("aspect_ratio")) - { - // We used to set up fullscreen resolution and window size - // controls here, see LLFloaterWindowSize::initWindowSizeControls() - - if (gSavedSettings.getBOOL("FullScreenAutoDetectAspectRatio")) - { - LLFloaterPreference::sAspectRatio = gViewerWindow->getDisplayAspectRatio(); - } - else - { - LLFloaterPreference::sAspectRatio = gSavedSettings.getF32("FullScreenAspectRatio"); - } - - getChild<LLComboBox>("aspect_ratio")->setTextEntryCallback(boost::bind(&LLPanelPreference::setControlFalse, this, LLSD("FullScreenAutoDetectAspectRatio") )); - - - S32 numerator = 0; - S32 denominator = 0; - fractionFromDecimal(LLFloaterPreference::sAspectRatio, numerator, denominator); - - LLUIString aspect_ratio_text = getString("aspect_ratio_text"); - if (numerator != 0) - { - aspect_ratio_text.setArg("[NUM]", llformat("%d", numerator)); - aspect_ratio_text.setArg("[DEN]", llformat("%d", denominator)); - } - else - { - aspect_ratio_text = llformat("%.3f", LLFloaterPreference::sAspectRatio); - } - - LLComboBox* ctrl_aspect_ratio = getChild<LLComboBox>( "aspect_ratio"); - //mCtrlAspectRatio->setCommitCallback(onSelectAspectRatio, this); - // add default aspect ratios - ctrl_aspect_ratio->add(aspect_ratio_text, &LLFloaterPreference::sAspectRatio, ADD_TOP); - ctrl_aspect_ratio->setCurrentByIndex(0); - - refresh(); - } //////////////////////PanelPrivacy /////////////////// if (hasChild("media_enabled")) diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index 0827c7c2b2..93b39d72bc 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -128,10 +128,8 @@ public: void updateSliderText(LLSliderCtrl* ctrl, LLTextBox* text_box); void onUpdateSliderText(LLUICtrl* ctrl, const LLSD& name); - void onKeystrokeAspectRatio(); // void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator); - void onCommitAutoDetectAspect(); void onCommitParcelMediaAutoPlayEnable(); void onCommitMediaEnabled(); void onCommitMusicEnabled(); @@ -142,7 +140,6 @@ public: void buildPopupLists(); static void refreshSkin(void* data); static void cleanupBadSetting(); - static F32 sAspectRatio; private: static std::string sSkin; bool mGotPersonalInfo; diff --git a/indra/newview/llfloaterproperties.cpp b/indra/newview/llfloaterproperties.cpp index bde86a4034..5c0593ad29 100644 --- a/indra/newview/llfloaterproperties.cpp +++ b/indra/newview/llfloaterproperties.cpp @@ -880,7 +880,11 @@ void LLFloaterProperties::dirtyAll() iter != inst_list.end(); ++iter) { LLFloaterProperties* floater = dynamic_cast<LLFloaterProperties*>(*iter); - floater->dirty(); + llassert(floater); // else cast failed - wrong type D: + if (floater) + { + floater->dirty(); + } } } diff --git a/indra/newview/llfloaterscriptlimits.cpp b/indra/newview/llfloaterscriptlimits.cpp index 4194416a01..fdf128945e 100644 --- a/indra/newview/llfloaterscriptlimits.cpp +++ b/indra/newview/llfloaterscriptlimits.cpp @@ -744,13 +744,13 @@ void LLPanelScriptLimitsRegionMemory::setRegionSummary(LLSD content) { mParcelMemoryUsed = content["summary"]["used"][0]["amount"].asInteger() / SIZE_OF_ONE_KB; mParcelMemoryMax = content["summary"]["available"][0]["amount"].asInteger() / SIZE_OF_ONE_KB; - mGotParcelMemoryUsed = TRUE; + mGotParcelMemoryUsed = true; } else if(content["summary"]["used"][1]["type"].asString() == std::string("memory")) { mParcelMemoryUsed = content["summary"]["used"][1]["amount"].asInteger() / SIZE_OF_ONE_KB; mParcelMemoryMax = content["summary"]["available"][1]["amount"].asInteger() / SIZE_OF_ONE_KB; - mGotParcelMemoryUsed = TRUE; + mGotParcelMemoryUsed = true; } else { @@ -762,13 +762,13 @@ void LLPanelScriptLimitsRegionMemory::setRegionSummary(LLSD content) { mParcelURLsUsed = content["summary"]["used"][0]["amount"].asInteger(); mParcelURLsMax = content["summary"]["available"][0]["amount"].asInteger(); - mGotParcelURLsUsed = TRUE; + mGotParcelURLsUsed = true; } else if(content["summary"]["used"][1]["type"].asString() == std::string("urls")) { mParcelURLsUsed = content["summary"]["used"][1]["amount"].asInteger(); mParcelURLsMax = content["summary"]["available"][1]["amount"].asInteger(); - mGotParcelURLsUsed = TRUE; + mGotParcelURLsUsed = true; } else { @@ -902,10 +902,10 @@ void LLPanelScriptLimitsRegionMemory::clearList() list->operateOnAll(LLCtrlListInterface::OP_DELETE); } - mGotParcelMemoryUsed = FALSE; - mGotParcelMemoryMax = FALSE; - mGotParcelURLsUsed = FALSE; - mGotParcelURLsMax = FALSE; + mGotParcelMemoryUsed = false; + mGotParcelMemoryMax = false; + mGotParcelURLsUsed = false; + mGotParcelURLsMax = false; LLStringUtil::format_map_t args_parcel_memory; std::string msg_empty_string(""); @@ -1208,13 +1208,13 @@ void LLPanelScriptLimitsAttachment::setAttachmentSummary(LLSD content) { mAttachmentMemoryUsed = content["summary"]["used"][0]["amount"].asInteger() / SIZE_OF_ONE_KB; mAttachmentMemoryMax = content["summary"]["available"][0]["amount"].asInteger() / SIZE_OF_ONE_KB; - mGotAttachmentMemoryUsed = TRUE; + mGotAttachmentMemoryUsed = true; } else if(content["summary"]["used"][1]["type"].asString() == std::string("memory")) { mAttachmentMemoryUsed = content["summary"]["used"][1]["amount"].asInteger() / SIZE_OF_ONE_KB; mAttachmentMemoryMax = content["summary"]["available"][1]["amount"].asInteger() / SIZE_OF_ONE_KB; - mGotAttachmentMemoryUsed = TRUE; + mGotAttachmentMemoryUsed = true; } else { @@ -1226,13 +1226,13 @@ void LLPanelScriptLimitsAttachment::setAttachmentSummary(LLSD content) { mAttachmentURLsUsed = content["summary"]["used"][0]["amount"].asInteger(); mAttachmentURLsMax = content["summary"]["available"][0]["amount"].asInteger(); - mGotAttachmentURLsUsed = TRUE; + mGotAttachmentURLsUsed = true; } else if(content["summary"]["used"][1]["type"].asString() == std::string("urls")) { mAttachmentURLsUsed = content["summary"]["used"][1]["amount"].asInteger(); mAttachmentURLsMax = content["summary"]["available"][1]["amount"].asInteger(); - mGotAttachmentURLsUsed = TRUE; + mGotAttachmentURLsUsed = true; } else { diff --git a/indra/newview/llfloaterscriptlimits.h b/indra/newview/llfloaterscriptlimits.h index 4c1ecc1019..0cba4d72f2 100644 --- a/indra/newview/llfloaterscriptlimits.h +++ b/indra/newview/llfloaterscriptlimits.h @@ -148,8 +148,8 @@ public: : LLPanelScriptLimitsInfo(), LLRemoteParcelInfoObserver(), mParcelId(LLUUID()), - mGotParcelMemoryUsed(FALSE), - mGotParcelMemoryMax(FALSE), + mGotParcelMemoryUsed(false), + mGotParcelMemoryMax(false), mParcelMemoryMax(0), mParcelMemoryUsed(0) {}; @@ -180,16 +180,16 @@ private: LLSD mContent; LLUUID mParcelId; - BOOL mGotParcelMemoryUsed; - BOOL mGotParcelMemoryUsedDetails; - BOOL mGotParcelMemoryMax; + bool mGotParcelMemoryUsed; + bool mGotParcelMemoryUsedDetails; + bool mGotParcelMemoryMax; S32 mParcelMemoryMax; S32 mParcelMemoryUsed; S32 mParcelMemoryUsedDetails; - BOOL mGotParcelURLsUsed; - BOOL mGotParcelURLsUsedDetails; - BOOL mGotParcelURLsMax; + bool mGotParcelURLsUsed; + bool mGotParcelURLsUsedDetails; + bool mGotParcelURLsMax; S32 mParcelURLsMax; S32 mParcelURLsUsed; S32 mParcelURLsUsedDetails; @@ -217,7 +217,21 @@ class LLPanelScriptLimitsAttachment : public LLPanelScriptLimitsInfo public: LLPanelScriptLimitsAttachment() - : LLPanelScriptLimitsInfo() {}; + : LLPanelScriptLimitsInfo(), + mGotAttachmentMemoryUsed(false), + mGotAttachmentMemoryUsedDetails(false), + mGotAttachmentMemoryMax(false), + mAttachmentMemoryMax(0), + mAttachmentMemoryUsed(0), + mAttachmentMemoryUsedDetails(0), + mGotAttachmentURLsUsed(false), + mGotAttachmentURLsUsedDetails(false), + mGotAttachmentURLsMax(false), + mAttachmentURLsMax(0), + mAttachmentURLsUsed(0), + mAttachmentURLsUsedDetails(0) + {}; + ~LLPanelScriptLimitsAttachment() { }; @@ -233,16 +247,16 @@ public: private: - BOOL mGotAttachmentMemoryUsed; - BOOL mGotAttachmentMemoryUsedDetails; - BOOL mGotAttachmentMemoryMax; + bool mGotAttachmentMemoryUsed; + bool mGotAttachmentMemoryUsedDetails; + bool mGotAttachmentMemoryMax; S32 mAttachmentMemoryMax; S32 mAttachmentMemoryUsed; S32 mAttachmentMemoryUsedDetails; - BOOL mGotAttachmentURLsUsed; - BOOL mGotAttachmentURLsUsedDetails; - BOOL mGotAttachmentURLsMax; + bool mGotAttachmentURLsUsed; + bool mGotAttachmentURLsUsedDetails; + bool mGotAttachmentURLsMax; S32 mAttachmentURLsMax; S32 mAttachmentURLsUsed; S32 mAttachmentURLsUsedDetails; diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp index 4edd09b02c..e2b083a29b 100644 --- a/indra/newview/llfloatertools.cpp +++ b/indra/newview/llfloatertools.cpp @@ -666,8 +666,8 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask) if (mCheckCopyCenters) mCheckCopyCenters ->setVisible( create_visible ); if (mCheckCopyRotates) mCheckCopyRotates ->setVisible( create_visible ); - if (mCheckCopyCenters) mCheckCopyCenters->setEnabled( mCheckCopySelection->get() ); - if (mCheckCopyRotates) mCheckCopyRotates->setEnabled( mCheckCopySelection->get() ); + if (mCheckCopyCenters && mCheckCopySelection) mCheckCopyCenters->setEnabled( mCheckCopySelection->get() ); + if (mCheckCopyRotates && mCheckCopySelection) mCheckCopyRotates->setEnabled( mCheckCopySelection->get() ); // Land buttons BOOL land_visible = (tool == LLToolBrushLand::getInstance() || tool == LLToolSelectLand::getInstance() ); diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp index 20cb2d3604..3946224c0c 100644 --- a/indra/newview/llfolderviewitem.cpp +++ b/indra/newview/llfolderviewitem.cpp @@ -2544,8 +2544,12 @@ bool LLInventorySort::operator()(const LLFolderViewItem* const& a, const LLFolde { // *TODO: mantipov: probably it is better to add an appropriate method to LLFolderViewItem // or to LLInvFVBridge - S32 a_sort = (static_cast<const LLItemBridge*>(a->getListener()))->getItem()->getSortField(); - S32 b_sort = (static_cast<const LLItemBridge*>(b->getListener()))->getItem()->getSortField(); + LLViewerInventoryItem* aitem = (static_cast<const LLItemBridge*>(a->getListener()))->getItem(); + LLViewerInventoryItem* bitem = (static_cast<const LLItemBridge*>(b->getListener()))->getItem(); + if (!aitem || !bitem) + return false; + S32 a_sort = aitem->getSortField(); + S32 b_sort = bitem->getSortField(); return a_sort < b_sort; } } diff --git a/indra/newview/llgroupmgr.cpp b/indra/newview/llgroupmgr.cpp index 4c1019a882..c813c8b2f9 100644 --- a/indra/newview/llgroupmgr.cpp +++ b/indra/newview/llgroupmgr.cpp @@ -677,9 +677,12 @@ void LLGroupMgrGroupData::sendRoleChanges() break; } case RC_UPDATE_ALL: + // fall through case RC_UPDATE_POWERS: need_power_recalc = true; + // fall through case RC_UPDATE_DATA: + // fall through default: { LLGroupRoleData* group_role_data = (*role_it).second; diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index b6032f4dfa..0965cbd0dc 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -77,6 +77,9 @@ const static std::string IM_FROM_ID("from_id"); const static std::string NO_SESSION("(IM Session Doesn't Exist)"); const static std::string ADHOC_NAME_SUFFIX(" Conference"); +const static std::string NEARBY_P2P_BY_OTHER("nearby_P2P_by_other"); +const static std::string NEARBY_P2P_BY_AGENT("nearby_P2P_by_agent"); + std::string LLCallDialogManager::sPreviousSessionlName = ""; LLIMModel::LLIMSession::SType LLCallDialogManager::sPreviousSessionType = LLIMModel::LLIMSession::P2P_SESSION; std::string LLCallDialogManager::sCurrentSessionlName = ""; @@ -1372,7 +1375,7 @@ void LLCallDialogManager::onVoiceChannelChanged(const LLUUID &session_id) } sSession = session; - sSession->mVoiceChannel->setStateChangedCallback(boost::bind(LLCallDialogManager::onVoiceChannelStateChanged, _1, _2, _3)); + sSession->mVoiceChannel->setStateChangedCallback(boost::bind(LLCallDialogManager::onVoiceChannelStateChanged, _1, _2, _3, _4)); if(sCurrentSessionlName != session->mName) { sPreviousSessionlName = sCurrentSessionlName; @@ -1403,7 +1406,7 @@ void LLCallDialogManager::onVoiceChannelChanged(const LLUUID &session_id) } -void LLCallDialogManager::onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state, const LLVoiceChannel::EDirection& direction) +void LLCallDialogManager::onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state, const LLVoiceChannel::EDirection& direction, bool ended_by_agent) { LLSD mCallDialogPayload; LLOutgoingCallDialog* ocd = NULL; @@ -1423,6 +1426,7 @@ void LLCallDialogManager::onVoiceChannelStateChanged(const LLVoiceChannel::EStat mCallDialogPayload["state"] = new_state; mCallDialogPayload["disconnected_channel_name"] = sSession->mName; mCallDialogPayload["session_type"] = sSession->mSessionType; + mCallDialogPayload["ended_by_agent"] = ended_by_agent; switch(new_state) { @@ -1517,6 +1521,15 @@ void LLCallDialog::draw() } } +// virtual +void LLCallDialog::onOpen(const LLSD& key) +{ + LLDockableFloater::onOpen(key); + + // it should be over the all floaters. EXT-5116 + gFloaterView->bringToFront(this); +} + void LLCallDialog::setIcon(const LLSD& session_id, const LLSD& participant_id) { // *NOTE: 12/28/2009: check avaline calls: LLVoiceClient::isParticipantAvatar returns false for them @@ -1609,14 +1622,16 @@ void LLOutgoingCallDialog::show(const LLSD& key) channel_name = LLTextUtil::formatPhoneNumber(channel_name); } childSetTextArg("nearby", "[VOICE_CHANNEL_NAME]", channel_name); - childSetTextArg("nearby_P2P", "[VOICE_CHANNEL_NAME]", mPayload["disconnected_channel_name"].asString()); + childSetTextArg("nearby_P2P_by_other", "[VOICE_CHANNEL_NAME]", mPayload["disconnected_channel_name"].asString()); // skipping "You will now be reconnected to nearby" in notification when call is ended by disabling voice, // so no reconnection to nearby chat happens (EXT-4397) bool voice_works = LLVoiceClient::voiceEnabled() && gVoiceClient->voiceWorking(); std::string reconnect_nearby = voice_works ? LLTrans::getString("reconnect_nearby") : std::string(); childSetTextArg("nearby", "[RECONNECT_NEARBY]", reconnect_nearby); - childSetTextArg("nearby_P2P", "[RECONNECT_NEARBY]", reconnect_nearby); + + const std::string& nearby_str = mPayload["ended_by_agent"] ? NEARBY_P2P_BY_AGENT : NEARBY_P2P_BY_OTHER; + childSetTextArg(nearby_str, "[RECONNECT_NEARBY]", reconnect_nearby); } std::string callee_name = mPayload["session_name"].asString(); @@ -1671,7 +1686,8 @@ void LLOutgoingCallDialog::show(const LLSD& key) case LLVoiceChannel::STATE_HUNG_UP : if (mPayload["session_type"].asInteger() == LLIMModel::LLIMSession::P2P_SESSION) { - getChild<LLTextBox>("nearby_P2P")->setVisible(true); + const std::string& nearby_str = mPayload["ended_by_agent"] ? NEARBY_P2P_BY_AGENT : NEARBY_P2P_BY_OTHER; + getChild<LLTextBox>(nearby_str)->setVisible(true); } else { @@ -1690,7 +1706,8 @@ void LLOutgoingCallDialog::hideAllText() getChild<LLTextBox>("calling")->setVisible(false); getChild<LLTextBox>("leaving")->setVisible(false); getChild<LLTextBox>("connecting")->setVisible(false); - getChild<LLTextBox>("nearby_P2P")->setVisible(false); + getChild<LLTextBox>("nearby_P2P_by_other")->setVisible(false); + getChild<LLTextBox>("nearby_P2P_by_agent")->setVisible(false); getChild<LLTextBox>("nearby")->setVisible(false); getChild<LLTextBox>("noanswer")->setVisible(false); } diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h index 1c7aaa3f1b..ad6cede727 100644 --- a/indra/newview/llimview.h +++ b/indra/newview/llimview.h @@ -452,7 +452,7 @@ public: static void initClass(); static void onVoiceChannelChanged(const LLUUID &session_id); - static void onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state, const LLVoiceChannel::EDirection& direction); + static void onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state, const LLVoiceChannel::EDirection& direction, bool ended_by_agent); protected: static std::string sPreviousSessionlName; @@ -472,6 +472,7 @@ public: // check timer state /*virtual*/ void draw(); + /*virtual*/ void onOpen(const LLSD& key); protected: // lifetime timer for a notification diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index f246b6b529..da95eaefca 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -1113,6 +1113,9 @@ void LLItemBridge::restoreItem() void LLItemBridge::restoreToWorld() { + //Similar functionality to the drag and drop rez logic + bool remove_from_inventory = false; + LLViewerInventoryItem* itemp = (LLViewerInventoryItem*)getItem(); if (itemp) { @@ -1125,23 +1128,20 @@ void LLItemBridge::restoreToWorld() msg->nextBlockFast(_PREHASH_InventoryData); itemp->packMessage(msg); msg->sendReliable(gAgent.getRegion()->getHost()); - } - - //Similar functionality to the drag and drop rez logic - BOOL remove_from_inventory = FALSE; - - //remove local inventory copy, sim will deal with permissions and removing the item - //from the actual inventory if its a no-copy etc - if(!itemp->getPermissions().allowCopyBy(gAgent.getID())) - { - remove_from_inventory = TRUE; - } - // Check if it's in the trash. (again similar to the normal rez logic) - const LLUUID trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH); - if(gInventory.isObjectDescendentOf(itemp->getUUID(), trash_id)) - { - remove_from_inventory = TRUE; + //remove local inventory copy, sim will deal with permissions and removing the item + //from the actual inventory if its a no-copy etc + if(!itemp->getPermissions().allowCopyBy(gAgent.getID())) + { + remove_from_inventory = true; + } + + // Check if it's in the trash. (again similar to the normal rez logic) + const LLUUID trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH); + if(gInventory.isObjectDescendentOf(itemp->getUUID(), trash_id)) + { + remove_from_inventory = true; + } } if(remove_from_inventory) @@ -1527,7 +1527,7 @@ BOOL LLFolderBridge::isUpToDate() const BOOL LLFolderBridge::isItemCopyable() const { - return TRUE; + return FALSE; } BOOL LLFolderBridge::copyToClipboard() const @@ -2232,7 +2232,10 @@ void LLFolderBridge::determineFolderType() { LLInventoryModel* model = getInventoryModel(); LLViewerInventoryCategory* category = model->getCategory(mUUID); - category->determineFolderType(); + if (category) + { + category->determineFolderType(); + } } } @@ -2429,7 +2432,9 @@ void LLFolderBridge::pasteFromClipboard() { // move_inventory_item() is not enough, //we have to update inventory locally too - changeItemParent(model, dynamic_cast<LLViewerInventoryItem*>(item), parent_id, FALSE); + LLViewerInventoryItem* viitem = dynamic_cast<LLViewerInventoryItem*>(item); + llassert(viitem); + changeItemParent(model, viitem, parent_id, FALSE); } else { @@ -2501,11 +2506,13 @@ void LLFolderBridge::folderOptionsMenu() if(!model) return; const LLInventoryCategory* category = model->getCategory(mUUID); + if(!category) return; + LLFolderType::EType type = category->getPreferredType(); - const bool is_system_folder = category && LLFolderType::lookupIsProtectedType(type); + const bool is_system_folder = LLFolderType::lookupIsProtectedType(type); // BAP change once we're no longer treating regular categories as ensembles. - const bool is_ensemble = category && (type == LLFolderType::FT_NONE || - LLFolderType::lookupIsEnsembleType(type)); + const bool is_ensemble = (type == LLFolderType::FT_NONE || + LLFolderType::lookupIsEnsembleType(type)); // calling card related functionality for folders. @@ -3627,9 +3634,13 @@ void LLCallingCardBridge::buildContextMenu(LLMenuGL& menu, U32 flags) LLInventoryItem* item = getItem(); BOOL good_card = (item - && (LLUUID::null != item->getCreatorUUID()) - && (item->getCreatorUUID() != gAgent.getID())); - BOOL user_online = (LLAvatarTracker::instance().isBuddyOnline(item->getCreatorUUID())); + && (LLUUID::null != item->getCreatorUUID()) + && (item->getCreatorUUID() != gAgent.getID())); + BOOL user_online = FALSE; + if (item) + { + user_online = (LLAvatarTracker::instance().isBuddyOnline(item->getCreatorUUID())); + } items.push_back(std::string("Send Instant Message Separator")); items.push_back(std::string("Send Instant Message")); items.push_back(std::string("Offer Teleport...")); @@ -3816,7 +3827,12 @@ void LLGestureBridge::performAction(LLFolderView* folder, LLInventoryModel* mode BOOL inform_server = TRUE; BOOL deactivate_similar = FALSE; LLGestureManager::instance().setGestureLoadedCallback(mUUID, boost::bind(&LLGestureBridge::playGesture, mUUID)); - LLGestureManager::instance().activateGestureWithAsset(mUUID, gInventory.getItem(mUUID)->getAssetUUID(), inform_server, deactivate_similar); + LLViewerInventoryItem* item = gInventory.getItem(mUUID); + llassert(item); + if (item) + { + LLGestureManager::instance().activateGestureWithAsset(mUUID, item->getAssetUUID(), inform_server, deactivate_similar); + } } else { @@ -4059,12 +4075,13 @@ void LLObjectBridge::performAction(LLFolderView* folder, LLInventoryModel* model gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); gMessageSystem->addUUIDFast(_PREHASH_ItemID, item->getLinkedUUID()); gMessageSystem->sendReliable( gAgent.getRegion()->getHost()); - } - // this object might have been selected, so let the selection manager know it's gone now - LLViewerObject *found_obj = gObjectList.findObject(item->getLinkedUUID()); - if (found_obj) - { - LLSelectMgr::getInstance()->remove(found_obj); + + // this object might have been selected, so let the selection manager know it's gone now + LLViewerObject *found_obj = gObjectList.findObject(item->getLinkedUUID()); + if (found_obj) + { + LLSelectMgr::getInstance()->remove(found_obj); + } } } else LLItemBridge::performAction(folder, model, action); diff --git a/indra/newview/lllocaltextureobject.cpp b/indra/newview/lllocaltextureobject.cpp index 69eb5fce2f..116d9bc446 100644 --- a/indra/newview/lllocaltextureobject.cpp +++ b/indra/newview/lllocaltextureobject.cpp @@ -70,6 +70,7 @@ LLLocalTextureObject::LLLocalTextureObject(const LLLocalTextureObject& lto) : if (!original_layer) { llerrs << "could not clone Local Texture Object: unable to extract texlayer!" << llendl; + continue; } LLTexLayer* new_layer = new LLTexLayer(*original_layer); diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp index ff713d74ad..f48c96190f 100644 --- a/indra/newview/lllocationinputctrl.cpp +++ b/indra/newview/lllocationinputctrl.cpp @@ -489,7 +489,10 @@ void LLLocationInputCtrl::onTextEntry(LLLineEditor* line_editor) */ void LLLocationInputCtrl::setText(const LLStringExplicit& text) { - mTextEntry->setText(text); + if (mTextEntry) + { + mTextEntry->setText(text); + } mHasAutocompletedText = FALSE; } @@ -498,7 +501,9 @@ void LLLocationInputCtrl::setFocus(BOOL b) LLComboBox::setFocus(b); if (mTextEntry && b && !mList->getVisible()) + { mTextEntry->setFocus(TRUE); + } } void LLLocationInputCtrl::handleLoginComplete() @@ -688,8 +693,8 @@ void LLLocationInputCtrl::refreshLocation() { // Is one of our children focused? if (LLUICtrl::hasFocus() || mButton->hasFocus() || mList->hasFocus() || - (mTextEntry && mTextEntry->hasFocus()) || (mAddLandmarkBtn->hasFocus())) - + (mTextEntry && mTextEntry->hasFocus()) || + (mAddLandmarkBtn->hasFocus())) { llwarns << "Location input should not be refreshed when having focus" << llendl; return; diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp index 40e8b64362..114fef8712 100644 --- a/indra/newview/llnamelistctrl.cpp +++ b/indra/newview/llnamelistctrl.cpp @@ -339,8 +339,7 @@ void LLNameListCtrl::refresh(const LLUUID& id, const std::string& first, LLScrollListItem* item = *iter; if (item->getUUID() == id) { - LLScrollListCell* cell = (LLScrollListCell*)item->getColumn(0); - cell = item->getColumn(mNameColumnIndex); + LLScrollListCell* cell = item->getColumn(mNameColumnIndex); if (cell) { cell->setValue(fullname); diff --git a/indra/newview/llpanelgroup.cpp b/indra/newview/llpanelgroup.cpp index 469f1c1739..ce4078409a 100644 --- a/indra/newview/llpanelgroup.cpp +++ b/indra/newview/llpanelgroup.cpp @@ -90,6 +90,7 @@ LLPanelGroup::LLPanelGroup() : LLPanel(), LLGroupMgrObserver( LLUUID() ), mSkipRefresh(FALSE), + mButtonJoin(NULL), mShowingNotifyDialog(false) { // Set up the factory callbacks. @@ -159,10 +160,6 @@ BOOL LLPanelGroup::postBuild() button = getChild<LLButton>("btn_chat"); button->setClickedCallback(onBtnGroupChatClicked, this); - button = getChild<LLButton>("btn_join"); - button->setVisible(false); - button->setEnabled(true); - button = getChild<LLButton>("btn_cancel"); button->setVisible(false); button->setEnabled(true); @@ -174,7 +171,7 @@ BOOL LLPanelGroup::postBuild() childSetCommitCallback("back",boost::bind(&LLPanelGroup::onBackBtnClick,this),NULL); childSetCommitCallback("btn_create",boost::bind(&LLPanelGroup::onBtnCreate,this),NULL); - childSetCommitCallback("btn_join",boost::bind(&LLPanelGroup::onBtnJoin,this),NULL); + childSetCommitCallback("btn_cancel",boost::bind(&LLPanelGroup::onBtnCancel,this),NULL); LLPanelGroupTab* panel_general = findChild<LLPanelGroupTab>("group_general_tab_panel"); @@ -188,7 +185,17 @@ BOOL LLPanelGroup::postBuild() if(panel_land) mTabs.push_back(panel_land); if(panel_general) + { panel_general->setupCtrls(this); + button = panel_general->getChild<LLButton>("btn_join"); + button->setVisible(false); + button->setEnabled(true); + + mButtonJoin = button; + mButtonJoin->setCommitCallback(boost::bind(&LLPanelGroup::onBtnJoin,this)); + + mJoinText = panel_general->getChild<LLUICtrl>("join_cost_text"); + } gVoiceClient->addObserver(this); @@ -326,16 +333,13 @@ void LLPanelGroup::update(LLGroupChange gc) { childSetValue("group_name", gdatap->mName); childSetToolTip("group_name",gdatap->mName); - - LLButton* btn_join = getChild<LLButton>("btn_join"); - LLUICtrl* join_text = getChild<LLUICtrl>("join_cost_text"); - + LLGroupData agent_gdatap; bool is_member = gAgent.getGroupData(mID,agent_gdatap); bool join_btn_visible = !is_member && gdatap->mOpenEnrollment; - btn_join->setVisible(join_btn_visible); - join_text->setVisible(join_btn_visible); + mButtonJoin->setVisible(join_btn_visible); + mJoinText->setVisible(join_btn_visible); if(join_btn_visible) { @@ -351,7 +355,7 @@ void LLPanelGroup::update(LLGroupChange gc) { fee_buff = getString("group_join_free", string_args); } - childSetValue("join_cost_text",fee_buff); + mJoinText->setValue(fee_buff); } } } @@ -380,7 +384,7 @@ void LLPanelGroup::setGroupID(const LLUUID& group_id) LLButton* button_apply = findChild<LLButton>("btn_apply"); LLButton* button_refresh = findChild<LLButton>("btn_refresh"); LLButton* button_create = findChild<LLButton>("btn_create"); - LLButton* button_join = findChild<LLButton>("btn_join"); + LLButton* button_cancel = findChild<LLButton>("btn_cancel"); LLButton* button_call = findChild<LLButton>("btn_call"); LLButton* button_chat = findChild<LLButton>("btn_chat"); @@ -417,8 +421,8 @@ void LLPanelGroup::setGroupID(const LLUUID& group_id) if(!tab_general || !tab_roles || !tab_notices || !tab_land) return; - if(button_join) - button_join->setVisible(false); + if(mButtonJoin) + mButtonJoin->setVisible(false); if(is_null_group_id)//creating new group @@ -478,6 +482,7 @@ void LLPanelGroup::setGroupID(const LLUUID& group_id) } reposButtons(); + update(GC_ALL);//show/hide "join" button if data is already ready } bool LLPanelGroup::apply(LLPanelGroupTab* tab) diff --git a/indra/newview/llpanelgroup.h b/indra/newview/llpanelgroup.h index 6e23eedffb..136868a60d 100644 --- a/indra/newview/llpanelgroup.h +++ b/indra/newview/llpanelgroup.h @@ -130,6 +130,9 @@ protected: std::vector<LLPanelGroupTab* > mTabs; + LLButton* mButtonJoin; + LLUICtrl* mJoinText; + }; class LLPanelGroupTab : public LLPanel diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp index 3b303eed0f..555e277ce5 100644 --- a/indra/newview/llpanelgroupgeneral.cpp +++ b/indra/newview/llpanelgroupgeneral.cpp @@ -206,15 +206,19 @@ BOOL LLPanelGroupGeneral::postBuild() void LLPanelGroupGeneral::setupCtrls(LLPanel* panel_group) { - mInsignia = panel_group->getChild<LLTextureCtrl>("insignia"); + mInsignia = getChild<LLTextureCtrl>("insignia"); if (mInsignia) { mInsignia->setCommitCallback(onCommitAny, this); mDefaultIconID = mInsignia->getImageAssetID(); } - mFounderName = panel_group->getChild<LLNameBox>("founder_name"); + mFounderName = getChild<LLNameBox>("founder_name"); + + mGroupNameEditor = panel_group->getChild<LLLineEditor>("group_name_editor"); mGroupNameEditor->setPrevalidate( LLTextValidate::validateASCII ); + + } // static diff --git a/indra/newview/llpanelimcontrolpanel.cpp b/indra/newview/llpanelimcontrolpanel.cpp index cbd6f64a48..8e305a5674 100644 --- a/indra/newview/llpanelimcontrolpanel.cpp +++ b/indra/newview/llpanelimcontrolpanel.cpp @@ -224,14 +224,6 @@ void LLPanelIMControlPanel::setSessionId(const LLUUID& session_id) childSetEnabled("share_btn", FALSE); childSetEnabled("teleport_btn", FALSE); childSetEnabled("pay_btn", FALSE); - - getChild<LLTextBox>("avatar_name")->setValue(im_session->mName); - getChild<LLTextBox>("avatar_name")->setToolTip(im_session->mName); - } - else - { - // If the participant is an avatar, fetch the currect name - gCacheName->get(mAvatarID, FALSE, boost::bind(&LLPanelIMControlPanel::nameUpdatedCallback, this, _1, _2, _3, _4)); } } @@ -247,19 +239,6 @@ void LLPanelIMControlPanel::changed(U32 mask) } } -void LLPanelIMControlPanel::nameUpdatedCallback(const LLUUID& id, const std::string& first, const std::string& last, BOOL is_group) -{ - if ( id == mAvatarID ) - { - std::string avatar_name; - avatar_name.assign(first); - avatar_name.append(" "); - avatar_name.append(last); - getChild<LLTextBox>("avatar_name")->setValue(avatar_name); - getChild<LLTextBox>("avatar_name")->setToolTip(avatar_name); - } -} - LLPanelGroupControlPanel::LLPanelGroupControlPanel(const LLUUID& session_id): mParticipantList(NULL) { diff --git a/indra/newview/llpanelimcontrolpanel.h b/indra/newview/llpanelimcontrolpanel.h index 3ab505a084..ce8fc58e56 100644 --- a/indra/newview/llpanelimcontrolpanel.h +++ b/indra/newview/llpanelimcontrolpanel.h @@ -89,9 +89,6 @@ public: // LLFriendObserver trigger virtual void changed(U32 mask); -protected: - void nameUpdatedCallback(const LLUUID& id, const std::string& first, const std::string& last, BOOL is_group); - private: void onViewProfileButtonClicked(); void onAddFriendButtonClicked(); diff --git a/indra/newview/llpanellandmarkinfo.cpp b/indra/newview/llpanellandmarkinfo.cpp index 36a542cfa0..cd6c727b5c 100644 --- a/indra/newview/llpanellandmarkinfo.cpp +++ b/indra/newview/llpanellandmarkinfo.cpp @@ -406,21 +406,24 @@ void LLPanelLandmarkInfo::populateFoldersList() // Put the "Landmarks" folder first in list. LLUUID landmarks_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_LANDMARK); - const LLViewerInventoryCategory* cat = gInventory.getCategory(landmarks_id); - if (!cat) + const LLViewerInventoryCategory* lmcat = gInventory.getCategory(landmarks_id); + if (!lmcat) { llwarns << "Cannot find the landmarks folder" << llendl; } - std::string cat_full_name = getFullFolderName(cat); - mFolderCombo->add(cat_full_name, cat->getUUID()); + else + { + std::string cat_full_name = getFullFolderName(lmcat); + mFolderCombo->add(cat_full_name, lmcat->getUUID()); + } typedef std::vector<folder_pair_t> folder_vec_t; folder_vec_t folders; // Sort the folders by their full name. for (S32 i = 0; i < cats.count(); i++) { - cat = cats.get(i); - cat_full_name = getFullFolderName(cat); + const LLViewerInventoryCategory* cat = cats.get(i); + std::string cat_full_name = getFullFolderName(cat); folders.push_back(folder_pair_t(cat->getUUID(), cat_full_name)); } sort(folders.begin(), folders.end(), cmp_folders); diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp index 7c1b0f6234..f1cb6e87a3 100644 --- a/indra/newview/llpanellandmarks.cpp +++ b/indra/newview/llpanellandmarks.cpp @@ -526,9 +526,10 @@ void LLLandmarksPanel::initLandmarksPanel(LLPlacesInventoryPanel* inventory_list { root_folder->setupMenuHandle(LLInventoryType::IT_CATEGORY, mGearFolderMenu->getHandle()); root_folder->setupMenuHandle(LLInventoryType::IT_LANDMARK, mGearLandmarkMenu->getHandle()); + + root_folder->setParentLandmarksPanel(this); } - root_folder->setParentLandmarksPanel(this); inventory_list->saveFolderState(); } diff --git a/indra/newview/llpanelpicks.cpp b/indra/newview/llpanelpicks.cpp index ada65c98a4..8eb0b69491 100644 --- a/indra/newview/llpanelpicks.cpp +++ b/indra/newview/llpanelpicks.cpp @@ -843,10 +843,13 @@ void LLPanelPicks::onPanelClassifiedClose(LLPanelClassifiedInfo* panel) { LLClassifiedItem* c_item = dynamic_cast<LLClassifiedItem*>( mClassifiedsList->getItemByValue(values[n])); - - c_item->setClassifiedName(panel->getClassifiedName()); - c_item->setDescription(panel->getDescription()); - c_item->setSnapshotId(panel->getSnapshotId()); + llassert(c_item); + if (c_item) + { + c_item->setClassifiedName(panel->getClassifiedName()); + c_item->setDescription(panel->getDescription()); + c_item->setSnapshotId(panel->getSnapshotId()); + } } } } diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp index c0491cc00f..26b57c003b 100644 --- a/indra/newview/llpanelplaces.cpp +++ b/indra/newview/llpanelplaces.cpp @@ -1015,7 +1015,8 @@ void LLPanelPlaces::showAddedLandmarkInfo(const std::vector<LLUUID>& items) LLInventoryItem* item = gInventory.getItem(item_id); - if (LLAssetType::AT_LANDMARK == item->getType()) + llassert(item); + if (item && (LLAssetType::AT_LANDMARK == item->getType()) ) { // Created landmark is passed to Places panel to allow its editing. // If the panel is closed we don't reopen it until created landmark is loaded. @@ -1047,14 +1048,13 @@ void LLPanelPlaces::updateVerbs() mTeleportBtn->setVisible(!is_create_landmark_visible && !isLandmarkEditModeOn); mShowOnMapBtn->setVisible(!is_create_landmark_visible && !isLandmarkEditModeOn); - mOverflowBtn->setVisible(!is_create_landmark_visible && !isLandmarkEditModeOn); + mOverflowBtn->setVisible(is_place_info_visible && !is_create_landmark_visible && !isLandmarkEditModeOn); mEditBtn->setVisible(mPlaceInfoType == LANDMARK_INFO_TYPE && !isLandmarkEditModeOn); mSaveBtn->setVisible(isLandmarkEditModeOn); mCancelBtn->setVisible(isLandmarkEditModeOn); mCloseBtn->setVisible(is_create_landmark_visible && !isLandmarkEditModeOn); mShowOnMapBtn->setEnabled(!is_create_landmark_visible && !isLandmarkEditModeOn && have_3d_pos); - mOverflowBtn->setEnabled(is_place_info_visible && !is_create_landmark_visible); if (is_place_info_visible) { diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index a8feaf690d..3221745fa3 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -661,7 +661,9 @@ void LLScriptEdCore::onBtnDynamicHelp() live_help_floater = new LLFloater(LLSD()); LLUICtrlFactory::getInstance()->buildFloater(live_help_floater, "floater_lsl_guide.xml", NULL); LLFloater* parent = dynamic_cast<LLFloater*>(getParent()); - parent->addDependentFloater(live_help_floater, TRUE); + llassert(parent); + if (parent) + parent->addDependentFloater(live_help_floater, TRUE); live_help_floater->childSetCommitCallback("lock_check", onCheckLock, this); live_help_floater->childSetValue("lock_check", gSavedSettings.getBOOL("ScriptHelpFollowsCursor")); live_help_floater->childSetCommitCallback("history_combo", onHelpComboCommit, this); diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index 43215f86bd..cd4a821774 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -278,7 +278,7 @@ void LLSidepanelAppearance::toggleLookInfoPanel(BOOL visible) return; mLookInfo->setVisible(visible); - mPanelOutfitsInventory->setVisible(!visible); + if (mPanelOutfitsInventory) mPanelOutfitsInventory->setVisible(!visible); mFilterEditor->setVisible(!visible); mEditBtn->setVisible(!visible); mNewOutfitBtn->setVisible(!visible); @@ -305,7 +305,7 @@ void LLSidepanelAppearance::updateVerbs() { bool is_look_info_visible = mLookInfo->getVisible(); - if (!is_look_info_visible) + if (mPanelOutfitsInventory && !is_look_info_visible) { const bool is_correct_type = (mPanelOutfitsInventory->getCorrectListenerForAction() != NULL); mEditBtn->setEnabled(is_correct_type); diff --git a/indra/newview/llsidepaneliteminfo.cpp b/indra/newview/llsidepaneliteminfo.cpp index 44348ba429..0275736f6d 100644 --- a/indra/newview/llsidepaneliteminfo.cpp +++ b/indra/newview/llsidepaneliteminfo.cpp @@ -231,20 +231,23 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item) // PERMISSIONS LOOKUP // //////////////////////// + llassert(item); + if (!item) return; + // do not enable the UI for incomplete items. BOOL is_complete = item->isComplete(); const BOOL cannot_restrict_permissions = LLInventoryType::cannotRestrictPermissions(item->getInventoryType()); const BOOL is_calling_card = (item->getInventoryType() == LLInventoryType::IT_CALLINGCARD); const LLPermissions& perm = item->getPermissions(); const BOOL can_agent_manipulate = gAgent.allowOperation(PERM_OWNER, perm, - GP_OBJECT_MANIPULATE); + GP_OBJECT_MANIPULATE); const BOOL can_agent_sell = gAgent.allowOperation(PERM_OWNER, perm, - GP_OBJECT_SET_SALE) && + GP_OBJECT_SET_SALE) && !cannot_restrict_permissions; const BOOL is_link = item->getIsLinkType(); const LLUUID trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH); - bool not_in_trash = item && (item->getUUID() != trash_id) && !gInventory.isObjectDescendentOf(item->getUUID(), trash_id); + bool not_in_trash = (item->getUUID() != trash_id) && !gInventory.isObjectDescendentOf(item->getUUID(), trash_id); // You need permission to modify the object to modify an inventory // item in it. diff --git a/indra/newview/llstylemap.cpp b/indra/newview/llstylemap.cpp index 2485563cbc..61705c4eb3 100644 --- a/indra/newview/llstylemap.cpp +++ b/indra/newview/llstylemap.cpp @@ -49,6 +49,7 @@ const LLStyle::Params &LLStyleMap::lookupAgent(const LLUUID &source) if (source != LLUUID::null && source != gAgent.getID() ) { style_params.color.control = "HTMLLinkColor"; + style_params.readonly_color.control = "HTMLLinkColor"; style_params.link_href = LLSLURL::buildCommand("agent", source, "inspect"); } @@ -56,6 +57,7 @@ const LLStyle::Params &LLStyleMap::lookupAgent(const LLUUID &source) { // Make the resident's own name white and don't make the name clickable. style_params.color = LLColor4::white; + style_params.readonly_color = LLColor4::white; } mMap[source] = style_params; @@ -75,11 +77,13 @@ const LLStyle::Params &LLStyleMap::lookup(const LLUUID& id, const std::string& l if (id != LLUUID::null && !link.empty()) { style_params.color.control = "HTMLLinkColor"; + style_params.readonly_color.control = "HTMLLinkColor"; style_params.link_href = link; } else { style_params.color = LLColor4::white; + style_params.readonly_color = LLColor4::white; } mMap[id] = style_params; } diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp index a7f26f1df1..91c303c79e 100644 --- a/indra/newview/lltexturecache.cpp +++ b/indra/newview/lltexturecache.cpp @@ -51,7 +51,8 @@ // cache/textures/[0-F]/UUID.texture // Actual texture body files -const S32 TEXTURE_CACHE_ENTRY_SIZE = 1024; +//note: there is no good to define 1024 for TEXTURE_CACHE_ENTRY_SIZE while FIRST_PACKET_SIZE is 600 on sim side. +const S32 TEXTURE_CACHE_ENTRY_SIZE = FIRST_PACKET_SIZE;//1024; const F32 TEXTURE_CACHE_PURGE_AMOUNT = .20f; // % amount to reduce the cache by when it exceeds its limit const F32 TEXTURE_CACHE_LRU_SIZE = .10f; // % amount for LRU list (low overhead to regenerate) diff --git a/indra/newview/lltoastimpanel.cpp b/indra/newview/lltoastimpanel.cpp index 7ae2404203..cb43beb819 100644 --- a/indra/newview/lltoastimpanel.cpp +++ b/indra/newview/lltoastimpanel.cpp @@ -141,32 +141,6 @@ BOOL LLToastIMPanel::handleToolTip(S32 x, S32 y, MASK mask) return LLToastPanel::handleToolTip(x, y, mask); } -void LLToastIMPanel::showInspector() -{ - LLIMModel::LLIMSession* im_session = LLIMModel::getInstance()->findIMSession(mSessionID); - if(!im_session) - { - llwarns << "Invalid IM session" << llendl; - return; - } - - switch(im_session->mSessionType) - { - case LLIMModel::LLIMSession::P2P_SESSION: - LLFloaterReg::showInstance("inspect_avatar", LLSD().with("avatar_id", mAvatarID)); - break; - case LLIMModel::LLIMSession::GROUP_SESSION: - LLFloaterReg::showInstance("inspect_group", LLSD().with("group_id", mSessionID)); - break; - case LLIMModel::LLIMSession::ADHOC_SESSION: - LLFloaterReg::showInstance("inspect_avatar", LLSD().with("avatar_id", im_session->mOtherParticipantID)); - break; - default: - llwarns << "Unknown IM session type" << llendl; - break; - } -} - void LLToastIMPanel::spawnNameToolTip() { // Spawn at right side of the name textbox. @@ -176,7 +150,7 @@ void LLToastIMPanel::spawnNameToolTip() LLToolTip::Params params; params.background_visible(false); - params.click_callback(boost::bind(&LLToastIMPanel::showInspector, this)); + params.click_callback(boost::bind(&LLFloaterReg::showInstance, "inspect_avatar", LLSD().with("avatar_id", mAvatarID), FALSE)); params.delay_time(0.0f); // spawn instantly on hover params.image(LLUI::getUIImage("Info_Small")); params.message(""); @@ -201,7 +175,7 @@ void LLToastIMPanel::spawnGroupIconToolTip() LLInspector::Params params; params.fillFrom(LLUICtrlFactory::instance().getDefaultParams<LLInspector>()); - params.click_callback(boost::bind(&LLToastIMPanel::showInspector, this)); + params.click_callback(boost::bind(&LLFloaterReg::showInstance, "inspect_group", LLSD().with("group_id", mSessionID), FALSE)); params.delay_time(0.100f); params.image(LLUI::getUIImage("Info_Small")); params.message(g_data.mName); @@ -214,16 +188,15 @@ void LLToastIMPanel::spawnGroupIconToolTip() void LLToastIMPanel::initIcon() { - LLIconCtrl* sys_msg_icon = getChild<LLIconCtrl>("sys_msg_icon"); - mAvatarIcon->setVisible(FALSE); mGroupIcon->setVisible(FALSE); - sys_msg_icon->setVisible(FALSE); mAdhocIcon->setVisible(FALSE); if(mAvatarName->getValue().asString() == SYSTEM_FROM) { - sys_msg_icon->setVisible(TRUE); + // "sys_msg_icon" was disabled by Erica in the changeset: 5109 (85181bc92cbe) + // and "dummy widget" warnings appeared in log. + // It does not make sense to have such image with empty name. Removed for EXT-5057. } else { diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index bf1e307d71..fdf9e1df2e 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -1485,6 +1485,12 @@ BOOL LLToolPie::pickRightMouseDownCallback() while( object && object->isAttachment()) { object = (LLViewerObject*)object->getParent(); + llassert(object); + } + + if (!object) + { + return TRUE; // unexpected, but escape } // Object is an avatar, so check for mute by id. diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index a83baf7f9a..8aae90ec3c 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -5332,7 +5332,7 @@ class LLWorldCreateLandmark : public view_listener_t void handle_look_at_selection(const LLSD& param) { - const F32 PADDING_FACTOR = 2.f; + const F32 PADDING_FACTOR = 1.75f; BOOL zoom = (param.asString() == "zoom"); if (!LLSelectMgr::getInstance()->getSelection()->isEmpty()) { @@ -5352,14 +5352,19 @@ void handle_look_at_selection(const LLSD& param) } if (zoom) { + // Make sure we are not increasing the distance between the camera and object + LLVector3d orig_distance = gAgent.getCameraPositionGlobal() - LLSelectMgr::getInstance()->getSelectionCenterGlobal(); + distance = llmin(distance, (F32) orig_distance.length()); + gAgent.setCameraPosAndFocusGlobal(LLSelectMgr::getInstance()->getSelectionCenterGlobal() + LLVector3d(obj_to_cam * distance), - LLSelectMgr::getInstance()->getSelectionCenterGlobal(), - object_id ); + LLSelectMgr::getInstance()->getSelectionCenterGlobal(), + object_id ); + } else { gAgent.setFocusGlobal( LLSelectMgr::getInstance()->getSelectionCenterGlobal(), object_id ); - } + } } } @@ -5625,14 +5630,15 @@ class LLShowSidetrayPanel : public view_listener_t bool handleEvent(const LLSD& userdata) { std::string panel_name = userdata.asString(); - // Open up either the sidepanel or new floater. - if (LLSideTray::getInstance()->isPanelActive(panel_name)) + // Toggle the panel + if (!LLSideTray::getInstance()->isPanelActive(panel_name)) { - LLFloaterInventory::showAgentInventory(); + // LLFloaterInventory::showAgentInventory(); + LLSideTray::getInstance()->showPanel(panel_name, LLSD()); } else { - LLSideTray::getInstance()->showPanel(panel_name, LLSD()); + LLSideTray::getInstance()->collapseSideBar(); } return true; } diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp index 6bad8843fd..84b270f8cc 100644 --- a/indra/newview/llviewermenufile.cpp +++ b/indra/newview/llviewermenufile.cpp @@ -796,84 +796,88 @@ void upload_done_callback(const LLUUID& uuid, void* user_data, S32 result, LLExt //LLAssetType::EType pref_loc = data->mPreferredLocation; BOOL is_balance_sufficient = TRUE; - if(result >= 0) + if(data) { - LLFolderType::EType dest_loc = (data->mPreferredLocation == LLFolderType::FT_NONE) ? LLFolderType::assetTypeToFolderType(data->mAssetInfo.mType) : data->mPreferredLocation; - - if (LLAssetType::AT_SOUND == data->mAssetInfo.mType || - LLAssetType::AT_TEXTURE == data->mAssetInfo.mType || - LLAssetType::AT_ANIMATION == data->mAssetInfo.mType) + if (result >= 0) { - // Charge the user for the upload. - LLViewerRegion* region = gAgent.getRegion(); - - if(!(can_afford_transaction(expected_upload_cost))) - { - LLFloaterBuyCurrency::buyCurrency( - llformat(LLTrans::getString("UploadingCosts").c_str(), - data->mAssetInfo.getName().c_str()), - expected_upload_cost); - is_balance_sufficient = FALSE; - } - else if(region) + LLFolderType::EType dest_loc = (data->mPreferredLocation == LLFolderType::FT_NONE) ? LLFolderType::assetTypeToFolderType(data->mAssetInfo.mType) : data->mPreferredLocation; + + if (LLAssetType::AT_SOUND == data->mAssetInfo.mType || + LLAssetType::AT_TEXTURE == data->mAssetInfo.mType || + LLAssetType::AT_ANIMATION == data->mAssetInfo.mType) { - // Charge user for upload - gStatusBar->debitBalance(expected_upload_cost); + // Charge the user for the upload. + LLViewerRegion* region = gAgent.getRegion(); - LLMessageSystem* msg = gMessageSystem; - msg->newMessageFast(_PREHASH_MoneyTransferRequest); - msg->nextBlockFast(_PREHASH_AgentData); - msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); - msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); - msg->nextBlockFast(_PREHASH_MoneyData); - msg->addUUIDFast(_PREHASH_SourceID, gAgent.getID()); - msg->addUUIDFast(_PREHASH_DestID, LLUUID::null); - msg->addU8("Flags", 0); - // we tell the sim how much we were expecting to pay so it - // can respond to any discrepancy - msg->addS32Fast(_PREHASH_Amount, expected_upload_cost); - msg->addU8Fast(_PREHASH_AggregatePermNextOwner, (U8)LLAggregatePermissions::AP_EMPTY); - msg->addU8Fast(_PREHASH_AggregatePermInventory, (U8)LLAggregatePermissions::AP_EMPTY); - msg->addS32Fast(_PREHASH_TransactionType, TRANS_UPLOAD_CHARGE); - msg->addStringFast(_PREHASH_Description, NULL); - msg->sendReliable(region->getHost()); + if(!(can_afford_transaction(expected_upload_cost))) + { + LLFloaterBuyCurrency::buyCurrency( + llformat(LLTrans::getString("UploadingCosts").c_str(), + data->mAssetInfo.getName().c_str()), + expected_upload_cost); + is_balance_sufficient = FALSE; + } + else if(region) + { + // Charge user for upload + gStatusBar->debitBalance(expected_upload_cost); + + LLMessageSystem* msg = gMessageSystem; + msg->newMessageFast(_PREHASH_MoneyTransferRequest); + msg->nextBlockFast(_PREHASH_AgentData); + msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); + msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); + msg->nextBlockFast(_PREHASH_MoneyData); + msg->addUUIDFast(_PREHASH_SourceID, gAgent.getID()); + msg->addUUIDFast(_PREHASH_DestID, LLUUID::null); + msg->addU8("Flags", 0); + // we tell the sim how much we were expecting to pay so it + // can respond to any discrepancy + msg->addS32Fast(_PREHASH_Amount, expected_upload_cost); + msg->addU8Fast(_PREHASH_AggregatePermNextOwner, (U8)LLAggregatePermissions::AP_EMPTY); + msg->addU8Fast(_PREHASH_AggregatePermInventory, (U8)LLAggregatePermissions::AP_EMPTY); + msg->addS32Fast(_PREHASH_TransactionType, TRANS_UPLOAD_CHARGE); + msg->addStringFast(_PREHASH_Description, NULL); + msg->sendReliable(region->getHost()); + } } - } - if(is_balance_sufficient) - { - // Actually add the upload to inventory - llinfos << "Adding " << uuid << " to inventory." << llendl; - const LLUUID folder_id = gInventory.findCategoryUUIDForType(dest_loc); - if(folder_id.notNull()) + if(is_balance_sufficient) { - U32 next_owner_perms = data->mNextOwnerPerm; - if(PERM_NONE == next_owner_perms) + // Actually add the upload to inventory + llinfos << "Adding " << uuid << " to inventory." << llendl; + const LLUUID folder_id = gInventory.findCategoryUUIDForType(dest_loc); + if(folder_id.notNull()) { - next_owner_perms = PERM_MOVE | PERM_TRANSFER; + U32 next_owner_perms = data->mNextOwnerPerm; + if(PERM_NONE == next_owner_perms) + { + next_owner_perms = PERM_MOVE | PERM_TRANSFER; + } + create_inventory_item(gAgent.getID(), gAgent.getSessionID(), + folder_id, data->mAssetInfo.mTransactionID, data->mAssetInfo.getName(), + data->mAssetInfo.getDescription(), data->mAssetInfo.mType, + data->mInventoryType, NOT_WEARABLE, next_owner_perms, + LLPointer<LLInventoryCallback>(NULL)); + } + else + { + llwarns << "Can't find a folder to put it in" << llendl; } - create_inventory_item(gAgent.getID(), gAgent.getSessionID(), - folder_id, data->mAssetInfo.mTransactionID, data->mAssetInfo.getName(), - data->mAssetInfo.getDescription(), data->mAssetInfo.mType, - data->mInventoryType, NOT_WEARABLE, next_owner_perms, - LLPointer<LLInventoryCallback>(NULL)); - } - else - { - llwarns << "Can't find a folder to put it in" << llendl; } } - } - else // if(result >= 0) - { - LLSD args; - args["FILE"] = LLInventoryType::lookupHumanReadable(data->mInventoryType); - args["REASON"] = std::string(LLAssetStorage::getErrorString(result)); - LLNotificationsUtil::add("CannotUploadReason", args); + else // if(result >= 0) + { + LLSD args; + args["FILE"] = LLInventoryType::lookupHumanReadable(data->mInventoryType); + args["REASON"] = std::string(LLAssetStorage::getErrorString(result)); + LLNotificationsUtil::add("CannotUploadReason", args); + } } LLUploadDialog::modalUploadFinished(); delete data; + data = NULL; // *NOTE: This is a pretty big hack. What this does is check the // file picker if there are any more pending uploads. If so, diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index d9b5344dd4..8aa642bdb6 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -867,6 +867,10 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f } LLInventoryItem* item = gInventory.getItem(item_id); + llassert(item); + if (!item) { + continue; + } //////////////////////////////////////////////////////////////////////////////// // Special handling for various types. @@ -1302,13 +1306,6 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const msg->addUUIDFast(_PREHASH_RegionID, LLUUID::null); msg->addVector3Fast(_PREHASH_Position, gAgent.getPositionAgent()); LLInventoryObserver* opener = NULL; - LLViewerInventoryCategory* catp = NULL; - catp = (LLViewerInventoryCategory*)gInventory.getCategory(mObjectID); - LLViewerInventoryItem* itemp = NULL; - if(!catp) - { - itemp = (LLViewerInventoryItem*)gInventory.getItem(mObjectID); - } std::string from_string; // Used in the pop-up. std::string chatHistory_string; // Used in chat history. diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 051e1330d5..984f003411 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -715,7 +715,7 @@ void LLViewerTexture::generateGLTexture() LLImageGL* LLViewerTexture::getGLTexture() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep ; } @@ -732,7 +732,7 @@ BOOL LLViewerTexture::createGLTexture() BOOL LLViewerTexture::createGLTexture(S32 discard_level, const LLImageRaw* imageraw, S32 usename, BOOL to_create, S32 category) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; BOOL ret = mGLTexturep->createGLTexture(discard_level, imageraw, usename, to_create, category) ; @@ -748,55 +748,55 @@ BOOL LLViewerTexture::createGLTexture(S32 discard_level, const LLImageRaw* image void LLViewerTexture::setExplicitFormat(LLGLint internal_format, LLGLenum primary_format, LLGLenum type_format, BOOL swap_bytes) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; mGLTexturep->setExplicitFormat(internal_format, primary_format, type_format, swap_bytes) ; } void LLViewerTexture::setAddressMode(LLTexUnit::eTextureAddressMode mode) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; mGLTexturep->setAddressMode(mode) ; } void LLViewerTexture::setFilteringOption(LLTexUnit::eTextureFilterOptions option) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; mGLTexturep->setFilteringOption(option) ; } //virtual S32 LLViewerTexture::getWidth(S32 discard_level) const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getWidth(discard_level) ; } //virtual S32 LLViewerTexture::getHeight(S32 discard_level) const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getHeight(discard_level) ; } S32 LLViewerTexture::getMaxDiscardLevel() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getMaxDiscardLevel() ; } S32 LLViewerTexture::getDiscardLevel() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getDiscardLevel() ; } S8 LLViewerTexture::getComponents() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getComponents() ; } LLGLuint LLViewerTexture::getTexName() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getTexName() ; } @@ -821,124 +821,124 @@ BOOL LLViewerTexture::getBoundRecently() const LLTexUnit::eTextureType LLViewerTexture::getTarget(void) const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getTarget() ; } BOOL LLViewerTexture::setSubImage(const LLImageRaw* imageraw, S32 x_pos, S32 y_pos, S32 width, S32 height) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->setSubImage(imageraw, x_pos, y_pos, width, height) ; } BOOL LLViewerTexture::setSubImage(const U8* datap, S32 data_width, S32 data_height, S32 x_pos, S32 y_pos, S32 width, S32 height) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->setSubImage(datap, data_width, data_height, x_pos, y_pos, width, height) ; } void LLViewerTexture::setGLTextureCreated (bool initialized) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; mGLTexturep->setGLTextureCreated (initialized) ; } void LLViewerTexture::setCategory(S32 category) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; mGLTexturep->setCategory(category) ; } LLTexUnit::eTextureAddressMode LLViewerTexture::getAddressMode(void) const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getAddressMode() ; } S32 LLViewerTexture::getTextureMemory() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->mTextureMemory ; } LLGLenum LLViewerTexture::getPrimaryFormat() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getPrimaryFormat() ; } BOOL LLViewerTexture::getIsAlphaMask() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getIsAlphaMask() ; } BOOL LLViewerTexture::getMask(const LLVector2 &tc) { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getMask(tc) ; } F32 LLViewerTexture::getTimePassedSinceLastBound() { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getTimePassedSinceLastBound() ; } BOOL LLViewerTexture::getMissed() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getMissed() ; } BOOL LLViewerTexture::isJustBound() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->isJustBound() ; } void LLViewerTexture::forceUpdateBindStats(void) const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->forceUpdateBindStats() ; } U32 LLViewerTexture::getTexelsInAtlas() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getTexelsInAtlas() ; } U32 LLViewerTexture::getTexelsInGLTexture() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getTexelsInGLTexture() ; } BOOL LLViewerTexture::isGLTextureCreated() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->isGLTextureCreated() ; } S32 LLViewerTexture::getDiscardLevelInAtlas() const { - llassert_always(mGLTexturep.notNull()) ; + llassert(mGLTexturep.notNull()) ; return mGLTexturep->getDiscardLevelInAtlas() ; } @@ -2995,6 +2995,10 @@ void LLViewerMediaTexture::initVirtualSize() void LLViewerMediaTexture::addMediaToFace(LLFace* facep) { + if(facep) + { + facep->setHasMedia(true) ; + } if(!mIsPlaying) { return ; //no need to add the face because the media is not in playing. @@ -3005,14 +3009,16 @@ void LLViewerMediaTexture::addMediaToFace(LLFace* facep) void LLViewerMediaTexture::removeMediaFromFace(LLFace* facep) { - if(!mIsPlaying) - { - return ; //no need to remove the face because the media is not in playing. - } if(!facep) { return ; } + facep->setHasMedia(false) ; + + if(!mIsPlaying) + { + return ; //no need to remove the face because the media is not in playing. + } mIsPlaying = FALSE ; //set to remove the media from the face. switchTexture(facep) ; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 4a86e1ca41..b76a2e150f 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -2463,6 +2463,8 @@ void LLViewerWindow::updateUI() { static std::string last_handle_msg; + LLConsole::updateClass(); + // animate layout stacks so we have up to date rect for world view LLLayoutStack::updateClass(); diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index d6cf6a47f8..698b6be98b 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -1492,9 +1492,9 @@ BOOL LLVOAvatar::parseSkeletonFile(const std::string& filename) //------------------------------------------------------------------------- // parse the file //------------------------------------------------------------------------- - BOOL success = sSkeletonXMLTree.parseFile( filename, FALSE ); + BOOL parsesuccess = sSkeletonXMLTree.parseFile( filename, FALSE ); - if (!success) + if (!parsesuccess) { llerrs << "Can't parse skeleton file: " << filename << llendl; return FALSE; @@ -1505,11 +1505,13 @@ BOOL LLVOAvatar::parseSkeletonFile(const std::string& filename) if (!root) { llerrs << "No root node found in avatar skeleton file: " << filename << llendl; + return FALSE; } if( !root->hasName( "linden_skeleton" ) ) { llerrs << "Invalid avatar skeleton file header: " << filename << llendl; + return FALSE; } std::string version; @@ -1517,6 +1519,7 @@ BOOL LLVOAvatar::parseSkeletonFile(const std::string& filename) if( !root->getFastAttributeString( version_string, version ) || (version != "1.0") ) { llerrs << "Invalid avatar skeleton file version: " << version << " in file: " << filename << llendl; + return FALSE; } return TRUE; @@ -3082,7 +3085,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent) if (!visible) { - //updateMotions(LLCharacter::HIDDEN_UPDATE); + updateMotions(LLCharacter::HIDDEN_UPDATE); return FALSE; } @@ -4051,6 +4054,7 @@ void LLVOAvatar::updateTextures() // Spam if this is a baked texture, not set to default image, without valid host info if (isIndexBakedTexture((ETextureIndex)texture_index) && imagep->getID() != IMG_DEFAULT_AVATAR + && imagep->getID() != IMG_INVISIBLE && !imagep->getTargetHost().isOk()) { LL_WARNS_ONCE("Texture") << "LLVOAvatar::updateTextures No host for texture " diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp index bb09a18cc3..dfd67d0c38 100644 --- a/indra/newview/llvoicechannel.cpp +++ b/indra/newview/llvoicechannel.cpp @@ -122,7 +122,8 @@ LLVoiceChannel::LLVoiceChannel(const LLUUID& session_id, const std::string& sess mState(STATE_NO_CHANNEL_INFO), mSessionName(session_name), mCallDirection(OUTGOING_CALL), - mIgnoreNextSessionLeave(FALSE) + mIgnoreNextSessionLeave(FALSE), + mCallEndedByAgent(false) { mNotifyArgs["VOICE_CHANNEL_NAME"] = mSessionName; @@ -412,7 +413,7 @@ void LLVoiceChannel::doSetState(const EState& new_state) EState old_state = mState; mState = new_state; if (!mStateChangedCallback.empty()) - mStateChangedCallback(old_state, mState, mCallDirection); + mStateChangedCallback(old_state, mState, mCallDirection, mCallEndedByAgent); } //static @@ -779,7 +780,8 @@ void LLVoiceChannelP2P::handleStatusChange(EStatusType type) } else { - // other user hung up + // other user hung up, so we didn't end the call + mCallEndedByAgent = false; } deactivate(); } @@ -810,6 +812,9 @@ void LLVoiceChannelP2P::activate() { if (callStarted()) return; + //call will be counted as ended by user unless this variable is changed in handleStatusChange() + mCallEndedByAgent = true; + LLVoiceChannel::activate(); if (callStarted()) diff --git a/indra/newview/llvoicechannel.h b/indra/newview/llvoicechannel.h index cb86671305..941cccacc3 100644 --- a/indra/newview/llvoicechannel.h +++ b/indra/newview/llvoicechannel.h @@ -58,7 +58,7 @@ public: OUTGOING_CALL } EDirection; - typedef boost::signals2::signal<void(const EState& old_state, const EState& new_state, const EDirection& direction)> state_changed_signal_t; + typedef boost::signals2::signal<void(const EState& old_state, const EState& new_state, const EDirection& direction, bool ended_by_agent)> state_changed_signal_t; // on current channel changed signal typedef boost::function<void(const LLUUID& session_id)> channel_changed_callback_t; @@ -122,6 +122,8 @@ protected: std::string mSessionName; LLSD mNotifyArgs; LLSD mCallDialogPayload; + // true if call was ended by agent + bool mCallEndedByAgent; BOOL mIgnoreNextSessionLeave; LLHandle<LLPanel> mLoginNotificationHandle; diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index bd22fc5f2e..dd9634a234 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -1355,6 +1355,7 @@ void LLPipeline::updateMoveNormalAsync(LLDrawable* drawablep) if (!drawablep) { llerrs << "updateMove called with NULL drawablep" << llendl; + return; } if (drawablep->isState(LLDrawable::EARLY_MOVE)) { diff --git a/indra/newview/skins/default/textures/icons/object_icon.png b/indra/newview/skins/default/textures/icons/object_icon.png Binary files differnew file mode 100644 index 0000000000..223874e631 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/object_icon.png diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index 309c2a5f30..18d1779702 100644 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -515,6 +515,7 @@ with the same filename but different name <texture name="SliderThumb_Press" file_name="widgets/SliderThumb_Press.png" /> <texture name="SL_Logo" file_name="icons/SL_Logo.png" preload="true" /> + <texture name="OBJECT_Icon" file_name="icons/object_icon.png" preload="true" /> <texture name="Snapshot_Off" file_name="bottomtray/Snapshot_Off.png" preload="true" scale.left="4" scale.top="19" scale.right="22" scale.bottom="4" /> <texture name="Snapshot_Over" file_name="bottomtray/Snapshot_Over.png" preload="false" /> diff --git a/indra/newview/skins/default/xui/en/floater_outgoing_call.xml b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml index cc9afe4474..2bafd1bdef 100644 --- a/indra/newview/skins/default/xui/en/floater_outgoing_call.xml +++ b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml @@ -96,13 +96,24 @@ No Answer. Please try again later. height="40" layout="topleft" left="77" - name="nearby_P2P" + name="nearby_P2P_by_other" top="27" width="315" word_wrap="true"> [VOICE_CHANNEL_NAME] has ended the call. [RECONNECT_NEARBY] </text> <text + font="SansSerifLarge" + height="40" + layout="topleft" + left="77" + name="nearby_P2P_by_agent" + top="27" + width="315" + word_wrap="true"> + You have ended the call. [RECONNECT_NEARBY] + </text> + <text font="SansSerif" height="50" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/floater_postcard.xml b/indra/newview/skins/default/xui/en/floater_postcard.xml index 3a7b6cc832..6f78363b25 100644 --- a/indra/newview/skins/default/xui/en/floater_postcard.xml +++ b/indra/newview/skins/default/xui/en/floater_postcard.xml @@ -128,19 +128,9 @@ width="420"> Type your message here. </text_editor> - <text - type="string" - length="1" - bottom_delta="37" - follows="left|bottom" - layout="topleft" - left="12" - name="fine_print"> - If your recipient joins SL, you'll get a referral bonus. - </text> <button follows="right|bottom" - height="20" + height="23" label="Cancel" layout="topleft" name="cancel_btn" @@ -149,7 +139,7 @@ width="100" /> <button follows="right|bottom" - height="20" + height="23" label="Send" layout="topleft" left_delta="-106" diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml index 5630dfbe8f..23203d227e 100644 --- a/indra/newview/skins/default/xui/en/floater_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_tools.xml @@ -67,80 +67,75 @@ </floater.string> <button follows="left|top" - height="20" - image_disabled="Tool_Zoom" - image_disabled_selected="Tool_Zoom" - image_selected="Tool_Zoom_Selected" - image_unselected="Tool_Zoom" + height="25" + image_bottom_pad="1" + image_overlay="Tool_Zoom" + image_selected="PushButton_Selected_Press" layout="topleft" left="10" name="button focus" tool_tip="Focus" - width="20"> + width="35"> <button.commit_callback function="BuildTool.setTool" parameter="Focus" /> </button> <button follows="left|top" - height="20" - image_disabled="Tool_Grab" - image_disabled_selected="Tool_Grab" - image_selected="Tool_Grab_Selected" - image_unselected="Tool_Grab" + height="25" + image_bottom_pad="1" + image_overlay="Tool_Grab" + image_selected="PushButton_Selected_Press" layout="topleft" - left_pad="20" + left_pad="10" name="button move" tool_tip="Move" - width="20"> + width="35"> <button.commit_callback function="BuildTool.setTool" parameter="Move" /> </button> <button follows="left|top" - height="20" - image_disabled="Tool_Face" - image_disabled_selected="Tool_Face" - image_selected="Tool_Face_Selected" - image_unselected="Tool_Face" + height="25" + image_bottom_pad="1" + image_overlay="Tool_Face" + image_selected="PushButton_Selected_Press" layout="topleft" - left_pad="20" + left_pad="10" name="button edit" tool_tip="Edit" - width="20"> + width="35"> <button.commit_callback function="BuildTool.setTool" parameter="Edit" /> </button> <button follows="left|top" - height="20" - image_disabled="Tool_Create" - image_disabled_selected="Tool_Create" - image_selected="Tool_Create_Selected" - image_unselected="Tool_Create" + height="25" + image_bottom_pad="1" + image_overlay="Tool_Create" + image_selected="PushButton_Selected_Press" layout="topleft" - left_pad="20" + left_pad="10" name="button create" tool_tip="Create" - width="20"> + width="35"> <button.commit_callback function="BuildTool.setTool" parameter="Create" /> </button> <button follows="left|top" - height="20" - image_disabled="Tool_Dozer" - image_disabled_selected="Tool_Dozer" - image_selected="Tool_Dozer_Selected" - image_unselected="Tool_Dozer" + height="25" + image_bottom_pad="1" + image_overlay="Tool_Dozer" + image_selected="PushButton_Selected_Press" layout="topleft" - left_pad="20" + left_pad="10" name="button land" tool_tip="Land" - width="20"> + width="35"> <button.commit_callback function="BuildTool.setTool" parameter="Land" /> @@ -1043,7 +1038,7 @@ even though the user gets a free copy. <check_box height="15" width="110" - top_pad="3" + top_pad="5" label="Show in search" layout="topleft" left="100" diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 22f4d277a4..df6c7bd9cb 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -1594,6 +1594,17 @@ name="Shortcuts" tear_off="true" visible="false"> + <menu_item_call + label="Image (L$[COST])..." + layout="topleft" + name="Upload Image" + shortcut="control|U"> + <menu_item_call.on_click + function="File.UploadImage" + parameter="" /> + <menu_item_call.on_enable + function="File.EnableUpload" /> + </menu_item_call> <menu_item_check label="Search" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 90381c2af4..51f0f6839c 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -4307,14 +4307,14 @@ Topic: [SUBJECT], Message: [MESSAGE] icon="notifytip.tga" name="FriendOnline" type="notifytip"> -[FIRST] [LAST] is Online +[NAME_SLURL] is Online </notification> <notification icon="notifytip.tga" name="FriendOffline" type="notifytip"> -[FIRST] [LAST] is Offline +[NAME_SLURL] is Offline </notification> <notification diff --git a/indra/newview/skins/default/xui/en/panel_group_general.xml b/indra/newview/skins/default/xui/en/panel_group_general.xml index 618167181f..662fd1ae73 100644 --- a/indra/newview/skins/default/xui/en/panel_group_general.xml +++ b/indra/newview/skins/default/xui/en/panel_group_general.xml @@ -20,15 +20,84 @@ Hover your mouse over the options for more help. name="incomplete_member_data_str"> Retrieving member data </panel.string> + <panel + name="group_info_top" + follows="top|left" + top="0" + left="0" + height="129" + width="313" + layout="topleft"> + <texture_picker + follows="left|top" + height="110" + label="" + layout="topleft" + left="10" + name="insignia" + no_commit_on_selection="true" + tool_tip="Click to choose a picture" + top="5" + width="100" /> + <text + font="SansSerifSmall" + text_color="White_50" + width="190" + follows="top|left" + layout="topleft" + mouse_opaque="false" + type="string" + height="16" + length="1" + left_pad="10" + name="prepend_founded_by" + top_delta="0"> + Founder: + </text> + <name_box + follows="left|top" + height="16" + initial_value="(retrieving)" + layout="topleft" + left_delta="0" + link="true" + name="founder_name" + top_pad="2" + use_ellipses="true" + width="190" /> + <text + font="SansSerifMedium" + text_color="EmphasisColor" + type="string" + follows="left|top" + height="16" + layout="topleft" + left_delta="0" + name="join_cost_text" + top_pad="10" + visible="true" + width="190"> + Free + </text> + <button + follows="left|top" + left_delta="0" + top_pad="6" + height="23" + label="JOIN NOW!" + name="btn_join" + visible="true" + width="120" /> + </panel> <text_editor type="string" follows="left|top|right" left="5" - height="150" + height="80" layout="topleft" max_length="511" name="charter" - top="5" + top="105" right="-1" bg_readonly_color="DkGray2" text_readonly_color="White" @@ -40,7 +109,7 @@ Hover your mouse over the options for more help. draw_heading="true" follows="left|top|right" heading_height="23" - height="200" + height="160" layout="topleft" left="0" name="visible_members" diff --git a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml index 9727c54c6b..375de64923 100644 --- a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml +++ b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml @@ -31,7 +31,7 @@ background_visible="true" follows="top|left" top="0" left="0" - height="129" + height="29" width="313" layout="topleft"> <button @@ -70,66 +70,6 @@ background_visible="true" width="270" height="20" visible="false" /> - <texture_picker - follows="left|top" - height="113" - label="" - layout="topleft" - left="10" - name="insignia" - no_commit_on_selection="true" - tool_tip="Click to choose a picture" - top_pad="5" - width="100" /> - <text - font="SansSerifSmall" - text_color="White_50" - width="190" - follows="top|left" - layout="topleft" - mouse_opaque="false" - type="string" - height="16" - length="1" - left_pad="10" - name="prepend_founded_by" - top_delta="0"> - Founder: - </text> - <name_box - follows="left|top" - height="16" - initial_value="(retrieving)" - layout="topleft" - left_delta="0" - link="true" - name="founder_name" - top_pad="2" - use_ellipses="true" - width="190" /> - <text - font="SansSerifMedium" - text_color="EmphasisColor" - type="string" - follows="left|top" - height="16" - layout="topleft" - left_delta="0" - name="join_cost_text" - top_pad="10" - visible="true" - width="190"> - Free - </text> - <button - follows="left|top" - left_delta="0" - top_pad="6" - height="23" - label="JOIN NOW!" - name="btn_join" - visible="true" - width="120" /> </panel> <layout_stack name="layout" @@ -137,7 +77,7 @@ background_visible="true" follows="all" left="0" top_pad="0" - height="437" + height="537" width="313" border_size="0"> <layout_panel diff --git a/indra/newview/skins/default/xui/en/panel_group_notices.xml b/indra/newview/skins/default/xui/en/panel_group_notices.xml index 1f16aea2ef..5f46ad7860 100644 --- a/indra/newview/skins/default/xui/en/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/en/panel_group_notices.xml @@ -159,7 +159,6 @@ Maximum 200 per group daily left_pad="3" max_length="511" name="create_message" - text_type="ascii" top_delta="0" width="220" word_wrap="true" /> diff --git a/indra/newview/skins/default/xui/en/panel_im_control_panel.xml b/indra/newview/skins/default/xui/en/panel_im_control_panel.xml index c7e5b25e06..28c4adf67c 100644 --- a/indra/newview/skins/default/xui/en/panel_im_control_panel.xml +++ b/indra/newview/skins/default/xui/en/panel_im_control_panel.xml @@ -11,15 +11,6 @@ name="avatar_icon" top="-5" width="105"/> - <text - follows="top|left|right" - font="SansSerifLarge" - height="19" - layout="topleft" - name="avatar_name" - use_ellipses="true" - value="Unknown" - width="110" /> <layout_stack mouse_opaque="false" border_size="0" @@ -30,7 +21,7 @@ left="5" name="button_stack" orientation="vertical" - top_pad="-5" + top_pad="5" width="105"> <layout_panel mouse_opaque="false" diff --git a/indra/newview/skins/default/xui/en/panel_instant_message.xml b/indra/newview/skins/default/xui/en/panel_instant_message.xml index a0ad38cf76..34fd3352a3 100644 --- a/indra/newview/skins/default/xui/en/panel_instant_message.xml +++ b/indra/newview/skins/default/xui/en/panel_instant_message.xml @@ -56,16 +56,6 @@ name="adhoc_icon" top="3" width="18" /> - <!--<icon - follows="right" - height="20" - image_name="" - layout="topleft" - left="3" - mouse_opaque="true" - name="sys_msg_icon" - top="0" - width="20" />--> <text follows="left|right" font.style="BOLD" diff --git a/indra/newview/skins/default/xui/ja/floater_about_land.xml b/indra/newview/skins/default/xui/ja/floater_about_land.xml index 49486d791a..b3278a8f9e 100644 --- a/indra/newview/skins/default/xui/ja/floater_about_land.xml +++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml @@ -206,7 +206,7 @@ [MAX]の内[COUNT]([DELETED]を削除) </panel.string> <text name="parcel_object_bonus"> - 地域オブジェクトボーナス要因: [BONUS] + オブジェクトボーナス: [BONUS] </text> <text name="Simulator primitive usage:" width="500"> プリム使用状況: @@ -263,7 +263,7 @@ <text name="Object Owners:" width="150"> オブジェクトのオーナー: </text> - <button label="リスト更新" label_selected="リスト更新" left="146" name="Refresh List" tool_tip="オブジェクトのリストを更新"/> + <button label="リスト更新" label_selected="リスト更新" left="146" name="Refresh List" tool_tip="オブジェクトのリストを更新します"/> <button label="オブジェクトを返却する" label_selected="オブジェクトの返却..." left="256" name="Return objects..."/> <name_list label="カウント" name="owner list"> <name_list.columns label="タイプ" name="type"/> @@ -329,8 +329,8 @@ 土地オプション: </text> <check_box label="安全(ダメージなし)" name="check safe" tool_tip="チェックを入れるとこの土地でのダメージコンバットが無効になり、「安全」に設定されます。 チェックを外すとダメージコンバットが有効になります。"/> - <check_box label="プッシングを制限" name="PushRestrictCheck" tool_tip="スクリプトによるプッシングを制限します。 このオプションを選択することにより、あなたの土地での破壊的行動を妨げることができます。"/> - <check_box label="検索に区画を表示(週 L$30)" name="ShowDirectoryCheck" tool_tip="検索結果でこの区画を表示させる"/> + <check_box label="プッシングを制限" name="PushRestrictCheck" tool_tip="スクリプトによるプッシングを制限します。 このオプションを選択することにより、あなたの土地での破壊的行動を防ぐことができます。"/> + <check_box label="検索に区画を表示(週 L$30)" name="ShowDirectoryCheck" tool_tip="この区画を検索結果に表示します"/> <combo_box name="land category with adult"> <combo_box.item label="全カテゴリ" name="item0"/> <combo_box.item label="Linden所在地" name="item1"/> @@ -383,7 +383,7 @@ <text name="with media:"> 種類: </text> - <combo_box name="media type" tool_tip="URL が動画、ウェブ・ページ、その他のメディアの場合に指定します"/> + <combo_box name="media type" tool_tip="URL が動画、Webページ、その他のメディアの場合に指定します"/> <text name="at URL:"> ホームページ: </text> @@ -396,20 +396,20 @@ <text name="Description:"> 説明: </text> - <line_editor name="url_description" tool_tip="[再生]/[ロード]ボタンの隣に表示されるテキスト"/> + <line_editor name="url_description" tool_tip="「再生」「ロード」ボタンの隣に表示されるテキストです"/> <text name="Media texture:"> - テクスチャの置き換え: + テクスチャ置き換え: </text> <texture_picker label="" name="media texture" tool_tip="写真をクリックして選択" left="120"/> <text name="replace_texture_help" width="290"> このテクスチャを使用するオブジェクトのプレイをクリックすると、ムービーや Web ページを表示します。 テクスチャを変更するにはサムネイルを選択してください。 </text> <check_box label="スケールを自動設定" name="media_auto_scale" tool_tip="このオプションをチェックすると、この区画のコンテンツのスケールが自動的に設定されます。 動作速度と画質が少し低下することがありますが、他のテクスチャーのスケーリングや整列が必要になることはありません。"/> - <text name="media_size" tool_tip="レンダリングするウェブ・メディアのサイズ。デフォルトの 0 のままにします。"> + <text name="media_size" tool_tip="レンダリングするWebメディアのサイズです。デフォルトの 0 のままにします。"> サイズ: </text> - <spinner name="media_size_width" tool_tip="レンダリングするウェブ・メディアのサイズ。デフォルトの 0 のままにします。"/> - <spinner name="media_size_height" tool_tip="レンダリングするウェブ・メディアのサイズ。デフォルトの 0 のままにします。"/> + <spinner name="media_size_width" tool_tip="レンダリングするWebメディアのサイズです。デフォルトの 0 のままにします。"/> + <spinner name="media_size_height" tool_tip="レンダリングするWebメディアのサイズです。デフォルトの 0 のままにします。"/> <text name="pixels"> ピクセル </text> @@ -425,13 +425,13 @@ <text name="Sound:"> サウンド: </text> - <check_box label="ジェスチャーとオブジェクトの音をこの区画だけに限定" name="check sound local"/> + <check_box label="ジェスチャーとオブジェクトの音をこの区画だけに限定する" name="check sound local"/> <text name="Voice settings:"> ボイス: </text> <check_box label="ボイスを有効にする" name="parcel_enable_voice_channel"/> <check_box label="ボイスを有効にする(不動産設定)" name="parcel_enable_voice_channel_is_estate_disabled"/> - <check_box label="この区画でのボイス使用を制限" name="parcel_enable_voice_channel_parcel"/> + <check_box label="ボイスをこの区画に限定する" name="parcel_enable_voice_channel_parcel"/> </panel> <panel label="アクセス" name="land_access_panel"> <panel.string name="access_estate_defined"> @@ -441,16 +441,16 @@ 1つ以上のオプションが、不動産レベルで設定されています。 </panel.string> <text name="Limit access to this parcel to:"> - この区画にアクセス + この区画へのアクセス </text> - <check_box label="パブリックアクセスを許可 [MATURITY]" name="public_access"/> + <check_box label="パブリックアクセスを許可する [MATURITY]" name="public_access"/> <text name="Only Allow"> - 次の住人のアクセス禁止: + 次の住人のアクセスを許可: </text> <check_box label="支払情報登録済 [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="未確認の住人の立入を禁止します。"/> <check_box label="年齢確認 [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="年齢確認を済ませていない住人の立入を禁止します。 詳しい情報は [SUPPORT_SITE] をご覧下さい。"/> - <check_box label="グループ・アクセスを許可:[GROUP]" name="GroupCheck" tool_tip="[一般]タブで、グループを選択してください。"/> - <check_box label="入場許可を販売:" name="PassCheck" tool_tip="この区画への一時的なアクセスを許可"/> + <check_box label="グループのアクセスを許可:[GROUP]" name="GroupCheck" tool_tip="[一般]タブで、グループを選択してください。"/> + <check_box label="入場許可を販売:" name="PassCheck" tool_tip="この区画への一時的なアクセスを許可します"/> <combo_box name="pass_combo"> <combo_box.item label="誰でも" name="Anyone"/> <combo_box.item label="グループ" name="Group"/> @@ -467,7 +467,7 @@ </panel> <panel name="Banned_layout_panel"> <text label="禁止" name="BanCheck"> - 立入禁止された住人 + 立入を禁止された住人 </text> <name_list name="BannedList" tool_tip="(合計 [LISTED] 人、最大 [MAX] 人)"/> <button label="追加" name="add_banned"/> diff --git a/indra/newview/skins/default/xui/ja/floater_animation_preview.xml b/indra/newview/skins/default/xui/ja/floater_animation_preview.xml index f0378f61d7..4674df8bec 100644 --- a/indra/newview/skins/default/xui/ja/floater_animation_preview.xml +++ b/indra/newview/skins/default/xui/ja/floater_animation_preview.xml @@ -168,17 +168,17 @@ <combo_box.item label="座る" name="Sitting"/> <combo_box.item label="飛ぶ" name="Flying"/> </combo_box> - <spinner label="フェーズイン(秒)" name="ease_in_time" tool_tip="アニメーションのブレンドイン時間(秒)"/> - <spinner label="フェーズアウト(秒)" name="ease_out_time" tool_tip="アニメーションのブレンドアウト時間(秒)"/> + <spinner label="イーズイン(秒)" name="ease_in_time" tool_tip="アニメーションのブレンドイン時間(秒)"/> + <spinner label="イーズアウト(秒)" name="ease_out_time" tool_tip="アニメーションのブレンドアウト時間(秒)"/> <button label="" name="play_btn" tool_tip="アニメーションを再生する"/> <button name="pause_btn" tool_tip="アニメーションを一時停止する"/> <button label="" name="stop_btn" tool_tip="アニメーションの再生を停止"/> <slider label="" name="playback_slider"/> <text name="bad_animation_text"> - アニメーション・ファイルを読み込めません。 + アニメーションファイルを読み込めません。 Poser 4からエクスポートされたBVHファイルを推奨します。 </text> - <button label="アップロードL$[AMOUNT]" name="ok_btn"/> + <button label="アップロードL$[AMOUNT]" name="ok_btn"/> <button label="取り消し" name="cancel_btn"/> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml b/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml index ff8b2083ad..0ea913e66a 100644 --- a/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml +++ b/indra/newview/skins/default/xui/ja/floater_avatar_textures.xml @@ -7,7 +7,7 @@ ベークドテクスチャ </text> <text name="composite_label" width="128"> - 合成テクスチャー + 合成テクスチャ </text> <button label="テクスチャID一覧をコンソールに書き込む" label_selected="捨てる" name="Dump" width="200"/> <scroll_container name="profile_scroll"> diff --git a/indra/newview/skins/default/xui/ja/floater_build_options.xml b/indra/newview/skins/default/xui/ja/floater_build_options.xml index 8d3dba3883..9fd788d9cb 100644 --- a/indra/newview/skins/default/xui/ja/floater_build_options.xml +++ b/indra/newview/skins/default/xui/ja/floater_build_options.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="build options floater" title="グリッドオプション"> <spinner label="グリッドユニット(メートル)" name="GridResolution"/> - <spinner label="グリッド範囲(メートル)" name="GridDrawSize"/> + <spinner label="グリッド゙範囲(メートル)" name="GridDrawSize"/> <check_box label="サブユニットにスナップ" name="GridSubUnit"/> <check_box label="横断面を表示" name="GridCrossSection"/> <text name="grid_opacity_label" tool_tip="グリッドの透明度"> diff --git a/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml b/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml index 7ac9187aad..be24960c6e 100644 --- a/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml +++ b/indra/newview/skins/default/xui/ja/floater_bulk_perms.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="floaterbulkperms" title="コンテンツ権限の編集"> +<floater name="floaterbulkperms" title="中身の権限の編集"> <floater.string name="nothing_to_modify_text"> - 選択した中に編集できないコンテンツが含まれています + 選択した中に編集できないものが含まれています </floater.string> <floater.string name="status_text"> [NAME]に権限を設定中です。 @@ -28,12 +28,12 @@ <icon name="icon_script" tool_tip="スクリプト"/> <check_box label="サウンド" name="check_sound"/> <icon name="icon_sound" tool_tip="サウンド"/> - <check_box label="テクスチャー" name="check_texture"/> + <check_box label="テクスチャ" name="check_texture"/> <icon name="icon_texture" tool_tip="テクスチャ"/> <button label="すべてに √" label_selected="全て" name="check_all"/> <button label="クリア" label_selected="なし" name="check_none"/> <text name="newperms"> - 新しいコンテンツ権限 + 新しい中身の権限 </text> <text name="GroupLabel"> グループ: diff --git a/indra/newview/skins/default/xui/ja/floater_buy_contents.xml b/indra/newview/skins/default/xui/ja/floater_buy_contents.xml index 53b7f24141..69d4faf5b8 100644 --- a/indra/newview/skins/default/xui/ja/floater_buy_contents.xml +++ b/indra/newview/skins/default/xui/ja/floater_buy_contents.xml @@ -1,22 +1,22 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater min_width="340" name="floater_buy_contents" title="コンテンツの購入" width="340"> +<floater min_width="340" name="floater_buy_contents" title="中身の購入" width="340"> <text name="contains_text" width="320"> - [NAME]の内容: + [NAME]の中身: </text> <scroll_list name="item_list" width="310"/> <text name="buy_text" width="320"> - コンテンツを[NAME]からL$[AMOUNT]で購入しますか? + 中身を[NAME]からL$[AMOUNT]で購入しますか? </text> <button label="取り消し" label_selected="取り消し" name="cancel_btn" width="73"/> <button label="購入" label_selected="購入" left_delta="-77" name="buy_btn" width="73"/> <check_box label="今すぐ服を着る" left_delta="-125" name="wear_check"/> <text name="no_copy_text"> - (コピーなし) + (コピー不可) </text> <text name="no_modify_text"> - (修正なし) + (修正不可) </text> <text name="no_transfer_text"> - (転送なし) + (再販・プレゼント不可) </text> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_buy_currency.xml b/indra/newview/skins/default/xui/ja/floater_buy_currency.xml index 357b3682ba..32de533dc4 100644 --- a/indra/newview/skins/default/xui/ja/floater_buy_currency.xml +++ b/indra/newview/skins/default/xui/ja/floater_buy_currency.xml @@ -40,7 +40,7 @@ [NAME] L$ [PRICE] </text> <text name="total_label"> - 新しい残高 + 購入後の残高 </text> <text name="total_amount"> L$ [AMT] diff --git a/indra/newview/skins/default/xui/ja/floater_buy_land.xml b/indra/newview/skins/default/xui/ja/floater_buy_land.xml index 97fae511f6..f332c3d988 100644 --- a/indra/newview/skins/default/xui/ja/floater_buy_land.xml +++ b/indra/newview/skins/default/xui/ja/floater_buy_land.xml @@ -67,12 +67,12 @@ <text name="error_message"> 何か変です </text> - <button label="ウェブ・サイトに移動" name="error_web"/> + <button label="Webサイトに移動" name="error_web"/> <text name="account_action"> - プレミアム・メンバーにアップグレード + プレミアム会員にアップグレード </text> <text name="account_reason"> - 土地を保有できるのはプレミアム・メンバーだけです + 土地を保有できるのはプレミアム会員だけです </text> <combo_box name="account_level"> <combo_box.item label="月額 9.95米ドル、 月払い" name="US$9.95/month,billedmonthly"/> @@ -114,10 +114,10 @@ 再販不可能 </string> <string name="can_change"> - 統合/再分割可能 + 統合・再分割可能 </string> <string name="can_not_change"> - 統合/再分割不可能 + 統合・再分割不可能 </string> <string name="cant_buy_for_group"> あなたはアクティブなグループ用の土地購入を許可されていません @@ -127,7 +127,7 @@ </string> <string name="multiple_parcels_selected"> 複数の異なった区画を選択しました。 -これより小さなエリアを選択してください。 +これより小さな範囲を選択してください。 </string> <string name="no_permission"> あなたはアクティブなグループ用の土地購入を許可されていません @@ -149,7 +149,7 @@ </string> <string name="not_owned_by_you"> 他の使用者に所有された土地が選択されています。 -これより小さなエリアを選択してください。 +これより小さな範囲を選択してください。 </string> <string name="processing"> 購入処理中... @@ -203,7 +203,7 @@ オブジェクト [AMOUNT2] 個サポート </string> <string name="sold_with_objects"> - オブジェクトと共に販売済み + オブジェクト込みで販売 </string> <string name="sold_without_objects"> オブジェクトは含まれていません diff --git a/indra/newview/skins/default/xui/ja/floater_buy_object.xml b/indra/newview/skins/default/xui/ja/floater_buy_object.xml index f807e91573..7a5b7dc140 100644 --- a/indra/newview/skins/default/xui/ja/floater_buy_object.xml +++ b/indra/newview/skins/default/xui/ja/floater_buy_object.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="contents" title="オブジェクトのコピーを購入"> <text name="contents_text"> - 内容: + 中身: </text> <text name="buy_text"> [NAME]からL$[AMOUNT]で購入しますか? @@ -12,15 +12,15 @@ 購入 </text> <string name="title_buy_copy_text"> - 次のものを買う + 次のものを購入 </string> <text name="no_copy_text"> - (コピーなし) + (コピー不可) </text> <text name="no_modify_text"> - (修正なし) + (修正不可) </text> <text name="no_transfer_text"> - (転送なし) + (再販・プレゼント不可) </text> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_camera.xml b/indra/newview/skins/default/xui/ja/floater_camera.xml index be118273fa..3730bcd385 100644 --- a/indra/newview/skins/default/xui/ja/floater_camera.xml +++ b/indra/newview/skins/default/xui/ja/floater_camera.xml @@ -11,7 +11,7 @@ </floater.string> <panel name="controls"> <joystick_track name="cam_track_stick" tool_tip="カメラを上下左右に動かします"/> - <panel name="zoom" tool_tip="向いてる方法にカメラをズーム"> + <panel name="zoom" tool_tip="向いている方法にカメラをズーム"> <slider_bar name="zoom_slider" tool_tip="向いている方向にカメラをズーム"/> </panel> <joystick_rotate name="cam_rotate_stick" tool_tip="自分を軸にカメラを回す"/> diff --git a/indra/newview/skins/default/xui/ja/floater_color_picker.xml b/indra/newview/skins/default/xui/ja/floater_color_picker.xml index a98da4b8ba..dc87d27a15 100644 --- a/indra/newview/skins/default/xui/ja/floater_color_picker.xml +++ b/indra/newview/skins/default/xui/ja/floater_color_picker.xml @@ -18,7 +18,7 @@ <text name="l_val_text"> 輝度: </text> - <check_box label="今すぐ適用" name="apply_immediate"/> + <check_box label="すぐ適用" name="apply_immediate"/> <button label="" label_selected="" name="color_pipette"/> <button label="取り消し" label_selected="取り消し" name="cancel_btn"/> <button label="OK" label_selected="OK" name="select_btn"/> diff --git a/indra/newview/skins/default/xui/ja/floater_critical.xml b/indra/newview/skins/default/xui/ja/floater_critical.xml index 39f6ee8e3f..f69c24622a 100644 --- a/indra/newview/skins/default/xui/ja/floater_critical.xml +++ b/indra/newview/skins/default/xui/ja/floater_critical.xml @@ -3,10 +3,10 @@ <button label="続行" label_selected="続行" name="Continue" /> <button label="取り消し" label_selected="取り消し" name="Cancel" /> <text name="tos_title"> - クリティカル・メッセージ + クリティカルメッセージ </text> <text name="tos_heading"> - 次のメッセージを注意深くお読みください。 + 次のメッセージを注意してよくお読みください。 </text> <text_editor name="tos_text"> TOS_TEXT diff --git a/indra/newview/skins/default/xui/ja/floater_customize.xml b/indra/newview/skins/default/xui/ja/floater_customize.xml index 7d1809f1ed..27ce1adede 100644 --- a/indra/newview/skins/default/xui/ja/floater_customize.xml +++ b/indra/newview/skins/default/xui/ja/floater_customize.xml @@ -50,7 +50,7 @@ <panel label="スキン" name="Skin"> <button label="スキンの色" label_selected="スキンの色" name="Skin Color"/> <button label="顔の細部" label_selected="顔の細部" name="Face Detail"/> - <button label="メイクアップ" label_selected="メイクアップ" name="Makeup"/> + <button label="メイク" label_selected="メイク" name="Makeup"/> <button label="身体細部" label_selected="身体細部" name="Body Detail"/> <text name="title"> [DESC] @@ -186,10 +186,10 @@ シャツ: </text> </panel> - <panel label="ズボン" name="Pants"> + <panel label="パンツ" name="Pants"> <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックして選択"/> <color_swatch label="色/明暗" name="Color/Tint" tool_tip="クリックしてカラーピッカーを開きます"/> - <button label="新しいズボンを作成" label_selected="新しいズボンを作成" name="Create New"/> + <button label="新しいパンツを作成" label_selected="新しいパンツを作成" name="Create New"/> <button label="取り外す" label_selected="取り外す" name="Take Off"/> <button label="保存" label_selected="保存" name="Save"/> <button label="別名で保存..." label_selected="別名で保存..." name="Save As"/> @@ -216,7 +216,7 @@ あなたはこの服の修正を許されていません。 </text> <text name="Item Action Label"> - ズボン: + パンツ: </text> </panel> <panel label="靴" name="Shoes"> diff --git a/indra/newview/skins/default/xui/ja/floater_image_preview.xml b/indra/newview/skins/default/xui/ja/floater_image_preview.xml index 57ed139e54..2e57acf0d2 100644 --- a/indra/newview/skins/default/xui/ja/floater_image_preview.xml +++ b/indra/newview/skins/default/xui/ja/floater_image_preview.xml @@ -7,7 +7,7 @@ 説明: </text> <text name="preview_label"> - イメージのプレビュー: + プレビュー: </text> <combo_box label="服の種類" name="clothing_type_combo"> <combo_box.item label="画像" name="Image"/> @@ -26,7 +26,7 @@ 24bitTarga(.tga)でイメージを保存してください。 </text> - <check_box label="ロスのない圧縮を使用" name="lossless_check"/> + <check_box label="可逆圧縮" name="lossless_check"/> <button label="取り消し" name="cancel_btn"/> - <button label="アップロードL$[AMOUNT]" name="ok_btn"/> + <button label="アップロード゙L$[AMOUNT]" name="ok_btn"/> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_inspect.xml b/indra/newview/skins/default/xui/ja/floater_inspect.xml index 63a8fb978b..b3825c0b7f 100644 --- a/indra/newview/skins/default/xui/ja/floater_inspect.xml +++ b/indra/newview/skins/default/xui/ja/floater_inspect.xml @@ -3,12 +3,12 @@ <floater.string name="timeStamp"> [year,datetime,local] [mth,datetime,local] [day,datetime,local] [wkday,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] </floater.string> - <scroll_list name="object_list" tool_tip="このリストからオブジェクトを選択し、この世界で強調表示します。"> - <scroll_list.columns label="オブジェクト名" name="object_name"/> + <scroll_list name="object_list" tool_tip="リストからオブジェクトを選択し、インワールドで強調表示します。"> + <scroll_list.columns label="名前" name="object_name"/> <scroll_list.columns label="所有者名" name="owner_name"/> <scroll_list.columns label="制作者名" name="creator_name"/> <scroll_list.columns label="作成日" name="creation_date"/> </scroll_list> - <button label="所有者のプロフィールを表示..." name="button owner" tool_tip="選択されたオブジェクトの所有者のプロフィールを見る" width="180"/> - <button label="制作者のプロフィールを表示..." name="button creator" tool_tip="選択されたオブジェクトの制作者のプロフィールを見る" width="180"/> + <button label="所有者のプロフィールを表示..." name="button owner" tool_tip="選択したオブジェクトの所有者のプロフィールを表示します" width="180"/> + <button label="制作者のプロフィールを表示..." name="button creator" tool_tip="選択したオブジェクトの制作者のプロフィールを表示します" width="180"/> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_inventory.xml b/indra/newview/skins/default/xui/ja/floater_inventory.xml index 7cf16b8ff2..b113fde94a 100644 --- a/indra/newview/skins/default/xui/ja/floater_inventory.xml +++ b/indra/newview/skins/default/xui/ja/floater_inventory.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Inventory" title="持ち物"> <floater.string name="Title"> - インベントリ + 持ち物 </floater.string> <floater.string name="TitleFetching"> 持ち物 ( [ITEM_COUNT] アイテムを取得中...) [FILTER] diff --git a/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml index 86bb5dcf62..47a63e5e20 100644 --- a/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml +++ b/indra/newview/skins/default/xui/ja/floater_inventory_view_finder.xml @@ -9,7 +9,7 @@ <check_box label="オブジェクト" name="check_object"/> <check_box label="スクリプト" name="check_script"/> <check_box label="サウンド" name="check_sound"/> - <check_box label="テクスチャー" name="check_texture"/> + <check_box label="テクスチャ" name="check_texture"/> <check_box label="スナップショット" name="check_snapshot"/> <button label="すべて" label_selected="すべて" name="All"/> <button label="なし" label_selected="なし" name="None"/> diff --git a/indra/newview/skins/default/xui/ja/floater_land_holdings.xml b/indra/newview/skins/default/xui/ja/floater_land_holdings.xml index 474bd32cb0..aca916f22f 100644 --- a/indra/newview/skins/default/xui/ja/floater_land_holdings.xml +++ b/indra/newview/skins/default/xui/ja/floater_land_holdings.xml @@ -7,17 +7,17 @@ <column label="面積" name="area"/> <column label="" name="hidden"/> </scroll_list> - <button label="テレポート" label_selected="テレポート" name="Teleport" tool_tip="この土地の中心にテレポート"/> + <button label="テレポート" label_selected="テレポート" name="Teleport" tool_tip="この土地の中心にテレポートします"/> <button label="地図" label_selected="地図" name="Show on Map" tool_tip="この土地を世界地図に表示します"/> <text name="contrib_label"> - あなたのグループへの貢献: + 所属グループへの貢献: </text> <scroll_list name="grant list"> <column label="グループ名" name="group"/> <column label="面積" name="area"/> </scroll_list> <text name="allowed_label"> - 現在の支払いプランでの許可された保有地: + 現在の支払いプランで許可された保有地: </text> <text name="allowed_text"> [AREA] 平方メートル @@ -29,7 +29,7 @@ [AREA] 平方メートル </text> <text name="available_label"> - 土地購入可: + 購入可能な土地: </text> <text name="available_text"> [AREA] 平方メートル diff --git a/indra/newview/skins/default/xui/ja/floater_map.xml b/indra/newview/skins/default/xui/ja/floater_map.xml index f3cba7e674..78af3cec07 100644 --- a/indra/newview/skins/default/xui/ja/floater_map.xml +++ b/indra/newview/skins/default/xui/ja/floater_map.xml @@ -25,7 +25,7 @@ 北西 </floater.string> <floater.string name="ToolTipMsg"> - [AGENT][REGION] (ダブルクリックで地図を開く) + [AGENT][REGION] (ダブルクリックで地図を開きます) </floater.string> <text label="北" name="floater_map_north" text="北"> 北 diff --git a/indra/newview/skins/default/xui/ja/floater_media_browser.xml b/indra/newview/skins/default/xui/ja/floater_media_browser.xml index 4f67523eec..c4731b73a3 100644 --- a/indra/newview/skins/default/xui/ja/floater_media_browser.xml +++ b/indra/newview/skins/default/xui/ja/floater_media_browser.xml @@ -22,8 +22,8 @@ <button label="現在のページを区画に送る" name="assign"/> </layout_panel> <layout_panel name="external_controls"> - <button label="外部ウェブ・ブラウザで開く" name="open_browser"/> - <check_box label="常に外部のウェブ・ブラウザで開く" name="open_always"/> + <button label="外部Webブラウザで開く" name="open_browser"/> + <check_box label="常に外部のWebブラウザで開く" name="open_always"/> <button label="閉じる" name="close"/> </layout_panel> </layout_stack> diff --git a/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml b/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml index 6167b6db91..f48bb94e32 100644 --- a/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml +++ b/indra/newview/skins/default/xui/ja/floater_mem_leaking.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="MemLeak" title="メモリリークのシミュレート"> - <spinner label="リークスピード(1フレームごとのバイト数):" label_width="244" name="leak_speed"/> - <spinner label="リークした最大メモリ数(MB):" label_width="244" name="max_leak"/> + <spinner label="リーク速度(1フレームごとのバイト数):" label_width="244" name="leak_speed"/> + <spinner label="最大メモリリーク(MB):" label_width="244" name="max_leak"/> <text name="total_leaked_label"> - 現在のリークメモリサイズ: [SIZE] KB + 現在のメモリリーク: [SIZE] KB </text> <text name="note_label_1"> [NOTE1] diff --git a/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml b/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml index adbb8596d3..98cda25a81 100644 --- a/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml +++ b/indra/newview/skins/default/xui/ja/floater_perm_prefs.xml @@ -5,11 +5,11 @@ <check_box label="グループで共同管理" name="share_with_group"/> <check_box label="誰に対してもコピーを許可" name="everyone_copy"/> <text name="NextOwnerLabel"> - 次のオーナーができる操作: + 次の所有者ができる操作: </text> <check_box label="修正" name="next_owner_modify"/> <check_box label="コピー" name="next_owner_copy"/> - <check_box label="再販/プレゼント" name="next_owner_transfer"/> + <check_box label="再販・プレゼント" name="next_owner_transfer"/> </panel> <button label="OK" label_selected="OK" name="ok"/> <button label="取り消し" label_selected="取り消し" name="cancel"/> diff --git a/indra/newview/skins/default/xui/ja/floater_postcard.xml b/indra/newview/skins/default/xui/ja/floater_postcard.xml index b2ca059ccd..5a2b047fe0 100644 --- a/indra/newview/skins/default/xui/ja/floater_postcard.xml +++ b/indra/newview/skins/default/xui/ja/floater_postcard.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <floater name="Postcard" title="スナップショットをメール"> <text name="to_label"> - 住人のEメール: + 住人のメール: </text> <line_editor left="145" name="to_form" width="125"/> <text name="from_label"> - あなたのEメール: + あなたのメール: </text> <line_editor left="145" name="from_form" width="125"/> <text name="name_label"> @@ -15,14 +15,14 @@ <text name="subject_label"> 件名: </text> - <line_editor label="件名をここに入力" left="145" name="subject_form" width="125"/> + <line_editor label="件名を入力してください" left="145" name="subject_form" width="125"/> <text name="msg_label"> メッセージ: </text> <text_editor bottom_delta="-120" height="110" name="msg_form"> メッセージをここに入力してください。 </text_editor> - <check_box label="ウェブ上で公開" name="allow_publish_check" tool_tip="このポストカードをウェブ上で公開します。"/> + <check_box label="Web上で公開" name="allow_publish_check" tool_tip="このポストカードをWeb上で公開します。"/> <check_box label="成人向けコンテンツ" name="mature_check" tool_tip="このポストカードには成人向け内容が含まれます。"/> <button label="?" left="300" name="publish_help_btn"/> <text name="fine_print"> diff --git a/indra/newview/skins/default/xui/ja/floater_preferences.xml b/indra/newview/skins/default/xui/ja/floater_preferences.xml index 1493219b83..e2893d5eab 100644 --- a/indra/newview/skins/default/xui/ja/floater_preferences.xml +++ b/indra/newview/skins/default/xui/ja/floater_preferences.xml @@ -8,7 +8,7 @@ <panel label="プライバシー" name="im"/> <panel label="サウンド" name="audio"/> <panel label="チャット" name="chat"/> - <panel label="通知" name="msgs"/> + <panel label="メッセージ" name="msgs"/> <panel label="セットアップ" name="input"/> <panel label="詳細" name="advanced1"/> </tab_container> diff --git a/indra/newview/skins/default/xui/ja/floater_preview_animation.xml b/indra/newview/skins/default/xui/ja/floater_preview_animation.xml index fb2f2c7433..2c0d6a0097 100644 --- a/indra/newview/skins/default/xui/ja/floater_preview_animation.xml +++ b/indra/newview/skins/default/xui/ja/floater_preview_animation.xml @@ -6,6 +6,6 @@ <text name="desc txt"> 説明: </text> - <button label="世界で再生" label_selected="停止" name="Anim play btn" tool_tip="他人に見えるように再生"/> - <button label="ローカルに再生" label_selected="停止" name="Anim audition btn" tool_tip="自分だけが見えるように再生"/> + <button label="ワールド再生" label_selected="停止" name="Anim play btn" tool_tip="他人にも見えるように再生します"/> + <button label="ローカル再生" label_selected="停止" name="Anim audition btn" tool_tip="自分だけが見えるように再生します"/> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml b/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml index a378700d15..8a0aea717c 100644 --- a/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml @@ -38,7 +38,7 @@ </text> <line_editor name="replace_editor" tool_tip="トリガー・ワードをこれらの単語に置き換えます。 たとえば、トリガー「hello」を「Howdy」に置換すると、「I wanted to say hello」というチャット文が「I wanted to say howdy」に変わり、ジェスチャーにも置換が反映されます。"/> <text name="key_label"> - ショートカット・キー: + ショートカット: </text> <combo_box label="なし" left="160" name="modifier_combo"/> <combo_box label="なし" name="key_combo"/> diff --git a/indra/newview/skins/default/xui/ja/floater_preview_sound.xml b/indra/newview/skins/default/xui/ja/floater_preview_sound.xml index d3c06cbef4..dc334dfc1f 100644 --- a/indra/newview/skins/default/xui/ja/floater_preview_sound.xml +++ b/indra/newview/skins/default/xui/ja/floater_preview_sound.xml @@ -6,6 +6,6 @@ <text name="desc txt"> 説明: </text> - <button label="世界で再生" label_selected="世界で再生" name="Sound play btn" tool_tip="他人が聞こえるように再生"/> - <button label="ローカルに再生" label_selected="ローカルに再生" name="Sound audition btn" tool_tip="自分だけが聞こえるように再生"/> + <button label="ワールド再生" label_selected="ワールド再生" name="Sound play btn" tool_tip="他人にも聞こえるように再生します"/> + <button label="ローカル再生" label_selected="ローカル再生" name="Sound audition btn" tool_tip="自分だけが聞こえるように再生します"/> </floater> diff --git a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml index 964a99c3a4..c66f307f23 100644 --- a/indra/newview/skins/default/xui/ja/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/ja/floater_report_abuse.xml @@ -25,7 +25,7 @@ <text name="select_object_label"> ボタンをクリックしてから、悪意のあるオブジェクトをクリック: </text> - <button label="" label_selected="" name="pick_btn" tool_tip="オブジェクト・ピッカー - この報告の主題となるオブジェクトを特定"/> + <button label="" label_selected="" name="pick_btn" tool_tip="オブジェクトピッカー - 報告対象のオブジェクトを選択してください"/> <text name="object_name_label"> オブジェクト: </text> @@ -33,13 +33,13 @@ Consetetur Sadipscing </text> <text name="owner_name_label"> - オーナー: + 所有者: </text> <text name="owner_name"> Hendrerit Vulputate Kamawashi Longname </text> - <combo_box name="category_combo" tool_tip="カテゴリー -- この報告に最も適したカテゴリーを選択してください"> - <combo_box.item label="カテゴリーを選択" name="Select_category"/> + <combo_box name="category_combo" tool_tip="カテゴリ -- この報告に最も適したカテゴリを選択してください"> + <combo_box.item label="カテゴリを選択してください" name="Select_category"/> <combo_box.item label="年齢>年齢偽証" name="Age__Age_play"/> <combo_box.item label="年齢 > 成人の住人が Teen Second Life にいる" name="Age__Adult_resident_on_Teen_Second_Life"/> <combo_box.item label="年齢 > 未成年の住人がTeen Second Life の外にいる" name="Age__Underage_resident_outside_of_Teen_Second_Life"/> diff --git a/indra/newview/skins/default/xui/ja/floater_sell_land.xml b/indra/newview/skins/default/xui/ja/floater_sell_land.xml index b06b16bbb3..1e884af5f2 100644 --- a/indra/newview/skins/default/xui/ja/floater_sell_land.xml +++ b/indra/newview/skins/default/xui/ja/floater_sell_land.xml @@ -36,7 +36,7 @@ 2. 特定の人に販売: </text> <text name="sell_to_text" right="-6"> - 販売先の指定なしか、特定の人に販売するか選択してください。 + 販売先の指定なしか、特定の人に販売するかを選択してください。 </text> <combo_box name="sell_to"> <combo_box.item label="- 1つ選択 -" name="--selectone--"/> diff --git a/indra/newview/skins/default/xui/ja/floater_snapshot.xml b/indra/newview/skins/default/xui/ja/floater_snapshot.xml index 6c84de9b19..4ad54ec7ab 100644 --- a/indra/newview/skins/default/xui/ja/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/ja/floater_snapshot.xml @@ -28,21 +28,21 @@ 形式 </text> <combo_box label="解像度" name="postcard_size_combo"> - <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/> + <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/> <combo_box.item label="640x480" name="640x480"/> <combo_box.item label="800x600" name="800x600"/> <combo_box.item label="1024x768" name="1024x768"/> <combo_box.item label="カスタム" name="Custom"/> </combo_box> <combo_box label="解像度" name="texture_size_combo"> - <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/> + <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/> <combo_box.item label="小(128x128)" name="Small(128x128)"/> <combo_box.item label="中(256x256)" name="Medium(256x256)"/> <combo_box.item label="大(512x512)" name="Large(512x512)"/> <combo_box.item label="カスタム" name="Custom"/> </combo_box> <combo_box label="解像度" name="local_size_combo"> - <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/> + <combo_box.item label="現在のウィンドウ" name="CurrentWindow"/> <combo_box.item label="320x240" name="320x240"/> <combo_box.item label="640x480" name="640x480"/> <combo_box.item label="800x600" name="800x600"/> @@ -61,7 +61,7 @@ <check_box label="縦横比の固定" name="keep_aspect_check"/> <slider label="画質" name="image_quality_slider"/> <text name="layer_type_label"> - キャプチャ: + キャプチャ: </text> <combo_box label="画像レイヤー" name="layer_types"> <combo_box.item label="色" name="Colors"/> diff --git a/indra/newview/skins/default/xui/ja/floater_sound_preview.xml b/indra/newview/skins/default/xui/ja/floater_sound_preview.xml index a24ba6e075..7d83309c46 100644 --- a/indra/newview/skins/default/xui/ja/floater_sound_preview.xml +++ b/indra/newview/skins/default/xui/ja/floater_sound_preview.xml @@ -9,7 +9,7 @@ <button label="取り消し" label_selected="取り消し" name="cancel_btn"/> <button label="アップロード (L$[AMOUNT])" label_selected="アップロード (L$[AMOUNT])" name="ok_btn"/> <text name="text"> - ビットレート(kbps): + ビットレート(kbps): </text> <radio_group name="bitrate"> <radio_item label="32" name="32"/> diff --git a/indra/newview/skins/default/xui/ja/floater_telehub.xml b/indra/newview/skins/default/xui/ja/floater_telehub.xml index 79af7a7809..7318083771 100644 --- a/indra/newview/skins/default/xui/ja/floater_telehub.xml +++ b/indra/newview/skins/default/xui/ja/floater_telehub.xml @@ -10,7 +10,7 @@ 「切断」をクリックして削除します。 </text> <text name="help_text_not_connected"> - 物体を選択し「テレハブの接続」をクリックする + 物体を選択して「テレハブの接続」をクリックしてください。 </text> <button label="テレハブの接続" name="connect_btn"/> <button label="切断" name="disconnect_btn"/> diff --git a/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml index 1500808e60..399cffcce5 100644 --- a/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/ja/floater_texture_ctrl.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater name="texture picker" title="選択: テクスチャ"> +<floater name="texture picker" title="テクスチャの選択"> <string name="choose_picture"> クリックして写真を選択 </string> @@ -9,12 +9,12 @@ <text name="unknown"> サイズ: [DIMENSIONS] </text> - <button label="デフォルト" label_selected="デフォルト" name="Default"/> + <button label="デフォルト" label_selected="デフォルト" name="Default"/> <button label="なし" label_selected="なし" name="None"/> <button label="ブランク" label_selected="ブランク" name="Blank"/> <check_box label="フォルダを表示" name="show_folders_check"/> <search_editor label="テクスチャをフィルター" name="inventory search editor"/> - <check_box label="今すぐ適用" name="apply_immediate_check"/> + <check_box label="すぐ適用" name="apply_immediate_check"/> <button label="" label_selected="" name="Pipette"/> <button label="取り消し" label_selected="取り消し" name="Cancel"/> <button label="OK" label_selected="OK" name="Select"/> diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml index 52d3537d9a..456e30c2b4 100644 --- a/indra/newview/skins/default/xui/ja/floater_tools.xml +++ b/indra/newview/skins/default/xui/ja/floater_tools.xml @@ -171,7 +171,7 @@ Esbee Linden </text> <text name="Owner:"> - オーナー: + 所有者: </text> <text name="Owner Name"> Erica Linden @@ -197,7 +197,7 @@ <check_box label="販売対象:" name="checkbox for sale"/> <combo_box name="sale type"> <combo_box.item label="コピー" name="Copy"/> - <combo_box.item label="コンテンツ" name="Contents"/> + <combo_box.item label="中身" name="Contents"/> <combo_box.item label="オリジナル" name="Original"/> </combo_box> <spinner label="価格: L$" name="Edit Cost"/> @@ -239,9 +239,9 @@ </panel> <panel label="形状" name="Object"> <check_box label="ロック済み" name="checkbox locked" tool_tip="オブジェクトの移動と削除を禁止します。 この機能を使うと、構築中に意図しない編集を防ぐことができます。"/> - <check_box label="物理" name="Physical Checkbox Ctrl" tool_tip="オブジェクトに対する重力の作用と影響を有効にする"/> + <check_box label="物理" name="Physical Checkbox Ctrl" tool_tip="オブジェクトに対する重力の作用と影響を有効にします"/> <check_box label="臨時" name="Temporary Checkbox Ctrl" tool_tip="制作後 1 分でオブジェクトは削除されます"/> - <check_box label="ファントム" name="Phantom Checkbox Ctrl" tool_tip="オブジェクト同士の衝突またはオブジェクトとアバターの衝突を回避"/> + <check_box label="ファントム" name="Phantom Checkbox Ctrl" tool_tip="オブジェクト同士の衝突またはオブジェクトとアバターの衝突を回避します"/> <text name="label position"> 位置(メートル) </text> @@ -280,7 +280,7 @@ <combo_box.item label="ゴム" name="Rubber"/> </combo_box> <text name="text cut"> - パスカット (始点/終点) + パスカット (始点・終点) </text> <spinner label="B" name="cut begin"/> <spinner label="E" name="cut end"/> @@ -300,7 +300,7 @@ <combo_box.item label="三角形" name="Triangle"/> </combo_box> <text name="text twist"> - ひねり (始点/終点) + ひねり (始点・終点) </text> <spinner label="B" name="Twist Begin"/> <spinner label="E" name="Twist End"/> @@ -318,13 +318,13 @@ <spinner label="X" name="Shear X"/> <spinner label="Y" name="Shear Y"/> <text name="advanced_cut"> - プロフィールカット (始点/終点) + プロフィールカット (始点・終点) </text> <text name="advanced_dimple"> - くぼみ (始点/終点) + くぼみ (始点・終点) </text> <text name="advanced_slice"> - 切り取り (始点/終点) + 切り取り (始点・終点) </text> <spinner label="B" name="Path Limit Begin"/> <spinner label="E" name="Path Limit End"/> @@ -340,8 +340,8 @@ 回転体 </text> <texture_picker label="スカルプトテクスチャー" name="sculpt texture control" tool_tip="クリックして写真を選択してください。"/> - <check_box label="ミラー" name="sculpt mirror control" tool_tip="スカルプトプリムを X 軸上で反転させる"/> - <check_box label="裏返し" name="sculpt invert control" tool_tip="スカルプトプリムを反転させて裏返す"/> + <check_box label="ミラー" name="sculpt mirror control" tool_tip="スカルプトプリムを X 軸上で反転させます"/> + <check_box label="裏返し" name="sculpt invert control" tool_tip="スカルプトプリムを反転させて裏返します"/> <text name="label sculpt type"> 縫い目のタイプ </text> @@ -360,7 +360,7 @@ <text name="edit_object"> オブジェクトの特徴を編集: </text> - <check_box label="フレキシブル・パス" name="Flexible1D Checkbox Ctrl" tool_tip="Z 軸を中心にオブジェクトの屈曲を有効にする(クライアント側のみ)"/> + <check_box label="フレキシブル・パス" name="Flexible1D Checkbox Ctrl" tool_tip="Z 軸を中心にオブジェクトの屈曲を有効にします(クライアント側のみ)"/> <spinner label="柔軟性" label_width="72" name="FlexNumSections" width="135"/> <spinner label="重力" label_width="72" name="FlexGravity" width="135"/> <spinner label="ドラッグ" label_width="72" name="FlexFriction" width="135"/> @@ -369,9 +369,9 @@ <spinner label="X軸方向の力" label_width="72" name="FlexForceX" width="135"/> <spinner label="Y軸方向の力" label_width="72" name="FlexForceY" width="135"/> <spinner label="Z軸方向の力" label_width="72" name="FlexForceZ" width="135"/> - <check_box label="光" name="Light Checkbox Ctrl" tool_tip="オブジェクトが発光"/> + <check_box label="光" name="Light Checkbox Ctrl" tool_tip="オブジェクトが発光します"/> <color_swatch label="" left_delta="74" name="colorswatch" tool_tip="クリックしてカラーピッカーを開きます"/> - <texture_picker label="" name="light texture control" tool_tip="クリックで投影画を選択(遅延レンダリング有効時のみ)"/> + <texture_picker label="" name="light texture control" tool_tip="クリックで投影画を選択します(遅延レンダリング有効時のみ)"/> <spinner label="輝度" label_width="72" name="Light Intensity" width="135"/> <spinner label="FOV" name="Light FOV"/> <spinner label="半径" label_width="72" name="Light Radius" width="135"/> @@ -381,7 +381,7 @@ </panel> <panel label="材質" name="Texture"> <panel.string name="string repeats per meter"> - メートルごとに繰返す + メートルごとに繰り返す </panel.string> <panel.string name="string repeats per face"> 面ごとに繰り返す @@ -453,10 +453,10 @@ <text name="media_tex"> メディア </text> - <button name="add_media" tool_tip="メディアを追加"/> - <button name="delete_media" tool_tip="このメディアテクスチャを削除"/> - <button name="edit_media" tool_tip="このメディアを編集"/> - <button label="揃える" label_selected="メディアを一列に揃える" name="button align" tool_tip="メディアテクスチャを一列に揃える(最初に読み込む必要があります)"/> + <button name="add_media" tool_tip="メディアを追加します"/> + <button name="delete_media" tool_tip="このメディアテクスチャを削除します"/> + <button name="edit_media" tool_tip="このメディアを編集します"/> + <button label="揃える" label_selected="メディアを一列に揃える" name="button align" tool_tip="メディアテクスチャを一列に揃えます(最初に読み込む必要があります)"/> </panel> </panel> <panel label="中身" name="Contents"> @@ -475,7 +475,7 @@ 面積: [AREA] 平方メートル </text> <button label="土地情報" label_selected="土地情報" name="button about land"/> - <check_box label="オーナーを表示" name="checkbox show owners" tool_tip="所有者の種類別に区画を色づけ: 緑 = あなたの土地 アクア = あなたのグループ所有地 赤 = 他人が所有する土地 黄色 = 売り出し中 紫 = オークション グレー = パブリック"/> + <check_box label="所有者を表示" name="checkbox show owners" tool_tip="所有者の種類別に区画を色づけます: 緑 = あなたの土地 アクア = あなたのグループ所有地 赤 = 他人が所有する土地 黄色 = 売り出し中 紫 = オークション グレー = パブリック"/> <text name="label_parcel_modify"> 区画の編集 </text> diff --git a/indra/newview/skins/default/xui/ja/floater_window_size.xml b/indra/newview/skins/default/xui/ja/floater_window_size.xml index a31336c0f8..152a5f4806 100644 --- a/indra/newview/skins/default/xui/ja/floater_window_size.xml +++ b/indra/newview/skins/default/xui/ja/floater_window_size.xml @@ -4,7 +4,7 @@ [RES_X] x [RES_Y] </string> <text name="windowsize_text"> - ウィンドウのサイズの設定: + ウィンドウのサイズを設定: </text> <combo_box name="window_size_combo" tool_tip="横幅 x 高さ"> <combo_box.item label="1000 x 700 (標準)" name="item0"/> diff --git a/indra/newview/skins/default/xui/ja/floater_world_map.xml b/indra/newview/skins/default/xui/ja/floater_world_map.xml index a0f2d98adf..af9c05de91 100644 --- a/indra/newview/skins/default/xui/ja/floater_world_map.xml +++ b/indra/newview/skins/default/xui/ja/floater_world_map.xml @@ -2,13 +2,13 @@ <floater name="worldmap" title="世界地図"> <panel name="layout_panel_1"> <text name="events_label"> - レジェンド + 表記・記号 </text> </panel> <panel> - <button label="現在地を表示" label_selected="現在地を表示" name="Show My Location" tool_tip="マップを中央に表示する"/> + <button label="現在地を表示" label_selected="現在地を表示" name="Show My Location" tool_tip="アバターの位置を地図の中心に表示します"/> <text name="me_label"> - ミー + 自分 </text> <check_box label="住人" name="people_chk"/> <text name="person_label"> @@ -23,12 +23,12 @@ 土地販売 </text> <text name="by_owner_label"> - by owner + 所有者の販売 </text> <text name="auction_label"> 土地オークション </text> - <button label="ホームへ" label_selected="ホームへ" name="Go Home" tool_tip="「ホーム」にテレポート"/> + <button label="ホームへ" label_selected="ホームへ" name="Go Home" tool_tip="「ホーム」にテレポートします"/> <text name="Home_label"> ホーム </text> @@ -50,14 +50,14 @@ </panel> <panel> <text name="find_on_map_label"> - 地図で探す + 地図上で探す </text> </panel> <panel> - <combo_box label="オンラインのフレンド" name="friend combo" tool_tip="フレンドを地図に表示"> + <combo_box label="オンラインのフレンド" name="friend combo" tool_tip="フレンドを地図上に表示します"> <combo_box.item label="オンラインのフレンド" name="item1"/> </combo_box> - <combo_box label="マイ ランドマーク" name="landmark combo" tool_tip="地図に表示するランドマーク"> + <combo_box label="マイ ランドマーク" name="landmark combo" tool_tip="地図上に表示するランドマーク"> <combo_box.item label="マイ ランドマーク" name="item1"/> </combo_box> <search_editor label="リージョン名" name="location" tool_tip="地域名を入力してください。"/> @@ -66,9 +66,9 @@ <scroll_list.columns label="" name="icon"/> <scroll_list.columns label="" name="sim_name"/> </scroll_list> - <button label="テレポート" label_selected="テレポート" name="Teleport" tool_tip="選択されたロケーションにテレポート"/> - <button label="SLurl をコピー" name="copy_slurl" tool_tip="現在地を SLurl としてコピーして、Webで使用します。"/> - <button label="選択したリージョンを表示する" label_selected="目的地を表示" name="Show Destination" tool_tip="選択したロケーションを地図の中心にする"/> + <button label="テレポート" label_selected="テレポート" name="Teleport" tool_tip="選択した場所にレポートします"/> + <button label="SLurl をコピー" name="copy_slurl" tool_tip="現在地を SLurl でコピーして、Webで使用します。"/> + <button label="選択したリージョンを表示する" label_selected="目的地を表示" name="Show Destination" tool_tip="選択した場所を地図の中心に表示します"/> </panel> <panel> <text name="zoom_label"> diff --git a/indra/newview/skins/default/xui/ja/menu_avatar_self.xml b/indra/newview/skins/default/xui/ja/menu_avatar_self.xml index 1bfadf8d45..9d5ce3dada 100644 --- a/indra/newview/skins/default/xui/ja/menu_avatar_self.xml +++ b/indra/newview/skins/default/xui/ja/menu_avatar_self.xml @@ -23,5 +23,5 @@ <menu_item_call label="容姿" name="Appearance..."/> <menu_item_call label="フレンド" name="Friends..."/> <menu_item_call label="グループ" name="Groups..."/> - <menu_item_call label="マイ プロフィール" name="Profile..."/> + <menu_item_call label="プロフィール" name="Profile..."/> </context_menu> diff --git a/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml index 76c01d6109..d02701b400 100644 --- a/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml +++ b/indra/newview/skins/default/xui/ja/menu_inspect_self_gear.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <menu name="Gear Menu"> <menu_item_call label="立ち上がる" name="stand_up"/> - <menu_item_call label="マイ 容姿" name="my_appearance"/> + <menu_item_call label="容姿" name="my_appearance"/> <menu_item_call label="プロフィール" name="my_profile"/> <menu_item_call label="フレンド" name="my_friends"/> <menu_item_call label="グループ" name="my_groups"/> diff --git a/indra/newview/skins/default/xui/ja/menu_inventory.xml b/indra/newview/skins/default/xui/ja/menu_inventory.xml index 78c0dd0a78..3d661f96e0 100644 --- a/indra/newview/skins/default/xui/ja/menu_inventory.xml +++ b/indra/newview/skins/default/xui/ja/menu_inventory.xml @@ -62,13 +62,13 @@ <menu_item_call label="リンクを外す" name="Remove Link"/> <menu_item_call label="削除" name="Delete"/> <menu_item_call label="システムフォルダを削除する" name="Delete System Folder"/> - <menu_item_call label="会議チャット開始" name="Conference Chat Folder"/> + <menu_item_call label="コンファレンスチャットを開始" name="Conference Chat Folder"/> <menu_item_call label="再生" name="Sound Play"/> <menu_item_call label="ランドマークの情報" name="About Landmark"/> - <menu_item_call label="世界で再生" name="Animation Play"/> - <menu_item_call label="ローカルに再生" name="Animation Audition"/> - <menu_item_call label="インスタント・メッセージを送信" name="Send Instant Message"/> - <menu_item_call label="テレポートを贈る..." name="Offer Teleport..."/> + <menu_item_call label="ワールド再生" name="Animation Play"/> + <menu_item_call label="ローカル再生" name="Animation Audition"/> + <menu_item_call label="インスタントメッセージを送信" name="Send Instant Message"/> + <menu_item_call label="テレポートを送る..." name="Offer Teleport..."/> <menu_item_call label="会議チャット開始" name="Conference Chat"/> <menu_item_call label="アクティブ" name="Activate"/> <menu_item_call label="非アクティブ" name="Deactivate"/> diff --git a/indra/newview/skins/default/xui/ja/menu_login.xml b/indra/newview/skins/default/xui/ja/menu_login.xml index 42a95ac3d3..d6f13f0e59 100644 --- a/indra/newview/skins/default/xui/ja/menu_login.xml +++ b/indra/newview/skins/default/xui/ja/menu_login.xml @@ -24,7 +24,7 @@ <menu_item_call label="UI/色の設定" name="UI/Color Settings"/> <menu_item_call label="XUI プレビューツール" name="UI Preview Tool"/> <menu label="UI テスト" name="UI Tests"/> - <menu_item_call label="ウィンドウのサイズの設定..." name="Set Window Size..."/> + <menu_item_call label="ウィンドウのサイズを設定..." name="Set Window Size..."/> <menu_item_call label="利用規約を表示" name="TOS"/> <menu_item_call label="クリティカルメッセージを表示" name="Critical"/> <menu_item_call label="Web ブラウザのテスト" name="Web Browser Test"/> diff --git a/indra/newview/skins/default/xui/ja/menu_object.xml b/indra/newview/skins/default/xui/ja/menu_object.xml index a161c01514..d218b48c98 100644 --- a/indra/newview/skins/default/xui/ja/menu_object.xml +++ b/indra/newview/skins/default/xui/ja/menu_object.xml @@ -9,8 +9,8 @@ <menu_item_call label="ズームイン" name="Zoom In"/> <context_menu label="装着 >" name="Put On"> <menu_item_call label="装着" name="Wear"/> - <context_menu label="取り付け >" name="Object Attach"/> - <context_menu label="HUD を取り付け >" name="Object Attach HUD"/> + <context_menu label="取り付ける >" name="Object Attach"/> + <context_menu label="HUD を取り付ける >" name="Object Attach HUD"/> </context_menu> <context_menu label="削除 >" name="Remove"> <menu_item_call label="取る" name="Pie Object Take"/> diff --git a/indra/newview/skins/default/xui/ja/menu_people_groups.xml b/indra/newview/skins/default/xui/ja/menu_people_groups.xml index 4e5dc60a3d..842d79dc4b 100644 --- a/indra/newview/skins/default/xui/ja/menu_people_groups.xml +++ b/indra/newview/skins/default/xui/ja/menu_people_groups.xml @@ -3,6 +3,6 @@ <menu_item_call label="情報を表示" name="View Info"/> <menu_item_call label="チャット" name="Chat"/> <menu_item_call label="コール" name="Call"/> - <menu_item_call label="有効化" name="Activate"/> + <menu_item_call label="アクティブ" name="Activate"/> <menu_item_call label="脱退" name="Leave"/> </menu> diff --git a/indra/newview/skins/default/xui/ja/menu_slurl.xml b/indra/newview/skins/default/xui/ja/menu_slurl.xml index 2e06c53494..eb24cee7e0 100644 --- a/indra/newview/skins/default/xui/ja/menu_slurl.xml +++ b/indra/newview/skins/default/xui/ja/menu_slurl.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="Popup"> <menu_item_call label="URLについて" name="about_url"/> - <menu_item_call label="URLへテレポートする" name="teleport_to_url"/> + <menu_item_call label="URLにテレポートする" name="teleport_to_url"/> <menu_item_call label="地図" name="show_on_map"/> </menu> diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml index db8583ca15..c5d5914f3f 100644 --- a/indra/newview/skins/default/xui/ja/menu_viewer.xml +++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml @@ -49,12 +49,12 @@ <menu_item_call label="日没" name="Sunset"/> <menu_item_call label="深夜" name="Midnight"/> <menu_item_call label="エステートタイム" name="Revert to Region Default"/> - <menu_item_call label="環境編集" name="Environment Editor"/> + <menu_item_call label="自然環境エディター" name="Environment Editor"/> </menu> </menu> <menu label="制作" name="BuildTools"> <menu_item_check label="制作" name="Show Build Tools"/> - <menu label="制作ツールを選択" name="Select Tool"> + <menu label="制作ツールを選択する" name="Select Tool"> <menu_item_call label="フォーカスツール" name="Focus"/> <menu_item_call label="移動ツール" name="Move"/> <menu_item_call label="編集ツール" name="Edit"/> @@ -77,9 +77,9 @@ <menu_item_call label="選択したものに焦点を合わせる" name="Focus on Selection"/> <menu_item_call label="選択したものをズームする" name="Zoom to Selection"/> <menu label="オブジェクト" name="Object"> - <menu_item_call label="買う" name="Menu Object Take"/> + <menu_item_call label="取る" name="Menu Object Take"/> <menu_item_call label="コピーを取る" name="Take Copy"/> - <menu_item_call label="「マイ 持ち物」に保存" name="Save Object Back to My Inventory"/> + <menu_item_call label="「持ち物」に保存" name="Save Object Back to My Inventory"/> <menu_item_call label="オブジェクトの中身に保存" name="Save Object Back to Object Contents"/> </menu> <menu label="スクリプト" name="Scripts"> @@ -119,8 +119,8 @@ </menu> <menu label="ヘルプ" name="Help"> <menu_item_call label="[SECOND_LIFE] ヘルプ" name="Second Life Help"/> - <menu_item_call label="嫌がらせを報告" name="Report Abuse"/> - <menu_item_call label="バグ報告" name="Report Bug"/> + <menu_item_call label="嫌がらせを報告する" name="Report Abuse"/> + <menu_item_call label="バグを報告する" name="Report Bug"/> <menu_item_call label="[APP_NAME] について" name="About Second Life"/> </menu> <menu label="アドバンス" name="Advanced"> diff --git a/indra/newview/skins/default/xui/ja/mime_types.xml b/indra/newview/skins/default/xui/ja/mime_types.xml index 2f945b2010..54663a0367 100644 --- a/indra/newview/skins/default/xui/ja/mime_types.xml +++ b/indra/newview/skins/default/xui/ja/mime_types.xml @@ -2,13 +2,13 @@ <mimetypes name="default"> <widgetset name="web"> <label name="web_label"> - ウェブ・コンテンツ + Webコンテンツ </label> <tooltip name="web_tooltip"> - ここにウェブ・コンテンツがあります。 + ここにWebコンテンツがあります。 </tooltip> <playtip name="web_playtip"> - ウェブ・コンテンツを表示 + Webコンテンツを表示 </playtip> </widgetset> <widgetset name="movie"> @@ -119,7 +119,7 @@ </mimetype> <mimetype name="application/xhtml+xml"> <label name="application/xhtml+xml_label"> - ウェブ・ページ (XHTML) + Webページ (XHTML) </label> </mimetype> <mimetype name="application/x-director"> @@ -184,7 +184,7 @@ </mimetype> <mimetype menu="1" name="text/html"> <label name="text/html_label"> - ウェブ・ページ + Webページ </label> </mimetype> <mimetype menu="1" name="text/plain"> diff --git a/indra/newview/skins/default/xui/ja/panel_bottomtray.xml b/indra/newview/skins/default/xui/ja/panel_bottomtray.xml index 414413a980..81a852522b 100644 --- a/indra/newview/skins/default/xui/ja/panel_bottomtray.xml +++ b/indra/newview/skins/default/xui/ja/panel_bottomtray.xml @@ -17,11 +17,11 @@ <button label="視界" name="camera_btn" tool_tip="カメラコントロールの表示・非表示"/> </layout_panel> <layout_panel name="snapshot_panel"> - <button label="" name="snapshots" tool_tip="スナップショットを撮る"/> + <button label="" name="snapshots" tool_tip="スナップショットを撮ります"/> </layout_panel> <layout_panel name="im_well_panel"> <chiclet_im_well name="im_well"> - <button name="Unread IM messages" tool_tip="Conversations"/> + <button name="Unread IM messages" tool_tip="会話"/> </chiclet_im_well> </layout_panel> <layout_panel name="notification_well_panel"> diff --git a/indra/newview/skins/default/xui/ja/panel_friends.xml b/indra/newview/skins/default/xui/ja/panel_friends.xml index 80a68f8258..97e58ceaed 100644 --- a/indra/newview/skins/default/xui/ja/panel_friends.xml +++ b/indra/newview/skins/default/xui/ja/panel_friends.xml @@ -4,7 +4,7 @@ 複数のフレンド </string> <scroll_list name="friend_list" tool_tip="複数のフレンドを選択するには、ShiftキーまたはCtrlキーを押しながら名前をクリックします。"> - <column name="icon_online_status" tool_tip="オンライン・ステータス"/> + <column name="icon_online_status" tool_tip="オンライン状況"/> <column label="名前" name="friend_name" tool_tip="名前"/> <column name="icon_visible_online" tool_tip="フレンドは、あなたがオンラインかどうか確認することができます。"/> <column name="icon_visible_map" tool_tip="フレンドは、地図であなたの居場所を見つけることができます。"/> @@ -15,18 +15,18 @@ <text name="friend_name_label" right="-10"> フレンドを選択して権利を変更... </text> - <check_box label="オンライン・ステータスの確認を許可する" name="online_status_cb" tool_tip="コーリングカードあるいはフレンドリストでこのフレンドがオンライン状態を確認できるよう設定"/> - <check_box label="世界地図上であなたの居場所を検索可能にする" name="map_status_cb" tool_tip="このフレンドが地図で私の位置を発見できるように設定"/> - <check_box label="オブジェクトの修正を許可する" name="modify_status_cb" tool_tip="このフレンドがオブジェクトを改造できる許可を与える"/> + <check_box label="オンライン状況の確認を許可する" name="online_status_cb" tool_tip="コーリングカードあるいはフレンドリストでこのフレンドがオンライン状況を確認できるよう設定します"/> + <check_box label="世界地図上であなたの居場所を検索可能にする" name="map_status_cb" tool_tip="このフレンドが地図で私の位置を発見できるように設定します"/> + <check_box label="オブジェクトの修正を許可する" name="modify_status_cb" tool_tip="このフレンドに私のオブジェクトを改造する許可を与えます"/> <text name="process_rights_label"> 権利変更をプロセス中... </text> </panel> <pad left="-95"/> - <button label="IM/コール" name="im_btn" tool_tip="インスタントメッセージ・セッションを開く" width="90"/> + <button label="IM・コール" name="im_btn" tool_tip="インスタントメッセージ・セッションを開きます。" width="90"/> <button label="プロフィール" name="profile_btn" tool_tip="写真、グループ、およびその他の情報を表示します。" width="90"/> - <button label="テレポート" name="offer_teleport_btn" tool_tip="このフレンドに、あなたの現在のロケーションまでのテレポートを申し出ます。" width="90"/> - <button label="支払う" name="pay_btn" tool_tip="リンデンドル (L$) をこのフレンドにあげる" width="90"/> + <button label="テレポート" name="offer_teleport_btn" tool_tip="このフレンドに、あなたの現在地へのテレポートを申し出ます。" width="90"/> + <button label="支払う" name="pay_btn" tool_tip="リンデンドル (L$) をこのフレンドにあげます。" width="90"/> <button label="削除" name="remove_btn" tool_tip="この人物をフレンドリストから外します。" width="90"/> - <button label="追加" name="add_btn" tool_tip="フレンド登録を申し出る" width="90"/> + <button label="追加" name="add_btn" tool_tip="フレンド登録を申し出ます。" width="90"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml b/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml index 1c89675c1e..f7f575206a 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_control_panel.xml @@ -5,7 +5,7 @@ <button label="グループ情報" name="group_info_btn"/> </layout_panel> <layout_panel name="call_btn_panel"> - <button label="グループにコール" name="call_btn"/> + <button label="グループコール" name="call_btn"/> </layout_panel> <layout_panel name="end_call_btn_panel"> <button label="コール終了" name="end_call_btn"/> diff --git a/indra/newview/skins/default/xui/ja/panel_group_general.xml b/indra/newview/skins/default/xui/ja/panel_group_general.xml index 538f3800bd..247294c158 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_general.xml @@ -9,7 +9,7 @@ 一般的なグループ情報が変更されました。 </panel.string> <panel.string name="incomplete_member_data_str"> - メンバー・データを検索 + メンバーのデータを検索 </panel.string> <text_editor name="charter"> グループの理念、指針を記入してください diff --git a/indra/newview/skins/default/xui/ja/panel_group_invite.xml b/indra/newview/skins/default/xui/ja/panel_group_invite.xml index dc58359133..a21b340fdd 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_invite.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_invite.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="メンバーを招待" name="invite_panel"> <panel.string name="confirm_invite_owner_str"> - 本当に新しい所有者を招待しますか?この操作は取り消しできません。 + 本当に新しい所有者を招待しますか?この操作は取り消しできません。 </panel.string> <panel.string name="loading"> (ローディング...) diff --git a/indra/newview/skins/default/xui/ja/panel_group_land_money.xml b/indra/newview/skins/default/xui/ja/panel_group_land_money.xml index b620a66122..0f014bcd2f 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_land_money.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_land_money.xml @@ -18,7 +18,7 @@ </text> <scroll_list name="group_parcel_list"> <column label="区画" name="name"/> - <column label="地域(リージョン)" name="location"/> + <column label="地域" name="location"/> <column label="種類" name="type"/> <column label="面積" name="area"/> <column label="" name="hidden"/> diff --git a/indra/newview/skins/default/xui/ja/panel_group_notices.xml b/indra/newview/skins/default/xui/ja/panel_group_notices.xml index c5168c4d7c..e33d3d854e 100644 --- a/indra/newview/skins/default/xui/ja/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/ja/panel_group_notices.xml @@ -21,8 +21,8 @@ <text name="notice_list_none_found"> 見つかりませんでした </text> - <button label="新しい通知を作成" label_selected="新しい通知を作成" name="create_new_notice" tool_tip="新しい通知を作成"/> - <button label="更新" label_selected="リスト更新" name="refresh_notices" tool_tip="通知リストを更新"/> + <button label="新しい通知を作成" label_selected="新しい通知を作成" name="create_new_notice" tool_tip="新しい通知を作成します"/> + <button label="更新" label_selected="リスト更新" name="refresh_notices" tool_tip="通知リストを更新します"/> <panel label="新しい通知を作成" name="panel_create_new_notice"> <text name="lbl"> 通知を作成 @@ -31,7 +31,7 @@ 件名: </text> <text name="lbl4"> - メッセージ: + 内容: </text> <text name="lbl5"> 添付: @@ -54,7 +54,7 @@ 件名: </text> <text name="lbl4"> - メッセージ: + 内容: </text> <button label="添付アイテムを開く" label_selected="添付物を開く" name="open_attachment"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_groups.xml b/indra/newview/skins/default/xui/ja/panel_groups.xml index 337402d32c..de81a6431a 100644 --- a/indra/newview/skins/default/xui/ja/panel_groups.xml +++ b/indra/newview/skins/default/xui/ja/panel_groups.xml @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel name="groups"> <text name="groupdesc"> - アクティブなグループ名は太字で表示されています + アクティブなグループは太字で表示されています </text> <text name="groupcount" width="270"> - あなたは[COUNT] グループに所属しています (最大[MAX]) + [COUNT] のグループに所属しています (最大[MAX]) </text> - <button label="IM/コール" name="IM" + <button label="IM・コール" name="IM" tool_tip="インスタントメッセージ・セッションを開く" /> <button label="情報" name="Info" /> <button label="アクティブ" name="Activate" /> diff --git a/indra/newview/skins/default/xui/ja/panel_landmark_info.xml b/indra/newview/skins/default/xui/ja/panel_landmark_info.xml index 9129c66a45..87477c2651 100644 --- a/indra/newview/skins/default/xui/ja/panel_landmark_info.xml +++ b/indra/newview/skins/default/xui/ja/panel_landmark_info.xml @@ -36,7 +36,7 @@ </panel> <panel name="landmark_edit_panel"> <text name="title_label" value="タイトル:"/> - <text name="notes_label" value="個人的メモ:"/> + <text name="notes_label" value="メモ:"/> <text name="folder_label" value="ランドマークの位置:"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_landmarks.xml b/indra/newview/skins/default/xui/ja/panel_landmarks.xml index 45767e8c50..151fbf33f2 100644 --- a/indra/newview/skins/default/xui/ja/panel_landmarks.xml +++ b/indra/newview/skins/default/xui/ja/panel_landmarks.xml @@ -7,8 +7,8 @@ <accordion_tab name="tab_library" title="ライブラリ"/> </accordion> <panel name="bottom_panel"> - <button name="options_gear_btn" tool_tip="その他のオプションを表示"/> - <button name="add_btn" tool_tip="新しいランドマークを追加"/> - <dnd_button name="trash_btn" tool_tip="選択したランドマークを削除"/> + <button name="options_gear_btn" tool_tip="その他のオプションを表示します"/> + <button name="add_btn" tool_tip="新しいランドマークを追加します"/> + <dnd_button name="trash_btn" tool_tip="選択したランドマークを削除します"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml index d533ce5e0d..36c7b75f97 100644 --- a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml @@ -9,9 +9,9 @@ <inventory_panel label="最新" name="Recent Items"/> </tab_container> <panel name="bottom_panel"> - <button name="options_gear_btn" tool_tip="その他のオプションを表示"/> - <button name="add_btn" tool_tip="新しいアイテムの追加"/> - <dnd_button name="trash_btn" tool_tip="選択したアイテムを削除"/> + <button name="options_gear_btn" tool_tip="その他のオプションを表示します"/> + <button name="add_btn" tool_tip="新しいアイテムを追加します"/> + <dnd_button name="trash_btn" tool_tip="選択したアイテムを削除します"/> </panel> <menu_bar name="Inventory Menu"> <menu label="ファイル" name="File"> @@ -32,7 +32,7 @@ <menu label="新規作成" name="Create"> <menu_item_call label="フォルダ" name="New Folder"/> <menu_item_call label="スクリプト" name="New Script"/> - <menu_item_call label="新しいノートカード" name="New Note"/> + <menu_item_call label="ノートカード" name="New Note"/> <menu_item_call label="ジェスチャー" name="New Gesture"/> <menu label="衣類" name="New Clothes"> <menu_item_call label="シャツ" name="New Shirt"/> @@ -40,7 +40,7 @@ <menu_item_call label="靴" name="New Shoes"/> <menu_item_call label="靴下" name="New Socks"/> <menu_item_call label="ジャケット" name="New Jacket"/> - <menu_item_call label="シャツ" name="New Skirt"/> + <menu_item_call label="スカート" name="New Skirt"/> <menu_item_call label="手袋" name="New Gloves"/> <menu_item_call label="下着(上)" name="New Undershirt"/> <menu_item_call label="下着(下)" name="New Underpants"/> diff --git a/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml b/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml index 74e414c381..eba26bbe3d 100644 --- a/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_media_settings_general.xml @@ -20,7 +20,7 @@ <check_box initial_value="false" label="自動ズーム" name="auto_zoom"/> <check_box initial_value="false" label="自動メディア再生" name="auto_play"/> <text name="media_setting_note"> - 注: 住人はこの設定を無視できます + 注意: 住人はこの設定を無視できます </text> <check_box initial_value="false" label="オブジェクトの表面のメディアの自動スケール" name="auto_scale"/> <text name="size_label"> diff --git a/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml b/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml index 7822123a30..6accbd4852 100644 --- a/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml +++ b/indra/newview/skins/default/xui/ja/panel_media_settings_security.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="セキュリティ" name="Media Settings Security"> - <check_box initial_value="false" label="指定したURLパターンにのみアクセスを許可する" name="whitelist_enable"/> + <check_box initial_value="false" label="指定したURLパターンのみアクセスを許可する" name="whitelist_enable"/> <text name="home_url_fails_some_items_in_whitelist"> ホームページに失敗したエントリーがマークされました: </text> diff --git a/indra/newview/skins/default/xui/ja/panel_my_profile.xml b/indra/newview/skins/default/xui/ja/panel_my_profile.xml index 4cce3798cf..e74a726d11 100644 --- a/indra/newview/skins/default/xui/ja/panel_my_profile.xml +++ b/indra/newview/skins/default/xui/ja/panel_my_profile.xml @@ -28,7 +28,7 @@ <icon label="" name="real_world_edit_icon" tool_tip="下の「プロフィールの編集」ボタンを押して画像を変更します"/> <text name="title_rw_descr_text" value="現実世界:"/> </panel> - <text name="title_member_text" value="住人となった日:"/> + <text name="title_member_text" value="メンバー登録:"/> <text name="title_acc_status_text" value="アカウントの状態:"/> <text name="acc_status_text"> 住人。 支払情報未登録。 diff --git a/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml b/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml index a154442095..b271e86852 100644 --- a/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="navigation_bar"> <panel name="navigation_panel"> - <button name="back_btn" tool_tip="前の場所"/> - <button name="forward_btn" tool_tip="次の場所"/> + <button name="back_btn" tool_tip="前の場所へ戻ります"/> + <button name="forward_btn" tool_tip="次の場所へ進みます"/> <button name="home_btn" tool_tip="「ホーム」にテレポート"/> <location_input label="場所" name="location_combo"/> <search_combo_box label="検索" name="search_combo_box" tool_tip="検索"> diff --git a/indra/newview/skins/default/xui/ja/panel_notes.xml b/indra/newview/skins/default/xui/ja/panel_notes.xml index 1948c54359..6023bf125f 100644 --- a/indra/newview/skins/default/xui/ja/panel_notes.xml +++ b/indra/newview/skins/default/xui/ja/panel_notes.xml @@ -15,9 +15,9 @@ <layout_panel name="notes_buttons_panel"> <button label="フレンド登録" name="add_friend" tool_tip="フレンド登録を申し出ます"/> <button label="IM" name="im" tool_tip="インスタントメッセージを開きます"/> - <button label="コール" name="call" tool_tip="この住人にコールする"/> - <button label="地図" name="show_on_map_btn" tool_tip="住人を地図上で表示する"/> - <button label="テレポート" name="teleport" tool_tip="テレポートを送る"/> + <button label="コール" name="call" tool_tip="この住人にコールします"/> + <button label="地図" name="show_on_map_btn" tool_tip="住人を地図上で表示します"/> + <button label="テレポート" name="teleport" tool_tip="テレポートを送ります"/> </layout_panel> </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml index 6c2d845ad3..7681ee461f 100644 --- a/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml +++ b/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml @@ -5,10 +5,10 @@ <inventory_panel label="着用中" name="cof_accordionpanel"/> </tab_container> <panel name="bottom_panel"> - <button name="options_gear_btn" tool_tip="その他のオプションを表示"/> - <dnd_button name="trash_btn" tool_tip="選択したアイテムを削除"/> - <button label="アウトフィットを保存する" name="make_outfit_btn" tool_tip="容姿をアウトフィットに保存する" width="140"/> - <button label="装着" name="wear_btn" tool_tip="選択したアウトフィットを着用する"/> + <button name="options_gear_btn" tool_tip="その他のオプションを表示します"/> + <dnd_button name="trash_btn" tool_tip="選択したアイテムを削除します"/> + <button label="アウトフィットを保存する" name="make_outfit_btn" tool_tip="容姿をアウトフィットに保存します" width="140"/> + <button label="装着" name="wear_btn" tool_tip="選択したアウトフィットを着用します"/> <button label="M" name="look_edit_btn"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_people.xml b/indra/newview/skins/default/xui/ja/panel_people.xml index c955cf6e48..0c3690a10c 100644 --- a/indra/newview/skins/default/xui/ja/panel_people.xml +++ b/indra/newview/skins/default/xui/ja/panel_people.xml @@ -23,15 +23,15 @@ </accordion> <panel label="bottom_panel" name="bottom_panel"> <button name="friends_viewsort_btn" tool_tip="オプション"/> - <button name="add_btn" tool_tip="フレンド登録を申し出る"/> - <button name="del_btn" tool_tip="選択した人をフレンドリストから削除"/> + <button name="add_btn" tool_tip="フレンド登録を申し出ます"/> + <button name="del_btn" tool_tip="選択した人をフレンドリストから削除します"/> </panel> </panel> <panel label="グループ" name="groups_panel"> <panel label="bottom_panel" name="bottom_panel"> <button name="groups_viewsort_btn" tool_tip="オプション"/> - <button name="plus_btn" tool_tip="グループに参加 / 新規グループを作成"/> - <button name="activate_btn" tool_tip="選択したグループをアクティベート"/> + <button name="plus_btn" tool_tip="グループに参加 / 新規グループを作成します"/> + <button name="activate_btn" tool_tip="選択したグループをアクティブにします"/> </panel> </panel> <panel label="最新" name="recent_panel"> @@ -42,13 +42,13 @@ </panel> </tab_container> <panel name="button_bar"> - <button label="プロフィール" name="view_profile_btn" tool_tip="写真、グループ、その他住人情報を表示"/> - <button label="IM" name="im_btn" tool_tip="インスタントメッセージを開く"/> - <button label="コール" name="call_btn" tool_tip="この住人にコールする"/> + <button label="プロフィール" name="view_profile_btn" tool_tip="写真、グループ、その他住人情報を表示します"/> + <button label="IM" name="im_btn" tool_tip="インスタントメッセージを開きます"/> + <button label="コール" name="call_btn" tool_tip="この住人にコールします"/> <button label="共有" name="share_btn"/> - <button label="テレポート" name="teleport_btn" tool_tip="テレポートを送る"/> - <button label="グループ情報" name="group_info_btn" tool_tip="グループ情報を表示"/> - <button label="グループチャット" name="chat_btn" tool_tip="チャットを開始"/> - <button label="グループにコールする" name="group_call_btn" tool_tip="このグループにコールする"/> + <button label="テレポート" name="teleport_btn" tool_tip="テレポートを送ります"/> + <button label="グループ情報" name="group_info_btn" tool_tip="グループ情報を表示します"/> + <button label="グループチャット" name="chat_btn" tool_tip="チャットを開始します"/> + <button label="グループコール" name="group_call_btn" tool_tip="このグループにコールします"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_picks.xml b/indra/newview/skins/default/xui/ja/panel_picks.xml index f74bf7a073..4f58c032da 100644 --- a/indra/newview/skins/default/xui/ja/panel_picks.xml +++ b/indra/newview/skins/default/xui/ja/panel_picks.xml @@ -10,8 +10,8 @@ <button name="new_btn" tool_tip="現在地の新しいピック、またはクラシファイド広告を作成します"/> </panel> <panel name="buttons_cucks"> - <button label="情報" name="info_btn" tool_tip="ピックの情報を表示"/> - <button label="テレポート" name="teleport_btn" tool_tip="該当するエリアにテレポート"/> - <button label="地図" name="show_on_map_btn" tool_tip="世界地図に該当するエリアを表示"/> + <button label="情報" name="info_btn" tool_tip="ピックの情報を表示します"/> + <button label="テレポート" name="teleport_btn" tool_tip="該当するエリアにテレポートします"/> + <button label="地図" name="show_on_map_btn" tool_tip="世界地図に該当するエリアを表示します"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_place_profile.xml b/indra/newview/skins/default/xui/ja/panel_place_profile.xml index ef4b71c4aa..b9a0744372 100644 --- a/indra/newview/skins/default/xui/ja/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/ja/panel_place_profile.xml @@ -86,9 +86,10 @@ <button label="土地情報" name="about_land_btn"/> </panel> </accordion_tab> - <accordion_tab name="region_information_tab" title="リージョン"> + <accordion_tab name="region_information_tab" title="リージョン(地域) + "> <panel> - <text name="region_name_label" value="リージョン:"/> + <text name="region_name_label" value="地域:"/> <text name="region_name" value="Mooseland"/> <text name="region_type_label" value="種類:"/> <text name="region_type" value="Moose"/> @@ -105,7 +106,7 @@ </accordion_tab> <accordion_tab name="estate_information_tab" title="エステート(不動産)"> <panel> - <text name="estate_name_label" value="エステート(不動産):"/> + <text name="estate_name_label" value="不動産:"/> <text name="estate_rating_label" value="レーティング区分:"/> <text name="estate_owner_label" value="所有者:"/> <text name="covenant_label" value="約款:"/> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml index 16af659326..f0780a6cf8 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_alerts.xml @@ -6,9 +6,9 @@ <check_box label="リンデンドルを使用・受け取るとき" name="notify_money_change_checkbox"/> <check_box label="フレンドがログアウト・ログインするとき" name="friends_online_notify_checkbox"/> <text name="show_label" width="300"> - 常に表示する通知: + 常に表示するメッセージ: </text> <text name="dont_show_label"> - 表示しない通知: + 表示しないメッセージ: </text> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml index ece18a75ca..73d0855273 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml @@ -7,27 +7,27 @@ </radio_group> <color_swatch label="自分" name="user"/> <text name="text_box1"> - ミー + 自分 </text> <color_swatch label="その他" name="agent"/> <text name="text_box2"> - その他 + 他人 </text> <color_swatch label="IM" name="im"/> <text name="text_box3"> IM </text> - <color_swatch label="システム" name="system"/> + <color_swatch label="システム" name="system"/> <text name="text_box4"> - システム + システム </text> <color_swatch label="エラー" name="script_error"/> <text name="text_box5"> エラー </text> - <color_swatch label="オブジェクト" name="objects"/> + <color_swatch label="オブジェクト" name="objects"/> <text name="text_box6"> - オブジェクト + オブジェクト </text> <color_swatch label="所有者" name="owner"/> <text name="text_box7"> @@ -37,9 +37,9 @@ <text name="text_box9"> URL </text> - <check_box initial_value="true" label="チャット中はタイピング動作のアニメーションを再生" name="play_typing_animation"/> - <check_box label="オフライン時に受け取った IM をメールで送信" name="send_im_to_email"/> - <check_box label="文字チャットの履歴を有効にする" name="plain_text_chat_history"/> + <check_box initial_value="true" label="チャット中にタイピング動作のアニメーションを再生" name="play_typing_animation"/> + <check_box label="オフライン時に受け取った IM をメールで受信" name="send_im_to_email"/> + <check_box label="チャット履歴に文字だけで表示する" name="plain_text_chat_history"/> <radio_group name="chat_window" tool_tip="インスタントメッセージを別ウィンドウ、または1つのウィンドウに複数タブで表示(要再起動)"> <radio_item label="複数ウィンドウ" name="radio" value="0"/> <radio_item label="1つのウィンドウ" name="radio2" value="1"/> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml index 765662b96a..f216c3acbc 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml @@ -33,7 +33,7 @@ </text> <combo_box name="start_location_combo"> <combo_box.item label="最後にログアウトした場所" name="MyLastLocation" tool_tip="常に最後にいた場所にログイン"/> - <combo_box.item label="自宅(ホーム)" name="MyHome" tool_tip="常に自宅(ホーム)にログイン"/> + <combo_box.item label="ホーム" name="MyHome" tool_tip="常にホーム(自宅)にログイン"/> </combo_box> <check_box initial_value="true" label="ログイン画面に表示する" name="show_location_checkbox"/> <text name="name_tags_textbox"> @@ -48,7 +48,7 @@ <check_box initial_value="true" label="小さいアバター名" name="small_avatar_names_checkbox"/> <check_box label="グループタイトルを表示" name="show_all_title_checkbox1"/> <text name="effects_color_textbox"> - 私のビームの色: + ビームの色: </text> <text name="title_afk_text"> 一時退席までの時間: diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml index 191748fe91..8df829c296 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml @@ -55,7 +55,7 @@ <text name="AvatarRenderingText"> アバター表示: </text> - <check_box initial_value="true" label="アバターの精度を上げる" name="AvatarImpostors"/> + <check_box initial_value="true" label="アバターの描画を簡略化" name="AvatarImpostors"/> <check_box initial_value="true" label="ハードウェアスキニング" name="AvatarVertexProgram"/> <check_box initial_value="true" label="アバターの布" name="AvatarCloth"/> <slider label="描画距離:" name="DrawDistance"/> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml index 7a7cb8b96b..12e8b04f84 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_privacy.xml @@ -11,13 +11,13 @@ <check_box label="フレンドとグループ以外からはコールとIMを受信しない" name="voice_call_friends_only_check"/> <check_box label="コールが終了したらマイクのスイッチを切る" name="auto_disengage_mic_check"/> <check_box label="Cookieを受け入れる" name="cookies_enabled"/> - <check_box label="メディアが有効です" name="media_enabled"/> + <check_box label="メディアを有効にする" name="media_enabled"/> <check_box label="メディアを自動再生する" name="autoplay_enabled"/> <text name="Logs:"> ログ: </text> - <check_box label="コンピューターに近くのチャットログを保存する" name="log_nearby_chat"/> - <check_box label="コンピューターに IM ログを保存する" name="log_instant_messages"/> + <check_box label="近くのチャットログをコンピューターに保存する" name="log_nearby_chat"/> + <check_box label="IM ログをコンピューターに保存する" name="log_instant_messages"/> <check_box label="タイムスタンプを追加する" name="show_timestamps_check_im"/> <text name="log_path_desc"> ログの保存場所: diff --git a/indra/newview/skins/default/xui/ja/panel_profile.xml b/indra/newview/skins/default/xui/ja/panel_profile.xml index 98969f5ab3..8968b7c61e 100644 --- a/indra/newview/skins/default/xui/ja/panel_profile.xml +++ b/indra/newview/skins/default/xui/ja/panel_profile.xml @@ -26,7 +26,7 @@ <panel name="first_life_image_panel"> <text name="title_rw_descr_text" value="現実世界:"/> </panel> - <text name="title_member_text" value="住人となった日:"/> + <text name="title_member_text" value="住人登録:"/> <text name="title_acc_status_text" value="アカウントの状態:"/> <text name="acc_status_text"> 住人。 支払情報未登録。 @@ -40,9 +40,9 @@ <layout_panel name="profile_buttons_panel"> <button label="フレンド登録" name="add_friend" tool_tip="フレンド登録を申し出ます"/> <button label="IM" name="im" tool_tip="インスタントメッセージを開きます"/> - <button label="コール" name="call" tool_tip="この住人にコールする"/> - <button label="地図" name="show_on_map_btn" tool_tip="住人を地図上で表示する"/> - <button label="テレポート" name="teleport" tool_tip="テレポートを送る"/> + <button label="コール" name="call" tool_tip="この住人にコールします"/> + <button label="地図" name="show_on_map_btn" tool_tip="住人を地図上で表示します"/> + <button label="テレポート" name="teleport" tool_tip="テレポートを送ります"/> </layout_panel> <layout_panel name="profile_me_buttons_panel"> <button label="プロフィールの編集" name="edit_profile_btn" tool_tip="個人的な情報を編集します"/> diff --git a/indra/newview/skins/default/xui/ja/panel_region_covenant.xml b/indra/newview/skins/default/xui/ja/panel_region_covenant.xml index d61fd0fe7f..9a517d79e9 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_covenant.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_covenant.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="約款" name="Covenant"> <text font="SansSerifLarge" name="estate_section_lbl" width="200"> - エステート(不動産) + 不動産 </text> <text name="estate_name_lbl"> 名前: @@ -33,7 +33,7 @@ この不動産約款の変更をする際は、ノートカードをドラッグ&ドロップしてください。 </text> <text bottom_delta="-34" font="SansSerifLarge" name="region_section_lbl" width="200"> - リージョン(地域) + 地域 </text> <text name="region_name_lbl"> 名前: diff --git a/indra/newview/skins/default/xui/ja/panel_region_debug.xml b/indra/newview/skins/default/xui/ja/panel_region_debug.xml index 4209fb17e5..f6865c12b1 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_debug.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_debug.xml @@ -6,11 +6,11 @@ <text name="region_text"> 未知 </text> - <check_box label="スクリプト無効化" name="disable_scripts_check" tool_tip="この地域のスクリプトをすべて無効化"/> + <check_box label="スクリプト無効化" name="disable_scripts_check" tool_tip="この地域のスクリプトをすべて無効にします"/> <button label="?" name="disable_scripts_help"/> - <check_box label="衝突を無効化" name="disable_collisions_check" tool_tip="この地域の非アバター衝突を無効化"/> + <check_box label="衝突を無効化" name="disable_collisions_check" tool_tip="この地域の非アバター衝突を無効にします"/> <button label="?" name="disable_collisions_help"/> - <check_box label="物理作用を無効化" name="disable_physics_check" tool_tip="この地域の物理作用をすべて無効化"/> + <check_box label="物理作用を無効化" name="disable_physics_check" tool_tip="この地域の物理作用をすべて無効にします"/> <button label="?" name="disable_physics_help"/> <button label="適用" name="apply_btn"/> <text name="objret_text_lbl" width="120"> @@ -27,14 +27,14 @@ オプション: </text> <check_box label="スクリプト付きのもの" name="return_scripts" tool_tip="スクリプトのオブジェクトだけ返却します"/> - <check_box label="他人の土地にあるもの" name="return_other_land" tool_tip="他人に属する土地にあるオブジェクトのみを返却"/> - <check_box label="この不動産に属するすべてのリージョンのもの" name="return_estate_wide" tool_tip="この不動産に含まれているすべての地域のオブジェクトを返却"/> + <check_box label="他人の土地にあるもの" name="return_other_land" tool_tip="他人に属する土地にあるオブジェクトのみを返却します"/> + <check_box label="この不動産に属するすべてのリージョンのもの" name="return_estate_wide" tool_tip="この不動産に含まれているすべての地域のオブジェクトを返却します"/> <button label="返却" name="return_btn"/> <button label="上部コライダー取得" name="top_colliders_btn" tool_tip="衝突する可能性が最も高いオブジェクトのリスト"/> <button label="?" name="top_colliders_help"/> <button label="上部スクリプト取得" name="top_scripts_btn" tool_tip="スクリプトの実行に最も時間を費やしているオブジェクトのリスト"/> <button label="?" name="top_scripts_help"/> - <button label="地域再起動" name="restart_btn" tool_tip="2分間のカウントダウン後、地域を再起動"/> + <button label="地域再起動" name="restart_btn" tool_tip="2分間のカウントダウン後、地域を再起動します"/> <button label="?" name="restart_help"/> - <button label="再起動を遅延" name="cancel_restart_btn" tool_tip="地域の再起動を1時間遅延する"/> + <button label="再起動を遅延" name="cancel_restart_btn" tool_tip="地域の再起動を1時間遅延します"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_region_estate.xml b/indra/newview/skins/default/xui/ja/panel_region_estate.xml index de93e47342..fcc225c333 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_estate.xml @@ -40,7 +40,7 @@ <check_box label="太陽固定" name="fixed_sun_check"/> <button label="?" name="fixed_sun_help"/> <slider label="段階" name="sun_hour_slider"/> - <check_box label="パブリック・アクセスを許可" name="externally_visible_check"/> + <check_box label="パブリックアクセスを許可" name="externally_visible_check"/> <button label="?" name="externally_visible_help"/> <check_box label="直接テレポートを許可" name="allow_direct_teleport"/> <button label="?" name="allow_direct_teleport_help"/> diff --git a/indra/newview/skins/default/xui/ja/panel_region_general.xml b/indra/newview/skins/default/xui/ja/panel_region_general.xml index e3d2d2163c..168141ee77 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_general.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_general.xml @@ -28,9 +28,9 @@ <button label="?" name="restrict_pushobject_help"/> <check_box label="土地の再販を許可" name="allow_land_resell_check"/> <button label="?" name="land_resell_help"/> - <check_box label="土地の統合/分割を許可" name="allow_parcel_changes_check"/> + <check_box label="土地の統合・分割を許可" name="allow_parcel_changes_check"/> <button label="?" name="parcel_changes_help"/> - <check_box label="土地の検索表示をブロック" name="block_parcel_search_check" tool_tip="検索結果で、この地域と区画を人に見せる"/> + <check_box label="土地の検索表示をブロック" name="block_parcel_search_check" tool_tip="検索結果で、この地域と区画を表示するかどうかの設定です"/> <button label="?" name="parcel_search_help"/> <spinner label="アバター数上限" name="agent_limit_spin"/> <button label="?" name="agent_limit_help"/> @@ -40,14 +40,14 @@ 区分: </text> <combo_box label="控えめ" name="access_combo"> - <combo_box.item label="Adult" name="Adult"/> + <combo_box.item label="アダルト" name="Adult"/> <combo_box.item label="控えめ" name="Mature"/> <combo_box.item label="一般" name="PG"/> </combo_box> <button label="?" name="access_help"/> <button label="適用" name="apply_btn"/> - <button label="ユーザー1人ホームテレポート" name="kick_btn"/> - <button label="ユーザー全員ホームテレポート" name="kick_all_btn"/> - <button label="メッセージを地域へ送信..." name="im_btn"/> + <button label="ユーザー1名をホームにテレポート" name="kick_btn"/> + <button label="ユーザー全員をホームにテレポート" name="kick_all_btn"/> + <button label="メッセージを地域に送信..." name="im_btn"/> <button label="テレハブの管理..." name="manage_telehub_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_region_general_layout.xml b/indra/newview/skins/default/xui/ja/panel_region_general_layout.xml index f58a26a7d0..df7e5d9129 100644 --- a/indra/newview/skins/default/xui/ja/panel_region_general_layout.xml +++ b/indra/newview/skins/default/xui/ja/panel_region_general_layout.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="リージョン(地域)" name="General"> <text name="region_text_lbl"> - リージョン: + 地域: </text> <text name="region_text" left_delta="70"> 不明 @@ -24,9 +24,9 @@ <check_box label="プッシュを制限" name="restrict_pushobject"/> <check_box label="土地の再販を許可" name="allow_land_resell_check"/> <check_box label="土地の統合・分割を許可" name="allow_parcel_changes_check"/> - <check_box label="土地の検索教示をブロック" name="block_parcel_search_check" tool_tip="このリージョンとリージョン内の区画を検索結果に表示する"/> + <check_box label="土地の検索表示をブロック" name="block_parcel_search_check" tool_tip="検索結果で、この地域と区画を表示するかどうかの設定です"/> <spinner label="アバター数上限" name="agent_limit_spin" label_width="110" width="190"/> - <spinner label="オブジェクトボーナス" name="object_bonus_spin" label_width="110" width="190"/> + <spinner label="物体ボーナス" name="object_bonus_spin" label_width="110" width="190"/> <text label="レーティング区分" name="access_text"> レーティング区分: </text> @@ -38,6 +38,6 @@ <button label="適用" name="apply_btn"/> <button label="ユーザー1名をホームにテレポート..." name="kick_btn"/> <button label="ユーザー全員をホームにテレポート..." name="kick_all_btn"/> - <button label="リージョンにメッセージを送信..." name="im_btn"/> + <button label="メッセージを地域に送信..." name="im_btn"/> <button label="テレハブの管理..." name="manage_telehub_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/ja/panel_status_bar.xml b/indra/newview/skins/default/xui/ja/panel_status_bar.xml index 063e584762..8d375aa6cd 100644 --- a/indra/newview/skins/default/xui/ja/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/ja/panel_status_bar.xml @@ -21,7 +21,7 @@ <panel.string name="buycurrencylabel"> L$ [AMT] </panel.string> - <button label="" label_selected="" name="buycurrency" tool_tip="私の残高"/> + <button label="" label_selected="" name="buycurrency" tool_tip="所持金"/> <button label="L$ の購入" name="buyL" tool_tip="クリックして L$ を購入します"/> <text name="TimeText" tool_tip="現在時刻(太平洋)"> 12:00 AM diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml index 288ad4bc1d..de628943ad 100644 --- a/indra/newview/skins/default/xui/ja/strings.xml +++ b/indra/newview/skins/default/xui/ja/strings.xml @@ -339,7 +339,7 @@ リンク </string> <string name="AvatarEditingAppearance"> - (容姿の編集) + (容姿の編集中) </string> <string name="AvatarAway"> 一時退席中 @@ -588,7 +588,7 @@ 接続しました </string> <string name="unavailable"> - あなたの現在のロケーションでは、ボイスを利用できません。 + 現在地では、ボイスを利用できません。 </string> <string name="hang_up"> インワールドボイスチャットの通話が切断されました @@ -642,7 +642,7 @@ 控えめ </string> <string name="SIM_ACCESS_ADULT"> - Adult + アダルト </string> <string name="SIM_ACCESS_DOWN"> オフライン @@ -786,7 +786,7 @@ 添付アイテムを保存 </string> <string name="TeleportOffer"> - テレポートを渡す + テレポートを送る </string> <string name="StartUpNotifications"> 不在中に新しい通知が届きました。 @@ -833,7 +833,7 @@ <string name="InventoryNoTexture"> 持ち物内にこのテクスチャのコピーがありません </string> - <string name="no_transfer" value=" (再販/プレゼント不可)"/> + <string name="no_transfer" value=" (再販・プレゼント不可)"/> <string name="no_modify" value=" (編集不可)"/> <string name="no_copy" value=" (コピー不可)"/> <string name="worn" value=" (着用中)"/> @@ -874,7 +874,7 @@ <string name="No Filters" value="いいえ "/> <string name="Since Logoff" value=" - ログオフ以来"/> <string name="InvFolder My Inventory"> - マイ 持ち物 + 持ち物 </string> <string name="InvFolder My Favorites"> お気に入り @@ -1706,7 +1706,7 @@ Linden 所在地 </string> <string name="Adult"> - Adult + アダルト </string> <string name="Arts&Culture"> アートとカルチャー @@ -3190,7 +3190,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ 現在地の詳細を見る </string> <string name="LocationCtrlComboBtnTooltip"> - マイロケーション履歴 + マイ ロケーション履歴 </string> <string name="LocationCtrlForSaleTooltip"> この土地を購入 @@ -3247,7 +3247,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ -- インスタントメッセージの保存開始 -- </string> <string name="IM_typing_start_string"> - [NAME] は入力中... + [NAME] は入力中です... </string> <string name="Unnamed"> (名前なし) |