Thank you Etienne. I did just what you suggested. But did not het anywhere. I still get the same error message.
My question did not get resolved and only for lack of information i can't move forward with the upgrade. What i think has happened is that QGIS leadership has chosen to control the access gates to "ousiders" who want to program in C++ and related functiions in producing plugins by controlling how plugins are registered. It is a pity that I can't upgrade this plugin for lack of information. In the past i have donated money and willing to donate time and money. Whay is there so much secrecy on the basic C++ plugin initialization and registry? It does not make for a good and inclusive policy. Thank for your help anyway. On Sun, Sep 15, 2019, 9:11 PM Etienne Trimaille <[email protected]> wrote: > Hi, > > I can't really answer your question but you should use > https://qgis.org/api/classQgsMapLayerComboBox.html instead of creating > your own combobox. (if possible). > > Etienne > > Le dim. 15 sept. 2019 à 10:11, Maaza Mekuria <[email protected]> a > écrit : > >> QGIS Layer List upgrade to V3 C++ plugin - Geographic Information Systems >> Stack Exchange <style>body,.top-bar{margin-top:1.9em}</style> >> >> I was upgrading a c++ plugin that I had used in the past and almost >> eliminated all the the usual compiler errors due to version changes >> according for the current version (3.6). The plugin used to collect current >> map canvas layers in a combo list box for selection. I am getting two >> errors that I can't figure out what to do with. This code compiled without >> problem pre-2.0. >> >> The first happens to be about QGSMapLayer that can't be instantiated >> because it is turned as an abstract class and I am getting an error >> [Severity Code Description Project File Line Source Suppression State Error >> C2259 'QgsMapLayer': cannot instantiate abstract class tarjan_sccplugin >> C:\OSGeo4W64\apps\Qt5\include\QtCore\qlist.h 214 Build ] >> >> This is portion of the code generating the error. Where >> cmbNetSourceLayer is a combo-box . >> >> void tarjan_sccGui::populateLayers( QString const& url ) { >> cmbNetSourceLayer->clear(); >> >> QString layerName; QString layerType; >> >> // fill list of layersQMap<QString, QgsMapLayer*> mapLayers = >> QgsProject::instance()->mapLayers();QMap<QString, QgsMapLayer*>::iterator >> layer_it = mapLayers.begin(); >> for (; layer_it != mapLayers.end(); ++layer_it){ >> QgsVectorLayer* vl = dynamic_cast<QgsVectorLayer*>(layer_it.value()); >> if (!vl) >> continue; >> else >> >> cmbNetSourceLayer->addItem(vl->name() );} >> >> The second error appears to be in explicit declaration for the plugin. >> Something has changed in how the plugins are initiated. [Severity Code >> Description Project File Line Source Suppression State Error (active) >> invalid explicit instantiation declaration tarjan_sccplugin >> d:\GIS\v3\Quantum-GIS\src\core\qgsoptionalexpression.h 82 IntelliSense ] >> >> No idea what must be done to overcome this error. The cited module >> appears to be an optional data module. >> >> >> Any help is appreciated. >> _______________________________________________ >> QGIS-Developer mailing list >> [email protected] >> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer >> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer > >
_______________________________________________ QGIS-Developer mailing list [email protected] List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
