mirror of
https://github.com/GoldenCheetah/GoldenCheetah.git
synced 2026-02-14 00:28:42 +00:00
Defer metric refresh till end RideImportWizard
.. speeds up large imports considerably.
This commit is contained in:
@@ -1815,7 +1815,7 @@ MainWindow::dropEvent(QDropEvent *event)
|
||||
*--------------------------------------------------------------------*/
|
||||
|
||||
void
|
||||
MainWindow::addRide(QString name, bool /* bSelect =true*/)
|
||||
MainWindow::addRide(QString name, bool dosignal)
|
||||
{
|
||||
QDateTime dt;
|
||||
if (!parseRideFileName(name, &dt)) {
|
||||
@@ -1838,7 +1838,7 @@ MainWindow::addRide(QString name, bool /* bSelect =true*/)
|
||||
}
|
||||
++index;
|
||||
}
|
||||
rideAdded(last); // here so emitted BEFORE rideSelected is emitted!
|
||||
if (dosignal) rideAdded(last); // here so emitted BEFORE rideSelected is emitted!
|
||||
allRides->insertChild(index, last);
|
||||
|
||||
// if it is the very first ride, we need to select it
|
||||
|
||||
@@ -824,7 +824,7 @@ RideImportWizard::abortClicked()
|
||||
tableWidget->item(i,5)->setText(tr("File Overwritten"));
|
||||
} else {
|
||||
tableWidget->item(i,5)->setText(tr("File Saved"));
|
||||
mainWindow->addRide(QFileInfo(fulltarget).fileName(), true);
|
||||
mainWindow->addRide(QFileInfo(fulltarget).fileName(), false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -869,13 +869,12 @@ RideImportWizard::abortClicked()
|
||||
QFile source(filenames[i]);
|
||||
if (source.copy(fulltarget)) {
|
||||
tableWidget->item(i,5)->setText(tr("File Saved"));
|
||||
mainWindow->addRide(QFileInfo(fulltarget).fileName(), true); // add to tree view
|
||||
mainWindow->addRide(QFileInfo(fulltarget).fileName(), false); // add to tree view
|
||||
// free immediately otherwise all imported rides are cached
|
||||
// and with large imports this can lead to memory exhaustion
|
||||
// BUT! Some charts/windows will hava snaffled away the ridefile
|
||||
// pointer which is now invalid so once all the rides have been imported
|
||||
// we need to select the last one... see below
|
||||
mainWindow->rideItem()->freeMemory();
|
||||
} else
|
||||
tableWidget->item(i,5)->setText(tr("Error - copy failed"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user