diff --git a/persistancelayer.cpp b/persistancelayer.cpp index ca6a8028f221b6b326619cb393bfe2e9ea2cbaaf..b1b5ec228d7e11bff8bbd17538e28caca2000294 100755 --- a/persistancelayer.cpp +++ b/persistancelayer.cpp @@ -374,17 +374,17 @@ void PersistanceLayer::commit( ) { // mMutex.lock(); + /* if ( mCommitCounter ) { + mCommitCounter--; + } + */ if ( mCommitCounter ) { - mCommitCounter--; - } - - if ( mCommitCounter == 0 ) { if ( !mDb.commit() ) { qWarning() << mDb.lastError(); } - counter++; - qDebug() << "db commits" << counter; + mCommitCounter = 0; + } // mMutex.unlock(); @@ -1451,6 +1451,12 @@ void PersistanceLayer::init() throw std::runtime_error( mDb.lastError().text().toStdString() + "file used:" + filePath.toStdString() ); } + commitTimer.setInterval( 3000 ); + commitTimer.start(); + connect( &commitTimer, &QTimer::timeout, [&]() { + commit(); + commitTimer.start(); + } ); mDbReady = true; initShema(); emit( ready() ); diff --git a/persistancelayer.h b/persistancelayer.h index b2029f3b634ee36fc26bcb9f42e091b94f9024bf..f1b918607db4d6dd0c99bce8e1854a72e580151b 100755 --- a/persistancelayer.h +++ b/persistancelayer.h @@ -98,8 +98,7 @@ class PersistanceLayer : public QObject PersistanceLayer() {} QSqlDatabase mDb{ QSqlDatabase::addDatabase( "QSQLITE" )}; QMimeDatabase mMimeDb; - QMutex mMutex; - QAtomicInt counter = 0; + QTimer commitTimer; void initShema(); void upgradeSchema();