|
23 | 23 | from PyQt4.QtCore import * |
24 | 24 | from PyQt4.QtGui import * |
25 | 25 |
|
26 | | -from qgis.core import QgsMapLayerRegistry |
| 26 | +from qgis.core import QgsMapLayerRegistry, QgsMessageLog |
| 27 | +from qgis.gui import QgsMessageBar, QgsMessageBarItem |
27 | 28 |
|
28 | 29 | from .db_model import DBModel |
29 | 30 | from .db_plugins.plugin import DBPlugin, Schema, Table |
@@ -140,10 +141,19 @@ def delete(self): |
140 | 141 | def addLayer(self): |
141 | 142 | table = self.currentTable() |
142 | 143 | if table is not None: |
143 | | - QgsMapLayerRegistry.instance().addMapLayers([table.toMapLayer()]) |
| 144 | + layer = table.toMapLayer() |
| 145 | + layers = QgsMapLayerRegistry.instance().addMapLayers([layer]) |
| 146 | + if len(layers)<>1: |
| 147 | + QgsMessageLog.instance().logMessage( self.tr( "%1 is an invalid layer - not loaded" ).replace( "%1", layer.publicSource() ) ) |
| 148 | + msgLabel = QLabel( self.tr( "%1 is an invalid layer and cannot be loaded. Please check the <a href=\"#messageLog\">message log</a> for further info." ).replace( "%1", layer.publicSource() ), self.mainWindow.infoBar ) |
| 149 | + msgLabel.setWordWrap( True ) |
| 150 | + self.connect( msgLabel, SIGNAL("linkActivated( QString )" ), |
| 151 | + self.mainWindow.iface.mainWindow().findChild( QWidget, "MessageLog" ), SLOT( "show()" ) ) |
| 152 | + self.connect( msgLabel, SIGNAL("linkActivated( QString )" ), |
| 153 | + self.mainWindow.iface.mainWindow(), SLOT( "raise()" ) ) |
| 154 | + self.mainWindow.infoBar.pushItem( QgsMessageBarItem( msgLabel, QgsMessageBar.WARNING ) ) |
144 | 155 |
|
145 | 156 | def reconnect(self): |
146 | 157 | db = self.currentDatabase() |
147 | 158 | if db is not None: |
148 | 159 | self.mainWindow.invokeCallback(db.reconnectActionSlot) |
149 | | - |
|
0 commit comments