diff -Nru quentier-qt5-0.4.0/debian/changelog quentier-qt5-0.4.0/debian/changelog --- quentier-qt5-0.4.0/debian/changelog 2018-07-17 07:46:52.000000000 +0000 +++ quentier-qt5-0.4.0/debian/changelog 2018-07-19 19:47:20.000000000 +0000 @@ -1,8 +1,8 @@ -quentier-qt5 (0.4.0-3~ppa~quentier~201807170746~ubuntu17.10.1) artful; urgency=low +quentier-qt5 (0.4.0-3~ppa~quentier~201807191947~ubuntu17.10.1) artful; urgency=low * Auto build. - -- Dmitry Ivanov Tue, 17 Jul 2018 07:46:52 +0000 + -- Dmitry Ivanov Thu, 19 Jul 2018 19:47:20 +0000 quentier-qt5 (0.4.0-3) unstable; urgency=medium diff -Nru quentier-qt5-0.4.0/debian/git-build-recipe.manifest quentier-qt5-0.4.0/debian/git-build-recipe.manifest --- quentier-qt5-0.4.0/debian/git-build-recipe.manifest 2018-07-17 07:46:52.000000000 +0000 +++ quentier-qt5-0.4.0/debian/git-build-recipe.manifest 2018-07-19 19:47:20.000000000 +0000 @@ -1,3 +1,3 @@ -# git-build-recipe format 0.4 deb-version {debversion}~ppa~quentier~201807170746 -lp:quentier-mirror git-commit:3bd78ab3b2fb3e892793d660160debbbf9ca36a2 +# git-build-recipe format 0.4 deb-version {debversion}~ppa~quentier~201807191947 +lp:quentier-mirror git-commit:66415239114f60fbf024f9acb625f80123f95092 nest-part packaging lp:quentier-deb-packaging quentier-qt5/debian debian git-commit:51211f6edd3c559b2d3b777d920e70271b12d431 diff -Nru quentier-qt5-0.4.0/src/MainWindow.cpp quentier-qt5-0.4.0/src/MainWindow.cpp --- quentier-qt5-0.4.0/src/MainWindow.cpp 2018-07-17 07:46:50.000000000 +0000 +++ quentier-qt5-0.4.0/src/MainWindow.cpp 2018-07-19 19:47:18.000000000 +0000 @@ -162,7 +162,6 @@ m_pLocalStorageManagerThread(Q_NULLPTR), m_pLocalStorageManagerAsync(Q_NULLPTR), m_lastLocalStorageSwitchUserRequest(), - m_pSynchronizationManagerThread(Q_NULLPTR), m_pAuthenticationManager(Q_NULLPTR), m_pSynchronizationManager(Q_NULLPTR), m_synchronizationManagerHost(), @@ -845,57 +844,80 @@ // Connect local signals to SynchronizationManager slots QObject::connect(this, QNSIGNAL(MainWindow,authenticate), - m_pSynchronizationManager, QNSLOT(SynchronizationManager,authenticate)); + m_pSynchronizationManager, QNSLOT(SynchronizationManager,authenticate), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(this, QNSIGNAL(MainWindow,synchronize), - m_pSynchronizationManager, QNSLOT(SynchronizationManager,synchronize)); + m_pSynchronizationManager, QNSLOT(SynchronizationManager,synchronize), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(this, QNSIGNAL(MainWindow,stopSynchronization), - m_pSynchronizationManager, QNSLOT(SynchronizationManager,stop)); + m_pSynchronizationManager, QNSLOT(SynchronizationManager,stop), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(this, QNSIGNAL(MainWindow,synchronizationSetAccount,Account), - m_pSynchronizationManager, QNSLOT(SynchronizationManager,setAccount,Account)); + m_pSynchronizationManager, QNSLOT(SynchronizationManager,setAccount,Account), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(this, QNSIGNAL(MainWindow,synchronizationDownloadNoteThumbnailsOptionChanged,bool), - m_pSynchronizationManager, QNSLOT(SynchronizationManager,setDownloadNoteThumbnails,bool)); + m_pSynchronizationManager, QNSLOT(SynchronizationManager,setDownloadNoteThumbnails,bool), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(this, QNSIGNAL(MainWindow,synchronizationDownloadInkNoteImagesOptionChanged,bool), - m_pSynchronizationManager, QNSLOT(SynchronizationManager,setDownloadInkNoteImages,bool)); + m_pSynchronizationManager, QNSLOT(SynchronizationManager,setDownloadInkNoteImages,bool), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(this, QNSIGNAL(MainWindow,synchronizationSetInkNoteImagesStoragePath,QString), - m_pSynchronizationManager, QNSLOT(SynchronizationManager,setInkNoteImagesStoragePath,QString)); + m_pSynchronizationManager, QNSLOT(SynchronizationManager,setInkNoteImagesStoragePath,QString), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); // Connect SynchronizationManager signals to local slots QObject::connect(m_pSynchronizationManager, QNSIGNAL(SynchronizationManager,started), - this, QNSLOT(MainWindow,onSynchronizationStarted)); + this, QNSLOT(MainWindow,onSynchronizationStarted), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(m_pSynchronizationManager, QNSIGNAL(SynchronizationManager,stopped), - this, QNSLOT(MainWindow,onSynchronizationStopped)); + this, QNSLOT(MainWindow,onSynchronizationStopped), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(m_pSynchronizationManager, QNSIGNAL(SynchronizationManager,failed,ErrorString), - this, QNSLOT(MainWindow,onSynchronizationManagerFailure,ErrorString)); + this, QNSLOT(MainWindow,onSynchronizationManagerFailure,ErrorString), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(m_pSynchronizationManager, QNSIGNAL(SynchronizationManager,finished,Account,bool,bool), - this, QNSLOT(MainWindow,onSynchronizationFinished,Account,bool,bool)); + this, QNSLOT(MainWindow,onSynchronizationFinished,Account,bool,bool), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(m_pSynchronizationManager, QNSIGNAL(SynchronizationManager,authenticationFinished,bool,ErrorString,Account), - this, QNSLOT(MainWindow,onAuthenticationFinished,bool,ErrorString,Account)); + this, QNSLOT(MainWindow,onAuthenticationFinished,bool,ErrorString,Account), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(m_pSynchronizationManager, QNSIGNAL(SynchronizationManager,authenticationRevoked,bool,ErrorString,qevercloud::UserID), - this, QNSLOT(MainWindow,onAuthenticationRevoked,bool,ErrorString,qevercloud::UserID)); + this, QNSLOT(MainWindow,onAuthenticationRevoked,bool,ErrorString,qevercloud::UserID), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(m_pSynchronizationManager, QNSIGNAL(SynchronizationManager,remoteToLocalSyncStopped), - this, QNSLOT(MainWindow,onRemoteToLocalSyncStopped)); + this, QNSLOT(MainWindow,onRemoteToLocalSyncStopped), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(m_pSynchronizationManager, QNSIGNAL(SynchronizationManager,sendLocalChangesStopped), - this, QNSLOT(MainWindow,onSendLocalChangesStopped)); + this, QNSLOT(MainWindow,onSendLocalChangesStopped), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(m_pSynchronizationManager, QNSIGNAL(SynchronizationManager,rateLimitExceeded,qint32), - this, QNSLOT(MainWindow,onRateLimitExceeded,qint32)); + this, QNSLOT(MainWindow,onRateLimitExceeded,qint32), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(m_pSynchronizationManager, QNSIGNAL(SynchronizationManager,remoteToLocalSyncDone,bool), - this, QNSLOT(MainWindow,onRemoteToLocalSyncDone,bool)); + this, QNSLOT(MainWindow,onRemoteToLocalSyncDone,bool), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(m_pSynchronizationManager, QNSIGNAL(SynchronizationManager,syncChunksDownloadProgress,qint32,qint32,qint32), - this, QNSLOT(MainWindow,onSyncChunksDownloadProgress,qint32,qint32,qint32)); + this, QNSLOT(MainWindow,onSyncChunksDownloadProgress,qint32,qint32,qint32), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(m_pSynchronizationManager, QNSIGNAL(SynchronizationManager,syncChunksDownloaded), - this, QNSLOT(MainWindow,onSyncChunksDownloaded)); + this, QNSLOT(MainWindow,onSyncChunksDownloaded), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(m_pSynchronizationManager, QNSIGNAL(SynchronizationManager,notesDownloadProgress,quint32,quint32), - this, QNSLOT(MainWindow,onNotesDownloadProgress,quint32,quint32)); + this, QNSLOT(MainWindow,onNotesDownloadProgress,quint32,quint32), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(m_pSynchronizationManager, QNSIGNAL(SynchronizationManager,resourcesDownloadProgress,quint32,quint32), - this, QNSLOT(MainWindow,onResourcesDownloadProgress,quint32,quint32)); + this, QNSLOT(MainWindow,onResourcesDownloadProgress,quint32,quint32), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(m_pSynchronizationManager, QNSIGNAL(SynchronizationManager,linkedNotebookSyncChunksDownloadProgress,qint32,qint32,qint32,LinkedNotebook), - this, - QNSLOT(MainWindow,onLinkedNotebookSyncChunksDownloadProgress,qint32,qint32,qint32,LinkedNotebook)); + this, QNSLOT(MainWindow,onLinkedNotebookSyncChunksDownloadProgress,qint32,qint32,qint32,LinkedNotebook), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(m_pSynchronizationManager, QNSIGNAL(SynchronizationManager,linkedNotebooksSyncChunksDownloaded), - this, QNSLOT(MainWindow,onLinkedNotebooksSyncChunksDownloaded)); + this, QNSLOT(MainWindow,onLinkedNotebooksSyncChunksDownloaded), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); QObject::connect(m_pSynchronizationManager, QNSIGNAL(SynchronizationManager,linkedNotebooksNotesDownloadProgress,quint32,quint32), - this, QNSLOT(MainWindow,onLinkedNotebooksNotesDownloadProgress,quint32,quint32)); + this, QNSLOT(MainWindow,onLinkedNotebooksNotesDownloadProgress,quint32,quint32), + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection)); } void MainWindow::disconnectSynchronizationManager() @@ -3015,6 +3037,9 @@ m_pLocalStorageManagerThread->quit(); m_pLocalStorageManagerThread->wait(); + bool cacheIsUsed = (m_pLocalStorageManagerAsync->localStorageCacheManager() != Q_NULLPTR); + m_pLocalStorageManagerAsync->setUseCache(false); + ErrorString errorDescription; try { m_pLocalStorageManagerAsync->localStorageManager()->switchUser(account); @@ -3024,6 +3049,8 @@ errorDescription.details() = QString::fromUtf8(e.what()); } + m_pLocalStorageManagerAsync->setUseCache(cacheIsUsed); + QObject::connect(m_pLocalStorageManagerThread, QNSIGNAL(QThread,finished), m_pLocalStorageManagerThread, QNSLOT(QThread,deleteLater)); m_pLocalStorageManagerThread->start(); @@ -4691,11 +4718,6 @@ return; } - m_pSynchronizationManagerThread = new QThread; - QObject::connect(m_pSynchronizationManagerThread, QNSIGNAL(QThread,finished), - m_pSynchronizationManagerThread, QNSLOT(QThread,deleteLater)); - m_pSynchronizationManagerThread->start(); - m_pAuthenticationManager = new AuthenticationManager(consumerKey, consumerSecret, m_synchronizationManagerHost, this); m_pSynchronizationManager = new SynchronizationManager(m_synchronizationManagerHost, @@ -4706,7 +4728,6 @@ m_pSynchronizationManager->setAccount(*m_pAccount); } - m_pSynchronizationManager->moveToThread(m_pSynchronizationManagerThread); connectSynchronizationManager(); setupRunSyncPeriodicallyTimer(); @@ -4723,11 +4744,6 @@ m_pSynchronizationManager = Q_NULLPTR; } - if (m_pSynchronizationManagerThread) { - m_pSynchronizationManagerThread->quit(); // The thread would delete itself after it's finished - m_pSynchronizationManagerThread = Q_NULLPTR; - } - if (m_pAuthenticationManager) { m_pAuthenticationManager->deleteLater(); m_pAuthenticationManager = Q_NULLPTR; diff -Nru quentier-qt5-0.4.0/src/MainWindow.h quentier-qt5-0.4.0/src/MainWindow.h --- quentier-qt5-0.4.0/src/MainWindow.h 2018-07-17 07:46:50.000000000 +0000 +++ quentier-qt5-0.4.0/src/MainWindow.h 2018-07-19 19:47:18.000000000 +0000 @@ -482,7 +482,6 @@ QUuid m_lastLocalStorageSwitchUserRequest; - QThread * m_pSynchronizationManagerThread; AuthenticationManager * m_pAuthenticationManager; SynchronizationManager * m_pSynchronizationManager; QString m_synchronizationManagerHost;