From 0f72a0f683fb0da64f290b39d6cfa181c6717ec3 Mon Sep 17 00:00:00 2001 From: vsonnier Date: Tue, 9 Jan 2018 20:22:56 +0100 Subject: [PATCH] Fix #593 : Make the middle of the range always the central frequency --- src/forms/Bookmark/BookmarkView.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/forms/Bookmark/BookmarkView.cpp b/src/forms/Bookmark/BookmarkView.cpp index a30d6a6..f4c316e 100644 --- a/src/forms/Bookmark/BookmarkView.cpp +++ b/src/forms/Bookmark/BookmarkView.cpp @@ -870,7 +870,11 @@ void BookmarkView::activateBookmark(BookmarkEntryPtr bmEnt) { void BookmarkView::activateRange(BookmarkRangeEntryPtr rangeEnt) { - wxGetApp().setFrequency(rangeEnt->freq); + + //the following oly works if rangeEnt->freq is the middle of [rangeEnt->startFreq ; rangeEnt->startFreq] + wxGetApp().setFrequency(rangeEnt->freq); + + // Change View limits to fit the range exactly. wxGetApp().getAppFrame()->setViewState(rangeEnt->startFreq + (rangeEnt->endFreq - rangeEnt->startFreq) / 2, rangeEnt->endFreq - rangeEnt->startFreq); } @@ -1536,10 +1540,13 @@ void BookmarkView::loadDefaultRanges() { BookmarkRangeEntryPtr BookmarkView::makeActiveRangeEntry() { BookmarkRangeEntryPtr re(new BookmarkRangeEntry); - re->freq = wxGetApp().getFrequency(); + re->startFreq = wxGetApp().getAppFrame()->getViewCenterFreq() - (wxGetApp().getAppFrame()->getViewBandwidth()/2); re->endFreq = wxGetApp().getAppFrame()->getViewCenterFreq() + (wxGetApp().getAppFrame()->getViewBandwidth()/2); + //to prevent problems, always make the re->freq the middle of the interval. + re->freq = (re->startFreq + re->endFreq) / 2; + return re; }