SL-10828 [Dev tools] Fix Fast Timers' visibility
parent
5966831b0c
commit
d329f6a9b8
|
|
@ -43,6 +43,7 @@
|
|||
#include "llsdserialize.h"
|
||||
#include "lltooltip.h"
|
||||
#include "llbutton.h"
|
||||
#include "llscrollbar.h"
|
||||
|
||||
#include "llappviewer.h"
|
||||
#include "llviewertexturelist.h"
|
||||
|
|
@ -128,7 +129,8 @@ void LLFastTimerView::setPauseState(bool pause_state)
|
|||
BOOL LLFastTimerView::postBuild()
|
||||
{
|
||||
LLButton& pause_btn = getChildRef<LLButton>("pause_btn");
|
||||
|
||||
mScrollBar = getChild<LLScrollbar>("scroll_vert");
|
||||
|
||||
pause_btn.setCommitCallback(boost::bind(&LLFastTimerView::onPause, this));
|
||||
return TRUE;
|
||||
}
|
||||
|
|
@ -183,7 +185,7 @@ BOOL LLFastTimerView::handleDoubleClick(S32 x, S32 y, MASK mask)
|
|||
|
||||
BOOL LLFastTimerView::handleMouseDown(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
if (x < mBarRect.mLeft)
|
||||
if (x < mScrollBar->getRect().mLeft)
|
||||
{
|
||||
BlockTimerStatHandle* idp = getLegendID(y);
|
||||
if (idp)
|
||||
|
|
@ -284,7 +286,7 @@ BOOL LLFastTimerView::handleHover(S32 x, S32 y, MASK mask)
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (x < mBarRect.mLeft)
|
||||
else if (x < mScrollBar->getRect().mLeft)
|
||||
{
|
||||
BlockTimerStatHandle* timer_id = getLegendID(y);
|
||||
if (timer_id)
|
||||
|
|
@ -335,7 +337,7 @@ BOOL LLFastTimerView::handleToolTip(S32 x, S32 y, MASK mask)
|
|||
else
|
||||
{
|
||||
// tooltips for timer legend
|
||||
if (x < mBarRect.mLeft)
|
||||
if (x < mScrollBar->getRect().mLeft)
|
||||
{
|
||||
BlockTimerStatHandle* idp = getLegendID(y);
|
||||
if (idp)
|
||||
|
|
@ -1197,6 +1199,7 @@ void LLFastTimerView::drawLegend()
|
|||
{
|
||||
LLLocalClipRect clip(mLegendRect);
|
||||
S32 cur_line = 0;
|
||||
S32 scroll_offset = 0; // element's y offset from top of the inner scroll's rect
|
||||
ft_display_idx.clear();
|
||||
std::map<BlockTimerStatHandle*, S32> display_line;
|
||||
for (block_timer_tree_df_iterator_t it = LLTrace::begin_block_timer_tree_df(FTM_FRAME);
|
||||
|
|
@ -1204,10 +1207,24 @@ void LLFastTimerView::drawLegend()
|
|||
++it)
|
||||
{
|
||||
BlockTimerStatHandle* idp = (*it);
|
||||
// Needed to figure out offsets and parenting
|
||||
display_line[idp] = cur_line;
|
||||
ft_display_idx.push_back(idp);
|
||||
cur_line++;
|
||||
if (scroll_offset < mScrollBar->getDocPos())
|
||||
{
|
||||
// only offset for visible items
|
||||
scroll_offset += TEXT_HEIGHT + 2;
|
||||
if (idp->getTreeNode().mCollapsed)
|
||||
{
|
||||
it.skipDescendants();
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
// used for mouse clicks
|
||||
ft_display_idx.push_back(idp);
|
||||
|
||||
// Actual draw, first bar (square), then text
|
||||
x = MARGIN;
|
||||
|
||||
LLRect bar_rect(x, y, x + TEXT_HEIGHT, y - TEXT_HEIGHT);
|
||||
|
|
@ -1281,11 +1298,14 @@ void LLFastTimerView::drawLegend()
|
|||
|
||||
y -= (TEXT_HEIGHT + 2);
|
||||
|
||||
scroll_offset += TEXT_HEIGHT + 2;
|
||||
if (idp->getTreeNode().mCollapsed)
|
||||
{
|
||||
it.skipDescendants();
|
||||
}
|
||||
}
|
||||
// Recalculate scroll size
|
||||
mScrollBar->setDocSize(scroll_offset - mLegendRect.getHeight());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,6 +33,8 @@
|
|||
#include "lltracerecording.h"
|
||||
#include <deque>
|
||||
|
||||
class LLScrollbar;
|
||||
|
||||
class LLFastTimerView : public LLFloater
|
||||
{
|
||||
public:
|
||||
|
|
@ -142,6 +144,8 @@ private:
|
|||
mLegendRect;
|
||||
LLFrameTimer mHighlightTimer;
|
||||
LLTrace::PeriodicRecording mRecording;
|
||||
|
||||
LLScrollbar* mScrollBar;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -60,10 +60,21 @@
|
|||
min_width="100">
|
||||
<panel top="0"
|
||||
left="0"
|
||||
width="220"
|
||||
width="204"
|
||||
height="440"
|
||||
name="legend"
|
||||
follows="all"/>
|
||||
<scroll_bar
|
||||
top ="0"
|
||||
right="-1"
|
||||
height="440"
|
||||
width="15"
|
||||
follows="top|right|bottom"
|
||||
name="scroll_vert"
|
||||
orientation="vertical"
|
||||
step_size="16"
|
||||
doc_size="3000"
|
||||
/>
|
||||
</layout_panel>
|
||||
<layout_panel name="timers_panel"
|
||||
auto_resize="true"
|
||||
|
|
|
|||
Loading…
Reference in New Issue