diff --git a/app/projectsmodel.cpp b/app/projectsmodel.cpp index 88f1cc403..b7a36b9b4 100644 --- a/app/projectsmodel.cpp +++ b/app/projectsmodel.cpp @@ -34,6 +34,7 @@ void ProjectsModel::initializeProjectsModel() QObject::connect( mBackend, &MerginApi::projectDetached, this, &ProjectsModel::onProjectDetachedFromMergin ); QObject::connect( mBackend, &MerginApi::projectAttachedToMergin, this, &ProjectsModel::onProjectAttachedToMergin ); + QObject::connect( mBackend, &MerginApi::authChanged, this, &ProjectsModel::onAuthChanged ); if ( mModelType == ProjectModelTypes::LocalProjectsModel ) { @@ -543,6 +544,17 @@ void ProjectsModel::onProjectAttachedToMergin( const QString & ) listProjectsByName(); } +void ProjectsModel::onAuthChanged() +{ + if ( !mBackend->userAuth() || !mBackend->userAuth()->hasAuthData() ) // user logged out, clear created and shared lists + { + if ( mModelType == WorkspaceProjectsModel ) + { + clearProjects(); + } + } +} + void ProjectsModel::setMerginApi( MerginApi *merginApi ) { if ( !merginApi || mBackend == merginApi ) diff --git a/app/projectsmodel.h b/app/projectsmodel.h index 60bcc4934..88ea48a4a 100644 --- a/app/projectsmodel.h +++ b/app/projectsmodel.h @@ -163,6 +163,8 @@ class ProjectsModel : public QAbstractListModel void onAboutToRemoveProject( const LocalProject &project ); void onProjectDataChanged( const LocalProject &project ); + void onAuthChanged(); + void setMerginApi( MerginApi *merginApi ); void setModelType( ProjectModelTypes modelType ); void setSyncManager( SynchronizationManager *newSyncManager );