EXT-904 Build tools does not show tooltips on any checkbox

EXT-877 	There is no tooltip with a date for Time indicator in Nav bar
EXT-860 	Crosshairs and "Press ESC to..." warning are dislocated in mouselook mode when UI Size is not exactly set to 1.00 (Menu Me -> Preferences-> Graphics)
EXT-783 	Script editor inserts text twice when using the editors paste, or choosing LSL elements from the pull-down list.
EXT-764 	mis-location of cursor in edit script panel (fixed cursor width)
EXT-658 	Inventory window's "Fetched Items" needs spacing

reviewed by James
master
Richard Nelson 2009-09-23 22:25:18 +00:00
parent 8a9204596a
commit afcdda2e36
12 changed files with 101 additions and 83 deletions

View File

@ -420,8 +420,9 @@ BOOL LLTextBase::handleToolTipForUrl(LLView *view, S32 x, S32 y, std::string& ms
LLToolTipMgr::instance().show(LLToolTipParams()
.message(tooltip_msg)
.sticky_rect(sticky_rect_screen));
return TRUE;
}
return TRUE;
return FALSE;
}
LLContextMenu *LLTextBase::createUrlContextMenu(const std::string &in_url)

View File

@ -161,7 +161,12 @@ BOOL LLTextBox::handleHover(S32 x, S32 y, MASK mask)
BOOL LLTextBox::handleToolTip(S32 x, S32 y, std::string& msg, LLRect& sticky_rect_screen)
{
return handleToolTipForUrl(this, x, y, msg, sticky_rect_screen);
if (handleToolTipForUrl(this, x, y, msg, sticky_rect_screen))
{
return TRUE;
}
return LLUICtrl::handleToolTip(x, y, msg, sticky_rect_screen);
}
void LLTextBox::setText(const LLStringExplicit& text)

View File

@ -1120,21 +1120,12 @@ void LLTextEditor::updateCursorXPos()
}
// constraint cursor to editable segments of document
// NOTE: index must be within document range
S32 LLTextEditor::getEditableIndex(S32 index, bool increasing_direction)
{
//// always allow editable position at end of doc
//if (index == getLength())
//{
// return index;
//}
segment_set_t::iterator segment_iter;
S32 offset;
getSegmentAndOffset(index, &segment_iter, &offset);
if (segment_iter == mSegments.end())
{
return 0;
}
LLTextSegmentPtr segmentp = *segment_iter;
@ -3194,7 +3185,11 @@ void LLTextEditor::draw()
drawLineNumbers();
{
LLLocalClipRect clip(mTextRect);
// pad clipping rectangle so that cursor can draw at full width
// when at left edge of mTextRect
LLRect clip_rect(mTextRect);
clip_rect.stretch(1);
LLLocalClipRect clip(clip_rect);
drawSelectionBackground();
drawPreeditMarker();
drawText();

View File

@ -675,9 +675,13 @@ LLView* LLView::childrenHandleToolTip(S32 x, S32 y, std::string& msg, LLRect& st
LLView* viewp = *child_it;
S32 local_x = x - viewp->getRect().mLeft;
S32 local_y = y - viewp->getRect().mBottom;
if(viewp->pointInView(local_x, local_y) &&
viewp->getVisible() &&
viewp->handleToolTip(local_x, local_y, msg, sticky_rect_screen) )
if(!viewp->pointInView(local_x, local_y) ||
!viewp->getVisible())
{
continue;
}
if(viewp->handleToolTip(local_x, local_y, msg, sticky_rect_screen) )
{
if (sDebugMouseHandling)
{
@ -687,17 +691,22 @@ LLView* LLView::childrenHandleToolTip(S32 x, S32 y, std::string& msg, LLRect& st
handled_view = viewp;
break;
}
if( viewp->blockMouseEvent(x, y) )
{
handled_view = viewp;
}
}
return handled_view;
}
BOOL LLView::handleToolTip(S32 x, S32 y, std::string& msg, LLRect& sticky_rect_screen)
{
LLView* child_handler = childrenHandleToolTip(x, y, msg, sticky_rect_screen);
BOOL handled = child_handler != NULL;
BOOL handled = FALSE;
// child widgets get priority on tooltips
if (!handled && !mToolTipMsg.empty())
// parents provide tooltips first, which are optionally
// overridden by children
if (!mToolTipMsg.empty())
{
// allow "scrubbing" over ui by showing next tooltip immediately
// if previous one was still visible
@ -712,7 +721,9 @@ BOOL LLView::handleToolTip(S32 x, S32 y, std::string& msg, LLRect& sticky_rect_s
handled = TRUE;
}
if( blockMouseEvent(x, y) )
// child tooltips will override our own
LLView* child_handler = childrenHandleToolTip(x, y, msg, sticky_rect_screen);
if (child_handler)
{
handled = TRUE;
}

View File

@ -569,16 +569,7 @@ void LLFloaterInventory::draw()
{
if (LLInventoryModel::isEverythingFetched())
{
LLLocale locale(LLLocale::USER_LOCALE);
std::ostringstream title;
//title << "Inventory";
title<<getString("Title");
std::string item_count_string;
LLResMgr::getInstance()->getIntegerString(item_count_string, gInventory.getItemCount());
title << " (" << item_count_string << getString("Items")<<")";
//TODO:: Translate mFilterText
title << mFilterText;
setTitle(title.str());
updateTitle();
}
LLFloater::draw();
}
@ -690,22 +681,30 @@ BOOL LLFloaterInventory::handleKeyHere(KEY key, MASK mask)
}
void LLFloaterInventory::changed(U32 mask)
void LLFloaterInventory::updateTitle()
{
std::ostringstream title;
//title << "Inventory";
title<<getString("Title");
LLLocale locale(LLLocale::USER_LOCALE);
std::string item_count_string;
LLResMgr::getInstance()->getIntegerString(item_count_string, gInventory.getItemCount());
LLStringUtil::format_map_t string_args;
string_args["[ITEM_COUNT]"] = item_count_string;
string_args["[FILTER]"] = mFilterText;
if (LLInventoryModel::backgroundFetchActive())
{
LLLocale locale(LLLocale::USER_LOCALE);
std::string item_count_string;
LLResMgr::getInstance()->getIntegerString(item_count_string, gInventory.getItemCount());
title << " ( "<< getString("Fetched") << item_count_string << getString("Items")<<")";
setTitle(getString("TitleFetching", string_args));
}
//TODO:: Translate mFilterText
title << mFilterText;
setTitle(title.str());
else
{
setTitle(getString("TitleCompleted", string_args));
}
}
void LLFloaterInventory::changed(U32 mask)
{
updateTitle();
}
//----------------------------------------------------------------------------

View File

@ -291,6 +291,9 @@ protected:
LLSaveFolderState* mSavedFolderState;
std::string mFilterText;
private:
void updateTitle();
};
class LLSelectFirstFilteredItem : public LLFolderViewFunctor

View File

@ -289,8 +289,37 @@ LLScriptEdCore::LLScriptEdCore(
setFollowsAll();
setBorderVisible(FALSE);
LLUICtrlFactory::getInstance()->buildPanel(this, "panel_script_ed.xml");
setXMLFilename("panel_script_ed.xml");
}
LLScriptEdCore::~LLScriptEdCore()
{
deleteBridges();
// If the search window is up for this editor, close it.
LLFloaterScriptSearch* script_search = LLFloaterScriptSearch::getInstance();
if (script_search && script_search->getEditorCore() == this)
{
script_search->closeFloater();
delete script_search;
}
}
BOOL LLScriptEdCore::postBuild()
{
mErrorList = getChild<LLScrollListCtrl>("lsl errors");
mFunctions = getChild<LLComboBox>( "Insert...");
childSetCommitCallback("Insert...", &LLScriptEdCore::onBtnInsertFunction, this);
mEditor = getChild<LLViewerTextEditor>("Script Editor");
childSetCommitCallback("lsl errors", &LLScriptEdCore::onErrorList, this);
childSetAction("Save_btn", boost::bind(&LLScriptEdCore::doSave,this,FALSE));
initMenu();
std::vector<std::string> funcs;
std::vector<std::string> tooltips;
@ -360,36 +389,7 @@ LLScriptEdCore::LLScriptEdCore(
{
mFunctions->add(*iter);
}
}
LLScriptEdCore::~LLScriptEdCore()
{
deleteBridges();
// If the search window is up for this editor, close it.
LLFloaterScriptSearch* script_search = LLFloaterScriptSearch::getInstance();
if (script_search && script_search->getEditorCore() == this)
{
script_search->closeFloater();
delete script_search;
}
}
BOOL LLScriptEdCore::postBuild()
{
mErrorList = getChild<LLScrollListCtrl>("lsl errors");
mFunctions = getChild<LLComboBox>( "Insert...");
childSetCommitCallback("Insert...", &LLScriptEdCore::onBtnInsertFunction, this);
mEditor = getChild<LLViewerTextEditor>("Script Editor");
childSetCommitCallback("lsl errors", &LLScriptEdCore::onErrorList, this);
childSetAction("Save_btn", boost::bind(&LLScriptEdCore::doSave,this,FALSE));
initMenu();
return TRUE;
}

View File

@ -140,7 +140,7 @@ void LLToolGun::draw()
{
LLUIImagePtr crosshair = LLUI::getUIImage("crosshairs.tga");
crosshair->draw(
( gViewerWindow->getWorldViewWidth() - crosshair->getWidth() ) / 2,
( gViewerWindow->getWorldViewHeight() - crosshair->getHeight() ) / 2);
( gViewerWindow->getVirtualWorldViewRect().getWidth() - crosshair->getWidth() ) / 2,
( gViewerWindow->getVirtualWorldViewRect().getHeight() - crosshair->getHeight() ) / 2);
}
}

View File

@ -7966,7 +7966,7 @@ void initialize_menus()
view_listener_t::addMenu(new LLAdvancedForceErrorInfiniteLoop(), "Advanced.ForceErrorInfiniteLoop");
view_listener_t::addMenu(new LLAdvancedForceErrorSoftwareException(), "Advanced.ForceErrorSoftwareException");
view_listener_t::addMenu(new LLAdvancedForceErrorDriverCrash(), "Advanced.ForceErrorDriverCrash");
view_listener_t::addMenu(new LLAdvancedForceErrorDriverCrash(), "Advanced.ForceErrorDisconnectViewer");
view_listener_t::addMenu(new LLAdvancedForceErrorDisconnectViewer(), "Advanced.ForceErrorDisconnectViewer");
// Advanced (toplevel)
view_listener_t::addMenu(new LLAdvancedToggleShowObjectUpdates(), "Advanced.ToggleShowObjectUpdates");

View File

@ -4122,8 +4122,8 @@ void LLViewerWindow::drawMouselookInstructions()
font->renderUTF8(
instructions, 0,
mWorldViewRect.getCenterX(),
mWorldViewRect.mBottom + INSTRUCTIONS_PAD,
getVirtualWorldViewRect().getCenterX(),
getVirtualWorldViewRect().mBottom + INSTRUCTIONS_PAD,
LLColor4( 0.0f, 0.0f, 0.0f, 0.6f ),
LLFontGL::HCENTER, LLFontGL::TOP);
}

View File

@ -18,8 +18,12 @@
Inventory
</floater.string>
<floater.string
name="Items">
Items...
name="TitleFetching">
Inventory (Fetching [ITEM_COUNT] Items...) [FILTER]
</floater.string>
<floater.string
name="TitleCompleted">
Inventory ([ITEM_COUNT] Items) [FILTER]
</floater.string>
<floater.string
name="Fetched">

View File

@ -4,7 +4,7 @@
border_style="line"
can_resize="true"
follows="left|top"
height="550"
height="570"
layout="topleft"
min_height="271"
min_width="290"
@ -31,9 +31,9 @@
label="Reset"
label_selected="Reset"
layout="topleft"
left="362"
left="358"
name="Reset"
top="525"
top="545"
width="128" />
<check_box
enabled="false"