qgis / QGIS-Enhancement-Proposals

QEP's (QGIS Enhancement Proposals) are used in the process of creating and discussing new enhancements for QGIS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Integrate GPS Tools plugin functionality into core QGIS

nyalldawson opened this issue · comments

QGIS Enhancement: Integrate GPS Tools plugin functionality into core QGIS

Date 2021/03/19

Author Nyall Dawson (@nyalldawson)

Contact nyall dot dawson at gmail dot com

Version QGIS 3.22 or earlier

Summary

Since QGIS 3.0, an ongoing effort has been underway to reduce the number of "core plugins". (These are plugins which are shipped with the default QGIS install, but inactive by default.) These plugins are undesirable for a number of reasons:

  • the code is "siloed" away from the main QGIS codebase, and consequently these plugins are very poorly maintained
  • the plugin functionality is not integrated well into the QGIS application (e.g. the functionality is present only in a single dialog, and not available via Processing, the unified Data Source Manager, the global QGIS settings dialog, etc), and follows different UI conventions to the rest of QGIS
  • the plugin functionality is not available via PyQGIS, so third party plugins and scripts cannot take advantage of the features
  • an inconsistent user experience -- because the plugins are not enabled by default, the features available in different installations of QGIS can vary between different QGIS installs (depending on whether or not a user has manually enabled the plugin). This leads to user confusion and frustration, as buttons and menus which are present on "their" QGIS install are not available on another QGIS install for unclear reasons.

(see qgis/qgis4.0_api#67 for further details)

This proposal covers removing the "GPS Tools" core plugin, and integrating its functionality with the main QGIS application.

Proposed Solution

When enabled, the GPS tools plugin exposes all functionality through a single tabbed dialog:
image

This dialog mixes several different functions:

  1. Adding data to a project (via the "Load GPX file" tab, the "Import other file" tab, and "Download from GPS" tab.). See below:
    image

image

image

  1. Management of GPS devices:
    image

  2. Upload to GPS:
    image

  3. GPX conversions:
    image

It is proposed that the functionality be integrated into QGIS by the following approach:

"Add data" functionality

The features for adding data from the "Load GPX file", "Import other file" and "Download from GPS" tabs will be moved to a new "GPS" tab in unified QGIS Data Source Manager (See below):

image

The Data Source Manager was designed as a all-encompassing approach for users to add data to a QGIS project, so moving the GPS tools "add data" functions into this dialog is a natural fit, and will help expose this functionality to a wider range of users and provide a more discoverable place for this functionality to reside.

GPS Device Management

This functionality will be moved to a new "GPS Devices" tab in the main QGIS settings - Options dialog. This dialog is the normal place for all QGIS user-editable settings to reside, and again is a natural place for users to look when configuring GPS devices.

The main options dialog offers improved user experience, e.g. it offers the ability for users to search easily for settings across all tabs.

Upload to GPS/GPX conversions

These two features are "data management" style operations, and should be moved to the Processing framework accordingly. By exposing this functionality as Processing algorithms we offer users many benefits:

  • A standard UI and approach for running the tools
  • The ability to run the tools as batch processes or within models
  • Third party scripts and plugins can easily call the functionality without having to reimplement it themselves.

Affected Files

Classes from the GPS Tools plugin will be separated and moved to the core, analysis or app libraries as required. The c++ plugin code will then be removed.

Performance Implications

None

Further Considerations/Improvements

Users will be notified via the release notes/changelog of the moved plugin functionality.