NDEVR
API Documentation
GNSSOpenSettingsButton

A button that opens the GPS settings dialog when clicked, displaying the current connection status and quality. More...

Inheritance diagram for GNSSOpenSettingsButton:
[legend]
Collaboration diagram for GNSSOpenSettingsButton:
[legend]

Public Member Functions

 GNSSOpenSettingsButton (const UUID &active_sensor, QWidget *parent=nullptr)
 Constructs the button for a sensor identified by UUID.
 GNSSOpenSettingsButton (GPSSensor *sensor, QWidget *parent=nullptr)
 Constructs the button for a specific GPS sensor.
 GNSSOpenSettingsButton (QWidget *parent=nullptr)
 Constructs the button with no sensor.
virtual ~GNSSOpenSettingsButton ()
 Destructor.
void newGPSChosenSignal ()
 Emitted when a new GPS sensor is chosen.
void onUpdatedSignal ()
 Emitted when sensor data is updated.
GNSSQualitySettings qualitySettings () const
 Returns the current quality settings for readings.
GPSSensorsensor () const
 Returns the associated GPS sensor.
void setSensor (const UUID &sensor)
 Sets the GPS sensor by UUID.
void setSensor (GPSSensor *sensor)
 Sets the GPS sensor to use.
void setTakeLocationReading (bool value)
 Sets whether to take location readings.
void setTakeOrientationReading (bool value)
 Sets whether to take orientation readings.
Public Member Functions inherited from Button
 Button (ButtonState state, QWidget *parent=nullptr)
 Constructs a Button with a specified visual state.
 Button (const std::function< void(Button *)> &on_click, QWidget *parent=nullptr)
 Constructs a Button with a click callback.
 Button (const TranslatedString &name, const std::function< void(Button *)> &on_click, QWidget *parent=nullptr)
 Constructs a Button with a title and click callback.
 Button (const TranslatedString &name, const StringView &icon, const std::function< void(Button *)> &on_click, QWidget *parent=nullptr)
 Constructs a Button with a title, icon, and click callback.
 Button (const TranslatedString &name, const StringView &icon, TooltipType tooltip, const std::function< void(Button *)> &on_click, QWidget *parent=nullptr)
 Constructs a Button with a title, icon, tooltip type, and click callback.
 Button (const TranslatedString &name, const StringView &icon=StringView(), QWidget *parent=nullptr)
 Constructs a Button with a title and optional icon.
 Button (QWidget *parent=nullptr)
 Constructs a Button with an optional parent widget.
 ~Button ()
 Destroys the Button and releases resources.
ButtonState buttonState () const
 Returns the current visual state of the button.
void clearBackgroundColor ()
 Clears any custom background color, reverting to the theme default.
void copyButtonFrom (Button *button)
 Copies all visual properties and settings from another Button.
void enterEvent (ButtonEnterEvent *e) override
 Handles the mouse enter event.
bool event (QEvent *e) override
 Processes a generic event, handling theme and style changes.
bool eventFilter (QObject *watched, QEvent *event) override
 Filters events for watched objects, used for push button event forwarding.
const StringiconName () const
 Returns the current icon resource name.
void leaveEvent (QEvent *e) override
 Handles the mouse leave event.
QMenu * menu () const
 Returns the dropdown menu attached to this button, if any.
QSize minimumSizeHint () const override
 Returns the minimum recommended size for the button.
void paintEvent (QPaintEvent *event) override
 Handles the paint event, rendering the button with its current style and state.
bool requestButtonState (ButtonState state)
 Requests that the button adopt the specified state, returning whether it was accepted.
void requestFixedState (bool fixed_state)
 Requests that the button maintain a fixed state, preventing automatic state changes.
int scaledIconSize () const
 Returns the icon size after applying the current size multiplier.
void setAlignment (Qt::Alignment m_alignment)
 Sets the text alignment within the button.
void setAutoDefault (bool is_auto_default)
 Sets whether the button is an auto-default button in dialogs.
void setBackgroundColor (const RGBColor &color, bool update_foreground=true)
 Sets a custom background color for the button.
void setBackgroundOpacity (fltp04 background_opacity)
 Sets the opacity of the button background (0.0 = transparent, 1.0 = opaque).
void setBold (bool is_bold)
 Sets whether the button text is rendered in bold.
void setButtonDialog (ButtonDialog *dialog)
 Associates a ButtonDialog with this button for toggle-controlled dialog visibility.
void setButtonState (ButtonState state)
 Sets the visual state/style of the button.
void setCheckable (bool checkable)
 Sets whether the button supports a checked/unchecked toggle state.
void setChecked (bool checked)
 Sets the checked state of the button.
void setCheckedIconName (const StringView &icon)
 Sets an alternate icon displayed when the button is checked.
void setClickCooldown (const TimeSpan &span)
 Sets the minimum time between successive click events.
void setDefault (bool is_default)
 Sets whether the button is the default button in dialogs.
void setDisabledToolTip (const TranslatedString &tooltip)
 Sets the tooltip shown when the button is disabled.
void setFlat (bool is_flat)
 Sets whether the button has a flat (borderless) appearance.
void setFocusOnPress (bool focus_on_press)
 Sets whether the button should receive focus when pressed.
void setFontMultiplier (fltp04 font_multiplier)
 Sets a multiplier for the button's font size.
void setForErrorOrSuccess (bool is_error, bool is_success)
 Sets the button's visual state to indicate an error or success condition.
void setFunction (const std::function< void(Button *)> &on_click)
 Sets the callback function invoked when the button is clicked.
void setHoverFunction (const std::function< void(Button *, bool hovering)> &on_hover)
 Sets a callback function invoked when the mouse enters or leaves the button.
void setHoverIconName (const StringView &icon)
 Sets an alternate icon displayed when the button is hovered.
void setHoverIconSizeMultiplier (fltp04 icon_size_multiplier)
 Sets a multiplier for the icon size when the button is hovered.
void setIcon (const QIcon &icon)
 Sets the icon directly from a QIcon object.
void setIconColor (const RGBColor &color)
 Sets a custom color for the button icon.
void setIconName (const StringView &icon)
 Sets the icon by resource name, triggering an icon update.
void setIconSize (int size)
 Sets the icon size in pixels, overriding automatic scaling.
void setIconSizeMultiplier (fltp04 icon_size_multiplier)
 Sets a multiplier for the default icon size.
void setIgnoreClicks (bool ignore_clicks)
 Sets whether click events should be ignored.
void setLogOutput (bool log_output)
 Enables or disables logging of button click events.
void setMargin (uint04 margin)
 Sets the margin around the button content in pixels.
void setMenu (QMenu *menu)
 Sets a dropdown QMenu to display when the button is clicked.
void setMenuDialog (QWidget *widget)
 Sets a widget to be shown as a popup menu when the button is clicked.
void setPressFunction (const std::function< void(Button *, bool hovering)> &on_press)
 Sets a callback function invoked when the button is pressed or released.
void setProgressPercent (fltp04 progress)
 Sets a progress percentage to display as an overlay on the button.
void setSound (const StringView &sound)
 Sets the sound played when the button is clicked.
void setText (const QString &text)
 Sets the display text of the button (Qt override).
void setTitle (const TranslatedString &title)
 Sets the display title of the button.
void setToolTip (const QString &tip)
 Sets the tooltip text from a QString.
void setToolTip (const TranslatedString &enabled_tooltip, const TranslatedString &disabled_tooltip)
 Sets separate tooltips for the enabled and disabled states.
void setToolTip (const TranslatedString &tooltip)
 Sets the tooltip text from a TranslatedString.
void setToolTip (TooltipType type)
 Sets the tooltip from a predefined tooltip type.
void setup (ApplicationOption< bool > &checked_var)
 Sets up the button as a checkable toggle bound to an ApplicationOption<bool>.
void setup (const TranslatedString &name, const StringView &icon, ApplicationOption< bool > &checked_var)
 Sets up the button with a name, icon, and ApplicationOption<bool> binding.
void setup (const TranslatedString &name, const StringView &icon, const std::function< void(Button *)> &on_click)
 Sets up the button with a name, icon, and click callback.
void setup (const TranslatedString &name, const StringView &icon, Resource< bool > &checked_var)
 Sets up the button as a checkable toggle bound to a bool Resource.
void setup (const TranslatedString &name, const StringView &icon, TooltipType tooltip, const std::function< void(Button *)> &on_click)
 Sets up the button with a name, icon, tooltip type, and click callback.
void setup (GenericOption &checked_var)
 Sets up the button from a GenericOption, using its name, icon, and value.
void showPopupMenu (QWidget *widget, bool is_popup=true)
 Shows a popup menu widget anchored to this button.
void showToolTip () const
 Programmatically shows the button's tooltip at the button's position.
QSize sizeHint () const override
 Returns the recommended size for the button.
int styleDefaultIconSize () const
 Returns the default icon size as determined by the current style.
const TranslatedStringtitle () const
 Returns the translated title of the button.
void virtualMouseEvent (QEvent::Type event)
 Simulates a mouse event of the given type on the button.

Protected Member Functions

void _setSensor (GPSSensor *sensor)
 Internal setter for the GPS sensor.
void hideGPSDialogSlot ()
 Slot called to hide the GPS dialog.
void init ()
 Initializes the button UI and signal connections.
void onUpdatedSlot ()
 Slot called when the sensor data is updated.
Protected Member Functions inherited from Button
void mousePressEvent (QMouseEvent *) override
 Handles the mouse press event.
void mouseReleaseEvent (QMouseEvent *) override
 Handles the mouse release event for click detection.
void onButtonClickSlot ()
 Slot invoked when the button is clicked, executing the click callback.
void onButtonPressSlot ()
 Slot invoked when the button is pressed down.
void onButtonReleaseSlot ()
 Slot invoked when the button is released.

Protected Attributes

UUID m_active_sensor = Constant<UUID>::Invalid
 The UUID of the active sensor.
QPointer< GPSDialogm_gps_dialog
 The GPS settings dialog.
GPSSensorm_sensor = nullptr
 The GPS sensor instance.
bool m_take_location_reading = true
 Whether location readings are enabled.
bool m_take_orientation_reading = false
 Whether orientation readings are enabled.
Protected Attributes inherited from Button
Qt::Alignment m_alignment
 Text alignment within the button.
fltp04 m_background_opacity = 1.0f
 Opacity of the button background.
String m_checked_icon
 Icon resource name displayed when checked.
TimeSpan m_click_cooldown = TimeSpan(0.1)
 Minimum duration between successive clicks.
String m_current_icon
 The currently displayed icon resource name.
ButtonDialogm_dialog = nullptr
 Associated ButtonDialog for toggle-controlled visibility.
TranslatedString m_disabled_tooltip
 Tooltip shown when the button is disabled.
TranslatedString m_enabled_tooltip
 Tooltip shown when the button is enabled.
bool m_fixed_state_requested = false
 Whether the button state has been locked.
bool m_focus_on_press = true
 Whether the button receives focus when pressed.
fltp04 m_font_multiplier = 1.0f
 Multiplier applied to the default font size.
bool m_has_custom_background_color = false
 Whether a custom background color has been set.
String m_hover_icon
 Icon resource name displayed on hover.
fltp04 m_hover_icon_size_multiplier = Constant<fltp04>::Invalid
 Icon size multiplier when hovered, or Invalid for default.
String m_icon
 The requested icon resource name.
RGBColor m_icon_color
 Custom icon color override.
fltp04 m_icon_size_multiplier = 1.0f
 Multiplier applied to the default icon size.
QTResourceListenerm_icon_theme_listener = nullptr
 Listener for icon theme changes.
bool m_ignore_clicks = false
 Whether to ignore click events.
bool m_is_auto_default_button = false
 Whether this is an auto-default button in a dialog.
bool m_is_bold = false
 Whether the button text is bold.
bool m_is_default_button = false
 Whether this is the default button in a dialog.
Time m_last_click_time = Time(0)
 Timestamp of the most recent click event.
bool m_log_output = true
 Whether click events are logged.
uint04 m_margin = Constant<uint04>::Invalid
 Custom margin around button content, or Invalid for default.
QPointer< QWidget > m_menu_dialog = nullptr
 Widget shown as a popup menu on click.
std::function< void(Button *)> m_on_click = nullptr
 Callback invoked on button click.
std::function< void(Button *, bool hovering)> m_on_hover = nullptr
 Callback invoked on hover state change.
std::function< void(Button *, bool pressing)> m_on_press = nullptr
 Callback invoked on press state change.
fltp04 m_progress = Constant<fltp04>::Invalid
 Progress overlay value (0.0-1.0), or Invalid to hide.
QPushButton * m_push_button = nullptr
 Internal QPushButton used for push button state rendering.
String m_sound
 Sound resource name played on click.
ButtonState m_state = ButtonState::e_large
 The current visual state/style of the button.
TranslatedString m_title
 The display title of the button.

Additional Inherited Members

Public Types inherited from Button
enum  ButtonState {
  e_large , e_medium , e_medium_centered , e_small ,
  e_circular , e_circular_small , e_push_button , e_none
}
 Defines the visual size and style of the button. More...
Static Public Attributes inherited from Button
static String s_default_sound
 The default sound played by all buttons on click.

Detailed Description

A button that opens the GPS settings dialog when clicked, displaying the current connection status and quality.

Definition at line 41 of file GPSWidget.h.

Constructor & Destructor Documentation

◆ GNSSOpenSettingsButton() [1/3]

GNSSOpenSettingsButton::GNSSOpenSettingsButton ( QWidget * parent = nullptr)
explicit

Constructs the button with no sensor.

Parameters
[in]parentOptional parent widget.

◆ GNSSOpenSettingsButton() [2/3]

GNSSOpenSettingsButton::GNSSOpenSettingsButton ( GPSSensor * sensor,
QWidget * parent = nullptr )
explicit

Constructs the button for a specific GPS sensor.

Parameters
[in]sensorThe GPS sensor.
[in]parentOptional parent widget.

References sensor().

◆ GNSSOpenSettingsButton() [3/3]

GNSSOpenSettingsButton::GNSSOpenSettingsButton ( const UUID & active_sensor,
QWidget * parent = nullptr )
explicit

Constructs the button for a sensor identified by UUID.

Parameters
[in]active_sensorThe sensor UUID.
[in]parentOptional parent widget.

Member Function Documentation

◆ _setSensor()

void GNSSOpenSettingsButton::_setSensor ( GPSSensor * sensor)
protected

Internal setter for the GPS sensor.

Parameters
[in]sensorThe GPS sensor.

References sensor().

◆ qualitySettings()

GNSSQualitySettings GNSSOpenSettingsButton::qualitySettings ( ) const

Returns the current quality settings for readings.

Returns
The GNSS quality settings.

◆ sensor()

GPSSensor * GNSSOpenSettingsButton::sensor ( ) const

Returns the associated GPS sensor.

Returns
Pointer to the GPS sensor.

Referenced by GNSSOpenSettingsButton(), _setSensor(), setSensor(), and setSensor().

◆ setSensor() [1/2]

void GNSSOpenSettingsButton::setSensor ( const UUID & sensor)

Sets the GPS sensor by UUID.

Parameters
[in]sensorThe sensor UUID.

References sensor().

◆ setSensor() [2/2]

void GNSSOpenSettingsButton::setSensor ( GPSSensor * sensor)

Sets the GPS sensor to use.

Parameters
[in]sensorThe GPS sensor.

References sensor().

◆ setTakeLocationReading()

void GNSSOpenSettingsButton::setTakeLocationReading ( bool value)
inline

Sets whether to take location readings.

Parameters
[in]valueTrue to enable location readings.

Definition at line 66 of file GPSWidget.h.

References m_take_location_reading.

◆ setTakeOrientationReading()

void GNSSOpenSettingsButton::setTakeOrientationReading ( bool value)
inline

Sets whether to take orientation readings.

Parameters
[in]valueTrue to enable orientation readings.

Definition at line 69 of file GPSWidget.h.

References m_take_orientation_reading.


The documentation for this class was generated from the following file: