Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgsprojectstorageregistry.cpp 3 : : -------------------------------------- 4 : : Date : March 2018 5 : : Copyright : (C) 2018 by Martin Dobias 6 : : Email : wonder dot sk at gmail dot com 7 : : *************************************************************************** 8 : : * * 9 : : * This program is free software; you can redistribute it and/or modify * 10 : : * it under the terms of the GNU General Public License as published by * 11 : : * the Free Software Foundation; either version 2 of the License, or * 12 : : * (at your option) any later version. * 13 : : * * 14 : : ***************************************************************************/ 15 : : 16 : : #include "qgsprojectstorageregistry.h" 17 : : 18 : : #include "qgsprojectstorage.h" 19 : : 20 : : 21 : 5 : QgsProjectStorageRegistry::~QgsProjectStorageRegistry() 22 : : { 23 : 5 : qDeleteAll( mBackends ); 24 : 5 : } 25 : : 26 : 0 : QgsProjectStorage *QgsProjectStorageRegistry::projectStorageFromType( const QString &type ) 27 : : { 28 : 0 : return mBackends.value( type, nullptr ); 29 : : } 30 : : 31 : 3 : QgsProjectStorage *QgsProjectStorageRegistry::projectStorageFromUri( const QString &uri ) 32 : : { 33 : 6 : for ( auto it = mBackends.constBegin(); it != mBackends.constEnd(); ++it ) 34 : : { 35 : 3 : QgsProjectStorage *storage = it.value(); 36 : 3 : QString scheme = storage->type() + ':'; 37 : 3 : if ( uri.startsWith( scheme ) ) 38 : 0 : return storage; 39 : 3 : } 40 : 3 : return nullptr; 41 : 3 : } 42 : : 43 : 0 : QList<QgsProjectStorage *> QgsProjectStorageRegistry::projectStorages() const 44 : : { 45 : 0 : return mBackends.values(); 46 : : } 47 : : 48 : 3 : void QgsProjectStorageRegistry::registerProjectStorage( QgsProjectStorage *storage ) 49 : : { 50 : 3 : mBackends.insert( storage->type(), storage ); 51 : 3 : } 52 : : 53 : 3 : void QgsProjectStorageRegistry::unregisterProjectStorage( QgsProjectStorage *storage ) 54 : : { 55 : 3 : delete mBackends.take( storage->type() ); 56 : 3 : }