92 Commits

Author SHA1 Message Date
Nyall Dawson
98603b7866 [plugins] When a user clicks the "Reload all repositories" button
manually in the plugin manager, then force a reload of the repositories
and don't rely on cached copies of the repo manifest

Otherwise it's not possible to force a refresh on certain types of
plugin repositories where it's not possible to modify the Cache-Control
attribute of the repo

Note that to avoid unnecessary server load, we still use cached
copies during startup and by default. It's only when a user explicitly
hits the "Reload all repositories" button that we force a non-cached
fetch.

Fixes #34351
2020-05-29 03:47:39 +10:00
Ivan Ivanov
e090036a11 Adds support to sort the plugins by update date; Show the plugin version update time 2020-03-30 05:02:50 +03:00
olivierdalang
c924cfd1d2 [feature][plugin manager] allow to install stable or experimental 2020-03-04 18:38:42 +01:00
Borys Jurgiel
ffb38e8a32 Revert 5c1cc4a40d84. I wasn't aware dashes in plugin directory names have been authorized at some point and we have a number of affected plugins now (please note personally I am opposed to putting dashes to Python package names). Fixes #32968. 2019-11-21 04:54:39 +10:00
Borys Jurgiel
5c1cc4a40d [Plugin installer] properly handle zip file names with a dash as a version suffix separator 2019-10-04 22:17:51 +02:00
Borys Jurgiel
1aa102815c [Plugin Installer] Only force http icon protocol for http-based repositories. Fixes #31783 2019-09-16 08:30:47 +02:00
Denis Rouzaud
1dc7b2f6ed
allow to follow redirect for custom plugin repo url (#30869) 2019-07-23 12:53:33 +02:00
Alessandro Pasotti
1622d73e25 [feature][needs-docs] Plugin dependencies
Implementation of QEP 132:

Manage python cross-plugins dependencies

A new optional metadata entry will be added to metadata.txt: plugin_dependencies
The metadata will contain a comma separated list of plugin names, with a format similar
of the one used by pip, with optional version.
After a successful plugin installation, if the plugin has any unsatisfied dependency,
a dialog will pop-up with the list of unmet dependencies and the user
will be able to choose if she wants to install or upgrade the
dependencies or ignore them.

Example metadata:

plugin_dependencies = QuickMapServices==0.19.10.1,QuickWKT

Funded by GISCE-TI S.L.
2019-03-15 17:40:42 +01:00
Mathieu Pellerin
3057fd61b0
[plugin manager] Dont disconnect overall finished signal 2019-03-09 18:45:30 +07:00
Nyall Dawson
ca06d407a0 Add custom QNetworkRequest::Attributes for initiator network request class name and internal id
And allow these to be retrieved from QgsNetworkRequestParameters.
This allows logging code to identify the area of code where a request
originated from, making debugging much easier!

Tag all requests created with appropriate class name and IDs
2019-01-25 23:47:05 +11:00
Chris Mayo
70a37bf981 Tidy installer_data.py and utils.py
- Fix unused and missing imports
- Only import configparser is needed for Python 3
- Unnecessary string u prefix for Python 3
- Comment typo
2018-09-06 05:56:09 +10:00
Chris Mayo
051e4d1c02 Mark a Python plugin without an __init__.py as broken
utils.findPlugins() checks for the existence of an __init__.py which
results in an attempt to enable a plugin without an __init__.py being
blocked with the only notification being a message in the Plugins log:

WARNING    Plugin "<name>" is not compatible with this version of QGIS.
             It will be disabled.

This is not very informative, especially because it is the same message
used for a metadata version mismatch.

Adding this check to Plugins.getInstalledPlugin(), which already
duplicates the metadata checks from utils.findPlugins(), results in the
plugin being marked as broken in the Plugins dialog.
2018-08-30 19:32:53 +01:00
Nyall Dawson
343872b719 Flip some code to use format 2018-05-22 06:02:55 +10:00
Nyall Dawson
3de7b383b0 Fix bad regex escaping 2018-05-22 06:02:55 +10:00
luz.paz
f01bff25ac Typos
Found via `codespell`
2018-05-08 09:33:07 +10:00
Denis Rouzaud
3dc3d9d1b2 unite QgsMessageLog::Level and QgsMessageBar::MessageLevel in Qgis::MessageLevel
make enum items lower case
remove unused QgsMessageLog::None and All
2018-02-06 08:56:40 -04:00
Borys Jurgiel
b43386605f [Plugin installer] Make QGIS x.99 only compatible with plugins for the next major release. Introduce 'pyQgisVersion' that usually sticks to QGIS_VERSION, but bumps up to the next release for all the .99 versions 2017-12-18 17:30:15 +01:00
Borys Jurgiel
7c01b7e647 [Plugin installer] Follow up 54f312fa7f5b1ff and temporarily hardcode plugin compatibility as 3.0 2017-12-18 14:58:35 +01:00
Borys Jurgiel
3da5ab6996 [Plugin installer] Properly handle 301 Redirection 2017-12-11 21:03:44 +01:00
Borys Jurgiel
4677026c3e
Merge pull request #5532 from borysiasty/nopreloading
[Plugin manager] [needs-doc] Don't preload all plugins for a test
2017-11-07 22:19:57 +01:00
Alessandro Pasotti
bb36fa7f48 [bugfix] Use QgsApplication.authManager()
instead of the old singleton
2017-11-07 08:57:27 +01:00
Borys Jurgiel
a8f46652d4 [Plugin manager] Remove dead code 2017-11-04 22:55:11 +01:00
Borys Jurgiel
cfec339c30 [Plugin manager] [needs-doc] Don't preload plugins for a test if they are broken. That function slowed down QGIS startup 2017-11-04 22:46:03 +01:00
Borys Jurgiel
fb7f8f17f7 [Plugin installer] Fix broken warning about outdated plugin updates in the user directory masking a newer core version 2017-11-03 19:12:44 +01:00
Borys Jurgiel
4b6228d81e Move plugin installer's settings to the [app] section 2017-11-02 09:15:34 +01:00
Borys Jurgiel
77de9fc5ce [Plugin manager] remove depreciated and unused stuff 2017-10-29 20:26:35 +01:00
Borys Jurgiel
4cde520248 [Plugin manager][needs-doc] Read a CHANGELOG file in case the relevant metadata key is empty 2017-10-27 21:01:40 +02:00
Mario Baranzini
78af413dcc Remove python future compatibility layer 2017-08-07 10:27:15 +02:00
Juergen E. Fischer
ecc5bb508e pep8/pyflakes3 cleanups 2017-03-04 02:38:15 +01:00
Juergen E. Fischer
a10c890383 More QgsSettings updates:
* revives WMS
* QgsSettings::clear() added
* section added to QgsSettings::contains()
* type parameter added to sip binding of QgsSettings.value()
* TODO: customization & evis
2017-03-04 02:37:59 +01:00
Denis Rouzaud
b119744773 replace cancelling, cancelled and cancellation by canceling, canceled and cancelation, respectively (#4000)
* replace cancelling and cancelled by canceling and canceled, respectively

see https://github.com/qgis/qgis3_UIX_discussion/issues/19

* replace cancellation by cancelation
2017-01-16 22:27:14 +01:00
Denis Rouzaud
0a63d1f2c2 [spellcheck] properly look into various cases and add more fixes" 2017-01-16 16:39:20 +01:00
Richard Duivenvoorde
54f312fa7f Temporarily hardcode plugins version in url ?qgis=3.0
If QGIS 3.0 is actually released this line should be removed.
2016-10-28 16:57:42 +02:00
Mathieu Pellerin
eefeef573d fix a couple of python warnings (#3526) 2016-09-23 07:36:05 +02:00
Mathieu Pellerin
e7c9400b06 [plugin manager] fix broken QDirIterator next() call, make it pyqt5 5.7 compatible (#3517) 2016-09-22 09:25:32 +02:00
Juergen E. Fischer
31df84aa6b run 2to3 on source 2016-09-21 23:30:04 +02:00
Matthias Kuhn
bb79d13e82 Remove deprecated Qgis::WKBType and API cleanup (#3325)
* Remove deprecated Qgis::WKBType and API cleanup

Renames QgsWKBTypes to QgsWkbTypes

Replaces usage of the enums:

* Qgis::WKBType with QgsWkbTypes::Type
* Qgis::GeometryType with QgsWkbTypes::GeometryType

Their values should be forward compatible (a fact that was already
explited up to now by casting between the types)

Renames some SSLxxx to SslXxx and URIxxx to UriXxx

* Fix build warnings and simplify type handling

* Add a fixer to rewrite imports

* The forgotten rebase conflictThe forgotten rebase conflicts

* QgsDataSourcURI > QgsDataSourceUri

* QgsWKBTypes > QgsWkbTypes

* Qgis.WKBGeom > QgsWkbTypes.Geom

* Further python fixes

* Guess what... Qgis::wkbDimensions != QgsWkbTypes::wkbDimensions

* Fix tests

* Python 3 updates

* [travis] pull request caching cannot be disabled

so at least use it in r/w mode

* Fix python3 print in plugins
2016-08-04 09:10:08 +02:00
Alexander Bruy
156c09880b [plugin manager] mark installed plugins as trusted (fix #15338) 2016-07-25 20:24:12 +03:00
Nyall Dawson
1a2231f10c Rename QGis class to Qgis, for capitalisation consistency 2016-07-21 22:01:38 +10:00
Alexander Bruy
6e1302047c [pluginmanager] show trusted plugins (fix #14916) 2016-06-01 13:48:47 +03:00
Denis Rouzaud
8071acd064 move PyQt compat folder to python/qgis 2016-04-29 14:10:26 +02:00
Matthias Kuhn
48943d44f6 Prefer usage of https:// over http:// 2016-04-04 11:08:23 +02:00
Matthias Kuhn
e133b42896 Enable console with Python3 / PyQt5 2016-03-29 08:20:43 +02:00
Juergen E. Fischer
06f995316e plugin installer: switch to pyqt wrappers 2016-03-21 17:00:25 +01:00
Juergen E. Fischer
fb3fcfa3a0 Python3/Qt5/2to3 updates:
* pyqtwrappers update (add QtNetwork, QtXml, QtSql, QtTest, uic)
* 2to3 updates
* move QPyNullVariant/NULL to PyQt.QtCore
* add global unicode/basestring/long for Python3
* expand QtGui, QtCore module and star exports
* Qscintilla2
* replace Set import with set builtin
2016-03-14 20:38:20 +01:00
Matthias Kuhn
30910df388 Partially revert fa40e78
It failed to load functional plugins also
2016-02-15 12:51:53 +01:00
Matthias Kuhn
fa40e78f60 [Plugins] disable plugins which crash on load 2016-02-15 10:23:39 +01:00
Nyall Dawson
cbe8cb7282 Formatting update, using newer autopep8 version 2016-01-30 09:33:24 +11:00
Larry Shaffer
36e7026c0d [FEATURE][auth] Add support to Plugin Manager 2015-12-03 17:52:22 -07:00
Juergen E. Fischer
b39055b39c indentation update (now including autopep8) 2015-08-22 14:29:41 +02:00