diff options
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r-- | src/QuickMedia.cpp | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index 400603b..15e345b 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -802,7 +802,15 @@ namespace QuickMedia { images_url = item->url; chapter_title = item->title; image_index = 0; - current_page = Page::IMAGES_CONTINUOUS; + switch(image_view_mode) { + case ImageViewMode::SINGLE: + current_page = Page::IMAGES; + break; + case ImageViewMode::SCROLL: + current_page = Page::IMAGES_CONTINUOUS; + break; + } + if(start_from_beginning) return; @@ -1123,6 +1131,9 @@ namespace QuickMedia { } } else if(event.key.code == sf::Keyboard::Escape) { current_page = Page::EPISODE_LIST; + } else if(event.key.code == sf::Keyboard::I) { + current_page = Page::IMAGES_CONTINUOUS; + image_view_mode = ImageViewMode::SCROLL; } } } @@ -1230,14 +1241,24 @@ namespace QuickMedia { while(current_page == Page::IMAGES_CONTINUOUS) { window.clear(back_color); - if(!image_viewer.draw(window)) - current_page = Page::EPISODE_LIST; + ImageViewerAction action = image_viewer.draw(window); + switch(action) { + case ImageViewerAction::NONE: + break; + case ImageViewerAction::RETURN: + current_page = Page::EPISODE_LIST; + break; + case ImageViewerAction::SWITCH_TO_SINGLE_IMAGE_MODE: + image_view_mode = ImageViewMode::SINGLE; + current_page = Page::IMAGES; + break; + } window.display(); int focused_page = image_viewer.get_focused_page(); + image_index = focused_page - 1; if(focused_page > latest_read) { latest_read = focused_page; - image_index = latest_read - 1; json_chapter["current"] = latest_read; json_chapters[chapter_title] = json_chapter; if(!save_manga_progress_json(content_storage_file, content_storage_json)) { |