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
ca11fcb5
Commit
ca11fcb5
authored
Dec 17, 2013
by
Wayne Stambaugh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pcbnew: change general properties dialog rotation angle to text edit control.
parent
8fe06e12
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
50 additions
and
30 deletions
+50
-30
string.cpp
common/string.cpp
+15
-0
kicad_string.h
include/kicad_string.h
+12
-0
dialog_general_options.cpp
pcbnew/dialogs/dialog_general_options.cpp
+5
-11
dialog_general_options_BoardEditor_base.cpp
pcbnew/dialogs/dialog_general_options_BoardEditor_base.cpp
+3
-6
dialog_general_options_BoardEditor_base.fbp
pcbnew/dialogs/dialog_general_options_BoardEditor_base.fbp
+9
-6
dialog_general_options_BoardEditor_base.h
pcbnew/dialogs/dialog_general_options_BoardEditor_base.h
+2
-2
edit.cpp
pcbnew/edit.cpp
+2
-3
pcbframe.cpp
pcbnew/pcbframe.cpp
+1
-1
pcbnew_config.cpp
pcbnew/pcbnew_config.cpp
+1
-1
No files found.
common/string.cpp
View file @
ca11fcb5
...
...
@@ -477,3 +477,18 @@ bool ReplaceIllegalFileNameChars( std::string* aName )
return
changed
;
}
wxString
RemoveTrailingZeros
(
const
wxString
&
aString
)
{
wxString
retv
=
aString
;
int
i
=
retv
.
Length
();
while
(
--
i
>
0
&&
retv
[
i
]
==
wxChar
(
'0'
)
)
retv
.
RemoveLast
();
if
(
retv
[
i
]
==
wxChar
(
'.'
)
)
retv
.
RemoveLast
();
return
retv
;
}
include/kicad_string.h
View file @
ca11fcb5
...
...
@@ -164,6 +164,18 @@ wxString GetIllegalFileNameWxChars();
*/
bool
ReplaceIllegalFileNameChars
(
std
::
string
*
aName
);
/**
* Function RemoveTrailingZeros
* removes the trailing zeros from \a aString.
*
* All trailing zeros and the '.' character from floating point numbers are removed from
* \a aString.
*
* @param aString is a wxString object to remove the trailing zeros from.
* @return a wxString with the trailing zeros removed.
*/
wxString
RemoveTrailingZeros
(
const
wxString
&
aString
);
#ifndef HAVE_STRTOKR
// common/strtok_r.c optionally:
extern
"C"
char
*
strtok_r
(
char
*
str
,
const
char
*
delim
,
char
**
nextp
);
...
...
pcbnew/dialogs/dialog_general_options.cpp
View file @
ca11fcb5
...
...
@@ -37,7 +37,7 @@
#include <wxPcbStruct.h>
#include <class_board_design_settings.h>
#include <pcbcommon.h>
#include <kicad_string.h>
#include <pcbnew_id.h>
#include <class_board.h>
...
...
@@ -69,15 +69,9 @@ void DIALOG_GENERALOPTIONS::init()
m_CursorShape
->
SetSelection
(
GetParent
()
->
GetCursorShape
()
?
1
:
0
);
switch
(
GetParent
()
->
GetRotationAngle
()
)
{
case
450
:
m_RotationAngle
->
SetSelection
(
0
);
break
;
default
:
m_RotationAngle
->
SetSelection
(
1
);
}
wxString
rotationAngle
;
rotationAngle
.
Printf
(
wxT
(
"%.1f"
),
((
double
)
GetParent
()
->
GetRotationAngle
())
/
10.0
);
m_RotationAngle
->
SetValue
(
RemoveTrailingZeros
(
rotationAngle
)
);
wxString
timevalue
;
timevalue
<<
GetParent
()
->
GetAutoSaveInterval
()
/
60
;
...
...
@@ -121,7 +115,7 @@ void DIALOG_GENERALOPTIONS::OnOkClick( wxCommandEvent& event )
GetParent
()
->
SetCursorShape
(
m_CursorShape
->
GetSelection
()
);
GetParent
()
->
SetAutoSaveInterval
(
m_SaveTime
->
GetValue
()
*
60
);
GetParent
()
->
SetRotationAngle
(
10
*
wxAtoi
(
m_RotationAngle
->
GetStringSelection
(
)
)
);
GetParent
()
->
SetRotationAngle
(
wxRound
(
10.0
*
wxAtof
(
m_RotationAngle
->
GetValue
()
)
)
);
/* Updating the combobox to display the active layer. */
g_MaxLinksShowed
=
m_MaxShowLinks
->
GetValue
();
...
...
pcbnew/dialogs/dialog_general_options_BoardEditor_base.cpp
View file @
ca11fcb5
...
...
@@ -79,13 +79,10 @@ DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE::DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE(
m_staticTextRotationAngle
->
Wrap
(
-
1
);
fgSizer1
->
Add
(
m_staticTextRotationAngle
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxALL
,
5
);
wxString
m_RotationAngleChoices
[]
=
{
_
(
"45"
),
_
(
"90"
)
};
int
m_RotationAngleNChoices
=
sizeof
(
m_RotationAngleChoices
)
/
sizeof
(
wxString
);
m_RotationAngle
=
new
wxChoice
(
this
,
wxID_ANY
,
wxDefaultPosition
,
wxDefaultSize
,
m_RotationAngleNChoices
,
m_RotationAngleChoices
,
0
);
m_RotationAngle
->
SetSelection
(
0
);
m_RotationAngle
->
SetToolTip
(
_
(
"Footprints rotation increment, for rotate menu or hot key."
)
);
m_RotationAngle
=
new
wxTextCtrl
(
this
,
wxID_ANY
,
wxEmptyString
,
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_RotationAngle
->
SetToolTip
(
_
(
"Context menu and hot key footprint rotation increment."
)
);
fgSizer1
->
Add
(
m_RotationAngle
,
0
,
wxALIGN_CENTER_VERTICAL
|
wx
ALL
,
5
);
fgSizer1
->
Add
(
m_RotationAngle
,
0
,
wxALIGN_CENTER_VERTICAL
|
wx
BOTTOM
|
wxLEFT
|
wxRIGHT
,
5
);
bMiddleLeftSizer
->
Add
(
fgSizer1
,
0
,
wxEXPAND
,
5
);
...
...
pcbnew/dialogs/dialog_general_options_BoardEditor_base.fbp
View file @
ca11fcb5
...
...
@@ -831,9 +831,9 @@
</object>
<object
class=
"sizeritem"
expanded=
"1"
>
<property
name=
"border"
>
5
</property>
<property
name=
"flag"
>
wxALIGN_CENTER_VERTICAL|wx
ALL
</property>
<property
name=
"flag"
>
wxALIGN_CENTER_VERTICAL|wx
BOTTOM|wxLEFT|wxRIGHT
</property>
<property
name=
"proportion"
>
0
</property>
<object
class=
"wx
Choice
"
expanded=
"1"
>
<object
class=
"wx
TextCtrl
"
expanded=
"1"
>
<property
name=
"BottomDockable"
>
1
</property>
<property
name=
"LeftDockable"
>
1
</property>
<property
name=
"RightDockable"
>
1
</property>
...
...
@@ -847,7 +847,6 @@
<property
name=
"caption"
></property>
<property
name=
"caption_visible"
>
1
</property>
<property
name=
"center_pane"
>
0
</property>
<property
name=
"choices"
>
"
45
"
"
90
"
</property>
<property
name=
"close_button"
>
1
</property>
<property
name=
"context_help"
></property>
<property
name=
"context_menu"
>
1
</property>
...
...
@@ -865,6 +864,7 @@
<property
name=
"max_size"
></property>
<property
name=
"maximize_button"
>
0
</property>
<property
name=
"maximum_size"
></property>
<property
name=
"maxlength"
></property>
<property
name=
"min_size"
></property>
<property
name=
"minimize_button"
>
0
</property>
<property
name=
"minimum_size"
></property>
...
...
@@ -877,22 +877,21 @@
<property
name=
"pin_button"
>
1
</property>
<property
name=
"pos"
></property>
<property
name=
"resize"
>
Resizable
</property>
<property
name=
"selection"
>
0
</property>
<property
name=
"show"
>
1
</property>
<property
name=
"size"
></property>
<property
name=
"style"
></property>
<property
name=
"subclass"
></property>
<property
name=
"toolbar_pane"
>
0
</property>
<property
name=
"tooltip"
>
Footprints rotation increment, for rotate menu or hot key
.
</property>
<property
name=
"tooltip"
>
Context menu and hot key footprint rotation increment
.
</property>
<property
name=
"validator_data_type"
></property>
<property
name=
"validator_style"
>
wxFILTER_NONE
</property>
<property
name=
"validator_type"
>
wxDefaultValidator
</property>
<property
name=
"validator_variable"
></property>
<property
name=
"value"
></property>
<property
name=
"window_extra_style"
></property>
<property
name=
"window_name"
></property>
<property
name=
"window_style"
></property>
<event
name=
"OnChar"
></event>
<event
name=
"OnChoice"
></event>
<event
name=
"OnEnterWindow"
></event>
<event
name=
"OnEraseBackground"
></event>
<event
name=
"OnKeyDown"
></event>
...
...
@@ -914,6 +913,10 @@
<event
name=
"OnRightUp"
></event>
<event
name=
"OnSetFocus"
></event>
<event
name=
"OnSize"
></event>
<event
name=
"OnText"
></event>
<event
name=
"OnTextEnter"
></event>
<event
name=
"OnTextMaxLen"
></event>
<event
name=
"OnTextURL"
></event>
<event
name=
"OnUpdateUI"
></event>
</object>
</object>
...
...
pcbnew/dialogs/dialog_general_options_BoardEditor_base.h
View file @
ca11fcb5
...
...
@@ -23,7 +23,7 @@ class DIALOG_SHIM;
#include <wx/sizer.h>
#include <wx/stattext.h>
#include <wx/spinctrl.h>
#include <wx/
choice
.h>
#include <wx/
textctrl
.h>
#include <wx/checkbox.h>
#include <wx/statbox.h>
#include <wx/statline.h>
...
...
@@ -64,7 +64,7 @@ class DIALOG_GENERALOPTIONS_BOARDEDITOR_BASE : public DIALOG_SHIM
wxStaticText
*
m_staticTextautosave
;
wxSpinCtrl
*
m_SaveTime
;
wxStaticText
*
m_staticTextRotationAngle
;
wx
Choice
*
m_RotationAngle
;
wx
TextCtrl
*
m_RotationAngle
;
wxCheckBox
*
m_DrcOn
;
wxCheckBox
*
m_ShowGlobalRatsnest
;
wxCheckBox
*
m_ShowModuleRatsnest
;
...
...
pcbnew/edit.cpp
View file @
ca11fcb5
...
...
@@ -745,7 +745,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
// This is a simple rotation, no other editing in progress
if
(
!
GetCurItem
()
->
IsMoving
()
)
SaveCopyInUndoList
(
GetCurItem
(),
UR_
ROTAT
ED
,
((
MODULE
*
)
GetCurItem
())
->
GetPosition
()
);
SaveCopyInUndoList
(
GetCurItem
(),
UR_
CHANG
ED
,
((
MODULE
*
)
GetCurItem
())
->
GetPosition
()
);
Rotate_Module
(
&
dc
,
(
MODULE
*
)
GetCurItem
(),
m_rotationAngle
,
true
);
break
;
...
...
@@ -773,8 +773,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
// This is a simple rotation, no other editing in progress
if
(
!
GetCurItem
()
->
IsMoving
()
)
SaveCopyInUndoList
(
GetCurItem
(),
UR_ROTATED_CLOCKWISE
,
((
MODULE
*
)
GetCurItem
())
->
GetPosition
()
);
SaveCopyInUndoList
(
GetCurItem
(),
UR_CHANGED
,
((
MODULE
*
)
GetCurItem
())
->
GetPosition
()
);
Rotate_Module
(
&
dc
,
(
MODULE
*
)
GetCurItem
(),
-
m_rotationAngle
,
true
);
break
;
...
...
pcbnew/pcbframe.cpp
View file @
ca11fcb5
...
...
@@ -1077,7 +1077,7 @@ void PCB_EDIT_FRAME::ToPlotter( wxCommandEvent& event )
void
PCB_EDIT_FRAME
::
SetRotationAngle
(
int
aRotationAngle
)
{
wxCHECK2_MSG
(
aRotationAngle
>
0
&&
aRotationAngle
<
900
,
aRotationAngle
=
900
,
wxCHECK2_MSG
(
aRotationAngle
>
0
&&
aRotationAngle
<
=
900
,
aRotationAngle
=
900
,
wxT
(
"Invalid rotation angle, defaulting to 90."
)
);
m_rotationAngle
=
aRotationAngle
;
...
...
pcbnew/pcbnew_config.cpp
View file @
ca11fcb5
...
...
@@ -479,7 +479,7 @@ PARAM_CFG_ARRAY& PCB_EDIT_FRAME::GetConfigurationSettings()
// Miscellaneous:
m_configSettings
.
push_back
(
new
PARAM_CFG_INT
(
true
,
wxT
(
"RotationAngle"
),
&
m_rotationAngle
,
900
,
450
,
900
)
);
900
,
1
,
900
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_INT
(
true
,
wxT
(
"MaxLnkS"
),
&
g_MaxLinksShowed
,
3
,
0
,
15
)
);
m_configSettings
.
push_back
(
new
PARAM_CFG_BOOL
(
true
,
wxT
(
"ShowMRa"
),
...
...
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