Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
bfa15d8d
Commit
bfa15d8d
authored
Jul 09, 2014
by
Maciej Suminski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Moved SELECTION out of SELECTION_TOOL class.
parent
d21271b4
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
55 additions
and
56 deletions
+55
-56
edit_tool.cpp
pcbnew/tools/edit_tool.cpp
+8
-8
edit_tool.h
pcbnew/tools/edit_tool.h
+2
-2
module_tools.cpp
pcbnew/tools/module_tools.cpp
+1
-1
placement_tool.cpp
pcbnew/tools/placement_tool.cpp
+6
-6
point_editor.cpp
pcbnew/tools/point_editor.cpp
+2
-2
selection_tool.cpp
pcbnew/tools/selection_tool.cpp
+1
-1
selection_tool.h
pcbnew/tools/selection_tool.h
+35
-36
No files found.
pcbnew/tools/edit_tool.cpp
View file @
bfa15d8d
...
...
@@ -73,7 +73,7 @@ bool EDIT_TOOL::Init()
int
EDIT_TOOL
::
Main
(
TOOL_EVENT
&
aEvent
)
{
const
SELECTION
_TOOL
::
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
const
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
// Shall the selection be cleared at the end?
bool
unselect
=
selection
.
Empty
();
...
...
@@ -218,7 +218,7 @@ int EDIT_TOOL::Main( TOOL_EVENT& aEvent )
int
EDIT_TOOL
::
Properties
(
TOOL_EVENT
&
aEvent
)
{
const
SELECTION
_TOOL
::
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
const
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
PCB_BASE_EDIT_FRAME
*
editFrame
=
getEditFrame
<
PCB_BASE_EDIT_FRAME
>
();
if
(
!
makeSelection
(
selection
)
)
...
...
@@ -287,7 +287,7 @@ int EDIT_TOOL::Properties( TOOL_EVENT& aEvent )
int
EDIT_TOOL
::
Rotate
(
TOOL_EVENT
&
aEvent
)
{
const
SELECTION
_TOOL
::
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
const
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
PCB_BASE_EDIT_FRAME
*
editFrame
=
getEditFrame
<
PCB_BASE_EDIT_FRAME
>
();
// Shall the selection be cleared at the end?
...
...
@@ -341,7 +341,7 @@ int EDIT_TOOL::Rotate( TOOL_EVENT& aEvent )
int
EDIT_TOOL
::
Flip
(
TOOL_EVENT
&
aEvent
)
{
const
SELECTION
_TOOL
::
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
const
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
PCB_BASE_FRAME
*
editFrame
=
getEditFrame
<
PCB_BASE_FRAME
>
();
// Shall the selection be cleared at the end?
...
...
@@ -395,7 +395,7 @@ int EDIT_TOOL::Flip( TOOL_EVENT& aEvent )
int
EDIT_TOOL
::
Remove
(
TOOL_EVENT
&
aEvent
)
{
const
SELECTION
_TOOL
::
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
const
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
if
(
!
makeSelection
(
selection
)
)
{
...
...
@@ -522,7 +522,7 @@ void EDIT_TOOL::setTransitions()
void
EDIT_TOOL
::
updateRatsnest
(
bool
aRedraw
)
{
const
SELECTION
_TOOL
::
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
const
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
RN_DATA
*
ratsnest
=
getModel
<
BOARD
>
()
->
GetRatsnest
();
ratsnest
->
ClearSimple
();
...
...
@@ -538,7 +538,7 @@ void EDIT_TOOL::updateRatsnest( bool aRedraw )
}
wxPoint
EDIT_TOOL
::
getModificationPoint
(
const
SELECTION
_TOOL
::
SELECTION
&
aSelection
)
wxPoint
EDIT_TOOL
::
getModificationPoint
(
const
SELECTION
&
aSelection
)
{
if
(
aSelection
.
Size
()
==
1
)
{
...
...
@@ -556,7 +556,7 @@ wxPoint EDIT_TOOL::getModificationPoint( const SELECTION_TOOL::SELECTION& aSelec
}
bool
EDIT_TOOL
::
makeSelection
(
const
SELECTION
_TOOL
::
SELECTION
&
aSelection
)
bool
EDIT_TOOL
::
makeSelection
(
const
SELECTION
&
aSelection
)
{
if
(
aSelection
.
Empty
()
)
// Try to find an item that could be modified
m_toolMgr
->
RunAction
(
COMMON_ACTIONS
::
selectionSingle
);
...
...
pcbnew/tools/edit_tool.h
View file @
bfa15d8d
...
...
@@ -143,11 +143,11 @@ private:
///> Returns the right modification point (e.g. for rotation), depending on the number of
///> selected items.
wxPoint
getModificationPoint
(
const
SELECTION
_TOOL
::
SELECTION
&
aSelection
);
wxPoint
getModificationPoint
(
const
SELECTION
&
aSelection
);
///> If there are no items currently selected, it tries to choose the item that is under
///> the cursor or displays a disambiguation menu if there are multpile items.
bool
makeSelection
(
const
SELECTION
_TOOL
::
SELECTION
&
aSelection
);
bool
makeSelection
(
const
SELECTION
&
aSelection
);
///> Updates view with the changes in the list.
void
processChanges
(
const
PICKED_ITEMS_LIST
*
aList
);
...
...
pcbnew/tools/module_tools.cpp
View file @
bfa15d8d
...
...
@@ -329,7 +329,7 @@ int MODULE_TOOLS::EnumeratePads( TOOL_EVENT& aEvent )
int
MODULE_TOOLS
::
CopyItems
(
TOOL_EVENT
&
aEvent
)
{
const
SELECTION
_TOOL
::
SELECTION
&
selection
=
m_toolMgr
->
GetTool
<
SELECTION_TOOL
>
()
->
GetSelection
();
const
SELECTION
&
selection
=
m_toolMgr
->
GetTool
<
SELECTION_TOOL
>
()
->
GetSelection
();
Activate
();
...
...
pcbnew/tools/placement_tool.cpp
View file @
bfa15d8d
...
...
@@ -73,7 +73,7 @@ bool PLACEMENT_TOOL::Init()
int
PLACEMENT_TOOL
::
AlignTop
(
TOOL_EVENT
&
aEvent
)
{
const
SELECTION
_TOOL
::
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
const
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
if
(
selection
.
Size
()
>
1
)
{
...
...
@@ -116,7 +116,7 @@ int PLACEMENT_TOOL::AlignTop( TOOL_EVENT& aEvent )
int
PLACEMENT_TOOL
::
AlignBottom
(
TOOL_EVENT
&
aEvent
)
{
const
SELECTION
_TOOL
::
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
const
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
if
(
selection
.
Size
()
>
1
)
{
...
...
@@ -159,7 +159,7 @@ int PLACEMENT_TOOL::AlignBottom( TOOL_EVENT& aEvent )
int
PLACEMENT_TOOL
::
AlignLeft
(
TOOL_EVENT
&
aEvent
)
{
const
SELECTION
_TOOL
::
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
const
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
if
(
selection
.
Size
()
>
1
)
{
...
...
@@ -202,7 +202,7 @@ int PLACEMENT_TOOL::AlignLeft( TOOL_EVENT& aEvent )
int
PLACEMENT_TOOL
::
AlignRight
(
TOOL_EVENT
&
aEvent
)
{
const
SELECTION
_TOOL
::
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
const
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
if
(
selection
.
Size
()
>
1
)
{
...
...
@@ -257,7 +257,7 @@ static bool compareY( const BOARD_ITEM* aA, const BOARD_ITEM* aB )
int
PLACEMENT_TOOL
::
DistributeHorizontally
(
TOOL_EVENT
&
aEvent
)
{
const
SELECTION
_TOOL
::
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
const
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
if
(
selection
.
Size
()
>
1
)
{
...
...
@@ -306,7 +306,7 @@ int PLACEMENT_TOOL::DistributeHorizontally( TOOL_EVENT& aEvent )
int
PLACEMENT_TOOL
::
DistributeVertically
(
TOOL_EVENT
&
aEvent
)
{
const
SELECTION
_TOOL
::
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
const
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
if
(
selection
.
Size
()
>
1
)
{
...
...
pcbnew/tools/point_editor.cpp
View file @
bfa15d8d
...
...
@@ -203,7 +203,7 @@ bool POINT_EDITOR::Init()
int
POINT_EDITOR
::
OnSelectionChange
(
TOOL_EVENT
&
aEvent
)
{
const
SELECTION
_TOOL
::
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
const
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
if
(
selection
.
Size
()
==
1
)
{
...
...
@@ -666,7 +666,7 @@ EDIT_POINT POINT_EDITOR::get45DegConstrainer() const
void
POINT_EDITOR
::
breakOutline
(
const
VECTOR2I
&
aBreakPoint
)
{
EDA_ITEM
*
item
=
m_editPoints
->
GetParent
();
const
SELECTION
_TOOL
::
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
const
SELECTION
&
selection
=
m_selectionTool
->
GetSelection
();
if
(
item
->
Type
()
==
PCB_ZONE_AREA_T
)
{
...
...
pcbnew/tools/selection_tool.cpp
View file @
bfa15d8d
...
...
@@ -764,7 +764,7 @@ BOARD_ITEM* SELECTION_TOOL::prefer( GENERAL_COLLECTOR& aCollector, const KICAD_T
}
void
SELECTION
_TOOL
::
SELECTION
::
clear
()
void
SELECTION
::
clear
()
{
items
.
ClearItemsList
();
group
->
Clear
();
...
...
pcbnew/tools/selection_tool.h
View file @
bfa15d8d
...
...
@@ -41,6 +41,41 @@ namespace KIGFX
class
VIEW_GROUP
;
}
struct
SELECTION
{
/// Set of selected items
PICKED_ITEMS_LIST
items
;
/// VIEW_GROUP that holds currently selected items
KIGFX
::
VIEW_GROUP
*
group
;
/// Checks if there is anything selected
bool
Empty
()
const
{
return
(
items
.
GetCount
()
==
0
);
}
/// Returns the number of selected parts
int
Size
()
const
{
return
items
.
GetCount
();
}
/// Alias to make code shorter and clearer
template
<
typename
T
>
T
*
Item
(
unsigned
int
aIndex
)
const
{
return
static_cast
<
T
*>
(
items
.
GetPickedItem
(
aIndex
)
);
}
private
:
/// Clears both the VIEW_GROUP and set of selected items. Please note that it does not
/// change properties of selected items (e.g. selection flag).
void
clear
();
friend
class
SELECTION_TOOL
;
};
/**
* Class SELECTION_TOOL
*
...
...
@@ -52,48 +87,12 @@ class VIEW_GROUP;
* - takes into account high-contrast & layer visibility settings
* - invokes InteractiveEdit tool when user starts to drag selected items
*/
class
SELECTION_TOOL
:
public
TOOL_INTERACTIVE
{
public
:
SELECTION_TOOL
();
~
SELECTION_TOOL
();
struct
SELECTION
{
/// Set of selected items
PICKED_ITEMS_LIST
items
;
/// VIEW_GROUP that holds currently selected items
KIGFX
::
VIEW_GROUP
*
group
;
/// Checks if there is anything selected
bool
Empty
()
const
{
return
(
items
.
GetCount
()
==
0
);
}
/// Returns the number of selected parts
int
Size
()
const
{
return
items
.
GetCount
();
}
/// Alias to make code shorter and clearer
template
<
typename
T
>
T
*
Item
(
unsigned
int
aIndex
)
const
{
return
static_cast
<
T
*>
(
items
.
GetPickedItem
(
aIndex
)
);
}
private
:
/// Clears both the VIEW_GROUP and set of selected items. Please note that it does not
/// change properties of selected items (e.g. selection flag).
void
clear
();
friend
class
SELECTION_TOOL
;
};
/// @copydoc TOOL_INTERACTIVE::Reset()
void
Reset
(
RESET_REASON
aReason
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment