Skip to content

Commit f9c3067

Browse files
committed
improved behavior after X data range changes
1 parent 71b0616 commit f9c3067

2 files changed

Lines changed: 13 additions & 5 deletions

File tree

src/mainwindow/mainwindow.cpp

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,12 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi
3737
updateDownloadUrl = GithubReleasesUrl;
3838

3939
auto platform = AppSettings::getPlatformInfo();
40-
if(platform == "windows_portable"){
41-
configFilePath = QApplication::applicationDirPath() + "/settings/config.ini";
40+
if (platform == "windows_portable") {
41+
configFilePath = QApplication::applicationDirPath() + "/settings/config.ini";
4242
updateDownloadUrl = GithubReleasesUrl;
4343
}
4444

45-
if (platform == "windows_store"){
45+
if (platform == "windows_store") {
4646
updateDownloadUrl = MisrosoftStoreUrl;
4747
developerOptions->getUi()->pushButtonOpenConfig->setVisible(false);
4848
}
@@ -721,6 +721,10 @@ void MainWindow::mainPlotHRangeMaxChanged(QCPRange range) {
721721
double sizeRatio = qBound(0.0, range.size() / fullrange, 1.0);
722722
int zoomFactor = round(m * sizeRatio);
723723

724+
bool preserveFullRange = ui->dialZoom->value() == ui->dialZoom->maximum();
725+
qDebug() << "preserveFullRange:" << preserveFullRange;
726+
qDebug() << "zoomFactor:" << zoomFactor;
727+
724728
ui->dialZoom->blockSignals(true);
725729
ui->dialZoom->setValue(zoomFactor);
726730
ui->dialZoom->blockSignals(false);
@@ -734,6 +738,10 @@ void MainWindow::mainPlotHRangeMaxChanged(QCPRange range) {
734738
ui->horizontalScrollBarHorizontal->setValue(posFactor);
735739
ui->horizontalScrollBarHorizontal->setSliderPosition(posFactor);
736740
ui->horizontalScrollBarHorizontal->blockSignals(false);
741+
742+
if (preserveFullRange) {
743+
ui->dialZoom->setValue(ui->dialZoom->maximum());
744+
}
737745
}
738746

739747
void MainWindow::mainPlotVRangeChanged(QCPRange range) {

src/plots/mymainplot.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,8 @@ void MyMainPlot::updateMinMaxTimes() {
144144
setMaxZoomX(QCPRange(minT, maxT + xAxis->range().size()), xRangeUnknown || maxT > maxZoomX.upper || minT < maxZoomX.lower);
145145
updateRollingState(maxT);
146146
} else {
147-
double diff = abs(maxT - maxZoomX.upper) / maxZoomX.upper + abs(minT - maxZoomX.lower) / maxZoomX.lower;
148-
setMaxZoomX(QCPRange(minT, maxT), xRangeUnknown || diff > 0.1);
147+
double diff = abs(maxT - maxZoomX.upper) + abs(minT - maxZoomX.lower);
148+
setMaxZoomX(QCPRange(minT, maxT), xRangeUnknown || false);
149149
if (!qFuzzyIsNull(diff))
150150
emit hRangeMaxChanged(maxZoomX);
151151
}

0 commit comments

Comments
 (0)