1 /*************************************************************************** 2 qgslayertreeviewofflineindicator.cpp 3 -------------------------------------- 4 Date : October 2020 5 Copyright : (C) 2020 by David Signer 6 Email : david at opengis dot ch 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 "qgslayertreeviewofflineindicator.h" 17 #include "qgslayertreeview.h" 18 #include "qgslayertree.h" 19 #include "qgslayertreemodel.h" 20 #include "qgisapp.h" 21 QgsLayerTreeViewOfflineIndicatorProvider(QgsLayerTreeView * view)22QgsLayerTreeViewOfflineIndicatorProvider::QgsLayerTreeViewOfflineIndicatorProvider( QgsLayerTreeView *view ) 23 : QgsLayerTreeViewIndicatorProvider( view ) 24 { 25 26 } 27 connectSignals(QgsMapLayer * layer)28void QgsLayerTreeViewOfflineIndicatorProvider::connectSignals( QgsMapLayer *layer ) 29 { 30 if ( !layer ) 31 return; 32 33 connect( layer, &QgsMapLayer::customPropertyChanged, this, &QgsLayerTreeViewOfflineIndicatorProvider::onLayerChanged ); 34 } 35 disconnectSignals(QgsMapLayer * layer)36void QgsLayerTreeViewOfflineIndicatorProvider::disconnectSignals( QgsMapLayer *layer ) 37 { 38 if ( !layer ) 39 return; 40 41 disconnect( layer, &QgsMapLayer::customPropertyChanged, this, &QgsLayerTreeViewOfflineIndicatorProvider::onLayerChanged ); 42 } 43 acceptLayer(QgsMapLayer * layer)44bool QgsLayerTreeViewOfflineIndicatorProvider::acceptLayer( QgsMapLayer *layer ) 45 { 46 return layer->customProperty( QStringLiteral( "isOfflineEditable" ), false ).toBool(); 47 } 48 iconName(QgsMapLayer * layer)49QString QgsLayerTreeViewOfflineIndicatorProvider::iconName( QgsMapLayer *layer ) 50 { 51 Q_UNUSED( layer ) 52 return QStringLiteral( "/mIndicatorOffline.svg" ); 53 } 54 tooltipText(QgsMapLayer * layer)55QString QgsLayerTreeViewOfflineIndicatorProvider::tooltipText( QgsMapLayer *layer ) 56 { 57 Q_UNUSED( layer ) 58 return tr( "<b>Offline layer</b>" ); 59 } 60 onLayerChanged()61void QgsLayerTreeViewOfflineIndicatorProvider::onLayerChanged() 62 { 63 QgsMapLayer *layer = qobject_cast<QgsMapLayer *>( sender() ); 64 if ( !layer ) 65 return; 66 67 updateLayerIndicator( layer ); 68 } 69