Fix #593 : Make the middle of the range always the central frequency

This commit is contained in:
vsonnier 2018-01-09 20:22:56 +01:00
parent 505ed18066
commit 0f72a0f683

View File

@ -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;
}