<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Hello Enrico,</p>
    <p>Do not change the common dialog closeEvent Method, you should
      subclass it.</p>
    <p>class MyCustomDialog(AlgorithmDialog):</p>
    <p>    ...<br>
    </p>
    <p>You can give a custom dialog to you algorithm using GeoAlgorithm.<span
        class="pl-en">getCustomParametersDialog</span> method.</p>
    <p>class MyAlgorithm(GeoAlgorithm):</p>
    <p>    ...</p>
    <p>    def <span class="pl-en">getCustomParametersDialog(self):</span></p>
    <p><span class="pl-en">        return </span>MyCustomDialog()</p>
    <p><br>
    </p>
    <p>Do not forget to call the base AlgorithmDialog.closeEvent method
      in yours :</p>
    <p>class MyCustomDialog(AlgorithmDialog):</p>
    <p>    def closeEvent(self):<br>
    </p>
    <p>        super(MyCustomDialog, self).closeEvent()</p>
    <p><br>
    </p>
    <p>This is the way to execute custom tasks in the closeEvent, I do
      not say that this the better way for your job.<br>
    </p>
    <p>Cheers<br>
    </p>
    <pre class="moz-signature" cols="72">Arnaud Morvan
Ingénieur logiciel
Tél: +33 (0)4 58 48 20 32

Camptocamp France SAS
Savoie Technolac, BP 352
73377 Le Bourget du Lac Cedex
<a class="moz-txt-link-freetext" href="http://www.camptocamp.com">http://www.camptocamp.com</a></pre>
    <div class="moz-cite-prefix">Le 23/03/2017 à 18:14, enrico chiaradia
      a écrit :<br>
    </div>
    <blockquote cite="mid:1c9d634b-f21d-7832-6b45-08a94b08eaca@yahoo.it"
      type="cite">
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      <p>Dear (processing) developers,</p>
      <p>for my plugin (IO Geopaparazzi), I need to stop the execution
        of an external thread when the user presses the X button of the
        form.</p>
      <p>I though to overload the closeEvent in this way:</p>
      <p>from processing.gui.AlgorithmDialog import AlgorithmDialog<br>
      </p>
      <p>[omitted]</p>
      <p>class ExportTilesAlgorithm(GeoAlgorithm):</p>
      <p>    [omitted]</p>
      <p>    # get the AlgorithmDialog dialog object and overload the
        closeEvent<br>
            AlgorithmDialog.closeEvent = self.closeEvent<br>
      </p>
      <p>    [omitted]<br>
      </p>
          def closeEvent(self, evt):<br>
             # necessary to close the thread before it is finished<br>
             self.workThread.stop()
      <p>it works perfectly but I'm not sure that it will not induce
        anomalous behaviours in other geoalgorithms as the original
        function is (from AlgorithmDialog.py) :</p>
      <p>def closeEvent(self, evt):<br>
               
QgsMapLayerRegistry.instance().layerWasAdded.disconnect(self.mainWidget.layerAdded)<br>
               
QgsMapLayerRegistry.instance().layersWillBeRemoved.disconnect(self.mainWidget.layersWillBeRemoved)<br>
                super(AlgorithmDialog, self).closeEvent(evt)<br>
      </p>
      <p>Any suggestions?</p>
      <p>Thank you</p>
      <p>enrico<br>
      </p>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Qgis-developer mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Qgis-developer@lists.osgeo.org">Qgis-developer@lists.osgeo.org</a>
List info: <a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/qgis-developer">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a>
Unsubscribe: <a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/qgis-developer">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a></pre>
    </blockquote>
    <br>
  </body>
</html>