def initGui(self): self._cdbMenu = QMenu("CartoDB plugin", self.iface.mainWindow()) self._cdbMenu.setIcon(QIcon(":/plugins/qgis-cartodb/images/icon.png")) self._mainAction = QAction(self.tr('Add CartoDB Layer'), self.iface.mainWindow()) self._mainAction.setIcon( QIcon(":/plugins/qgis-cartodb/images/icons/add.png")) self._loadDataAction = QAction(self.tr('Upload layers to CartoDB'), self.iface.mainWindow()) self._loadDataAction.setIcon( QIcon(":/plugins/qgis-cartodb/images/icons/polygon.png")) self._createVizAction = QAction(self.tr('Create New Map'), self.iface.mainWindow()) self._createVizAction.setIcon( QIcon(":/plugins/qgis-cartodb/images/icons/rectangle.png")) self._addSQLAction = QAction(self.tr('Add SQL CartoDB Layer'), self.iface.mainWindow()) self._addSQLAction.setIcon( QIcon(":/plugins/qgis-cartodb/images/icons/add_sql.png")) self.toolbar = CartoDBToolbar() self.toolbar.setClick(self.connectionManager) self.toolbar.error.connect(self.toolbarError) self._toolbarAction = self.iface.addWebToolBarWidget(self.toolbar) worker = CartoDBPluginWorker(self.toolbar, 'connectCartoDB') worker.start() if not self.toolbar.isCurrentUserValid(): self._mainAction.setEnabled(False) self._loadDataAction.setEnabled(False) self._createVizAction.setEnabled(False) self._addSQLAction.setEnabled(False) self._mainAction.activated.connect(self.run) self._loadDataAction.activated.connect(self.upload) self._createVizAction.activated.connect(self.createNewMap) self._addSQLAction.activated.connect(self.addSQL) self._cdbMenu.addAction(self._mainAction) self._cdbMenu.addAction(self._loadDataAction) self._cdbMenu.addAction(self._createVizAction) self._cdbMenu.addAction(self._addSQLAction) self.iface.addWebToolBarIcon(self._mainAction) self.iface.addWebToolBarIcon(self._loadDataAction) self.iface.addWebToolBarIcon(self._createVizAction) self.iface.addWebToolBarIcon(self._addSQLAction) # Create Web menu, if it doesn't exist yet tmpAction = QAction("Temporal", self.iface.mainWindow()) self.iface.addPluginToWebMenu("_tmp", tmpAction) self._menu = self.iface.webMenu() self._menu.addMenu(self._cdbMenu) self.iface.removePluginWebMenu("_tmp", tmpAction) # Register plugin layer type self.pluginLayerType = CartoDBPluginLayerType(self.iface, self.createLayerCB) QgsPluginLayerRegistry.instance().addPluginLayerType( self.pluginLayerType)
def __init__(self, iface): QObject.__init__(self) QgsMessageLog.logMessage( 'GDAL Version: ' + str(gdal.VersionInfo('VERSION_NUM')), 'CartoDB Plugin', QgsMessageLog.INFO) # Save reference to the QGIS interface self.iface = iface # initialize locale locale = QSettings().value("locale/userLocale")[0:2] localePath = os.path.join(CartoDBPlugin.PLUGIN_DIR, "i18n", "{}.qm".format(locale)) if os.path.exists(localePath): self.translator = QTranslator() self.translator.load(localePath) if qVersion() > '4.3.3': QCoreApplication.installTranslator(self.translator) # SQLite available? driverName = "SQLite" self.sqLiteDrv = ogr.GetDriverByName(driverName) if self.sqLiteDrv is None: QgsMessageLog.logMessage('SQLite driver not found', 'CartoDB Plugin', QgsMessageLog.CRITICAL) else: QgsMessageLog.logMessage('SQLite driver is found', 'CartoDB Plugin', QgsMessageLog.INFO) self.databasePath = CartoDBPlugin.PLUGIN_DIR + '/db/database.sqlite' shutil.copyfile( CartoDBPlugin.PLUGIN_DIR + '/db/init_database.sqlite', self.databasePath) self.layers = [] self.countLoadingLayers = 0 self.countLoadedLayers = 0 self._cdbMenu = None self._mainAction = None self._loadDataAction = None self._createVizAction = None self._addSQLAction = None self.toolbar = CartoDBToolbar() self._toolbarAction = None self._menu = None