PCB Environment 2
Loading...
Searching...
No Matches
UIActions Class Reference

WARNING: The non-async UIActions functions are expected to be non-concurrent. More...

#include <Actions.hpp>

Public Member Functions

 UIActions (UIApplication &)
void setUIElement (ActionTab *)
void reset ()
ConnectiongetConnection () const
const auto & getSelectionSetC () const
const auto & getSelectionSetP () const
const std::vector< Connection * > * getActiveConnections () const
void deselectAll ()
void deselect (const Component *)
void deselect (const Pin *)
void setSelection (Object *)
void setSelection (Component *)
void setSelection (Pin *)
void setSelection (const std::set< Object * > &)
void setSelectionLayer (char)
char getSelectionLayer () const
void setPreview (bool)
void setPreviewTrack (const Track &, bool legal)
bool isPreviewing () const
bool isPreviewReady () const
bool isPreviewStale () const
bool isPreviewTrackLegal () const
const TrackgetRoutePreview () const
void discardPreview ()
void setTimeoutMS (uint64_t)
void setActiveLayer (uint)
uint getActiveLayer () const
void setViaCost (float)
bool autoroute (uint64_t timeoutMS)
bool connect ()
bool routeToPoint (const Point_25 &)
bool addSegmentTo (const Point_25 &)
bool routeTo (const Point_2 &)
void setRouteMode (char mode)
char getRouteMode () const
char getLastRouteMode () const
bool routePreview (const Point_2 &)
bool routeToPointPreview (const Point_25 &)
bool addSegmentToPreview (const Point_25 &)
bool unrouteConnection ()
bool unrouteSegment ()
bool unrouteSelection ()
void updateIndicators ()
void interrupt ()
void setLockStepping (uint granularity)
void nextStep ()
void setSelectionType (char c)
char getSelectionType () const

Static Public Attributes

static constexpr const Real MinSegmentLenSq = 1.0

Detailed Description

WARNING: The non-async UIActions functions are expected to be non-concurrent.

This class implements actions on the board that can be triggered by the user and contains related state. The _ functions are run in threads via std::async. FIXME: In principle, Python code could delete objects that we are referencing without notifying us. Just don't mix UI actions and scripted ones like that! Otherwise we have to add more locking, shared_ptr, and discard flags. Typically you won't want to delete components and pins on the fly anyway.


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