Maciej Suminski
4fe06656a6
Minor refactor in LIB_EDIT_FRAME::Process_Special_Functions()
...
Shortened 'screen->m_BlockLocate' to 'block'.
2017-11-21 23:18:55 +01:00
Maciej Suminski
6b87c2d6b1
Library Editor: faster filtering on Windows
...
Preventing redraw by freezing wxDataViewTreeCtrl significantly
improves the performance.
2017-11-21 23:18:55 +01:00
Maciej Suminski
98c99ff129
DIALOG_SHIM: do not raise invisible windows on wxMSW
...
Raise() invokes SetFocus() on Windows OS, leading to an API error
(check wxWindowMSW::SetFocus() in wxWidgets/src/msw/window.cpp as
of wxWidgets 3.0.2). In certain cases it leads to a crash.
2017-11-21 23:18:55 +01:00
Maciej Suminski
e0e4e5f1be
Library Manager: alternative way to manage dynamic fixes
...
Tree nodes now have an additional field 'InTree' to determine
if the view is aware of its existence. This way, there is no need
to rebuild the data structures from scratch when they need to be
filtered.
2017-11-21 23:18:55 +01:00
Maciej Suminski
db4bd0c2db
Library Editor: fixed dynamic updates
...
Duplicate entries were caused by multiple model assignment done by
CMP_TREE_MODEL_ADAPTER_BASE::AttachTo().
2017-11-21 23:18:55 +01:00
Maciej Suminski
891cf783fb
Library Editor: Windows fixes
2017-11-21 23:18:55 +01:00
Maciej Suminski
07c104af63
confirm: fixed signed vs unsigned comparison warnings
2017-11-21 23:18:55 +01:00
Maciej Suminski
d3d2770093
Library Editor: fixed library manager synchronization to sym-lib-table
2017-11-21 23:18:55 +01:00
Maciej Suminski
b229286313
Library Editor: fixed a crash after a library is removed
2017-11-21 23:18:55 +01:00
Maciej Suminski
6400e31d5b
Library Editor: more coherent icons for part import/export
2017-11-21 23:18:55 +01:00
Maciej Suminski
8dabcc0125
Fixed signed vs unsigned integer comparisons
2017-11-21 23:18:55 +01:00
Maciej Suminski
658dd362cd
Library Manager: clear the deleted part buffer when original file is saved
2017-11-21 23:18:55 +01:00
Maciej Suminski
86f71a9eb4
Library Editor: notify is library is read-only
2017-11-21 23:18:55 +01:00
Maciej Suminski
d2d3680774
Library Editor: more descriptive symbol table picker dialog
2017-11-21 23:18:55 +01:00
Maciej Suminski
50dc0ffd9d
libedit: Call OnModify after a pin has been moved
...
Library Editor updates its working copy of the edited part every time
it is modified. If LIB_EDIT_FRAME::PlacePin() calls OnModify() too early,
the working copy does not include the last change.
2017-11-21 23:18:55 +01:00
Maciej Suminski
95754632c2
Library Editor: renamed 'component' to 'part'
2017-11-21 23:18:55 +01:00
Maciej Suminski
a4f475c97d
Library Editor: icon improvements
...
- new icons: 'save part', 'add library'
- added a toolbar icon for 'add library'
- made icons on toolbar and menu consistent
2017-11-21 23:18:55 +01:00
Maciej Suminski
44117a7d5e
Library Editor: added a hotkey to save a component
2017-11-21 23:18:55 +01:00
Maciej Suminski
d900e89382
Library Editor: fixed a bug when multiple components were shown as active
2017-11-21 23:18:55 +01:00
Maciej Suminski
ba4515885b
Library Editor: select part in the widget component on create/paste/duplicate component
2017-11-21 23:18:55 +01:00
Maciej Suminski
7d45d8b23c
Library Editor: made the component tree pane resizable
2017-11-21 23:18:55 +01:00
Maciej Suminski
076633bb5e
Library Editor: disable 'save component' for read-only libraries
2017-11-21 23:18:55 +01:00
Maciej Suminski
33242fd111
Library Manager: do not clear modified flag on 'save library as' action
2017-11-21 23:18:55 +01:00
Maciej Suminski
df8dc01e8d
Library Manager & Editor: comments
2017-11-21 23:18:55 +01:00
Tomasz Włostowski
7fc1e1d53c
Library Editor: component cut/copy/paste/duplicate
2017-11-21 23:18:55 +01:00
Maciej Suminski
2ed19668cd
Eeschema: removed protos.h
...
Contained duplicated function declarations with invalid comments.
2017-11-21 23:18:55 +01:00
Maciej Suminski
8f1897adfd
minor refactor
2017-11-21 23:18:55 +01:00
Maciej Suminski
3ace948197
block_libedit.cpp: minor refactor
...
Replaced numerous GetScreen()->m_BlockLocate with a shorter reference.
2017-11-21 23:18:55 +01:00
Tomasz Włostowski
72de4e1857
libedit: field edition should be undoable
2017-11-21 23:18:55 +01:00
Maciej Suminski
f2257ccccc
Eeschema: created a header for list operations
2017-11-21 23:18:55 +01:00
Maciej Suminski
03c5620efe
Library Editor: removed 'load component' hot key
2017-11-21 23:18:55 +01:00
Maciej Suminski
73ec145c33
Library Manager: wrapped risky calls with try..catch
2017-11-21 23:18:55 +01:00
Maciej Suminski
fb4875c681
Library Editor: refactored code for creating backup files
2017-11-21 23:18:55 +01:00
Maciej Suminski
f6f1dff9d0
Library Editor: enable part buffering for faster save, better 'save as' implementation
...
Previous 'save as' implementation simply copied the original file, so
the buffered changes were not save.
2017-11-21 23:18:55 +01:00
Maciej Suminski
9fcaa83b7d
Library Manager: fixed a memleak in LIB_EDIT_FRAME::OnCreateNewPart()
2017-11-21 23:18:55 +01:00
Maciej Suminski
a2b6c8e20a
Library Manager: select library when none is set for import/create new part
2017-11-21 23:18:55 +01:00
Maciej Suminski
bb83b73f76
Library Editor: mark the current library/part with a different color
2017-11-21 23:18:55 +01:00
Maciej Suminski
dfcd42f5ef
Library Editor: save libraries added in the editor to sym-lib-tables
2017-11-21 23:18:55 +01:00
Maciej Suminski
26304c54ed
Library Editor: fixed update UI event handlers
2017-11-21 23:18:55 +01:00
Maciej Suminski
24ddbbaf25
Library Editor: display a list of libraries to save on close
2017-11-21 23:18:55 +01:00
Maciej Suminski
2c20a10242
Removed friendship in LIB_PART and LIB_ALIAS classes.
...
It is not required and may a source of unnecessary temptation. There is
no place for friendship in rough C++ world.
2017-11-21 23:18:55 +01:00
Maciej Suminski
aa81f5b98d
Removed LIB_PART::SetLibId()
...
To avoid potential incoherency, LIB_ID is defined by setting the part
name and library.
2017-11-21 23:18:55 +01:00
Maciej Suminski
445ac50588
Keep LIB_ID and LIB_PART name/library in sync
...
Updates LIB_ID::LibItemName field when a part is renamed and LIB_PART
name when a new LIB_ID is set.
Similarly, LIB_ID::LibNickName field is updated when a library set, but
there is no easy way to assign library when LIB_ID::LibNickName is
modified.
2017-11-21 23:18:55 +01:00
Maciej Suminski
4c4f5ae962
Unified way of setting LIB_PART name
...
LIB_PART name is stored in three places that might be changed
independently:
- the first LIB_ALIAS in m_aliases
- LIB_FIELD with VALUE ID
- m_name wxString field
This is potentially leads to an incoherent LIB_PART state. To prevent
this, all fields are changed using only one method: LIB_PART::SetName().
LIB_PART::m_name has been removed as the same information is available
in two other variables.
2017-11-21 23:18:55 +01:00
Maciej Suminski
3589244ff3
Library Editor field edit dialog takes data from LIB_MANAGER
2017-11-21 23:18:55 +01:00
Maciej Suminski
5c61b61c27
Improved synchronization algorithm for LIB_MANAGER<->COMPONENT_TREE
2017-11-21 23:18:55 +01:00
Maciej Suminski
a789b735e9
Library Manager: logic
2017-11-21 23:18:55 +01:00
Maciej Suminski
769c6a8d51
Library Manager: user interface
2017-11-21 23:18:55 +01:00
Maciej Suminski
d29e115804
CMP_TREE_MODEL: set LibID for library nodes
...
LibID needs to be set for libraries as well to be able to tell which
library has been selected in the component tree widget.
2017-11-21 23:18:55 +01:00
Maciej Suminski
19a85a36a3
confirm: Added Select{Single,Multi}Option() to display generic selection dialogs
2017-11-21 23:18:55 +01:00