@@ -224,11 +224,10 @@ void WebdavConnection::processDirParserFinished()
224
224
}
225
225
}
226
226
}
227
+ mAvailablePaths .sort ();
227
228
228
229
mIsFetchingAvailablePaths = false ;
229
230
emit isFetchingAvailablePathsChanged ();
230
-
231
- mAvailablePaths .sort ();
232
231
emit availablePathsChanged ();
233
232
}
234
233
else if ( mIsImportingPath || mIsDownloadingPath )
@@ -419,6 +418,12 @@ void WebdavConnection::getWebdavItems()
419
418
jsonFile.write ( jsonDocument.toJson () );
420
419
jsonFile.close ();
421
420
421
+ QSettings settings;
422
+ settings.beginGroup ( QStringLiteral ( " /qfield/webdavImports/%1/users/%2" ).arg ( QUrl::toPercentEncoding ( mUrl ), QUrl::toPercentEncoding ( mUsername ) ) );
423
+ settings.setValue ( QStringLiteral ( " lastImportPath" ), mProcessRemotePath );
424
+ settings.setValue ( QStringLiteral ( " lastImportTime" ), QDateTime::currentDateTime () );
425
+ settings.endGroup ();
426
+
422
427
mIsImportingPath = false ;
423
428
emit isImportingPathChanged ();
424
429
emit importSuccessful ( mProcessLocalPath );
@@ -431,6 +436,61 @@ void WebdavConnection::getWebdavItems()
431
436
}
432
437
}
433
438
439
+ QVariantMap WebdavConnection::importHistory ()
440
+ {
441
+ QVariantMap history;
442
+
443
+ QSettings settings;
444
+ settings.beginGroup ( QStringLiteral ( " /qfield/webdavImports" ) );
445
+ const QStringList urls = settings.childGroups ();
446
+ settings.endGroup ();
447
+
448
+ QDateTime lastUrlImportTime ( QDate ( 1900 , 0 , 0 ), QTime ( 0 , 0 , 0 , 0 ) );
449
+ QString lastUrl;
450
+ QVariantMap urlsDetails;
451
+ for ( const QString &url : urls )
452
+ {
453
+ const QString decodedUrl = QUrl::fromPercentEncoding ( url.toLatin1 () );
454
+ settings.beginGroup ( QStringLiteral ( " /qfield/webdavImports/%1/users" ).arg ( url ) );
455
+ const QStringList users = settings.childGroups ();
456
+ settings.endGroup ();
457
+
458
+ QDateTime lastUserImportTime ( QDate ( 1900 , 0 , 0 ), QTime ( 0 , 0 , 0 , 0 ) );
459
+ QString lastUser;
460
+ QVariantMap usersDetails;
461
+ for ( const QString &user : users )
462
+ {
463
+ const QString decodedUser = QUrl::fromPercentEncoding ( user.toLatin1 () );
464
+ settings.beginGroup ( QStringLiteral ( " /qfield/webdavImports/%1/users/%2" ).arg ( url, user ) );
465
+
466
+ QVariantMap details;
467
+ details[" lastImportPath" ] = settings.value ( " lastImportPath" ).toString ();
468
+ usersDetails[decodedUser] = details;
469
+
470
+ if ( lastUserImportTime < settings.value ( " lastImportTime" ).toDateTime () )
471
+ {
472
+ lastUserImportTime = settings.value ( " lastImportTime" ).toDateTime ();
473
+ lastUser = decodedUser;
474
+ }
475
+ if ( lastUrlImportTime < settings.value ( " lastImportTime" ).toDateTime () )
476
+ {
477
+ lastUrlImportTime = settings.value ( " lastImportTime" ).toDateTime ();
478
+ lastUrl = decodedUrl;
479
+ }
480
+ }
481
+
482
+ QVariantMap details;
483
+ details[" users" ] = usersDetails;
484
+ details[" lastUser" ] = lastUser;
485
+ urlsDetails[decodedUrl] = details;
486
+ }
487
+
488
+ history[" urls" ] = urlsDetails;
489
+ history[" lastUrl" ] = lastUrl;
490
+
491
+ return history;
492
+ }
493
+
434
494
void WebdavConnection::putLocalItems ()
435
495
{
436
496
if ( !mWebdavMkDirs .isEmpty () )
0 commit comments