Defer metric refresh till end RideImportWizard

.. speeds up large imports considerably.
This commit is contained in:
Mark Liversedge
2013-03-30 20:33:36 +00:00
parent b1db3dbe93
commit 0ba93fe619
2 changed files with 4 additions and 5 deletions

View File

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

View File

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