... | ... | @@ -5,6 +5,8 @@ Maciej Sumiński/CERN \<maciej.suminski@cern.ch\>, November 2013 |
|
|
The current selection tool, that is compatible with the GAL, does not
|
|
|
provide enough means to perform all actions required to design a PCB. To
|
|
|
make it fully operational, more functionality is required.
|
|
|
Some of the following functionality is currently available for testing
|
|
|
in the lp:~cern-kicad/kicad/selection\_tool branch.
|
|
|
|
|
|
### Delete
|
|
|
|
... | ... | @@ -12,6 +14,8 @@ Deletes selected items or groups of items. Activated by a hotkey (e.g. |
|
|
Delete) or a command in the Context Menu (CM). Shortcuts should be
|
|
|
consistent with the legacy KiCad edit panel.
|
|
|
|
|
|
*Status**: available for testing
|
|
|
|
|
|
### Cut/Copy/Paste
|
|
|
|
|
|
Right now KiCad allows only to copy selected blocks by the following
|
... | ... | @@ -59,6 +63,9 @@ Cut/copied items could be stored in the system clipboard in the KiCad |
|
|
s-expression format. It could be easily achievable by extracting all
|
|
|
PCB\_IO::Format() functions to another class.
|
|
|
|
|
|
*Status**: requires some further discussions and more detailed
|
|
|
description
|
|
|
|
|
|
### Grid settings
|
|
|
|
|
|
Currently, it is possible to change the grid density by clicking through
|
... | ... | @@ -81,6 +88,8 @@ currently selected unit. |
|
|
*To do: find out if it is possible with wxWidgets (i.e. to have a deeper
|
|
|
level menu accessible by a hotkey).*
|
|
|
|
|
|
*Status**: to be done
|
|
|
|
|
|
### Zoom settings
|
|
|
|
|
|
The zoom options are right now fully available in the CM (and hotkeys
|
... | ... | @@ -89,6 +98,8 @@ later expanded to all options (please have a look at the CM plan at the |
|
|
end of the document) and accessible by hotkeys in a similar way to the
|
|
|
grid settings.
|
|
|
|
|
|
*Status**: to be done
|
|
|
|
|
|
### Selection filter
|
|
|
|
|
|
Pcbnew allows to select only items of a specific type by checking
|
... | ... | @@ -121,6 +132,8 @@ In the future, it could be extended by handling Python expressions in |
|
|
order to create more sophisticated filtering rules (eg. “IsModule() &&
|
|
|
PinCount() \> 8” to select modules that have more than 8 pins).
|
|
|
|
|
|
*Status**: to be done
|
|
|
|
|
|
### The selection tool as the default tool
|
|
|
|
|
|
The Tool Framework puts activated tools on a stack, so if one tool
|
... | ... | @@ -137,6 +150,8 @@ entries, should it be changed or there should be another way of invoking |
|
|
specific functions of other tools? For example, the move tool calls the
|
|
|
GetSelection() function to obtain the currently selected items.*
|
|
|
|
|
|
*Status**: available for testing
|
|
|
|
|
|
### Net highlighting
|
|
|
|
|
|
To make it easier to follow connections on a PCB, there should be a net
|
... | ... | @@ -150,12 +165,16 @@ CM. |
|
|
![](/uploads/d1fd306abed37e31af6cc0b09542b1b7/highlight_net.png)
|
|
|
Illustration 2: Net highlighting mode.
|
|
|
|
|
|
*Status**: to be done
|
|
|
|
|
|
### Properties dialog
|
|
|
|
|
|
There should be a properties dialog available for all item types, same
|
|
|
as the one currently available in Pcbnew. The dialog should be shown
|
|
|
after a double click on an item or selected from the CM.
|
|
|
|
|
|
*Status**: available for testing
|
|
|
|
|
|
### Update of displayed coordinates
|
|
|
|
|
|
In the GAL mode, the status bar should update the information about
|
... | ... | @@ -165,6 +184,8 @@ selected/recently clicked item. This could be displayed after hovering |
|
|
the mouse cursor over an item, without any clicking and replace the
|
|
|
board statistics informations (number of tracks, vias, etc.)
|
|
|
|
|
|
*Status**: to be done
|
|
|
|
|
|
### Update the 'file changed' flag
|
|
|
|
|
|
Changes introduced by the tools using the Tool Framework should make the
|
... | ... | @@ -172,6 +193,8 @@ Changes introduced by the tools using the Tool Framework should make the |
|
|
reimplemented using the Observer design pattern, instead of updating the
|
|
|
button on every update UI event (such as mouse movement).
|
|
|
|
|
|
*Status**: to be done
|
|
|
|
|
|
### Alignment of items
|
|
|
|
|
|
For a block of selected items, give an option to align one edge of every
|
... | ... | @@ -184,6 +207,8 @@ axis. |
|
|
![](/uploads/28073736f6fff5e768545bbff26104c2/alignment.png)
|
|
|
Illustration 3: Example alignment modes for selected items.
|
|
|
|
|
|
*Status**: to be done
|
|
|
|
|
|
### Undo & redo
|
|
|
|
|
|
Currently one can only revert the current operation (i.e. it is possible
|
... | ... | @@ -223,6 +248,8 @@ UNDO\_REDO\_CONTAINER, ITEM\_PICKER, PICKED\_ITEMS\_LIST, PCB\_SCREEN |
|
|
|
|
|
- Add an accessor to the undo buffer.
|
|
|
|
|
|
*Status**: to be done
|
|
|
|
|
|
### Moving cursor using arrow keys
|
|
|
|
|
|
This functionality is currently available in KiCad. It lets users
|
... | ... | @@ -230,6 +257,8 @@ manipulate items more precisely. To extend it, there could be hotkeys |
|
|
available to increase a unit movement distance (e.g. by default a single
|
|
|
key press moves an item by 1 grid unit and with Ctrl held by 10 units).
|
|
|
|
|
|
*Status**: to be done
|
|
|
|
|
|
### Selected item specific menus
|
|
|
|
|
|
If selected items are of the same type, there could be some extra
|
... | ... | @@ -238,6 +267,8 @@ specific actions displayed, e.g. |
|
|
- for zones: Show/Hide/Refill
|
|
|
- for items that belong to the same net: Show/Hide ratsnest, Highlight
|
|
|
|
|
|
*Status**: to be done
|
|
|
|
|
|
## Summary
|
|
|
|
|
|
We should be able to choose any action without any mouse movement, but
|
... | ... | |