jean-pierre charras
a35a46804e
Pcbnew fix: "create array" extremely slow in GAL mode, due to a useless call of a time consuming method for each new item created.
2017-04-19 14:15:11 +02:00
jean-pierre charras
01f5a129a3
Fixes: lp:1683147 (Board append command *extremely* slow)
...
https://bugs.launchpad.net/kicad/+bug/1683147
2017-04-18 20:10:34 +02:00
jean-pierre charras
74cd53fb31
finishing work started in commit ba37d6fca35b67fc04a21aa111aba97c80c3a1b0:
...
Command add corner to zone in GAL mode: fix corner cases (existing when a zone has holes).
(Well, "corner case" is the right word: I can't resist)
2017-04-14 14:39:45 +02:00
jean-pierre charras
9a7abd5914
Pcbnew: fix some issues in GAL when adding holes in zones.
2017-04-07 11:57:02 +02:00
jean-pierre charras
70c961fe6a
Pcbnew: fix serious issues (broken files) when saving and loading .kicad_pcb files when zones have holes in outlines.
2017-04-07 08:02:26 +02:00
jean-pierre charras
ba37d6fca3
Temporary fix of broken command add corner to zone in GAL mode.
...
Fixes: lp:1680339
https://bugs.launchpad.net/kicad/+bug/1680339
2017-04-06 19:04:47 +02:00
Jon Evans
3ec28e2acf
Refactor layer enumerations to all live in the same place
2017-03-30 16:01:48 -04:00
John Beard
c94269e173
Pcbnew GAL: Switch CW/CCW hotkeys to match legacy mode
2017-03-30 16:05:56 +02:00
John Beard
0b593faa93
Pcbnew: correct CW/CCW rotation.
...
These were backwards since internal angles are CCW due to the inverted Y
axis.
The hotkeys have NOT changed. This means 'R' is now clockwise and
'Shift+R' is anti-clockwise. This is the same as EEschema, but not the
same as Legacy mode.
2017-03-30 16:05:56 +02:00
Alejandro García Montoro
f68ce306bd
CPolyLine -> SHAPE_POLY_SET refactor.
...
Removes the need of using the legacy code in polygon/PolyLine.{h,cpp},
refactoring all CPolyLine instances with SHAPE_POLY_SET instances.
The remaining legacy methods have been ported to SHAPE_POLY_SET;
mainly: Chamfer, Fillet, {,Un}Hatch.
The iteration over the polygon vertices have been simplified using the
family of ITERATOR classes.
2017-03-24 10:43:47 +01:00
Maciej Suminski
f2763e90ea
Disable autopanning & cursor capture when drawing is finished
2017-03-23 14:15:34 +01:00
John Beard
9fe780f1b3
Rework zone creation in GAL
...
The zone creation in DRAWING_TOOL was a complex event loop whici
simultaneously managed the event handling, construction of the preview
polygon and the creation and commiting of the zone, all in the same
scope. This has been broken into several pieces:
* POLYGON_ITEM preview item, used to preview the polygon in progress
* POLYGON_GEOM_MANAGER is a class that collects points from user input
and used them to describe a polygon's geometry, including calculation
of 45-degree constrained leader lines
* ZONE_CREATE_HELPER is a class which deals with creating zones based on
geometry from a geometry manager and parameters from the DRAWING_TOOL
* The (much simpler) event loop in DRAWING_TOOL drives the
POLYGON_GEOM_MANAGER. With a minor refactor, this loop can be reused
in future for other polygonal tools if wanted.
The polygon preview now has a translucent fill which makes it easier to
visualise the zone.
This also adds the Close Zone Outline and Delete Last Corner actions as
part of the new event loop.
Fixes: lp:1663885
* https://bugs.launchpad.net/kicad/+bug/1663885
Fixes: lp:1667885
* https://bugs.launchpad.net/kicad/+bug/1667885
2017-03-22 17:18:12 +01:00
John Beard
1fd503bf58
Move DIRECTION45 to common/geometry
...
This class is useful for generic geometric layout of 45-deg constrained
line chains, not only in the PNS router.
2017-03-22 15:23:09 +01:00
John Beard
d99fbddc22
Enable angle snap for pcbnew GAL ruler tool
...
This uses the two-point geometry manager to split the logic of the ruler
geometry and the preview item display. This allows the ruler to use that
manager's angle snap feature.
2017-03-22 10:59:47 +01:00
John Beard
b8edecc10f
Move cursor shape flag into GAL settings
...
The motivation here is to concentrate display options in the GAL display
settings, ready for removal of legacy canvases. Instead of having the
property as a member of the DRAW_FRAME, with the GAL canvas retreiving
it from there, it is now in the GAL_DISPLAY_OPTIONS struct, and both GAL
and legacy get it from there.
The options for setting cursor shape are then moved out of the general
options dialog, and into the GAL display options widget, where they can
be used in all GAL-aware programs.
GAL cursor shape works on GAL, but not legacy, so the option is now
available on OSX (but only affects GAL, and is labelled as such).
2017-03-22 10:24:48 +01:00
jean-pierre charras
5bd61d7eb6
Pcbnew fix: checking properties on error marker crashed pcbnew
...
Fixes: lp:1674671
https://bugs.launchpad.net/kicad/+bug/1674671
2017-03-21 16:44:56 +01:00
John Beard
ce731f8b62
Add GAL microwave tools
...
This adds the microwave tools to GAL in Pcbnew as a new tool:
MICROWAVE_TOOL.
Some new preview items are introduced to support this:
* TWO_POINT_GEOM_MANAGER for managing construction of two-point
geometries, such as that used to construct the inductor.
* CENTRELINE_RECT_ITEM a preview item to draw ractangle with a given
aspect ratio along a line (specified using a TWO_POINT_GEOM_MANAGER)
PCB_TOOL gets a generic event loops which should be useful for more
than just microwave tools:
* doInteractiveItemPlacement() - handles event loops that wait for a
click, create an item on click and then allow moving it
around/flipping, etc.
Fixes: lp:1531323
* https://bugs.launchpad.net/kicad/+bug/1531323
2017-03-20 16:10:51 +01:00
Tomasz Włostowski
77c1b1b4ea
Refresh vias geometry when switching via display mode
...
Fixes: lp:1674096
* https://bugs.launchpad.net/kicad/+bug/1674096
2017-03-20 12:06:56 +01:00
John Beard
5f303f7b25
Enhance Pcbnew arc construction
...
This adds a richer overlay to the arc-by-three-points tool in Pcbnew,
including more guide-lines and a live display of radius and angle.
Also included is ability to go back to the previous step (if setting end
angle, you can go back to setting start point, etc) using Backspace, and
Ctrl snaps the start/end angles to 45 degree multiples.
This adds new classes
* MULTISTEP_GEOM_MANAGER: represents a generic "geometry manager" that
builds up some geometrical construction based on a sequence of points.
Used by:
* ARC_GEOM_MANAGER: handles the logical flow of constructing an
arc by centre-point, set radius, set angle. This moves the logic out
of the Pcbnew DRAWING_TOOL event loop in drawArc().
* ARC_ASSISTANT: graphical overlay to communicate current arc shape to
the user during the drawing process
2017-03-17 20:56:54 +01:00
Tomasz Włostowski
2f730cad81
EDIT_TOOL: restore cursor position on exit
...
Fixes: lp:1671564
* https://bugs.launchpad.net/kicad/+bug/1671564
2017-03-14 10:54:58 +01:00
Maciej Suminski
fe4f02f5b9
Coverity fixes
...
CIDs:
- 153097
- 157120
- 157119
- 155148
- 155146
- 153103
- 153099
- 153095
- 153087
- 153086
2017-03-11 22:20:08 +01:00
Jon Evans
082b8dd2a9
Refactor BRIGHT_BOX to common so it can be used by other programs
2017-03-11 21:38:01 +01:00
John Beard
8c3b8ee693
Add a ruler tool to pcbnew GAL
...
This allows to measure between features on a PCB. It uses a preview
EDA_ITEM in common, but due to the use of the IDs, it's currently
Pcbnew/Modedit only.
This also adds several "utils" for graphical functons useful when
drawing preview items on GAL canvases.
Fixes: lp:1467313
* https://bugs.launchpad.net/kicad/+bug/1467313
2017-03-10 16:21:44 +01:00
John Beard
9c08873210
Make SELECTION_AREA a generic overlay item
...
This simplifies the (already simple) SELECTION_AREA class. It is also
moved into KIGFX::PREVIEW and put in the common library, where it can be
reused by other GAL-aware tools (not just in Pcbnew) in future.
2017-03-10 16:21:44 +01:00
Maciej Suminski
62235348d1
Use GAL axes instead of a ORIGIN_VIEWITEM in module editor
2017-03-08 10:35:51 +01:00
Maciej Suminski
3174573361
Removed code resetting VIEW_CONTROLS settings
...
As the VIEW_CONTROLS settings are managed for each tool,
there is no need to restore the settings to initial state
when a tool is finished.
2017-03-06 15:04:27 +01:00
jean-pierre charras
7a120ad698
selection_tool.* add comments and use better names for 2 similar methods.
2017-03-04 17:35:34 +01:00
jean-pierre charras
5b3d7962bb
Fix questionable code and memory leak.
2017-03-04 17:35:34 +01:00
jean-pierre charras
101a600be6
Fix coding style issue and a minor other issue.
2017-03-04 17:35:34 +01:00
Tomasz Włostowski
966052272f
Coding style fixes
2017-03-03 20:27:05 +01:00
Tomasz Włostowski
cc3d79f932
Reworked selection passing mechanism in SELECTION_TOOL.
...
- The tools can now specify if the items in the selection must be editable/
deletable. This is groundwork to be able to select/delete DRC markers, which can't
otherwise be edited.
- Fixed disappearing of selected objects
2017-03-03 20:26:34 +01:00
Jon Evans
88f7c55d95
Move ZoomFitScreen and ZoomPreset from PCBNEW_CONTROL to COMMON_TOOLS
...
BOARD::GetBoundingBox() now directly calls BOARD::ComputeBoundingBox()
and there is a new method BOARD::GetBoardEdgesBoundingBox() used for
call sites that needed to use ComputeBoundingBox( true ) in the past.
This allows COMMON_TOOLS to implement ZoomFitScreen without knowledge
of the BOARD class.
2017-03-03 13:28:19 +01:00
Kristoffer Ödmark
dda51ab550
CrossProbes Schematics from eeschema to pcbnew
...
Adds a similar crossprobe as modules has in pcbnew. When clicking a
sheet in eeschema, the items that are exclusive in that scheet will be
selected in pcbnew if using the GAL canvas.
2017-03-03 07:25:32 -05:00
Kristoffer Ödmark
69a649c093
Refactored out the function that selects items based on the sheetname
2017-03-03 07:21:41 -05:00
Maciej Suminski
906ee77dbf
Fixed VIEW_ITEM memory leaks
2017-03-02 23:57:13 +01:00
Chris Pavlina
586c8f0feb
Fix signed/unsigned compare warning
2017-03-02 14:46:19 -05:00
Maciej Suminski
35c7974a96
Enable grid snapping when dragging items (GAL)
...
Fixes: lp:1668077
* https://bugs.launchpad.net/kicad/+bug/1668077
2017-03-02 15:21:49 +01:00
Tomasz Włostowski
4a911e0790
Highlight net tool in GAL now cross-probes to EEschema if clicked on a pad
...
Fixes: lp:1663767
* https://bugs.launchpad.net/kicad/+bug/1663767
2017-03-02 14:43:37 +01:00
Maciej Suminski
275ba503d1
Fix drawing arcs on Edge.Cuts layer
...
Fixes: lp:1666822
* https://bugs.launchpad.net/kicad/+bug/1666822
2017-03-02 13:52:36 +01:00
Maciej Suminski
a5ac165c4b
Make 'Enumerate Pad' tool more user friendly
...
Effects of enumeration are shown instantly, instead of after accepting
the changes.
2017-03-02 12:34:19 +01:00
Jon Evans
fd4e2b042c
Refactor SELECTION, SELECTION_CONDITIONS, and context menus to common
...
SELECTION now holds EDA_ITEMs not BOARD_ITEMs so various places had to
change to casting the selected items to BOARD_ITEMs.
Fixed compilation warnings on clang (Tom)
2017-02-28 14:47:20 +01:00
John Beard
a0df0f7f06
When filling/unfilling zones, create undo points in GAL
...
This is a feature which is apparently not available in legacy, but the
undo points created in GAL do work in legacy mode.
2017-02-27 18:00:51 +01:00
John Beard
796f3219d0
Draw zone hatching in GAL
...
This just uses the same hatch lines that are built into the zone as
legacy.
They are always drawn, even when there is a fill, as if the fill
doesn't reach the corners, the hatches can be seen.
Fixes: lp:1487043
* https://bugs.launchpad.net/kicad/+bug/1487043
2017-02-27 18:00:46 +01:00
John Beard
c001c6114f
Add cancel interactive tool action to GAL
...
This is used to provide menu entries that allows cancellation of
interactive drawing and routing tools without needing the keyboard.
It is provided in the drawing tools and the router tool.
The cancel event doesn't have any new functionality (e.g. track rip-up
for the PNS router - lp:1448460), this just adds it to the menu, where
it behaves the same as an Escape keypress.
2017-02-24 10:37:07 +01:00
Maciej Suminski
887f2b2a70
Adjusted "Select" context menu conditions
...
Shows "Select" submenu when there is at least one item selected.
It is necessary to use "select same sheet" and selection filter
effectively.
2017-02-23 10:50:38 +01:00
John Beard
c6046d6da2
Add selection filter dialog to GAL
...
Fixes: lp:1535805
* https://bugs.launchpad.net/kicad/+bug/1535805
2017-02-23 10:50:38 +01:00
Jon Evans
4c83b0a94d
Move TOOL_ACTIONs to their corresponding tools; create COMMON_TOOLS
...
Some grid/zoom tools are left in PCBNEW_CONTROL because they currently
depend on Pcbnew-specific class members. Once refactoring is done to
make it possible to use all zoom and grid controls outside of pcbnew,
these last tools can be moved to common to match their ACTIONs.
2017-02-22 10:32:48 +01:00
Jon Evans
167f45ca2b
Refactor COMMON_ACTIONS into a base and derived class
...
New virtual class ACTIONS is added as a member to EDA_DRAW_FRAME so
that the TOOL_DISPATCHER can have access to the appropriate derived
version of TranslateLegacyId()
2017-02-22 10:32:48 +01:00
John Beard
a8eea6155a
Move bitmaps.h out of base_struct.h
...
bitmaps.h was included in nearly every file in the project due to it
being included by base_struct.h
Only about 130 files actually use the XPM definitions defined there, and
many of those already included bitmaps.h themselves, or via
menu_helpers.h. However, touching bitmaps.h would result in over 400
rebuilt files for pcbnew alone.
This commit moves the bitmap-related types like BITMAT_DEF out to a new
header, which is still included by base_struct.h, which is less
avoidable for now, it's it's used in the interface.
The icon list is still in bitmaps.h. This has the side effect that's
it's now easier to automatically generate this file.
Many classes in pcbnew and eeschema needed some functions moved
to the implementaitons from the headers too.
2017-02-21 09:50:15 -05:00
Maciej Suminski
6fdccc1829
PAD_TOOL: enable 'Apply' after copying a pad
2017-02-20 11:09:00 +01:00
John Beard
2fa17b4460
Put pad enumerate tool in PAD_TOOL submenu
...
Prior to this, it was in the top level of the selection
menu, and was always shown, even if the module editor
didn't have a loaded footprint.
2017-02-20 11:08:34 +01:00
John Beard
ca91c27852
Adjust pad sub-menu enablements
...
The apply settings and push settings options now take account of the
validity of the global pad settings when deciding whether to show or
not.
Global pad push now requires a source pad and doesn't push from the
global pad setting when there is no selection.
The whole submenu is hidden when there are no enabled items.
Fixes: lp:1664016
* https://bugs.launchpad.net/kicad/+bug/1664016
2017-02-20 11:08:34 +01:00
Julius Schmidt
877a65dcc7
Fix ratsnest calculation for pads connected with zones (GAL)
...
This patch fixes a problem with GAL where zones are ignored in ratsnest
calculation.
The problem is that calling RN_DATA::Update on a zone with no polygons
(an unfilled zone) will remove the zone successfully, but then
RN_DATA::Add is a no-op.
From this point on, because ::Update refuses to work on items that have
not been ::Add'ed, the zone is removed entirely from ratsnest
calculation and will only be reconsidered once it is explicitly ::Add'ed
again.
The fix is to explicitly create an empty RN_ZONE_DATA object for every
zone that is ::Add'ed.
A second problem is that the point editor forgot to call
RN_DATA::Recalculate after calling Fill_Zone.
Fixes: lp:1537120
* https://bugs.launchpad.net/kicad/+bug/1537120
2017-02-14 00:39:41 +01:00
Kristoffer Ödmark
37c086896e
Enables selection of components and tracks on same sheet.
...
Modifies the selection menu to be adaptive and disable selection options
that are not possible.
Adds a new selection option that is only available when selecting
modules, this tool will select all footprints on the same sheet level or
belonging to subsheets. It will also search for nets that are only
connecting between modules on the same sheet or lower and select every
segment and via belonging to it.
2017-02-11 07:33:49 -05:00
Maciej Suminski
95794df088
Code formatting
2017-02-10 23:23:56 +01:00
John Beard
728349ea12
Add similar zone tool in GAL
...
This action launches the normal interactive zone tool, but re-uses the
settings from an existing zone, based on a flag passed to the main zone
function.
2017-02-10 23:23:55 +01:00
John Beard
abe83b54ae
Add zone cutout tool to GAL
...
When activated, the zone interactive editor is launched with a flag. The
drawn zone is then used to modify the existing zone at the end of the
action.
2017-02-10 23:23:55 +01:00
John Beard
d37586aeaf
Refactor GAL dialog prompt for new zone settings
...
Break a chunk of the new zone tool out into a separate function to keep
the code clear. When zone cutouts and similar zone tools are added,
they'll get the settings from existing zones.
This commit now used std::unique_ptr for the temporary zone item, which
simplifies handling of the ownership of that item.
2017-02-10 23:23:55 +01:00
John Beard
1f9c483535
Allow delete whole track in GAL
...
This commit wires up the as-yet-unused "remove alternate" tool action
and uses it to select copper connections (normally 'U') before deleting
segments.
THis also reverses the sense of Delete and Backspace (Delete used to be
'remove' and Backpace was 'remove alt', now it is reversed). This means
that backspace is the key that removes a segment and Delete removes the
track. This is the same as legacy behaviour. Other delete actions are,
for now, the same between Delete and Backspace.
Fixes: lp:1517213
* https://bugs.launchpad.net/kicad/+bug/1517213
2017-02-10 22:42:55 +01:00
John Beard
0cd121049f
Allow selectConnection/Copper/Net on multiple items
...
The previous behaviour was to act on only the first item in the
selection. The new behaviour is to act on every eligible item (in this
case, tracks and vias).
2017-02-10 22:42:55 +01:00
Aurabindo J
112c10fbd9
Pcbnew: Update Ratsnest immediately after rotation/flip/mirror
...
Provide a visual feedback to the user how each rotation
will affect the routing by immediately reflecting the
change in ratsnest orientation.
Signed-off-by: Aurabindo J <mail@aurabindo.in>
Fixes: lp:1663488
* https://bugs.launchpad.net/kicad/+bug/1663488
2017-02-10 22:25:47 +01:00
jean-pierre charras
dd5b024903
Pad export/import settings functions: remove duplicate code.
2017-02-10 20:44:35 +01:00
jean-pierre charras
9d43817db8
Make a debug message not translatable.
2017-02-10 20:44:35 +01:00
Maciej Suminski
5f90c0e8b8
Capitalized menu labels to follow the UI policy
2017-02-10 00:08:48 +01:00
John Beard
bed0ad142d
Add zone duplicate onto layer to GAL
...
This adds it into the PCB_EDITOR_CONTROL tool, alongside the zone merge
tool.
2017-02-09 12:50:48 +01:00
John Beard
7045ed92fb
Add CCW rotation to GAL canvas
...
This makes "rotate" into two separate TOOL_EVENTs, which each have a
"multiplier" parameter.
Also added is a namespace for 'free functions' that use TOOL_EVENT
public interfaces (perhaps with other inputs too) to centralise some
decision-making and calculations.
Fixes: lp:1660731
* https://bugs.launchpad.net/kicad/+bug/1660731
2017-02-09 12:50:47 +01:00
Maciej Suminski
a3e16988be
Remove shadow of drawn arcs after undoing them (GAL)
2017-02-09 12:19:16 +01:00
Maciej Suminski
7806cb7bca
Drag tracks/vias menu entry (GAL)
2017-02-09 12:03:28 +01:00
Maciej Suminski
a16586756f
Moved EDIT_TOOL::hoverSelection() code to SELECTION_TOOL::CursorSelection()
2017-02-09 12:03:28 +01:00
Maciej Suminski
2a9c6a6283
Minor DRAWING_TOOL refactor
...
Automatically switch to a drawing layer, if a copper layer was
preselected. No annoying message boxes.
Do not deactivate the tool on layer switch.
Replaced setting updatePreview with direct calls to VIEW::update
Line width is kept in m_lineWidth for all shapes.
2017-02-09 12:03:28 +01:00
Maciej Suminski
6c5e5c27e2
Fixed bounding box computation for EDIT_POINTS class
2017-02-09 12:03:28 +01:00
Nick Østergaard
1cb171acf0
Rename bitmaps to match the new pad tool naming
2017-02-07 23:08:09 +01:00
Nick Østergaard
45a8c2e27f
Rename pad copy actions in the pad tool
...
Import becomes apply and export becomes copy.
The term "push" to apply settings globally has not been renamed.
Swap the order of the copy and apply in the context menu.
2017-02-07 23:08:09 +01:00
John Beard
cdc392867a
When 'Find-moving' modules in GAL, pick up at origin
...
Perviously, the generic snapping code would choose the nearest of the
module origin and origin of each module pad when selecting a module
using the "Find module" tool (T hotkey).
This is unlikely to be expected unless the cursor is already near the
correct pad or the module centre.
New behaviour is to pick up by module origin first, then
select the module. This means that the cursor is already nearest the
main module origin anchor, so that is what will be used.
Fixes: lp:1571214
* https://bugs.launchpad.net/kicad/+bug/1571214
2017-02-07 11:19:38 -05:00
jean-pierre charras
9a6e5734bf
Minor fixes: fix UI capitalization issues, and better comment in a menu.
2017-02-04 10:21:41 +01:00
Maciej Suminski
8dadc18429
Check if selection is not empty before modifying it in EDIT_TOOL
...
Fixes: lp:1661311
* https://bugs.launchpad.net/kicad/+bug/1661311
2017-02-02 23:32:11 +01:00
John Beard
fb6de689b9
Factor an EDIT_TOOL selection routine
...
Also add some commentary to other EDIT_TOOL selection functions.
2017-02-01 09:57:58 +01:00
John Beard
45b60b1bb0
Add exchange modules GAL tool (in EDIT_TOOL)
...
Includes tool action and the transistion binding in EDIT_TOOL.
Fixes: lp:1541460
* https://bugs.launchpad.net/kicad/+bug/1541460
2017-02-01 09:57:36 +01:00
Maciej Suminski
9627f063ff
Added missing handler for 'activate' events in EDIT_TOOL
...
Fixes: lp:1660306
* https://bugs.launchpad.net/kicad/+bug/1660306
2017-01-30 14:05:44 +01:00
Maciej Suminski
4b9243e0bf
Allow registering TOOLs in any order.
2017-01-30 13:21:43 +01:00
John Beard
019b949646
Pre-select highlighted net in zone create dialog
...
Applies in GAL mode (legacy mode already did this).
Fixes: lp:1482866
* https://bugs.launchpad.net/kicad/+bug/1482866
2017-01-29 23:46:41 +01:00
Maciej Suminski
24d63fb5d9
Removed redundant calls to wxUpdateUIEvent handlers
...
This is done automatically by wxWidgets
and does not need to be called explicitly.
2017-01-27 15:39:51 +01:00
Maciej Suminski
750eed7ff5
Renamed MODULE_TOOLS to MODULE_EDITOR_TOOLS
2017-01-27 15:39:41 +01:00
John Beard
0f5bfdb156
Add mirror tool action for GAL module editor
...
This is basically a simple clone of the legacy tool with a few minor
tidy-ups for GAL mode.
Fixes: lp:1619301
* https://bugs.launchpad.net/kicad/+bug/1619301
2017-01-25 20:17:28 +01:00
John Beard
beed72ffbb
Add pad import/export/push to GAL canvas
...
This implements the pad import/export to the board's master pad setting
in the GAL canvases.
Implemented as a new GAL tool: PAD_TOOL.
It uses the same dialog, which has been split out into its own files in
pcbnew/dialogs, rather than along with frame methods in
pcbnew/globaleditpad.cpp.
Fixes: lp:1619304
* https://bugs.launchpad.net/kicad/+bug/1619304
2017-01-25 20:17:28 +01:00
Dick Hollenbeck
0c459ced97
EDA_TEXT object refactor.
...
Make all EDA_TEXT data private and rename accessors to avoid function
name collisions in derived classes.
Overload EDA_TEXT's SetTextAngle() and SetEffects() in TEXTE_PCB.
Add support for preserving Reference text position, size, orientation
during a netlist import into a BOARD, as well as the one off footprint
update dialog.
2017-01-25 08:03:32 -05:00
Maciej Suminski
1102eb0d0d
Store menu titles in CONTEXT_MENU
...
Previously a title had to be provided when a submenu was added,
but this led to storing the same title in many places.
2017-01-23 14:52:11 +01:00
Maciej Suminski
6362e5cf0f
Added create() method for SELECTION_MENU
2017-01-23 14:52:11 +01:00
Maciej Suminski
59346a6ef1
Alternative way for setting icons for align/distribute actions.
2017-01-23 11:41:00 +01:00
Maciej Suminski
f0a7c1715e
Fixed warning 'cast pointer from integer of a different size'
2017-01-23 11:40:59 +01:00
Maciej Suminski
682da70a86
Fixed the issue of creating and event handling in context menus (GAL).
...
When creating a copy of CONTEXT_MENU, always a CONTEXT_MENU instance was
constructed, whereas an inherited type should be used. Solved with
CONTEXT_MENU::create() that has to be overridden in inheriting classes.
Event & update handlers are now virtual functions, instead of setting
the handlers with Set{Event,Update}Handler().
2017-01-23 11:40:59 +01:00
John Beard
6a1b068dd2
Allow editing locked modules in modedit
...
Since you have to explicitly enter the module editor with the menu or
hotkey, allowing editing of module sub-parts once in should not cause
any unexpected changes.
Fixes: lp:1591625
* https://bugs.launchpad.net/kicad/+bug/1591625
2017-01-22 20:31:59 -05:00
jean-pierre charras
2de913797a
Fix a UI policy issue. Very minor cosmetic change: give same look to Zoom and Grid selection in 2 menus.
2017-01-20 11:35:24 +01:00
jean-pierre charras
e710b8b370
Fix incorrect parameter type when appending zoom and grid menuitems
2017-01-19 20:26:57 +01:00
Maciej Suminski
e5fbd0c442
Fixed crash upon finished zone drawing in GAL.
...
In principle, this patch reverts 2eefa117
. The difference is removal of
one unused method (SELECTION::clear) and fixing hidden overloaded
virtual methods warnings.
Fixes: lp:1657569
* https://bugs.launchpad.net/kicad/+bug/1657569
2017-01-18 22:06:23 +01:00
Maciej Suminski
75fb04d650
TOOL_ACTIONs are handled with transitions, no handlers needed in the event loops
...
There used to be a number of TOOL_ACTIONs that had entries both in
SetTransitions() and the event loop, which seemed redundant and
troublesome.
Now it is not necessary anymore, transitions setup is enough to execute
associated actions.
2017-01-18 14:20:39 +01:00
Maciej Suminski
2eefa11732
SELECTION has-a VIEW_GROUP instead of being-a VIEW_GROUP
...
Fixed numerous warnings caused by hidden overloaded methods
provided in both classes (Add(), Remove(), etc.)
2017-01-18 13:22:41 +01:00
Maciej Suminski
c758f434c0
Removed unused fields in VIEW & ANTIALIASING_SMAA classes
2017-01-18 13:22:18 +01:00
Maciej Suminski
ee2b1ac321
Shortened code using VIEW & PAINTER classes in MODULE_TOOLS methods
2017-01-18 13:22:18 +01:00
Maciej Suminski
004ca3c6f9
Fixed a memory leak in VIEW_ITEM (proper way of doing 9bc2bb2
)
...
The problem with simple deleting VIEW_ITEM_DATA upon VIEW_ITEM removal was
caused by the default copy constructors that copied pointers.
Once a copy of an item was destroyed, the VIEW_ITEM_DATA has been
destroyed, effectively invalidating m_viewPrivData for the other item.
2017-01-16 14:57:50 +01:00
John Beard
c50d28d94d
Access tools' TOOL_MENUs rather than CONDITIONAL_MENUs
...
This means that non-top-level tools, for example EDIT_TOOL and
PCB_EDITOR_CONTROL can submit their own menus to the top-level tool's
TOOL_MENU, which will then retain a reference to it and make it
available for the CONTEXT_MENU that is shown.
2017-01-12 14:34:03 +01:00
John Beard
d7db84e282
Break out tools' common menu functions and ownership
...
Add a class TOOL_MENU, which provides a management class for a
CONDITIONAL_MENU and a set of CONTEXT_MENUs. The aim of this is to
provide a central place where all TOOL_INTERACTIVEs can get a "basic"
context menu that either they or other tools can register new items and
sub-menus against.
This means that "top-level" tools no longer need to manage the lifetimes
of any CONTEXT_MENUs that they add, and can also delegate simple menu
display functions.
2017-01-12 14:33:57 +01:00
John Beard
378f5cce33
Don't show separator in Select tool if not needed
...
If the SELECTION_TOOL's Select... menu is not shown, the separator under
it should also not be shown, so use the same SELECTION_CONDITIONS to
enforce this.
2017-01-11 11:15:25 +01:00
John Beard
f1c5b9a9ae
Add context menu to GAL DRAWING_TOOL, including the zone menu
...
Includes a tiny class for scoped set-reset of a variable, which is used
here to store the current drawing mode.
Fixes: lp:1218629
* https://bugs.launchpad.net/kicad/+bug/1518629
2017-01-11 10:41:08 +01:00
John Beard
6baf0edc08
Line segments obey 45 degree preference in GAL
...
The GAL line segment tool now listens to the global line segment 45
degree locking preference, with Ctrl used to invert the behaviour. The
behaviour therefore follows the setting normally, and the user can
override when needed with Ctrl.
Fixes: lp:1635718
* https://bugs.launchpad.net/kicad/+bug/1635718
2017-01-11 09:57:55 +01:00
jean-pierre charras
2972f6fbc7
Fix shadowed local variable
2016-12-20 17:51:55 +01:00
jean-pierre charras
9be5398cd2
Add bitmaps to Align/distribute menu ans menu items
2016-12-20 17:50:29 +01:00
Tomasz Włostowski
b20323dc63
SELECTION: fixed pointer arithmetic-related segfault in operator[]
2016-12-20 12:01:09 +01:00
Maciej Suminski
c8676db84e
Fixed panning & cursor control with arrow keys in flipped view
2016-12-12 16:45:52 +01:00
Maciej Suminski
f94c10b453
Fixed a warning in release builds
2016-12-12 16:45:52 +01:00
Maciej Suminski
89055c4425
Code formatting
2016-12-12 16:45:52 +01:00
Tomasz Włostowski
3f7c5a0845
fixed post-rebase issues
2016-12-12 16:45:52 +01:00
Tomasz Włostowski
1c1f4e9a50
Refactoring of VIEW/VIEW_ITEM classes:
...
- Remove dependency of EDA_ITEM on VIEW
- VIEW_ITEM is now a pure virtual interface
2016-12-12 16:45:52 +01:00
Tomasz Włostowski
27a10e8597
Multiple simplifications to GAL tools in PCBNew:
...
- Finalize transition to BOARD_COMMIT (removed all remaining uses of PICKED_ITEMS_LIST) and implicit view/ratsnest updates
- Simplified SELECTION class, it now can be directly added to a VIEW
- Removed unnecesary casts and templates
- Introduced C++11 features (range based for, lambdas) where they improve code readability
- Added non-undoable COMMITs, which can be used to propagate change notifications to interested listeners (e.g. ratsnest/view)
2016-12-12 16:45:52 +01:00
jean-pierre charras
bcfc1e7a3f
fix shadowed local variables
2016-11-25 16:00:42 +01:00
jean-pierre charras
d167407d1a
Pcbnew: add "edit all tracks and vias" command in edit menu.
...
Previously, this command was accessible only by right clicking on a track and only in the legacy mode.
2016-10-14 21:07:39 +02:00
Simon Richter
b0f9864bc4
Clean up warnings from exception handlers
...
The exception objects caught are either not referenced at all, or only in
debug builds. This avoids the warnings for the unused variables.
2016-10-10 11:08:49 -04:00
jean-pierre charras
502d0a38be
Fix a missing parameter initialization (arc angle) in footprint DXF import
2016-09-30 11:11:52 +02:00
Chris Pavlina
2b7e6e73ec
Fix uninitialized variable in drawing_tool.cpp
2016-09-30 09:04:18 +02:00
Maciej Suminski
18695751e8
Fixed a footprint editor crash on DXF import
...
Fixes: lp:1627422
* https://bugs.launchpad.net/kicad/+bug/1627422
2016-09-27 13:36:52 +02:00
Simon Richter
ad088db6d2
Add more "override" markers.
2016-09-25 13:59:41 -04:00
Simon Richter
59c81976dc
Explicitly mark overriding functions.
2016-09-24 14:53:15 -04:00
decimad
6a9c1cb6a1
Split the undo/redo event into the two stages "pre" and "post" for convenient synchronization of dependent state.
2016-09-23 13:29:25 +02:00
Gustav Bergquist
061a7b8450
Cast TOOL_EVENT parameter type to intptr_t
2016-09-21 21:22:19 +02:00
decimad
ee3d75f273
Add coroutine call invocation context to identify the main stack frame.
...
Run the text draw-tool on the main stack frame.
Fixes: lp:1547282
* https://bugs.launchpad.net/kicad/+bug/1547282
2016-09-21 11:56:40 +02:00
Dick Hollenbeck
9ad49dc2d1
Split IO_ERROR out of richio.* and store Problem() and Where() separately
2016-09-20 11:56:18 -04:00
Maciej Suminski
4bb16afc9e
Fixed text placement tool in FP editor
...
Fixes: lp:1625304
* https://bugs.launchpad.net/kicad/+bug/1625304
2016-09-20 10:19:33 +02:00
Maciej Suminski
8590809c7a
Selection tool fix to enable selecting overlapping items
...
Fixes: lp:1499022
* https://bugs.launchpad.net/kicad/+bug/1499022
2016-09-15 13:25:08 +02:00
Maciej Suminski
edf64afa3e
Fixed freezes after appending a board.
2016-09-12 13:45:57 +02:00
Maciej Suminski
6701b80f77
Converted global deletion, global text size setting & module exchange to BOARD_COMMIT.
2016-09-12 13:45:57 +02:00
Maciej Suminski
91ea4242ca
Fixed freeze after adding a module
2016-09-12 13:45:57 +02:00
Maciej Suminski
303a6928ab
Changed pointEditorUpdate to editModifiedSelection.
2016-09-12 13:45:57 +02:00
Maciej Suminski
ad1111748e
Removed 'undo inhibit' in EDIT_TOOL
2016-09-12 13:45:57 +02:00
Maciej Suminski
5a1f52bf30
Modified tools to use BOARD_COMMIT.
2016-09-12 13:45:57 +02:00
Maciej Suminski
b815ea7865
Removed remaining m_editModules flags.
2016-09-12 11:50:06 +02:00
Maciej Suminski
9861b35707
EDIT_TOOL::hoverSelection() works with current selection.
2016-09-12 11:50:06 +02:00
Maciej Suminski
b661993427
Removed SELECTION_TOOL::EditModules()
...
as there is already PCB_TOOL::SetEditModules() and
SELECTION_TOOL::m_editModules shadows PCB_TOOL::m_editModules.
2016-09-12 11:50:06 +02:00
Tomasz Wlostowski
a5b7a7ca0a
Changed DuplicateAndAddItem() to parametrized Duplicate().
2016-09-12 11:50:06 +02:00
Tomasz Wlostowski
1924507001
Added a PCB_TOOL subclass.
2016-09-12 11:50:06 +02:00
Maciej Suminski
ff6bdeee4b
Removed a number 'if(m_editModules)' sections from pcbnew tools.
2016-09-12 11:50:06 +02:00
Maciej Suminski
1dd43d1d98
Unified undo buffer handling code for PCB & module editor.
...
Replaced UR_MODEDIT with UR_CHANGED.
2016-09-12 11:50:06 +02:00
Tomasz Wlostowski
0700178d07
P&S: enable delete & backspace shortcuts while router is active
2016-08-15 17:16:47 +02:00
Wayne Stambaugh
4ed346ea64
Eeschema: initial schematic I/O plugin.
...
* Factor out PROPERTIES object from the PCB plugin code and move it into
common so it can be used by both the Pcbnew and Eeschema plugins.
* Add schematic I/O plugin manager for loading and saving schematic and
component library files.
* Add initial attempt at a parser for current schematic file format. This
parser will be infinitely more strict than the current parser which is very
forgiving in what it parses.
* Make minor changes to the base bitmap class to support the new parser.
* Add find root sheet support to sheet object to allow fetching the root
sheet from any sheet in the stack.
2016-07-06 05:22:56 -04:00
Simon Richter
1b2fd6a382
Replace BOOST_FOREACH with C++11 range based for.
2016-06-29 16:07:55 -04:00
Simon Richter
da5699de0a
Replace boost::shared_ptr with std::shared_ptr.
2016-06-29 11:09:55 -04:00
Michael Steinberg
fde12ebd25
Replace boost::function and boost::bind with their std:: counterparts
2016-06-29 12:23:11 +02:00
Chris Pavlina
5285962775
Remove option to not show footprint ratsnest when moving
...
This option only exists in legacy, with no real plan to port it to GAL. Nobody
seems to use this; there isn't really much of a point to it. Bye!
2016-06-11 22:34:07 -04:00
Chris Pavlina
8c01318141
Add zoom-to-selection tool
2016-06-08 07:19:53 -04:00
jean-pierre charras
a4658ab6be
Fix a few compil warnings (not used vars, shadowed local vars)
2016-06-01 14:22:05 +02:00
jean-pierre charras
e2cc78b2b5
Code cleanup: remove dead code (some removed methods were broken), and update or add comments.
2016-06-01 11:28:07 +02:00
Simon Richter
96ec9db5d6
Add missing C++ stdlib headers
...
The GCC standard library headers often include other headers, which makes
some code compile that forgets to include several headers.
2016-05-28 12:46:29 -04:00
Maciej Suminski
a30c8d7848
Coverity fixes.
2016-05-11 11:18:27 +02:00
Chris Pavlina
445db7da58
Fix uninitialized fields
...
Coverity: CIDs 102698, 147347, 147349, 147350
2016-05-10 22:36:23 -04:00
Maciej Suminski
ad66af66af
Highlight an item when context menu is displayed (GAL).
2016-05-09 10:41:11 +02:00
Maciej Suminski
ce8f400645
Added menu for locking tracks & vias (GAL).
2016-05-09 10:29:06 +02:00
Maciej Suminski
dd10c577ec
Added SELECTION_CONDITIONS::OnlyTypes() variant that takes KICAD_T[]4
2016-05-04 18:35:20 +02:00
Maciej Suminski
06637a17d6
Added 'Reset Grid Origin' hot key (GAL).
2016-05-04 14:59:14 +02:00
Maciej Suminski
b735f57fa4
Refresh pads after enumeration in Footprint Editor.
2016-05-04 14:06:10 +02:00
unknown
b8a91c7a98
Enhancements in Create array tool (bad parameters detection and disable parms when not applicable)
2016-04-02 14:52:29 +02:00
Chris Pavlina
60d93d024c
pcbnew: don't pick up selection after unsuccessful Duplicate
...
Following rev 6627 (git 2777182
), if a non-duplicatable item was the object of
a Duplicate action, the original item would be picked up, potentially
misleading the user into thinking something was actually duplicated.
2016-03-18 07:15:50 -04:00
jean-pierre charras
b237d81b75
Create Array dialog: some fixes:
...
* No initial copied object changed (this was a serious bug to modify these objects. Previous version modified references and other texts using a very stupid algorithm).
It also fixes bug 1549231
* only new pads are numbered (therefore renumbering is used only in footprint editor)
* remove not working and useless feature in circular array: now only use number for pads (others options using alphabetical letters are removed: did not work corectly, and were useless)
* a more clear option is used to choose if the pads are numbered from a choosen value, or from the first avaible value
* Adding a warning messsage if a parameter is incorrect.
2016-03-07 08:13:06 +01:00
Tomasz Wlostowski
5349eb4179
fixed segfault in selection tool
2016-02-08 15:12:59 +01:00
Tomasz Wlostowski
ee3418e90b
One-click PCB update improvements
...
- Fix repetitive undo/redo segfaults & assertions.
- Add Update menu entry on PCB side.
- Fix Python build error
- Add spread footprints after updating
2016-01-29 15:43:40 +01:00
Maciej Suminski
1d39a2a44b
Highlight net tool is not deactivated after a single use.
2016-01-29 10:56:29 +01:00
Maciej Suminski
e51adaeefd
Highlight a net when crossprobing with eeschema and highlight net tool is enabled.
2016-01-25 16:16:05 +01:00
Maciej Suminski
75c8094b5a
Make DRC markers not editable with the standard tools (GAL).
2016-01-20 15:22:09 +01:00
Simon Richter
da9ca2def2
Avoid cast from const_iterator to iterator
...
The standard library requires iterators passed to functions that modify the
container to be mutable iterators, but GCC's implementation accepts
const_iterator in some places where these are only used to mark a place,
but the actual modification happens through a different parameter.
As this breaks implementations that use the passed iterator to modify the
container (e.g. because they use a different data organization), this is
not portable; because we already have a non-const reference to the
container anyway, this is trivially fixed as well.
2016-01-17 12:31:00 -05:00
Simon Richter
ef582c07f3
Drop some debug output
...
This was apparently left in from debugging earlier, and should no longer be
needed. Since it uses a GCC extension, it makes compilation on others fail.
2016-01-17 10:59:17 -05:00
Simon Wells
a88e61a6e0
Fix uninitialized variable in PCBNEW_CONTROL::CursorControl
2016-01-11 17:12:49 -05:00
Simon Wells
712ff51d3f
Clarify assignment as conditional in EDIT_TOOL::Main
2016-01-11 17:12:11 -05:00
Simon Wells
dbb7b38bae
Delete unused variables in GRID_HELPER::AlignToSegment
2016-01-11 17:06:11 -05:00
Chris Pavlina
c44c076bdb
Fix coding style error in 6429
2016-01-07 17:33:31 -05:00
Johannes Agricola
07b73b9677
Properly set keepout flag for new zones in GAL
2016-01-07 14:39:21 -05:00
Maciej Suminski
203e8156a1
pcbnew asks before rotating/flipping a locked item (GAL).
2016-01-05 17:01:59 +01:00
jean-pierre charras
e175a96be4
Pcbnew: Enhancement: in Get footprint (hotkey 'T') : better footprint selector dialog.
2015-12-20 19:47:52 +01:00
Maciej Suminski
0caa47e73c
Fixed crash on undo pad placement in the footprint editor (GAL).
2015-12-15 13:39:53 +01:00
Cirilo Bernardo
2128594a85
Coding policy fixes: remove trailing white space.
2015-12-14 16:20:54 -05:00
Tomasz Wlostowski
72b0593fdb
Pcbnew: push and shove router fixes.
...
* Fix segfault caused by invalidation of the end item by
PNS_LINE_PLACER::UpdateSizes().
* GAL zone drawing tool updates the ratsnest after zone drawing is complete.
* Fixed performance issue in zones processing using strict simplification
only for the final filled area.
2015-11-18 09:35:17 -05:00
jean-pierre charras
21d700facc
Replace "module" by "footprint" in a few messages.
2015-11-17 17:18:00 +01:00
Thomasz Wlostowski
6e470ece1d
Pcbnew: fix push and shove router segfault bug.
2015-11-03 11:19:42 -05:00
Simon Wells
5bc6a55015
Changed behaviour so if the menu is closed without selection by pressing esc or clicking outside of the menu that the last highlighted option wont be selected
2015-10-08 02:32:36 +13:00
Maciej Suminski
db8560f055
Fixed crash when placing 45-degree lines in the footprint editor (GAL).
2015-10-01 15:52:45 +02:00
Maciej Suminski
25d5a2fbfb
Disable capture cursor & autopanning for tools in idle state (GAL).
2015-09-21 10:16:23 +02:00
jean-pierre charras
00cffb080e
Make call to DXF importer not possible if a footprint does not exist, also in GAL mode.
2015-09-13 18:44:07 +02:00
Maciej Suminski
6e23979253
Removal tool asks for confirmation only for modules (GAL).
2015-09-08 11:17:30 +02:00
Brian Sidebotham
34aab6f687
Add axis origin to the Footprint Editor to align with the Legacy canvas
2015-09-05 20:47:35 +01:00
Maciej Suminski
b1d241c271
Net highlighting mode is toggled when used on the same net (GAL).
2015-09-03 17:56:30 +02:00
Maciej Suminski
9f41fe0bda
Added a hot key for (un)locking modules (GAL).
2015-09-03 17:35:41 +02:00
Maciej Suminski
24e7f961b9
Fix a Coverity report (catches an unhandled exception).
2015-09-01 11:32:23 +02:00
Tomasz Wlostowski
0723ac5bef
enumeratePads: fix segfault when no module is loaded in the editor
2015-08-25 10:22:52 +02:00
Maciej Suminski
0cad702fc7
Fixed footprint editor crash on ref/val text layer change (GAL).
2015-08-15 16:00:34 +02:00
Henrik Nyberg
5486104e8d
Fixed the missing remove zone corner menu entry.
2015-08-15 15:28:48 +02:00
Henrik Nyberg
a6c94e26f6
Improved code for handling zone corner dragging (GAL).
2015-08-12 10:15:45 +02:00
Maciej Suminski
f43510739c
Append board in GAL.
2015-08-07 18:24:42 +02:00
Maciej Suminski
0bd85fd8d1
Fixed a minor memleak.
2015-08-07 18:20:49 +02:00
Maciej Suminski
5caa1523bd
Handling Coverity reports.
2015-08-07 17:07:06 +02:00
Maciej Suminski
2a93d083ee
More DXF import fixes.
2015-08-03 21:11:59 +02:00
Tomasz Wlostowski
9c2bcb2f3c
Fixed crash on right click on zone with GAL mode.
2015-08-03 11:53:58 +02:00
Maciej Suminski
e3cbfb0609
Better way of handling changes in EDIT_TOOL (GAL).
2015-07-31 17:40:19 +02:00
Maciej Suminski
cb629e0ad4
Fixed DXF placing problem (GAL).
2015-07-30 13:49:36 +02:00
Maciej Suminski
3049bc1d5f
Fixing SELECTION_TOOL heuristics, take #2 .
2015-07-30 13:49:35 +02:00
Maciej Suminski
4718b6d7c8
Code formatting.
2015-07-30 13:49:35 +02:00
Maciej Suminski
29cbaa206e
Fixed updating of Zoom & Grid context menus.
2015-07-30 13:49:35 +02:00
Maciej Suminski
094c286024
Fixed issues reported by Coverity.
2015-07-30 13:49:35 +02:00
Maciej Suminski
63b0e63152
Prevent 'select copper' & 'select trivial connection' from picking modules.
2015-07-28 17:33:18 +02:00
Maciej Suminski
c632f3db18
Update ratsnest on footprint change (GAL).
2015-07-28 17:33:18 +02:00
Maciej Suminski
5402bf0960
Allow zone drawing tool to start a new zone in the previous zone last point.
2015-07-28 17:33:18 +02:00
Maciej Suminski
55b09483df
Picker tool captures cursor by default.
2015-07-28 11:11:18 +02:00
Maciej Suminski
6983f90b9f
Align cursor to the grid when dragging multiple items (GAL).
2015-07-28 10:28:59 +02:00
Maciej Suminski
d010703eaf
Fixed cursor freeze in pcbnew (GAL).
2015-07-24 10:58:47 +02:00
Maciej Suminski
656790a672
Make module texts selectable if overlapping with module pads.
2015-07-24 09:42:46 +02:00
Maciej Suminski
74584e2081
Fixed crash on undo layer change in TEXTE_MODULE.
2015-07-24 09:42:46 +02:00
Maciej Suminski
d6bc33bd42
Removed a few more memory leaks and fixed crash on exit.
2015-07-24 09:42:46 +02:00
Maciej Suminski
982eee7905
Do not invoke PNS inline dragging when 'Duplicate' is run.
2015-07-24 09:42:45 +02:00
Maciej Suminski
f7fa0852b5
Fixed screen scrolling on zooming in/out.
2015-07-24 09:42:45 +02:00
Tomasz Wlostowski
591f54f540
DRAWING_TOOL: show cursor when placing text
2015-07-22 13:51:59 +02:00
Maciej Suminski
83171482b3
Fixed a memleak (CONDITIONAL_MENU).
2015-07-22 10:46:57 +02:00
unknown
40ccc0bedf
replace round() with KiROUND(), our function that is used almost everywhere for rounding, and detects int overflows in debug mode.
2015-07-17 10:26:48 +02:00
Maciej Suminski
27eafcb5c1
Fix erroneous cursor control with keys when grid size is less than one pixel with certain zoom levels.
2015-07-16 17:52:08 +02:00
Maciej Suminski
36d3d9f78e
Cursor warps to the drag origin (GAL).
2015-07-15 17:32:30 +02:00
Maciej Suminski
4b45146c46
Improvements to the SELECTION_TOOL heuristics & sanitization rules.
2015-07-15 14:08:52 +02:00
Maciej Suminski
6a6ea35335
Fixed assert on double 'Move' command invocation (GAL).
2015-07-15 14:08:52 +02:00
Maciej Suminski
59af7a96f8
Minor code cleaning.
2015-07-15 14:08:52 +02:00
Maciej Suminski
36d1818b54
Fixed snapping problem when commands are issued from the context menu (GAL).
2015-07-15 14:08:51 +02:00
Maciej Suminski
2752953f34
Merging for non-copper zones (GAL).
2015-07-15 14:08:50 +02:00
Andrew Zonenberg
561a962977
Fixed bug where "add text" tool in module editor did not update the toolbar radio buttons correctly
2015-07-11 17:03:50 -07:00
Andrew Zonenberg
6775cf392a
Removed leading space
2015-07-11 16:50:31 -07:00
Andrew Zonenberg
1ea566b59d
Fixed bug where GAL text tool was overzealously capturing the cursor when not necessary
2015-07-11 16:03:07 -07:00
Andrew Zonenberg
a3a0db9be9
Fixed bug where GAL module editor does not release mouse capture after exiting text tool
2015-07-11 15:31:01 -07:00
Maciej Suminski
ca27eeb5c7
Fixed "select copper connection".
2015-07-09 20:04:54 +02:00
Maciej Suminski
f0a1f6dd78
Hotkeys for selecting trivial or copper connection (GAL).
2015-07-09 17:11:34 +02:00
Maciej Suminski
825fe8e5de
F4 panning (GAL).
2015-07-09 17:09:34 +02:00
Maciej Suminski
33e1797116
Tracks & vias properties dialog.
2015-07-09 13:35:51 +02:00
Maciej Suminski
13739217b8
New SELECTION_CONDITION subclass (OnlyTypes).
2015-07-09 13:35:49 +02:00
Jon Neal
fdf5b821f0
Add centering cursor on zoom to GAL.
2015-07-09 10:18:27 +02:00
Maciej Suminski
df15be4f01
CONTEXT_TRACK_VIA_SIZE_MENU: generic context menu that displays track/via sizes.
2015-07-07 18:36:56 +02:00
Maciej Suminski
15e9e69ae0
Clicking with keyboard handles keyboard modifiers (GAL).
2015-07-07 18:36:52 +02:00
Maciej Suminski
e7099036d7
Fixed one key delay when moving items with arrow keys (GAL).
2015-07-07 18:36:50 +02:00
Maciej Suminski
1b4daade82
GRID_HELPER anchors for vias (GAL).
2015-07-07 18:36:32 +02:00
Maciej Suminski
453b05db09
One more zoom fit-to-screen fix (GAL).
2015-07-03 20:58:13 +02:00
Maciej Suminski
0cc6992d88
Double click finishes drawing (GAL).
2015-07-03 20:58:13 +02:00
Maciej Suminski
1b208e0a5e
Display info in the message panel if only one item was selected using area selection tool.
2015-07-03 20:58:12 +02:00
Maciej Suminski
3cb095b7c2
GAL canvases update status bar, message panel & zoom widget.
2015-07-03 20:58:12 +02:00
Maciej Suminski
891bd3d629
Do not show 'Properties' menu entry if there is more than one item selected (GAL).
2015-07-03 20:58:11 +02:00
Maciej Suminski
766da1e494
Code formatting.
2015-07-02 16:11:15 +02:00
Tomasz Wlostowski
0ade919a98
router: fix shortcut crash & inline dragging for inline dragging P&S
2015-07-02 16:10:07 +02:00
Tomasz Wlostowski
171d39c8d0
router: invoke interactive drag when dragging traces/vias in edit tool (disabled by default)
2015-07-02 16:09:56 +02:00
Maciej Suminski
51c0ae3480
Fixed cursor offset in GAL.
2015-07-01 03:46:42 +02:00
Maciej Suminski
b352ef9deb
Panning with keyboard (GAL).
2015-06-30 14:08:29 +02:00
Maciej Suminski
30b679ae5e
Cursor control with keyboard (GAL).
2015-06-30 14:08:24 +02:00
Maciej Suminski
b5ef511063
Fixed alignment to grid when there is a grid offset (GAL).
2015-06-30 14:08:03 +02:00
Maciej Suminski
5ca8e0b9d6
Fixed incorrect polygon finishing in 45-degree mode (GAL).
2015-06-30 13:55:30 +02:00
Maciej Suminski
15857f22ca
Fixed dragging offset in eeschema after crossprobing a multipart component in pcbnew GAL canvas.
2015-06-26 17:32:48 +02:00
Maciej Suminski
37db33cbca
Update cross hairshape (GAL).
2015-06-26 17:30:41 +02:00
Maciej Suminski
ac6a90afa3
Update ratsnest after properties are changed.
2015-06-25 17:36:57 +02:00
Maciej Suminski
09febe745d
Remove a corner from zone outline function (GAL).
2015-06-19 17:32:33 +02:00
Maciej Suminski
a988ebaabd
Zone merging (GAL).
2015-06-19 17:32:33 +02:00
Maciej Suminski
39ddb3e9ae
Two new selection conditions: same net & same layer.
2015-06-19 17:32:33 +02:00
Maciej Suminski
e91fdd0079
Removed redundant transition in SELECTION_TOOL.
2015-06-19 17:32:32 +02:00
Maciej Suminski
a16dd894d5
Show Place & Drill origin in GAL.
2015-06-18 17:51:54 +02:00
Maciej Suminski
28a270a328
Refactored grid origin point drawing (GAL).
2015-06-18 17:51:53 +02:00
Maciej Suminski
fa3d074ca4
Find command zooms in found items (GAL).
2015-06-18 17:51:52 +02:00
Maciej Suminski
8964ff8922
Hotkey lists displayed after pressing the Help button (GAL).
2015-06-18 17:51:52 +02:00
Maciej Suminski
f63170ca84
Tools available under toolbar buttons: delete items, highlight net, set drill/place origin (GAL).
2015-06-18 17:51:51 +02:00
Maciej Suminski
057bd1b886
PICKER_TOOL - generic tool for picking a point.
2015-06-18 17:51:51 +02:00
Maciej Suminski
ac10ca40f8
Net highlighting is moved to a separate TOOL_ACTION.
2015-06-18 17:51:50 +02:00
Maciej Suminski
12adb25a71
Fixed 'Edit in footprint editor' hotkey (GAL).
2015-06-16 15:27:59 +02:00
Maciej Suminski
dd5275f6c6
Minor SELECTION_TOOL fixes.
2015-06-16 14:51:39 +02:00
Maciej Suminski
f202e5318c
Fixed SELECTION_CONDITIONS::lessThanFunc().
2015-06-05 17:48:59 +02:00
Maciej Suminski
209e630873
Disable net highlighting after loading a new board.
2015-06-04 14:54:08 +02:00
Maciej Suminski
ce4b4f8221
Update ratsnest on zone refill (GAL).
2015-06-04 14:54:08 +02:00
Chris Pavlina
064e8a82e1
Fixed an assertion in arc drawing tool (GAL).
2015-06-02 20:16:55 +02:00
jean-pierre charras
fd907a413c
Minor changes: modify a few messages in dialogs to allow a better or more easy translation of these messages (too short messages cannot be safely translated).
...
Remove no more existing special.lib from template file kicad.pro
2015-05-22 13:00:43 +02:00
Maciej Suminski
01c9f09833
wxWidgets under OS X require wxMenuItem ids to be >0.
2015-05-18 13:48:13 +02:00
Maciej Suminski
6788e31a1e
Fixed context menu crash on OS X (GAL).
2015-05-18 13:48:12 +02:00
Maciej Suminski
7c59d0dcc4
Layer toggling with 'Place Via' hot key when router is
2015-05-18 13:48:11 +02:00
Maciej Suminski
4fe65715a2
Added trivial connection selection (GAL).
2015-05-18 13:48:10 +02:00
Maciej Suminski
4f3337f5ed
Fix hot keys for adjusting grid size (GAL).
2015-05-12 12:03:39 +02:00
jean-pierre charras
37b0868376
Pcbnew: fix minor issues about fast grid switching, and next/previous grid selection from hotkeys. (GAL mode still has an issue)
2015-05-12 11:05:36 +02:00
Maciej Suminski
7eaceffd35
Fixed weird handling of 'Find' action.
2015-05-05 20:39:42 +02:00
Maciej Suminski
da75c52665
Hot keys settings are synchronized between GAL & legacy
2015-05-05 20:39:42 +02:00
Maciej Suminski
99e5228948
Moved the list of TOOL_ACTIONs to ACTION_MANAGER.
2015-05-05 20:39:41 +02:00
unknown
04ffd0a4ac
i18n pcbnew GAL popup menu entries
2015-05-03 17:53:44 +02:00
jean-pierre charras
d41bc31c49
Fix bug #1447905 (very minor bug, in fact). Fix a few minor coding style issues.
...
Fix 2 coverity warnings.
2015-05-03 08:31:14 +02:00
jean-pierre charras
2047d87317
Minor fixes (Bug #1414328 and Bug #1440312 ). Remove translatable attribute in a debug message.
...
tools/edit_tool.cpp: remove limitation (GAL mode) to delete the last pad in a footprint (a footprint can have 0 pad, for instance a logo)
2015-05-01 17:01:09 +02:00
jean-pierre charras
5a02b91e5f
Fix some issues created by rev 5632:
...
* Use only double to store zoom levels in class BASE_SCREEN (int type is not working for eeschema or page layout editor) (this fix Bug #1450551 , Assertion failed on wxRound() when zooming)
* Fix crash in all apps but Pcbnew when a grid or a zoom was selected from the popup menu.
* Modify default hotkeys for Next Grid and Previous Grid: the initial key was a dead key, not suitable as hotkey. the 'N' and Shift N keys are used instead (with a change for unfill zone hotkey)
* Modify code in EDA_DRAW_FRAME::SetNextGrid() and EDA_DRAW_FRAME::SetPreviousGrid() to make them compatible with other editors than the board editor.
2015-05-01 11:31:23 +02:00
Maciej Suminski
81ea3ce408
Missing files.
2015-04-30 11:08:18 +02:00
Maciej Suminski
872259981a
CONDITIONAL_MENU supports separators and ordering.
2015-04-30 10:46:08 +02:00
Maciej Suminski
958046ddb2
Moved SELECTION_TOOL context menu to a separate class.
2015-04-30 10:46:08 +02:00
Maciej Suminski
9ef9b7b8e1
Preliminary selection mode for SELECTION_TOOL.
2015-04-30 10:46:07 +02:00
Maciej Suminski
b8295b6af8
Code formatting.
2015-04-30 10:46:07 +02:00
Maciej Suminski
787415c2aa
Updating the user grid size on change in GAL.
2015-04-30 10:46:06 +02:00
Maciej Suminski
3e46f2233a
Corrected "Zoom Auto" in GAL with empty board.
2015-04-30 10:46:06 +02:00
Maciej Suminski
6379d80636
Zoom & grid menus for GAL canvases.
2015-04-30 10:46:05 +02:00
Maciej Suminski
06b978b829
Refactored CONTEXT_MENU, added handler for updating.
2015-04-30 10:46:05 +02:00
Maciej Suminski
10a4b64005
More icons for context menus.
2015-04-30 10:46:04 +02:00
Maciej Suminski
025d4cf23a
Alternative way of handling grid settings in GAL.
2015-04-30 10:46:04 +02:00
Maciej Suminski
4be876a13a
Expandable CONTEXT_MENUs (GAL). Minor CONTEXT_MENU
2015-04-30 10:46:04 +02:00
Maciej Suminski
946b9d1933
setTransitions() are called automatically for tools.
2015-04-30 10:46:03 +02:00
Maciej Suminski
c4888afbcc
Refactored the way GAL handles zoom settings.
2015-04-30 10:46:02 +02:00
Maciej Suminski
5c984aa069
Parametrized TOOL_ACTIONs.
2015-04-30 10:46:01 +02:00
jean-pierre charras
20dfe9ca29
Minor fixes: dialog_create_array.* files: clean code ( remove useless declarations and functions ).
...
fix a few coverity warnings about not initialized members in ctors.
2015-04-22 18:39:49 +02:00
jean-pierre charras
c519eea12b
3D viewer: fix (the fix is not perfect) a minor issue in zone rendering: copper thickness was not good when the option 'Show Holes in Zones" was OFF, and "Show Copper Thickness" ON.
...
Fix a few coverity minor warnings.
2015-04-12 19:44:46 +02:00
Maciej Suminski
cec0a956bd
bugfix: pcbnew segfaults after adding footprint directly from editor
2015-04-11 23:41:22 +02:00
Eldar Khayrullin
5d55fa018e
Translate Selection tool "Select..." entry.
2015-04-04 21:57:38 +02:00
jean-pierre charras
cbf487c598
Pcbnew: duplicate and create array: popup menus in legacy mode: remove these options for a few items which cannot be (safely) duplicated (pads in board editor, and a few others )
...
Modedit, GAL mode: fix a crash when a duplicated area includes the ref or value fields.
Add missing bitmap for pad enumerate.
fix bad flag for Portuguese language.
Fix a few typo in messages.
2015-04-03 21:10:09 +02:00
jean-pierre charras
4def0958a5
Fix some coverity warnings. Fix typo and errors in comments. Very minor other fixes.
2015-04-03 11:13:06 +02:00
Maciej Suminski
b1cd83c197
Icons in GAL context menus.
2015-04-02 16:09:48 +02:00
Maciej Suminski
6083f3b011
Internationalization of GAL dialogs & menus.
2015-04-02 16:09:26 +02:00
Maciej Suminski
589dd442f5
Clippy returns home.
2015-04-02 09:18:45 +02:00
Maciej Suminski
8be73ad05a
KiCad assistant.
2015-03-31 23:45:02 +02:00
Maciej Suminski
9e8719d3ff
Fixed overlapping segment endings in OpenGL view.
2015-03-30 14:09:56 +02:00
John Beard
900ecbae9d
Fix for cancellation of duplicate in GAL mode.
2015-03-16 10:25:40 +01:00
jean-pierre charras
f743b98844
Try to fix Bug #1431391 (Unable to edit pins in Schematic library editor). It happens on XFCE, but also on Unity. This fix works on Unity. (it is due to the fact the dialog is not raised, for an unknown reason, and this bug depend on the way Eeschema and Libedit are run).
...
Add Ctrl+E hotkey in eeschema to edit a component with Libedit (similar to pcbnew Ctrl+E hotkey)
As usual, fix a few minor coverity warnings
2015-03-14 12:50:39 +01:00
Tomasz Wlostowski
e9bc7b58cc
Snap cursor to pad center when moving (GAL footprint editor).
2015-03-11 18:06:44 +01:00
Maciej Suminski
b6c5b291a2
Coverity fixes.
2015-03-11 14:17:43 +01:00
Maciej Suminski
035b231b62
Refinement for fix in 5497.
2015-03-10 18:31:23 +01:00
Maciej Suminski
2ecb72da84
Fixed disappearing selected items when switching between GAL canvases.
2015-03-10 17:05:38 +01:00
Maciej Suminski
26f20fbb00
Moved "Place Target" and "Place Module" tools from DRAWING_TOOL to PCB_EDITOR_CONTROL (to avoid placing modules in the footprint editor).
2015-03-10 16:58:26 +01:00
Maciej Suminski
c160a7de17
Capturing cursor in drawing tools (GAL).
2015-03-10 14:43:14 +01:00
Maciej Suminski
cc72e585f0
Fixed segfault in arc drawing tool (GAL footprint editor).
2015-03-10 14:32:40 +01:00
Maciej Suminski
56b692ae3e
"Select net/connection" (GAL).
2015-03-10 09:36:04 +01:00
unknown
c3e3ff3682
Minot fixes: Minor coding style issues fix (tab -> spaces). Add missing GetClass to all classes derived from EDA_ITEM. Make debug method Show() only compiled in debug mode.
2015-03-06 09:58:32 +01:00
Maciej Suminski
161b360297
Fixed frozen cursor (GAL).
2015-03-03 11:55:23 +01:00
Maciej Suminski
0dd9efd9db
Merged the differential pair router & length tuning tool.
2015-03-03 11:50:50 +01:00
jean-pierre charras
0975e3e5bd
Move exact dialog: make all messages translatable. Fix minor issues (some can be Windows specific). Remove useless declarations. Fix coding style issues
...
Fix minor warnings from cppcheck.
2015-02-22 15:43:44 +01:00
Maciej Suminski
014905e7db
bugfix: pad enumerator skips pads if mouse cursor is moved too fast (GAL module editor).
2015-02-21 21:16:28 +01:00
Maciej Suminski
de03accdb1
Coverity report fixes.
2015-02-21 14:58:39 +01:00
Maciej Suminski
3e9bb6b887
SELECTION::GetCenter() returns VECTOR2I instead of wxPoint.
2015-02-20 11:40:36 +01:00
Maciej Suminski
f7a32e839e
Moved UndoInhibit related functions from TOOL_MANAGER to EDIT_TOOL.
2015-02-19 14:53:31 +01:00
Maciej Suminski
aafdfd015e
Disabled 'Duplicate' & 'Create array' for pads in the layout editor.
2015-02-18 20:30:14 +01:00
Maciej Suminski
9bed4814a3
Ratsnest update in 'Create array' tool (GAL).
2015-02-18 20:29:52 +01:00
Maciej Suminski
f06690c8d3
Merged lp:~john-j-beard/kicad/moveexact.
2015-02-18 20:27:00 +01:00
Maciej Suminski
4fb9bce354
Code formatting.
2015-02-18 17:53:46 +01:00
Tomasz Włostowski
112adccbcb
router: differential pairs & length tuning support
2015-02-18 01:29:54 +01:00
Tomasz Włostowski
e5deafb4bb
bulk improvements for selection and edit tools (GAL) disambiguatin heuristics and smarter grid alignment
2015-02-18 01:10:20 +01:00
Tomasz Włostowski
9f0b02268b
tools: moved tools registration outside pcbframe.cpp
2015-02-18 01:04:47 +01:00
Maciej Suminski
b0ad779ee4
Calming down the Coverity report.
2015-02-15 23:21:52 +01:00
Maciej Suminski
b19010ff8b
Cross-probing pcbnew<->eeschema (GAL).
2015-02-14 21:52:22 +01:00
Maciej Suminski
bb861b81b2
Missing comments in the PLACEMENT_TOOL class.
2015-02-14 21:49:06 +01:00
Maciej Suminski
902d0e3f1f
Tools are processing const TOOL_EVENT& (Tool Framework).
2015-02-14 21:28:47 +01:00
John Beard
8c6313ac1a
Extend arrays and duplicate to pcbnew (GAL and legacy), covering modules, text, lines, tracks, dimensions and targets.
...
Text arrays can now use "%s" as a placeholder to be substituted with the array index.
Also expand menu options for move exact, arrays and duplicate.
Minor fixes for arrays - use proper unit parsing, add numbering start for circular arrays
Add circle radius indicator to array dialogue
2015-02-12 03:22:24 +00:00
John Beard
3c5f3f7049
Add create array tool
2015-02-12 03:22:24 +00:00
John Beard
4f3672da4d
Add "move exact" and "duplicate" tools to pcbnew
2015-02-12 03:22:24 +00:00
Maciej Suminski
789bb9663c
bugfix: Find does not work in high contrast mode in GAL.
2015-01-29 18:23:54 +01:00
Maciej Suminski
92a8f8f19c
Support for zone cut-outs in the point editor (GAL).
2015-01-16 16:44:42 +01:00
jean-pierre charras
9cfb97d8b4
Add hight contrast option in Modedit. In hight contrast mode, solder masks and solder paste are shown.
...
this option was possible only by modifying the way display options are managed.
before these changes, display options were a global DISPLAY_OPTIONS class instance.
Now each EDA_DRAW_FRAME(and derivated classes) includes its own DISPLAY_OPTIONS class instance.
As a consequence, some duplicate display option variables in these classes have been removed, because there were just duplicate variables of the DISPLAY_OPTIONS class instance.
2015-01-10 11:27:49 +01:00
Nick Østergaard
1df31338a3
Shortcut for fill all and unfill all zones for GAL.
2014-12-08 23:41:47 +01:00
Maciej Suminski
0c1a87ca56
selection_tool: Added SelectItem and UnselectItem actions.
2014-11-21 11:50:13 +01:00
Maciej Suminski
823623acb8
selection_tool: Renamed deselect* to unselect* for naming consistency.
2014-11-21 11:49:54 +01:00
Maciej Suminski
62e2537e73
selection_tool: Renamed selectSingle to selectCursor.
2014-11-21 11:49:28 +01:00
Camille
5729ee7ea5
Compile warning fixes and minor code policy fixes.
2014-11-15 08:43:23 -05:00
Maciej Suminski
4eabe23104
pcbnew: Allows selecting module edges in module editor, when they are covered with other items (GAL).
2014-11-13 16:58:24 +01:00
Maciej Suminski
1855db5493
pcbnew: Fix persistent multiple items selection box that stays after selecting a polygon/line (GAL).
2014-11-13 14:11:26 +01:00
jean-pierre charras
24f516f6ae
Fix many doxygen warnings (due to missing info, old comments, typo ...) when building the doxygen doc.
2014-11-02 17:25:04 +01:00
Maciej Suminski
788a25438a
pcbnew: Minor fixes to 'Find Item' dialog (GAL canvas).
2014-10-13 20:27:36 +02:00
Maciej Suminski
ac7bdfc7f6
pcbnew: Fixed 'Find Item' (GAL canvas).
2014-10-13 15:25:16 +02:00
Maciej Suminski
1c74019f4c
pcbnew: Added "Get and Move" in pcbnew (GAL canvas).
2014-10-13 15:22:14 +02:00
jean-pierre charras
6bae852cb9
Minor fixes: specctra export: skip malformed circles (having a radius = 0) in board outline creation, which can crash 3d-viewer or vrml export.
...
dialog_fp_lib_table: remember during a session the last open table (global or local).
drawing_tool: fix compil warning
Update demos.
2014-09-22 09:51:06 +02:00
Lorenzo Marcantonio
0da38e5b62
More work on module texts, and especially on the collector
...
The members SetIgnoreMTextsOnCopper, SetIgnoreMTextsOnCmp,
SetIgnoreModulesOnCu, SetIgnoreModulesOnCmp in the collector guide are
renamed to the clearer SetIgnoreMTextsOnBack, SetIgnoreMTextsOnFront,
SetIgnoreModulesOnBack, SetIgnoreModulesOnFront
Modified the collector and drawing behaviour for text in modules as
discussed in the mailing list.
* Now module text on layers different than Silk should work! *
Still need UI support for setting the layer in the module editor.
2014-09-11 18:35:19 +02:00
Lorenzo Marcantonio
424aac6cf2
TEXTE_MODULE cleanup in preparation for text on different layers
...
- Removed the friends MODULE and FOOTPRINT_EDIT_FRAME from TEXTE_MODULE
(as in the @todo comment)
- Refactored the Rotate/Flip/Mirror for text in modules into the
TEXTE_MODULE class itself (members RotateWithModule, FlipWithModule,
MirrorWithModule)
- New behaviour in coloring text on screen: reference and value still
take the color from the MOD_TEXT_FR_VISIBLE and MOD_TEXT_BK_VISIBLE
visibles; other text takes the color of the layer containing it
(except when hidden, obviously) but still get its visibility
controlled by those visibles (probably the most intuitive and useful
behaviour)
- Still need to decide: should text on a layer be hidden when the layer
is? Probably yes (still to be implemented);
- Some comment fixed and many cast converted to static_cast
2014-09-10 17:18:42 +02:00
Maciej Suminski
9fca82c23f
pcbnew: bugfix for crashes when canvas is switched while dragging items (GAL).
2014-09-08 14:09:20 +02:00
Maciej Suminski
c13cdb0964
Fixed line width settings in the module editor (GAL).
2014-09-01 13:48:51 +02:00
jean-pierre charras
5a38d2b657
Rework on env. variable KISYS3DMOD. Until now, was used in different files using different ways, so no consistency between files.
...
code cleanup.
2014-08-24 09:05:07 +02:00
Maciej Suminski
bcdd3d7bb9
Items are either dragged by their origin or moved by a vector (depending on the number of selected items) (GAL).
2014-08-06 09:35:03 +02:00
Maciej Suminski
1b058cae1e
Disable highlight mode in the module editor (GAL).
2014-08-06 09:33:10 +02:00
Maciej Suminski
242d42cf1d
Changed 'line width change' & 'change arc posture' to TOOL_ACTIONs.
2014-08-04 14:23:19 +02:00
Maciej Suminski
03a17a284b
bugfix: modules are not selectable in the high contrast mode (GAL).
2014-08-04 10:06:24 +02:00
Maciej Suminski
94a46bf2df
Fixed pcbnew crash when a locked footprint is dragged from an edge of the screen.
2014-08-01 11:28:08 +02:00
Maciej Suminski
893618bf3f
Fixed a hot key conflict.
2014-07-24 13:09:16 +02:00
Maciej Suminski
1d378cfcd1
View is automatically centered when a module editor or viewer are opened (GAL).
2014-07-23 12:06:24 +02:00
jean-pierre charras
38027eb998
3d viewer: Add high quality mode option is realistic mode (Shows holes in copper zones, but with longer calculation time)
...
Gal: fix a very minor issue: the keys to switch between copper layers are now - and + (according to the doc and the normall mode), instead of - and =
2014-07-21 18:26:18 +02:00
Maciej Suminski
0adb6fa943
Module editor does not ask for permission to modify a locked module.
2014-07-15 17:33:19 +02:00
Maciej Suminski
f24075bbf5
Fixed offset of dragged items when the moving tool is invoked by the hotkey (GAL).
2014-07-15 16:33:46 +02:00
Maciej Suminski
568fc74a3c
Clicking on the Selection Tool toolbar button deactivates the current tool (GAL).
2014-07-15 11:50:00 +02:00
Maciej Suminski
a1e08ae568
Drawing tools reset its state on layer change.
2014-07-15 11:41:55 +02:00
Maciej Suminski
78853febbe
Zone fill/unfill actions in context menu (GAL).
2014-07-09 16:57:01 +02:00
Maciej Suminski
898e4e269e
Fixed the only-type condition for empty selection case.
2014-07-09 16:50:31 +02:00
Maciej Suminski
e6c1254dc8
"Create corner" context menu entry for draw segments and zone outlines (GAL).
2014-07-09 16:50:31 +02:00
Maciej Suminski
4068d6c858
Selection tool uses the real drag origin to compute offset when dragging items.
2014-07-09 16:50:31 +02:00
Maciej Suminski
b8fd1de71c
Added module texts to the preferred types list in SELECTION_TOOL.
2014-07-09 16:50:31 +02:00
Maciej Suminski
433e17a582
Support for "locked" property for modules (GAL).
2014-07-09 16:50:31 +02:00
Maciej Suminski
c1eda6b88c
Some of the Tool Actions need to be run in immediate mode - fixed.
2014-07-09 16:50:31 +02:00
Maciej Suminski
49dd416c53
Dragged items offset is cleared when dragging is finished.
2014-07-09 16:50:31 +02:00
Maciej Suminski
f32419f7e6
New pads in the module editor does not show up in the center of the edited module.
2014-07-09 16:50:31 +02:00
Maciej Suminski
0953d5730b
Clear selection before opening the module editor.
2014-07-09 16:44:23 +02:00
Maciej Suminski
0163b589b4
Workarounded restoring focus to GAL canvas after layer switching.
2014-07-09 16:44:22 +02:00
Maciej Suminski
b1837615aa
Added event queue to handle events at the end of the event processing cycle.
2014-07-09 16:25:50 +02:00
Maciej Suminski
db0d708300
Simplified code for switching layers in GAL view. Tools are notified of layer change event.
2014-07-09 16:25:50 +02:00
Maciej Suminski
c0a96141df
Added AF_NOTIFY flag for TOOL_ACTIONs.
2014-07-09 15:10:32 +02:00
Maciej Suminski
b2d0737329
Fixed continous line drawing.
...
Outline mode can be set up on any layer.
2014-07-09 15:10:32 +02:00
Maciej Suminski
d7c3c7828b
wxWidgets 2.8 compatibility fixes.
2014-07-09 15:10:32 +02:00
Maciej Suminski
587f22e10b
Outline display mode for module edges & texts in the module editor.
2014-07-09 15:10:32 +02:00
Maciej Suminski
65c116621d
Added support for changing the cursor size.
2014-07-09 15:10:32 +02:00
Maciej Suminski
15f5c228cc
Fixed autozooming with empty board/module.
2014-07-09 15:10:32 +02:00
Maciej Suminski
2b0e27f132
Introduced SELECTION_CONDITIONS to determine which menu entries should be visible in the SELECTION_TOOL context menu, depending on the selection.
2014-07-09 15:10:32 +02:00
Maciej Suminski
bfa15d8db0
Moved SELECTION out of SELECTION_TOOL class.
2014-07-09 15:10:32 +02:00
Maciej Suminski
d21271b432
Pad Enumeration tool support for SMD pads.
2014-07-09 15:10:32 +02:00
Maciej Suminski
709dfcc16e
Added settings dialog for Pad Enumeration tool.
2014-07-09 15:10:32 +02:00
Maciej Suminski
2bcbb67528
Initial version of the Pad Enumeration tool.
2014-07-09 15:02:56 +02:00
Maciej Suminski
cf79b4c64f
Removed redundant accessor calls in MODULE_TOOLS.
2014-07-09 15:02:56 +02:00
Maciej Suminski
ed88c40be5
Moved module editor-specific tools to a separate class (MODULE_TOOLS).
2014-07-09 15:02:56 +02:00
Maciej Suminski
a6484f1acb
Drawing tools used to crash when the drawing tool was interrupted - fixed.
2014-07-09 15:02:56 +02:00
Maciej Suminski
b42091bc06
Fixed anchor placement tool in module editor (GAL).
2014-07-09 15:02:56 +02:00
Maciej Suminski
6f772c90d9
Renamed "Placement" context menu to "Align/distribute".
2014-07-09 15:02:56 +02:00
Maciej Suminski
84fa537b22
Changes in display options are handled by PCBNEW_CONTROL (GAL).
2014-07-09 15:02:56 +02:00
Maciej Suminski
2b1d6b303a
Added support for module edge splitting with double click.
2014-07-09 15:02:56 +02:00
Maciej Suminski
47f1fec31d
DXF drawing placement tool for GAL.
2014-07-09 15:02:56 +02:00
Maciej Suminski
72c70148e8
Fixed a few memory leaks and Valgrind warnings.
2014-07-09 15:02:56 +02:00
Maciej Suminski
77d8b2d84e
Context menu for the Placement Tool.
2014-07-09 14:23:13 +02:00
Maciej Suminski
f0ff744e97
Initial version of the Placement Tool.
2014-07-09 14:23:13 +02:00
Maciej Suminski
e3c4f425dc
Fixed wrong reference point for copied items in subsequent module editor invocations (GAL).
2014-07-09 14:23:13 +02:00
Maciej Suminski
ac8ee56e51
Pasted module texts are rotated in the right way.
2014-07-09 14:23:13 +02:00
Maciej Suminski
5941f196c3
Reference point is selected for copied items. Enabled autopanning for copy & paste operations (module editor/GAL).
2014-07-09 14:23:13 +02:00
Maciej Suminski
95a4f61eee
wxWidgets 2.8 compatibility fix.
2014-07-09 14:23:13 +02:00
Maciej Suminski
5e48a79639
Copy & paste for module editor (GAL).
2014-07-09 14:22:29 +02:00
Maciej Suminski
ae431bbb05
Added MODULE::Add( BOARD_ITEM* )/Remove( BOARD_ITEM* )/Delete( BOARD_ITEM* ).
...
Removed MODULE::AddPad().
2014-07-09 14:22:29 +02:00
Maciej Suminski
d73ab976df
Added support for placing the footprint anchor.
2014-07-09 14:01:06 +02:00
Maciej Suminski
637919a699
Added support for pads, texts and graphics removal in module editor (GAL).
2014-07-09 14:01:06 +02:00
Maciej Suminski
5dc1f92608
Added pad placement tool for module editor (GAL).
2014-07-09 14:01:06 +02:00
Maciej Suminski
67136d21b1
MInor fixes.
2014-07-09 14:01:06 +02:00
Maciej Suminski
99043b777d
Adapted graphics tools to cooperate with module editor.
2014-07-09 14:01:06 +02:00
Maciej Suminski
ba320ac7c3
Added "edit modules" mode for DRAWING_TOOL.
2014-07-09 14:01:06 +02:00
Maciej Suminski
fc44f34ade
Fixed DRAWING_TOOL::PlaceTextModule() method.
2014-07-09 14:01:06 +02:00
Maciej Suminski
b05885c2f1
Refactored drawing tools: lines, circles and arcs.
2014-07-09 14:01:06 +02:00
Maciej Suminski
69c73b0ebc
Updated POINT_EDITOR to handle module edges.
2014-07-09 13:50:27 +02:00
Maciej Suminski
26323007b5
Added a handler for not implemented toolbar buttons functionality in GAL.
2014-07-09 13:50:27 +02:00
Maciej Suminski
94cc845b3f
Added AF_ACTIVATE flag for TOOL_ACTIONs.
...
Reworked the way of processing events in TOOL_MANAGER class.
Added GetCommandStr() for TOOL_EVENT class.
2014-07-09 13:50:27 +02:00
Maciej Suminski
34fbde42fc
Improved way of translating wxEvent commands to TOOL_ACTIONs.
2014-07-09 13:50:27 +02:00
Maciej Suminski
74522d5b3c
Corrected names of common tool actions.
2014-07-09 13:50:27 +02:00
Maciej Suminski
6d1417bafa
SELECTION_TOOL in edit module mode does not try to select MODULEs.
2014-07-09 13:50:27 +02:00
Maciej Suminski
5d1ec2b204
Restored invocation of SELECTION_TOOL commands with TOOL_ACTIONs.
2014-07-09 13:50:27 +02:00
Maciej Suminski
5ce29330b1
Restored support for custom angle rotation.
2014-07-09 13:50:27 +02:00
Maciej Suminski
6e0bd1eedc
Adapted tools to PCB_BASE{_EDIT}_FRAME.
2014-07-09 13:50:27 +02:00
Maciej Suminski
b0f3e79e54
Created a common interface for edit frames.
2014-07-09 13:50:27 +02:00
Maciej Suminski
eee2779f6b
Moved some layout editor specific tool actions to another class (PCB_EDITOR_CONTROL).
2014-07-09 13:50:27 +02:00
Maciej Suminski
7ade7db078
SELECTION_TOOL got a new mode to edit MODULEs.
2014-07-09 12:10:27 +02:00
Maciej Suminski
2ee890d74b
Minor changes.
2014-07-09 11:59:24 +02:00
Maciej Suminski
a6dac245c0
Removed TOOL_ACTIONs: selectionSingle, selectionClear. SELECTION_TOOL methods are called directly instead.
2014-07-09 11:59:24 +02:00
Maciej Suminski
0306ec7efe
{Set,Get}ActiveLayer moved from PCB_EDIT_FRAME to PCB_BASE_FRAME.
2014-07-09 11:50:27 +02:00
Maciej Suminski
a24576f3ce
Initial version of the GAL-based Module Editor.
2014-07-09 11:22:43 +02:00
Maciej Suminski
8a5fedb728
Code formatting and cleaning.
2014-07-09 11:22:43 +02:00
Maciej Suminski
553996e7be
bugfix: pads edited with properties dialog were not refreshed.
...
bugfix: changing track width/via size using the dropdown menu when custom size was enabled did not change anything.
2014-07-09 11:22:43 +02:00
Maciej Suminski
60b0a4e0be
Alternative approach to handling events and commands by TOOL_DISPATCHER.
...
Event handlers are (dis)connected depending on the active view.
TOOL_DISPATCHER inherits from wxEvtHandler, so now it receives events directly instead of being fed by external handlers.
2014-07-09 11:22:42 +02:00
Maciej Suminski
3fd26b6dd2
TOOL_ACTIONs are automagically registered by TOOL_MANAGER upon its construction.
2014-07-09 11:22:42 +02:00
Maciej Suminski
f5325f8d79
Removed a redundant pointer to EDA_EDIT_FRAME.
2014-07-09 11:22:42 +02:00
Maciej Suminski
e46c5cb778
Fixed toolbar buttons for zooming in GAL canvas.
2014-07-09 11:22:42 +02:00
Maciej Suminski
9a47f4c645
Created a specialization of EDA_DRAW_PANEL_GAL: PCB_DRAW_PANEL_GAL.
...
Moved View related routines & fields from PCB_{BASE,EDIT}_FRAME & BOARD to PCB_DRAW_PANEL_GAL.
2014-07-09 10:57:32 +02:00
Dick Hollenbeck
1e7495e634
merge
2014-06-30 00:46:18 -05:00
Dick Hollenbeck
ad750defb6
LAYER_ID work
2014-06-29 08:05:51 -05:00
Dick Hollenbeck
4578ea8b9e
1) Add 32 Cu Layers.
...
2) Change from legacy Cu stack to counting down from top=(F_Cu or 0).
The old Cu stack required knowing the count of Cu layers to make
sense of the layer number when converting to many exported file types.
The new Cu stack is more commonly used, although ours still gives
B_Cu a fixed number.
3) Introduce class LSET and enum LAYER_ID.
4) Change *.kicad_pcb file format version to 4 from 3.
5) Change fixed names Inner1_Cu-Inner14_Cu to In1_Cu-In30_Cu and their
meanings are typically flipped.
6) Moved the #define LAYER_N_* stuff into legacy_plugin.cpp where they
can die a quiet death, and switch to enum LAYER_ID symbols throughout.
7) Removed the LEGACY_PLUGIN::Save() and FootprintSave() functions.
You will need to convert to the format immediately, *.kicad_pcb and
*.kicad_mod (=pretty) since legacy format was never going to know
about 32 Cu layers and additional technical layers and the reversed Cu
stack.
2014-06-24 11:17:18 -05:00
Maciej Suminski
95a6e8deb2
Dragging items by their origin is optional (activated by dragging elements with Ctrl held).
2014-06-23 16:12:59 +02:00
Maciej Suminski
e7aa963011
Fixed layers switching in GAL.
2014-06-06 14:59:55 +02:00
Maciej Suminski
f5de166a7e
Removed an unused parameter from TOOL_BASE::getModel<T>() method.
2014-06-06 14:59:25 +02:00
Maciej Suminski
afbe21fe70
Single items are dragged by their origin in GAL canvas.
2014-06-05 09:55:53 +02:00
Maciej Suminski
517bfa3570
Minor code cleaning.
2014-06-04 18:01:01 +02:00
Maciej Suminski
0d734e8841
Placing the grid origin is possible with GAL.
2014-06-04 17:46:43 +02:00
Maciej Suminski
dd1fcd0588
Fix for context menu hanging up in GAL.
2014-05-22 17:59:36 +02:00
Maciej Suminski
655721d9ae
Added missing changes required for updating footprints with the module editor.
2014-05-22 15:01:58 +02:00
Maciej Suminski
957f959e90
Fixed bug 1321936: changing a footprint for a set of modules relocates them in GAL canvas.
...
Changes introduced by the module editor are updated in GAL canvas.
2014-05-22 12:06:45 +02:00
Dick Hollenbeck
f49e9a285f
fix compiler warnings
2014-05-19 17:27:09 -05:00
Maciej Suminski
def53707d5
TOOL_MANAGER is no longer static. Reworked autoregistration of TOOL_ACTIONs.
2014-05-14 16:29:53 +02:00
Maciej Suminski
2cba91f974
Holding shift always activates extend current selection mode (in GAL canvas).
2014-05-14 09:56:35 +02:00
Maciej Suminski
562beafcde
Fixed modification point for EDIT_TOOL when the tool is not active.
2014-05-13 11:22:51 +02:00
Maciej Suminski
cd8aaee160
Moved most of the board design rules related fields & methods to BOARD_DESIGN_SETTINGS class.
2014-05-13 11:22:51 +02:00
Maciej Suminski
917e47397d
Custom track/via size settings nicely cooperate with other options.
2014-05-13 11:22:51 +02:00
Maciej Suminski
9325a9e74d
Fixed rotation/flip point.
2014-05-13 11:22:51 +02:00
Maciej Suminski
a0801e2d8e
Pad properties are back.
2014-05-13 11:22:51 +02:00
Maciej Suminski
929008c6c3
SELECTION_TOOL updates dragging offset after rotating/flipping.
...
Cursor position is saved as a field in order to avoid drifting of items while they are being dragged and rotated/flipped.
2014-05-13 11:22:51 +02:00
Maciej Suminski
2f5103bc67
Fixed jumpy zoom when hotkeys and scroll wheel were used alternatively.
2014-05-13 11:22:51 +02:00
Maciej Suminski
50193f1751
Resolved HOME hot key conflict between menu entry (Zoom Page) and event assigned to the hot key in the ACTION_MANAGER.
...
Conflicts:
pcbnew/menubar_pcbframe.cpp
2014-05-13 11:22:51 +02:00
Maciej Suminski
6b222d19d5
Added preference for selecting tracks/vias/graphics if there is a module present in the selection point.
2014-05-13 11:22:51 +02:00
Maciej Suminski
d6fd8b2e23
Upstream merge.
2014-05-12 17:17:51 +02:00
Maciej Suminski
c3b448b633
Upstream merge.
2014-05-01 15:55:50 +02:00
Lorenzo Marcantonio
3f2c0e1a8d
TRACK/SEGVIA cleanup
...
- SEGVIA becomes VIA
- Drill size moved from TRACK to VIA
- Removed shape from TRACK, becomes ViaType in VIA
- GetTrace becomes GetTrack, for uniformity
- Some minor constification and typo fixes
2014-04-25 08:00:04 +02:00
Maciej Suminski
3f8d9da31f
Key events are handled by wxEVT_CHAR instead of wxEVT_KEY_[UP|DOWN]. Fixed issue of chars that require modifiers (e.g. ? is Shift+/ on US keyboard layout).
2014-04-09 17:33:22 +02:00
Maciej Suminski
50b202fe99
Hot keys specific to a tool have priority over global hot keys (TOOL_ACTION scope: AS_GLOBAL/AS_CONTEXT is finally handled properly).
2014-04-09 17:05:05 +02:00
Maciej Suminski
e6fd3934d1
Fixed ratsnest update after removing items.
2014-04-09 16:57:22 +02:00
Maciej Suminski
c5b65e1ec4
Fixed outline breaking for zones (points were not always created in the double click point).
2014-04-07 14:30:38 +02:00
Maciej Suminski
cc445391e9
Items that may be modified using EDIT_POINTs used to stay selected after pressing ESC (only EDIT_POINTs got away) - fixed.
2014-04-07 13:59:27 +02:00
Maciej Suminski
a6917280fe
Added net highlighting.
2014-04-04 17:40:00 +02:00
Maciej Suminski
14687a45a7
Fixed occasional crashes on undo/redo while dragging.
2014-04-04 12:56:50 +02:00
Maciej Suminski
ba275918e3
Renamed [class_]drawpanel_gal.[cpp|h] to [class_]draw_panel_gal.[cpp|h] to follow current naming scheme.
2014-04-04 11:56:04 +02:00
Maciej Suminski
4c5afc46af
Added possibility of switching tools by the right toolbar buttons, without deactivating the current tool first (previously tools did not switch if there was one active).
2014-04-04 11:50:15 +02:00
Maciej Suminski
1ef68d73e5
Fixed missing transitions for EDIT_TOOLs.
2014-04-03 10:24:27 +02:00
Maciej Suminski
b6aa832f83
Converted std::bind1st to boost::bind.
2014-04-02 16:30:48 +02:00
Maciej Suminski
5de41eabd1
Added EC_SNAPLINE to make possible snapping EDIT_LINES by their ends rather than by its center.
2014-04-02 15:57:21 +02:00
Maciej Suminski
23392ce8c9
Upstream merge.
2014-04-02 15:38:59 +02:00
Maciej Suminski
1828edbabe
Refactoring EDIT_POINTS, part 3: constraints split to EDIT_POINTs and EDIT_LINEs.
2014-04-02 09:31:35 +02:00
Maciej Suminski
0379247fd4
Refactoring EDIT_POINTS, part 2: replaced index numbers with constants.
2014-04-01 17:41:24 +02:00
Maciej Suminski
6b90eb3a64
Refactoring EDIT_POINTS, part 1: separated functions that operate on EDIT_POINTS and EDIT_LINES.
2014-04-01 17:18:43 +02:00
Maciej Suminski
e79934b03d
If tool was previously active and it is called again, it is brought to the top of the active tool stack.
...
It fixes issue of dragging of items that have EDIT_POINTs, when dragging was activated by hovering over an item and using hot key.
2014-04-01 14:35:09 +02:00
Maciej Suminski
79d353671b
Fixed autopanning for POINT_EDITOR.
2014-04-01 14:13:00 +02:00
Maciej Suminski
a55d25803e
Activation of any drawing/placement tool clears current selection.
2014-04-01 14:06:19 +02:00
Maciej Suminski
1fa49ce7f0
Fixed drifting for items dragged using EDIT_TOOL.
2014-04-01 13:30:31 +02:00
Maciej Suminski
39bca76df7
>Added handled hotkeys:
...
- resetting relative coordinates
- switching units
- not official: changing transparency for layers (works only for main layers, does not work on vias/pads/etc.)
2014-03-24 18:28:21 +01:00
Maciej Suminski
60e9546b62
PCB_EDIT_FRAME::SetHighContrastLayer() went public.
...
Refactored code that handled zooming events.
Added PCB_RENDER_SETTINGS::Get/SetSketchMode().
PCBNEW_CONTROL reacts to hot keys changing display modes (sketch via/tracks, high contrast).
2014-03-24 17:20:23 +01:00
Maciej Suminski
dc9298730d
Added PCBNEW_CONTROLS for handling miscellaneous hot keys (trying to be compatible with the default hot key settings). Currently there are a lot of stubs to be filled out (in pcbnew_controls.cpp).
...
Handled actions:
- switching layers
- switching grids
- changing track width & via size
2014-03-24 08:45:05 +01:00
Maciej Suminski
c7116e9d03
FIxed too late deletion of TOOLs.
2014-03-21 17:55:46 +01:00
Maciej Suminski
0694f2fa1c
TOOL_EVENTs autoregister themselves in ACTION_MANAGER.
...
ROUTER_TOOL events have temporarily changed their hotkeys assignment.
2014-03-21 10:40:50 +01:00
Dick Hollenbeck
6bfff89fe5
merge tip in, resolve.
2014-03-20 01:24:33 -05:00
Dick Hollenbeck
2c67c3ff80
* KIWAY Milestone A): Make major modules into DLL/DSOs.
...
! The initial testing of this commit should be done using a Debug build so that
all the wxASSERT()s are enabled. Also, be sure and keep enabled the
USE_KIWAY_DLLs option. The tree won't likely build without it. Turning it
off is senseless anyways. If you want stable code, go back to a prior version,
the one tagged with "stable".
* Relocate all functionality out of the wxApp derivative into more finely
targeted purposes:
a) DLL/DSO specific
b) PROJECT specific
c) EXE or process specific
d) configuration file specific data
e) configuration file manipulations functions.
All of this functionality was blended into an extremely large wxApp derivative
and that was incompatible with the desire to support multiple concurrently
loaded DLL/DSO's ("KIFACE")s and multiple concurrently open projects.
An amazing amount of organization come from simply sorting each bit of
functionality into the proper box.
* Switch to wxConfigBase from wxConfig everywhere except instantiation.
* Add classes KIWAY, KIFACE, KIFACE_I, SEARCH_STACK, PGM_BASE, PGM_KICAD,
PGM_SINGLE_TOP,
* Remove "Return" prefix on many function names.
* Remove obvious comments from CMakeLists.txt files, and from else() and endif()s.
* Fix building boost for use in a DSO on linux.
* Remove some of the assumptions in the CMakeLists.txt files that windows had
to be the host platform when building windows binaries.
* Reduce the number of wxStrings being constructed at program load time via
static construction.
* Pass wxConfigBase* to all SaveSettings() and LoadSettings() functions so that
these functions are useful even when the wxConfigBase comes from another
source, as is the case in the KICAD_MANAGER_FRAME.
* Move the setting of the KIPRJMOD environment variable into class PROJECT,
so that it can be moved into a project variable soon, and out of FP_LIB_TABLE.
* Add the KIWAY_PLAYER which is associated with a particular PROJECT, and all
its child wxFrames and wxDialogs now have a Kiway() member function which
returns a KIWAY& that that window tree branch is in support of. This is like
wxWindows DNA in that child windows get this member with proper value at time
of construction.
* Anticipate some of the needs for milestones B) and C) and make code
adjustments now in an effort to reduce work in those milestones.
* No testing has been done for python scripting, since milestone C) has that
being largely reworked and re-thought-out.
2014-03-19 19:42:08 -05:00
Maciej Suminski
093e311a8d
Fixed a few ratsnest glitches in GAL.
2014-03-19 15:33:13 +01:00
Maciej Suminski
c11b0bc8a6
Break points for zones are not added in the same place as existing points.
2014-03-18 17:02:10 +01:00
Maciej Suminski
e6a7ff3c34
Isolated EDIT_CONSTRAINTs to different .cpp/.h files.
2014-03-18 16:55:06 +01:00
Maciej Suminski
6a1d344541
Instant dragging (without prior selection).
2014-03-18 16:25:46 +01:00
Maciej Suminski
9783aaf3e6
Splitting DRAWSEGMENTs with POINT_EDITOR.
2014-03-18 15:46:38 +01:00
Maciej Suminski
17ec7ace4c
Breaking outlines for zones using POINT_EDITOR.
2014-03-18 14:52:22 +01:00
Maciej Suminski
dbcc18ab31
Enabled autopanning while drawing zones.
2014-03-18 14:01:09 +01:00
Maciej Suminski
342fd6e19e
EC_CONVERGING handles colinear lines properly.
2014-03-18 13:57:10 +01:00
Maciej Suminski
4d6f628a1f
Minor fixes to zone drawing tool.
2014-03-18 11:33:49 +01:00
Maciej Suminski
1ff99b47c8
Fixed triple click bug while drawing zones with DRAWING_TOOL.
2014-03-18 11:09:43 +01:00
Maciej Suminski
48161dcc4a
Yet another approach to EC_LINE and EC_CONVERGING edit constraints.
2014-03-18 11:05:24 +01:00
Maciej Suminski
f6959c039c
Comments.
2014-03-18 11:04:52 +01:00
unknown
b436924380
Warning removal, patches from Camille 019
2014-03-16 18:40:23 +01:00
Maciej Suminski
40ee66f8c5
ZONE_CONTAINERs are drawn as outlines while being edited using the POINT_EDITOR.
2014-03-14 16:05:30 +01:00
Maciej Suminski
19a87ac780
Added EC_CONVERGING for zone areas modification.
2014-03-14 15:37:55 +01:00
Maciej Suminski
d6c1670cd7
Templated EDIT_POINT_CONSTRAINT.
...
Removed EDIT_CONSTRAINT::Update() - replaced with resetting constraints.
EDIT_CONSTRAINT is stored in EDIT_POIN using boost::shared_ptr instead of pointer.
Added EDIT_LINE::GetEnd() & GetOrigin(). Overridden ApplyConstraint() for EDIT_LINE.
Side EDIT_POINTS for zones are drawn as circles.
2014-03-14 15:15:38 +01:00
Maciej Suminski
85e8b8bd87
Yet another approach to 45 degree constraints.
2014-03-13 11:48:19 +01:00
Maciej Suminski
f9d5f584cb
Fixed 45 degree mode toggle.
2014-03-12 17:50:24 +01:00
Maciej Suminski
e5b0c720ed
Switched order of EDIT_POINTs for DIMENSION, so in case when feature lines are of 0 length, then still can be stretched.
2014-03-12 10:53:42 +01:00
Maciej Suminski
e6571f6862
Added new constraint for EDIT_POINTs (EPC_LINE).
...
Dimensions have EDIT_POINTs.
Different handling of 45 degree mode in POINT_EDITOR.
2014-03-12 10:46:11 +01:00
Maciej Suminski
54bf21768c
Added a few settings to make the layer settings more similar to KiCad defaults (moved vias to VIA_THROUGH_VISIBLE, added a few rules for required layers).
2014-03-11 10:58:58 +01:00
Maciej Suminski
5ac6579a87
Cursor snaps to EDIT_POINTs.
...
Added POINT_EDITOR::isModified().
2014-03-10 16:25:40 +01:00
Maciej Suminski
3927c667cc
Added documentation. Moved some functions from .h to .cpp files.
2014-03-07 10:26:33 +01:00
Maciej Suminski
88a0311afe
Added EDIT_LINEs for dragging zone outlines.
2014-03-06 17:34:04 +01:00
Maciej Suminski
8c43c216bb
45 degrees mode for POINT_EDITOR.
2014-03-06 14:41:25 +01:00
Maciej Suminski
2889a7a13a
Undo/redo support for POINT_EDITOR.
2014-03-06 12:36:20 +01:00
Maciej Suminski
f72aec25c0
Auto zone refilling after using the POINT_EDITOR.
...
Minor code cleaning.
2014-03-06 11:49:08 +01:00
Maciej Suminski
b6e3b3a3f9
Merged selection_tool branch.
2014-03-06 10:43:40 +01:00
Maciej Suminski
24c9b705a3
Zones are supported by POINT_EDITOR.
2014-02-28 18:24:29 +01:00
Maciej Suminski
d1ffaf0deb
Circles are supported by POINT_EDITOR.
2014-02-28 18:24:13 +01:00
Maciej Suminski
3c656691cf
Fixed POINT_EDITOR crash on GAL change / board reload.
2014-02-28 17:20:10 +01:00
Maciej Suminski
f87f12e222
Added TOOL_ACTION for updating EDIT_POINTS.
...
EDIT_POINTs show up when there is only one item selected (now after deselection as well).
2014-02-28 16:53:28 +01:00
Maciej Suminski
c5c83bd271
Added TOOL_MANAGER & ACTION_MANAGER::RunAction( const TOOL_ACTION aAction ).
...
Selection clearing is invoked using TOOL_ACTION object rather than its name.
2014-02-28 15:46:05 +01:00
Maciej Suminski
94cfed4b9e
Initial version of POINT_EDITOR.
2014-02-27 17:29:08 +01:00
Maciej Suminski
235da6084b
SELECTION_TOOL emits event notifying about selecting/deselecting/clearing selection.
2014-02-27 17:27:58 +01:00
Maciej Suminski
e6598e9d41
Added VIEW::ToWorld( double ).
...
TOOL_EVENT message is supposed to contain string as parameter.
Added missing header for class_drawsegment.h (KiROUND).
Renamed SELECTION_TOOL::containsSelected() to SELECTION_TOOL::selectionContains().
2014-02-27 16:13:27 +01:00
Maciej Suminski
a42a83a394
Minor changes to BRIGHT_BOX class.
2014-02-25 18:08:33 +01:00
Maciej Suminski
1c253bfba0
Some variables initialized to NULL.
2014-02-24 11:17:49 +01:00
Maciej Suminski
87785441bc
Removed some excessive variables.
2014-02-19 15:20:42 +01:00
Maciej Suminski
57c69b41db
Continous mode for drawing tools (i.e. they do not finish after adding a single object).
2014-02-19 13:51:32 +01:00
Maciej Suminski
a802ca87e0
Added TOOL_ACTION for PNS router activation.
...
Most of the GAL tools are activated by corresponding buttons on the right toolbar.
Removed menu entry for PNS router (as it is activated as the usual "Add track" tool).
2014-02-17 18:21:00 +01:00
Maciej Suminski
e14d9aaf8f
Fixed wrongly formulated assert.
2014-02-17 17:20:44 +01:00
Maciej Suminski
05de84d542
Undo/redo support.
2014-02-17 14:53:01 +01:00
Maciej Suminski
f82e07849b
Improved way of drawing 45-degree lines.
2014-02-17 11:33:03 +01:00
Maciej Suminski
c1c8f54e8b
Added a few asserts. Made some steps idiotproof.
2014-02-14 15:52:13 +01:00
Maciej Suminski
9d3f7230ee
New items are created using pointers (instead of copying automatic variables when drawing is finished).
2014-02-14 15:13:42 +01:00
Maciej Suminski
b1fb59ad13
Refactorization: moved drawing 45 degree multiple line to a function.
2014-02-14 14:24:12 +01:00
Maciej Suminski
a7cb90deb8
Some more minor refactorization.
2014-02-14 11:35:48 +01:00
Maciej Suminski
b7d4377621
Refactoring: zones and keepout areas are drawn using the same function.
2014-02-14 10:47:43 +01:00
Maciej Suminski
2b62a85263
Refactoring: made VIEW, VIEW_CONTROLS, BOARD and PCB_EDIT_FRAME fields in DRAWING_TOOL.
2014-02-14 09:49:49 +01:00
Maciej Suminski
597e98dbf4
Cursor is in world coordinates.
2014-02-13 20:23:28 +01:00
Maciej Suminski
3106d25361
Added keepout areas drawing tool.
2014-02-13 16:24:33 +01:00
Maciej Suminski
fce753ba24
Added zone drawing tool.
2014-02-13 16:10:32 +01:00
Maciej Suminski
45c5a3de7f
Placing modules with a minor bug.
2014-02-13 12:46:39 +01:00
Maciej Suminski
87d3458ea9
Added PCB_TARGET placing tool.
2014-02-11 17:15:33 +01:00
Maciej Suminski
ae5fa23285
Added DIMENSION drawing tool.
2014-02-11 14:38:44 +01:00
Maciej Suminski
2aef11a5fc
Made rotate & flip tool actions generic.
...
Drawing tool reacts to rotate & flip events while placing a text.
2014-02-10 17:08:55 +01:00
Maciej Suminski
4b27778451
Basic text placing tool.
2014-02-10 15:40:25 +01:00
Maciej Suminski
02316e02c3
Drawing arcs - version 1
2014-02-10 10:58:58 +01:00
Maciej Suminski
9ef713dfa8
Right click on an item when there is nothing selected - enables the context menu.
2014-02-07 20:44:34 +01:00
Maciej Suminski
45f55fb8c5
Actually added files for drawing tools. Added possibility of drawing circles.
2014-02-06 17:12:37 +01:00
Maciej Suminski
b21ce73c37
Initial version of the drawing tool.
2014-02-06 15:09:38 +01:00
Maciej Suminski
3a15f5ad28
Initialized value to suppress Valgrind warnings.
2014-02-05 11:33:45 +01:00
Maciej Suminski
17c030aa98
Fixed removal of items in the KiCad-default style.
2014-02-05 11:08:34 +01:00
Maciej Suminski
a9031edc0d
Grip margin is relative to the world's zoom.
2014-02-05 10:17:14 +01:00
Maciej Suminski
f922533978
Added possibility for editing pads properties.
2014-02-05 09:05:27 +01:00
Maciej Suminski
8df0f769f7
Added KiCad-style modification methods (hover over an item and press a hot key, without selecting first).
...
Modification point is selected basing on the number of selected items.
Rotation angle setting (Preferences->General) is taken into account while rotating.
2014-02-04 17:27:00 +01:00
Maciej Suminski
625dcddb27
Added 2 tool actions:
...
- pcbnew.InteractiveSelection.Single for selecting a single item
- pcbnew.InteractiveSelection.Clear for clearing the selection
Made SELECTION_TOOL::clearSelection private.
2014-02-04 16:03:56 +01:00
Maciej Suminski
106fa9bbd8
Edit tool may still be activated if it was invoked with no selected items.
2014-02-04 14:21:29 +01:00
Maciej Suminski
82ca611ed3
SELECTION_TOOL::SELECTION::Clear made private, as there was no chance to call it outside the SELECTION_TOOL class.
2014-02-04 11:37:54 +01:00
Maciej Suminski
24ba75ba92
Minor change to clearing selection handling.
2014-01-31 14:52:01 +01:00
Maciej Suminski
a73e386505
Added a new tool event: TA_UNDO_REDO, sent after undo/redo operation is issued.
2014-01-30 11:18:58 +01:00
Maciej Suminski
bec24b6c7f
Ratsnest is updated after rotation, flip, undo/redo operations.
...
Fixed crashes of ratsnest when a pointer for an item has changed after undo/redo operations.
Vias are properly removed from ratsnest (pcbnew/class_board.cpp).
2014-01-29 10:17:14 +01:00
Maciej Suminski
83f7c7e35e
Added RN_DATA::Add()/Remove() methods.
...
RN_DATA::Update()/AddSimple() take BOARD_ITEM* as the parameter (instead of being split to versions with BOARD_CONNECTED_ITEM* and MODULE*), to make the code look clearer.
2014-01-28 16:30:58 +01:00
Maciej Suminski
8f054a606f
Fixed snapping and ratsnest update for EDIT_TOOL.
2014-01-07 17:23:17 +01:00
Maciej Suminski
bc71a2c007
Removed TOOL_STATE.idle field, as it was redundant.
2014-01-07 14:11:53 +01:00
Maciej Suminski
537d82fb98
Upstream merge.
2014-01-06 10:29:31 +01:00
Dick Hollenbeck
517ca83fbc
Hide m_galCanvas and m_galCanvasActive behind accessors. Fix DLIST concatonation API corner case.
2013-12-26 16:36:43 -06:00
Maciej Suminski
fe5c5953fc
Upstream merge.
2013-12-20 10:15:00 +01:00
Maciej Suminski
84c496e138
Upstream merge
2013-12-19 11:15:27 +01:00
Maciej Suminski
d613da8b8d
Module texts are undo/redoable.
2013-12-19 10:10:42 +01:00
Maciej Suminski
7ce91d4e38
Fixed zone area removal (& undoing) using the EDIT_TOOL.
2013-12-18 17:16:15 +01:00
Maciej Suminski
fb78432367
Made pads & module texts unselectable
2013-12-18 16:26:21 +01:00
Maciej Suminski
f4de2877f3
Added possibility of removing selected items while dragging.
2013-12-18 15:38:38 +01:00
Maciej Suminski
fd0a3348ea
More elegant way of handling interruption of current modifications.
2013-12-18 15:11:12 +01:00
Maciej Suminski
c1d6e44413
Speed optimization during selection of multiple items.
...
Removed debug output.
2013-12-18 15:09:09 +01:00
Maciej Suminski
873235304e
SELECTION_TOOL uses ITEMS_PICKED_LIST to store selected items.
...
Modifications done using the EDIT_TOOL are saved using the default KiCad's undo buffer.
If there is only one item selected, info about the item is displayed in the bottom status bar.
2013-12-18 14:33:34 +01:00
Maciej Suminski
7e60cc530a
Comments.
2013-12-09 11:07:30 +01:00
Maciej Suminski
a3909d4f71
Added removal of BOARD_ITEMs for the TOOL_FRAMEWORK.
2013-12-09 11:01:05 +01:00
Maciej Suminski
d8acd1c718
Moved Init() & Reset() from TOOL_INTERACTIVE to TOOL_BASE.
...
Added REASON enum for Reset() function, so tools will know why a reset occured.
Fixed SELECTION_TOOL (it was bailing out, when a new board was loaded and some items were still selected).
Added removal of VIEW_ITEM groups after changing layers and removing items.
2013-12-09 10:42:38 +01:00
Maciej Suminski
fc2d8e91c9
Changed selection rules (pads&modules can be selected depending on the 'modules front/back' visibility instead of corresponding copper layers).
...
Fixed comments.
2013-12-05 14:52:08 +01:00
Maciej Suminski
27c7eb5dce
The Selection Tool displays information about selected items. ClearSelection() made public.
2013-12-04 10:58:51 +01:00
Maciej Suminski
24a317ce28
The Selection Tool is always active. Removed entries for toolbar menu and hotkeys for the tool.
2013-12-03 17:11:22 +01:00
Maciej Suminski
7d788109fe
Merged upstream
2013-12-03 16:43:53 +01:00
Maciej Suminski
07a5774a1e
Renamed MOVE_TOOL to EDIT_TOOL.
2013-12-03 16:09:03 +01:00
Maciej Suminski
b582162cb5
Split rotate and flip operations into separate functions.
...
Added Properties action (display properties windows)
2013-12-03 15:57:09 +01:00
Maciej Suminski
bec2e9b178
Added some comments & asserts.
2013-12-03 15:17:43 +01:00
Maciej Suminski
2b0f3350e3
Fixed disappearance of selected items after GAL switching.
2013-12-02 11:34:07 +01:00
Maciej Suminski
3ce3d22b97
Moved the SELECTION_TOOL out of the KIGFX namespace.
2013-11-29 09:37:23 +01:00
Maciej Suminski
af976b2d36
Automatic unregistration of tool actions during ACTION_MANAGER destruction.
2013-11-28 15:24:19 +01:00
Maciej Suminski
c6efc451e6
Added ratsnest for GAL
2013-11-25 16:50:03 +01:00
Dick Hollenbeck
300a047ffe
more EDA_LIST_DIALOG usability enhancements, compiler warning, coding standards
2013-11-18 13:27:27 -06:00
Maciej Suminski
5235d7e5eb
Modified error handling for OpenGL backend, now error messages should be visible.
2013-11-11 10:48:49 +01:00
Wayne Stambaugh
fe54ceacab
Fix debug builds on wxWidgets 2.8.
2013-11-03 13:15:46 -05:00
Maciej Suminski
5249b1a6da
Renamed TOOL_MOUSE_BUTTONS constants to avoid name conflict with Windows MB_RIGHT constant.
2013-10-15 10:41:00 +02:00
Maciej Suminski
bc305859b2
Mainly case changes.
2013-10-14 20:40:36 +02:00
Maciej Suminski
0ac3e1fbf2
Namespace KiGfx->KIGFX.
...
template<> -> template <>
Some more reformatting according to uncrustify results.
2013-10-14 16:13:35 +02:00
Maciej Suminski
54946f46f7
Fixed memory leak caused by ViewUpdate() with VIEW_ITEM::GEOMETRY/LAYER parameters.
2013-10-02 13:57:21 +02:00
Maciej Suminski
ff3c2bb66b
Worksheet is not selectable anymore.
2013-10-02 12:02:25 +02:00
Maciej Suminski
460dcfc621
Removed SELECTION layer.
2013-10-02 11:39:08 +02:00
Maciej Suminski
24af7490bb
Added missing ViewUpdate flag
2013-10-02 11:25:04 +02:00
Maciej Suminski
0b7305a823
Fixed reset for the selection tool.
2013-10-02 11:21:17 +02:00
Maciej Suminski
2ee858072f
Moved VIEW_GROUP creation to the selection tool. In this way selected items are always drawn on overlay, not only when dragged.
2013-10-02 10:21:05 +02:00
Maciej Suminski
e013f3e8c2
Comments, refactoring
2013-10-01 10:21:32 +02:00
Maciej Sumiński
d895a90bdc
Fixed selection disambiguation menu for wx2.8
2013-09-29 21:23:45 +02:00
Maciej Sumiński
e1290101aa
Fixed strings for wxWidgets 2.8
2013-09-29 12:57:20 +02:00
Maciej Suminski
35721397bd
Moved common actions to a separate file.
2013-09-27 20:52:34 +02:00
Maciej Suminski
6b74b5771a
Even more code comments and reformatting.
2013-09-27 18:51:21 +02:00
Maciej Suminski
3f320e4d68
Some more comments and code formatting.
2013-09-27 16:23:43 +02:00
Maciej Suminski
87b3f2e499
Added Init() to TOOL_INTERACTIVE, allowing to set up things that are needed to be initialized only once.
...
TOOL_ACTIONs can be run from CONTEXT_MENU after adding them.
Move tool actions are available to be run from CONTEXT_MENU displayed after right mouse button click on selected items.
Added some asserts to check the code.
2013-09-26 18:38:58 +02:00
Maciej Suminski
12b8714aff
Different way of handling CONTEXT_MENU in the selection tool. Removed some unnecessary lines.
2013-09-26 14:09:56 +02:00
Maciej Suminski
c4ad58f2a8
Added rotate & flip to the pcbnew.InteractiveMove tool, hotkeys for them and undoing all the operations on cancelling the tool.
2013-09-24 15:49:43 +02:00
Maciej Suminski
b39d562aea
Restored previous function names.
2013-09-20 16:32:11 +02:00
Maciej Suminski
c00533a150
Merged kicad-gal
2013-09-20 15:48:27 +02:00
Maciej Suminski
d4d801204f
Added cursor for the move tool
2013-09-20 15:01:08 +02:00
Maciej Suminski
2c03bf4109
Removed TA_ActivateTool (now tools are invoked by sending TA_Action event, with the tool name as string parameter).
...
Developed TOOL_Action class & added ActionManager. Hot keys registered by tools are processed.
Selection & move tool can be invoked by a hot key.
2013-09-19 17:02:57 +02:00
Maciej Suminski
9ec4520c45
Added missing files
2013-09-18 19:51:57 +02:00
Maciej Suminski
300c066b68
The last fix to selection rules.
2013-09-17 13:47:33 +02:00
Maciej Suminski
867067aa9c
Selection in high contrast mode selects only items that are shown as active.
2013-09-17 11:32:47 +02:00
Maciej Suminski
573f9841df
Better way of marking 'brightened' mode for items.
2013-09-16 11:00:59 +02:00
Maciej Suminski
86f520f76e
Sorted out headers.
2013-09-16 09:52:47 +02:00
Maciej Suminski
4c2e3b9a59
Removed unnecessary debug message
2013-09-13 15:05:57 +02:00
Maciej Suminski
82fe1a4972
Merged Tom's branch
2013-09-12 17:42:28 +02:00
Maciej Suminski
bfdad27893
Fixed rollback of traces movement.
2013-09-12 10:54:11 +02:00
Maciej Suminski
8f5e6badc4
Removed selection disambiguation in case when there is a choice between a footprint and a smaller component (smaller components have priority).
2013-09-12 10:46:22 +02:00
Maciej Suminski
382c6bd201
Move tool is activated when drag event starts nearby selected items.
2013-09-12 10:24:23 +02:00
Maciej Suminski
d13355f7fe
Removed some potential memory leaks.
2013-09-11 19:37:52 +02:00
Maciej Suminski
f179183dea
Removed some dead code.
2013-09-11 16:38:40 +02:00
Maciej Suminski
c5d3376c26
Changed some 'magic numbers' into constants. Added const modifier in appropriate spots.
2013-09-11 11:34:10 +02:00
tomasz.wlostowski@cern.ch
9eb3916852
Merged kicad-gal-orson
2013-09-10 19:32:19 +02:00
tomasz.wlostowski@cern.ch
fa817b7475
pcbnew: start integrating P&S router
2013-09-10 19:26:44 +02:00
Maciej Suminski
5e3ab406e2
Enabled snapping for the move tool.
2013-09-09 11:45:20 +02:00
Maciej Suminski
d2c47a74f2
Parts of MODULEs are not selectable in multiple selection mode.
2013-09-09 10:10:02 +02:00
Maciej Suminski
31f7ecc16a
First version of the move tool.
2013-09-09 09:34:52 +02:00
Maciej Suminski
d213a26057
Smarter selection algorithm (does not allow to select both whole MODULE and its parts at the same time).
...
Cancel event works better (selection box does not appear after cancelling the selection tool).
Removed blinking selection box effect.
Model is accessed in more appropriate way (getModel() method).
2013-09-06 16:04:12 +02:00
Maciej Suminski
44bafd1c8f
Improved selection rules. Added some comments to the selection tool.
2013-09-04 10:56:06 +02:00
Maciej Suminski
ee3f47ae51
Added autopanning to the selection tool.
2013-09-02 16:29:10 +02:00
Maciej Suminski
424aa28e1f
Added SELECTION_TOOL::GetSelection()
2013-08-30 10:23:18 +02:00
Maciej Suminski
1057d5a5be
Changed reaction of SELECTION_TOOL to ToolCancel event (first event clears selection, second one deactivates the tool).
2013-08-22 15:05:37 +02:00
Maciej Suminski
89a138c09e
Added handling keyboard events for the Tool framework.
2013-08-21 17:37:27 +02:00
Maciej Suminski
9bd7ba36ac
Added resetting of tools after loading a new board.
2013-08-15 10:20:49 +02:00
Maciej Suminski
d73d153665
Added selection boxes for texts.
2013-08-09 15:04:10 +02:00
Maciej Suminski
6af09fedda
Added the additive mode for the selection area.
2013-08-09 10:18:48 +02:00
Maciej Suminski
2cb6e59dfd
Multiple items selection tool.
2013-08-08 19:42:19 +02:00
Maciej Suminski
80901c69cf
Reformatting.
2013-08-08 19:41:20 +02:00
Maciej Suminski
12e10fd43a
Reformatting.
2013-08-08 14:59:59 +02:00
Maciej Suminski
282995eaee
Fixed disambiguation menu issue.
2013-08-08 14:50:32 +02:00
Maciej Suminski
402f3c6f2c
Added brightened mode for selecting items using disambiguation menu.
2013-08-08 12:30:00 +02:00
Maciej Suminski
16437e5d45
Added general purpose overlay layer and moved selection box to it.
2013-08-08 11:43:56 +02:00
Maciej Suminski
7d5a456344
Code reformatting.
2013-08-06 10:30:09 +02:00
Maciej Suminski
f193e389ec
Moved highlighted flag from VIEW_ITEM to EDA_ITEM. Added brightened and selected flag to EDA_ITEM.
2013-08-06 09:31:08 +02:00
tomasz.
31389c4063
pcbnew: tool initialization should belong to PCB_EDIT_FRAME to avoid linking errors on cvpcb.
2013-08-02 17:25:53 +02:00
tomasz.
69a44d5f13
pcbnew: hooked Tool Framework into the edit panel. Added a sample selection tool (not fully functional).
2013-08-02 16:53:50 +02:00