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
706b267f
Commit
706b267f
authored
Aug 27, 2011
by
Dick Hollenbeck
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
zone properties dialog was not showing previously selected net
parent
d7fd8f17
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
61 additions
and
34 deletions
+61
-34
dialog_copper_zones.cpp
pcbnew/dialogs/dialog_copper_zones.cpp
+29
-13
dialog_copper_zones.h
pcbnew/dialogs/dialog_copper_zones.h
+32
-21
No files found.
pcbnew/dialogs/dialog_copper_zones.cpp
View file @
706b267f
...
...
@@ -502,7 +502,7 @@ void DIALOG_COPPER_ZONE::OnRunFiltersButtonClick( wxCommandEvent& event )
void
DIALOG_COPPER_ZONE
::
buildAvailableListOfNets
()
{
wxArrayString
listNetName
;
wxArrayString
listNetName
;
m_Parent
->
GetBoard
()
->
ReturnSortedNetnamesList
(
listNetName
,
m_NetSortingByPadCount
);
...
...
@@ -510,6 +510,7 @@ void DIALOG_COPPER_ZONE::buildAvailableListOfNets()
{
wxString
doNotShowFilter
=
m_DoNotShowNetNameFilter
->
GetValue
();
wxString
ShowFilter
=
m_ShowNetNameFilter
->
GetValue
();
for
(
unsigned
ii
=
0
;
ii
<
listNetName
.
GetCount
();
ii
++
)
{
if
(
listNetName
[
ii
].
Matches
(
doNotShowFilter
)
)
...
...
@@ -524,29 +525,44 @@ void DIALOG_COPPER_ZONE::buildAvailableListOfNets()
}
}
}
m_ListNetNameSelection
->
Clear
();
listNetName
.
Insert
(
wxT
(
"<no net>"
),
0
);
m_ListNetNameSelection
->
InsertItems
(
listNetName
,
0
);
m_ListNetNameSelection
->
SetSelection
(
0
);
// Ensure current select net for the zone is visible:
// Ensure currently selected net for the zone is visible, regardless of filters
int
selectedNetListNdx
=
-
1
;
int
net_select
=
m_Zone_Setting
->
m_NetcodeSelection
;
if
(
net_select
>
0
)
{
NETINFO_ITEM
*
equipot
=
m_Parent
->
GetBoard
()
->
FindNet
(
net_select
);
if
(
equipot
)
// Search net in list and select it
if
(
equipot
)
{
for
(
unsigned
ii
=
0
;
ii
<
listNetName
.
GetCount
();
ii
++
)
selectedNetListNdx
=
listNetName
.
Index
(
equipot
->
GetNetname
()
);
if
(
wxNOT_FOUND
==
selectedNetListNdx
)
{
if
(
listNetName
[
ii
]
==
equipot
->
GetNetname
()
)
{
m_ListNetNameSelection
->
SetSelection
(
ii
);
m_ListNetNameSelection
->
EnsureVisible
(
ii
);
break
;
}
// the currently selected net must *always* be visible.
listNetName
.
Insert
(
equipot
->
GetNetname
(),
0
);
selectedNetListNdx
=
0
;
}
}
}
else
if
(
net_select
==
0
)
selectedNetListNdx
=
0
;
// SetSelection() on "<no net>"
else
{
// selectedNetListNdx remains -1, no net selected.
}
m_ListNetNameSelection
->
Clear
();
m_ListNetNameSelection
->
InsertItems
(
listNetName
,
0
);
m_ListNetNameSelection
->
SetSelection
(
0
);
if
(
selectedNetListNdx
>=
0
)
{
m_ListNetNameSelection
->
SetSelection
(
selectedNetListNdx
);
m_ListNetNameSelection
->
EnsureVisible
(
selectedNetListNdx
);
}
}
...
...
pcbnew/dialogs/dialog_copper_zones.h
View file @
706b267f
/* dialog_copper_zones.h */
#ifndef DIALOG_COPPER_ZONES
#define DIALOG_COPPER_ZONES
#ifndef DIALOG_COPPER_ZONES
_
#define DIALOG_COPPER_ZONES
_
#include <wx/wx.h>
#include <wx/listctrl.h>
#include "dialog_copper_zones_base.h"
/* here is the derivated class from dialog_copper_zone_frame created by wxFormBuilder
/**
* Class DIALOG_COPPER_ZONE
* is the derivated class from dialog_copper_zone_frame created by wxFormBuilder
*/
class
DIALOG_COPPER_ZONE
:
public
DIALOG_COPPER_ZONE_BASE
{
private
:
PCB_EDIT_FRAME
*
m_Parent
;
wxConfig
*
m_Config
;
//
Current config
int
m_OnExitCode
;
/* exit code: ZONE_ABORT if no change,
* ZONE_OK if new values accepted
* ZONE_EXPORT_VALUES if values are exported to others zones
*/
PCB_EDIT_FRAME
*
m_Parent
;
wxConfig
*
m_Config
;
///<
Current config
int
m_OnExitCode
;
///< exit code: ZONE_ABORT if no change,
///< ZONE_OK if new values accepted
///< ZONE_EXPORT_VALUES if values are exported to others zones
ZONE_SETTING
*
m_Zone_Setting
;
bool
m_NetSortingByPadCount
;
/* false = alphabetic sort.
* true = pad count sort.
*/
bool
m_NetSortingByPadCount
;
///< false = alphabetic sort.
///< true = pad count sort.
long
m_NetFiltering
;
std
::
vector
<
int
>
m_LayerId
;
// Handle the real layer number from layer
// name position in m_LayerSelectionCtrl
static
wxString
m_netNameShowFilter
;
/* the filter to show nets (default * "*").
* static to keep this pattern for an entire pcbnew session
*/
std
::
vector
<
int
>
m_LayerId
;
///< Handle the real layer number from layer
///< name position in m_LayerSelectionCtrl
static
wxString
m_netNameShowFilter
;
///< the filter to show nets (default * "*").
///< static to keep this pattern for an entire pcbnew session
wxListView
*
m_LayerSelectionCtrl
;
static
wxPoint
prevPosition
;
//
Dialog position & size
static
wxPoint
prevPosition
;
///<
Dialog position & size
static
wxSize
prevSize
;
public
:
DIALOG_COPPER_ZONE
(
PCB_EDIT_FRAME
*
parent
,
ZONE_SETTING
*
zone_setting
);
private
:
/** Function initDialog
/**
* Function initDialog
* fills in the dialog controls using the current settings.
*/
void
initDialog
();
void
OnButtonOkClick
(
wxCommandEvent
&
event
);
void
OnButtonCancelClick
(
wxCommandEvent
&
event
);
void
OnClose
(
wxCloseEvent
&
event
);
...
...
@@ -55,13 +61,17 @@ private:
* @return bool - false if incorrect options, true if ok.
*/
bool
AcceptOptions
(
bool
aPromptForErrors
,
bool
aUseExportableSetupOnly
=
false
);
void
OnNetSortingOptionSelected
(
wxCommandEvent
&
event
);
void
ExportSetupToOtherCopperZones
(
wxCommandEvent
&
event
);
void
OnPadsInZoneClick
(
wxCommandEvent
&
event
);
void
OnRunFiltersButtonClick
(
wxCommandEvent
&
event
);
void
buildAvailableListOfNets
();
/** Function initListNetsParams
/**
* Function initListNetsParams
* initializes m_NetSortingByPadCount and m_NetFiltering values
* according to m_NetDisplayOption selection.
*/
...
...
@@ -74,4 +84,5 @@ private:
*/
wxBitmap
makeLayerBitmap
(
int
aColor
);
};
#endif // #ifndef DIALOG_COPPER_ZONES
#endif // DIALOG_COPPER_ZONES_
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