Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgsreadwritecontext.cpp 3 : : --------------------- 4 : : begin : May 2017 5 : : copyright : (C) 2017 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 : : #include "qgsreadwritecontext.h" 16 : : 17 : : ///@cond PRIVATE 18 : 10 : class DefaultTranslator : public QgsProjectTranslator 19 : : { 20 : : // QgsProjectTranslator interface 21 : : public: 22 : 0 : QString translate( const QString &context, const QString &sourceText, const char *disambiguation, int n ) const override 23 : : { 24 : 0 : Q_UNUSED( context ) 25 : : Q_UNUSED( disambiguation ) 26 : : Q_UNUSED( n ) 27 : 0 : return sourceText; 28 : : } 29 : : }; 30 : : 31 : : ///@endcond PRIVATE 32 : : 33 : 598 : Q_GLOBAL_STATIC( DefaultTranslator, sDefaultTranslator ) 34 : : 35 : 583 : QgsReadWriteContext::QgsReadWriteContext() 36 : 583 : : mProjectTranslator( sDefaultTranslator() ) 37 : : { 38 : : 39 : 583 : } 40 : : 41 : 583 : QgsReadWriteContext::~QgsReadWriteContext() 42 : : { 43 : : // be sure that categories have been emptied 44 : : Q_ASSERT( mCategories.isEmpty() ); 45 : 583 : } 46 : : 47 : 990 : const QgsPathResolver &QgsReadWriteContext::pathResolver() const 48 : : { 49 : 990 : return mPathResolver; 50 : : } 51 : : 52 : 0 : void QgsReadWriteContext::setPathResolver( const QgsPathResolver &resolver ) 53 : : { 54 : 0 : mPathResolver = resolver; 55 : 0 : } 56 : : 57 : 0 : void QgsReadWriteContext::pushMessage( const QString &message, Qgis::MessageLevel level ) 58 : : { 59 : 0 : mMessages.append( ReadWriteMessage( message, level, mCategories ) ); 60 : 0 : } 61 : : 62 : 0 : QgsReadWriteContextCategoryPopper QgsReadWriteContext::enterCategory( const QString &category, const QString &details ) 63 : : { 64 : 0 : QString message = category; 65 : 0 : if ( !details.isEmpty() ) 66 : 0 : message.append( QStringLiteral( " :: %1" ).arg( details ) ); 67 : 0 : mCategories.push_back( message ); 68 : 0 : return QgsReadWriteContextCategoryPopper( *this ); 69 : 0 : } 70 : : 71 : 0 : void QgsReadWriteContext::leaveCategory() 72 : : { 73 : 0 : if ( !mCategories.isEmpty() ) 74 : 0 : mCategories.pop_back(); 75 : 0 : } 76 : : 77 : 0 : QgsCoordinateTransformContext QgsReadWriteContext::transformContext() const 78 : : { 79 : 0 : return mCoordinateTransformContext; 80 : : } 81 : : 82 : 0 : void QgsReadWriteContext::setTransformContext( const QgsCoordinateTransformContext &transformContext ) 83 : : { 84 : 0 : mCoordinateTransformContext = transformContext; 85 : 0 : } 86 : : 87 : 0 : void QgsReadWriteContext::setProjectTranslator( QgsProjectTranslator *projectTranslator ) 88 : : { 89 : 0 : mProjectTranslator = projectTranslator; 90 : 0 : } 91 : : 92 : : 93 : 0 : QList<QgsReadWriteContext::ReadWriteMessage > QgsReadWriteContext::takeMessages() 94 : : { 95 : 0 : QList<QgsReadWriteContext::ReadWriteMessage > messages = mMessages; 96 : 0 : mMessages.clear(); 97 : 0 : return messages; 98 : 0 : }