mirror of
https://github.com/godotengine/godot.git
synced 2024-11-21 03:18:37 +08:00
Merge pull request #88761 from eugene87222/fix-asset-lib-layout
Fix broken layout of asset library page
This commit is contained in:
commit
2c65bf0d69
@ -55,7 +55,9 @@ static inline void setup_http_request(HTTPRequest *request) {
|
||||
}
|
||||
|
||||
void EditorAssetLibraryItem::configure(const String &p_title, int p_asset_id, const String &p_category, int p_category_id, const String &p_author, int p_author_id, const String &p_cost) {
|
||||
title->set_text(p_title);
|
||||
title_text = p_title;
|
||||
title->set_text(title_text);
|
||||
title->set_tooltip_text(title_text);
|
||||
asset_id = p_asset_id;
|
||||
category->set_text(p_category);
|
||||
category_id = p_category_id;
|
||||
@ -66,16 +68,15 @@ void EditorAssetLibraryItem::configure(const String &p_title, int p_asset_id, co
|
||||
|
||||
// TODO: Refactor this method to use the TextServer.
|
||||
void EditorAssetLibraryItem::clamp_width(int p_max_width) {
|
||||
int text_pixel_width = title->get_button_font().ptr()->get_string_size(title->get_text()).x * EDSCALE;
|
||||
|
||||
String full_text = title->get_text();
|
||||
title->set_tooltip_text(full_text);
|
||||
int text_pixel_width = title->get_button_font()->get_string_size(title_text).x * EDSCALE;
|
||||
|
||||
if (text_pixel_width > p_max_width) {
|
||||
// Truncate title text to within the current column width.
|
||||
int max_length = p_max_width / (text_pixel_width / full_text.length());
|
||||
String truncated_text = full_text.left(max_length - 3) + "...";
|
||||
int max_length = p_max_width / (text_pixel_width / title_text.length());
|
||||
String truncated_text = title_text.left(max_length - 3) + "...";
|
||||
title->set_text(truncated_text);
|
||||
} else {
|
||||
title->set_text(title_text);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1525,7 +1526,15 @@ void EditorAssetLibrary::_update_asset_items_columns() {
|
||||
asset_items->set_columns(new_columns);
|
||||
}
|
||||
|
||||
asset_items_column_width = (get_size().x / new_columns) - (100 * EDSCALE);
|
||||
asset_items_column_width = (get_size().x / new_columns) - (120 * EDSCALE);
|
||||
|
||||
for (int i = 0; i < asset_items->get_child_count(); i++) {
|
||||
EditorAssetLibraryItem *item = Object::cast_to<EditorAssetLibraryItem>(asset_items->get_child(i));
|
||||
if (!item || !item->is_visible()) {
|
||||
continue;
|
||||
}
|
||||
item->clamp_width(asset_items_column_width);
|
||||
}
|
||||
}
|
||||
|
||||
void EditorAssetLibrary::_set_library_message(const String &p_message) {
|
||||
|
@ -62,6 +62,7 @@ class EditorAssetLibraryItem : public PanelContainer {
|
||||
LinkButton *author = nullptr;
|
||||
Label *price = nullptr;
|
||||
|
||||
String title_text;
|
||||
int asset_id = 0;
|
||||
int category_id = 0;
|
||||
int author_id = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user