KiCad PCB EDA Suite
SYMBOL_EDIT_FRAME Class Reference

The symbol library editor main window. More...

#include <symbol_edit_frame.h>

Inheritance diagram for SYMBOL_EDIT_FRAME:
SCH_BASE_FRAME EDA_DRAW_FRAME KIWAY_PLAYER EDA_BASE_FRAME TOOLS_HOLDER KIWAY_HOLDER

Public Types

enum  UNDO_REDO_LIST { UNDO_LIST, REDO_LIST }
 Remove the aItemCount of old commands from aList and delete commands, pickers and picked items if needed. More...
 
enum  HOLDER_TYPE { DIALOG, FRAME, PANEL }
 

Public Member Functions

 SYMBOL_EDIT_FRAME (KIWAY *aKiway, wxWindow *aParent)
 
 ~SYMBOL_EDIT_FRAME () override
 
void SwitchCanvas (EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType) override
 Switch currently used canvas ( Cairo / OpenGL). More...
 
bool IsContentModified () override
 Get if any parts or libraries have been modified but not saved. More...
 
bool HasLibModifications () const
 Check if any pending libraries have been modified. More...
 
wxString GetCurLib () const
 The nickname of the current library being edited and empty string if none. More...
 
wxString SetCurLib (const wxString &aLibNickname)
 Set the current library nickname and returns the old library nickname. More...
 
LIB_TREE_NODEGetCurrentTreeNode () const
 
LIB_ID GetTreeLIBID (int *aUnit=nullptr) const
 Return the LIB_ID of the library or symbol selected in the symbol tree. More...
 
LIB_PARTGetCurPart ()
 Return the current part being edited or NULL if none selected. More...
 
void SetCurPart (LIB_PART *aPart, bool aUpdateZoom)
 Take ownership of aPart and notes that it is the one currently being edited. More...
 
SYMBOL_LIBRARY_MANAGERGetLibManager ()
 
SELECTIONGetCurrentSelection () override
 Get the current selection from the canvas area. More...
 
void ReCreateMenuBar () override
 Recreates the menu bar. More...
 
bool SynchronizePins ()
 
bool AddLibraryFile (bool aCreateNew)
 Create or add an existing library to the symbol library table. More...
 
void CreateNewPart ()
 Create a new part in the selected library. More...
 
void ImportPart ()
 
void ExportPart ()
 
void Save ()
 Save the selected part or library. More...
 
void SaveSymbolAs ()
 Save the currently selected symbol to a new name and/or location. More...
 
void SaveLibraryAs ()
 Save the currently selected library to a new file. More...
 
void SaveAll ()
 Save all modified parts and libraries. More...
 
void Revert (bool aConfirm=true)
 Revert unsaved changes in a part, restoring to the last saved state. More...
 
void RevertAll ()
 
void DeletePartFromLibrary ()
 
void CopyPartToClipboard ()
 
void LoadPart (const wxString &aLibrary, const wxString &aPart, int Unit)
 
void DuplicatePart (bool aFromClipboard)
 Insert a duplicate part. More...
 
void OnSelectUnit (wxCommandEvent &event)
 
void OnToggleSearchTree (wxCommandEvent &event)
 
bool IsSearchTreeShown ()
 
void FreezeSearchTree ()
 
void ThawSearchTree ()
 
void OnUpdatePartNumber (wxUpdateUIEvent &event)
 
void UpdateAfterSymbolProperties (wxString *aOldName=nullptr)
 
void RebuildSymbolUnitsList ()
 
bool canCloseWindow (wxCloseEvent &aCloseEvent) override
 
void doCloseWindow () override
 
void OnExitKiCad (wxCommandEvent &event)
 
void ReCreateHToolbar () override
 
void ReCreateVToolbar () override
 
void ReCreateOptToolbar () override
 
void LoadSettings (APP_SETTINGS_BASE *aCfg) override
 Load common frame parameters from a configuration file. More...
 
void SaveSettings (APP_SETTINGS_BASE *aCfg) override
 Save common frame parameters to a configuration data file. More...
 
SYMBOL_EDITOR_SETTINGSGetSettings () const
 
COLOR_SETTINGSGetColorSettings () const override
 Returns a pointer to the active color theme settings. More...
 
void CloseWindow (wxCommandEvent &event)
 Trigger the wxCloseEvent, which is handled by the function given to EVT_CLOSE() macro: More...
 
void OnModify () override
 Must be called after a schematic change in order to set the "modify" flag of the current symbol. More...
 
int GetUnit () const
 
void SetUnit (int aUnit)
 
int GetConvert () const
 
void SetConvert (int aConvert)
 
bool GetShowDeMorgan () const
 
void SetShowDeMorgan (bool show)
 
void ClearMsgPanel () override
 Clear all messages from the message panel. More...
 
bool IsSymbolFromSchematic () const
 
bool IsSymbolFromLegacyLibrary () const
 
void DisplaySymbolDatasheet ()
 Display the documentation of the selected symbol. More...
 
void SaveCopyInUndoList (EDA_ITEM *aItem, UNDO_REDO aUndoType=UNDO_REDO::LIBEDIT, bool aAppend=false)
 Create a copy of the current symbol, and save it in the undo list. More...
 
void GetSymbolFromUndoList ()
 
void GetSymbolFromRedoList ()
 
void RollbackSymbolFromUndo ()
 
void ClearUndoORRedoList (UNDO_REDO_LIST whichList, int aItemCount=-1) override
 Free the undo or redo list from aList element. More...
 
bool LoadSymbolAndSelectLib (const LIB_ID &aLibId, int aUnit, int aConvert)
 Select the currently active library and loads the symbol from aLibId. More...
 
void PrintPage (const RENDER_SETTINGS *aSettings) override
 Print a page. More...
 
void SVGPlotSymbol (const wxString &aFullFileName)
 Create the SVG print file for the current edited symbol. More...
 
void SyncLibraries (bool aShowProgress, const wxString &aForceRefresh=wxEmptyString)
 Synchronize the library manager to the symbol library table, and then the symbol tree to the library manager. More...
 
void RegenerateLibraryTree ()
 Filter, sort, and redisplay the library tree. More...
 
void InstallPreferences (PAGED_DIALOG *aParent, PANEL_HOTKEYS_EDITOR *aHotkeysPanel) override
 Allow the symbol editor to install its preferences panel into the preferences dialog. More...
 
void CommonSettingsChanged (bool aEnvVarsChanged, bool aTextVarsChanged) override
 Called after the preferences dialog is run. More...
 
void ShowChangedLanguage () override
 Redraw the menus and what not in current language. More...
 
void SetScreen (BASE_SCREEN *aScreen) override
 
const BOX2I GetDocumentExtents (bool aIncludeAllVisible=true) const override
 Returns bbox of document with option to not include some items. More...
 
void RebuildView ()
 
void HardRedraw () override
 Rebuild the GAL and redraw the screen. More...
 
void KiwayMailIn (KIWAY_EXPRESS &mail) override
 Receive KIWAY_EXPRESS messages from other players. More...
 
void LoadSymbolFromSchematic (SCH_COMPONENT *aSymbol)
 Load a symbol from the schematic to edit in place. More...
 
bool IsSymbolEditable () const
 Test if a symbol is loaded and can be edited. More...
 
bool IsSymbolAlias () const
 Restore the empty editor screen, without any part or library selected. More...
 
void emptyScreen ()
 Return either the part selected in the symbol tree, if context menu is active or the currently modified part. More...
 
LIB_ID GetTargetLibId () const
 
void createCanvas ()
 
SCH_DRAW_PANELGetCanvas () const override
 Return a pointer to GAL-based canvas of given EDA draw frame. More...
 
SCH_SCREENGetScreen () const override
 Return a pointer to a BASE_SCREEN or one of its derivatives. More...
 
EESCHEMA_SETTINGSeeconfig () const
 
SYMBOL_EDITOR_SETTINGSlibeditconfig () const
 
KIGFX::SCH_RENDER_SETTINGSGetRenderSettings ()
 
SCHEMATIC_SETTINGSGetDefaults ()
 
COLOR4D GetDrawBgColor () const override
 
virtual bool GetShowAllPins () const
 Allow some frames to show/hide hidden pins. More...
 
void SetPageSettings (const PAGE_INFO &aPageSettings) override
 
const PAGE_INFOGetPageSettings () const override
 
const wxSize GetPageSizeIU () const override
 Works off of GetPageSettings() to return the size of the paper page in the internal units of this particular view. More...
 
const wxPoint & GetGridOrigin () const override
 Return the absolute coordinates of the origin of the snap grid. More...
 
void SetGridOrigin (const wxPoint &aPoint) override
 
const TITLE_BLOCKGetTitleBlock () const override
 
void SetTitleBlock (const TITLE_BLOCK &aTitleBlock) override
 
void UpdateStatusBar () override
 Update the status bar information. More...
 
PICKED_SYMBOL PickSymbolFromLibTree (const SCHLIB_FILTER *aFilter, std::vector< PICKED_SYMBOL > &aHistoryList, bool aUseLibBrowser, int aUnit, int aConvert, bool aShowFootprints, const LIB_ID *aHighlight=nullptr, bool aAllowFields=true)
 Function PickSymbolFromLibTree Calls the library viewer to select component to import into schematic. More...
 
LIB_PARTGetLibPart (const LIB_ID &aLibId, bool aUseCacheLib=false, bool aShowErrorMsg=false)
 Load symbol from symbol library table. More...
 
LIB_PARTGetFlattenedLibPart (const LIB_ID &aLibId, bool aShowErrorMsg=false)
 
PICKED_SYMBOL PickSymbolFromLibBrowser (wxTopLevelWindow *aParent, const SCHLIB_FILTER *aFilter, const LIB_ID &aPreselectedLibId, int aUnit, int aConvert)
 Function PickSymbolFromLibBrowser Calls the library viewer to select component to import into schematic. More...
 
virtual void RedrawScreen (const wxPoint &aCenterPoint, bool aWarpPointer)
 
virtual void CenterScreen (const wxPoint &aCenterPoint, bool aWarpPointer)
 
void AddToScreen (EDA_ITEM *aItem, SCH_SCREEN *aScreen)
 Add an item to the screen (and view) aScreen is the screen the item is located on, if not the current screen. More...
 
void RemoveFromScreen (EDA_ITEM *aItem, SCH_SCREEN *aScreen)
 Remove an item from the screen (and view) aScreen is the screen the item is located on, if not the current screen. More...
 
void UpdateItem (EDA_ITEM *aItem, bool isAddOrDelete=false)
 Mark an item for refresh. More...
 
void RefreshSelection ()
 Mark selected items for refresh. More...
 
void SyncView ()
 Mark all items for refresh. More...
 
COLOR4D GetLayerColor (SCH_LAYER_ID aLayer)
 Helper to retrieve a layer color from the global color settings. More...
 
bool LockFile (const wxString &aFileName)
 Mark a schematic file as being in use. More...
 
void ReleaseFile ()
 Release the current file marked in use. More...
 
wxFindReplaceData & GetFindReplaceData ()
 
wxArrayString & GetFindHistoryList ()
 
bool GetShowPolarCoords () const
 For those frames that support polar coordinates. More...
 
void SetShowPolarCoords (bool aShow)
 
void ToggleUserUnits () override
 
void GetUnitPair (EDA_UNITS &aPrimaryUnit, EDA_UNITS &aSecondaryUnits)
 Get the pair or units in current use. More...
 
wxPoint GetNearestGridPosition (const wxPoint &aPosition) const
 Return the nearest aGridSize location to aPosition. More...
 
wxPoint GetNearestHalfGridPosition (const wxPoint &aPosition) const
 Return the nearest aGridSize / 2 location to aPosition. More...
 
virtual ORIGIN_TRANSFORMSGetOriginTransforms ()
 Return a reference to the default ORIGIN_TRANSFORMS object. More...
 
virtual void SetDrawBgColor (COLOR4D aColor)
 
bool ShowPageLimits () const
 
void SetShowPageLimits (bool aShow)
 
bool LibraryFileBrowser (bool doOpen, wxFileName &aFilename, const wxString &wildcard, const wxString &ext, bool isDirectory=false, bool aIsGlobal=false, const wxString &aGlobalPath=wxEmptyString)
 
virtual wxString GetScreenDesc () const
 
virtual void ExecuteRemoteCommand (const char *cmdline)
 Execute a remote command sent via socket (to port KICAD_PCB_PORT_SERVICE_NUMBER, currently 4242). More...
 
void EraseMsgBox ()
 
virtual void ReCreateAuxiliaryToolbar ()
 
bool IsGridVisible () const
 
virtual void SetGridVisibility (bool aVisible)
 
virtual COLOR4D GetGridColor ()
 
virtual void SetGridColor (COLOR4D aColor)
 
void OnSelectGrid (wxCommandEvent &event)
 Command event handler for selecting grid sizes. More...
 
void OnGridSettings (wxCommandEvent &event)
 
void UpdateGridSelectBox ()
 Rebuild the grid combobox to respond to any changes in the GUI (units, user grid changes, etc.). More...
 
void OnUpdateSelectGrid (wxUpdateUIEvent &aEvent)
 Update the checked item in the grid combobox. More...
 
void UpdateZoomSelectBox ()
 Rebuild the grid combobox to respond to any changes in the GUI (units, user grid changes, etc.) More...
 
void OnUpdateSelectZoom (wxUpdateUIEvent &aEvent)
 Update the checked item in the zoom combobox. More...
 
const wxString GetZoomLevelIndicator () const
 Return a human readable value for display in dialogs. More...
 
virtual void OnSelectZoom (wxCommandEvent &event)
 Set the zoom factor when selected by the zoom list box in the main tool bar. More...
 
virtual void OnSize (wxSizeEvent &event)
 Recalculate the size of toolbars and display panel when the frame size changes. More...
 
void OnMove (wxMoveEvent &aEvent) override
 
virtual void Zoom_Automatique (bool aWarpPointer)
 Redraw the screen with best zoom level and the best centering that shows all the page or the board. More...
 
void FocusOnLocation (const wxPoint &aPos)
 Useful to focus on a particular location, in find functions. More...
 
void AddStandardSubMenus (TOOL_MENU &aMenu)
 Construct a "basic" menu for a tool, containing only items that apply to all tools (e.g. More...
 
void PrintDrawingSheet (const RENDER_SETTINGS *aSettings, BASE_SCREEN *aScreen, double aMils2Iu, const wxString &aFilename, const wxString &aSheetLayer=wxEmptyString)
 Prints the drawing-sheet (frame and title block). More...
 
void DisplayToolMsg (const wxString &msg) override
 
virtual void OnPageSettingsChange ()
 Called when modifying the page settings. More...
 
void DisplayUnitsMsg ()
 Display current unit pane in the status bar. More...
 
virtual void DisplayGridMsg ()
 Display current grid size in the status bar. More...
 
void CreateServer (int service, bool local=true)
 
void OnSockRequest (wxSocketEvent &evt)
 
void OnSockRequestServer (wxSocketEvent &evt)
 
void AppendMsgPanel (const wxString &aTextUpper, const wxString &aTextLower, int aPadding=6)
 Append a message to the message panel. More...
 
void SetMsgPanel (const std::vector< MSG_PANEL_ITEM > &aList)
 Clear the message panel and populates it with the contents of aList. More...
 
void SetMsgPanel (EDA_ITEM *aItem)
 
void SetMsgPanel (const wxString &aTextUpper, const wxString &aTextLower, int aPadding=6)
 Helper function that erases the msg panel and then appends a single message. More...
 
virtual void UpdateMsgPanel ()
 Redraw the message panel. More...
 
virtual EDA_ITEMGetItem (const KIID &aId)
 Fetch an item by KIID. More...
 
virtual void ActivateGalCanvas ()
 Use to start up the GAL drawing canvas. More...
 
void SetCanvas (EDA_DRAW_PANEL_GAL *aPanel)
 
wxWindow * GetToolCanvas () const override
 Canvas access. More...
 
KIGFX::GAL_DISPLAY_OPTIONSGetGalDisplayOptions ()
 Return a reference to the gal rendering options used by GAL for rendering. More...
 
void RefreshCanvas () override
 
void RecreateToolbars ()
 Rebuild all toolbars, and update the checked state of check tools. More...
 
virtual bool OpenProjectFiles (const std::vector< wxString > &aFileList, int aCtl=0)
 Open a project or set of files given by aFileList. More...
 
virtual void ParseArgs (wxCmdLineParser &aParser)
 Handle command-line arguments in a frame-specific way. More...
 
virtual bool ShowModal (wxString *aResult=nullptr, wxWindow *aResultantFocusWindow=nullptr)
 Show this wxFrame as if it were a modal dialog, with all other instantiated wxFrames disabled until this KIWAY_PLAYER derivative calls DismissModal(). More...
 
bool Destroy () override
 Our version of Destroy() which is virtual from wxWidgets. More...
 
bool IsModal () const override
 Return true if the frame is shown in our modal mode and false if the frame is shown as an usual frame. More...
 
void SetModal (bool aIsModal)
 
bool IsDismissed ()
 
void DismissModal (bool aRetVal, const wxString &aResult=wxEmptyString)
 
EDA_UNITS GetUserUnits () const
 Return the user units currently in use. More...
 
void SetUserUnits (EDA_UNITS aUnits)
 
void ChangeUserUnits (EDA_UNITS aUnits)
 
SETTINGS_MANAGERGetSettingsManager () const
 
virtual SEVERITY GetSeverity (int aErrorCode) const
 
bool ProcessEvent (wxEvent &aEvent) override
 Override the default process event handler to implement the auto save feature. More...
 
virtual void OnCharHook (wxKeyEvent &event)
 Capture the key event before it is sent to the GUI. More...
 
void OnMenuEvent (wxMenuEvent &event)
 The TOOL_DISPATCHER needs these to work around some issues in wxWidgets where the menu events aren't captured by the menus themselves. More...
 
virtual void RegisterUIUpdateHandler (int aID, const ACTION_CONDITIONS &aConditions) override
 Register a UI update handler for the control with ID aID. More...
 
virtual void RegisterUIUpdateHandler (const TOOL_ACTION &aAction, const ACTION_CONDITIONS &aConditions)
 Register an action's update conditions with the UI layer to allow the UI to appropriately display the state of its controls. More...
 
virtual void UnregisterUIUpdateHandler (int aID) override
 Unregister a UI handler for a given ID that was registered using RegisterUIUpdateHandler. More...
 
virtual void UnregisterUIUpdateHandler (const TOOL_ACTION &aAction)
 Unregister a UI handler for an action that was registered using RegisterUIUpdateHandler. More...
 
void OnMaximize (wxMaximizeEvent &aEvent)
 
void SetAutoSaveInterval (int aInterval)
 
int GetAutoSaveInterval () const
 
bool IsType (FRAME_T aType) const
 
virtual const SEARCH_STACKsys_search ()
 Return a SEARCH_STACK pertaining to entire program. More...
 
virtual wxString help_name ()
 
void OnKicadAbout (wxCommandEvent &event)
 
void OnPreferences (wxCommandEvent &event)
 
void PrintMsg (const wxString &text)
 
void CreateInfoBar ()
 
void FinishAUIInitialization ()
 
WX_INFOBARGetInfoBar ()
 
void ShowInfoBarError (const wxString &aErrorMsg, bool aShowCloseButton=false)
 Show the WX_INFOBAR displayed on the top of the canvas with a message and an error icon on the left of the infobar, and an optional closebox to the right. More...
 
void ShowInfoBarError (const wxString &aErrorMsg, bool aShowCloseButton, std::function< void(void)> aCallback)
 Show the WX_INFOBAR displayed on the top of the canvas with a message and an error icon on the left of the infobar, and an optional closebox to the right. More...
 
void ShowInfoBarWarning (const wxString &aWarningMsg, bool aShowCloseButton=false)
 Show the WX_INFOBAR displayed on the top of the canvas with a message and a warning icon on the left of the infobar. More...
 
void ShowInfoBarMsg (const wxString &aMsg, bool aShowCloseButton=false)
 Show the WX_INFOBAR displayed on the top of the canvas with a message and an info icon on the left of the infobar. More...
 
virtual APP_SETTINGS_BASEconfig () const
 Returns the settings object used in SaveSettings(), and is overloaded in KICAD_MANAGER_FRAME. More...
 
void LoadWindowState (const wxString &aFileName)
 
virtual void LoadWindowState (const WINDOW_STATE &aState)
 Load frame state info from a configuration file. More...
 
void LoadWindowSettings (const WINDOW_SETTINGS *aCfg)
 Load window settings from the given settings object. More...
 
void SaveWindowSettings (WINDOW_SETTINGS *aCfg)
 Save window settings to the given settings object. More...
 
virtual WINDOW_SETTINGSGetWindowSettings (APP_SETTINGS_BASE *aCfg)
 Return a pointer to the window settings for this frame. More...
 
wxString ConfigBaseName () override
 Get the configuration base name. More...
 
virtual void SaveProjectSettings ()
 Save changes to the project settings to the project (.pro) file. More...
 
void ImportHotkeyConfigFromFile (std::map< std::string, TOOL_ACTION * > aActionMap, const wxString &aDefaultShortname)
 Prompt the user for a hotkey file to read, and read it. More...
 
wxString GetFileFromHistory (int cmdId, const wxString &type, FILE_HISTORY *aFileHistory=nullptr)
 Fetches the file name from the file history list. More...
 
void ClearFileHistory (FILE_HISTORY *aFileHistory=nullptr)
 Removes all files from the file history. More...
 
void UpdateFileHistory (const wxString &FullFileName, FILE_HISTORY *aFileHistory=nullptr)
 Update the list of recently opened files. More...
 
FILE_HISTORYGetFileHistory ()
 Get the frame's main file history. More...
 
void SetMruPath (const wxString &aPath)
 
wxString GetMruPath () const
 
virtual wxString GetCurrentFileName () const
 Get the full filename + path of the currently opened file in the frame. More...
 
void AddStandardHelpMenu (wxMenuBar *aMenuBar)
 Adds the standard KiCad help menu to the menubar. More...
 
bool IsWritable (const wxFileName &aFileName)
 Checks if aFileName can be written. More...
 
void CheckForAutoSaveFile (const wxFileName &aFileName)
 Check if an auto save file exists for aFileName and takes the appropriate action depending on the user input. More...
 
virtual void ProjectChanged ()
 Notification event that the project has changed. More...
 
const wxString & GetAboutTitle () const
 
wxSize GetWindowSize ()
 Get the undecorated window size that can be used for restoring the window size. More...
 
virtual void ClearUndoRedoList ()
 Clear the undo and redo list using ClearUndoORRedoList() More...
 
virtual void PushCommandToUndoList (PICKED_ITEMS_LIST *aItem)
 Add a command to undo in the undo list. More...
 
virtual void PushCommandToRedoList (PICKED_ITEMS_LIST *aItem)
 Add a command to redo in the redo list. More...
 
virtual PICKED_ITEMS_LISTPopCommandFromUndoList ()
 Return the last command to undo and remove it from list, nothing is deleted. More...
 
virtual PICKED_ITEMS_LISTPopCommandFromRedoList ()
 Return the last command to undo and remove it from list, nothing is deleted. More...
 
virtual int GetUndoCommandCount () const
 
virtual int GetRedoCommandCount () const
 
int GetMaxUndoItems () const
 
bool NonUserClose (bool aForce)
 
TOOL_MANAGERGetToolManager () const
 Return the MVC controller. More...
 
virtual void PushTool (const std::string &actionName)
 NB: the definition of "tool" is different at the user level. More...
 
virtual void PopTool (const std::string &actionName)
 
bool ToolStackIsEmpty ()
 
std::string CurrentToolName () const
 
bool IsCurrentTool (const TOOL_ACTION &aAction) const
 
bool GetDoImmediateActions () const
 Indicate that hotkeys should perform an immediate action even if another tool is currently active. More...
 
MOUSE_DRAG_ACTION GetDragAction () const
 Indicates whether a drag should draw a selection rectangle or drag selected (or unselected) objects. More...
 
bool GetMoveWarpsCursor () const
 Indicate that a move operation should warp the mouse pointer to the origin of the move object. More...
 
HOLDER_TYPE GetType () const
 
KIWAYKiway () const
 Return a reference to the KIWAY that this object has an opportunity to participate in. More...
 
PROJECTPrj () const
 Return a reference to the PROJECT associated with this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 It is only used for debugging, since "this" is not a wxWindow*. More...
 

Static Public Member Functions

static void HandleUpdateUIEvent (wxUpdateUIEvent &aEvent, EDA_BASE_FRAME *aFrame, ACTION_CONDITIONS aCond)
 Handle events generated when the UI is trying to figure out the current state of the UI controls related to TOOL_ACTIONS (e.g. More...
 

Public Attributes

bool m_SyncPinEdit
 Set to true to synchronize pins at the same position when editing symbols with multiple units or multiple body styles. More...
 

Protected Member Functions

void setupUIConditions () override
 Setup the UI conditions for the various actions and their controls in this frame. More...
 
bool saveSymbolLibTables (bool aGlobal, bool aProject)
 Saves Symbol Library Tables to disk. More...
 
void unitsChangeRefresh () override
 Called when when the units setting has changed to allow for any derived classes to handle refreshing and controls that have units based measurements in them. More...
 
void setupUnits (APP_SETTINGS_BASE *aCfg)
 
void resolveCanvasType ()
 Determines the Canvas type to load (with prompt if required) and initializes m_canvasType. More...
 
EDA_DRAW_PANEL_GAL::GAL_TYPE loadCanvasTypeSetting ()
 Returns the canvas type stored in the application settings. More...
 
bool saveCanvasTypeSetting (EDA_DRAW_PANEL_GAL::GAL_TYPE aCanvasType)
 Stores the canvas type in the application settings. More...
 
void kiway_express (KIWAY_EXPRESS &aEvent)
 event handler, routes to derivative specific virtual KiwayMailIn() More...
 
void language_change (wxCommandEvent &event)
 An event handler called on a language menu selection. More...
 
void onAutoSaveTimer (wxTimerEvent &aEvent)
 Handle the auto save timer event. More...
 
virtual bool isAutoSaveRequired () const
 Return the auto save status of the application. More...
 
virtual bool doAutoSave ()
 This should be overridden by the derived class to handle the auto save feature. More...
 
void initExitKey ()
 Sets the common key-pair for exiting the application (Ctrl-Q) and ties it to the wxID_EXIT event id. More...
 

Static Protected Member Functions

static wxString GetAutoSaveFilePrefix ()
 

Protected Attributes

SCHEMATIC_SETTINGS m_base_frame_defaults
 These are only used by symbol_editor. Eeschema should be using the one inside the SCHEMATIC. More...
 
SCHEMATIC_SETTINGSm_defaults
 
wxSocketServer * m_socketServer
 
std::vector< wxSocketBase * > m_sockets
 interprocess communication More...
 
std::unique_ptr< wxSingleInstanceChecker > m_file_checker
 
bool m_showPageLimits
 
COLOR4D m_gridColor
 
COLOR4D m_drawBgColor
 
int m_undoRedoCountMax
 
bool m_polarCoords
 
bool m_showBorderAndTitleBlock
 
long m_firstRunDialogSetting
 
wxChoice * m_gridSelectBox
 
wxChoice * m_zoomSelectBox
 
ACTION_TOOLBARm_mainToolBar
 
ACTION_TOOLBARm_auxiliaryToolBar
 
ACTION_TOOLBARm_drawToolBar
 
ACTION_TOOLBARm_optionsToolBar
 
wxFindReplaceData * m_findReplaceData
 
wxArrayString m_findStringHistoryList
 
wxArrayString m_replaceStringHistoryList
 
EDA_MSG_PANELm_messagePanel
 
int m_msgFrameHeight
 
COLOR_SETTINGSm_colorSettings
 The current canvas type. More...
 
EDA_DRAW_PANEL_GAL::GAL_TYPE m_canvasType
 
bool m_modal
 
WX_EVENT_LOOPm_modal_loop
 < Points to nested event_loop. NULL means not modal and dismissed. More...
 
wxWindow * m_modal_resultant_parent
 
wxString m_modal_string
 
bool m_modal_ret_val
 
FRAME_T m_ident
 
wxPoint m_framePos
 
wxSize m_frameSize
 
bool m_maximizeByDefault
 
wxPoint m_normalFramePos
 
wxSize m_normalFrameSize
 
wxString m_aboutTitle
 
wxAuiManager m_auimgr
 
wxString m_perspective
 
WX_INFOBARm_infoBar
 
wxString m_configName
 
SETTINGS_MANAGERm_settingsManager
 
FILE_HISTORYm_fileHistory
 
bool m_hasAutoSave
 
bool m_autoSaveState
 
int m_autoSaveInterval
 
wxTimer * m_autoSaveTimer
 
UNDO_REDO_CONTAINER m_undoList
 
UNDO_REDO_CONTAINER m_redoList
 
wxString m_mruPath
 
EDA_UNITS m_userUnits
 Map containing the UI update handlers registered with wx for each action. More...
 
std::map< int, UIUpdateHandlerm_uiUpdateMap
 Set by the close window event handler after frames are asked if they can close. More...
 
bool m_isClosing
 Set by NonUserClose() to indicate that the user did not request the current close. More...
 
bool m_isNonUserClose
 
TOOL_MANAGERm_toolManager
 
ACTIONSm_actions
 
TOOL_DISPATCHERm_toolDispatcher
 
SELECTION m_dummySelection
 
std::vector< std::string > m_toolStack
 
bool m_immediateActions
 
MOUSE_DRAG_ACTION m_dragAction
 
bool m_moveWarpsCursor
 

Static Protected Attributes

static constexpr int KICAD_AUI_TB_STYLE = wxAUI_TB_DEFAULT_STYLE | wxAUI_TB_PLAIN_BACKGROUND
 < Default style flags used for wxAUI toolbars. More...
 

Private Types

enum  TABLE_SCOPE { GLOBAL_LIB_TABLE, PROJECT_LIB_TABLE }
 

Private Member Functions

void setupTools ()
 
void savePartAs ()
 
bool saveLibrary (const wxString &aLibrary, bool aNewFile)
 Save the changes to the current library. More...
 
void updateTitle ()
 Update the main window title bar with the current library name and read only status of the library. More...
 
void SelectActiveLibrary (const wxString &aLibrary=wxEmptyString)
 Set the current active library to aLibrary. More...
 
wxString SelectLibraryFromList ()
 Display a list of loaded libraries in the symbol library and allows the user to select a library. More...
 
bool LoadSymbolFromCurrentLib (const wxString &aAliasName, int aUnit=0, int aConvert=0)
 Load a symbol from the current active library, optionally setting the selected unit and convert. More...
 
bool LoadOneLibraryPartAux (LIB_PART *aLibEntry, const wxString &aLibrary, int aUnit, int aConvert)
 Create a copy of aLibEntry into memory. More...
 
SYMBOL_LIB_TABLEselectSymLibTable (bool aOptional=false)
 Display a dialog asking the user to select a symbol library table. More...
 
bool backupFile (const wxFileName &aOriginalFile, const wxString &aBackupExt)
 Return currently edited part. More...
 
LIB_PARTgetTargetPart () const
 Return either the library selected in the symbol tree, if context menu is active or the library that is currently modified. More...
 
wxString getTargetLib () const
 
bool saveAllLibraries (bool aRequireConfirmation)
 Save the current part. More...
 
bool saveCurrentPart ()
 Store the currently modified part in the library manager buffer. More...
 
void storeCurrentPart ()
 Return true if aLibId is an alias for the editor screen part. More...
 
bool isCurrentPart (const LIB_ID &aLibId) const
 Rename LIB_PART aliases to avoid conflicts before adding a symbol to a library. More...
 
void ensureUniqueName (LIB_PART *aPart, const wxString &aLibrary)
 
bool addLibTableEntry (const wxString &aLibFile, TABLE_SCOPE aScope=GLOBAL_LIB_TABLE)
 Add aLibFile to the symbol library table defined by aScope. More...
 
bool replaceLibTableEntry (const wxString &aLibNickname, const wxString &aLibFile)
 Replace the file path of the symbol library table entry aLibNickname with aLibFile. More...
 

Private Attributes

SCH_SCREENm_dummyScreen
 < Helper screen used when no part is loaded More...
 
LIB_PARTm_my_part
 
wxComboBox * m_unitSelectBox
 
SYMBOL_TREE_PANEm_treePane
 
SYMBOL_LIBRARY_MANAGERm_libMgr
 
SYMBOL_EDITOR_SETTINGSm_settings
 
int m_unit
 
int m_convert
 Flag if the symbol being edited was loaded directly from a schematic. More...
 
bool m_isSymbolFromSchematic
 
wxString m_reference
 The reference of the symbol. More...
 

Static Private Attributes

static bool m_showDeMorgan = false
 

Detailed Description

The symbol library editor main window.

Definition at line 52 of file symbol_edit_frame.h.

Member Enumeration Documentation

◆ HOLDER_TYPE

enum KIWAY_HOLDER::HOLDER_TYPE
inherited
Enumerator
DIALOG 
FRAME 
PANEL 

Definition at line 42 of file kiway_holder.h.

◆ TABLE_SCOPE

Enumerator
GLOBAL_LIB_TABLE 
PROJECT_LIB_TABLE 

Definition at line 464 of file symbol_edit_frame.h.

◆ UNDO_REDO_LIST

Remove the aItemCount of old commands from aList and delete commands, pickers and picked items if needed.

Because picked items must be deleted only if they are not in use, this is a virtual pure function that must be created for SCH_SCREEN and PCB_SCREEN. Commands are deleted from the older to the last.

Parameters
aList= the UNDO_REDO_CONTAINER of commands.
aItemCountnumber of old commands to delete. -1 to remove all old commands this will empty the list of commands.
Enumerator
UNDO_LIST 
REDO_LIST 

Definition at line 519 of file eda_base_frame.h.

Constructor & Destructor Documentation

◆ SYMBOL_EDIT_FRAME()

SYMBOL_EDIT_FRAME::SYMBOL_EDIT_FRAME ( KIWAY aKiway,
wxWindow *  aParent 
)

Definition at line 94 of file symbol_edit_frame.cpp.

94  :
95  SCH_BASE_FRAME( aKiway, aParent, FRAME_SCH_SYMBOL_EDITOR, _( "Library Editor" ),
96  wxDefaultPosition, wxDefaultSize, KICAD_DEFAULT_DRAWFRAME_STYLE,
98  m_unitSelectBox( nullptr ),
100 {
101  SetShowDeMorgan( false );
102  m_SyncPinEdit = false;
103 
104  m_my_part = nullptr;
105  m_treePane = nullptr;
106  m_libMgr = nullptr;
107  m_unit = 1;
108  m_convert = 1;
109  m_aboutTitle = _( "KiCad Symbol Editor" );
110 
111  wxIcon icon;
112  wxIconBundle icon_bundle;
113 
114  icon.CopyFromBitmap( KiBitmap( icon_libedit_xpm ) );
115  icon_bundle.AddIcon( icon );
116  icon.CopyFromBitmap( KiBitmap( icon_libedit_32_xpm ) );
117  icon_bundle.AddIcon( icon );
118  icon.CopyFromBitmap( KiBitmap( icon_libedit_16_xpm ) );
119  icon_bundle.AddIcon( icon );
120 
121  SetIcons( icon_bundle );
122 
123  m_settings = Pgm().GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>();
125 
126  // Ensure axis are always drawn
128  gal_opts.m_axesEnabled = true;
129 
130  m_dummyScreen = new SCH_SCREEN();
132  GetScreen()->m_Center = true;
133 
135 
138 
139  setupTools();
141 
142  m_libMgr = new SYMBOL_LIBRARY_MANAGER( *this );
143  SyncLibraries( true );
144  m_treePane = new SYMBOL_TREE_PANE( this, m_libMgr );
145 
146  ReCreateMenuBar();
150 
151  updateTitle();
154 
155  m_auimgr.SetManagedWindow( this );
156 
157  CreateInfoBar();
158  m_auimgr.AddPane( m_mainToolBar, EDA_PANE().HToolbar().Name( "MainToolbar" )
159  .Top().Layer( 6 ) );
160  m_auimgr.AddPane( m_messagePanel, EDA_PANE().Messages().Name( "MsgPanel" )
161  .Bottom().Layer( 6 ) );
162 
163  m_auimgr.AddPane( m_optionsToolBar, EDA_PANE().VToolbar().Name( "OptToolbar" )
164  .Left().Layer( 3 ) );
165  m_auimgr.AddPane( m_treePane, EDA_PANE().Palette().Name( "ComponentTree" )
166  .Left().Layer( 2 )
167  .Caption( _( "Libraries" ) )
168  .MinSize( 250, -1 ).BestSize( 250, -1 ) );
169  m_auimgr.AddPane( m_drawToolBar, EDA_PANE().VToolbar().Name( "ToolsToolbar" )
170  .Right().Layer( 2 ) );
171 
172  m_auimgr.AddPane( GetCanvas(), wxAuiPaneInfo().Name( "DrawFrame" )
173  .CentrePane() );
174 
176 
177  if( m_settings->m_LibWidth > 0 )
178  {
179  wxAuiPaneInfo& treePane = m_auimgr.GetPane( "ComponentTree" );
180 
181  // wxAUI hack: force width by setting MinSize() and then Fixed()
182  // thanks to ZenJu http://trac.wxwidgets.org/ticket/13180
183  treePane.MinSize( m_settings->m_LibWidth, -1 );
184  treePane.Fixed();
185  m_auimgr.Update();
186 
187  // now make it resizable again
188  treePane.Resizable();
189  m_auimgr.Update();
190 
191  // Note: DO NOT call m_auimgr.Update() anywhere after this; it will nuke the size
192  // back to minimum.
193  treePane.MinSize( 250, -1 );
194  }
195 
196  Raise();
197  Show( true );
198 
199  SyncView();
200  GetCanvas()->GetView()->UseDrawPriority( true );
201  GetCanvas()->GetGAL()->SetAxesEnabled( true );
202 
204 
205  // Set the working/draw area size to display a symbol to a reasonable value:
206  // A 600mm x 600mm with a origin at the area center looks like a large working area
207  double max_size_x = Millimeter2iu( 600 );
208  double max_size_y = Millimeter2iu( 600 );
209  BOX2D bbox;
210  bbox.SetOrigin( -max_size_x /2, -max_size_y/2 );
211  bbox.SetSize( max_size_x, max_size_y );
212  GetCanvas()->GetView()->SetBoundary( bbox );
213 
215 
216  KIPLATFORM::APP::SetShutdownBlockReason( this, _( "Library changes are unsaved" ) );
217 
218  // Ensure the window is on top
219  Raise();
220 }
KIGFX::SCH_VIEW * GetView() const override
Return a pointer to the #VIEW instance used in the panel.
COLOR_SETTINGS * GetColorSettings() const override
Returns a pointer to the active color theme settings.
int m_convert
Flag if the symbol being edited was loaded directly from a schematic.
SCH_BASE_FRAME(KIWAY *aKiway, wxWindow *aParent, FRAME_T aWindowType, const wxString &aTitle, const wxPoint &aPosition, const wxSize &aSize, long aStyle, const wxString &aFrameName)
KIGFX::VIEW_CONTROLS * GetViewControls() const
Return a pointer to the #VIEW_CONTROLS instance used in the panel.
SCH_SCREEN * m_dummyScreen
< Helper screen used when no part is loaded
KIGFX::GAL_DISPLAY_OPTIONS & GetGalDisplayOptions()
Return a reference to the gal rendering options used by GAL for rendering.
ACTION_TOOLBAR * m_optionsToolBar
void SetScreen(BASE_SCREEN *aScreen) override
void SetShowDeMorgan(bool show)
void UseDrawPriority(bool aFlag)
Definition: view.h:643
void LoadSettings(APP_SETTINGS_BASE *aCfg) override
Load common frame parameters from a configuration file.
SCH_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
bool m_SyncPinEdit
Set to true to synchronize pins at the same position when editing symbols with multiple units or mult...
SYMBOL_TREE_PANE * m_treePane
static TOOL_ACTION zoomFitScreen
Definition: actions.h:99
bool RunAction(const std::string &aActionName, bool aNow=false, T aParam=NULL)
Run the specified action.
Definition: tool_manager.h:141
void SetSize(const Vec &size)
Definition: box2.h:212
KIGFX::SCH_RENDER_SETTINGS * GetRenderSettings()
wxAuiManager m_auimgr
const BITMAP_OPAQUE icon_libedit_16_xpm[1]
ACTION_TOOLBAR * m_mainToolBar
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
Definition: single_top.cpp:106
bool m_axesEnabled
Fullscreen crosshair or small cross.
Library Editor pane with component tree and symbol library table selector.
#define LIB_EDIT_FRAME_NAME
void SetShutdownBlockReason(wxWindow *aWindow, const wxString &aReason)
Sets the block reason why the window/application is preventing OS shutdown.
Definition: gtk/app.cpp:51
wxBitmap KiBitmap(BITMAP_DEF aBitmap)
Construct a wxBitmap from a memory record, held in a BITMAP_DEF.
Definition: bitmap.cpp:82
void DisplaySymbolDatasheet()
Display the documentation of the selected symbol.
void updateTitle()
Update the main window title bar with the current library name and read only status of the library.
VECTOR2< double > VECTOR2D
Definition: vector2d.h:622
void FinishAUIInitialization()
bool m_Center
Center on screen.
Definition: base_screen.h:100
void SyncView()
Mark all items for refresh.
EDA_MSG_PANEL * m_messagePanel
Class to handle modifications to the symbol libraries.
SCH_DRAW_PANEL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
void SetAxesColor(const COLOR4D &aAxesColor)
Set the axes color.
void ReCreateHToolbar() override
KIGFX::GAL * GetGAL() const
Return a pointer to the GAL instance used in the panel.
#define KICAD_DEFAULT_DRAWFRAME_STYLE
virtual void SetCrossHairCursorPosition(const VECTOR2D &aPosition, bool aWarpView=true)=0
Move the graphic crosshair cursor to the requested position expressed in world coordinates.
void SetAxesEnabled(bool aAxesEnabled)
Enable drawing the axes.
void ReCreateMenuBar() override
Recreates the menu bar.
Specialization of the wxAuiPaneInfo class for KiCad panels.
COLOR_SETTINGS * m_colorSettings
The current canvas type.
void setupUIConditions() override
Setup the UI conditions for the various actions and their controls in this frame.
const BITMAP_OPAQUE icon_libedit_xpm[1]
void LoadColors(const COLOR_SETTINGS *aSettings) override
Definition: sch_painter.cpp:92
COLOR4D GetColor(int aLayer) const
void ReCreateOptToolbar() override
TOOL_MANAGER * m_toolManager
Definition: tools_holder.h:157
SYMBOL_EDITOR_SETTINGS * m_settings
#define _(s)
Definition: 3d_actions.cpp:33
void setupUnits(APP_SETTINGS_BASE *aCfg)
void SetOrigin(const Vec &pos)
Definition: box2.h:210
void ReCreateVToolbar() override
SYMBOL_LIBRARY_MANAGER * m_libMgr
const BITMAP_OPAQUE icon_libedit_32_xpm[1]
void SetBoundary(const BOX2D &aBoundary)
Set limits for view area.
Definition: view.h:273
void SyncLibraries(bool aShowProgress, const wxString &aForceRefresh=wxEmptyString)
Synchronize the library manager to the symbol library table, and then the symbol tree to the library ...
static constexpr int Millimeter2iu(double mm)
wxString m_aboutTitle
wxComboBox * m_unitSelectBox
ACTION_TOOLBAR * m_drawToolBar

References _, icon_libedit_16_xpm, icon_libedit_32_xpm, icon_libedit_xpm, KiBitmap(), LAYER_SCHEMATIC_GRID_AXES, PCAD2KICAD::Left, KIGFX::GAL_DISPLAY_OPTIONS::m_axesEnabled, Millimeter2iu(), Pgm(), PCAD2KICAD::Right, BOX2< Vec >::SetOrigin(), KIPLATFORM::APP::SetShutdownBlockReason(), BOX2< Vec >::SetSize(), and ACTIONS::zoomFitScreen.

◆ ~SYMBOL_EDIT_FRAME()

SYMBOL_EDIT_FRAME::~SYMBOL_EDIT_FRAME ( )
override

Definition at line 223 of file symbol_edit_frame.cpp.

224 {
225  // Shutdown all running tools
226  if( m_toolManager )
228 
229  if( IsSymbolFromSchematic() )
230  {
231  delete m_my_part;
232  m_my_part = nullptr;
233 
234  SCH_SCREEN* screen = GetScreen();
235  delete screen;
236  m_isSymbolFromSchematic = false;
237  }
238  // current screen is destroyed in EDA_DRAW_FRAME
240 
241  auto libedit = Pgm().GetSettingsManager().GetAppSettings<SYMBOL_EDITOR_SETTINGS>();
242  Pgm().GetSettingsManager().Save( libedit );
243 
244  delete m_libMgr;
245 }
void ShutdownAllTools()
Shutdown all tools with a currently registered event loop in this tool manager by waking them up with...
SCH_SCREEN * m_dummyScreen
< Helper screen used when no part is loaded
void SetScreen(BASE_SCREEN *aScreen) override
SCH_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
Definition: single_top.cpp:106
bool IsSymbolFromSchematic() const
TOOL_MANAGER * m_toolManager
Definition: tools_holder.h:157
SYMBOL_LIBRARY_MANAGER * m_libMgr

References SCH_BASE_FRAME::GetScreen(), IsSymbolFromSchematic(), m_dummyScreen, m_isSymbolFromSchematic, m_libMgr, m_my_part, TOOLS_HOLDER::m_toolManager, Pgm(), SetScreen(), and TOOL_MANAGER::ShutdownAllTools().

Member Function Documentation

◆ ActivateGalCanvas()

void EDA_DRAW_FRAME::ActivateGalCanvas ( )
virtualinherited

Use to start up the GAL drawing canvas.

Reimplemented in PCB_EDIT_FRAME, PCB_BASE_FRAME, GERBVIEW_FRAME, FOOTPRINT_EDIT_FRAME, and PCB_BASE_EDIT_FRAME.

Definition at line 643 of file eda_draw_frame.cpp.

644 {
645  GetCanvas()->SetEvtHandlerEnabled( true );
646  GetCanvas()->StartDrawing();
647 }
virtual EDA_DRAW_PANEL_GAL * GetCanvas() const
Return a pointer to GAL-based canvas of given EDA draw frame.
void StartDrawing()
Begin drawing if it was stopped previously.

References EDA_DRAW_FRAME::GetCanvas(), and EDA_DRAW_PANEL_GAL::StartDrawing().

Referenced by GERBVIEW_FRAME::ActivateGalCanvas(), PCB_BASE_FRAME::ActivateGalCanvas(), SCH_BASE_FRAME::createCanvas(), SCH_DRAW_PANEL::OnShow(), and EDA_DRAW_FRAME::SwitchCanvas().

◆ AddLibraryFile()

bool SYMBOL_EDIT_FRAME::AddLibraryFile ( bool  aCreateNew)

Create or add an existing library to the symbol library table.

Definition at line 795 of file symbol_edit_frame.cpp.

796 {
797  // Select the target library table (global/project)
798  SYMBOL_LIB_TABLE* libTable = selectSymLibTable();
799 
800  if( !libTable )
801  return false;
802 
803  wxFileName fn = m_libMgr->GetUniqueLibraryName();
804 
805  if( !LibraryFileBrowser( !aCreateNew, fn, KiCadSymbolLibFileWildcard(),
807  ( libTable == &SYMBOL_LIB_TABLE::GetGlobalLibTable() ),
809  {
810  return false;
811  }
812 
813  wxString libName = fn.GetName();
814 
815  if( libName.IsEmpty() )
816  return false;
817 
818  if( m_libMgr->LibraryExists( libName ) )
819  {
820  DisplayError( this, wxString::Format( _( "Library \"%s\" already exists" ), libName ) );
821  return false;
822  }
823 
824  if( aCreateNew )
825  {
826  if( !m_libMgr->CreateLibrary( fn.GetFullPath(), libTable ) )
827  {
828  DisplayError( this, wxString::Format( _( "Could not create the library file '%s'.\n"
829  "Check write permission." ),
830  fn.GetFullPath() ) );
831  return false;
832  }
833  }
834  else
835  {
836  if( !m_libMgr->AddLibrary( fn.GetFullPath(), libTable ) )
837  {
838  DisplayError( this, _( "Could not open the library file." ) );
839  return false;
840  }
841  }
842 
843  bool globalTable = ( libTable == &SYMBOL_LIB_TABLE::GetGlobalLibTable() );
844  saveSymbolLibTables( globalTable, !globalTable );
845 
846  return true;
847 }
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
Definition: confirm.cpp:253
static SYMBOL_LIB_TABLE & GetGlobalLibTable()
bool AddLibrary(const wxString &aFilePath, SYMBOL_LIB_TABLE *aTable)
Add an existing library.
bool LibraryFileBrowser(bool doOpen, wxFileName &aFilename, const wxString &wildcard, const wxString &ext, bool isDirectory=false, bool aIsGlobal=false, const wxString &aGlobalPath=wxEmptyString)
SYMBOL_LIB_TABLE * selectSymLibTable(bool aOptional=false)
Display a dialog asking the user to select a symbol library table.
wxString GetUniqueLibraryName() const
Return a library name that is not currently in use.
bool saveSymbolLibTables(bool aGlobal, bool aProject)
Saves Symbol Library Tables to disk.
wxString KiCadSymbolLibFileWildcard()
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, const CPTREE &aTree)
Output a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:200
static wxString GetDefaultUserSymbolsPath()
Gets the default path we point users to create projects.
Definition: paths.cpp:96
bool LibraryExists(const wxString &aLibrary, bool aCheckEnabled=false) const
Return true if library exists.
#define _(s)
Definition: 3d_actions.cpp:33
SYMBOL_LIBRARY_MANAGER * m_libMgr
bool CreateLibrary(const wxString &aFilePath, SYMBOL_LIB_TABLE *aTable)
Create an empty library and adds it to the library table.
const std::string KiCadSymbolLibFileExtension

References _, SYMBOL_LIBRARY_MANAGER::AddLibrary(), SYMBOL_LIBRARY_MANAGER::CreateLibrary(), DisplayError(), Format(), PATHS::GetDefaultUserSymbolsPath(), SYMBOL_LIB_TABLE::GetGlobalLibTable(), SYMBOL_LIBRARY_MANAGER::GetUniqueLibraryName(), KiCadSymbolLibFileExtension, KiCadSymbolLibFileWildcard(), SYMBOL_LIBRARY_MANAGER::LibraryExists(), EDA_DRAW_FRAME::LibraryFileBrowser(), m_libMgr, SCH_BASE_FRAME::saveSymbolLibTables(), and selectSymLibTable().

◆ addLibTableEntry()

bool SYMBOL_EDIT_FRAME::addLibTableEntry ( const wxString &  aLibFile,
TABLE_SCOPE  aScope = GLOBAL_LIB_TABLE 
)
private

Add aLibFile to the symbol library table defined by aScope.

Note
The library defined by aLibFile must be a KiCad (s-expression) library.
Parameters
aLibFileis the full path and file name of the symbol library to add to the table.
aScopedefines if aLibFile is added to the global or project library table.
Returns
true if successful or false if a failure occurs.

Definition at line 1321 of file symbol_edit_frame.cpp.

1322 {
1323  wxFileName fn = aLibFile;
1324  wxFileName libTableFileName( Prj().GetProjectPath(),
1326  wxString libNickname = fn.GetName();
1327  SYMBOL_LIB_TABLE* libTable = Prj().SchSymbolLibTable();
1328  const ENV_VAR_MAP& envVars = Pgm().GetLocalEnvVariables();
1329 
1330  if( libTable->HasLibrary( libNickname ) )
1331  {
1332  wxString tmp;
1333  int suffix = 1;
1334 
1335  while( libTable->HasLibrary( libNickname ) )
1336  {
1337  tmp.Printf( "%s%d", fn.GetName(), suffix );
1338  libNickname = tmp;
1339  suffix += 1;
1340  }
1341  }
1342 
1344  row->SetNickName( libNickname );
1345 
1346  wxString normalizedPath = NormalizePath( aLibFile, &envVars, Prj().GetProjectPath() );
1347 
1348  if( aScope == GLOBAL_LIB_TABLE )
1349  {
1351  libTableFileName = SYMBOL_LIB_TABLE::GetGlobalTableFileName();
1352 
1353  // We cannot normalize against the current project path when saving to global table.
1354  normalizedPath = NormalizePath( aLibFile, &envVars, wxEmptyString );
1355  }
1356 
1357  if( normalizedPath.IsEmpty() )
1358  normalizedPath = aLibFile;
1359 
1360  row->SetFullURI( normalizedPath );
1361 
1362  wxCHECK( libTable->InsertRow( row ), false );
1363 
1364  try
1365  {
1366  libTable->Save( libTableFileName.GetFullPath() );
1367  }
1368  catch( const IO_ERROR& ioe )
1369  {
1370  wxString msg = aScope == GLOBAL_LIB_TABLE ? _( "Error saving global library table." )
1371  : _( "Error saving project library table." );
1372 
1373  wxMessageDialog dlg( this, msg, _( "File Save Error" ), wxOK | wxICON_ERROR );
1374  dlg.SetExtendedMessage( ioe.What() );
1375  dlg.ShowModal();
1376 
1377  return false;
1378  }
1379 
1380  return true;
1381 }
static const wxString & GetSymbolLibTableFileName()
static SYMBOL_LIB_TABLE & GetGlobalLibTable()
Hold a record identifying a symbol library accessed by the appropriate symbol library SCH_PLUGIN obje...
bool HasLibrary(const wxString &aNickname, bool aCheckEnabled=false) const
Test for the existence of aNickname in the library table.
bool InsertRow(LIB_TABLE_ROW *aRow, bool doReplace=false)
Adds aRow if it does not already exist or if doReplace is true.
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
Definition: single_top.cpp:106
virtual const wxString What() const
A composite of Problem() and Where()
Definition: exceptions.cpp:29
std::map< wxString, ENV_VAR_ITEM > ENV_VAR_MAP
Definition: pgm_base.h:113
PROJECT & Prj() const
Return a reference to the PROJECT associated with this KIWAY.
void SetFullURI(const wxString &aFullURI)
Change the full URI for the library.
#define _(s)
Definition: 3d_actions.cpp:33
void SetNickName(const wxString &aNickName)
Change the logical name of this library, useful for an editor.
void Save(const wxString &aFileName) const
Write this library table to aFileName in s-expression form.
Hold an error message and may be used when throwing exceptions containing meaningful error messages.
Definition: ki_exception.h:75
static wxString GetGlobalTableFileName()
Fetch the global symbol library table file name.
wxString NormalizePath(const wxFileName &aFilePath, const ENV_VAR_MAP *aEnvVars, const wxString &aProjectPath)
Normalize a file path to an environmental variable, if possible.
Definition: env_paths.cpp:67

References _, SYMBOL_LIB_TABLE::GetGlobalLibTable(), SYMBOL_LIB_TABLE::GetGlobalTableFileName(), SYMBOL_LIB_TABLE::GetSymbolLibTableFileName(), GLOBAL_LIB_TABLE, LIB_TABLE::HasLibrary(), LIB_TABLE::InsertRow(), NormalizePath(), Pgm(), KIWAY_HOLDER::Prj(), LIB_TABLE::Save(), LIB_TABLE_ROW::SetFullURI(), LIB_TABLE_ROW::SetNickName(), and IO_ERROR::What().

Referenced by saveLibrary().

◆ AddStandardHelpMenu()

void EDA_BASE_FRAME::AddStandardHelpMenu ( wxMenuBar *  aMenuBar)
inherited

Adds the standard KiCad help menu to the menubar.

Definition at line 409 of file eda_base_frame.cpp.

410 {
411  COMMON_CONTROL* commonControl = m_toolManager->GetTool<COMMON_CONTROL>();
412  ACTION_MENU* helpMenu = new ACTION_MENU( false, commonControl );
413 
414  helpMenu->Add( ACTIONS::help );
415  helpMenu->Add( ACTIONS::gettingStarted );
416  helpMenu->Add( ACTIONS::listHotKeys );
417  helpMenu->Add( ACTIONS::getInvolved );
418  helpMenu->Add( ACTIONS::reportBug );
419 
420  helpMenu->AppendSeparator();
421  helpMenu->Add( _( "&About KiCad" ), "", wxID_ABOUT, about_xpm );
422 
423  aMenuBar->Append( helpMenu, _( "&Help" ) );
424 }
static TOOL_ACTION listHotKeys
Definition: actions.h:180
Defines the structure of a menu based on ACTIONs.
Definition: action_menu.h:45
static TOOL_ACTION reportBug
Definition: actions.h:182
const BITMAP_OPAQUE about_xpm[1]
Definition: about.cpp:40
Handle actions that are shared between different applications.
TOOL_MANAGER * m_toolManager
Definition: tools_holder.h:157
#define _(s)
Definition: 3d_actions.cpp:33
static TOOL_ACTION help
Definition: actions.h:179
static TOOL_ACTION getInvolved
Definition: actions.h:181
static TOOL_ACTION gettingStarted
Definition: actions.h:178

References _, about_xpm, ACTIONS::getInvolved, ACTIONS::gettingStarted, TOOL_MANAGER::GetTool(), ACTIONS::help, ACTIONS::listHotKeys, TOOLS_HOLDER::m_toolManager, and ACTIONS::reportBug.

Referenced by EDA_3D_VIEWER::CreateMenuBar(), KICAD_MANAGER_FRAME::ReCreateMenuBar(), GERBVIEW_FRAME::ReCreateMenuBar(), SYMBOL_VIEWER_FRAME::ReCreateMenuBar(), ReCreateMenuBar(), FOOTPRINT_EDIT_FRAME::ReCreateMenuBar(), FOOTPRINT_VIEWER_FRAME::ReCreateMenuBar(), PL_EDITOR_FRAME::ReCreateMenuBar(), CVPCB_MAINFRAME::ReCreateMenuBar(), SCH_EDIT_FRAME::ReCreateMenuBar(), and PCB_EDIT_FRAME::ReCreateMenuBar().

◆ AddStandardSubMenus()

void EDA_DRAW_FRAME::AddStandardSubMenus ( TOOL_MENU aMenu)
inherited

Construct a "basic" menu for a tool, containing only items that apply to all tools (e.g.

zoom and grid).

Definition at line 437 of file eda_draw_frame.cpp.

438 {
439  COMMON_TOOLS* commonTools = m_toolManager->GetTool<COMMON_TOOLS>();
440  CONDITIONAL_MENU& aMenu = aToolMenu.GetMenu();
441 
442  aMenu.AddSeparator( 1000 );
443 
444  auto zoomMenu = std::make_shared<ZOOM_MENU>( this );
445  zoomMenu->SetTool( commonTools );
446  aToolMenu.AddSubMenu( zoomMenu );
447 
448  auto gridMenu = std::make_shared<GRID_MENU>( this );
449  gridMenu->SetTool( commonTools );
450  aToolMenu.AddSubMenu( gridMenu );
451 
452  aMenu.AddMenu( zoomMenu.get(), SELECTION_CONDITIONS::ShowAlways, 1000 );
453  aMenu.AddMenu( gridMenu.get(), SELECTION_CONDITIONS::ShowAlways, 1000 );
454 }
static bool ShowAlways(const SELECTION &aSelection)
The default condition function (always returns true).
CONDITIONAL_MENU & GetMenu()
Definition: tool_menu.cpp:46
Handles action that are shared between different applications.
Definition: common_tools.h:37
void AddSeparator(int aOrder=ANY_ORDER)
Add a separator to the menu.
TOOL_MANAGER * m_toolManager
Definition: tools_holder.h:157

References CONDITIONAL_MENU::AddSeparator(), TOOL_MENU::AddSubMenu(), TOOL_MENU::GetMenu(), TOOL_MANAGER::GetTool(), TOOLS_HOLDER::m_toolManager, and SELECTION_CONDITIONS::ShowAlways().

Referenced by ROUTER_TOOL::Init(), PL_EDIT_TOOL::Init(), PL_DRAWING_TOOLS::Init(), PCB_VIEWER_TOOLS::Init(), PL_SELECTION_TOOL::Init(), EE_SELECTION_TOOL::Init(), PCB_SELECTION_TOOL::Init(), and PICKER_TOOL::Init().

◆ AddToScreen()

void SCH_BASE_FRAME::AddToScreen ( EDA_ITEM aItem,
SCH_SCREEN aScreen 
)
inherited

Add an item to the screen (and view) aScreen is the screen the item is located on, if not the current screen.

Definition at line 362 of file sch_base_frame.cpp.

363 {
364  auto screen = aScreen;
365 
366  if( aScreen == nullptr )
367  screen = GetScreen();
368 
369  screen->Append( (SCH_ITEM*) aItem );
370 
371  if( screen == GetScreen() )
372  {
373  GetCanvas()->GetView()->Add( aItem );
374  UpdateItem( aItem, true ); // handle any additional parent semantics
375  }
376 }
KIGFX::SCH_VIEW * GetView() const override
Return a pointer to the #VIEW instance used in the panel.
void UpdateItem(EDA_ITEM *aItem, bool isAddOrDelete=false)
Mark an item for refresh.
SCH_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
SCH_DRAW_PANEL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
virtual void Add(VIEW_ITEM *aItem, int aDrawPriority=-1)
Add a VIEW_ITEM to the view.
Definition: view.cpp:321
Base class for any item which can be embedded within the SCHEMATIC container class,...
Definition: sch_item.h:196

References KIGFX::VIEW::Add(), SCH_BASE_FRAME::GetCanvas(), SCH_BASE_FRAME::GetScreen(), SCH_DRAW_PANEL::GetView(), and SCH_BASE_FRAME::UpdateItem().

Referenced by SCH_EDIT_FRAME::AddItemToScreenAndUndoList(), SCH_EDIT_FRAME::AddJunction(), SCH_EDIT_FRAME::BreakSegment(), SCH_EDIT_TOOL::ChangeTextType(), SCH_EDIT_FRAME::DeleteJunction(), SCH_LINE_WIRE_BUS_TOOL::doDrawSegments(), SCH_LINE_WIRE_BUS_TOOL::doUnfoldBus(), SCH_EDIT_TOOL::Duplicate(), SCH_LINE_WIRE_BUS_TOOL::finishSegments(), SCH_MOVE_TOOL::getConnectedDragItems(), SCH_EDIT_FRAME::PutDataInPreviousState(), SCH_EDIT_TOOL::RepeatDrawItem(), SCH_EDIT_FRAME::SchematicCleanUp(), and SCH_EDIT_FRAME::ShowAllIntersheetRefs().

◆ AppendMsgPanel()

void EDA_DRAW_FRAME::AppendMsgPanel ( const wxString &  aTextUpper,
const wxString &  aTextLower,
int  aPadding = 6 
)
inherited

Append a message to the message panel.

This helper method checks to make sure the message panel exists in the frame and appends a message to it using the message panel AppendMessage() method.

Parameters
aTextUpperThe message upper text.
aTextLowerThe message lower text.
aPaddingNumber of spaces to pad between messages.

Definition at line 588 of file eda_draw_frame.cpp.

590 {
591  if( m_messagePanel )
592  m_messagePanel->AppendMessage( aTextUpper, aTextLower, aPadding );
593 }
EDA_MSG_PANEL * m_messagePanel
void AppendMessage(const wxString &aUpperText, const wxString &aLowerText, int aPadding=6)
Function AppendMessage appends a message to the message panel.
Definition: msgpanel.cpp:118

References EDA_MSG_PANEL::AppendMessage(), and EDA_DRAW_FRAME::m_messagePanel.

Referenced by GERBER_FILE_IMAGE::DisplayImageInfo(), DisplaySymbolDatasheet(), and SYMBOL_VIEWER_FRAME::updatePreviewSymbol().

◆ backupFile()

bool SYMBOL_EDIT_FRAME::backupFile ( const wxFileName &  aOriginalFile,
const wxString &  aBackupExt 
)
private

Return currently edited part.

Definition at line 1011 of file symbol_edit_frame.cpp.

1012 {
1013  if( aOriginalFile.FileExists() )
1014  {
1015  wxFileName backupFileName( aOriginalFile );
1016  backupFileName.SetExt( aBackupExt );
1017 
1018  if( backupFileName.FileExists() )
1019  wxRemoveFile( backupFileName.GetFullPath() );
1020 
1021  if( !wxCopyFile( aOriginalFile.GetFullPath(), backupFileName.GetFullPath() ) )
1022  {
1023  DisplayError( this, wxString::Format( _( "Failed to save backup to \"%s\"" ),
1024  backupFileName.GetFullPath() ) );
1025  return false;
1026  }
1027  }
1028 
1029  return true;
1030 }
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
Definition: confirm.cpp:253
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, const CPTREE &aTree)
Output a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:200
#define _(s)
Definition: 3d_actions.cpp:33

References _, DisplayError(), and Format().

Referenced by saveLibrary().

◆ canCloseWindow()

bool SYMBOL_EDIT_FRAME::canCloseWindow ( wxCloseEvent &  aCloseEvent)
overridevirtual

Reimplemented from EDA_BASE_FRAME.

Definition at line 491 of file symbol_edit_frame.cpp.

492 {
493  // Shutdown blocks must be determined and vetoed as early as possible
494  if( KIPLATFORM::APP::SupportsShutdownBlockReason() && aEvent.GetId() == wxEVT_QUERY_END_SESSION
495  && IsContentModified() )
496  {
497  return false;
498  }
499 
501  {
502  SCH_EDIT_FRAME* schframe = (SCH_EDIT_FRAME*) Kiway().Player( FRAME_SCH, false );
503 
504  switch( UnsavedChangesDialog( this,
505  _( "Save changes to schematic before closing?" ),
506  nullptr ) )
507  {
508  case wxID_YES:
509  if( schframe && GetCurPart() ) // Should be always the case
510  schframe->UpdateSymbolFromEditor( *GetCurPart() );
511 
512  return true;
513 
514  case wxID_NO: return true;
515 
516  default:
517  case wxID_CANCEL: return false;
518  }
519  }
520 
521  if( !saveAllLibraries( true ) )
522  {
523  return false;
524  }
525 
526  return true;
527 }
KIWAY & Kiway() const
Return a reference to the KIWAY that this object has an opportunity to participate in.
Definition: kiway_holder.h:56
bool IsContentModified() override
Get if any parts or libraries have been modified but not saved.
virtual KIWAY_PLAYER * Player(FRAME_T aFrameType, bool doCreate=true, wxTopLevelWindow *aParent=nullptr)
Return the KIWAY_PLAYER* given a FRAME_T.
Definition: kiway.cpp:345
Schematic editor (Eeschema) main window.
void UpdateSymbolFromEditor(const LIB_PART &aSymbol)
Update the LIB_PART of the currently selected symbol.
bool SupportsShutdownBlockReason()
Whether or not the window supports setting a shutdown block reason.
Definition: gtk/app.cpp:40
int UnsavedChangesDialog(wxWindow *parent, wxString aMessage, bool *aApplyToAll)
A specialized version of HandleUnsavedChanges which handles an apply-to-all checkbox.
Definition: confirm.cpp:155
LIB_PART * GetCurPart()
Return the current part being edited or NULL if none selected.
bool saveAllLibraries(bool aRequireConfirmation)
Save the current part.
#define _(s)
Definition: 3d_actions.cpp:33

References _, FRAME_SCH, GetCurPart(), IsContentModified(), KIWAY_HOLDER::Kiway(), m_isSymbolFromSchematic, KIWAY::Player(), saveAllLibraries(), KIPLATFORM::APP::SupportsShutdownBlockReason(), UnsavedChangesDialog(), and SCH_EDIT_FRAME::UpdateSymbolFromEditor().

◆ CenterScreen()

void SCH_BASE_FRAME::CenterScreen ( const wxPoint &  aCenterPoint,
bool  aWarpPointer 
)
virtualinherited

Definition at line 253 of file sch_base_frame.cpp.

254 {
255  GetCanvas()->GetView()->SetCenter( aCenterPoint );
256 
257  if( aWarpPointer )
258  GetCanvas()->GetViewControls()->WarpCursor( aCenterPoint, true );
259 
260  GetCanvas()->Refresh();
261 }
KIGFX::SCH_VIEW * GetView() const override
Return a pointer to the #VIEW instance used in the panel.
KIGFX::VIEW_CONTROLS * GetViewControls() const
Return a pointer to the #VIEW_CONTROLS instance used in the panel.
virtual void WarpCursor(const VECTOR2D &aPosition, bool aWorldCoordinates=false, bool aWarpView=false)=0
If enabled (.
void SetCenter(const VECTOR2D &aCenter)
Set the center point of the VIEW (i.e.
Definition: view.cpp:579
SCH_DRAW_PANEL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
virtual void Refresh(bool aEraseBackground=true, const wxRect *aRect=NULL) override
Update the board display after modifying it by a python script (note: it is automatically called by a...

References SCH_BASE_FRAME::GetCanvas(), SCH_DRAW_PANEL::GetView(), EDA_DRAW_PANEL_GAL::GetViewControls(), EDA_DRAW_PANEL_GAL::Refresh(), KIGFX::VIEW::SetCenter(), and KIGFX::VIEW_CONTROLS::WarpCursor().

Referenced by SCH_EDITOR_CONTROL::FindComponentAndItem().

◆ ChangeUserUnits()

void EDA_BASE_FRAME::ChangeUserUnits ( EDA_UNITS  aUnits)
inherited

Definition at line 1054 of file eda_base_frame.cpp.

1055 {
1056  SetUserUnits( aUnits );
1058 
1059  wxCommandEvent e( UNITS_CHANGED );
1060  ProcessEventLocally( e );
1061 }
virtual void unitsChangeRefresh()
Called when when the units setting has changed to allow for any derived classes to handle refreshing ...
void SetUserUnits(EDA_UNITS aUnits)

References EDA_BASE_FRAME::SetUserUnits(), and EDA_BASE_FRAME::unitsChangeRefresh().

Referenced by COMMON_TOOLS::SwitchUnits(), and COMMON_TOOLS::ToggleUnits().

◆ CheckForAutoSaveFile()

void EDA_BASE_FRAME::CheckForAutoSaveFile ( const wxFileName &  aFileName)
inherited

Check if an auto save file exists for aFileName and takes the appropriate action depending on the user input.

If an auto save file exists for aFileName, the user is prompted if they wish to replace file aFileName with the auto saved file. If the user chooses to replace the file, the backup file of aFileName is removed, aFileName is renamed to the backup file name, and the auto save file is renamed to aFileName. If user chooses to keep the existing version of aFileName, the auto save file is removed.

Parameters
aFileNameA wxFileName object containing the file name to check.

Definition at line 943 of file eda_base_frame.cpp.

944 {
945  wxCHECK_RET( aFileName.IsOk(), wxT( "Invalid file name!" ) );
946 
947  wxFileName autoSaveFileName = aFileName;
948 
949  // Check for auto save file.
950  autoSaveFileName.SetName( GetAutoSaveFilePrefix() + aFileName.GetName() );
951 
952  wxLogTrace( traceAutoSave,
953  wxT( "Checking for auto save file " ) + autoSaveFileName.GetFullPath() );
954 
955  if( !autoSaveFileName.FileExists() )
956  return;
957 
958  wxString msg = wxString::Format( _(
959  "Well this is potentially embarrassing!\n"
960  "It appears that the last time you were editing the file\n"
961  "\"%s\"\n"
962  "it was not saved properly. Do you wish to restore the last saved edits you made?" ),
963  aFileName.GetFullName()
964  );
965 
966  int response = wxMessageBox( msg, Pgm().App().GetAppName(), wxYES_NO | wxICON_QUESTION, this );
967 
968  // Make a backup of the current file, delete the file, and rename the auto save file to
969  // the file name.
970  if( response == wxYES )
971  {
972  if( !wxRenameFile( autoSaveFileName.GetFullPath(), aFileName.GetFullPath() ) )
973  {
974  wxMessageBox( _( "The auto save file could not be renamed to the board file name." ),
975  Pgm().App().GetAppName(), wxOK | wxICON_EXCLAMATION, this );
976  }
977  }
978  else
979  {
980  wxLogTrace( traceAutoSave,
981  wxT( "Removing auto save file " ) + autoSaveFileName.GetFullPath() );
982 
983  // Remove the auto save file when using the previous file as is.
984  wxRemoveFile( autoSaveFileName.GetFullPath() );
985  }
986 }
const wxChar *const traceAutoSave
Flag to enable auto save feature debug tracing.
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
Definition: single_top.cpp:106
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, const CPTREE &aTree)
Output a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:200
static wxString GetAutoSaveFilePrefix()
#define _(s)
Definition: 3d_actions.cpp:33

References _, Format(), EDA_BASE_FRAME::GetAutoSaveFilePrefix(), Pgm(), and traceAutoSave.

Referenced by SCH_EDIT_FRAME::OpenProjectFiles(), and PCB_EDIT_FRAME::OpenProjectFiles().

◆ ClearFileHistory()

void EDA_BASE_FRAME::ClearFileHistory ( FILE_HISTORY aFileHistory = nullptr)
inherited

Removes all files from the file history.

Parameters
aFileHistoryThe FILE_HISTORY in use. If null, the main application file history is used

Definition at line 840 of file eda_base_frame.cpp.

841 {
842  if( !aFileHistory )
843  aFileHistory = m_fileHistory;
844 
845  wxASSERT( aFileHistory );
846 
847  aFileHistory->ClearFileHistory();
848 
849  // Update the menubar to update the file history menu
850  if( GetMenuBar() )
851  {
852  ReCreateMenuBar();
853  GetMenuBar()->Refresh();
854  }
855 }
void ClearFileHistory()
Clear all entries from the file history.
FILE_HISTORY * m_fileHistory
virtual void ReCreateMenuBar()
Recreates the menu bar.

References FILE_HISTORY::ClearFileHistory(), EDA_BASE_FRAME::m_fileHistory, and EDA_BASE_FRAME::ReCreateMenuBar().

Referenced by GERBVIEW_FRAME::OnClearDrlFileHistory(), KICAD_MANAGER_FRAME::OnClearFileHistory(), PL_EDITOR_FRAME::OnClearFileHistory(), PCB_EDIT_FRAME::OnClearFileHistory(), SCH_EDIT_FRAME::OnClearFileHistory(), GERBVIEW_FRAME::OnClearGbrFileHistory(), GERBVIEW_FRAME::OnClearJobFileHistory(), and GERBVIEW_FRAME::OnClearZipFileHistory().

◆ ClearMsgPanel()

void SYMBOL_EDIT_FRAME::ClearMsgPanel ( )
inlineoverridevirtual

Clear all messages from the message panel.

Reimplemented from EDA_DRAW_FRAME.

Definition at line 228 of file symbol_edit_frame.h.

229  {
231  }
void DisplaySymbolDatasheet()
Display the documentation of the selected symbol.

References DisplaySymbolDatasheet().

Referenced by saveLibrary().

◆ ClearUndoORRedoList()

void SYMBOL_EDIT_FRAME::ClearUndoORRedoList ( UNDO_REDO_LIST  whichList,
int  aItemCount = -1 
)
overridevirtual

Free the undo or redo list from aList element.

  • Wrappers are deleted.
  • data pointed by wrappers are deleted if not in use in schematic i.e. when they are copy of a schematic item or they are no more in use (DELETED)
Parameters
whichList= the UNDO_REDO_CONTAINER to clear
aItemCount= the count of items to remove. < 0 for all items items are removed from the beginning of the list. So this function can be called to remove old commands

Reimplemented from EDA_BASE_FRAME.

Definition at line 1242 of file symbol_edit_frame.cpp.

1243 {
1244  if( aItemCount == 0 )
1245  return;
1246 
1247  UNDO_REDO_CONTAINER& list = whichList == UNDO_LIST ? m_undoList : m_redoList;
1248 
1249  for( PICKED_ITEMS_LIST* command : list.m_CommandsList )
1250  {
1251  command->ClearListAndDeleteItems();
1252  delete command;
1253  }
1254 
1255  list.m_CommandsList.clear();
1256 }
UNDO_REDO_CONTAINER m_undoList
A holder to handle a list of undo (or redo) commands.
std::vector< PICKED_ITEMS_LIST * > m_CommandsList
A holder to handle information on schematic or board items.
UNDO_REDO_CONTAINER m_redoList
void ClearListAndDeleteItems()
Delete the list of pickers AND the data pointed by #m_PickedItem or #m_PickedItemLink according to th...

References PICKED_ITEMS_LIST::ClearListAndDeleteItems(), UNDO_REDO_CONTAINER::m_CommandsList, EDA_BASE_FRAME::m_redoList, EDA_BASE_FRAME::m_undoList, and EDA_BASE_FRAME::UNDO_LIST.

Referenced by SaveCopyInUndoList().

◆ ClearUndoRedoList()

◆ CloseWindow()

void SYMBOL_EDIT_FRAME::CloseWindow ( wxCommandEvent &  event)
inline

Trigger the wxCloseEvent, which is handled by the function given to EVT_CLOSE() macro:

EVT_CLOSE( SYMBOL_EDIT_FRAME::OnCloseWindow )

Definition at line 207 of file symbol_edit_frame.h.

208  {
209  // Generate a wxCloseEvent
210  Close( false );
211  }

◆ CommonSettingsChanged()

void SYMBOL_EDIT_FRAME::CommonSettingsChanged ( bool  aEnvVarsChanged,
bool  aTextVarsChanged 
)
overridevirtual

Called after the preferences dialog is run.

Reimplemented from SCH_BASE_FRAME.

Definition at line 1061 of file symbol_edit_frame.cpp.

1062 {
1063  SCH_BASE_FRAME::CommonSettingsChanged( aEnvVarsChanged, aTextVarsChanged );
1064 
1066  GetCanvas()->GetGAL()->DrawGrid();
1067 
1068  RecreateToolbars();
1069 
1070  if( aEnvVarsChanged )
1071  SyncLibraries( true );
1072 
1073  Layout();
1074  SendSizeEvent();
1075 }
void RecreateToolbars()
Rebuild all toolbars, and update the checked state of check tools.
SCH_DRAW_PANEL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
void SetAxesColor(const COLOR4D &aAxesColor)
Set the axes color.
virtual void DrawGrid()
KIGFX::GAL * GetGAL() const
Return a pointer to the GAL instance used in the panel.
COLOR_SETTINGS * m_colorSettings
The current canvas type.
COLOR4D GetColor(int aLayer) const
void CommonSettingsChanged(bool aEnvVarsChanged, bool aTextVarsChanged) override
Notification event that some of the common (suite-wide) settings have changed.
void SyncLibraries(bool aShowProgress, const wxString &aForceRefresh=wxEmptyString)
Synchronize the library manager to the symbol library table, and then the symbol tree to the library ...

References SCH_BASE_FRAME::CommonSettingsChanged(), KIGFX::GAL::DrawGrid(), SCH_BASE_FRAME::GetCanvas(), COLOR_SETTINGS::GetColor(), EDA_DRAW_PANEL_GAL::GetGAL(), LAYER_SCHEMATIC_GRID_AXES, EDA_DRAW_FRAME::m_colorSettings, EDA_DRAW_FRAME::RecreateToolbars(), KIGFX::GAL::SetAxesColor(), and SyncLibraries().

◆ config()

APP_SETTINGS_BASE * EDA_BASE_FRAME::config ( ) const
virtualinherited

Returns the settings object used in SaveSettings(), and is overloaded in KICAD_MANAGER_FRAME.

Reimplemented in KICAD_MANAGER_FRAME, and FOOTPRINT_EDIT_FRAME.

Definition at line 681 of file eda_base_frame.cpp.

682 {
683  // KICAD_MANAGER_FRAME overrides this
684  return Kiface().KifaceSettings();
685 }
APP_SETTINGS_BASE * KifaceSettings() const
Definition: kiface_i.h:92
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.

References Kiface(), and KIFACE_I::KifaceSettings().

Referenced by GERBVIEW_FRAME::ActivateGalCanvas(), PCB_BASE_FRAME::ActivateGalCanvas(), BM2CMP_FRAME::BM2CMP_FRAME(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), FOOTPRINT_WIZARD_FRAME::doCloseWindow(), SIM_PLOT_FRAME::doCloseWindow(), SCH_BASE_FRAME::eeconfig(), FOOTPRINT_VIEWER_FRAME::FOOTPRINT_VIEWER_FRAME(), GERBVIEW_FRAME::GERBVIEW_FRAME(), DISPLAY_FOOTPRINTS_FRAME::GetAutoZoom(), GRID_MENU::GRID_MENU(), COMMON_TOOLS::GridFast1(), COMMON_TOOLS::GridFast2(), EDA_DRAW_FRAME::IsGridVisible(), SCH_BASE_FRAME::libeditconfig(), EDA_DRAW_FRAME::OnUpdateSelectGrid(), EDA_DRAW_FRAME::OnUpdateSelectZoom(), PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME(), DIALOG_GRID_SETTINGS::RebuildGridSizes(), EDA_DRAW_FRAME::resolveCanvasType(), DISPLAY_FOOTPRINTS_FRAME::SetAutoZoom(), PCB_BASE_EDIT_FRAME::SetBoard(), EDA_DRAW_FRAME::SetGridVisibility(), PL_EDITOR_FRAME::setupTools(), SYMBOL_VIEWER_FRAME::setupTools(), setupTools(), CVPCB_MAINFRAME::setupTools(), GERBVIEW_FRAME::setupTools(), SCH_EDIT_FRAME::setupTools(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), SYMBOL_VIEWER_FRAME::SYMBOL_VIEWER_FRAME(), DIALOG_GRID_SETTINGS::TransferDataFromWindow(), DIALOG_GRID_SETTINGS::TransferDataToWindow(), ZOOM_MENU::update(), GRID_MENU::update(), EDA_DRAW_FRAME::UpdateGridSelectBox(), EDA_DRAW_FRAME::UpdateZoomSelectBox(), EDA_BASE_FRAME::windowClosing(), ZOOM_MENU::ZOOM_MENU(), and BM2CMP_FRAME::~BM2CMP_FRAME().

◆ ConfigBaseName()

wxString EDA_BASE_FRAME::ConfigBaseName ( )
inlineoverridevirtualinherited

Get the configuration base name.

This is usually the name of the frame set by CTOR, except for frames shown in multiple modes in which case the m_configName must be set to the base name so that a single configuration can be used.

Returns
a base name prefix used in Load/Save settings to build the full name of keys used in configuration.

Reimplemented from TOOLS_HOLDER.

Definition at line 338 of file eda_base_frame.h.

339  {
340  wxString baseCfgName = m_configName.IsEmpty() ? GetName() : m_configName;
341  return baseCfgName;
342  }
wxString m_configName

References EDA_BASE_FRAME::m_configName.

Referenced by EDA_BASE_FRAME::SaveWindowSettings().

◆ CopyPartToClipboard()

void SYMBOL_EDIT_FRAME::CopyPartToClipboard ( )

Definition at line 761 of file symbol_editor.cpp.

762 {
763  int dummyUnit;
764  LIB_ID libId = m_treePane->GetLibTree()->GetSelectedLibId( &dummyUnit );
765  LIB_PART* part = m_libMgr->GetBufferedPart( libId.GetLibItemName(), libId.GetLibNickname() );
766 
767  if( !part )
768  return;
769 
770  std::unique_ptr< LIB_PART> tmp = part->Flatten();
771  STRING_FORMATTER formatter;
772  SCH_SEXPR_PLUGIN::FormatPart( tmp.get(), formatter );
773 
774  wxLogNull doNotLog; // disable logging of failed clipboard actions
775 
776  auto clipboard = wxTheClipboard;
777  wxClipboardLocker clipboardLock( clipboard );
778 
779  if( !clipboardLock || !clipboard->IsOpened() )
780  return;
781 
782  auto data = new wxTextDataObject( wxString( formatter.GetString().c_str(), wxConvUTF8 ) );
783  clipboard->SetData( data );
784 
785  clipboard->Flush();
786 }
const UTF8 & GetLibItemName() const
Definition: lib_id.h:106
SYMBOL_TREE_PANE * m_treePane
static void FormatPart(LIB_PART *aPart, OUTPUTFORMATTER &aFormatter)
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:51
LIB_PART * GetBufferedPart(const wxString &aAlias, const wxString &aLibrary)
Return the part copy from the buffer.
LIB_ID GetSelectedLibId(int *aUnit=nullptr) const
For multi-unit components, if the user selects the component itself rather than picking an individual...
Definition: lib_tree.cpp:148
Define a library symbol object.
Definition: lib_symbol.h:93
const UTF8 & GetLibNickname() const
Return the logical library name portion of a LIB_ID.
Definition: lib_id.h:92
const std::string & GetString()
Definition: richio.h:435
std::unique_ptr< LIB_PART > Flatten() const
Return a flattened symbol inheritance to the caller.
Definition: lib_symbol.cpp:334
SYMBOL_LIBRARY_MANAGER * m_libMgr
LIB_TREE * GetLibTree() const
Implement an OUTPUTFORMATTER to a memory buffer.
Definition: richio.h:411

References LIB_PART::Flatten(), SCH_SEXPR_PLUGIN::FormatPart(), SYMBOL_LIBRARY_MANAGER::GetBufferedPart(), LIB_ID::GetLibItemName(), LIB_ID::GetLibNickname(), SYMBOL_TREE_PANE::GetLibTree(), LIB_TREE::GetSelectedLibId(), STRING_FORMATTER::GetString(), m_libMgr, and m_treePane.

Referenced by SYMBOL_EDITOR_CONTROL::CutCopyDelete().

◆ createCanvas()

void SCH_BASE_FRAME::createCanvas ( )
inherited

Definition at line 284 of file sch_base_frame.cpp.

285 {
287 
288  // Allows only a CAIRO or OPENGL canvas:
291  {
293  }
294 
295  SetCanvas( new SCH_DRAW_PANEL( this, wxID_ANY, wxPoint( 0, 0 ), m_frameSize,
298 }
KIGFX::GAL_DISPLAY_OPTIONS & GetGalDisplayOptions()
Return a reference to the gal rendering options used by GAL for rendering.
EDA_DRAW_PANEL_GAL::GAL_TYPE m_canvasType
static constexpr GAL_TYPE GAL_FALLBACK
virtual void ActivateGalCanvas()
Use to start up the GAL drawing canvas.
void SetCanvas(EDA_DRAW_PANEL_GAL *aPanel)
EDA_DRAW_PANEL_GAL::GAL_TYPE loadCanvasTypeSetting()
Returns the canvas type stored in the application settings.

References EDA_DRAW_FRAME::ActivateGalCanvas(), EDA_DRAW_PANEL_GAL::GAL_FALLBACK, EDA_DRAW_PANEL_GAL::GAL_TYPE_OPENGL, EDA_DRAW_FRAME::GetGalDisplayOptions(), EDA_DRAW_FRAME::loadCanvasTypeSetting(), EDA_DRAW_FRAME::m_canvasType, EDA_BASE_FRAME::m_frameSize, and EDA_DRAW_FRAME::SetCanvas().

Referenced by SCH_BASE_FRAME::SCH_BASE_FRAME().

◆ CreateInfoBar()

void EDA_BASE_FRAME::CreateInfoBar ( )
inherited

Definition at line 706 of file eda_base_frame.cpp.

707 {
708 #if defined( __WXOSX_MAC__ )
710 #else
711  m_infoBar = new WX_INFOBAR( this, &m_auimgr );
712 
713  m_auimgr.AddPane( m_infoBar, EDA_PANE().InfoBar().Name( "InfoBar" ).Top().Layer(1) );
714 #endif
715 }
wxAuiManager m_auimgr
virtual wxWindow * GetToolCanvas() const =0
Canvas access.
Specialization of the wxAuiPaneInfo class for KiCad panels.
A modified version of the wxInfoBar class that allows us to:
Definition: infobar.h:71
WX_INFOBAR * m_infoBar

References TOOLS_HOLDER::GetToolCanvas(), EDA_BASE_FRAME::m_auimgr, and EDA_BASE_FRAME::m_infoBar.

◆ CreateNewPart()

void SYMBOL_EDIT_FRAME::CreateNewPart ( )

Create a new part in the selected library.

Definition at line 375 of file symbol_editor.cpp.

376 {
378 
379  wxArrayString rootSymbols;
380  wxString lib = getTargetLib();
381 
382  if( !m_libMgr->LibraryExists( lib ) )
383  {
384  lib = SelectLibraryFromList();
385 
386  if( !m_libMgr->LibraryExists( lib ) )
387  return;
388  }
389 
390  m_libMgr->GetRootSymbolNames( lib, rootSymbols );
391 
392  rootSymbols.Sort();
393 
394  DIALOG_LIB_NEW_COMPONENT dlg( this, &rootSymbols );
395  dlg.SetMinSize( dlg.GetSize() );
396 
397  if( dlg.ShowModal() == wxID_CANCEL )
398  return;
399 
400  if( dlg.GetName().IsEmpty() )
401  {
402  wxMessageBox( _( "This new symbol has no name and cannot be created." ) );
403  return;
404  }
405 
406  wxString name = dlg.GetName();
407  // Currently, symbol names cannot include a space, that breaks libraries:
408  name.Replace( " ", "_" );
409 
410  // Test if there is a component with this name already.
411  if( !lib.empty() && m_libMgr->PartExists( name, lib ) )
412  {
413  wxString msg = wxString::Format( _( "Symbol \"%s\" already exists in library \"%s\"" ),
414  name, lib );
415  DisplayError( this, msg );
416  return;
417  }
418 
419  LIB_PART new_part( name ); // do not create part on the heap, it will be buffered soon
420 
421  wxString parentSymbolName = dlg.GetParentSymbolName();
422 
423  if( parentSymbolName.IsEmpty() )
424  {
425  new_part.GetReferenceField().SetText( dlg.GetReference() );
426  new_part.SetUnitCount( dlg.GetUnitCount() );
427 
428  // Initialize new_part.m_TextInside member:
429  // if 0, pin text is outside the body (on the pin)
430  // if > 0, pin text is inside the body
431 
432  if( dlg.GetPinNameInside() )
433  {
434  new_part.SetPinNameOffset( dlg.GetPinTextPosition() );
435 
436  if( new_part.GetPinNameOffset() == 0 )
437  new_part.SetPinNameOffset( 1 );
438  }
439  else
440  {
441  new_part.SetPinNameOffset( 0 );
442  }
443 
444  ( dlg.GetPowerSymbol() ) ? new_part.SetPower() : new_part.SetNormal();
445  new_part.SetShowPinNumbers( dlg.GetShowPinNumber() );
446  new_part.SetShowPinNames( dlg.GetShowPinName() );
447  new_part.LockUnits( dlg.GetLockItems() );
448  new_part.SetIncludeInBom( dlg.GetIncludeInBom() );
449  new_part.SetIncludeOnBoard( dlg.GetIncludeOnBoard() );
450 
451  if( dlg.GetUnitCount() < 2 )
452  new_part.LockUnits( false );
453 
454  new_part.SetConversion( dlg.GetAlternateBodyStyle() );
455  // must be called after loadPart, that calls SetShowDeMorgan, but
456  // because the symbol is empty,it looks like it has no alternate body
457  SetShowDeMorgan( dlg.GetAlternateBodyStyle() );
458  }
459  else
460  {
461  LIB_PART* parent = m_libMgr->GetAlias( parentSymbolName, lib );
462  wxCHECK( parent, /* void */ );
463  new_part.SetParent( parent );
464 
465  // Inherit the parent mandatory field attributes.
466  for( int id = 0; id < MANDATORY_FIELDS; ++id )
467  {
468  LIB_FIELD* field = new_part.GetFieldById( id );
469 
470  // the MANDATORY_FIELDS are exactly that in RAM.
471  wxCHECK( field, /* void */ );
472 
473  LIB_FIELD* parentField = parent->GetFieldById( id );
474 
475  wxCHECK( parentField, /* void */ );
476 
477  *field = *parentField;
478 
479  switch( id )
480  {
481  case REFERENCE_FIELD:
482  // parent's reference already copied
483  break;
484 
485  case VALUE_FIELD:
486  field->SetText( name );
487  break;
488 
489  case FOOTPRINT_FIELD:
490  case DATASHEET_FIELD:
491  // - footprint might be the same as parent, but might not
492  // - datasheet is most likely different
493  // - probably best to play it safe and copy neither
494  field->SetText( wxEmptyString );
495  break;
496  }
497 
498  field->SetParent( &new_part );
499  }
500  }
501 
502  m_libMgr->UpdatePart( &new_part, lib );
503  SyncLibraries( false );
504  LoadPart( name, lib, 1 );
505 }
Field Reference of part, i.e. "IC21".
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
Definition: confirm.cpp:253
LIB_PART * GetAlias(const wxString &aAlias, const wxString &aLibrary) const
Return either an alias of a working LIB_PART copy, or alias of the original part if there is no worki...
void GetRootSymbolNames(const wxString &aLibName, wxArrayString &aRootSymbolNames)
void SetShowDeMorgan(bool show)
bool PartExists(const wxString &aAlias, const wxString &aLibrary) const
Return true if part with a specific alias exists in library (either original one or buffered).
Field object used in symbol libraries.
Definition: lib_field.h:59
static TOOL_ACTION cancelInteractive
Definition: actions.h:65
bool RunAction(const std::string &aActionName, bool aNow=false, T aParam=NULL)
Run the specified action.
Definition: tool_manager.h:141
bool UpdatePart(LIB_PART *aPart, const wxString &aLibrary)
Update the part buffer with a new version of the part.
virtual void SetParent(EDA_ITEM *aParent)
Definition: eda_item.h:165
name of datasheet
void LoadPart(const wxString &aLibrary, const wxString &aPart, int Unit)
Field Value of part, i.e. "3.3K".
virtual void SetText(const wxString &aText)
Definition: eda_text.cpp:121
wxString getTargetLib() const
Define a library symbol object.
Definition: lib_symbol.h:93
wxString SelectLibraryFromList()
Display a list of loaded libraries in the symbol library and allows the user to select a library.
LIB_FIELD * GetFieldById(int aId) const
Return pointer to the requested field.
Definition: lib_symbol.cpp:939
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, const CPTREE &aTree)
Output a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:200
The first 4 are mandatory, and must be instantiated in SCH_COMPONENT and LIB_PART constructors.
bool LibraryExists(const wxString &aLibrary, bool aCheckEnabled=false) const
Return true if library exists.
TOOL_MANAGER * m_toolManager
Definition: tools_holder.h:157
const char * name
Definition: DXF_plotter.cpp:59
#define _(s)
Definition: 3d_actions.cpp:33
Implementing DIALOG_LIB_NEW_COMPONENT.
SYMBOL_LIBRARY_MANAGER * m_libMgr
void SyncLibraries(bool aShowProgress, const wxString &aForceRefresh=wxEmptyString)
Synchronize the library manager to the symbol library table, and then the symbol tree to the library ...
Field Name Module PCB, i.e. "16DIP300".

References _, ACTIONS::cancelInteractive, DATASHEET_FIELD, DisplayError(), FOOTPRINT_FIELD, Format(), SYMBOL_LIBRARY_MANAGER::GetAlias(), DIALOG_LIB_NEW_COMPONENT::GetAlternateBodyStyle(), LIB_PART::GetFieldById(), DIALOG_LIB_NEW_COMPONENT::GetIncludeInBom(), DIALOG_LIB_NEW_COMPONENT::GetIncludeOnBoard(), DIALOG_LIB_NEW_COMPONENT::GetLockItems(), DIALOG_LIB_NEW_COMPONENT::GetName(), DIALOG_LIB_NEW_COMPONENT::GetParentSymbolName(), DIALOG_LIB_NEW_COMPONENT::GetPinNameInside(), LIB_PART::GetPinNameOffset(), DIALOG_LIB_NEW_COMPONENT::GetPinTextPosition(), DIALOG_LIB_NEW_COMPONENT::GetPowerSymbol(), DIALOG_LIB_NEW_COMPONENT::GetReference(), LIB_PART::GetReferenceField(), SYMBOL_LIBRARY_MANAGER::GetRootSymbolNames(), DIALOG_LIB_NEW_COMPONENT::GetShowPinName(), DIALOG_LIB_NEW_COMPONENT::GetShowPinNumber(), getTargetLib(), DIALOG_LIB_NEW_COMPONENT::GetUnitCount(), SYMBOL_LIBRARY_MANAGER::LibraryExists(), LoadPart(), LIB_PART::LockUnits(), m_libMgr, TOOLS_HOLDER::m_toolManager, MANDATORY_FIELDS, name, SYMBOL_LIBRARY_MANAGER::PartExists(), REFERENCE_FIELD, TOOL_MANAGER::RunAction(), SelectLibraryFromList(), LIB_PART::SetConversion(), LIB_PART::SetIncludeInBom(), LIB_PART::SetIncludeOnBoard(), LIB_PART::SetNormal(), LIB_PART::SetParent(), EDA_ITEM::SetParent(), LIB_PART::SetPinNameOffset(), LIB_PART::SetPower(), SetShowDeMorgan(), LIB_PART::SetShowPinNames(), LIB_PART::SetShowPinNumbers(), EDA_TEXT::SetText(), LIB_PART::SetUnitCount(), SyncLibraries(), SYMBOL_LIBRARY_MANAGER::UpdatePart(), and VALUE_FIELD.

Referenced by SYMBOL_EDITOR_CONTROL::AddSymbol().

◆ CreateServer()

void EDA_DRAW_FRAME::CreateServer ( int  service,
bool  local = true 
)
inherited

Definition at line 48 of file eda_dde.cpp.

49 {
50  wxIPV4address addr;
51 
52  // Set the port number
53  addr.Service( service );
54 
55  // Listen on localhost only if requested
56  if( local )
57  addr.Hostname( HOSTNAME );
58 
59  delete m_socketServer;
60  m_socketServer = new wxSocketServer( addr );
61 
62  m_socketServer->SetNotify( wxSOCKET_CONNECTION_FLAG );
63  m_socketServer->SetEventHandler( *this, ID_EDA_SOCKET_EVENT_SERV );
64  m_socketServer->Notify( true );
65 }
static const wxString HOSTNAME(wxT("localhost"))
wxSocketServer * m_socketServer

References HOSTNAME(), ID_EDA_SOCKET_EVENT_SERV, and EDA_DRAW_FRAME::m_socketServer.

Referenced by SCH::IFACE::CreateWindow().

◆ CurrentToolName()

std::string TOOLS_HOLDER::CurrentToolName ( ) const
inherited

Definition at line 99 of file tools_holder.cpp.

100 {
101  if( m_toolStack.empty() )
102  return ACTIONS::selectionTool.GetName();
103  else
104  return m_toolStack.back();
105 }
std::vector< std::string > m_toolStack
Definition: tools_holder.h:163
static TOOL_ACTION selectionTool
Definition: actions.h:156

References TOOLS_HOLDER::m_toolStack, and ACTIONS::selectionTool.

Referenced by TOOL_MANAGER::processEvent().

◆ DeletePartFromLibrary()

void SYMBOL_EDIT_FRAME::DeletePartFromLibrary ( )

Definition at line 720 of file symbol_editor.cpp.

721 {
722  LIB_ID libId = GetTargetLibId();
723 
724  if( m_libMgr->IsPartModified( libId.GetLibItemName(), libId.GetLibNickname() )
725  && !IsOK( this, _( wxString::Format( "The symbol \"%s\" has been modified\n"
726  "Do you want to remove it from the library?",
727  libId.GetUniStringLibItemName() ) ) ) )
728  {
729  return;
730  }
731 
732  if( m_libMgr->HasDerivedSymbols( libId.GetLibItemName(), libId.GetLibNickname() ) )
733  {
734  wxString msg;
735 
736  msg.Printf( _( "The symbol \"%s\" is used to derive other symbols.\n"
737  "Deleting this symbol will delete all of the symbols derived from it.\n\n"
738  "Do you wish to delete this symbol and all of it's derivatives?" ),
739  libId.GetLibItemName().wx_str() );
740 
741  wxMessageDialog::ButtonLabel yesButtonLabel( _( "Delete Symbol" ) );
742  wxMessageDialog::ButtonLabel noButtonLabel( _( "Keep Symbol" ) );
743 
744  wxMessageDialog dlg( this, msg, _( "Warning" ),
745  wxYES_NO | wxYES_DEFAULT | wxICON_QUESTION | wxCENTER );
746  dlg.SetYesNoLabels( yesButtonLabel, noButtonLabel );
747 
748  if( dlg.ShowModal() == wxID_NO )
749  return;
750  }
751 
752  if( isCurrentPart( libId ) )
753  emptyScreen();
754 
755  m_libMgr->RemovePart( libId.GetLibItemName(), libId.GetLibNickname() );
756 
758 }
const UTF8 & GetLibItemName() const
Definition: lib_id.h:106
bool RemovePart(const wxString &aName, const wxString &aLibrary)
Remove the part from the part buffer.
SYMBOL_TREE_PANE * m_treePane
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:51
const UTF8 & GetLibNickname() const
Return the logical library name portion of a LIB_ID.
Definition: lib_id.h:92
bool HasDerivedSymbols(const wxString &aSymbolName, const wxString &aLibraryName)
Check if symbol aSymbolName in library aLibraryName is a root symbol that has derived symbols.
void RefreshLibTree()
Refreshes the tree (mainly to update highlighting and asterisking)
Definition: lib_tree.cpp:218
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, const CPTREE &aTree)
Output a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:200
LIB_ID GetTargetLibId() const
#define _(s)
Definition: 3d_actions.cpp:33
wxString wx_str() const
Definition: utf8.cpp:51
bool isCurrentPart(const LIB_ID &aLibId) const
Rename LIB_PART aliases to avoid conflicts before adding a symbol to a library.
SYMBOL_LIBRARY_MANAGER * m_libMgr
void emptyScreen()
Return either the part selected in the symbol tree, if context menu is active or the currently modifi...
LIB_TREE * GetLibTree() const
bool IsOK(wxWindow *aParent, const wxString &aMessage)
Display a yes/no dialog with aMessage and returns the user response.
Definition: confirm.cpp:297
const wxString GetUniStringLibItemName() const
Get strings for display messages in dialogs.
Definition: lib_id.h:116
bool IsPartModified(const wxString &aAlias, const wxString &aLibrary) const
Return true if part has unsaved modifications.

References _, emptyScreen(), Format(), LIB_ID::GetLibItemName(), LIB_ID::GetLibNickname(), SYMBOL_TREE_PANE::GetLibTree(), GetTargetLibId(), LIB_ID::GetUniStringLibItemName(), SYMBOL_LIBRARY_MANAGER::HasDerivedSymbols(), isCurrentPart(), IsOK(), SYMBOL_LIBRARY_MANAGER::IsPartModified(), m_libMgr, m_treePane, LIB_TREE::RefreshLibTree(), SYMBOL_LIBRARY_MANAGER::RemovePart(), and UTF8::wx_str().

Referenced by SYMBOL_EDITOR_CONTROL::CutCopyDelete().

◆ Destroy()

◆ DismissModal()

void KIWAY_PLAYER::DismissModal ( bool  aRetVal,
const wxString &  aResult = wxEmptyString 
)
inherited

Definition at line 161 of file kiway_player.cpp.

162 {
163  m_modal_ret_val = aRetVal;
164  m_modal_string = aResult;
165 
166  if( m_modal_loop )
167  {
168  m_modal_loop->Exit();
169  m_modal_loop = 0; // this marks it as dismissed.
170  }
171 
172  Show( false );
173 }
bool m_modal_ret_val
Definition: kiway_player.h:199
wxString m_modal_string
Definition: kiway_player.h:198
WX_EVENT_LOOP * m_modal_loop
< Points to nested event_loop. NULL means not modal and dismissed.
Definition: kiway_player.h:196

References KIWAY_PLAYER::m_modal_loop, KIWAY_PLAYER::m_modal_ret_val, and KIWAY_PLAYER::m_modal_string.

Referenced by FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), SYMBOL_VIEWER_FRAME::doCloseWindow(), FOOTPRINT_VIEWER_FRAME::doCloseWindow(), FOOTPRINT_WIZARD_FRAME::doCloseWindow(), FOOTPRINT_WIZARD_FRAME::ExportSelectedFootprint(), and SYMBOL_VIEWER_FRAME::FinishModal().

◆ DisplayGridMsg()

void EDA_DRAW_FRAME::DisplayGridMsg ( )
virtualinherited

Display current grid size in the status bar.

Reimplemented in PCB_BASE_FRAME, GERBVIEW_FRAME, and PL_EDITOR_FRAME.

Definition at line 463 of file eda_draw_frame.cpp.

464 {
465  wxString line;
466 
467  line.Printf( "grid %s",
468  MessageTextFromValue( GetUserUnits(), GetCanvas()->GetGAL()->GetGridSize().x, false ) );
469 
470  SetStatusText( line, 4 );
471 }
wxString MessageTextFromValue(EDA_UNITS aUnits, int aValue, bool aAddUnitLabel, EDA_DATA_TYPE aType)
Convert a value to a string using double notation.
Definition: base_units.cpp:125
virtual EDA_DRAW_PANEL_GAL * GetCanvas() const
Return a pointer to GAL-based canvas of given EDA draw frame.
EDA_UNITS GetUserUnits() const
Return the user units currently in use.

References EDA_DRAW_FRAME::GetCanvas(), EDA_BASE_FRAME::GetUserUnits(), and MessageTextFromValue().

Referenced by SCH_BASE_FRAME::UpdateStatusBar().

◆ DisplaySymbolDatasheet()

void SYMBOL_EDIT_FRAME::DisplaySymbolDatasheet ( )

Display the documentation of the selected symbol.

Definition at line 1168 of file symbol_editor.cpp.

1169 {
1171 
1172  if( !m_my_part )
1173  return;
1174 
1175  wxString msg = m_my_part->GetName();
1176 
1177  AppendMsgPanel( _( "Name" ), msg, 8 );
1178 
1179  if( m_my_part->IsAlias() )
1180  {
1181  PART_SPTR parent = m_my_part->GetParent().lock();
1182 
1183  msg = parent ? parent->GetName() : _( "Undefined!" );
1184  AppendMsgPanel( _( "Parent" ), msg, 8 );
1185  }
1186 
1187  static wxChar UnitLetter[] = wxT( "?ABCDEFGHIJKLMNOPQRSTUVWXYZ" );
1188  msg = UnitLetter[m_unit];
1189 
1190  AppendMsgPanel( _( "Unit" ), msg, 8 );
1191 
1192  if( m_convert > 1 )
1193  msg = _( "Convert" );
1194  else
1195  msg = _( "Normal" );
1196 
1197  AppendMsgPanel( _( "Body" ), msg, 8 );
1198 
1199  if( m_my_part->IsPower() )
1200  msg = _( "Power Symbol" );
1201  else
1202  msg = _( "Symbol" );
1203 
1204  AppendMsgPanel( _( "Type" ), msg, 8 );
1205  AppendMsgPanel( _( "Description" ), m_my_part->GetDescription(), 8 );
1206  AppendMsgPanel( _( "Keywords" ), m_my_part->GetKeyWords() );
1207  AppendMsgPanel( _( "Datasheet" ), m_my_part->GetDatasheetField().GetText() );
1208 }
int m_convert
Flag if the symbol being edited was loaded directly from a schematic.
LIB_FIELD & GetDatasheetField()
Return reference to the datasheet field.
wxString GetName() const override
Definition: lib_symbol.h:129
std::shared_ptr< LIB_PART > PART_SPTR
shared pointer to LIB_PART
Definition: lib_symbol.h:42
wxString GetKeyWords() const
Definition: lib_symbol.h:151
PART_REF & GetParent()
Definition: lib_symbol.h:120
wxString GetDescription() override
Definition: lib_symbol.h:138
virtual void ClearMsgPanel()
Clear all messages from the message panel.
bool IsPower() const
Definition: lib_symbol.cpp:411
#define _(s)
Definition: 3d_actions.cpp:33
bool IsAlias() const
Definition: lib_symbol.h:168
virtual const wxString & GetText() const
Return the string associated with the text object.
Definition: eda_text.h:133
void AppendMsgPanel(const wxString &aTextUpper, const wxString &aTextLower, int aPadding=6)
Append a message to the message panel.

References _, EDA_DRAW_FRAME::AppendMsgPanel(), EDA_DRAW_FRAME::ClearMsgPanel(), LIB_PART::GetDatasheetField(), LIB_PART::GetDescription(), LIB_PART::GetKeyWords(), LIB_PART::GetName(), LIB_PART::GetParent(), EDA_TEXT::GetText(), LIB_PART::IsAlias(), LIB_PART::IsPower(), m_convert, m_my_part, and m_unit.

Referenced by ClearMsgPanel(), SYMBOL_EDITOR_EDIT_TOOL::editFieldProperties(), LoadOneLibraryPartAux(), LoadSymbolFromSchematic(), and UpdateAfterSymbolProperties().

◆ DisplayToolMsg()

void EDA_DRAW_FRAME::DisplayToolMsg ( const wxString &  msg)
overridevirtualinherited

Reimplemented from TOOLS_HOLDER.

Definition at line 457 of file eda_draw_frame.cpp.

458 {
459  SetStatusText( msg, 6 );
460 }

Referenced by EDIT_TOOL::Duplicate(), and PCB_CONTROL::Paste().

◆ DisplayUnitsMsg()

void EDA_DRAW_FRAME::DisplayUnitsMsg ( )
inherited

Display current unit pane in the status bar.

Definition at line 474 of file eda_draw_frame.cpp.

475 {
476  wxString msg;
477 
478  switch( m_userUnits )
479  {
480  case EDA_UNITS::INCHES: msg = _( "inches" ); break;
481  case EDA_UNITS::MILS: msg = _( "mils" ); break;
482  case EDA_UNITS::MILLIMETRES: msg = _( "mm" ); break;
483  default: msg = _( "Units" ); break;
484  }
485 
486  SetStatusText( msg, 5 );
487 }
#define _(s)
Definition: 3d_actions.cpp:33
EDA_UNITS m_userUnits
Map containing the UI update handlers registered with wx for each action.

References _, INCHES, EDA_BASE_FRAME::m_userUnits, MILLIMETRES, and MILS.

Referenced by EDA_DRAW_FRAME::UpdateGridSelectBox(), SCH_BASE_FRAME::UpdateStatusBar(), and EDA_DRAW_FRAME::UpdateStatusBar().

◆ doAutoSave()

bool EDA_BASE_FRAME::doAutoSave ( )
protectedvirtualinherited

This should be overridden by the derived class to handle the auto save feature.

Returns
true if the auto save was successful otherwise false.

Reimplemented in PCB_EDIT_FRAME, and SCH_EDIT_FRAME.

Definition at line 293 of file eda_base_frame.cpp.

294 {
295  wxCHECK_MSG( false, true, wxT( "Auto save timer function not overridden. Bad programmer!" ) );
296 }

Referenced by EDA_BASE_FRAME::onAutoSaveTimer().

◆ doCloseWindow()

void SYMBOL_EDIT_FRAME::doCloseWindow ( )
overridevirtual

Reimplemented from EDA_BASE_FRAME.

Definition at line 530 of file symbol_edit_frame.cpp.

531 {
532  Destroy();
533 }
bool Destroy() override
Our version of Destroy() which is virtual from wxWidgets.

References KIWAY_PLAYER::Destroy().

◆ DuplicatePart()

void SYMBOL_EDIT_FRAME::DuplicatePart ( bool  aFromClipboard)

Insert a duplicate part.

If aFromClipboard is true then action is a paste.

Definition at line 789 of file symbol_editor.cpp.

790 {
791  int dummyUnit;
792  LIB_ID libId = m_treePane->GetLibTree()->GetSelectedLibId( &dummyUnit );
793  wxString lib = libId.GetLibNickname();
794 
795  if( !m_libMgr->LibraryExists( lib ) )
796  return;
797 
798  LIB_PART* srcPart = nullptr;
799  LIB_PART* newPart = nullptr;
800 
801  if( aFromClipboard )
802  {
803  wxLogNull doNotLog; // disable logging of failed clipboard actions
804 
805  auto clipboard = wxTheClipboard;
806  wxClipboardLocker clipboardLock( clipboard );
807 
808  if( !clipboardLock || ! clipboard->IsSupported( wxDF_TEXT ) )
809  return;
810 
811  wxTextDataObject data;
812  clipboard->GetData( data );
813  wxString partSource = data.GetText();
814 
815  STRING_LINE_READER reader( TO_UTF8( partSource ), "Clipboard" );
816 
817  try
818  {
819  newPart = SCH_SEXPR_PLUGIN::ParsePart( reader );
820  }
821  catch( IO_ERROR& e )
822  {
823  wxLogMessage( "Can not paste: %s", e.Problem() );
824  return;
825  }
826  }
827  else
828  {
829  srcPart = m_libMgr->GetBufferedPart( libId.GetLibItemName(), lib );
830 
831  wxCHECK( srcPart, /* void */ );
832 
833  newPart = new LIB_PART( *srcPart );
834 
835  // Derive from same parent.
836  if( srcPart->IsAlias() )
837  {
838  std::shared_ptr< LIB_PART > srcParent = srcPart->GetParent().lock();
839 
840  wxCHECK( srcParent, /* void */ );
841 
842  newPart->SetParent( srcParent.get() );
843  }
844  }
845 
846  if( !newPart )
847  return;
848 
849  ensureUniqueName( newPart, lib );
850  m_libMgr->UpdatePart( newPart, lib );
851 
852  LoadOneLibraryPartAux( newPart, lib, GetUnit(), GetConvert() );
853 
854  SyncLibraries( false );
855  m_treePane->GetLibTree()->SelectLibId( LIB_ID( lib, newPart->GetName() ) );
856 
857  delete newPart;
858 }
const UTF8 & GetLibItemName() const
Definition: lib_id.h:106
wxString GetName() const override
Definition: lib_symbol.h:129
static LIB_PART * ParsePart(LINE_READER &aReader, int aVersion=SEXPR_SCHEMATIC_FILE_VERSION)
bool LoadOneLibraryPartAux(LIB_PART *aLibEntry, const wxString &aLibrary, int aUnit, int aConvert)
Create a copy of aLibEntry into memory.
SYMBOL_TREE_PANE * m_treePane
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:51
bool UpdatePart(LIB_PART *aPart, const wxString &aLibrary)
Update the part buffer with a new version of the part.
virtual const wxString Problem() const
what was the problem?
Definition: exceptions.cpp:45
#define TO_UTF8(wxstring)
Convert a wxString to a UTF8 encoded C string for all wxWidgets build modes.
Definition: macros.h:96
LIB_PART * GetBufferedPart(const wxString &aAlias, const wxString &aLibrary)
Return the part copy from the buffer.
LIB_ID GetSelectedLibId(int *aUnit=nullptr) const
For multi-unit components, if the user selects the component itself rather than picking an individual...
Definition: lib_tree.cpp:148
void SetParent(LIB_PART *aParent=nullptr)
Definition: lib_symbol.cpp:325
PART_REF & GetParent()
Definition: lib_symbol.h:120
Define a library symbol object.
Definition: lib_symbol.h:93
void ensureUniqueName(LIB_PART *aPart, const wxString &aLibrary)
const UTF8 & GetLibNickname() const
Return the logical library name portion of a LIB_ID.
Definition: lib_id.h:92
bool LibraryExists(const wxString &aLibrary, bool aCheckEnabled=false) const
Return true if library exists.
bool IsAlias() const
Definition: lib_symbol.h:168
SYMBOL_LIBRARY_MANAGER * m_libMgr
LIB_TREE * GetLibTree() const
void SyncLibraries(bool aShowProgress, const wxString &aForceRefresh=wxEmptyString)
Synchronize the library manager to the symbol library table, and then the symbol tree to the library ...
Is a LINE_READER that reads from a multiline 8 bit wide std::string.
Definition: richio.h:237
Hold an error message and may be used when throwing exceptions containing meaningful error messages.
Definition: ki_exception.h:75
void SelectLibId(const LIB_ID &aLibId)
Select an item in the tree widget.
Definition: lib_tree.cpp:177

References ensureUniqueName(), SYMBOL_LIBRARY_MANAGER::GetBufferedPart(), GetConvert(), LIB_ID::GetLibItemName(), LIB_ID::GetLibNickname(), SYMBOL_TREE_PANE::GetLibTree(), LIB_PART::GetName(), LIB_PART::GetParent(), LIB_TREE::GetSelectedLibId(), GetUnit(), LIB_PART::IsAlias(), SYMBOL_LIBRARY_MANAGER::LibraryExists(), LoadOneLibraryPartAux(), m_libMgr, m_treePane, SCH_SEXPR_PLUGIN::ParsePart(), IO_ERROR::Problem(), LIB_TREE::SelectLibId(), LIB_PART::SetParent(), SyncLibraries(), TO_UTF8, and SYMBOL_LIBRARY_MANAGER::UpdatePart().

Referenced by SYMBOL_EDITOR_CONTROL::DuplicateSymbol().

◆ eeconfig()

EESCHEMA_SETTINGS * SCH_BASE_FRAME::eeconfig ( ) const
inherited

Definition at line 117 of file sch_base_frame.cpp.

118 {
119  return dynamic_cast<EESCHEMA_SETTINGS*>( config() );
120 }
virtual APP_SETTINGS_BASE * config() const
Returns the settings object used in SaveSettings(), and is overloaded in KICAD_MANAGER_FRAME.

References EDA_BASE_FRAME::config().

Referenced by SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic(), SCH_EDIT_FRAME::AllowCaseSensitiveFileNameClashes(), DIALOG_BOM::DIALOG_BOM(), SCH_LINE_WIRE_BUS_TOOL::doDrawSegments(), SCH_DRAWING_TOOLS::DrawSheet(), SCH_EDIT_TOOL::editFieldText(), SCH_EDIT_FRAME::ExecuteRemoteCommand(), SCH_EDITOR_CONTROL::FindComponentAndItem(), SCH_EDIT_FRAME::GetShowAllPins(), EE_SELECTION_TOOL::GuessSelectionCandidates(), DIALOG_BOM::installGeneratorsList(), SCH_EDIT_FRAME::LoadSettings(), EE_SELECTION_TOOL::Main(), SCH_EDIT_TOOL::Mirror(), DIALOG_PRINT_USING_PRINTER::OnMonochromeChecked(), SCH_EDIT_FRAME::OpenProjectFiles(), SCH_DRAWING_TOOLS::PlaceComponent(), SCH_PRINTOUT::PrintPage(), SCH_EDIT_TOOL::Properties(), SCH_EDIT_TOOL::Rotate(), DIALOG_PRINT_USING_PRINTER::SavePrintOptions(), SCH_EDIT_FRAME::SaveSettings(), SCH_EDIT_FRAME::SelectUnit(), SCH_EDIT_FRAME::setupUIConditions(), SCH_LINE_WIRE_BUS_TOOL::startSegments(), SCH_EDITOR_CONTROL::ToggleForceHV(), SCH_EDITOR_CONTROL::ToggleHiddenFields(), SCH_EDITOR_CONTROL::ToggleHiddenPins(), PANEL_EESCHEMA_DISPLAY_OPTIONS::TransferDataFromWindow(), PANEL_EESCHEMA_EDITING_OPTIONS::TransferDataFromWindow(), PANEL_EESCHEMA_DISPLAY_OPTIONS::TransferDataToWindow(), PANEL_EESCHEMA_EDITING_OPTIONS::TransferDataToWindow(), DIALOG_PRINT_USING_PRINTER::TransferDataToWindow(), and DIALOG_BOM::~DIALOG_BOM().

◆ emptyScreen()

void SYMBOL_EDIT_FRAME::emptyScreen ( )

Return either the part selected in the symbol tree, if context menu is active or the currently modified part.

Definition at line 1049 of file symbol_edit_frame.cpp.

1050 {
1052  SetCurLib( wxEmptyString );
1053  SetCurPart( nullptr, false );
1057  Refresh();
1058 }
SCH_SCREEN * m_dummyScreen
< Helper screen used when no part is loaded
void SetScreen(BASE_SCREEN *aScreen) override
SYMBOL_TREE_PANE * m_treePane
static TOOL_ACTION zoomFitScreen
Definition: actions.h:99
bool RunAction(const std::string &aActionName, bool aNow=false, T aParam=NULL)
Run the specified action.
Definition: tool_manager.h:141
void Refresh()
Update the board display after modifying it by a python script (note: it is automatically called by a...
void Unselect()
Unselect currently selected item in wxDataViewCtrl.
Definition: lib_tree.cpp:189
void SetCurPart(LIB_PART *aPart, bool aUpdateZoom)
Take ownership of aPart and notes that it is the one currently being edited.
TOOL_MANAGER * m_toolManager
Definition: tools_holder.h:157
LIB_TREE * GetLibTree() const
wxString SetCurLib(const wxString &aLibNickname)
Set the current library nickname and returns the old library nickname.
virtual void ClearUndoRedoList()
Clear the undo and redo list using ClearUndoORRedoList()

References EDA_BASE_FRAME::ClearUndoRedoList(), SYMBOL_TREE_PANE::GetLibTree(), m_dummyScreen, TOOLS_HOLDER::m_toolManager, m_treePane, Refresh(), TOOL_MANAGER::RunAction(), SetCurLib(), SetCurPart(), SetScreen(), LIB_TREE::Unselect(), and ACTIONS::zoomFitScreen.

Referenced by DeletePartFromLibrary(), and Revert().

◆ ensureUniqueName()

void SYMBOL_EDIT_FRAME::ensureUniqueName ( LIB_PART aPart,
const wxString &  aLibrary 
)
private

Definition at line 861 of file symbol_editor.cpp.

862 {
863  wxCHECK( aPart, /* void */ );
864 
865  int i = 1;
866  wxString newName = aPart->GetName();
867 
868  // Append a number to the name until the name is unique in the library.
869  while( m_libMgr->PartExists( newName, aLibrary ) )
870  newName.Printf( "%s_%d", aPart->GetName(), i++ );
871 
872  aPart->SetName( newName );
873 }
wxString GetName() const override
Definition: lib_symbol.h:129
bool PartExists(const wxString &aAlias, const wxString &aLibrary) const
Return true if part with a specific alias exists in library (either original one or buffered).
virtual void SetName(const wxString &aName)
Definition: lib_symbol.cpp:314
SYMBOL_LIBRARY_MANAGER * m_libMgr

References LIB_PART::GetName(), m_libMgr, SYMBOL_LIBRARY_MANAGER::PartExists(), and LIB_PART::SetName().

Referenced by DuplicatePart().

◆ EraseMsgBox()

void EDA_DRAW_FRAME::EraseMsgBox ( )
inherited

Definition at line 229 of file eda_draw_frame.cpp.

230 {
231  if( m_messagePanel )
233 }
EDA_MSG_PANEL * m_messagePanel
void EraseMsgBox()
Definition: msgpanel.cpp:214

References EDA_MSG_PANEL::EraseMsgBox(), and EDA_DRAW_FRAME::m_messagePanel.

Referenced by GERBVIEW_CONTROL::UpdateMessagePanel().

◆ ExecuteRemoteCommand()

virtual void EDA_DRAW_FRAME::ExecuteRemoteCommand ( const char *  cmdline)
inlinevirtualinherited

Execute a remote command sent via socket (to port KICAD_PCB_PORT_SERVICE_NUMBER, currently 4242).

Subclasses should override to implement actual command handlers.

Reimplemented in PCB_EDIT_FRAME, and SCH_EDIT_FRAME.

Definition at line 200 of file eda_draw_frame.h.

200 {}

Referenced by EDA_DRAW_FRAME::OnSockRequest().

◆ ExportPart()

void SYMBOL_EDIT_FRAME::ExportPart ( )

Definition at line 105 of file symbol_editor_import_export.cpp.

106 {
107  wxString msg, title;
108  LIB_PART* part = getTargetPart();
109 
110  if( !part )
111  {
112  ShowInfoBarError( _( "There is no symbol selected to save." ) );
113  return;
114  }
115 
116  wxFileName fn;
117 
118  fn.SetName( part->GetName().Lower() );
119  fn.SetExt( KiCadSymbolLibFileExtension );
120 
121  wxFileDialog dlg( this, _( "Export Symbol" ), m_mruPath, fn.GetFullName(),
122  KiCadSymbolLibFileWildcard(), wxFD_SAVE );
123 
124  if( dlg.ShowModal() == wxID_CANCEL )
125  return;
126 
127  fn = dlg.GetPath();
128  fn.MakeAbsolute();
129 
130  LIB_PART* old_part = NULL;
131 
132  SCH_PLUGIN::SCH_PLUGIN_RELEASER pi( SCH_IO_MGR::FindPlugin( SCH_IO_MGR::SCH_KICAD ) );
133 
134  if( fn.FileExists() )
135  {
136  try
137  {
138  old_part = pi->LoadSymbol( fn.GetFullPath(), part->GetName() );
139  }
140  catch( const IO_ERROR& ioe )
141  {
142  msg.Printf( _( "Error occurred attempting to load symbol library file \"%s\"" ),
143  fn.GetFullPath() );
144  DisplayErrorMessage( this, msg, ioe.What() );
145  return;
146  }
147 
148  if( old_part )
149  {
150  msg.Printf( _( "Symbol \"%s\" already exists in \"%s\"." ),
151  part->GetName(),
152  fn.GetFullName() );
153 
154  KIDIALOG errorDlg( this, msg, _( "Confirmation" ), wxOK | wxCANCEL | wxICON_WARNING );
155  errorDlg.SetOKLabel( _( "Overwrite" ) );
156  errorDlg.DoNotShowCheckbox( __FILE__, __LINE__ );
157 
158  if( errorDlg.ShowModal() == wxID_CANCEL )
159  return;
160  }
161  }
162 
163  if( fn.Exists() && !fn.IsDirWritable() )
164  {
165  msg.Printf( _( "Write permissions are required to save library \"%s\"." ),
166  fn.GetFullPath() );
167  DisplayError( this, msg );
168  return;
169  }
170 
171  try
172  {
173  if( !fn.FileExists() )
174  pi->CreateSymbolLib( fn.GetFullPath() );
175 
176  // The flattened symbol is most likely what the user would want. As some point in
177  // the future as more of the symbol library inheritance is implemented, this may have
178  // to be changes to save parts of inherited symbols.
179  pi->SaveSymbol( fn.GetFullPath(), part->Flatten().release() );
180  }
181  catch( const IO_ERROR& ioe )
182  {
183  msg.Printf( _( "Failed to create symbol library file \"%s\"" ), fn.GetFullPath() );
184  DisplayErrorMessage( this, msg, ioe.What() );
185  msg.Printf( _( "Error creating symbol library \"%s\"" ), fn.GetFullName() );
186  SetStatusText( msg );
187  return;
188  }
189 
190  m_mruPath = fn.GetPath();
191 
192  msg.Printf( _( "Symbol \"%s\" saved in library \"%s\"" ), part->GetName(), fn.GetFullPath() );
193  SetStatusText( msg );
194 
195  // See if the user wants it added to a library table (global or project)
196  SYMBOL_LIB_TABLE* libTable = selectSymLibTable( true );
197 
198  if( libTable )
199  {
200  if( !m_libMgr->AddLibrary( fn.GetFullPath(), libTable ) )
201  {
202  DisplayError( this, _( "Could not open the library file." ) );
203  return;
204  }
205 
206  bool globalTable = ( libTable == &SYMBOL_LIB_TABLE::GetGlobalLibTable() );
207  saveSymbolLibTables( globalTable, !globalTable );
208  }
209 }
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
Definition: confirm.cpp:253
static SYMBOL_LIB_TABLE & GetGlobalLibTable()
wxString m_mruPath
void DisplayErrorMessage(wxWindow *aParent, const wxString &aText, const wxString &aExtraInfo)
Display an error message with aMessage.
Definition: confirm.cpp:266
wxString GetName() const override
Definition: lib_symbol.h:129
Helper class to create more flexible dialogs, including 'do not show again' checkbox handling.
Definition: confirm.h:45
bool AddLibrary(const wxString &aFilePath, SYMBOL_LIB_TABLE *aTable)
Add an existing library.
LIB_PART * getTargetPart() const
Return either the library selected in the symbol tree, if context menu is active or the library that ...
SYMBOL_LIB_TABLE * selectSymLibTable(bool aOptional=false)
Display a dialog asking the user to select a symbol library table.
#define NULL
virtual const wxString What() const
A composite of Problem() and Where()
Definition: exceptions.cpp:29
Define a library symbol object.
Definition: lib_symbol.h:93
bool saveSymbolLibTables(bool aGlobal, bool aProject)
Saves Symbol Library Tables to disk.
wxString KiCadSymbolLibFileWildcard()
std::unique_ptr< LIB_PART > Flatten() const
Return a flattened symbol inheritance to the caller.
Definition: lib_symbol.cpp:334
Helper object to release a SCH_PLUGIN in the context of a potential thrown exception through its dest...
Definition: sch_io_mgr.h:470
#define _(s)
Definition: 3d_actions.cpp:33
void ShowInfoBarError(const wxString &aErrorMsg, bool aShowCloseButton=false)
Show the WX_INFOBAR displayed on the top of the canvas with a message and an error icon on the left o...
SYMBOL_LIBRARY_MANAGER * m_libMgr
Hold an error message and may be used when throwing exceptions containing meaningful error messages.
Definition: ki_exception.h:75
const std::string KiCadSymbolLibFileExtension

References _, SYMBOL_LIBRARY_MANAGER::AddLibrary(), DisplayError(), DisplayErrorMessage(), KIDIALOG::DoNotShowCheckbox(), LIB_PART::Flatten(), SYMBOL_LIB_TABLE::GetGlobalLibTable(), LIB_PART::GetName(), getTargetPart(), KiCadSymbolLibFileExtension, KiCadSymbolLibFileWildcard(), m_libMgr, EDA_BASE_FRAME::m_mruPath, NULL, SCH_BASE_FRAME::saveSymbolLibTables(), selectSymLibTable(), EDA_BASE_FRAME::ShowInfoBarError(), KIDIALOG::ShowModal(), and IO_ERROR::What().

◆ FinishAUIInitialization()

void EDA_BASE_FRAME::FinishAUIInitialization ( )
inherited

Definition at line 718 of file eda_base_frame.cpp.

719 {
720 #if defined( __WXOSX_MAC__ )
721  m_auimgr.Update();
722 #else
723  // Call Update() to fix all pane default sizes, especially the "InfoBar" pane before
724  // hidding it.
725  m_auimgr.Update();
726 
727  // We don't want the infobar displayed right away
728  m_auimgr.GetPane( "InfoBar" ).Hide();
729  m_auimgr.Update();
730 #endif
731 }
wxAuiManager m_auimgr

References EDA_BASE_FRAME::m_auimgr.

◆ FocusOnLocation()

void EDA_DRAW_FRAME::FocusOnLocation ( const wxPoint &  aPos)
inherited

Useful to focus on a particular location, in find functions.

Move the graphic cursor (crosshair cursor) at a given coordinate and reframes the drawing if the requested point is out of view or if center on location is requested.

Parameters
aPosis the point to go to.

Definition at line 790 of file eda_draw_frame.cpp.

791 {
792  bool centerView = false;
793  BOX2D r = GetCanvas()->GetView()->GetViewport();
794 
795  // Center if we're off the current view, or within 10% of its edge
796  r.Inflate( - (int) r.GetWidth() / 10 );
797 
798  if( !r.Contains( aPos ) )
799  centerView = true;
800 
801  // Center if we're behind an obscuring dialog, or within 10% of its edge
802  wxWindow* dialog = findDialog( GetChildren() );
803 
804  if( dialog )
805  {
806  wxRect dialogRect( GetCanvas()->ScreenToClient( dialog->GetScreenPosition() ),
807  dialog->GetSize() );
808  dialogRect.Inflate( dialogRect.GetWidth() / 10 );
809 
810  if( dialogRect.Contains( (wxPoint) GetCanvas()->GetView()->ToScreen( aPos ) ) )
811  centerView = true;
812  }
813 
814  if( centerView )
815  {
816  // If a dialog partly obscures the window, then center on the uncovered area.
817  if( dialog )
818  {
819  wxRect dialogRect( GetCanvas()->ScreenToClient( dialog->GetScreenPosition() ),
820  dialog->GetSize() );
821  GetCanvas()->GetView()->SetCenter( aPos, dialogRect );
822  }
823  else
824  GetCanvas()->GetView()->SetCenter( aPos );
825  }
826 
828 }
BOX2D GetViewport() const
Return the current viewport visible area rectangle.
Definition: view.cpp:513
KIGFX::VIEW_CONTROLS * GetViewControls() const
Return a pointer to the #VIEW_CONTROLS instance used in the panel.
virtual EDA_DRAW_PANEL_GAL * GetCanvas() const
Return a pointer to GAL-based canvas of given EDA draw frame.
void SetCenter(const VECTOR2D &aCenter)
Set the center point of the VIEW (i.e.
Definition: view.cpp:579
coord_type GetWidth() const
Definition: box2.h:197
bool Contains(const Vec &aPoint) const
Function Contains.
Definition: box2.h:151
wxWindow * findDialog(wxWindowList &aList)
virtual KIGFX::VIEW * GetView() const
Return a pointer to the #VIEW instance used in the panel.
virtual void SetCrossHairCursorPosition(const VECTOR2D &aPosition, bool aWarpView=true)=0
Move the graphic crosshair cursor to the requested position expressed in world coordinates.
BOX2< Vec > & Inflate(coord_type dx, coord_type dy)
Function Inflate inflates the rectangle horizontally by dx and vertically by dy.
Definition: box2.h:302

References BOX2< Vec >::Contains(), findDialog(), EDA_DRAW_FRAME::GetCanvas(), EDA_DRAW_PANEL_GAL::GetView(), EDA_DRAW_PANEL_GAL::GetViewControls(), KIGFX::VIEW::GetViewport(), BOX2< Vec >::GetWidth(), BOX2< Vec >::Inflate(), KIGFX::VIEW::SetCenter(), and KIGFX::VIEW_CONTROLS::SetCrossHairCursorPosition().

Referenced by PCB_SELECTION_TOOL::findCallback(), SCH_EDITOR_CONTROL::FindNext(), PCB_BASE_FRAME::FocusOnItem(), SCH_EDIT_FRAME::FocusOnItem(), and DIALOG_FIND::search().

◆ FreezeSearchTree()

void SYMBOL_EDIT_FRAME::FreezeSearchTree ( )

Definition at line 581 of file symbol_edit_frame.cpp.

582 {
583  m_treePane->Freeze();
584  m_libMgr->GetAdapter()->Freeze();
585 }
SYMBOL_TREE_PANE * m_treePane
wxObjectDataPtr< LIB_TREE_MODEL_ADAPTER > & GetAdapter()
Return the adapter object that provides the stored data.
SYMBOL_LIBRARY_MANAGER * m_libMgr

References SYMBOL_LIBRARY_MANAGER::GetAdapter(), m_libMgr, and m_treePane.

Referenced by saveLibrary().

◆ GetAboutTitle()

const wxString& EDA_BASE_FRAME::GetAboutTitle ( ) const
inlineinherited

Definition at line 488 of file eda_base_frame.h.

488 { return m_aboutTitle; }
wxString m_aboutTitle

References EDA_BASE_FRAME::m_aboutTitle.

Referenced by DIALOG_ABOUT::DIALOG_ABOUT(), and COMMON_CONTROL::ReportBug().

◆ GetAutoSaveFilePrefix()

static wxString EDA_BASE_FRAME::GetAutoSaveFilePrefix ( )
inlinestaticprotectedinherited
Returns
the string to prepend to a file name for automatic save.

Definition at line 572 of file eda_base_frame.h.

573  {
574  return wxT( "_autosave-" );
575  }

Referenced by EDA_BASE_FRAME::CheckForAutoSaveFile(), SCH_EDIT_FRAME::doAutoSave(), PCB_EDIT_FRAME::doAutoSave(), SCH_EDIT_FRAME::doCloseWindow(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::OnExportSTEP(), SCH_EDIT_FRAME::SaveEEFile(), and PCB_EDIT_FRAME::SavePcbFile().

◆ GetAutoSaveInterval()

int EDA_BASE_FRAME::GetAutoSaveInterval ( ) const
inlineinherited

Definition at line 190 of file eda_base_frame.h.

190 { return m_autoSaveInterval; }

References EDA_BASE_FRAME::m_autoSaveInterval.

◆ GetCanvas()

SCH_DRAW_PANEL * SCH_BASE_FRAME::GetCanvas ( ) const
overridevirtualinherited

Return a pointer to GAL-based canvas of given EDA draw frame.

Returns
Pointer to GAL-based canvas.

Reimplemented from EDA_DRAW_FRAME.

Definition at line 271 of file sch_base_frame.cpp.

272 {
273  return static_cast<SCH_DRAW_PANEL*>( EDA_DRAW_FRAME::GetCanvas() );
274 }
virtual EDA_DRAW_PANEL_GAL * GetCanvas() const
Return a pointer to GAL-based canvas of given EDA draw frame.

References EDA_DRAW_FRAME::GetCanvas().

Referenced by SCH_EDIT_FRAME::AddItemToScreenAndUndoList(), SCH_EDIT_FRAME::AddJunction(), SCH_BASE_FRAME::AddToScreen(), SCH_EDIT_FRAME::AnnotateComponents(), SCH_EDITOR_CONTROL::AssignFootprints(), SCH_EDIT_TOOL::BreakWire(), SCH_BASE_FRAME::CenterScreen(), SYMBOL_VIEWER_FRAME::ClickOnCmpList(), SYMBOL_VIEWER_FRAME::CommonSettingsChanged(), SCH_BASE_FRAME::CommonSettingsChanged(), CommonSettingsChanged(), DIALOG_CHOOSE_SYMBOL::ConstructRightPanel(), SCH_EDIT_FRAME::DeleteAnnotation(), SCH_EDIT_FRAME::DisplayCurrentSheet(), SYMBOL_VIEWER_FRAME::doCloseWindow(), SCH_EDIT_TOOL::DoDelete(), SCH_LINE_WIRE_BUS_TOOL::doDrawSegments(), EE_SELECTION_TOOL::doSelectionMenu(), SYMBOL_EDITOR_DRAWING_TOOLS::DrawShape(), SCH_DRAWING_TOOLS::DrawSheet(), SYMBOL_EDITOR_EDIT_TOOL::editFieldProperties(), SYMBOL_EDITOR_EDIT_TOOL::editGraphicProperties(), SYMBOL_EDITOR_EDIT_TOOL::editTextProperties(), SCH_EDITOR_CONTROL::EnterSheet(), EE_INSPECTION_TOOL::ExcludeMarker(), DIALOG_ERC::ExcludeMarker(), SCH_EDITOR_CONTROL::FindComponentAndItem(), SCH_EDITOR_CONTROL::FindNext(), SCH_EDIT_FRAME::GetDocumentExtents(), SCH_BASE_FRAME::GetRenderSettings(), SCH_BASE_FRAME::HardRedraw(), SCH_EDIT_FRAME::HardRedraw(), SCH_EDITOR_CONTROL::ImportFPAssignments(), SCH_EDIT_FRAME::KiwayMailIn(), SCH_EDITOR_CONTROL::LeaveSheet(), EE_POINT_EDITOR::Main(), SYMBOL_EDITOR_MOVE_TOOL::Main(), SCH_MOVE_TOOL::Main(), EE_SELECTION_TOOL::Main(), DIALOG_MIGRATE_BUSES::onAcceptClicked(), DIALOG_ANNOTATE::OnApplyClick(), DIALOG_ERC::OnEraseDrcMarkersClick(), DIALOG_ERC::OnERCItemRClick(), EE_SELECTION_TOOL::OnIdle(), DIALOG_MIGRATE_BUSES::onItemSelected(), SCH_EDIT_FRAME::OnModify(), SCH_EDIT_FRAME::OnPageSettingsChange(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), HIERARCHY_NAVIG_DLG::onSelectSheetPath(), DIALOG_UPDATE_FROM_PCB::OnUpdateClick(), SYMBOL_TREE_PANE::onUpdateUI(), SYMBOL_EDITOR_DRAWING_TOOLS::PlaceAnchor(), SCH_DRAWING_TOOLS::PlaceComponent(), SCH_DRAWING_TOOLS::PlaceImage(), SCH_EDIT_TOOL::Properties(), SCH_EDIT_FRAME::PutDataInPreviousState(), ReannotateFromPCBNew(), RebuildView(), SCH_EDIT_FRAME::RecalculateConnections(), SCH_EDIT_FRAME::RecomputeIntersheetRefs(), SYMBOL_VIEWER_FRAME::ReCreateLibList(), SCH_EDITOR_CONTROL::Redo(), DIALOG_ERC::redrawDrawPanel(), SCH_BASE_FRAME::RedrawScreen(), SCH_BASE_FRAME::RefreshSelection(), SCH_EDITOR_CONTROL::RemapSymbols(), SCH_BASE_FRAME::RemoveFromScreen(), SCH_EDITOR_CONTROL::RescueLegacyProject(), SCH_EDITOR_CONTROL::rescueProject(), SCH_EDITOR_CONTROL::RescueSymbolLibTableProject(), SCH_EDIT_FRAME::RollbackSchematicFromUndo(), EE_SELECTION_TOOL::selectMultiple(), SetCurPart(), SCH_EDIT_FRAME::SetCurrentSheet(), EE_POINT_EDITOR::setEditedPoint(), SCH_EDIT_FRAME::SetScreen(), SYMBOL_VIEWER_FRAME::SetSelectedLibrary(), SYMBOL_VIEWER_FRAME::setupTools(), setupTools(), SCH_EDIT_FRAME::setupTools(), SYMBOL_EDITOR_CONTROL::ShowElectricalTypes(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), SCH_DRAWING_TOOLS::SingleClickPlace(), SwitchCanvas(), SYMBOL_VIEWER_FRAME::SYMBOL_VIEWER_FRAME(), SCH_BASE_FRAME::SyncView(), SCH_EDIT_FRAME::TestDanglingEnds(), DIALOG_ERC::testErc(), SCH_EDITOR_CONTROL::ToggleHiddenFields(), SCH_EDITOR_CONTROL::ToggleHiddenPins(), DIALOG_JUNCTION_PROPS::TransferDataFromWindow(), PANEL_EESCHEMA_DISPLAY_OPTIONS::TransferDataFromWindow(), DIALOG_EDIT_LINE_STYLE::TransferDataFromWindow(), PANEL_SETUP_FORMATTING::TransferDataFromWindow(), PANEL_SYM_COLOR_SETTINGS::TransferDataFromWindow(), PANEL_SYM_EDITING_OPTIONS::TransferDataFromWindow(), PANEL_EESCHEMA_COLOR_SETTINGS::TransferDataFromWindow(), DIALOG_SHEET_PIN_PROPERTIES::TransferDataFromWindow(), DIALOG_LABEL_EDITOR::TransferDataFromWindow(), SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace(), SCH_DRAWING_TOOLS::TwoClickPlace(), SCH_EDITOR_CONTROL::Undo(), SCH_EDITOR_CONTROL::UpdateFind(), SCH_BASE_FRAME::UpdateItem(), SCH_EDITOR_CONTROL::UpdateNetHighlighting(), SYMBOL_VIEWER_FRAME::updatePreviewSymbol(), SCH_BASE_FRAME::UpdateStatusBar(), SCH_EDIT_FRAME::UpdateSymbolFromEditor(), and SYMBOL_VIEWER_FRAME::~SYMBOL_VIEWER_FRAME().

◆ GetColorSettings()

COLOR_SETTINGS * SYMBOL_EDIT_FRAME::GetColorSettings ( ) const
overridevirtual

Returns a pointer to the active color theme settings.

Reimplemented from SCH_BASE_FRAME.

Definition at line 276 of file symbol_edit_frame.cpp.

277 {
278  SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
279 
280  if( GetSettings()->m_UseEeschemaColorSettings )
282  else
283  return mgr.GetColorSettings( GetSettings()->m_ColorTheme );
284 }
SYMBOL_EDITOR_SETTINGS * GetSettings() const
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
Definition: single_top.cpp:106
AppSettings * GetAppSettings(bool aLoadNow=true)
Returns a handle to the a given settings by type If the settings have already been loaded,...
COLOR_SETTINGS * GetColorSettings(const wxString &aName="user")
Retrieves a color settings object that applications can read colors from.
wxString m_ColorTheme
Active color theme name.
Definition: app_settings.h:184

References SETTINGS_MANAGER::GetAppSettings(), SETTINGS_MANAGER::GetColorSettings(), GetSettings(), APP_SETTINGS_BASE::m_ColorTheme, and Pgm().

Referenced by SVGPlotSymbol().

◆ GetConvert()

◆ GetCurLib()

wxString SYMBOL_EDIT_FRAME::GetCurLib ( ) const

The nickname of the current library being edited and empty string if none.

Definition at line 643 of file symbol_edit_frame.cpp.

644 {
645  wxString libNickname = Prj().GetRString( PROJECT::SCH_LIBEDIT_CUR_LIB );
646 
647  if( !libNickname.empty() )
648  {
649  if( !Prj().SchSymbolLibTable()->HasLibrary( libNickname ) )
650  {
651  Prj().SetRString( PROJECT::SCH_LIBEDIT_CUR_LIB, wxEmptyString );
652  libNickname = wxEmptyString;
653  }
654  }
655 
656  return libNickname;
657 }
PROJECT & Prj() const
Return a reference to the PROJECT associated with this KIWAY.
virtual void SetRString(RSTRING_T aStringId, const wxString &aString)
Store a "retained string", which is any session and project specific string identified in enum RSTRIN...
virtual const wxString & GetRString(RSTRING_T aStringId)
Return a "retained string", which is any session and project specific string identified in enum RSTRI...

References PROJECT::GetRString(), KIWAY_HOLDER::Prj(), PROJECT::SCH_LIBEDIT_CUR_LIB, and PROJECT::SetRString().

Referenced by GetSymbolFromRedoList(), GetSymbolFromUndoList(), LoadSymbolFromCurrentLib(), SetCurLib(), storeCurrentPart(), SyncLibraries(), DIALOG_LIB_SYMBOL_PROPERTIES::TransferDataFromWindow(), DIALOG_LIB_SYMBOL_PROPERTIES::TransferDataToWindow(), UpdateAfterSymbolProperties(), and updateTitle().

◆ GetCurPart()

LIB_PART* SYMBOL_EDIT_FRAME::GetCurPart ( )
inline

Return the current part being edited or NULL if none selected.

This is a LIB_PART that I own, it is at best a copy of one in a library.

Definition at line 103 of file symbol_edit_frame.h.

103 { return m_my_part; }

References m_my_part.

Referenced by SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic(), canCloseWindow(), SYMBOL_EDITOR_EDIT_TOOL::Copy(), SYMBOL_EDITOR_EDIT_TOOL::DoDelete(), SYMBOL_EDITOR_DRAWING_TOOLS::DrawShape(), SYMBOL_EDITOR_EDIT_TOOL::Duplicate(), SYMBOL_EDITOR_EDIT_TOOL::editSymbolProperties(), SYMBOL_EDITOR_CONTROL::ExportSymbolAsSVG(), SYMBOL_EDITOR_CONTROL::ExportView(), SYMBOL_TREE_SYNCHRONIZING_ADAPTER::GetAttr(), SYMBOL_TREE_SYNCHRONIZING_ADAPTER::GetValue(), IsContentModified(), LoadOneLibraryPartAux(), LoadSymbolAndSelectLib(), LoadSymbolFromCurrentLib(), LoadSymbolFromSchematic(), SYMBOL_EDITOR_MOVE_TOOL::Main(), EE_SELECTION_TOOL::Main(), SYMBOL_EDITOR_EDIT_TOOL::Mirror(), SYMBOL_EDITOR_EDIT_TOOL::Paste(), SYMBOL_EDITOR_EDIT_TOOL::PinTable(), SYMBOL_EDITOR_DRAWING_TOOLS::PlaceAnchor(), SYMBOL_EDITOR_PIN_TOOL::PlacePin(), SYMBOL_EDITOR_EDIT_TOOL::Properties(), SYMBOL_EDITOR_PIN_TOOL::PushPinProperties(), SYMBOL_EDITOR_DRAWING_TOOLS::RepeatDrawItem(), Revert(), SYMBOL_EDITOR_EDIT_TOOL::Rotate(), saveCurrentPart(), EE_SELECTION_TOOL::Selectable(), SYMBOL_EDITOR_DRAWING_TOOLS::TwoClickPlace(), UpdateAfterSymbolProperties(), SYMBOL_EDITOR_EDIT_TOOL::UpdateSymbolFields(), and updateTitle().

◆ GetCurrentFileName()

virtual wxString EDA_BASE_FRAME::GetCurrentFileName ( ) const
inlinevirtualinherited

Get the full filename + path of the currently opened file in the frame.

If no file is open, an empty string is returned.

Returns
the filename and full path to the open file

Reimplemented in PCB_EDIT_FRAME, SCH_EDIT_FRAME, PL_EDITOR_FRAME, and KICAD_MANAGER_FRAME.

Definition at line 419 of file eda_base_frame.h.

419 { return wxEmptyString; }

Referenced by EDA_BASE_FRAME::SaveSettings().

◆ GetCurrentSelection()

SELECTION & SYMBOL_EDIT_FRAME::GetCurrentSelection ( )
overridevirtual

Get the current selection from the canvas area.

Returns
the current selection.

Reimplemented from TOOLS_HOLDER.

Definition at line 1259 of file symbol_edit_frame.cpp.

1260 {
1261  return m_toolManager->GetTool<EE_SELECTION_TOOL>()->GetSelection();
1262 }
TOOL_MANAGER * m_toolManager
Definition: tools_holder.h:157

References TOOL_MANAGER::GetTool(), and TOOLS_HOLDER::m_toolManager.

◆ GetCurrentTreeNode()

LIB_TREE_NODE * SYMBOL_EDIT_FRAME::GetCurrentTreeNode ( ) const

◆ GetDefaults()

SCHEMATIC_SETTINGS& SCH_BASE_FRAME::GetDefaults ( )
inlineinherited

Definition at line 121 of file sch_base_frame.h.

122  {
123  return *m_defaults;
124  }
SCHEMATIC_SETTINGS * m_defaults

References SCH_BASE_FRAME::m_defaults.

◆ GetDocumentExtents()

const BOX2I SYMBOL_EDIT_FRAME::GetDocumentExtents ( bool  aIncludeAllVisible = true) const
overridevirtual

Returns bbox of document with option to not include some items.

Used most commonly by "Zoom to Fit" and "Zoom to Objects". In Eeschema for "Zoom to Fit", it's passed "true" to include worksheet border. It's passed false by "Zoom To Objects" to ignore worksheet border. In Pcbnew, false makes it ignore any items outside the PCB edge such as fabrication notes.

Parameters
aIncludeAllVisibleTrue to include everything visible in bbox calculations, false to ignore some visible items (program dependent).
Returns
Bounding box of the document (ignoring some items as requested).

Reimplemented from EDA_DRAW_FRAME.

Definition at line 1133 of file symbol_edit_frame.cpp.

1134 {
1135  if( !m_my_part )
1136  {
1137  return BOX2I( VECTOR2I( Mils2iu( -100 ), Mils2iu( -100 ) ),
1138  VECTOR2I( Mils2iu( 200 ), Mils2iu( 200 ) ) );
1139  }
1140  else
1141  {
1142  EDA_RECT boundingBox = m_my_part->Flatten()->GetUnitBoundingBox( m_unit, m_convert );
1144  boundingBox.GetHeight() ) );
1145  }
1146 }
int m_convert
Flag if the symbol being edited was loaded directly from a schematic.
BOX2< VECTOR2I > BOX2I
Definition: box2.h:522
VECTOR2< int > VECTOR2I
Definition: vector2d.h:623
BOX2I boundingBox(T aObject)
boundingBox template method
Definition: shape_index.h:60
coord_type GetWidth() const
Definition: box2.h:197
std::unique_ptr< LIB_PART > Flatten() const
Return a flattened symbol inheritance to the caller.
Definition: lib_symbol.cpp:334
Handle the component boundary box.
Definition: eda_rect.h:42
coord_type GetHeight() const
Definition: box2.h:198
const Vec & GetOrigin() const
Definition: box2.h:193

References boundingBox(), LIB_PART::Flatten(), BOX2< Vec >::GetHeight(), BOX2< Vec >::GetOrigin(), BOX2< Vec >::GetWidth(), m_convert, m_my_part, and m_unit.

◆ GetDoImmediateActions()

bool TOOLS_HOLDER::GetDoImmediateActions ( ) const
inlineinherited

Indicate that hotkeys should perform an immediate action even if another tool is currently active.

If false, the first hotkey should select the relevant tool.

Definition at line 128 of file tools_holder.h.

128 { return m_immediateActions; }
bool m_immediateActions
Definition: tools_holder.h:170

References TOOLS_HOLDER::m_immediateActions.

◆ GetDragAction()

MOUSE_DRAG_ACTION TOOLS_HOLDER::GetDragAction ( ) const
inlineinherited

Indicates whether a drag should draw a selection rectangle or drag selected (or unselected) objects.

Definition at line 134 of file tools_holder.h.

134 { return m_dragAction; }
MOUSE_DRAG_ACTION m_dragAction
Definition: tools_holder.h:174

References TOOLS_HOLDER::m_dragAction.

Referenced by PL_SELECTION_TOOL::Main(), EE_SELECTION_TOOL::Main(), and PCB_SELECTION_TOOL::Main().

◆ GetDrawBgColor()

COLOR4D SCH_BASE_FRAME::GetDrawBgColor ( ) const
overridevirtualinherited

Reimplemented from EDA_DRAW_FRAME.

Definition at line 435 of file sch_base_frame.cpp.

436 {
438 }
COLOR_SETTINGS * GetColorSettings() const override
Returns a pointer to the active color theme settings.
COLOR4D GetColor(int aLayer) const

References COLOR_SETTINGS::GetColor(), SCH_BASE_FRAME::GetColorSettings(), and LAYER_SCHEMATIC_BACKGROUND.

Referenced by SCH_PRINTOUT::PrintPage().

◆ GetFileFromHistory()

wxString EDA_BASE_FRAME::GetFileFromHistory ( int  cmdId,
const wxString &  type,
FILE_HISTORY aFileHistory = nullptr 
)
inherited

Fetches the file name from the file history list.

This removes the selected file, if this file does not exist. The menu is also updated, if #FILE_HISTORY::UseMenu was called at initialization time.

Parameters
cmdIdThe command ID associated with the aFileHistory object.
typePlease document me!
aFileHistoryThe FILE_HISTORY in use. If null, the main application file history is used
Returns
a wxString containing the selected filename

Definition at line 800 of file eda_base_frame.cpp.

802 {
803  if( !aFileHistory )
804  aFileHistory = m_fileHistory;
805 
806  wxASSERT( aFileHistory );
807 
808  int baseId = aFileHistory->GetBaseId();
809 
810  wxASSERT( cmdId >= baseId && cmdId < baseId + (int) aFileHistory->GetCount() );
811 
812  unsigned i = cmdId - baseId;
813 
814  if( i < aFileHistory->GetCount() )
815  {
816  wxString fn = aFileHistory->GetHistoryFile( i );
817 
818  if( wxFileName::FileExists( fn ) )
819  return fn;
820  else
821  {
822  wxString msg = wxString::Format( _( "File \"%s\" was not found." ), fn );
823  wxMessageBox( msg );
824 
825  aFileHistory->RemoveFileFromHistory( i );
826  }
827  }
828 
829  // Update the menubar to update the file history menu
830  if( GetMenuBar() )
831  {
832  ReCreateMenuBar();
833  GetMenuBar()->Refresh();
834  }
835 
836  return wxEmptyString;
837 }
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, const CPTREE &aTree)
Output a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:200
#define _(s)
Definition: 3d_actions.cpp:33
FILE_HISTORY * m_fileHistory
virtual void ReCreateMenuBar()
Recreates the menu bar.

References _, Format(), EDA_BASE_FRAME::m_fileHistory, and EDA_BASE_FRAME::ReCreateMenuBar().

Referenced by GERBVIEW_FRAME::OnDrlFileHistory(), KICAD_MANAGER_FRAME::OnFileHistory(), PL_EDITOR_FRAME::OnFileHistory(), PCB_EDIT_FRAME::OnFileHistory(), GERBVIEW_FRAME::OnGbrFileHistory(), GERBVIEW_FRAME::OnJobFileHistory(), SCH_EDIT_FRAME::OnLoadFile(), and GERBVIEW_FRAME::OnZipFileHistory().

◆ GetFileHistory()

FILE_HISTORY& EDA_BASE_FRAME::GetFileHistory ( )
inlineinherited

Get the frame's main file history.

Returns
the main file history

Definition at line 403 of file eda_base_frame.h.

404  {
405  return *m_fileHistory;
406  }
FILE_HISTORY * m_fileHistory

References EDA_BASE_FRAME::m_fileHistory.

Referenced by KICAD_MANAGER_FRAME::ReCreateMenuBar(), GERBVIEW_FRAME::ReCreateMenuBar(), PL_EDITOR_FRAME::ReCreateMenuBar(), SCH_EDIT_FRAME::ReCreateMenuBar(), and PCB_EDIT_FRAME::ReCreateMenuBar().

◆ GetFindHistoryList()

wxArrayString& EDA_DRAW_FRAME::GetFindHistoryList ( )
inlineinherited

Definition at line 94 of file eda_draw_frame.h.

94 { return m_findStringHistoryList; }
wxArrayString m_findStringHistoryList

References EDA_DRAW_FRAME::m_findStringHistoryList.

Referenced by DIALOG_FIND::DIALOG_FIND(), and DIALOG_FIND::search().

◆ GetFindReplaceData()

wxFindReplaceData& EDA_DRAW_FRAME::GetFindReplaceData ( )
inlineinherited

Definition at line 93 of file eda_draw_frame.h.

93 { return *m_findReplaceData; }
wxFindReplaceData * m_findReplaceData

References EDA_DRAW_FRAME::m_findReplaceData.

Referenced by DIALOG_FIND::search().

◆ GetFlattenedLibPart()

LIB_PART* SCH_BASE_FRAME::GetFlattenedLibPart ( const LIB_ID aLibId,
bool  aShowErrorMsg = false 
)
inherited

◆ GetGalDisplayOptions()

◆ GetGridColor()

virtual COLOR4D EDA_DRAW_FRAME::GetGridColor ( )
inlinevirtualinherited

◆ GetGridOrigin()

const wxPoint& SCH_BASE_FRAME::GetGridOrigin ( ) const
inlineoverridevirtualinherited

Return the absolute coordinates of the origin of the snap grid.

This is treated as a relative offset and snapping will occur at multiples of the grid size relative to this point.

Implements EDA_DRAW_FRAME.

Definition at line 137 of file sch_base_frame.h.

138  {
139  static wxPoint zero;
140  return zero;
141  }

◆ GetInfoBar()

◆ GetItem()

virtual EDA_ITEM* EDA_DRAW_FRAME::GetItem ( const KIID aId)
inlinevirtualinherited

Fetch an item by KIID.

Frame-type-specific implementation.

Reimplemented in SCH_EDIT_FRAME, and PCB_BASE_FRAME.

Definition at line 394 of file eda_draw_frame.h.

394 { return nullptr; }

Referenced by PCB_MARKER::GetMsgPanelInfo(), RC_TREE_MODEL::GetValue(), and EE_SELECTION_TOOL::Main().

◆ GetLayerColor()

COLOR4D SCH_BASE_FRAME::GetLayerColor ( SCH_LAYER_ID  aLayer)
inherited

Helper to retrieve a layer color from the global color settings.

Definition at line 402 of file sch_base_frame.cpp.

403 {
404  return GetColorSettings()->GetColor( aLayer );
405 }
COLOR_SETTINGS * GetColorSettings() const override
Returns a pointer to the active color theme settings.
COLOR4D GetColor(int aLayer) const

References COLOR_SETTINGS::GetColor(), and SCH_BASE_FRAME::GetColorSettings().

◆ GetLibManager()

SYMBOL_LIBRARY_MANAGER & SYMBOL_EDIT_FRAME::GetLibManager ( )

Definition at line 770 of file symbol_edit_frame.cpp.

771 {
772  wxASSERT( m_libMgr );
773  return *m_libMgr;
774 }
SYMBOL_LIBRARY_MANAGER * m_libMgr

References m_libMgr.

Referenced by SYMBOL_EDITOR_CONTROL::Init(), DIALOG_LIB_SYMBOL_PROPERTIES::TransferDataFromWindow(), and DIALOG_LIB_SYMBOL_PROPERTIES::TransferDataToWindow().

◆ GetLibPart()

LIB_PART * SCH_BASE_FRAME::GetLibPart ( const LIB_ID aLibId,
bool  aUseCacheLib = false,
bool  aShowErrorMsg = false 
)
inherited

Load symbol from symbol library table.

Parameters
aLibIdis the symbol library identifier to load.
aUseCacheLibset to true to fall back to cache library if symbol is not found in symbol library table.
aShowErrorMessageset to true to show any error messages.
Returns
The symbol found in the library or NULL if the symbol was not found.

Definition at line 195 of file sch_base_frame.cpp.

196 {
197  PART_LIB* cache = ( aUseCacheLib ) ? Prj().SchLibs()->GetCacheLibrary() : NULL;
198 
199  return SchGetLibPart( aLibId, Prj().SchSymbolLibTable(), cache, this, aShowErrorMsg );
200 }
static S3D_CACHE * cache
Definition: export_vrml.cpp:62
#define NULL
PROJECT & Prj() const
Return a reference to the PROJECT associated with this KIWAY.
LIB_PART * SchGetLibPart(const LIB_ID &aLibId, SYMBOL_LIB_TABLE *aLibTable, PART_LIB *aCacheLib, wxWindow *aParent, bool aShowErrorMsg)
Load symbol from symbol library table.
Object used to load, save, search, and otherwise manipulate symbol library files.

References cache, NULL, KIWAY_HOLDER::Prj(), and SchGetLibPart().

Referenced by SCH_EDIT_FRAME::CreateArchiveLibrary(), DIALOG_SCH_EDIT_ONE_FIELD::DIALOG_SCH_EDIT_ONE_FIELD(), SCH_BASE_FRAME::PickSymbolFromLibTree(), SCH_DRAWING_TOOLS::PlaceComponent(), SCH_EDIT_FRAME::SelectUnit(), DIALOG_SYMBOL_PROPERTIES::TransferDataFromWindow(), and DIALOG_CHANGE_SYMBOLS::updateFieldsList().

◆ GetMaxUndoItems()

int EDA_BASE_FRAME::GetMaxUndoItems ( ) const
inlineinherited

Definition at line 557 of file eda_base_frame.h.

557 { return m_undoRedoCountMax; }

References EDA_BASE_FRAME::m_undoRedoCountMax.

Referenced by EDA_DRAW_FRAME::SaveSettings().

◆ GetMoveWarpsCursor()

bool TOOLS_HOLDER::GetMoveWarpsCursor ( ) const
inlineinherited

Indicate that a move operation should warp the mouse pointer to the origin of the move object.

This improves snapping, but some users are allergic to mouse warping.

Definition at line 140 of file tools_holder.h.

140 { return m_moveWarpsCursor; }
bool m_moveWarpsCursor
Definition: tools_holder.h:176

References TOOLS_HOLDER::m_moveWarpsCursor.

Referenced by EDIT_TOOL::doMoveSelection(), ROUTER_TOOL::InlineDrag(), SYMBOL_EDITOR_MOVE_TOOL::Main(), and SCH_MOVE_TOOL::Main().

◆ GetMruPath()

◆ GetNearestGridPosition()

wxPoint EDA_DRAW_FRAME::GetNearestGridPosition ( const wxPoint &  aPosition) const
inherited

Return the nearest aGridSize location to aPosition.

Parameters
aPositionThe position to check.
Returns
The nearest grid position.

Definition at line 732 of file eda_draw_frame.cpp.

733 {
734  const wxPoint& gridOrigin = GetGridOrigin();
735  VECTOR2D gridSize = GetCanvas()->GetGAL()->GetGridSize();
736 
737  double xOffset = fmod( gridOrigin.x, gridSize.x );
738  int x = KiROUND( (aPosition.x - xOffset) / gridSize.x );
739  double yOffset = fmod( gridOrigin.y, gridSize.y );
740  int y = KiROUND( (aPosition.y - yOffset) / gridSize.y );
741 
742  return wxPoint( KiROUND( x * gridSize.x + xOffset ), KiROUND( y * gridSize.y + yOffset ) );
743 }
virtual EDA_DRAW_PANEL_GAL * GetCanvas() const
Return a pointer to GAL-based canvas of given EDA draw frame.
KIGFX::GAL * GetGAL() const
Return a pointer to the GAL instance used in the panel.
virtual const wxPoint & GetGridOrigin() const =0
Return the absolute coordinates of the origin of the snap grid.
const VECTOR2D & GetGridSize() const
Return the grid size.
constexpr ret_type KiROUND(fp_type v)
Round a floating point number to an integer using "round halfway cases away from zero".
Definition: util.h:68

References EDA_DRAW_FRAME::GetCanvas(), EDA_DRAW_PANEL_GAL::GetGAL(), EDA_DRAW_FRAME::GetGridOrigin(), KIGFX::GAL::GetGridSize(), KiROUND(), VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by SYMBOL_EDITOR_EDIT_TOOL::Rotate(), SCH_EDIT_TOOL::Rotate(), and SCH_DRAWING_TOOLS::sizeSheet().

◆ GetNearestHalfGridPosition()

wxPoint EDA_DRAW_FRAME::GetNearestHalfGridPosition ( const wxPoint &  aPosition) const
inherited

Return the nearest aGridSize / 2 location to aPosition.

This is useful when attempting for keep outer points on grid but not the middle point.

Parameters
aPositionThe position to check.
Returns
The nearest half-grid position.

Definition at line 746 of file eda_draw_frame.cpp.

747 {
748  const wxPoint& gridOrigin = GetGridOrigin();
749  VECTOR2D gridSize = GetCanvas()->GetGAL()->GetGridSize() / 2.0;
750 
751  double xOffset = fmod( gridOrigin.x, gridSize.x );
752  int x = KiROUND( (aPosition.x - xOffset) / gridSize.x );
753  double yOffset = fmod( gridOrigin.y, gridSize.y );
754  int y = KiROUND( (aPosition.y - yOffset) / gridSize.y );
755 
756  return wxPoint( KiROUND( x * gridSize.x + xOffset ), KiROUND( y * gridSize.y + yOffset ) );
757 }
virtual EDA_DRAW_PANEL_GAL * GetCanvas() const
Return a pointer to GAL-based canvas of given EDA draw frame.
KIGFX::GAL * GetGAL() const
Return a pointer to the GAL instance used in the panel.
virtual const wxPoint & GetGridOrigin() const =0
Return the absolute coordinates of the origin of the snap grid.
const VECTOR2D & GetGridSize() const
Return the grid size.
constexpr ret_type KiROUND(fp_type v)
Round a floating point number to an integer using "round halfway cases away from zero".
Definition: util.h:68

References EDA_DRAW_FRAME::GetCanvas(), EDA_DRAW_PANEL_GAL::GetGAL(), EDA_DRAW_FRAME::GetGridOrigin(), KIGFX::GAL::GetGridSize(), KiROUND(), VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by SYMBOL_EDITOR_EDIT_TOOL::Mirror(), and SCH_EDIT_TOOL::Mirror().

◆ GetOriginTransforms()

virtual ORIGIN_TRANSFORMS& EDA_DRAW_FRAME::GetOriginTransforms ( )
inlinevirtualinherited

Return a reference to the default ORIGIN_TRANSFORMS object.

Reimplemented in PCB_BASE_FRAME.

Definition at line 152 of file eda_draw_frame.h.

153  { return m_originTransforms; }
ORIGIN_TRANSFORMS m_originTransforms

References EDA_DRAW_FRAME::m_originTransforms.

Referenced by DIMENSION_BASE::GetMsgPanelInfo(), PCB_SHAPE::GetMsgPanelInfo(), and LEADER::GetMsgPanelInfo().

◆ GetPageSettings()

const PAGE_INFO & SCH_BASE_FRAME::GetPageSettings ( ) const
overridevirtualinherited

Implements EDA_DRAW_FRAME.

Definition at line 135 of file sch_base_frame.cpp.

136 {
137  return GetScreen()->GetPageSettings();
138 }
SCH_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
const PAGE_INFO & GetPageSettings() const
Definition: sch_screen.h:187

References SCH_SCREEN::GetPageSettings(), and SCH_BASE_FRAME::GetScreen().

Referenced by DIALOG_PLOT_SCHEMATIC::plotOneSheetPDF().

◆ GetPageSizeIU()

const wxSize SCH_BASE_FRAME::GetPageSizeIU ( ) const
overridevirtualinherited

Works off of GetPageSettings() to return the size of the paper page in the internal units of this particular view.

Implements EDA_DRAW_FRAME.

Definition at line 141 of file sch_base_frame.cpp.

142 {
143  // GetSizeIU is compile time dependent:
144  return GetScreen()->GetPageSettings().GetSizeIU();
145 }
SCH_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
const PAGE_INFO & GetPageSettings() const
Definition: sch_screen.h:187

References SCH_SCREEN::GetPageSettings(), and SCH_BASE_FRAME::GetScreen().

Referenced by SCH_EDIT_FRAME::DrawCurrentSheetToClipboard().

◆ GetRedoCommandCount()

virtual int EDA_BASE_FRAME::GetRedoCommandCount ( ) const
inlinevirtualinherited

◆ GetRenderSettings()

KIGFX::SCH_RENDER_SETTINGS * SCH_BASE_FRAME::GetRenderSettings ( )
inherited

Definition at line 277 of file sch_base_frame.cpp.

278 {
279  KIGFX::PAINTER* painter = GetCanvas()->GetView()->GetPainter();
280  return static_cast<KIGFX::SCH_RENDER_SETTINGS*>( painter->GetSettings() );
281 }
KIGFX::SCH_VIEW * GetView() const override
Return a pointer to the #VIEW instance used in the panel.
PAINTER * GetPainter() const
Return the painter object used by the view for drawing #VIEW_ITEMS.
Definition: view.h:207
Contains all the knowledge about how to draw graphical object onto any particular output device.
Definition: painter.h:57
SCH_DRAW_PANEL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
virtual RENDER_SETTINGS * GetSettings()=0
Return a pointer to current settings that are going to be used when drawing items.

References SCH_BASE_FRAME::GetCanvas(), KIGFX::VIEW::GetPainter(), KIGFX::PAINTER::GetSettings(), and SCH_DRAW_PANEL::GetView().

Referenced by DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES(), SCH_EDIT_FRAME::DrawCurrentSheetToClipboard(), SCH_EDIT_FRAME::LoadProjectSettings(), SYMBOL_VIEWER_FRAME::LoadSettings(), SCH_EDIT_FRAME::LoadSettings(), LoadSettings(), DIALOG_PIN_PROPERTIES::OnPaintShowPanel(), DIALOG_PLOT_SCHEMATIC::PlotSchematic(), SCH_PRINTOUT::PrintPage(), RebuildView(), SYMBOL_VIEWER_FRAME::SaveSettings(), SaveSettings(), SetCurPart(), SYMBOL_VIEWER_FRAME::setupUIConditions(), setupUIConditions(), SYMBOL_EDITOR_CONTROL::ShowElectricalTypes(), SVGPlotSymbol(), SYMBOL_VIEWER_FRAME::SYMBOL_VIEWER_FRAME(), PANEL_EESCHEMA_DISPLAY_OPTIONS::TransferDataFromWindow(), PANEL_SETUP_FORMATTING::TransferDataFromWindow(), PANEL_SYM_EDITING_OPTIONS::TransferDataFromWindow(), PANEL_SYM_EDITING_OPTIONS::TransferDataToWindow(), and SYMBOL_VIEWER_FRAME::updatePreviewSymbol().

◆ GetScreen()

◆ GetScreenDesc()

wxString EDA_DRAW_FRAME::GetScreenDesc ( ) const
virtualinherited

Reimplemented in SCH_EDIT_FRAME.

Definition at line 886 of file eda_draw_frame.cpp.

887 {
888  // Virtual function. Base class implementation returns an empty string.
889  return wxEmptyString;
890 }

Referenced by KIGFX::SCH_VIEW::DisplaySheet(), and EDA_DRAW_FRAME::PrintDrawingSheet().

◆ GetSettings()

SYMBOL_EDITOR_SETTINGS* SYMBOL_EDIT_FRAME::GetSettings ( ) const
inline

◆ GetSettingsManager()

◆ GetSeverity()

virtual SEVERITY EDA_BASE_FRAME::GetSeverity ( int  aErrorCode) const
inlinevirtualinherited

Reimplemented in PCB_BASE_FRAME.

Definition at line 130 of file eda_base_frame.h.

References RPT_SEVERITY_UNDEFINED.

Referenced by RC_TREE_MODEL::GetValue().

◆ GetShowAllPins()

virtual bool SCH_BASE_FRAME::GetShowAllPins ( ) const
inlinevirtualinherited

Allow some frames to show/hide hidden pins.

The default impl shows all pins.

Reimplemented in SCH_EDIT_FRAME.

Definition at line 131 of file sch_base_frame.h.

131 { return true; }

Referenced by EE_SELECTION_TOOL::Selectable().

◆ GetShowDeMorgan()

bool SYMBOL_EDIT_FRAME::GetShowDeMorgan ( ) const
inline

Definition at line 225 of file symbol_edit_frame.h.

225 { return m_showDeMorgan; }
static bool m_showDeMorgan

References m_showDeMorgan.

Referenced by setupUIConditions(), and DIALOG_LIB_EDIT_DRAW_ITEM::TransferDataToWindow().

◆ GetShowPolarCoords()

bool EDA_DRAW_FRAME::GetShowPolarCoords ( ) const
inlineinherited

For those frames that support polar coordinates.

Definition at line 108 of file eda_draw_frame.h.

108 { return m_polarCoords; }

References EDA_DRAW_FRAME::m_polarCoords.

Referenced by EDITOR_CONDITIONS::polarCoordFunc(), COMMON_TOOLS::TogglePolarCoords(), GERBVIEW_FRAME::UpdateStatusBar(), and PCB_BASE_FRAME::UpdateStatusBar().

◆ GetSymbolFromRedoList()

void SYMBOL_EDIT_FRAME::GetSymbolFromRedoList ( )

Definition at line 59 of file symbol_editor_undo_redo.cpp.

60 {
61  if( GetRedoCommandCount() <= 0 )
62  return;
63 
65 
66  // Load the last redo entry
68  ITEM_PICKER redoWrapper = redoCommand->PopItem();
69  delete redoCommand;
70  LIB_PART* part = (LIB_PART*) redoWrapper.GetItem();
71  wxCHECK( part, /* void */ );
72  part->ClearFlags( UR_TRANSIENT );
73  UNDO_REDO undoRedoType = redoWrapper.GetStatus();
74 
75  // Store the current part in the undo buffer
76  PICKED_ITEMS_LIST* undoCommand = new PICKED_ITEMS_LIST();
77  LIB_PART* oldPart = m_my_part;
78  oldPart->SetFlags( UR_TRANSIENT );
79  ITEM_PICKER undoWrapper( GetScreen(), oldPart, undoRedoType );
80  undoCommand->PushItem( undoWrapper );
81  PushCommandToUndoList( undoCommand );
82 
83  // Do not delete the previous part by calling SetCurPart( part )
84  // which calls delete <previous part>.
85  // <previous part> is now put in undo list and is owned by this list
86  // Just set the current part to the part which come from the redo list
87  m_my_part = part;
88 
89  if( undoRedoType == UNDO_REDO::LIB_RENAME )
90  {
91  wxString lib = GetCurLib();
92  m_libMgr->UpdatePartAfterRename( part, oldPart->GetName(), lib );
93 
94  // Reselect the renamed part
95  m_treePane->GetLibTree()->SelectLibId( LIB_ID( lib, part->GetName() ) );
96  }
97 
99  SetShowDeMorgan( part->HasConversion() );
100  updateTitle();
101 
102  RebuildView();
103  OnModify();
104 }
void OnModify() override
Must be called after a schematic change in order to set the "modify" flag of the current symbol.
bool UpdatePartAfterRename(LIB_PART *aPart, const wxString &oldAlias, const wxString &aLibrary)
Update the part buffer with a new version of the part when the name has changed.
#define UR_TRANSIENT
indicates the item is owned by the undo/redo stack
Definition: eda_item.h:134
wxString GetName() const override
Definition: lib_symbol.h:129
bool HasConversion() const
Test if part has more than one body conversion type (DeMorgan).
void SetShowDeMorgan(bool show)
EDA_ITEM * GetItem() const
SCH_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
SYMBOL_TREE_PANE * m_treePane
bool RunAction(const std::string &aActionName, bool aNow=false, T aParam=NULL)
Run the specified action.
Definition: tool_manager.h:141
virtual void PushCommandToUndoList(PICKED_ITEMS_LIST *aItem)
Add a command to undo in the undo list.
virtual int GetRedoCommandCount() const
void PushItem(const ITEM_PICKER &aItem)
Push aItem to the top of the list.
virtual PICKED_ITEMS_LIST * PopCommandFromRedoList()
Return the last command to undo and remove it from list, nothing is deleted.
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:51
wxString GetCurLib() const
The nickname of the current library being edited and empty string if none.
UNDO_REDO
Undo Redo considerations: Basically we have 3 cases New item Deleted item Modified item there is also...
void updateTitle()
Update the main window title bar with the current library name and read only status of the library.
void SetFlags(STATUS_FLAGS aMask)
Definition: eda_item.h:202
Define a library symbol object.
Definition: lib_symbol.h:93
static TOOL_ACTION clearSelection
Clears the current selection.
Definition: ee_actions.h:54
A holder to handle information on schematic or board items.
TOOL_MANAGER * m_toolManager
Definition: tools_holder.h:157
void ClearFlags(STATUS_FLAGS aMask=EDA_ITEM_ALL_FLAGS)
Definition: eda_item.h:203
SYMBOL_LIBRARY_MANAGER * m_libMgr
LIB_TREE * GetLibTree() const
UNDO_REDO GetStatus() const
void SelectLibId(const LIB_ID &aLibId)
Select an item in the tree widget.
Definition: lib_tree.cpp:177

References EDA_ITEM::ClearFlags(), EE_ACTIONS::clearSelection, GetCurLib(), ITEM_PICKER::GetItem(), SYMBOL_TREE_PANE::GetLibTree(), LIB_PART::GetName(), EDA_BASE_FRAME::GetRedoCommandCount(), SCH_BASE_FRAME::GetScreen(), ITEM_PICKER::GetStatus(), LIB_PART::HasConversion(), LIB_RENAME, m_libMgr, m_my_part, TOOLS_HOLDER::m_toolManager, m_treePane, OnModify(), EDA_BASE_FRAME::PopCommandFromRedoList(), PICKED_ITEMS_LIST::PopItem(), EDA_BASE_FRAME::PushCommandToUndoList(), PICKED_ITEMS_LIST::PushItem(), RebuildSymbolUnitsList(), RebuildView(), TOOL_MANAGER::RunAction(), LIB_TREE::SelectLibId(), EDA_ITEM::SetFlags(), SetShowDeMorgan(), SYMBOL_LIBRARY_MANAGER::UpdatePartAfterRename(), updateTitle(), and UR_TRANSIENT.

Referenced by SYMBOL_EDITOR_EDIT_TOOL::Redo().

◆ GetSymbolFromUndoList()

void SYMBOL_EDIT_FRAME::GetSymbolFromUndoList ( )

Definition at line 107 of file symbol_editor_undo_redo.cpp.

108 {
109  if( GetUndoCommandCount() <= 0 )
110  return;
111 
113 
114  // Load the last undo entry
115  PICKED_ITEMS_LIST* undoCommand = PopCommandFromUndoList();
116  ITEM_PICKER undoWrapper = undoCommand->PopItem();
117  delete undoCommand;
118  LIB_PART* part = (LIB_PART*) undoWrapper.GetItem();
119  wxCHECK( part, /* void */ );
120  part->ClearFlags( UR_TRANSIENT );
121  UNDO_REDO undoRedoType = undoWrapper.GetStatus();
122 
123  // Store the current part in the redo buffer
124  PICKED_ITEMS_LIST* redoCommand = new PICKED_ITEMS_LIST();
125  LIB_PART* oldPart = m_my_part;
126  oldPart->SetFlags( UR_TRANSIENT );
127  ITEM_PICKER redoWrapper( GetScreen(), oldPart, undoRedoType );
128  redoCommand->PushItem( redoWrapper );
129  PushCommandToRedoList( redoCommand );
130 
131  // Do not delete the previous part by calling SetCurPart( part ),
132  // which calls delete <previous part>.
133  // <previous part> is now put in redo list and is owned by this list.
134  // Just set the current part to the part which come from the undo list
135  m_my_part = part;
136 
137  if( undoRedoType == UNDO_REDO::LIB_RENAME )
138  {
139  wxString lib = GetCurLib();
140  m_libMgr->UpdatePartAfterRename( part, oldPart->GetName(), lib );
141 
142  // Reselect the renamed part
143  m_treePane->GetLibTree()->SelectLibId( LIB_ID( lib, part->GetName() ) );
144  }
145 
147  SetShowDeMorgan( part->HasConversion() );
148  updateTitle();
149 
150  RebuildView();
151  OnModify();
152 }
void OnModify() override
Must be called after a schematic change in order to set the "modify" flag of the current symbol.
bool UpdatePartAfterRename(LIB_PART *aPart, const wxString &oldAlias, const wxString &aLibrary)
Update the part buffer with a new version of the part when the name has changed.
#define UR_TRANSIENT
indicates the item is owned by the undo/redo stack
Definition: eda_item.h:134
wxString GetName() const override
Definition: lib_symbol.h:129
bool HasConversion() const
Test if part has more than one body conversion type (DeMorgan).
void SetShowDeMorgan(bool show)
virtual void PushCommandToRedoList(PICKED_ITEMS_LIST *aItem)
Add a command to redo in the redo list.
EDA_ITEM * GetItem() const
SCH_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
SYMBOL_TREE_PANE * m_treePane
bool RunAction(const std::string &aActionName, bool aNow=false, T aParam=NULL)
Run the specified action.
Definition: tool_manager.h:141
void PushItem(const ITEM_PICKER &aItem)
Push aItem to the top of the list.
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:51
wxString GetCurLib() const
The nickname of the current library being edited and empty string if none.
UNDO_REDO
Undo Redo considerations: Basically we have 3 cases New item Deleted item Modified item there is also...
void updateTitle()
Update the main window title bar with the current library name and read only status of the library.
void SetFlags(STATUS_FLAGS aMask)
Definition: eda_item.h:202
virtual int GetUndoCommandCount() const
Define a library symbol object.
Definition: lib_symbol.h:93
virtual PICKED_ITEMS_LIST * PopCommandFromUndoList()
Return the last command to undo and remove it from list, nothing is deleted.
static TOOL_ACTION clearSelection
Clears the current selection.
Definition: ee_actions.h:54
A holder to handle information on schematic or board items.
TOOL_MANAGER * m_toolManager
Definition: tools_holder.h:157
void ClearFlags(STATUS_FLAGS aMask=EDA_ITEM_ALL_FLAGS)
Definition: eda_item.h:203
SYMBOL_LIBRARY_MANAGER * m_libMgr
LIB_TREE * GetLibTree() const
UNDO_REDO GetStatus() const
void SelectLibId(const LIB_ID &aLibId)
Select an item in the tree widget.
Definition: lib_tree.cpp:177

References EDA_ITEM::ClearFlags(), EE_ACTIONS::clearSelection, GetCurLib(), ITEM_PICKER::GetItem(), SYMBOL_TREE_PANE::GetLibTree(), LIB_PART::GetName(), SCH_BASE_FRAME::GetScreen(), ITEM_PICKER::GetStatus(), EDA_BASE_FRAME::GetUndoCommandCount(), LIB_PART::HasConversion(), LIB_RENAME, m_libMgr, m_my_part, TOOLS_HOLDER::m_toolManager, m_treePane, OnModify(), EDA_BASE_FRAME::PopCommandFromUndoList(), PICKED_ITEMS_LIST::PopItem(), EDA_BASE_FRAME::PushCommandToRedoList(), PICKED_ITEMS_LIST::PushItem(), RebuildSymbolUnitsList(), RebuildView(), TOOL_MANAGER::RunAction(), LIB_TREE::SelectLibId(), EDA_ITEM::SetFlags(), SetShowDeMorgan(), SYMBOL_LIBRARY_MANAGER::UpdatePartAfterRename(), updateTitle(), and UR_TRANSIENT.

Referenced by SYMBOL_EDITOR_EDIT_TOOL::Undo().

◆ getTargetLib()

wxString SYMBOL_EDIT_FRAME::getTargetLib ( ) const
private

Definition at line 887 of file symbol_edit_frame.cpp.

888 {
889  return GetTargetLibId().GetLibNickname();
890 }
const UTF8 & GetLibNickname() const
Return the logical library name portion of a LIB_ID.
Definition: lib_id.h:92
LIB_ID GetTargetLibId() const

References LIB_ID::GetLibNickname(), and GetTargetLibId().

Referenced by CreateNewPart(), ImportPart(), and saveLibrary().

◆ GetTargetLibId()

LIB_ID SYMBOL_EDIT_FRAME::GetTargetLibId ( ) const

Definition at line 870 of file symbol_edit_frame.cpp.

871 {
872  LIB_ID id = GetTreeLIBID();
873 
874  if( id.GetLibNickname().empty() && m_my_part )
875  id = m_my_part->GetLibId();
876 
877  return id;
878 }
LIB_ID GetLibId() const override
Definition: lib_symbol.h:131
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:51
LIB_ID GetTreeLIBID(int *aUnit=nullptr) const
Return the LIB_ID of the library or symbol selected in the symbol tree.
static bool empty(const wxTextEntryBase *aCtrl)

References empty(), LIB_PART::GetLibId(), GetTreeLIBID(), and m_my_part.

Referenced by DeletePartFromLibrary(), getTargetLib(), SYMBOL_EDITOR_CONTROL::Init(), RegenerateLibraryTree(), Revert(), Save(), SaveLibraryAs(), SaveSymbolAs(), and setupUIConditions().

◆ getTargetPart()

LIB_PART * SYMBOL_EDIT_FRAME::getTargetPart ( ) const
private

Return either the library selected in the symbol tree, if context menu is active or the library that is currently modified.

Definition at line 856 of file symbol_edit_frame.cpp.

857 {
858  LIB_ID libId = GetTreeLIBID();
859 
860  if( libId.IsValid() )
861  {
862  LIB_PART* alias = m_libMgr->GetAlias( libId.GetLibItemName(), libId.GetLibNickname() );
863  return alias;
864  }
865 
866  return m_my_part;
867 }
const UTF8 & GetLibItemName() const
Definition: lib_id.h:106
LIB_PART * GetAlias(const wxString &aAlias, const wxString &aLibrary) const
Return either an alias of a working LIB_PART copy, or alias of the original part if there is no worki...
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:51
bool IsValid() const
Check if this LID_ID is valid.
Definition: lib_id.h:168
LIB_ID GetTreeLIBID(int *aUnit=nullptr) const
Return the LIB_ID of the library or symbol selected in the symbol tree.
Define a library symbol object.
Definition: lib_symbol.h:93
const UTF8 & GetLibNickname() const
Return the logical library name portion of a LIB_ID.
Definition: lib_id.h:92
SYMBOL_LIBRARY_MANAGER * m_libMgr

References SYMBOL_LIBRARY_MANAGER::GetAlias(), LIB_ID::GetLibItemName(), LIB_ID::GetLibNickname(), GetTreeLIBID(), LIB_ID::IsValid(), m_libMgr, and m_my_part.

Referenced by ExportPart(), Save(), and savePartAs().

◆ GetTitleBlock()

const TITLE_BLOCK & SCH_BASE_FRAME::GetTitleBlock ( ) const
overridevirtualinherited

Implements EDA_DRAW_FRAME.

Definition at line 148 of file sch_base_frame.cpp.

149 {
150  wxASSERT( GetScreen() );
151  return GetScreen()->GetTitleBlock();
152 }
SCH_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
const TITLE_BLOCK & GetTitleBlock() const
Definition: sch_screen.h:197

References SCH_BASE_FRAME::GetScreen(), and SCH_SCREEN::GetTitleBlock().

Referenced by DIALOG_PLOT_SCHEMATIC::createPDFFile(), DIALOG_PLOT_SCHEMATIC::Plot_1_Page_HPGL(), DIALOG_PLOT_SCHEMATIC::PlotOneSheetDXF(), DIALOG_PLOT_SCHEMATIC::plotOneSheetPDF(), DIALOG_PLOT_SCHEMATIC::plotOneSheetPS(), and DIALOG_PLOT_SCHEMATIC::plotOneSheetSVG().

◆ GetToolCanvas()

wxWindow* EDA_DRAW_FRAME::GetToolCanvas ( ) const
inlineoverridevirtualinherited

Canvas access.

Implements TOOLS_HOLDER.

Definition at line 421 of file eda_draw_frame.h.

421 { return GetCanvas(); }
virtual EDA_DRAW_PANEL_GAL * GetCanvas() const
Return a pointer to GAL-based canvas of given EDA draw frame.

References EDA_DRAW_FRAME::GetCanvas().

◆ GetToolManager()

TOOL_MANAGER* TOOLS_HOLDER::GetToolManager ( ) const
inlineinherited

Return the MVC controller.

Definition at line 55 of file tools_holder.h.

55 { return m_toolManager; }
TOOL_MANAGER * m_toolManager
Definition: tools_holder.h:157

References TOOLS_HOLDER::m_toolManager.

Referenced by DIALOG_GLOBAL_DELETION::acceptPcbDelete(), PROJECT_TREE_ITEM::Activate(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic(), APPEARANCE_CONTROLS::APPEARANCE_CONTROLS(), BOARD_COMMIT::BOARD_COMMIT(), FOOTPRINT_VIEWER_FRAME::ClickOnFootprintList(), TOOLS_HOLDER::CommonSettingsChanged(), DIALOG_FOOTPRINT_CHECKER::deleteAllMarkers(), DIALOG_ERC::deleteAllMarkers(), DIALOG_DRC::deleteAllMarkers(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), DIALOG_MIGRATE_BUSES::DIALOG_MIGRATE_BUSES(), PL_DRAW_PANEL_GAL::DisplayWorksheet(), DIALOG_CLEANUP_GRAPHICS::doCleanup(), DIALOG_CLEANUP_TRACKS_AND_VIAS::doCleanup(), SIM_PLOT_FRAME::doCloseWindow(), SCH_FIELD::DoHypertextMenu(), DRAWING_TOOL::DrawVia(), TRACK_WIDTH_MENU::eventHandler(), DIFF_PAIR_MENU::eventHandler(), SCH_EDIT_FRAME::ExecuteRemoteCommand(), PCB_EDIT_FRAME::ExecuteRemoteCommand(), GERBVIEW_FRAME::GERBVIEW_FRAME(), FP_TREE_SYNCHRONIZING_ADAPTER::GetContextMenuTool(), SYMBOL_TREE_SYNCHRONIZING_ADAPTER::GetContextMenuTool(), PL_EDITOR_FRAME::GetLayoutFromRedoList(), PL_EDITOR_FRAME::GetLayoutFromUndoList(), SCH_NAVIGATE_TOOL::HypertextCommand(), ROUTER_TOOL::InlineBreakTrack(), KICAD_MANAGER_FRAME::InstallPreferences(), PL_EDITOR_FRAME::InstallPreferences(), FOOTPRINT_EDIT_FRAME::InstallPreferences(), InstallPreferences(), GERBVIEW_FRAME::InstallPreferences(), PCB_EDIT_FRAME::InstallPreferences(), SCH_EDIT_FRAME::InstallPreferences(), LoadPart(), PCB_EDIT_FRAME::LoadProjectSettings(), FOOTPRINT_EDIT_FRAME::LoadSettings(), PROPERTIES_FRAME::OnAcceptPrms(), DIALOG_DRC::OnActivateDlg(), DIALOG_FOOTPRINT_CHECKER::OnCancelClick(), DIALOG_DRC::OnCancelClick(), DIALOG_INSPECTOR::onCellClicked(), DIALOG_ERC::OnCloseErcDialog(), SYMBOL_TREE_PANE::onComponentSelected(), DIALOG_DRC::OnDeleteOneClick(), DIALOG_ERC::OnERCItemSelected(), DIALOG_CONSTRAINTS_REPORTER::OnErrorLinkClicked(), DIALOG_INSPECTION_REPORTER::OnErrorLinkClicked(), KICAD_MANAGER_FRAME::OnIdle(), FOOTPRINTS_LISTBOX::OnLeftDClick(), APPEARANCE_CONTROLS::onNetclassContextMenu(), APPEARANCE_CONTROLS::onNetContextMenu(), SIM_PLOT_FRAME::onProbe(), DIALOG_PLOT::onRunDRC(), DIALOG_DRC::OnRunDRCClick(), HIERARCHY_NAVIG_DLG::onSelectSheetPath(), SCH_EDIT_FRAME::onSize(), DIALOG_FIELDS_EDITOR_GLOBAL::OnTableCellClick(), SIM_PLOT_FRAME::onTune(), PANEL_SELECTION_FILTER::PANEL_SELECTION_FILTER(), DIALOG_PLOT::Plot(), TOOLS_HOLDER::PopTool(), SCH_EDIT_FRAME::PutDataInPreviousState(), PL_EDITOR_FRAME::RollbackFromUndo(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), PCB_EDIT_FRAME::SaveProjectSettings(), FOOTPRINT_EDIT_FRAME::SaveSettings(), EDA_3D_VIEWER::SaveSettings(), DIALOG_FIND::search(), CVPCB_MAINFRAME::setupEventHandlers(), APPEARANCE_CONTROLS::showNetclass(), SYMBOL_VIEWER_FRAME::SYMBOL_VIEWER_FRAME(), DIALOG_GRID_SETTINGS::TransferDataFromWindow(), DIALOG_3D_VIEW_OPTIONS::TransferDataFromWindow(), DIALOG_LIB_EDIT_TEXT::TransferDataFromWindow(), DIALOG_SYMBOL_PROPERTIES::TransferDataFromWindow(), DIALOG_FOOTPRINT_FP_EDITOR::TransferDataFromWindow(), DIALOG_FIELDS_EDITOR_GLOBAL::TransferDataToWindow(), DIALOG_3D_VIEW_OPTIONS::TransferDataToWindow(), DIALOG_LIB_EDIT_TEXT::TransferDataToWindow(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::TransferDataToWindow(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::TransferDataToWindow(), EDA_DRAW_FRAME::UpdateMsgPanel(), NET_GRID_TABLE::updateNetVisibility(), DIALOG_NETLIST::~DIALOG_NETLIST(), and DIALOG_UPDATE_PCB::~DIALOG_UPDATE_PCB().

◆ GetTreeLIBID()

LIB_ID SYMBOL_EDIT_FRAME::GetTreeLIBID ( int *  aUnit = nullptr) const

Return the LIB_ID of the library or symbol selected in the symbol tree.

Definition at line 850 of file symbol_edit_frame.cpp.

851 {
852  return m_treePane->GetLibTree()->GetSelectedLibId( aUnit );
853 }
SYMBOL_TREE_PANE * m_treePane
LIB_ID GetSelectedLibId(int *aUnit=nullptr) const
For multi-unit components, if the user selects the component itself rather than picking an individual...
Definition: lib_tree.cpp:148
LIB_TREE * GetLibTree() const

References SYMBOL_TREE_PANE::GetLibTree(), LIB_TREE::GetSelectedLibId(), and m_treePane.

Referenced by SYMBOL_EDITOR_CONTROL::EditSymbol(), GetTargetLibId(), getTargetPart(), and SYMBOL_EDITOR_CONTROL::Init().

◆ GetType()

HOLDER_TYPE KIWAY_HOLDER::GetType ( ) const
inlineinherited

Definition at line 49 of file kiway_holder.h.

49 { return m_type; }
HOLDER_TYPE m_type
Definition: kiway_holder.h:79

References KIWAY_HOLDER::m_type.

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ GetUndoCommandCount()

virtual int EDA_BASE_FRAME::GetUndoCommandCount ( ) const
inlinevirtualinherited

◆ GetUnit()

◆ GetUnitPair()

void EDA_DRAW_FRAME::GetUnitPair ( EDA_UNITS aPrimaryUnit,
EDA_UNITS aSecondaryUnits 
)
inherited

Get the pair or units in current use.

The primary unit is the main unit of the frame, and the secondary unit is the unit of the other system that was used most recently.

Definition at line 998 of file eda_draw_frame.cpp.

999 {
1001 
1002  aPrimaryUnit = GetUserUnits();
1003  aSecondaryUnits = EDA_UNITS::MILS;
1004 
1005  if( EDA_UNIT_UTILS::IsImperialUnit( aPrimaryUnit ) )
1006  {
1007  if( cmnTool )
1008  aSecondaryUnits = cmnTool->GetLastMetricUnits();
1009  else
1010  aSecondaryUnits = EDA_UNITS::MILLIMETRES;
1011  }
1012  else
1013  {
1014  if( cmnTool )
1015  aSecondaryUnits = cmnTool->GetLastImperialUnits();
1016  else
1017  aSecondaryUnits = EDA_UNITS::MILS;
1018  }
1019 }
EDA_UNITS GetLastMetricUnits()
Definition: common_tools.h:74
bool IsImperialUnit(EDA_UNITS aUnit)
Definition: eda_units.cpp:26
EDA_UNITS GetLastImperialUnits()
Definition: common_tools.h:75
Handles action that are shared between different applications.
Definition: common_tools.h:37
TOOL_MANAGER * m_toolManager
Definition: tools_holder.h:157
EDA_UNITS GetUserUnits() const
Return the user units currently in use.

References COMMON_TOOLS::GetLastImperialUnits(), COMMON_TOOLS::GetLastMetricUnits(), TOOL_MANAGER::GetTool(), EDA_BASE_FRAME::GetUserUnits(), EDA_UNIT_UTILS::IsImperialUnit(), TOOLS_HOLDER::m_toolManager, MILLIMETRES, and MILS.

Referenced by GRID_MENU::BuildChoiceList(), and PCB_EDIT_FRAME::UpdateTrackWidthSelectBox().

◆ GetUserUnits()

EDA_UNITS EDA_BASE_FRAME::GetUserUnits ( ) const
inlineinherited

Return the user units currently in use.

Definition at line 114 of file eda_base_frame.h.

115  {
116  return m_userUnits;
117  }
EDA_UNITS m_userUnits
Map containing the UI update handlers registered with wx for each action.

References EDA_BASE_FRAME::m_userUnits.

Referenced by DIALOG_CONSTRAINTS_REPORTER::AddPage(), PANEL_SETUP_TRACKS_AND_VIAS::AppendDiffPairs(), PANEL_SETUP_TRACKS_AND_VIAS::AppendTrackWidth(), PANEL_SETUP_TRACKS_AND_VIAS::AppendViaSize(), MICROWAVE_TOOL::createFootprint(), MICROWAVE_TOOL::createMicrowaveInductor(), DIALOG_GROUP_PROPERTIES::DIALOG_GROUP_PROPERTIES(), GERBVIEW_SELECTION_TOOL::disambiguationMenu(), EDA_DRAW_FRAME::DisplayGridMsg(), GERBER_FILE_IMAGE::DisplayImageInfo(), DIALOG_GROUP_PROPERTIES::DoAddMember(), PL_SELECTION_TOOL::doSelectionMenu(), EE_SELECTION_TOOL::doSelectionMenu(), PCB_SELECTION_TOOL::doSelectionMenu(), DRAWING_TOOL::drawArc(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::drawSegment(), EVT_GRID_CMD_CELL_CHANGED(), PCB_EDIT_FRAME::GenFootprintsReport(), PANEL_FP_EDITOR_DEFAULTS::getGridValue(), PANEL_SETUP_TEXT_AND_GRAPHICS::getGridValue(), BOARD_INSPECTION_TOOL::getItemDescription(), LIB_CIRCLE::GetMsgPanelInfo(), LIB_RECTANGLE::GetMsgPanelInfo(), SCH_PIN::GetMsgPanelInfo(), LIB_ARC::GetMsgPanelInfo(), LIB_POLYLINE::GetMsgPanelInfo(), PCB_MARKER::GetMsgPanelInfo(), LIB_TEXT::GetMsgPanelInfo(), PL_EDITOR_LAYOUT::GetMsgPanelInfo(), LIB_BEZIER::GetMsgPanelInfo(), PCB_TEXT::GetMsgPanelInfo(), DS_DRAW_ITEM_BASE::GetMsgPanelInfo(), PCB_TARGET::GetMsgPanelInfo(), ZONE::GetMsgPanelInfo(), SCH_BITMAP::GetMsgPanelInfo(), NETINFO_ITEM::GetMsgPanelInfo(), LIB_FIELD::GetMsgPanelInfo(), TRACK::GetMsgPanelInfo(), FP_TEXT::GetMsgPanelInfo(), LIB_PIN::GetMsgPanelInfo(), DIMENSION_BASE::GetMsgPanelInfo(), PCB_SHAPE::GetMsgPanelInfo(), SCH_TEXT::GetMsgPanelInfo(), ALIGNED_DIMENSION::GetMsgPanelInfo(), VIA::GetMsgPanelInfo(), LEADER::GetMsgPanelInfo(), PAD::GetMsgPanelInfo(), EDA_DRAW_FRAME::GetUnitPair(), GetUserUnits(), RC_TREE_MODEL::GetValue(), BOARD_INSPECTION_TOOL::InspectClearance(), GERBVIEW_INSPECTION_TOOL::MeasureTool(), PCB_VIEWER_TOOLS::MeasureTool(), PANEL_SETUP_BOARD_STACKUP::onThicknessChange(), DIALOG_NET_INSPECTOR::onUnitsChanged(), UNIT_BINDER::onUnitsChanged(), PANEL_SETUP_BOARD_STACKUP::onUpdateThicknessValue(), PANEL_PREV_3D::PANEL_PREV_3D(), PANEL_SETUP_BOARD_STACKUP::PANEL_SETUP_BOARD_STACKUP(), POSITION_RELATIVE_TOOL::PositionRelative(), DRC_TOOL::RunTests(), GERBVIEW_INSPECTION_TOOL::ShowDCodes(), COMMON_TOOLS::ToggleUnits(), PANEL_SETUP_BOARD_STACKUP::transferDataFromUIToStackup(), PANEL_SETUP_TRACKS_AND_VIAS::TransferDataFromWindow(), PANEL_SETUP_CONSTRAINTS::TransferDataToWindow(), UNIT_BINDER::UNIT_BINDER(), PCB_BASE_EDIT_FRAME::unitsChangeRefresh(), EDITOR_CONDITIONS::unitsFunc(), VIA_SIZE_MENU::update(), TRACK_WIDTH_MENU::update(), DIFF_PAIR_MENU::update(), GERBVIEW_FRAME::updateDCodeSelectBox(), DIALOG_DIMENSION_PROPERTIES::updateDimensionFromDialog(), PNS_TUNE_STATUS_POPUP::UpdateStatus(), GERBVIEW_FRAME::UpdateStatusBar(), PL_EDITOR_FRAME::UpdateStatusBar(), SCH_BASE_FRAME::UpdateStatusBar(), PCB_BASE_FRAME::UpdateStatusBar(), PCB_EDIT_FRAME::UpdateViaSizeSelectBox(), DRC_TOOL::userUnits(), and PANEL_SETUP_TRACKS_AND_VIAS::Validate().

◆ GetWindowSettings()

WINDOW_SETTINGS * EDA_BASE_FRAME::GetWindowSettings ( APP_SETTINGS_BASE aCfg)
virtualinherited

Return a pointer to the window settings for this frame.

By default, points to aCfg->m_Window for top-level frames.

Parameters
aCfgis this frame's config object

Reimplemented in SIM_PLOT_FRAME, FOOTPRINT_WIZARD_FRAME, FOOTPRINT_VIEWER_FRAME, SYMBOL_VIEWER_FRAME, and DISPLAY_FOOTPRINTS_FRAME.

Definition at line 675 of file eda_base_frame.cpp.

676 {
677  return &aCfg->m_Window;
678 }
WINDOW_SETTINGS m_Window
Definition: app_settings.h:181

References APP_SETTINGS_BASE::m_Window.

Referenced by EDA_BASE_FRAME::LoadSettings(), EDA_DRAW_FRAME::LoadSettings(), EDA_BASE_FRAME::SaveSettings(), and EDA_DRAW_FRAME::SaveSettings().

◆ GetWindowSize()

wxSize EDA_BASE_FRAME::GetWindowSize ( )
inherited

Get the undecorated window size that can be used for restoring the window size.

This is needed for GTK, since the normal wxWidgets GetSize() call will return a window size that includes the window decorations added by the window manager.

Returns
the undecorated window size

Definition at line 1086 of file eda_base_frame.cpp.

1087 {
1088 #ifdef __WXGTK__
1089  // GTK includes the window decorations in the normal GetSize call,
1090  // so we have to use a GTK-specific sizing call that returns the
1091  // non-decorated window size.
1092  int width = 0;
1093  int height = 0;
1094  GTKDoGetSize( &width, &height );
1095 
1096  wxSize winSize( width, height );
1097 #else
1098  wxSize winSize = GetSize();
1099 #endif
1100 
1101  return winSize;
1102 }

Referenced by EDA_BASE_FRAME::OnMaximize(), and EDA_BASE_FRAME::SaveWindowSettings().

◆ GetZoomLevelIndicator()

const wxString EDA_DRAW_FRAME::GetZoomLevelIndicator ( ) const
inherited

Return a human readable value for display in dialogs.

Definition at line 510 of file eda_draw_frame.cpp.

511 {
512  // returns a human readable value which can be displayed as zoom
513  // level indicator in dialogs.
514  double zoom = m_canvas->GetGAL()->GetZoomFactor();
515  return wxString::Format( wxT( "Z %.2f" ), zoom );
516 }
EDA_DRAW_PANEL_GAL * m_canvas
This the frame's interface to setting GAL display options.
KIGFX::GAL * GetGAL() const
Return a pointer to the GAL instance used in the panel.
double GetZoomFactor() const
Get the zoom factor.
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, const CPTREE &aTree)
Output a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:200

References Format(), EDA_DRAW_PANEL_GAL::GetGAL(), KIGFX::GAL::GetZoomFactor(), and EDA_DRAW_FRAME::m_canvas.

Referenced by PL_EDITOR_FRAME::UpdateStatusBar(), and EDA_DRAW_FRAME::UpdateStatusBar().

◆ HandleUpdateUIEvent()

void EDA_BASE_FRAME::HandleUpdateUIEvent ( wxUpdateUIEvent &  aEvent,
EDA_BASE_FRAME aFrame,
ACTION_CONDITIONS  aCond 
)
staticinherited

Handle events generated when the UI is trying to figure out the current state of the UI controls related to TOOL_ACTIONS (e.g.

enabled, checked, etc.).

Parameters
aEventis the wxUpdateUIEvent to be processed.
aFrameis the frame to get the selection from
aCondare the #UI SELECTION_CONDITIONS used

Definition at line 341 of file eda_base_frame.cpp.

343 {
344  bool checkRes = false;
345  bool enableRes = true;
346  bool showRes = true;
347  SELECTION& selection = aFrame->GetCurrentSelection();
348 
349  try
350  {
351  checkRes = aCond.checkCondition( selection );
352  enableRes = aCond.enableCondition( selection );
353  showRes = aCond.showCondition( selection );
354  }
355  catch( std::exception& )
356  {
357  // Something broke with the conditions, just skip the event.
358  aEvent.Skip();
359  return;
360  }
361 
362  aEvent.Enable( enableRes );
363  aEvent.Show( showRes );
364 
365  // wxWidgets 3.1.5+ includes a field in the event that says if the event supports being
366  // checked, since wxMenuItems don't want to be checked unless they actually are checkable
367 #if wxCHECK_VERSION( 3, 1, 5 )
368  if( aEvent.IsCheckable() )
369  aEvent.Check( checkRes );
370 #else
371  bool canCheck = true;
372 
373  // wxMenuItems don't want to be checked unless they actually are checkable, so we have to check to
374  // see if they can be and can't just universally apply a check in this event.
375  if( auto menu = dynamic_cast<wxMenu*>( aEvent.GetEventObject() ) )
376  canCheck = menu->FindItem( aEvent.GetId() )->IsCheckable();
377 
378  if( canCheck )
379  aEvent.Check( checkRes );
380 #endif
381 }
SELECTION_CONDITION showCondition
Returns true if the UI control should be shown.
SELECTION_CONDITION enableCondition
Returns true if the UI control should be enabled.
SELECTION_CONDITION checkCondition
Returns true if the UI control should be checked.
virtual SELECTION & GetCurrentSelection()
Get the current selection from the canvas area.
Definition: tools_holder.h:102

References ACTION_CONDITIONS::checkCondition, ACTION_CONDITIONS::enableCondition, TOOLS_HOLDER::GetCurrentSelection(), and ACTION_CONDITIONS::showCondition.

Referenced by EDA_BASE_FRAME::RegisterUIUpdateHandler().

◆ HardRedraw()

void SYMBOL_EDIT_FRAME::HardRedraw ( )
overridevirtual

Rebuild the GAL and redraw the screen.

Call when something went wrong.

Reimplemented from SCH_BASE_FRAME.

Definition at line 1111 of file symbol_edit_frame.cpp.

1112 {
1113  SyncLibraries( true );
1114 
1115  if( m_my_part )
1116  {
1118  EE_SELECTION& selection = selectionTool->GetSelection();
1119 
1120  for( LIB_ITEM& item : m_my_part->GetDrawItems() )
1121  {
1122  if( !alg::contains( selection, &item ) )
1123  item.ClearSelected();
1124  else
1125  item.SetSelected();
1126  }
1127  }
1128 
1129  RebuildView();
1130 }
The base class for drawable items used by schematic library components.
Definition: lib_item.h:62
EE_SELECTION & GetSelection()
Return the set of currently selected items.
LIB_ITEMS_CONTAINER & GetDrawItems()
Return a reference to the draw item list.
Definition: lib_symbol.h:467
bool contains(const _Container &__container, _Value __value)
Returns true if the container contains the given value.
Definition: kicad_algo.h:81
TOOL_MANAGER * m_toolManager
Definition: tools_holder.h:157
void SyncLibraries(bool aShowProgress, const wxString &aForceRefresh=wxEmptyString)
Synchronize the library manager to the symbol library table, and then the symbol tree to the library ...

References alg::contains(), LIB_PART::GetDrawItems(), EE_SELECTION_TOOL::GetSelection(), TOOL_MANAGER::GetTool(), m_my_part, TOOLS_HOLDER::m_toolManager, RebuildView(), and SyncLibraries().

◆ HasLibModifications()

bool SYMBOL_EDIT_FRAME::HasLibModifications ( ) const

Check if any pending libraries have been modified.

This only checks for modified libraries. If a new symbol was created and modified and no libraries have been modified, the return value will be false.

Returns
True if there are any pending library modifications.

Definition at line 1214 of file symbol_edit_frame.cpp.

1215 {
1216  wxCHECK( m_libMgr, false );
1217 
1218  return m_libMgr->HasModifications();
1219 }
SYMBOL_LIBRARY_MANAGER * m_libMgr

References SYMBOL_LIBRARY_MANAGER::HasModifications(), and m_libMgr.

◆ help_name()

wxString EDA_BASE_FRAME::help_name ( )
virtualinherited

Reimplemented in KICAD_MANAGER_FRAME.

Definition at line 694 of file eda_base_frame.cpp.

695 {
696  return Kiface().GetHelpFileName();
697 }
const wxString & GetHelpFileName() const
Return just the basename portion of the current help file.
Definition: kiface_i.h:109
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.

References KIFACE_I::GetHelpFileName(), and Kiface().

Referenced by COMMON_CONTROL::ShowHelp().

◆ ImportHotkeyConfigFromFile()

void EDA_BASE_FRAME::ImportHotkeyConfigFromFile ( std::map< std::string, TOOL_ACTION * >  aActionMap,
const wxString &  aDefaultShortname 
)
inherited

Prompt the user for a hotkey file to read, and read it.

Parameters
aActionMapcurrent hotkey map (over which the imported hotkeys will be applied).
aDefaultShortnamea default short name (extension not needed) like Eeschema, KiCad...

◆ ImportPart()

void SYMBOL_EDIT_FRAME::ImportPart ( )

Definition at line 35 of file symbol_editor_import_export.cpp.

36 {
37  wxString msg;
38  wxString libName = getTargetLib();
39 
40  if( !m_libMgr->LibraryExists( libName ) )
41  {
42  libName = SelectLibraryFromList();
43 
44  if( !m_libMgr->LibraryExists( libName ) )
45  return;
46  }
47 
48  wxString wildcards = KiCadSymbolLibFileWildcard();
49 
50  wildcards += "|" + LegacySymbolLibFileWildcard();
51 
52  wxFileDialog dlg( this, _( "Import Symbol" ), m_mruPath, wxEmptyString,
53  wildcards, wxFD_OPEN | wxFD_FILE_MUST_EXIST );
54 
55  if( dlg.ShowModal() == wxID_CANCEL )
56  return;
57 
58  wxFileName fn = dlg.GetPath();
59 
60  if( fn.GetExt().IsEmpty() )
61  fn.SetExt( (dlg.GetFilterIndex() == 0) ?
63 
64  m_mruPath = fn.GetPath();
65 
66  wxArrayString symbols;
67  SCH_IO_MGR::SCH_FILE_T piType = SCH_IO_MGR::GuessPluginTypeFromLibPath( fn.GetFullPath() );
68  SCH_PLUGIN::SCH_PLUGIN_RELEASER pi( SCH_IO_MGR::FindPlugin( piType ) );
69 
70  // TODO dialog to select the part to be imported if there is more than one
71  try
72  {
73  pi->EnumerateSymbolLib( symbols, fn.GetFullPath() );
74  }
75  catch( const IO_ERROR& ioe )
76  {
77  msg.Printf( _( "Cannot import symbol library \"%s\"." ), fn.GetFullPath() );
78  DisplayErrorMessage( this, msg, ioe.What() );
79  return;
80  }
81 
82  if( symbols.empty() )
83  {
84  msg.Printf( _( "Symbol library file \"%s\" is empty." ), fn.GetFullPath() );
85  DisplayError( this, msg );
86  return;
87  }
88 
89  wxString symbolName = symbols[0];
90  LIB_PART* entry = pi->LoadSymbol( fn.GetFullPath(), symbolName );
91 
92  if( m_libMgr->PartExists( symbols[0], libName ) )
93  {
94  msg.Printf( _( "Symbol \"%s\" already exists in library \"%s\"." ), symbolName, libName );
95  DisplayError( this, msg );
96  return;
97  }
98 
99  m_libMgr->UpdatePart( entry, libName );
100  SyncLibraries( false );
101  LoadPart( symbolName, libName, 1 );
102 }
static SCH_FILE_T GuessPluginTypeFromLibPath(const wxString &aLibPath)
Return a plugin type given a symbol library using the file extension of aLibPath.
Definition: sch_io_mgr.cpp:169
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
Definition: confirm.cpp:253
wxString m_mruPath
void DisplayErrorMessage(wxWindow *aParent, const wxString &aText, const wxString &aExtraInfo)
Display an error message with aMessage.
Definition: confirm.cpp:266
const std::string LegacySymbolLibFileExtension
bool PartExists(const wxString &aAlias, const wxString &aLibrary) const
Return true if part with a specific alias exists in library (either original one or buffered).
bool UpdatePart(LIB_PART *aPart, const wxString &aLibrary)
Update the part buffer with a new version of the part.
void LoadPart(const wxString &aLibrary, const wxString &aPart, int Unit)
virtual const wxString What() const
A composite of Problem() and Where()
Definition: exceptions.cpp:29
wxString getTargetLib() const
Define a library symbol object.
Definition: lib_symbol.h:93
wxString SelectLibraryFromList()
Display a list of loaded libraries in the symbol library and allows the user to select a library.
wxString KiCadSymbolLibFileWildcard()
wxString LegacySymbolLibFileWildcard()
Helper object to release a SCH_PLUGIN in the context of a potential thrown exception through its dest...
Definition: sch_io_mgr.h:470
bool LibraryExists(const wxString &aLibrary, bool aCheckEnabled=false) const
Return true if library exists.
#define _(s)
Definition: 3d_actions.cpp:33
SYMBOL_LIBRARY_MANAGER * m_libMgr
void SyncLibraries(bool aShowProgress, const wxString &aForceRefresh=wxEmptyString)
Synchronize the library manager to the symbol library table, and then the symbol tree to the library ...
Hold an error message and may be used when throwing exceptions containing meaningful error messages.
Definition: ki_exception.h:75
const std::string KiCadSymbolLibFileExtension

References _, DisplayError(), DisplayErrorMessage(), getTargetLib(), SCH_IO_MGR::GuessPluginTypeFromLibPath(), KiCadSymbolLibFileExtension, KiCadSymbolLibFileWildcard(), LegacySymbolLibFileExtension, LegacySymbolLibFileWildcard(), SYMBOL_LIBRARY_MANAGER::LibraryExists(), LoadPart(), m_libMgr, EDA_BASE_FRAME::m_mruPath, SYMBOL_LIBRARY_MANAGER::PartExists(), SelectLibraryFromList(), SyncLibraries(), SYMBOL_LIBRARY_MANAGER::UpdatePart(), and IO_ERROR::What().

Referenced by SYMBOL_EDITOR_CONTROL::AddSymbol().

◆ initExitKey()

void EDA_BASE_FRAME::initExitKey ( )
protectedinherited

Sets the common key-pair for exiting the application (Ctrl-Q) and ties it to the wxID_EXIT event id.

This is useful in sub-applications to pass the event up to a non-owning window.

Definition at line 996 of file eda_base_frame.cpp.

997 {
998  wxAcceleratorEntry entries[1];
999  entries[0].Set( wxACCEL_CTRL, int( 'Q' ), wxID_EXIT );
1000  wxAcceleratorTable accel( 1, entries );
1001  SetAcceleratorTable( accel )