<div dir="auto">Nyall ,  <span style="font-family:sans-serif">Thank you for your response. </span><div dir="auto"> I heard that argument before and replied  by saying that i had tried Python and the program was too slow for the application i was working on (data structures and storage) and that was my main reason to use C++.  But i was told that i need to learn more Python and be a better programmer etc ...  </div><div dir="auto"><br></div><div dir="auto"> I felt i was completely ignored. At that time  i was able to do it on my own becuase there was a lot more private activity.  I think now QGIS has almost become corporate and there is some hesitation to share information (not knowledge) unless a transaction happens.</div><div dir="auto"><br></div><div dir="auto">  In my opinion this has become a barrier to innovate.</div><div dir="auto"><br></div><div dir="auto">Thank you again,<br><div dir="auto"><br></div><div dir="auto">.</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Oct 26, 2019, 2:35 PM Nyall Dawson <<a href="mailto:nyall.dawson@gmail.com">nyall.dawson@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Sun, 27 Oct 2019 at 09:01, Maaza Mekuria <<a href="mailto:mcmekuria@gmail.com" target="_blank" rel="noreferrer">mcmekuria@gmail.com</a>> wrote:<br>
><br>
> Thank you Etienne.  I did just what you suggested. But did not het anywhere.  I still get the same error message.<br>
><br>
> My question did not get resolved and only for lack of information i can't move forward with the upgrade.<br>
> 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.<br>
><br>
> It is a pity that I can't upgrade this plugin for lack of information.<br>
><br>
> 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.<br>
<br>
There's no conspiracy here -- rather, c++ plugins have always been<br>
horrible to build, deploy and debug (especially on Windows). Over time<br>
the core project recognised this, realised it was a bad situation for<br>
developers like yourself, and started encouraging people to completely<br>
avoid using c++ plugins and move to Python wherever possible.<br>
<br>
I strongly suspect that the reason no-one has answered your question<br>
is just because no-one **knows** the answer! (I certainly don't -- I<br>
saw your earlier thread, and the only advice I was able to offer at<br>
the time was what Etienne had already suggested).<br>
<br>
Nyall<br>
<br>
<br>
><br>
> Thank for your help anyway.<br>
><br>
><br>
> On Sun, Sep 15, 2019, 9:11 PM Etienne Trimaille <<a href="mailto:etienne.trimaille@gmail.com" target="_blank" rel="noreferrer">etienne.trimaille@gmail.com</a>> wrote:<br>
>><br>
>> Hi,<br>
>><br>
>> I can't really answer your question but you should use <a href="https://qgis.org/api/classQgsMapLayerComboBox.html" rel="noreferrer noreferrer" target="_blank">https://qgis.org/api/classQgsMapLayerComboBox.html</a> instead of creating your own combobox. (if possible).<br>
>><br>
>> Etienne<br>
>><br>
>> Le dim. 15 sept. 2019 à 10:11, Maaza Mekuria <<a href="mailto:mcmekuria@gmail.com" target="_blank" rel="noreferrer">mcmekuria@gmail.com</a>> a écrit :<br>
>>><br>
>>> QGIS Layer List upgrade to V3 C++ plugin - Geographic Information Systems Stack Exchange <style>body,.top-bar{margin-top:1.9em}</style><br>
>>><br>
>>> 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.<br>
>>><br>
>>> 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 ]<br>
>>><br>
>>> This is portion of the code generating the error.  Where cmbNetSourceLayer is a combo-box .<br>
>>><br>
>>> void tarjan_sccGui::populateLayers( QString const& url ) { cmbNetSourceLayer->clear();<br>
>>><br>
>>> QString layerName; QString layerType;<br>
>>><br>
>>> // fill list of layers<br>
>>> QMap<QString, QgsMapLayer*> mapLayers = QgsProject::instance()->mapLayers();<br>
>>> QMap<QString, QgsMapLayer*>::iterator layer_it = mapLayers.begin();<br>
>>><br>
>>> for (; layer_it != mapLayers.end(); ++layer_it)<br>
>>> {<br>
>>>     QgsVectorLayer* vl = dynamic_cast<QgsVectorLayer*>(layer_it.value());<br>
>>>     if (!vl)<br>
>>>         continue;<br>
>>>     else<br>
>>><br>
>>>      cmbNetSourceLayer->addItem(vl->name() );<br>
>>> }<br>
>>><br>
>>> 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 ]<br>
>>><br>
>>> No idea what must be done to overcome this error.  The cited module appears to be an optional data module.<br>
>>><br>
>>><br>
>>> Any help is appreciated.<br>
>>><br>
>>> _______________________________________________<br>
>>> QGIS-Developer mailing list<br>
>>> <a href="mailto:QGIS-Developer@lists.osgeo.org" target="_blank" rel="noreferrer">QGIS-Developer@lists.osgeo.org</a><br>
>>> List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
>>> Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
><br>
> _______________________________________________<br>
> QGIS-Developer mailing list<br>
> <a href="mailto:QGIS-Developer@lists.osgeo.org" target="_blank" rel="noreferrer">QGIS-Developer@lists.osgeo.org</a><br>
> List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
> Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
</blockquote></div>