Skip to content

Commit

Permalink
QuickShow: Add Fullscreen, Zoom options to View menu
Browse files Browse the repository at this point in the history
  • Loading branch information
asliturk authored and awesomekling committed Apr 12, 2020
1 parent d79c81a commit e0bf57d
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 2 deletions.
17 changes: 15 additions & 2 deletions Applications/QuickShow/QSWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,18 @@ void QSWidget::navigate(Directions direction)
this->load_from_file(m_files_in_same_dir.at(index));
}

void QSWidget::set_scale(int scale)
{

if (scale < 10)
scale = 10;
if (scale > 1000)
scale = 1000;

m_scale = scale;
relayout();
}

void QSWidget::relayout()
{
if (m_bitmap.is_null())
Expand Down Expand Up @@ -210,12 +222,13 @@ void QSWidget::load_from_file(const String& path)
return;
}

window()->resize(bitmap->size());

m_path = path;
m_bitmap = bitmap;
m_scale = 100;
m_pan_origin = { 0, 0 };

resize_window();

if (on_scale_change)
on_scale_change(m_scale);
relayout();
Expand Down
2 changes: 2 additions & 0 deletions Applications/QuickShow/QSWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ class QSWidget final : public GUI::Frame {

const Gfx::Bitmap* bitmap() const { return m_bitmap.ptr(); }
const String& path() const { return m_path; }
void set_scale(int);
int scale() { return m_scale; }

void flip(Gfx::Orientation);
void rotate(Gfx::RotationDirection);
Expand Down
27 changes: 27 additions & 0 deletions Applications/QuickShow/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,26 @@ int main(int argc, char** argv)
widget.navigate(QSWidget::Directions::Last);
});

auto full_sceen_action = GUI::CommonActions::make_fullscreen_action(
[&](auto&) {
window->set_fullscreen(!window->is_fullscreen());
});

auto zoom_in_action = GUI::Action::create("Zoom In", { Mod_None, Key_Plus }, Gfx::Bitmap::load_from_file("/res/icons/16x16/zoom-in.png"),
[&](auto&) {
widget.set_scale(widget.scale() + 10);
});

auto zoom_reset_action = GUI::Action::create("Zoom 100%", { Mod_None, Key_0 },
[&](auto&) {
widget.set_scale(100);
});

auto zoom_out_action = GUI::Action::create("Zoom Out", { Mod_None, Key_Minus }, Gfx::Bitmap::load_from_file("/res/icons/16x16/zoom-out.png"),
[&](auto&) {
widget.set_scale(widget.scale() - 10);
});

auto menubar = make<GUI::MenuBar>();

auto& app_menu = menubar->add_menu("QuickShow");
Expand All @@ -169,6 +189,13 @@ int main(int argc, char** argv)
navigate_menu.add_action(go_forward_action);
navigate_menu.add_action(go_last_action);

auto& view_menu = menubar->add_menu("View");
view_menu.add_action(full_sceen_action);
view_menu.add_separator();
view_menu.add_action(zoom_in_action);
view_menu.add_action(zoom_reset_action);
view_menu.add_action(zoom_out_action);

auto& help_menu = menubar->add_menu("Help");
help_menu.add_action(GUI::Action::create("About", [&](auto&) {
GUI::AboutDialog::show("QuickShow", Gfx::Bitmap::load_from_file("/res/icons/32x32/filetype-image.png"), window);
Expand Down

0 comments on commit e0bf57d

Please sign in to comment.