Add isolation list to track tooltips

If a track is hovered when debug mode is on, it will now also show the names of isolated circuits the track belongs to, if any.
This commit is contained in:
jakubg1
2025-09-04 03:37:50 +02:00
parent b28ea826c5
commit baadd5f14c
5 changed files with 30 additions and 14 deletions

View File

@@ -2364,6 +2364,19 @@ TTrack::export_as_text_( std::ostream &Output ) const {
<< "\n";
}
// Returns the tooltip of this Track, which may contain a list of isolations if the track belongs to any.
std::string TTrack::tooltip() const
{
std::string tooltip = this->name();
if (!Isolated.empty())
{
tooltip += "\nIsolated:";
for (const auto isolation : Isolated)
tooltip += " " + isolation->asName;
}
return tooltip;
}
// locates specified profile in the profile database, potentially loading it from a file
// returns: pair <profile name, profile handle>
std::pair<std::string, int>

View File

@@ -316,6 +316,7 @@ public:
void ConnectionsLog();
bool DoubleSlip() const;
static void fetch_default_profiles();
std::string tooltip() const override;
private:
// types

View File

@@ -341,12 +341,10 @@ driver_mode::update() {
set_tooltip( ( cabcontrol ? cabcontrol->pName : "" ) );
}
}
if( ( true == Global.ControlPicking ) && ( true == FreeFlyModeFlag ) && ( true == DebugModeFlag ) ) {
auto const scenerynode = GfxRenderer->Pick_Node();
set_tooltip(
( scenerynode ?
scenerynode->name() :
"" ) );
if( Global.ControlPicking && FreeFlyModeFlag && DebugModeFlag ) {
const auto sceneryNode = GfxRenderer->Pick_Node();
const std::string content = sceneryNode ? sceneryNode->tooltip() : "";
set_tooltip(content);
}
runonce = true;

View File

@@ -30,14 +30,10 @@ editor_ui::update() {
set_tooltip( "" );
if( ( true == Global.ControlPicking )
&& ( true == DebugModeFlag ) ) {
auto const scenerynode = GfxRenderer->Pick_Node();
set_tooltip(
( scenerynode ?
scenerynode->name() :
"" ) );
if( Global.ControlPicking && DebugModeFlag ) {
const auto sceneryNode = GfxRenderer->Pick_Node();
const std::string content = sceneryNode ? sceneryNode->tooltip() : "";
set_tooltip(content);
}
ui_layer::update();

View File

@@ -330,6 +330,7 @@ public:
export_as_text( std::string &Output ) const;
std::string const &
name() const;
virtual std::string tooltip() const;
void
location( glm::dvec3 const Location );
glm::dvec3 const &
@@ -379,6 +380,13 @@ basic_node::name() const {
return m_name;
}
// Returns the tooltip of this Node when hovered with the mouse cursor.
inline
std::string basic_node::tooltip() const
{
return m_name;
}
inline
void
basic_node::location( glm::dvec3 const Location ) {