Skip to content

Commit fe15930

Browse files
authored
Added tooltips to asset properties (#589)
1 parent 8c866bb commit fe15930

File tree

1 file changed

+81
-80
lines changed

1 file changed

+81
-80
lines changed

Sources/Overload/OvEditor/src/OvEditor/Panels/AssetProperties.cpp

Lines changed: 81 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -33,64 +33,64 @@ OvEditor::Panels::AssetProperties::AssetProperties
3333
) :
3434
PanelWindow(p_title, p_opened, p_windowSettings)
3535
{
36-
m_targetChanged += [this]() { SetTarget(m_assetSelector->content); };
36+
m_targetChanged += [this]() { SetTarget(m_assetSelector->content); };
3737

3838
CreateHeaderButtons();
3939

40-
m_headerSeparator = &CreateWidget<OvUI::Widgets::Visual::Separator>();
41-
m_headerSeparator->enabled = false;
40+
m_headerSeparator = &CreateWidget<OvUI::Widgets::Visual::Separator>();
41+
m_headerSeparator->enabled = false;
4242

43-
CreateAssetSelector();
43+
CreateAssetSelector();
4444

45-
m_settings = &CreateWidget<OvUI::Widgets::Layout::GroupCollapsable>("Settings");
45+
m_settings = &CreateWidget<OvUI::Widgets::Layout::GroupCollapsable>("Settings");
4646
m_settingsColumns = &m_settings->CreateWidget<OvUI::Widgets::Layout::Columns<2>>();
4747
m_settingsColumns->widths[0] = 150;
4848

49-
m_info = &CreateWidget<OvUI::Widgets::Layout::GroupCollapsable>("Info");
50-
m_infoColumns = &m_info->CreateWidget<OvUI::Widgets::Layout::Columns<2>>();
51-
m_infoColumns->widths[0] = 150;
49+
m_info = &CreateWidget<OvUI::Widgets::Layout::GroupCollapsable>("Info");
50+
m_infoColumns = &m_info->CreateWidget<OvUI::Widgets::Layout::Columns<2>>();
51+
m_infoColumns->widths[0] = 150;
5252

53-
m_settings->enabled = m_info->enabled = false;
53+
m_settings->enabled = m_info->enabled = false;
5454
}
5555

5656
void OvEditor::Panels::AssetProperties::SetTarget(const std::string& p_path)
5757
{
5858
m_resource = p_path == "" ? p_path : EDITOR_EXEC(GetResourcePath(p_path));
5959

60-
if (m_assetSelector)
61-
{
62-
m_assetSelector->content = m_resource;
63-
}
60+
if (m_assetSelector)
61+
{
62+
m_assetSelector->content = m_resource;
63+
}
6464

65-
Refresh();
65+
Refresh();
6666
}
6767

6868
void OvEditor::Panels::AssetProperties::Refresh()
6969
{
70-
m_metadata.reset(new OvTools::Filesystem::IniFile(EDITOR_EXEC(GetRealPath(m_resource)) + ".meta"));
71-
72-
CreateSettings();
73-
CreateInfo();
74-
75-
m_applyButton->enabled = m_settings->enabled;
76-
m_resetButton->enabled = m_settings->enabled;
77-
m_revertButton->enabled = m_settings->enabled;
78-
79-
switch (OvTools::Utils::PathParser::GetFileType(m_resource))
80-
{
81-
case OvTools::Utils::PathParser::EFileType::MODEL:
82-
case OvTools::Utils::PathParser::EFileType::TEXTURE:
83-
case OvTools::Utils::PathParser::EFileType::MATERIAL:
84-
m_previewButton->enabled = true;
85-
break;
86-
default:
87-
m_previewButton->enabled = false;
88-
break;
89-
}
90-
91-
// Enables the header separator (And the line break) if at least one button is enabled
92-
m_headerSeparator->enabled = m_applyButton->enabled || m_resetButton->enabled || m_revertButton->enabled || m_previewButton->enabled;
93-
m_headerLineBreak->enabled = m_headerSeparator->enabled;
70+
m_metadata.reset(new OvTools::Filesystem::IniFile(EDITOR_EXEC(GetRealPath(m_resource)) + ".meta"));
71+
72+
CreateSettings();
73+
CreateInfo();
74+
75+
m_applyButton->enabled = m_settings->enabled;
76+
m_resetButton->enabled = m_settings->enabled;
77+
m_revertButton->enabled = m_settings->enabled;
78+
79+
switch (OvTools::Utils::PathParser::GetFileType(m_resource))
80+
{
81+
case OvTools::Utils::PathParser::EFileType::MODEL:
82+
case OvTools::Utils::PathParser::EFileType::TEXTURE:
83+
case OvTools::Utils::PathParser::EFileType::MATERIAL:
84+
m_previewButton->enabled = true;
85+
break;
86+
default:
87+
m_previewButton->enabled = false;
88+
break;
89+
}
90+
91+
// Enables the header separator (And the line break) if at least one button is enabled
92+
m_headerSeparator->enabled = m_applyButton->enabled || m_resetButton->enabled || m_revertButton->enabled || m_previewButton->enabled;
93+
m_headerLineBreak->enabled = m_headerSeparator->enabled;
9494
}
9595

9696
void OvEditor::Panels::AssetProperties::Preview()
@@ -120,42 +120,43 @@ void OvEditor::Panels::AssetProperties::Preview()
120120
void OvEditor::Panels::AssetProperties::CreateHeaderButtons()
121121
{
122122
m_applyButton = &CreateWidget<OvUI::Widgets::Buttons::Button>("Apply");
123-
m_applyButton->idleBackgroundColor = { 0.0f, 0.5f, 0.0f };
124-
m_applyButton->enabled = false;
125-
m_applyButton->lineBreak = false;
126-
m_applyButton->ClickedEvent += std::bind(&AssetProperties::Apply, this);
123+
m_applyButton->idleBackgroundColor = { 0.0f, 0.5f, 0.0f };
124+
m_applyButton->tooltip = "Save changes and reimport the asset with the new settings";
125+
m_applyButton->enabled = false;
126+
m_applyButton->lineBreak = false;
127+
m_applyButton->ClickedEvent += std::bind(&AssetProperties::Apply, this);
127128

128129
m_revertButton = &CreateWidget<OvUI::Widgets::Buttons::Button>("Revert");
129-
m_revertButton->idleBackgroundColor = { 0.7f, 0.5f, 0.0f };
130-
m_revertButton->enabled = false;
131-
m_revertButton->lineBreak = false;
132-
m_revertButton->ClickedEvent += std::bind(&AssetProperties::SetTarget, this, m_resource);
130+
m_revertButton->tooltip = "Reload the last saved settings from the asset property file";
131+
m_revertButton->enabled = false;
132+
m_revertButton->lineBreak = false;
133+
m_revertButton->ClickedEvent += [this] { SetTarget(m_resource); };
133134

134135
m_previewButton = &CreateWidget<OvUI::Widgets::Buttons::Button>("Preview");
135-
m_previewButton->idleBackgroundColor = { 0.7f, 0.5f, 0.0f };
136-
m_previewButton->enabled = false;
136+
m_previewButton->tooltip = "Preview the asset in the Asset View";
137+
m_previewButton->enabled = false;
137138
m_previewButton->lineBreak = false;
138139
m_previewButton->ClickedEvent += std::bind(&AssetProperties::Preview, this);
139140

140-
m_resetButton = &CreateWidget<OvUI::Widgets::Buttons::Button>("Reset to default");
141+
m_resetButton = &CreateWidget<OvUI::Widgets::Buttons::Button>("Reset");
142+
m_resetButton->tooltip = "Reset all settings to default values";
141143
m_resetButton->idleBackgroundColor = { 0.5f, 0.0f, 0.0f };
142-
m_resetButton->enabled = false;
143-
m_resetButton->lineBreak = false;
144-
m_resetButton->ClickedEvent += [this]
145-
{
144+
m_resetButton->enabled = false;
145+
m_resetButton->lineBreak = false;
146+
m_resetButton->ClickedEvent += [this] {
146147
m_metadata->RemoveAll();
147148
CreateSettings();
148149
};
149150

150-
m_headerLineBreak = &CreateWidget<OvUI::Widgets::Layout::NewLine>();
151-
m_headerLineBreak->enabled = false;
151+
m_headerLineBreak = &CreateWidget<OvUI::Widgets::Layout::NewLine>();
152+
m_headerLineBreak->enabled = false;
152153
}
153154

154155
void OvEditor::Panels::AssetProperties::CreateAssetSelector()
155156
{
156-
auto& columns = CreateWidget<OvUI::Widgets::Layout::Columns<2>>();
157-
columns.widths[0] = 150;
158-
m_assetSelector = &OvCore::Helpers::GUIDrawer::DrawAsset(columns, "Target", m_resource, &m_targetChanged);
157+
auto& columns = CreateWidget<OvUI::Widgets::Layout::Columns<2>>();
158+
columns.widths[0] = 150;
159+
m_assetSelector = &OvCore::Helpers::GUIDrawer::DrawAsset(columns, "Target", m_resource, &m_targetChanged);
159160
}
160161

161162
void OvEditor::Panels::AssetProperties::CreateSettings()
@@ -164,7 +165,7 @@ void OvEditor::Panels::AssetProperties::CreateSettings()
164165

165166
const auto fileType = OvTools::Utils::PathParser::GetFileType(m_resource);
166167

167-
m_settings->enabled = true;
168+
m_settings->enabled = true;
168169

169170
if (fileType == OvTools::Utils::PathParser::EFileType::MODEL)
170171
{
@@ -174,36 +175,36 @@ void OvEditor::Panels::AssetProperties::CreateSettings()
174175
{
175176
CreateTextureSettings();
176177
}
177-
else
178-
{
179-
m_settings->enabled = false;
180-
}
178+
else
179+
{
180+
m_settings->enabled = false;
181+
}
181182
}
182183

183184
void OvEditor::Panels::AssetProperties::CreateInfo()
184185
{
185-
const auto realPath = EDITOR_EXEC(GetRealPath(m_resource));
186+
const auto realPath = EDITOR_EXEC(GetRealPath(m_resource));
186187

187-
m_infoColumns->RemoveAllWidgets();
188+
m_infoColumns->RemoveAllWidgets();
188189

189-
if (std::filesystem::exists(realPath))
190-
{
191-
m_info->enabled = true;
190+
if (std::filesystem::exists(realPath))
191+
{
192+
m_info->enabled = true;
192193

193-
OvCore::Helpers::GUIDrawer::CreateTitle(*m_infoColumns, "Path");
194-
m_infoColumns->CreateWidget<OvUI::Widgets::Texts::Text>(realPath);
194+
OvCore::Helpers::GUIDrawer::CreateTitle(*m_infoColumns, "Path");
195+
m_infoColumns->CreateWidget<OvUI::Widgets::Texts::Text>(realPath);
195196

196-
OvCore::Helpers::GUIDrawer::CreateTitle(*m_infoColumns, "Size");
197-
const auto [size, unit] = OvTools::Utils::SizeConverter::ConvertToOptimalUnit(static_cast<float>(std::filesystem::file_size(realPath)), OvTools::Utils::SizeConverter::ESizeUnit::BYTE);
198-
m_infoColumns->CreateWidget<OvUI::Widgets::Texts::Text>(std::to_string(size) + " " + OvTools::Utils::SizeConverter::UnitToString(unit));
197+
OvCore::Helpers::GUIDrawer::CreateTitle(*m_infoColumns, "Size");
198+
const auto [size, unit] = OvTools::Utils::SizeConverter::ConvertToOptimalUnit(static_cast<float>(std::filesystem::file_size(realPath)), OvTools::Utils::SizeConverter::ESizeUnit::BYTE);
199+
m_infoColumns->CreateWidget<OvUI::Widgets::Texts::Text>(std::to_string(size) + " " + OvTools::Utils::SizeConverter::UnitToString(unit));
199200

200-
OvCore::Helpers::GUIDrawer::CreateTitle(*m_infoColumns, "Metadata");
201-
m_infoColumns->CreateWidget<OvUI::Widgets::Texts::Text>(std::filesystem::exists(realPath + ".meta") ? "Yes" : "No");
202-
}
203-
else
204-
{
205-
m_info->enabled = false;
206-
}
201+
OvCore::Helpers::GUIDrawer::CreateTitle(*m_infoColumns, "Metadata");
202+
m_infoColumns->CreateWidget<OvUI::Widgets::Texts::Text>(std::filesystem::exists(realPath + ".meta") ? "Yes" : "No");
203+
}
204+
else
205+
{
206+
m_info->enabled = false;
207+
}
207208
}
208209

209210
#define MODEL_FLAG_ENTRY(setting) OvCore::Helpers::GUIDrawer::DrawBoolean(*m_settingsColumns, setting, [&]() { return m_metadata->Get<bool>(setting); }, [&](bool value) { m_metadata->Set<bool>(setting, value); })

0 commit comments

Comments
 (0)