From b5310d4bc67a3c837aba4d6152c6118adb016d7a Mon Sep 17 00:00:00 2001 From: Thanatomanic Date: Sun, 1 Jul 2018 09:36:38 +0200 Subject: [PATCH 1/4] Scrolling speed changed to height of thumbnail. This works really well in the browser. Horizontal scrolling has the same speed, which works reasonably well too (unless you have images with abnormal aspect ratio's). --- rtgui/thumbbrowserbase.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index 2d27550bc..802b1c5c5 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -501,8 +501,8 @@ void ThumbBrowserBase::configScrollBars () vscroll.get_adjustment()->set_upper (inH); hscroll.get_adjustment()->set_lower (0); vscroll.get_adjustment()->set_lower (0); - hscroll.get_adjustment()->set_step_increment (32); - vscroll.get_adjustment()->set_step_increment (32); + hscroll.get_adjustment()->set_step_increment (getThumbnailHeight()); + vscroll.get_adjustment()->set_step_increment (getThumbnailHeight()); hscroll.get_adjustment()->set_page_increment (iw); vscroll.get_adjustment()->set_page_increment (ih); hscroll.get_adjustment()->set_page_size (iw); From 3d7772d0c6c9c9de707596bb9f0203db42472b20 Mon Sep 17 00:00:00 2001 From: Thanatomanic Date: Sun, 1 Jul 2018 13:47:42 +0200 Subject: [PATCH 2/4] The scrolling distance now takes into account the effective height of the thumbnail (including exif if necessary) --- rtgui/thumbbrowserbase.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index 802b1c5c5..e9a88cb2a 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -501,8 +501,8 @@ void ThumbBrowserBase::configScrollBars () vscroll.get_adjustment()->set_upper (inH); hscroll.get_adjustment()->set_lower (0); vscroll.get_adjustment()->set_lower (0); - hscroll.get_adjustment()->set_step_increment (getThumbnailHeight()); - vscroll.get_adjustment()->set_step_increment (getThumbnailHeight()); + hscroll.get_adjustment()->set_step_increment (fd[0]->getEffectiveHeight()); // Is it safe enough to assume fd[0] is accessible? There seems to be no other way to get the _actual_ height of the thumbnail. + vscroll.get_adjustment()->set_step_increment (fd[0]->getEffectiveHeight()); hscroll.get_adjustment()->set_page_increment (iw); vscroll.get_adjustment()->set_page_increment (ih); hscroll.get_adjustment()->set_page_size (iw); From fc799681084ecdb731570169cbe0e97d8a9b3047 Mon Sep 17 00:00:00 2001 From: Thanatomanic Date: Sun, 1 Jul 2018 15:52:21 +0200 Subject: [PATCH 3/4] Sanity checks for height, horizontal thumb browser automatically scales. --- rtgui/filecatalog.cc | 1 + rtgui/thumbbrowserbase.cc | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index 19830951b..0118a3c5c 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -490,6 +490,7 @@ void FileCatalog::exifInfoButtonToggled() } fileBrowser->refreshThumbImages (); + refreshHeight(); } void FileCatalog::on_realize() diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index e9a88cb2a..829aec9f7 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -501,8 +501,8 @@ void ThumbBrowserBase::configScrollBars () vscroll.get_adjustment()->set_upper (inH); hscroll.get_adjustment()->set_lower (0); vscroll.get_adjustment()->set_lower (0); - hscroll.get_adjustment()->set_step_increment (fd[0]->getEffectiveHeight()); // Is it safe enough to assume fd[0] is accessible? There seems to be no other way to get the _actual_ height of the thumbnail. - vscroll.get_adjustment()->set_step_increment (fd[0]->getEffectiveHeight()); + hscroll.get_adjustment()->set_step_increment (!fd.empty() ? fd[0]->getEffectiveHeight() : 0); + vscroll.get_adjustment()->set_step_increment (!fd.empty() ? fd[0]->getEffectiveHeight() : 0); hscroll.get_adjustment()->set_page_increment (iw); vscroll.get_adjustment()->set_page_increment (ih); hscroll.get_adjustment()->set_page_size (iw); @@ -567,7 +567,7 @@ void ThumbBrowserBase::arrangeFiles() MYREADERLOCK_RELEASE(l); // This will require a Writer access - resizeThumbnailArea(currx, rowHeight); + resizeThumbnailArea(currx, !fd.empty() ? fd[0]->getEffectiveHeight() : rowHeight); } else { const int availWidth = internal.get_width(); From cccfb02b51464bd9bfb5b941e8737cc0a25456a4 Mon Sep 17 00:00:00 2001 From: Thanatomanic Date: Sun, 1 Jul 2018 15:53:29 +0200 Subject: [PATCH 4/4] Hide scrollbar if necessary --- rtgui/thumbbrowserbase.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index 829aec9f7..583c42968 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -519,6 +519,9 @@ void ThumbBrowserBase::configScrollBars () } else { vscroll.show(); } + } else { // hide scrollbars when a filter is applied which returns no files + hscroll.hide(); + vscroll.hide(); } }