-
Notifications
You must be signed in to change notification settings - Fork 373
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Limit the size of component tooltips with UiVerbosity::Reduced
#3171
Conversation
Regarding screenshot: why is the tooltip so wide? |
@nikolausWest I rushed that before leaving earlier and didn't even realise 🤦🏻 Anyways, I found the culprit. @emilk requesting a review from you as I'm wondering if there was a reason for that autoshrink not to be set to true in the first place. (I couldn't find one by playing around with the UI.) |
I can't see any. Maybe a copy-paste bug :T |
Co-authored-by: Emil Ernerfeldt <[email protected]>
crates/re_data_ui/src/component.rs
Outdated
let max_row = match verbosity { | ||
UiVerbosity::Small => 0, | ||
UiVerbosity::Reduced => num_instances.at_most(4), // includes "…x more" if any | ||
UiVerbosity::All => num_instances, | ||
}; | ||
|
||
let displayed_row = if num_instances <= max_row { | ||
num_instances | ||
} else { | ||
// this accounts for the "…x more" using a row | ||
max_row - 1 | ||
}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can simplify this a lot:
let max_row = match verbosity { | |
UiVerbosity::Small => 0, | |
UiVerbosity::Reduced => num_instances.at_most(4), // includes "…x more" if any | |
UiVerbosity::All => num_instances, | |
}; | |
let displayed_row = if num_instances <= max_row { | |
num_instances | |
} else { | |
// this accounts for the "…x more" using a row | |
max_row - 1 | |
}; | |
let num_rows_to_show = match verbosity { | |
UiVerbosity::Small => 0, | |
UiVerbosity::Reduced => num_instances.at_most(3), | |
UiVerbosity::All => num_instances, | |
}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My behaviour (4 rows is strictly respected):
3 | 4 | 5 | 6 |
---|---|---|---|
x | x | x | x |
x | x | x | x |
x | x | x | x |
x | …2 more | …3 more |
Your behaviour (4 rows is not respected and the "...1 more" feels weird as you might as well put the corresponding item there):
3 | 4 | 5 | 6 |
---|---|---|---|
x | x | x | x |
x | x | x | x |
x | x | x | x |
x | x | x | |
…1 more | …2 more |
The key difference is the max_row - 1
in my code.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As discussed, I updated the docs.
And luckily I just experienced the panic-inducing case of max_row = 0
(=> max_row - 1
panics) and fixed it.
if num_instances > displayed_row { | ||
ui.label(format!( | ||
"…and {} more.", | ||
re_format::format_large_number((num_instances - displayed_row) as _) | ||
)); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if num_instances > displayed_row { | |
ui.label(format!( | |
"…and {} more.", | |
re_format::format_large_number((num_instances - displayed_row) as _) | |
)); | |
} | |
if num_rows_to_show < num_instances { | |
ui.label(format!( | |
"…and {} more.", | |
re_format::format_large_number((num_instances - num_rows_to_show) as _) | |
)); | |
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!
Size changes
|
What
Limit the size of component tooltips with
UiVerbosity::Reduced
Fixes #3154
Checklist