1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-24 19:47:42 +00:00

LibGUI: Only show FilePicker preview pane on demand

FilePicker::set_preview() and FilePicker::clear_preview() now show and
hide the preview pane respectively.
This commit is contained in:
Linus Groh 2020-06-30 09:39:24 +01:00 committed by Andreas Kling
parent 6b61d4656f
commit 5acc457c06
2 changed files with 12 additions and 8 deletions

View file

@ -242,23 +242,24 @@ FilePicker::FilePicker(Mode mode, const StringView& file_name, const StringView&
} }
}; };
auto& preview_container = horizontal_container.add<Frame>(); m_preview_container = horizontal_container.add<Frame>();
preview_container.set_size_policy(SizePolicy::Fixed, SizePolicy::Fill); m_preview_container->set_visible(false);
preview_container.set_preferred_size(180, 0); m_preview_container->set_size_policy(SizePolicy::Fixed, SizePolicy::Fill);
preview_container.set_layout<VerticalBoxLayout>(); m_preview_container->set_preferred_size(180, 0);
preview_container.layout()->set_margins({ 8, 8, 8, 8 }); m_preview_container->set_layout<VerticalBoxLayout>();
m_preview_container->layout()->set_margins({ 8, 8, 8, 8 });
m_preview_image = preview_container.add<Image>(); m_preview_image = m_preview_container->add<Image>();
m_preview_image->set_should_stretch(true); m_preview_image->set_should_stretch(true);
m_preview_image->set_auto_resize(false); m_preview_image->set_auto_resize(false);
m_preview_image->set_preferred_size(160, 160); m_preview_image->set_preferred_size(160, 160);
m_preview_name_label = preview_container.add<Label>(); m_preview_name_label = m_preview_container->add<Label>();
m_preview_name_label->set_font(Gfx::Font::default_bold_font()); m_preview_name_label->set_font(Gfx::Font::default_bold_font());
m_preview_name_label->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed); m_preview_name_label->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
m_preview_name_label->set_preferred_size(0, m_preview_name_label->font().glyph_height()); m_preview_name_label->set_preferred_size(0, m_preview_name_label->font().glyph_height());
m_preview_geometry_label = preview_container.add<Label>(); m_preview_geometry_label = m_preview_container->add<Label>();
m_preview_geometry_label->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed); m_preview_geometry_label->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
m_preview_geometry_label->set_preferred_size(0, m_preview_name_label->font().glyph_height()); m_preview_geometry_label->set_preferred_size(0, m_preview_name_label->font().glyph_height());
} }
@ -280,6 +281,7 @@ void FilePicker::set_preview(const LexicalPath& path)
m_preview_geometry_label->set_text(bitmap->size().to_string()); m_preview_geometry_label->set_text(bitmap->size().to_string());
m_preview_image->set_should_stretch(should_stretch); m_preview_image->set_should_stretch(should_stretch);
m_preview_image->set_bitmap(move(bitmap)); m_preview_image->set_bitmap(move(bitmap));
m_preview_container->set_visible(true);
} }
} }
@ -288,6 +290,7 @@ void FilePicker::clear_preview()
m_preview_image->set_bitmap(nullptr); m_preview_image->set_bitmap(nullptr);
m_preview_name_label->set_text(String::empty()); m_preview_name_label->set_text(String::empty());
m_preview_geometry_label->set_text(String::empty()); m_preview_geometry_label->set_text(String::empty());
m_preview_container->set_visible(false);
} }
void FilePicker::on_file_return() void FilePicker::on_file_return()

View file

@ -74,6 +74,7 @@ private:
LexicalPath m_selected_file; LexicalPath m_selected_file;
RefPtr<TextBox> m_filename_textbox; RefPtr<TextBox> m_filename_textbox;
RefPtr<Frame> m_preview_container;
RefPtr<Image> m_preview_image; RefPtr<Image> m_preview_image;
RefPtr<Label> m_preview_name_label; RefPtr<Label> m_preview_name_label;
RefPtr<Label> m_preview_geometry_label; RefPtr<Label> m_preview_geometry_label;