OpenCPN / OpenCPN

A concise ChartPlotter/Navigator. A cross-platform ship-borne GUI application supporting * GPS/GPDS Postition Input * BSB Raster Chart Display * S57 Vector ENChart Display * AIS Input Decoding * Waypoint Autopilot Navigation
https://opencpn.org/
GNU General Public License v2.0
1.04k stars 495 forks source link

RFE: Tidal Current Prediction display & controls #3481

Open rgleason opened 10 months ago

rgleason commented 10 months ago

Is your feature request related to a problem? Please describe. Please refer to David Burch's "ENC Essentials" booklet, page 43 showing qtVlm's current menu which is similar to OpenCPN but offers more information and selections:

sebastien-rosset commented 2 months ago

For the time zone configuration, it would be useful to have a global toggle that makes it possible to configure the display time, rather than each base component or plugin deciding how to display date and time. Sometimes the date/time is displayed without timezone information. Time is displayed in many widgets:

  1. Grib data table (UTC)
  2. Time of grib file and time of grib data (UTC)
  3. Weather routing (plugin option to select UTC or local time)
  4. Deviation table (time zone not displayed)
  5. Celestial navigation (UTC)
  6. tide (has option to select UTC or station time)
  7. Tracks (no timezone information)

Could it be a configuration parameter in Settings -> User Interface -> General Options? Then every widget would have to use this configuration parameter.

Collection of screenshots showing time in various formats: image

sebastien-rosset commented 2 months ago

How about if there was a global setting to control the date and time? Widgets that currently display time would have to be enhanced to read the date/time global settings, plus local override if useful (such as for tides based on local station).

image

leamas commented 2 months ago

Widgets that currently display time would have to be enhanced to read the date/time global settings [...]

This is probably the wrong way to do it, there are problems if the user updates the central configuration. In order to detect this plugins will need to poll this central configuration which is evil for obvious reasons.

A better approach is probably to think in terms of messages. Core opencpn sends a "config updated" message as part of startup and as soon as anything in the configuration is changed. Plugins just listens to these messages and updates the internal configuration according to message contents.

sebastien-rosset commented 2 months ago

Yes, I agree. I meant read the global settings when the widget is created and listen for changes, similar to what is done elsewhere in the code. I was wondering if conceptually having a global settings would even be considered.

rgleason commented 2 months ago

Sebstein, this would be a big improvement if done properly I thnk. It will help with planning and data display.