Great news, thanks for the report ;) 2018-05-04 14:30 GMT+02:00 Etienne Trimaille <[email protected]>:
> For your information, with the big hint from Matthias in the last email, > it's now fixed in 2.18.20. I checked in QGIS 3, it was working fine already. > > 2017-09-26 9:07 GMT-04:00 Matthias Kuhn <[email protected]>: > >> For 2.18 it should be ok to make it /InOut/ (there was no return value >> before, so it shouldn't break anything). >> For 3.0 this can be made /Out/ as proposed. >> >> Matthias >> >> On 09/26/2017 12:06 PM, Luigi Pirelli wrote: >> > there is a SIP specification error >> > https://github.com/qgis/QGIS/blob/release-2_18/python/core/q >> gsvectorlayer.sip#L492 >> > should be QString &msgError /out/ ); >> > >> > that's the reason that error is not returned in the python side => I >> > suppose SIP would change C++ api in: >> > msg = saveStyleToDatabase( name, description, useAsDefault, >> uiFileContent) >> > Luigi Pirelli >> > >> > ************************************************************ >> ************************************** >> > * Boundless QGIS Support/Development: lpirelli AT boundlessgeo DOT com >> > * LinkedIn: https://www.linkedin.com/in/luigipirelli >> > * Stackexchange: http://gis.stackexchange.com/users/19667/luigi-pirelli >> > * GitHub: https://github.com/luipir >> > * Mastering QGIS 2nd Edition: >> > * https://www.packtpub.com/big-data-and-business-intelligence/ >> mastering-qgis-second-edition >> > ************************************************************ >> ************************************** >> > >> > >> > On 25 September 2017 at 16:21, kimaidou <[email protected]> wrote: >> >> I have tried another method >> >> >> >> * first add default style into DB via UI -> it works >> >> >> >> * the use console to create a new, not default, style >> >> msg = '' >> >> layer.saveStyleToDatabase( "a new style", "some description", False, >> None, >> >> msg ); >> >> >> >> It does not work (not new line created, and msg remains empty. No log >> in the >> >> database, which means NO query has been sent (I have change postgresql >> >> config to log all requests). >> >> >> >> But the following method works >> >> layer.listStylesInDatabase() >> >> >> >> And a new line appears in the postgresql log >> >> 2017-09-25 16:19:18.248 CEST [8984] mdouchin@qgis LOG: 00000: >> duration: >> >> 0.217 ms statement: SELECT id,styleName,description FROM layer_styles >> WHERE >> >> NOT (f_table_catalog='qgis' AND f_table_schema='sup' AND >> >> f_table_name='geo_commune' AND f_geometry_column='geom') ORDER BY >> >> update_time DESC >> >> >> >> It seems the method saveStyleToDatabase returns with no error, which >> can be >> >> caused by 2 reasons >> >> https://qgis.org/api/2.18/qgsvectorlayer_8cpp_source.html#l04347 >> >> >> >> 4369 this->exportNamedStyle( qmlDocument, msgError ); >> >> 4370 if ( !msgError.isNull() ) >> >> 4371 { >> >> 4372 return; >> >> 4373 } >> >> 4374 qmlStyle = qmlDocument.toString(); >> >> 4375 >> >> 4376 this->exportSldStyle( sldDocument, msgError ); >> >> 4377 if ( !msgError.isNull() ) >> >> 4378 { >> >> 4379 return; >> >> 4380 } >> >> >> >> /me investigates >> >> >> >> 2017-09-25 15:50 GMT+02:00 Jorge Gustavo Pereira Bastos Rocha >> >> <[email protected]>: >> >>> >> >>> Hi, >> >>> >> >>> It already happened to me. The first user to save a style became the >> owner >> >>> of the table. No other users were able to write on the layer_style >> table, >> >>> because there were DEFAULT PRIVILEGES defined. >> >>> >> >>> Can you check the postgrsql log to see if there is any problem related >> >>> with permissions? >> >>> >> >>> Regards, >> >>> >> >>> Jorge Gustavo >> >>> >> >>> ________________________________________ >> >>> De: QGIS-Developer [[email protected]] em nome >> de >> >>> kimaidou [[email protected]] >> >>> Enviado: 25 de Setembro de 2017 14:23 >> >>> Para: Luigi Pirelli >> >>> Cc: [email protected] >> >>> Assunto: Re: [QGIS-Developer] pyqgis - layer.saveDefaultStyle() for >> >>> PostGIS layers >> >>> >> >>> Hi, >> >>> >> >>> @ Tom : I really would like to trust QGIS method instead of managing >> >>> manually different providers. >> >>> >> >>> @ Luigi >> >>> No error message, even worse : i got a message telling everything went >> >>> well ;) >> >>> >> >>> layer.saveDefaultStyle() >> >>> (u'The style dbname=\'qgis\' host=localhost port=5432 >> user=\'mdouchin\' >> >>> sslmode=disable key=\'ogc_fid\' estimatedmetadata=true srid=2154 >> >>> type=MultiPolygon table="sup"."geo_commune" (geom) sql= was updated >> in the >> >>> database.', True) >> >>> >> >>> But the line is not created in the layer_styles table. >> >>> >> >>> Michaƫl >> >>> >> >>> >> >>> 2017-09-25 14:48 GMT+02:00 Luigi Pirelli >> >>> <[email protected]<mailto:[email protected]>>: >> >>> from the code: >> >>> >> >>> mLayer->saveStyleToDatabase and mLayer->saveDefaultStyle >> >>> >> >>> and in >> >>> QString QgsMapLayer::saveDefaultStyle( bool & theResultFlag ) >> >>> { >> >>> return saveNamedStyle( styleURI(), theResultFlag ); >> >>> } >> >>> >> >>> => seems you are doing correct. >> >>> >> >>> any log message? >> >>> >> >>> ****************************************** >> >>> >> >>> >> >>> void QgsVectorLayerProperties::saveDefaultStyle_clicked() >> >>> { >> >>> apply(); >> >>> QString errorMsg; >> >>> if ( mLayer->dataProvider()->isSaveAndLoadStyleToDBSupported() ) >> >>> { >> >>> QMessageBox askToUser; >> >>> askToUser.setText( tr( "Save default style to: " ) ); >> >>> askToUser.setIcon( QMessageBox::Question ); >> >>> askToUser.addButton( tr( "Cancel" ), QMessageBox::RejectRole ); >> >>> askToUser.addButton( tr( "Local database" ), QMessageBox::NoRole >> ); >> >>> askToUser.addButton( tr( "Datasource database" ), >> QMessageBox::YesRole >> >>> ); >> >>> >> >>> switch ( askToUser.exec() ) >> >>> { >> >>> case 0: >> >>> return; >> >>> case 2: >> >>> mLayer->saveStyleToDatabase( "", "", true, "", errorMsg ); >> >>> if ( errorMsg.isNull() ) >> >>> { >> >>> return; >> >>> } >> >>> break; >> >>> default: >> >>> break; >> >>> } >> >>> } >> >>> >> >>> bool defaultSavedFlag = false; >> >>> errorMsg = mLayer->saveDefaultStyle( defaultSavedFlag ); >> >>> if ( !defaultSavedFlag ) >> >>> { >> >>> QMessageBox::warning( this, tr( "Default Style" ), errorMsg ); >> >>> } >> >>> } >> >>> Luigi Pirelli >> >>> >> >>> >> >>> ************************************************************ >> ************************************** >> >>> * Boundless QGIS Support/Development: lpirelli AT boundlessgeo DOT com >> >>> * LinkedIn: https://www.linkedin.com/in/luigipirelli >> >>> * Stackexchange: http://gis.stackexchange.com/u >> sers/19667/luigi-pirelli >> >>> * GitHub: https://github.com/luipir >> >>> * Mastering QGIS 2nd Edition: >> >>> * >> >>> https://www.packtpub.com/big-data-and-business-intelligence/ >> mastering-qgis-second-edition >> >>> >> >>> ************************************************************ >> ************************************** >> >>> >> >>> >> >>> On 25 September 2017 at 13:44, Tom Chadwin >> >>> <[email protected]<mailto:[email protected]>> wrote: >> >>>> Perhaps you have to do it manually via a PostGIS query matching >> >>>> f_table_catalog, f_table_schema, and f_table_name, and updating >> styleqml >> >>>> and >> >>>> stylesld? >> >>>> >> >>>> Tom >> >>>> >> >>>> >> >>>> >> >>>> ----- >> >>>> Buy Pie Spy: Adventures in British pastry 2010-11 on Amazon >> >>>> -- >> >>>> Sent from: >> >>>> http://osgeo-org.1560.x6.nabble.com/QGIS-Developer-f4099106.html >> >>>> _______________________________________________ >> >>>> QGIS-Developer mailing list >> >>>> [email protected]<mailto:[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 >> > >> _______________________________________________ >> 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 >
_______________________________________________ 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
