Commit a71823b4 authored by Brian Sidebotham's avatar Brian Sidebotham

* Missing changes

parents 64bae1cf dda896d5
......@@ -26,6 +26,19 @@ set( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMakeModules )
#option( USE_KIWAY_DLLS "Build the major modules as KIFACE DLLs or DSOs, will soon be the norm." ON )
set( USE_KIWAY_DLLS true ) # this is now mandatory, the code is the same anyways, the old code is gone.
# The desire is to migrate designs *away from* case independence, and to create designs which use
# literally (case specific) interpreted component names. But for backwards compatibility,
# you may turn OFF this option if you really must. (Remember that with KiCad using text
# data files, typically you would be better off simply doctoring those files into
# a case literal state with a text editor and move forward into the brave new
# world of case specificity. Also, BOM generators may not work properly when you
# have this option turned OFF, the xml export's referential integrity is broken
# on library part name. Hence the default is ON now, as of 29-Jan-2014.
option( KICAD_KEEPCASE
"ON= case specific string matching on component names, OFF= match names as if they were spelt using uppercase."
ON
)
option( USE_WX_GRAPHICS_CONTEXT
"Use wxGraphicsContext for rendering ( default OFF). Warning, this is experimental" )
......@@ -231,6 +244,10 @@ if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
endif( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
if( KICAD_KEEPCASE )
add_definitions( -DKICAD_KEEPCASE )
endif()
if( USE_WX_OVERLAY OR APPLE )
add_definitions( -DUSE_WX_OVERLAY )
endif()
......
......@@ -177,10 +177,10 @@ ENDDEF
# 74LS245
#
DEF 74LS245 U 0 10 Y Y 1 F N
F0 "U" 100 575 60 H V L BNN
F1 "74LS245" 50 -575 60 H V L TNN
F2 "" 0 0 60 H V C CNN
F3 "" 0 0 60 H V C CNN
F0 "U" 100 575 50 H V L BNN
F1 "74LS245" 50 -575 50 H V L TNN
F2 "" 50 -650 30 H V L CNN
F3 "" 100 575 30 H V C CNN
ALIAS 74HC245
DRAW
X GND 10 0 -550 0 U 60 60 0 0 W N
......@@ -358,7 +358,7 @@ DEF C C 0 10 N Y 1 F N
F0 "C" 0 100 40 H V L CNN
F1 "C" 6 -85 40 H V L CNN
F2 "" 38 -150 30 H V C CNN
F3 "" 0 0 60 H V C CNN
F3 "" 0 100 30 H V C CNN
$FPLIST
SM*
C?
......@@ -406,7 +406,7 @@ DEF CP C 0 10 N N 1 F N
F0 "C" 50 100 40 H V L CNN
F1 "CP" 50 -100 40 H V L CNN
F2 "" 100 -150 30 H V C CNN
F3 "" 0 0 300 H V C CNN
F3 "" 50 100 30 H V C CNN
ALIAS CAPAPOL
$FPLIST
CP*
......
Cmp-Mod V01 Created by CvPcb (2013-08-20 BZR 4294)-product date = 21/08/2013 18:12:43
Cmp-Mod V01 Created by Cvpcb (2014-09-16 BZR 5138)-product date = 20/09/2014 09:12:59
BeginCmp
TimeStamp = /322D3011;
......@@ -11,56 +11,56 @@ BeginCmp
TimeStamp = /32307DE2;
Reference = C1;
ValeurCmp = 47uF;
IdModule = CP6;
IdModule = discret:CP6;
EndCmp
BeginCmp
TimeStamp = /32307ECF;
Reference = C2;
ValeurCmp = 47pF;
IdModule = C1;
IdModule = discret:C1;
EndCmp
BeginCmp
TimeStamp = /32307ED4;
Reference = C3;
ValeurCmp = 47pF;
IdModule = C1;
IdModule = discret:C1;
EndCmp
BeginCmp
TimeStamp = /32307DCF;
Reference = C4;
ValeurCmp = 47uF;
IdModule = CP6;
IdModule = discret:CP6;
EndCmp
BeginCmp
TimeStamp = /32307DCA;
Reference = C5;
ValeurCmp = 47uF;
IdModule = CP6;
IdModule = discret:CP6;
EndCmp
BeginCmp
TimeStamp = /32307DC0;
Reference = C6;
ValeurCmp = 47uF;
IdModule = CP6;
IdModule = discret:CP6;
EndCmp
BeginCmp
TimeStamp = /322D32AC;
Reference = D1;
ValeurCmp = LED;
IdModule = LEDV;
IdModule = discret:LEDV;
EndCmp
BeginCmp
TimeStamp = /322D32BE;
Reference = D2;
ValeurCmp = LED;
IdModule = LEDV;
IdModule = discret:LEDV;
EndCmp
BeginCmp
......@@ -74,84 +74,84 @@ BeginCmp
TimeStamp = /3256759C;
Reference = P1;
ValeurCmp = DB25FEMELLE;
IdModule = DB25FC;
IdModule = connect:DB25FC;
EndCmp
BeginCmp
TimeStamp = /32307EA1;
Reference = R1;
ValeurCmp = 100K;
IdModule = R3;
IdModule = discret:R3;
EndCmp
BeginCmp
TimeStamp = /32307EAA;
Reference = R2;
ValeurCmp = 1K;
IdModule = R3;
IdModule = discret:R3;
EndCmp
BeginCmp
TimeStamp = /324002E6;
Reference = R3;
ValeurCmp = 10K;
IdModule = R3;
IdModule = discret:R3;
EndCmp
BeginCmp
TimeStamp = /322D3295;
Reference = R4;
ValeurCmp = 330;
IdModule = R3;
IdModule = discret:R3;
EndCmp
BeginCmp
TimeStamp = /322D32A0;
Reference = R5;
ValeurCmp = 330;
IdModule = R3;
IdModule = discret:R3;
EndCmp
BeginCmp
TimeStamp = /325679C1;
Reference = RR1;
ValeurCmp = 9x1K;
IdModule = r_pack9;
IdModule = discret:r_pack9;
EndCmp
BeginCmp
TimeStamp = /322D31F4;
Reference = U1;
ValeurCmp = 74LS245;
IdModule = DIP-20__300;
IdModule = dip_sockets:DIP-20__300;
EndCmp
BeginCmp
TimeStamp = /322D35B4;
Reference = U2;
ValeurCmp = 74LS688;
IdModule = DIP-20__300;
IdModule = dip_sockets:DIP-20__300;
EndCmp
BeginCmp
TimeStamp = /4A087146;
Reference = U3;
ValeurCmp = 74LS541;
IdModule = DIP-20__300;
IdModule = dip_sockets:DIP-20__300;
EndCmp
BeginCmp
TimeStamp = /3240023F;
Reference = U5;
ValeurCmp = 628128;
IdModule = DIP-32__600;
IdModule = dip_sockets:DIP-32__600;
EndCmp
BeginCmp
TimeStamp = /322D321C;
Reference = U8;
ValeurCmp = EP600;
IdModule = DIP-24__300;
IdModule = dip_sockets:DIP-24__300;
EndCmp
BeginCmp
......@@ -165,7 +165,7 @@ BeginCmp
TimeStamp = /32307EC0;
Reference = X1;
ValeurCmp = 8MHz;
IdModule = HC-18UH;
IdModule = discret:HC-18UH;
EndCmp
EndListe
This diff is collapsed.
This diff is collapsed.
update=07/08/2013 15:44:03
update=20/09/2014 09:14:18
version=1
last_client=pcbnew
last_client=kicad
[common]
NetDir=
[general]
......@@ -40,7 +40,7 @@ LibName12=image
version=1
PageLayoutDescrFile=pagelayout_logo.kicad_wks
LastNetListRead=interf_u.net
UseCmpFile=1
UseCmpFile=0
PadDrill=0.89916
PadDrillOvalY=0.89916
PadSizeH=1.397
......@@ -56,14 +56,3 @@ SolderMaskMinWidth=0
DrawSegmentWidth=0.381
BoardOutlineThickness=0.127
ModuleOutlineThickness=0.381
[pcbnew/libraries]
LibDir=
LibName1=connect
LibName2=discret
LibName3=led
LibName4=sockets
LibName5=dip_sockets
LibName6=pin_array
LibName7=divers
LibName8=libcms
LibName9=display
......@@ -1181,7 +1181,7 @@ BF FD 96 77 9E 38 7E F1 EC E1 55 E2 AF 2F E0 1B 5F F9 FC FE BD 4F B9 56 EB C9 C9
29 65 D5 9A 89 35 EB 37 F6 E3 02 4F 95 57 89 BF 1E 63 D9 CA D5 CB 7E 65 BC F3 FF E1 D5 7A 1F CE
A2 94 8E 79 E6 79 49 E6 FD 75 9E B9 C4 BC BF CE 33 97 98 F7 D7 79 E6 12 F3 FE 3A CF 5C E2 E7 E2
03 93 93 93 FD BA 8E 79 E6 39 19 8E FB EB DC 15 0B E6 F9 D5 61 7E 3F 30 CF 5C 62 DE 5F E7 99 4B
FC 1F 94 BD 62 D3 EE A5 8B 6B 00 00 00 00 49 45 4E 44 AE 42 60 82 10
FC 1F 94 BD 62 D3 EE A5 8B 6B 00 00 00 00 49 45 4E 44 AE 42 60 82 41
EndData
$EndBitmap
Wire Bus Line
......@@ -1683,7 +1683,7 @@ Connection ~ 1200 7600
Wire Wire Line
3900 6900 3350 6900
Wire Wire Line
3350 6800 3350 6900
3350 6900 3350 6800
Wire Wire Line
3350 6800 2450 6800
Wire Wire Line
......@@ -1703,9 +1703,9 @@ Wire Wire Line
Wire Wire Line
2500 7000 2500 6900
Wire Wire Line
3050 6900 2500 6900
2500 6900 3050 6900
Wire Wire Line
3050 7950 3050 6900
3050 6900 3050 7950
Wire Wire Line
3900 7600 3400 7600
Wire Wire Line
......@@ -1773,9 +1773,9 @@ Wire Bus Line
Wire Bus Line
3750 3450 3750 5350
Wire Bus Line
3300 5350 3750 5350
3750 5350 3300 5350
Wire Bus Line
3300 6650 3300 5350
3300 5350 3300 6650
Wire Bus Line
3900 3700 3900 2450
Wire Wire Line
......@@ -1794,7 +1794,7 @@ U 1 1 4A087146
P 5250 1950
F 0 "U3" H 5250 2525 60 0000 C BNN
F 1 "74LS541" H 5250 1375 60 0000 C TNN
F 2 "DIP-20__300" H 5250 1250 60 0000 C CNN
F 2 "dip_sockets:DIP-20__300" H 5250 1250 60 0000 C CNN
F 3 "" H 5250 1950 60 0001 C CNN
1 5250 1950
1 0 0 -1
......@@ -2074,7 +2074,7 @@ U 1 1 325679C1
P 2750 8300
F 0 "RR1" V 2800 8300 70 0000 C CNN
F 1 "9x1K" V 2770 8630 70 0000 C CNN
F 2 "r_pack9" V 2900 8350 60 0000 C CNN
F 2 "discret:r_pack9" V 2900 8350 60 0000 C CNN
F 3 "" H 2750 8300 60 0001 C CNN
1 2750 8300
0 1 1 0
......@@ -2130,7 +2130,7 @@ U 1 1 3256759C
P 15200 7200
F 0 "P1" H 15250 8550 70 0000 C CNN
F 1 "DB25FEMELLE" H 15150 5850 70 0000 C CNN
F 2 "DB25FC" H 15150 5750 60 0000 C CNN
F 2 "connect:DB25FC" H 15150 5750 60 0000 C CNN
F 3 "" H 15200 7200 60 0001 C CNN
1 15200 7200
1 0 0 -1
......@@ -2333,7 +2333,7 @@ U 1 1 324002E6
P 6350 9900
F 0 "R3" V 6430 9900 50 0000 C CNN
F 1 "10K" V 6350 9900 50 0000 C CNN
F 2 "R3" V 6250 9900 60 0000 C CNN
F 2 "discret:R3" V 6250 9900 60 0000 C CNN
F 3 "" H 6350 9900 60 0001 C CNN
1 6350 9900
0 1 1 0
......@@ -2384,7 +2384,7 @@ U 1 1 3240023F
P 7700 9050
F 0 "U5" H 7750 10200 70 0000 C CNN
F 1 "628128" H 7700 7900 70 0000 C CNN
F 2 "DIP-32__600" H 7700 7800 60 0000 C CNN
F 2 "dip_sockets:DIP-32__600" H 7700 7800 60 0000 C CNN
F 3 "" H 7700 9050 60 0001 C CNN
1 7700 9050
1 0 0 -1
......@@ -2627,7 +2627,7 @@ U 1 1 32307ED4
P 14350 4600
F 0 "C3" V 14450 4750 50 0000 C CNN
F 1 "47pF" V 14450 4450 50 0000 C CNN
F 2 "C1" H 14550 4600 60 0000 C CNN
F 2 "discret:C1" H 14550 4600 60 0000 C CNN
F 3 "" H 14350 4600 60 0001 C CNN
1 14350 4600
1 0 0 -1
......@@ -2638,7 +2638,7 @@ U 1 1 32307ECF
P 13550 4600
F 0 "C2" V 13650 4750 50 0000 C CNN
F 1 "47pF" V 13650 4450 50 0000 C CNN
F 2 "C1" H 13350 4600 60 0000 C CNN
F 2 "discret:C1" H 13350 4600 60 0000 C CNN
F 3 "" H 13550 4600 60 0001 C CNN
1 13550 4600
1 0 0 -1
......@@ -2649,7 +2649,7 @@ U 1 1 32307EC0
P 13950 4150
F 0 "X1" H 13950 4350 70 0000 C CNN
F 1 "8MHz" H 13950 3950 70 0000 C CNN
F 2 "HC-18UH" H 13950 3850 60 0000 C CNN
F 2 "discret:HC-18UH" H 13950 3850 60 0000 C CNN
F 3 "" H 13950 4150 60 0001 C CNN
1 13950 4150
1 0 0 -1
......@@ -2660,7 +2660,7 @@ U 1 1 32307EAA
P 14900 3700
F 0 "R2" V 14980 3700 50 0000 C CNN
F 1 "1K" V 14900 3700 50 0000 C CNN
F 2 "R3" V 14800 3700 60 0000 C CNN
F 2 "discret:R3" V 14800 3700 60 0000 C CNN
F 3 "" H 14900 3700 60 0001 C CNN
1 14900 3700
0 1 1 0
......@@ -2671,7 +2671,7 @@ U 1 1 32307EA1
P 13950 3700
F 0 "R1" V 14030 3700 50 0000 C CNN
F 1 "100K" V 13950 3700 50 0000 C CNN
F 2 "R3" V 13850 3700 60 0000 C CNN
F 2 "discret:R3" V 13850 3700 60 0000 C CNN
F 3 "" H 13950 3700 60 0001 C CNN
1 13950 3700
0 1 1 0
......@@ -2682,7 +2682,7 @@ U 1 1 32307DE2
P 4450 9100
F 0 "C1" H 4500 9200 50 0000 L CNN
F 1 "47uF" H 4500 9000 50 0000 L CNN
F 2 "CP6" H 4650 9100 60 0000 C CNN
F 2 "discret:CP6" H 4650 9100 60 0000 C CNN
F 3 "" H 4450 9100 60 0001 C CNN
1 4450 9100
1 0 0 -1
......@@ -2693,7 +2693,7 @@ U 1 1 32307DCF
P 3800 9100
F 0 "C4" H 3850 9200 50 0000 L CNN
F 1 "47uF" H 3850 9000 50 0000 L CNN
F 2 "CP6" H 4000 9100 60 0000 C CNN
F 2 "discret:CP6" H 4000 9100 60 0000 C CNN
F 3 "" H 3800 9100 60 0001 C CNN
1 3800 9100
1 0 0 -1
......@@ -2704,7 +2704,7 @@ U 1 1 32307DCA
P 3250 9100
F 0 "C5" H 3300 9200 50 0000 L CNN
F 1 "47uF" H 3300 9000 50 0000 L CNN
F 2 "CP6" H 3450 9100 60 0000 C CNN
F 2 "discret:CP6" H 3450 9100 60 0000 C CNN
F 3 "" H 3250 9100 60 0001 C CNN
1 3250 9100
1 0 0 -1
......@@ -2715,7 +2715,7 @@ U 1 1 32307DC0
P 2600 9100
F 0 "C6" H 2650 9200 50 0000 L CNN
F 1 "47uF" H 2650 9000 50 0000 L CNN
F 2 "CP6" H 2800 9100 60 0000 C CNN
F 2 "discret:CP6" H 2800 9100 60 0000 C CNN
F 3 "" H 2600 9100 60 0001 C CNN
1 2600 9100
1 0 0 -1
......@@ -2742,7 +2742,7 @@ U 1 1 322D35B4
P 4600 6900
F 0 "U2" H 4600 7850 60 0000 C CNN
F 1 "74LS688" H 4600 5950 60 0000 C CIB
F 2 "DIP-20__300" H 4600 5850 60 0000 C CNB
F 2 "dip_sockets:DIP-20__300" H 4600 5850 60 0000 C CNB
F 3 "" H 4600 6900 60 0001 C CNN
1 4600 6900
1 0 0 -1
......@@ -2766,7 +2766,7 @@ U 1 1 322D32BE
P 14250 2000
F 0 "D2" H 14250 2100 50 0000 C CNN
F 1 "LED" H 14250 1900 50 0000 C CNN
F 2 "LEDV" V 14250 2250 60 0000 C CNN
F 2 "discret:LEDV" V 14250 2250 60 0000 C CNN
F 3 "" H 14250 2000 60 0001 C CNN
1 14250 2000
0 1 1 0
......@@ -2777,7 +2777,7 @@ U 1 1 322D32AC
P 14650 1550
F 0 "D1" H 14650 1650 50 0000 C CNN
F 1 "LED" H 14650 1450 50 0000 C CNN
F 2 "LEDV" V 14650 1800 60 0000 C CNN
F 2 "discret:LEDV" V 14650 1800 60 0000 C CNN
F 3 "" H 14650 1550 60 0001 C CNN
1 14650 1550
0 1 1 0
......@@ -2788,7 +2788,7 @@ U 1 1 322D32A0
P 13700 1500
F 0 "R5" V 13780 1500 50 0000 C CNN
F 1 "330" V 13700 1500 50 0000 C CNN
F 2 "R3" V 13730 1680 30 0000 C CNN
F 2 "discret:R3" V 13730 1680 30 0000 C CNN
F 3 "" H 13700 1500 60 0001 C CNN
1 13700 1500
0 1 1 0
......@@ -2799,7 +2799,7 @@ U 1 1 322D3295
P 13700 1050
F 0 "R4" V 13780 1050 50 0000 C CNN
F 1 "330" V 13700 1050 50 0000 C CNN
F 2 "R3" V 13850 1050 60 0000 C CNN
F 2 "discret:R3" V 13850 1050 60 0000 C CNN
F 3 "" H 13700 1050 60 0001 C CNN
1 13700 1050
0 1 1 0
......@@ -2810,7 +2810,7 @@ U 1 1 322D321C
P 7650 1800
F 0 "U8" H 7650 1900 70 0000 C CNN
F 1 "EP600" H 7650 850 70 0000 C CNN
F 2 "DIP-24__300" H 7700 750 60 0000 C CNN
F 2 "dip_sockets:DIP-24__300" H 7700 750 60 0000 C CNN
F 3 "" H 7650 1800 60 0001 C CNN
1 7650 1800
1 0 0 -1
......@@ -2821,7 +2821,7 @@ U 1 1 322D31F4
P 5200 3600
F 0 "U1" H 5300 4175 60 0000 L BNN
F 1 "74LS245" H 5250 3025 60 0000 L TNN
F 2 "DIP-20__300" H 5400 2900 60 0000 C CNN
F 2 "dip_sockets:DIP-20__300" H 5400 2900 60 0000 C CNN
F 3 "" H 5200 3600 60 0001 C CNN
1 5200 3600
1 0 0 -1
......
(fp_lib_table
(lib (name footprints)(type KiCad)(uri ${KIPRJMOD}/libs/footprints.pretty)(options "")(descr "project specific"))
(lib (name footprints)(type KiCad)(uri ${KIPRJMOD}/libs/pic_programmer_fp.pretty)(options "")(descr "project specific"))
(lib (name sockets)(type KiCad)(uri ${KISYSMOD}/Sockets.pretty)(options "")(descr ""))
)
(module textool_40 (layer F.Cu) (tedit 5401B510)
(descr "Module Dil 40 pins, pads elliptiques, e=600 mils")
(tags DIL)
(fp_text reference P3 (at -19.05 -3.81) (layer F.SilkS)
(effects (font (size 1.778 1.143) (thickness 0.3048)))
)
(fp_text value textool_40 (at 0 2.54) (layer F.SilkS)
(effects (font (size 1.778 1.778) (thickness 0.3048)))
)
(fp_line (start -26.67 -1.27) (end -25.4 -1.27) (layer F.SilkS) (width 0.381))
(fp_line (start -25.4 -1.27) (end -25.4 1.27) (layer F.SilkS) (width 0.381))
(fp_line (start -25.4 1.27) (end -26.67 1.27) (layer F.SilkS) (width 0.381))
(fp_line (start -26.67 -6.35) (end 26.67 -6.35) (layer F.SilkS) (width 0.381))
(fp_line (start 26.67 -6.35) (end 26.67 6.35) (layer F.SilkS) (width 0.381))
(fp_line (start 26.67 6.35) (end -26.67 6.35) (layer F.SilkS) (width 0.381))
(fp_line (start -26.67 6.35) (end -26.67 -6.35) (layer F.SilkS) (width 0.381))
(pad 1 thru_hole rect (at -24.13 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 2 thru_hole oval (at -21.59 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 3 thru_hole oval (at -19.05 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 4 thru_hole oval (at -16.51 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 5 thru_hole oval (at -13.97 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 6 thru_hole oval (at -11.43 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 7 thru_hole oval (at -8.89 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 8 thru_hole oval (at -6.35 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 9 thru_hole oval (at -3.81 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 10 thru_hole oval (at -1.27 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 11 thru_hole oval (at 1.27 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 12 thru_hole oval (at 3.81 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 13 thru_hole oval (at 6.35 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 14 thru_hole oval (at 8.89 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 15 thru_hole oval (at 11.43 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 16 thru_hole oval (at 13.97 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 17 thru_hole oval (at 16.51 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 18 thru_hole oval (at 19.05 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 19 thru_hole oval (at 21.59 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 20 thru_hole oval (at 24.13 7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 21 thru_hole oval (at 24.13 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 22 thru_hole oval (at 21.59 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 23 thru_hole oval (at 19.05 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 24 thru_hole oval (at 16.51 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 25 thru_hole oval (at 13.97 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 26 thru_hole oval (at 11.43 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 27 thru_hole oval (at 8.89 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 28 thru_hole oval (at 6.35 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 29 thru_hole oval (at 3.81 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 30 thru_hole oval (at 1.27 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 31 thru_hole oval (at -1.27 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 32 thru_hole oval (at -3.81 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 33 thru_hole oval (at -6.35 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 34 thru_hole oval (at -8.89 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 35 thru_hole oval (at -11.43 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 36 thru_hole oval (at -13.97 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 37 thru_hole oval (at -16.51 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 38 thru_hole oval (at -19.05 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 39 thru_hole oval (at -21.59 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(pad 40 thru_hole oval (at -24.13 -7.62) (size 1.5748 2.286) (drill 0.8128) (layers *.Cu *.Mask F.SilkS))
(model dil/textool_40.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
Cmp-Mod V01 Created by Cvpcb (2014-08-26 BZR 5101)-product date = 01/09/2014 11:21:38
Cmp-Mod V01 Created by Cvpcb (2014-09-16 BZR 5138)-product date = 20/09/2014 09:54:11
BeginCmp
TimeStamp = /442A5056;
......@@ -179,7 +179,7 @@ BeginCmp
TimeStamp = /4804A5E2/442A88ED;
Reference = P3;
ValeurCmp = SUPP40;
IdModule = footprints:textool_40;
IdModule = sockets:40tex-Ell600;
EndCmp
BeginCmp
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
update=31/08/2014 15:16:56
update=20/09/2014 09:29:07
last_client=kicad
[common]
NetDir=
......@@ -7,34 +7,6 @@ version=1
NetIExt=net
[cvpcb/libraries]
EquName1=devcms
[pcbnew]
version=1
PageLayoutDescrFile=
LastNetListRead=
UseCmpFile=1
PadDrill=0.8128
PadDrillOvalY=0.8128
PadSizeH=1.5748
PadSizeV=2.794
PcbTextSizeV=1.5
PcbTextSizeH=1.5
PcbTextThickness=0.3048
ModuleTextSizeV=1
ModuleTextSizeH=1
ModuleTextSizeThickness=0.2
SolderMaskClearance=0.09999999999999999
SolderMaskMinWidth=0
DrawSegmentWidth=0.4
BoardOutlineThickness=0.2
ModuleOutlineThickness=0.2
[pcbnew/libraries]
LibDir=
LibName1=dip_sockets
LibName2=sockets
LibName3=connect
LibName4=discret
LibName5=pin_array
LibName6=divers
[general]
version=1
[eeschema]
......@@ -46,3 +18,23 @@ LibName2=device
LibName3=74xx
LibName4=conn
LibName5=xilinx
[pcbnew]
version=1
PageLayoutDescrFile=
LastNetListRead=pic_programmer.net
UseCmpFile=0
PadDrill=0.8128
PadDrillOvalY=0.8128
PadSizeH=1.5748
PadSizeV=2.794
PcbTextSizeV=2.032
PcbTextSizeH=1.524
PcbTextThickness=0.3048
ModuleTextSizeV=1.524
ModuleTextSizeH=1.524
ModuleTextSizeThickness=0.3048
SolderMaskClearance=0.09999999999999999
SolderMaskMinWidth=0
DrawSegmentWidth=0.381
BoardOutlineThickness=0.381
ModuleOutlineThickness=0.381
......@@ -272,7 +272,7 @@ U 1 1 4639BA28
P 7150 2900
F 0 "D11" H 7150 3000 40 0000 C CNN
F 1 "BAT43" H 7150 2800 40 0000 C CNN
F 2 "discret:D3" H 7150 3050 60 0000 C CNN
F 2 "discret:D3" H 7150 3050 30 0000 C CNN
F 3 "" H 7150 2900 60 0001 C CNN
1 7150 2900
-1 0 0 1
......@@ -373,7 +373,7 @@ U 1 1 443D0101
P 9600 5900
F 0 "RV1" H 9600 5800 50 0000 C CNN
F 1 "1K" H 9600 5900 50 0000 C CNN
F 2 "discret:RV2X4" H 9600 5900 60 0000 C CNN
F 2 "discret:RV2X4" H 9600 5750 30 0000 C CNN
F 3 "" H 9600 5900 60 0001 C CNN
1 9600 5900
0 -1 -1 0
......@@ -455,7 +455,7 @@ U 1 1 442A5F83
P 8350 6100
F 0 "R10" V 8430 6100 50 0000 C CNN
F 1 "5,1K" V 8350 6100 50 0000 C CNN
F 2 "discret:R4" H 8350 6100 60 0000 C CNN
F 2 "discret:R4" V 8250 6100 30 0000 C CNN
F 3 "" H 8350 6100 60 0001 C CNN
1 8350 6100
0 -1 -1 0
......@@ -501,7 +501,7 @@ U 1 1 442A58DC
P 10000 5650
F 0 "R16" V 10080 5650 50 0000 C CNN
F 1 "62K" V 10000 5650 50 0000 C CNN
F 2 "discret:R4" H 10000 5650 60 0000 C CNN
F 2 "discret:R4" V 9929 5647 30 0000 C CNN
F 3 "" H 10000 5650 60 0001 C CNN
1 10000 5650
0 -1 -1 0
......@@ -512,7 +512,7 @@ U 1 1 442A58D7
P 10000 6150
F 0 "R15" V 10080 6150 50 0000 C CNN
F 1 "6.2K" V 10000 6150 50 0000 C CNN
F 2 "discret:R4" H 10000 6150 60 0000 C CNN
F 2 "discret:R4" V 9922 6141 30 0000 C CNN
F 3 "" H 10000 6150 60 0001 C CNN
1 10000 6150
0 -1 -1 0
......@@ -682,7 +682,7 @@ U 1 1 442A5084
P 4150 6950
F 0 "D9" H 4150 7050 50 0000 C CNN
F 1 "GREEN-LED" H 4150 6850 50 0000 C CNN
F 2 "discret:LEDV" H 4150 7200 60 0000 C CNN
F 2 "discret:LEDV" H 4150 7200 30 0000 C CNN
F 3 "" H 4150 6950 60 0001 C CNN
F 4 "GREEN LED" H 4200 7100 40 0000 C CNN "Champ4"
1 4150 6950
......@@ -694,7 +694,7 @@ U 1 1 442A5083
P 3850 6650
F 0 "R14" V 3930 6650 50 0000 C CNN
F 1 "470" V 3850 6650 50 0000 C CNN
F 2 "discret:R4" H 3850 6650 60 0000 C CNN
F 2 "discret:R4" V 3765 6645 30 0000 C CNN
F 3 "" H 3850 6650 60 0001 C CNN
1 3850 6650
0 -1 -1 0
......@@ -716,7 +716,7 @@ U 1 1 442A5056
P 3200 6900
F 0 "C1" H 3250 7000 50 0000 L CNN
F 1 "100µF" H 3250 6800 50 0000 L CNN
F 2 "discret:CP10" H 3500 6750 60 0000 C CNN
F 2 "discret:CP10" H 3500 6750 30 0000 C CNN
F 3 "" H 3200 6900 60 0001 C CNN
1 3200 6900
1 0 0 -1
......@@ -782,7 +782,7 @@ U 1 1 442A500B
P 1650 6650
F 0 "D1" H 1650 6750 40 0000 C CNN
F 1 "1N4004" H 1650 6550 40 0000 C CNN
F 2 "discret:D5" H 1700 6850 60 0000 C CNN
F 2 "discret:D5" H 1646 6800 30 0000 C CNN
F 3 "" H 1650 6650 60 0001 C CNN
1 1650 6650
1 0 0 -1
......@@ -962,7 +962,7 @@ U 1 1 442A4D92
P 4700 1700
F 0 "R8" V 4780 1700 50 0000 C CNN
F 1 "1K" V 4700 1700 50 0000 C CNN
F 2 "discret:R4" V 4850 1700 60 0000 C CNN
F 2 "discret:R4" V 4850 1700 30 0000 C CNN
F 3 "" H 4700 1700 60 0001 C CNN
1 4700 1700
0 -1 -1 0
......@@ -973,7 +973,7 @@ U 1 1 442A4D8D
P 5100 5100
F 0 "R13" V 5180 5100 50 0000 C CNN
F 1 "470" V 5100 5100 50 0000 C CNN
F 2 "discret:R4" V 5250 5100 60 0000 C CNN
F 2 "discret:R4" V 5250 5100 30 0000 C CNN
F 3 "" H 5100 5100 60 0001 C CNN
1 5100 5100
0 -1 -1 0
......@@ -1050,7 +1050,7 @@ U 1 1 442A4D65
P 3850 5400
F 0 "D7" H 3850 5500 40 0000 C CNN
F 1 "BAT43" H 3850 5300 40 0000 C CNN
F 2 "discret:D3" H 3850 5250 60 0000 C CNN
F 2 "discret:D3" H 3850 5250 30 0000 C CNN
F 3 "" H 3850 5400 60 0001 C CNN
1 3850 5400
0 -1 -1 0
......@@ -1072,7 +1072,7 @@ U 1 1 442A4D63
P 3200 5400
F 0 "R6" V 3280 5400 50 0000 C CNN
F 1 "10K" V 3200 5400 50 0000 C CNN
F 2 "discret:R4" V 3100 5400 60 0000 C CNN
F 2 "discret:R4" V 3100 5400 30 0000 C CNN
F 3 "" H 3200 5400 60 0001 C CNN
1 3200 5400
1 0 0 -1
......@@ -1083,7 +1083,7 @@ U 1 1 442A4D62
P 3500 5100
F 0 "R5" V 3580 5100 50 0000 C CNN
F 1 "10K" V 3500 5100 50 0000 C CNN
F 2 "discret:R4" H 3500 5100 60 0000 C CNN
F 2 "discret:R4" V 3420 5088 30 0000 C CNN
F 3 "" H 3500 5100 60 0001 C CNN
1 3500 5100
0 -1 -1 0
......@@ -1226,7 +1226,7 @@ U 1 1 442A4D25
P 3450 2000
F 0 "D3" H 3450 2100 40 0000 C CNN
F 1 "BAT43" H 3450 1900 40 0000 C CNN
F 2 "discret:D3" H 3450 1850 60 0000 C CNN
F 2 "discret:D3" H 3450 1850 30 0000 C CNN
F 3 "" H 3450 2000 60 0001 C CNN
1 3450 2000
0 -1 -1 0
......@@ -1237,7 +1237,7 @@ U 1 1 442A4D1B
P 3450 1450
F 0 "D2" H 3450 1550 40 0000 C CNN
F 1 "BAT43" H 3450 1350 40 0000 C CNN
F 2 "discret:D3" H 3500 1300 60 0000 C CNN
F 2 "discret:D3" H 3500 1300 30 0000 C CNN
F 3 "" H 3450 1450 60 0001 C CNN
1 3450 1450
0 -1 -1 0
......@@ -1289,68 +1289,78 @@ $EndComp
$Comp
L CONN_1 P101
U 1 1 54020BEA
P 6400 6850
F 0 "P101" H 6480 6850 40 0000 L CNN
F 1 "CONN_1" H 6400 6905 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 6850 60 0001 C CNN
F 3 "" H 6400 6850 60 0000 C CNN
1 6400 6850
P 6400 6800
F 0 "P101" H 6480 6800 40 0000 L CNN
F 1 "CONN_1" H 6400 6855 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 6800 60 0001 C CNN
F 3 "" H 6400 6800 60 0000 C CNN
1 6400 6800
1 0 0 -1
$EndComp
$Comp
L CONN_1 P102
U 1 1 54020DA9
P 6400 7000
F 0 "P102" H 6480 7000 40 0000 L CNN
F 1 "CONN_1" H 6400 7055 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7000 60 0001 C CNN
F 3 "" H 6400 7000 60 0000 C CNN
1 6400 7000
P 6400 6950
F 0 "P102" H 6480 6950 40 0000 L CNN
F 1 "CONN_1" H 6400 7005 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 6950 60 0001 C CNN
F 3 "" H 6400 6950 60 0000 C CNN
1 6400 6950
1 0 0 -1
$EndComp
$Comp
L CONN_1 P103
U 1 1 54020DC2
P 6400 7150
F 0 "P103" H 6480 7150 40 0000 L CNN
F 1 "CONN_1" H 6400 7205 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7150 60 0001 C CNN
F 3 "" H 6400 7150 60 0000 C CNN
1 6400 7150
P 6400 7100
F 0 "P103" H 6480 7100 40 0000 L CNN
F 1 "CONN_1" H 6400 7155 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7100 60 0001 C CNN
F 3 "" H 6400 7100 60 0000 C CNN
1 6400 7100
1 0 0 -1
$EndComp
$Comp
L CONN_1 P104
U 1 1 54020DE3
P 6400 7300
F 0 "P104" H 6480 7300 40 0000 L CNN
F 1 "CONN_1" H 6400 7355 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7300 60 0001 C CNN
F 3 "" H 6400 7300 60 0000 C CNN
1 6400 7300
P 6400 7250
F 0 "P104" H 6480 7250 40 0000 L CNN
F 1 "CONN_1" H 6400 7305 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7250 60 0001 C CNN
F 3 "" H 6400 7250 60 0000 C CNN
1 6400 7250
1 0 0 -1
$EndComp
$Comp
L CONN_1 P105
U 1 1 54020E5D
P 6400 7450
F 0 "P105" H 6480 7450 40 0000 L CNN
F 1 "CONN_1" H 6400 7505 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7450 60 0001 C CNN
F 3 "" H 6400 7450 60 0000 C CNN
1 6400 7450
P 6400 7400
F 0 "P105" H 6480 7400 40 0000 L CNN
F 1 "CONN_1" H 6400 7455 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7400 60 0001 C CNN
F 3 "" H 6400 7400 60 0000 C CNN
1 6400 7400
1 0 0 -1
$EndComp
$Comp
L CONN_1 P106
U 1 1 54020E76
P 6400 7600
F 0 "P106" H 6480 7600 40 0000 L CNN
F 1 "CONN_1" H 6400 7655 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7600 60 0001 C CNN
F 3 "" H 6400 7600 60 0000 C CNN
1 6400 7600
P 6400 7550
F 0 "P106" H 6480 7550 40 0000 L CNN
F 1 "CONN_1" H 6400 7605 30 0001 C CNN
F 2 "footprints:1pin-4" H 6400 7550 60 0001 C CNN
F 3 "" H 6400 7550 60 0000 C CNN
1 6400 7550
1 0 0 -1
$EndComp
Connection ~ 8650 3200
Wire Notes Line
5850 6700 6800 6700
Wire Notes Line
6800 6700 6800 7750
Wire Notes Line
6800 7750 5850 7750
Wire Notes Line
5850 7750 5850 6700
Text Notes 6050 7700 0 40 Italic 0
Mounting holes
$EndSCHEMATC
......@@ -252,7 +252,7 @@ U 1 1 442A88ED
P 9050 5100
F 0 "P3" H 9100 6200 70 0000 C CNN
F 1 "SUPP40" H 8900 4000 70 0000 C CNN
F 2 "footprints:textool_40" H 9100 3900 60 0000 C CNN
F 2 "sockets:40tex-Ell600" H 9100 3900 60 0000 C CNN
F 3 "" H 9050 5100 60 0001 C CNN
1 9050 5100
1 0 0 -1
......
......@@ -46,11 +46,11 @@ class LIB_FIELD;
/// Compiler controlled string compare function, either case independent or not:
inline int Cmp_KEEPCASE( const wxString& aString1, const wxString& aString2 )
{
#if 1
// case specificity:
#ifdef KICAD_KEEPCASE
// case specificity, the normal behavior:
return aString1.Cmp( aString2 );
#else
// case independence (no more in use)
// case independence (only for guys who want that: not recommended)
return aString1.CmpNoCase( aString2 );
#endif
}
......
......@@ -902,7 +902,8 @@ LIB_ALIAS* PART_LIBS::FindLibraryEntry( const wxString& aName, const wxString& a
/* searches all libraries in the list for an entry, using a case insensitive comparison.
* Used to find an entry, when the normal (case sensitive) search fails.
*/
LIB_ALIAS* PART_LIBS::FindLibraryNearEntry( const wxString& aEntryName,
void PART_LIBS::FindLibraryNearEntries( std::vector<LIB_ALIAS*>& aCandidates,
const wxString& aEntryName,
const wxString& aLibraryName )
{
BOOST_FOREACH( PART_LIB& lib, *this )
......@@ -921,7 +922,7 @@ LIB_ALIAS* PART_LIBS::FindLibraryNearEntry( const wxString& aEntryName,
for( ;; )
{
if( entry_name.CmpNoCase( aEntryName ) == 0 )
return entry;
aCandidates.push_back( entry );
entry = lib.GetNextEntry( entry_name );
entry_name = entry->GetName();
......@@ -930,8 +931,6 @@ LIB_ALIAS* PART_LIBS::FindLibraryNearEntry( const wxString& aEntryName,
break;
}
}
return NULL;
}
......
......@@ -217,23 +217,19 @@ public:
const wxString& aLibraryName = wxEmptyString );
/**
* Function FindLibraryNearEntry
* Function FindLibraryNearEntries
* Searches all libraries in the list for an entry, using a case insensitive comparison.
* Used to find an entry, when the normal (case sensitive) search fails.
* Needed because during a long time, eeschema was using a case insensitive search.
* Therefore, for old schematics (<= 2013), or libs,
* which mixed upper case and lower case entry names, for compatibility reasons, if
* a normal search fails, this case insensitive search can be made.
* Could be also usefull also in some dialogs, when searching parts in libs.
* Remember this is a linear search, therefore slower than the normal binary search
* Helper function used in dialog to find all candidates.
* During a long time, eeschema was using a case insensitive search.
* Therefore, for old schematics (<= 2013), or libs, for some components,
* the chip name (name of alias in lib) can be broken.
* This function can be used to display a list of candidates, in component properties dialog.
*
* The object can be either a part or an alias.
*
* @param aEntryName - Name of entry to search for (case insensitive).
* @param aEntryName - Name of entries to search for (case insensitive).
* @param aLibraryName - Name of the library to search.
* @return The entry object if found, otherwise NULL.
* @param aCandidates - a std::vector to store candidates
*/
LIB_ALIAS* FindLibraryNearEntry( const wxString& aEntryName,
void FindLibraryNearEntries( std::vector<LIB_ALIAS*>& aCandidates, const wxString& aEntryName,
const wxString& aLibraryName = wxEmptyString );
/**
......
......@@ -39,6 +39,7 @@
#include <base_units.h>
#include <general.h>
#include <sch_base_frame.h>
#include <class_library.h>
#include <sch_component.h>
#include <dialog_helpers.h>
......@@ -116,6 +117,8 @@ private:
void deleteFieldButtonHandler( wxCommandEvent& event );
void moveUpButtonHandler( wxCommandEvent& event );
void showButtonHandler( wxCommandEvent& event );
void OnTestChipName( wxCommandEvent& event );
void OnSelectChipName( wxCommandEvent& event );
SCH_FIELD* findField( const wxString& aFieldName );
......@@ -205,6 +208,64 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnListItemDeselected( wxListEvent& even
}
}
void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnTestChipName( wxCommandEvent& event )
{
wxString partname = chipnameTextCtrl->GetValue();
LIB_PART* entry = Prj().SchLibs()->FindLibPart( partname );
wxString msg;
if( entry )
{
msg.Printf( _( "Component '%s' found in library '%s'" ),
GetChars( partname ), GetChars( entry->GetLibraryName() ) );
wxMessageBox( msg );
return;
}
msg.Printf( _( "Component '%s' not found in any library" ), GetChars( partname ) );
// Try to find components which have a name "near" the current chip name,
// i.e. the same name when the comparison is case insensitive.
// Could be helpful for old designs when lower cases and upper case were
// equivalent.
std::vector<LIB_ALIAS*> candidates;
Prj().SchLibs()->FindLibraryNearEntries( candidates, partname );
if( candidates.size() == 0 )
{
wxMessageBox( msg );
return;
}
// Some candidates are found. Show them:
msg << wxT("\n") << _( "However, some candidates are found:" );
// add candidate names:
for( unsigned ii = 0; ii < candidates.size(); ii++ )
{
msg << wxT("\n") <<
wxString::Format( _( "'%s' found in library '%s'" ),
GetChars( candidates[ii]->GetName() ),
GetChars( candidates[ii]->GetLibraryName() ) );
}
wxMessageBox( msg );
}
void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnSelectChipName( wxCommandEvent& event )
{
wxArrayString dummy;
int dummyunit = 1;
wxString chipname = m_Parent->SelectComponentFromLibrary( wxEmptyString, dummy, dummyunit,
true, NULL, NULL );
if( chipname.IsEmpty() )
return;
chipnameTextCtrl->SetValue( chipname );
}
void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnListItemSelected( wxListEvent& event )
{
......@@ -222,9 +283,9 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCloseDialog( wxCloseEvent& event )
// On wxWidgets 2.8, and on Linux, calling EndQuasiModal here is mandatory
// Otherwise, the main event loop is never restored, and Eeschema does not
// respond to any event, because the DIALOG_SHIM destructor is never called.
// on wxWidgets 3.0, or on Windows, the DIALOG_SHIM destructor is called,
// On wxWidgets 3.0, or on Windows, the DIALOG_SHIM destructor is called,
// and calls EndQuasiModal.
// therefore calling EndQuasiModal here is not mandatory but it creates no issues
// therefore calling EndQuasiModal here is not always mandatory but it creates no issues
EndQuasiModal( wxID_CANCEL );
}
......@@ -251,29 +312,10 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToOptions()
if( libs->FindLibraryEntry( newname ) == NULL )
{
if( LIB_ALIAS* entry = libs->FindLibraryNearEntry( newname ) )
{
wxString near_name = entry->GetName();
wxString msg = wxString::Format( _(
"Component '%s' not found!\n"
"But the component '%s' exists\n"
"Do you want to use it?"),
GetChars( newname ), GetChars( near_name ) );
if( IsOK( this, msg ) )
{
chipnameTextCtrl->SetValue( near_name );
m_Cmp->SetPartName( near_name, libs );
}
}
else
{
wxString msg = wxString::Format( _(
"Component '%s' not found!" ),
GetChars( newname ) );
"Component '%s' not found!" ), GetChars( newname ) );
DisplayError( this, msg );
}
}
else // Change component from lib!
{
m_Cmp->SetPartName( newname, libs );
......
......@@ -37,19 +37,19 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
unitsInterchageableText = new wxStaticText( this, wxID_ANY, _("Units are interchangeable:"), wxDefaultPosition, wxDefaultSize, 0 );
unitsInterchageableText->Wrap( -1 );
bSizerUnitsInterchangeable->Add( unitsInterchageableText, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 );
bSizerUnitsInterchangeable->Add( unitsInterchageableText, 0, wxTOP|wxBOTTOM|wxLEFT, 5 );
unitsInterchageableLabel = new wxStaticText( this, wxID_ANY, _("Yes"), wxDefaultPosition, wxDefaultSize, 0 );
unitsInterchageableLabel->Wrap( -1 );
bSizerUnitsInterchangeable->Add( unitsInterchageableLabel, 0, wxALL, 5 );
optionsSizer->Add( bSizerUnitsInterchangeable, 1, wxEXPAND, 5 );
optionsSizer->Add( bSizerUnitsInterchangeable, 0, wxEXPAND, 5 );
wxString orientationRadioBoxChoices[] = { _("0"), _("+90"), _("180"), _("-90") };
int orientationRadioBoxNChoices = sizeof( orientationRadioBoxChoices ) / sizeof( wxString );
orientationRadioBox = new wxRadioBox( this, wxID_ANY, _("Orientation (Degrees)"), wxDefaultPosition, wxDefaultSize, orientationRadioBoxNChoices, orientationRadioBoxChoices, 1, wxRA_SPECIFY_COLS );
orientationRadioBox->SetSelection( 1 );
orientationRadioBox->SetSelection( 0 );
orientationRadioBox->SetToolTip( _("Select if the component is to be rotated when drawn") );
optionsSizer->Add( orientationRadioBox, 0, wxEXPAND|wxALL, 5 );
......@@ -62,25 +62,34 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
optionsSizer->Add( mirrorRadioBox, 0, wxALL|wxEXPAND, 5 );
m_staticTextChipname = new wxStaticText( this, wxID_ANY, _("Chip Name"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextChipname->Wrap( -1 );
optionsSizer->Add( m_staticTextChipname, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
convertCheckBox = new wxCheckBox( this, wxID_ANY, _("Converted Shape"), wxDefaultPosition, wxDefaultSize, 0 );
convertCheckBox->SetToolTip( _("Use the alternate shape of this component.\nFor gates, this is the \"De Morgan\" conversion") );
optionsSizer->Add( convertCheckBox, 0, wxALL, 5 );
wxStaticBoxSizer* sbSizerChipName;
sbSizerChipName = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Chip Name") ), wxVERTICAL );
chipnameTextCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
chipnameTextCtrl->SetMaxLength( 32 );
chipnameTextCtrl->SetToolTip( _("The name of the symbol in the library from which this component came") );
optionsSizer->Add( chipnameTextCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
sbSizerChipName->Add( chipnameTextCtrl, 0, wxEXPAND|wxBOTTOM, 5 );
convertCheckBox = new wxCheckBox( this, wxID_ANY, _("Convert"), wxDefaultPosition, wxDefaultSize, 0 );
convertCheckBox->SetToolTip( _("Use the alternate shape of this component.\nFor gates, this is the \"De Morgan\" conversion") );
wxBoxSizer* bSizerChpinameButt;
bSizerChpinameButt = new wxBoxSizer( wxHORIZONTAL );
optionsSizer->Add( convertCheckBox, 0, wxALL, 5 );
m_buttonTestChipName = new wxButton( this, wxID_ANY, _("Test"), wxDefaultPosition, wxDefaultSize, 0 );
bSizerChpinameButt->Add( m_buttonTestChipName, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 );
defaultsButton = new wxButton( this, wxID_ANY, _("Reset to Library Defaults"), wxDefaultPosition, wxDefaultSize, 0 );
defaultsButton->SetToolTip( _("Set position and style of fields and component orientation to default lib value.\nFields texts are not modified.") );
m_buttonSelectChipName = new wxButton( this, wxID_ANY, _("Select"), wxDefaultPosition, wxDefaultSize, 0 );
bSizerChpinameButt->Add( m_buttonSelectChipName, 0, wxTOP|wxBOTTOM, 5 );
optionsSizer->Add( defaultsButton, 0, wxALL|wxEXPAND, 5 );
sbSizerChipName->Add( bSizerChpinameButt, 1, wxEXPAND, 5 );
optionsSizer->Add( sbSizerChipName, 0, wxEXPAND|wxALL, 5 );
m_staticTextTimeStamp = new wxStaticText( this, wxID_ANY, _("Timestamp"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextTimeStamp->Wrap( -1 );
......@@ -91,6 +100,14 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
optionsSizer->Add( m_textCtrlTimeStamp, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
optionsSizer->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );
defaultsButton = new wxButton( this, wxID_ANY, _("Reset to Library Defaults"), wxDefaultPosition, wxDefaultSize, 0 );
defaultsButton->SetToolTip( _("Set position and style of fields and component orientation to default lib value.\nFields texts are not modified.") );
optionsSizer->Add( defaultsButton, 0, wxALL|wxEXPAND, 5 );
upperSizer->Add( optionsSizer, 0, wxALIGN_TOP|wxEXPAND|wxALL, 5 );
......@@ -132,13 +149,13 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
wxString m_FieldHJustifyCtrlChoices[] = { _("Left"), _("Center"), _("Right") };
int m_FieldHJustifyCtrlNChoices = sizeof( m_FieldHJustifyCtrlChoices ) / sizeof( wxString );
m_FieldHJustifyCtrl = new wxRadioBox( this, wxID_ANY, _("Horiz. Justify"), wxDefaultPosition, wxDefaultSize, m_FieldHJustifyCtrlNChoices, m_FieldHJustifyCtrlChoices, 1, wxRA_SPECIFY_COLS );
m_FieldHJustifyCtrl->SetSelection( 0 );
m_FieldHJustifyCtrl->SetSelection( 2 );
bSizerJustification->Add( m_FieldHJustifyCtrl, 1, wxRIGHT|wxLEFT, 5 );
wxString m_FieldVJustifyCtrlChoices[] = { _("Bottom"), _("Center"), _("Top") };
int m_FieldVJustifyCtrlNChoices = sizeof( m_FieldVJustifyCtrlChoices ) / sizeof( wxString );
m_FieldVJustifyCtrl = new wxRadioBox( this, wxID_ANY, _("Vert. Justify"), wxDefaultPosition, wxDefaultSize, m_FieldVJustifyCtrlNChoices, m_FieldVJustifyCtrlChoices, 1, wxRA_SPECIFY_COLS );
m_FieldVJustifyCtrl->SetSelection( 0 );
m_FieldVJustifyCtrl->SetSelection( 2 );
bSizerJustification->Add( m_FieldVJustifyCtrl, 1, wxRIGHT|wxLEFT, 5 );
......@@ -200,7 +217,7 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
m_show_datasheet_button = new wxButton( this, wxID_ANY, _("Show in Browser"), wxDefaultPosition, wxDefaultSize, 0 );
m_show_datasheet_button->SetToolTip( _("If your datasheet is an http:// link or a complete file path, then it may show in your browser by pressing this button.") );
fieldNameBoxSizer->Add( m_show_datasheet_button, 0, wxBOTTOM|wxEXPAND, 5 );
fieldNameBoxSizer->Add( m_show_datasheet_button, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
fieldEditBoxSizer->Add( fieldNameBoxSizer, 0, wxBOTTOM|wxEXPAND, 5 );
......@@ -277,10 +294,11 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
this->SetSizer( mainSizer );
this->Layout();
mainSizer->Fit( this );
// Connect Events
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnCloseDialog ) );
m_buttonTestChipName->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnTestChipName ), NULL, this );
m_buttonSelectChipName->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnSelectChipName ), NULL, this );
defaultsButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::SetInitCmp ), NULL, this );
fieldListCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnListItemDeselected ), NULL, this );
fieldListCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnListItemSelected ), NULL, this );
......@@ -296,6 +314,8 @@ DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::~DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP(
{
// Disconnect Events
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnCloseDialog ) );
m_buttonTestChipName->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnTestChipName ), NULL, this );
m_buttonSelectChipName->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnSelectChipName ), NULL, this );
defaultsButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::SetInitCmp ), NULL, this );
fieldListCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnListItemDeselected ), NULL, this );
fieldListCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP::OnListItemSelected ), NULL, this );
......
......@@ -23,10 +23,11 @@ class DIALOG_SHIM;
#include <wx/choice.h>
#include <wx/sizer.h>
#include <wx/radiobox.h>
#include <wx/textctrl.h>
#include <wx/checkbox.h>
#include <wx/textctrl.h>
#include <wx/button.h>
#include <wx/statbox.h>
#include <wx/statline.h>
#include <wx/listctrl.h>
#include <wx/dialog.h>
......@@ -47,12 +48,14 @@ class DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP : public DIALOG_SHIM
wxStaticText* unitsInterchageableLabel;
wxRadioBox* orientationRadioBox;
wxRadioBox* mirrorRadioBox;
wxStaticText* m_staticTextChipname;
wxTextCtrl* chipnameTextCtrl;
wxCheckBox* convertCheckBox;
wxButton* defaultsButton;
wxTextCtrl* chipnameTextCtrl;
wxButton* m_buttonTestChipName;
wxButton* m_buttonSelectChipName;
wxStaticText* m_staticTextTimeStamp;
wxTextCtrl* m_textCtrlTimeStamp;
wxStaticLine* m_staticline1;
wxButton* defaultsButton;
wxListCtrl* fieldListCtrl;
wxButton* addFieldButton;
wxButton* deleteFieldButton;
......@@ -82,6 +85,8 @@ class DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP : public DIALOG_SHIM
// Virtual event handlers, overide them in your derived class
virtual void OnCloseDialog( wxCloseEvent& event ) { event.Skip(); }
virtual void OnTestChipName( wxCommandEvent& event ) { event.Skip(); }
virtual void OnSelectChipName( wxCommandEvent& event ) { event.Skip(); }
virtual void SetInitCmp( wxCommandEvent& event ) { event.Skip(); }
virtual void OnListItemDeselected( wxListEvent& event ) { event.Skip(); }
virtual void OnListItemSelected( wxListEvent& event ) { event.Skip(); }
......@@ -95,7 +100,7 @@ class DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP : public DIALOG_SHIM
public:
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Component Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxCAPTION|wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU );
DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Component Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 677,586 ), long style = wxCAPTION|wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU );
~DIALOG_EDIT_COMPONENT_IN_SCHEMATIC_FBP();
};
......
......@@ -56,6 +56,9 @@ DIALOG_EESCHEMA_OPTIONS::DIALOG_EESCHEMA_OPTIONS( wxWindow* parent ) :
templateFieldListCtrl->InsertColumn( 0, col0 );
templateFieldListCtrl->InsertColumn( 1, col1 );
templateFieldListCtrl->InsertColumn( 2, col2 );
// Invalid field selected...
selectedField = -1;
}
......@@ -140,59 +143,84 @@ void DIALOG_EESCHEMA_OPTIONS::SetGridSizes( const GRIDS& grid_sizes, int grid_id
}
void DIALOG_EESCHEMA_OPTIONS::OnAddButtonClick( wxCommandEvent& event )
void DIALOG_EESCHEMA_OPTIONS::RefreshTemplateFieldView( void )
{
long itemindex = templateFieldListCtrl->InsertItem( templateFieldListCtrl->GetItemCount(), wxT( "New Fieldname" ) );
templateFieldListCtrl->SetItem( itemindex, 1, wxT( "Default Value" ) );
templateFieldListCtrl->SetItem( itemindex, 2, wxT( "Hidden" ) );
// Delete all items in the template field list control and add all of the
// current template fields
templateFieldListCtrl->DeleteAllItems();
event.Skip();
for( TEMPLATE_FIELDNAMES::iterator fld = templateFields.begin(); fld != templateFields.end(); ++fld )
{
long itemindex = templateFieldListCtrl->InsertItem( templateFieldListCtrl->GetItemCount(), fld->m_Name );
templateFieldListCtrl->SetItem( itemindex, 1, fld->m_Value );
templateFieldListCtrl->SetItem( itemindex, 2, ( fld->m_Visible == true ) ? wxT( "Visible" ) : wxT( "Hidden" ) );
}
// If an item was selected, make sure we re-select it, or at least the
// same position in the grid and then copy the data to the edit panel in
// case it has changed
if( ( selectedField >= 0 ) && ( selectedField < templateFields.size() ) )
{
templateFieldListCtrl->SetItemState( selectedField, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED );
copySelectedToPanel();
}
}
void DIALOG_EESCHEMA_OPTIONS::copyPanelToSelected( void )
void DIALOG_EESCHEMA_OPTIONS::OnAddButtonClick( wxCommandEvent& event )
{
wxListItem iteminfo;
iteminfo.m_itemId = selectedField;
iteminfo.m_mask = wxLIST_MASK_TEXT;
// If there is currently a valid selection, copy the edit panel to the
// selected field so as not to lose the data
if( ( selectedField >= 0 ) && ( selectedField < templateFields.size() ) )
copyPanelToSelected();
iteminfo.m_col = 0;
iteminfo.m_text = fieldNameTextCtrl->GetValue();
templateFieldListCtrl->SetItem( iteminfo );
// Add a new fieldname to the fieldname list
TEMPLATE_FIELDNAME newFieldname = TEMPLATE_FIELDNAME( "New Fieldname" );
newFieldname.m_Value = wxString::Format( wxT( "Default Value %d" ), templateFields.size() );
newFieldname.m_Visible = false;
templateFields.push_back( newFieldname );
iteminfo.m_col = 1;
iteminfo.m_text = fieldDefaultValueTextCtrl->GetValue();
templateFieldListCtrl->SetItem( iteminfo );
// Update the display to reflect the new data
RefreshTemplateFieldView();
iteminfo.m_col = 2;
if( fieldVisibleCheckbox->GetValue() )
iteminfo.m_text = _( "Visible" );
else
iteminfo.m_text = _( "Hidden" );
templateFieldListCtrl->SetItem( iteminfo );
// Select the newly added field and then copy that data to the edit panel.
// Make sure any previously selected state is cleared and then select the
// new field
long selected = templateFieldListCtrl->GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
if( selected >= 0 )
templateFieldListCtrl->SetItemState( selected, 0, wxLIST_STATE_SELECTED );
templateFieldListCtrl->SetItemState( templateFieldListCtrl->GetItemCount() - 1, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED );
selectedField = templateFieldListCtrl->GetItemCount() - 1;
copySelectedToPanel();
event.Skip();
}
void DIALOG_EESCHEMA_OPTIONS::copySelectedToPanel( void )
{
wxListItem iteminfo;
iteminfo.m_itemId = selectedField;
iteminfo.m_mask = wxLIST_MASK_TEXT;
iteminfo.m_col = 0;
if( !templateFieldListCtrl->GetItem( iteminfo ) )
void DIALOG_EESCHEMA_OPTIONS::copyPanelToSelected( void )
{
if( ( selectedField < 0 ) || ( selectedField >= templateFields.size() ) )
return;
fieldNameTextCtrl->SetValue( iteminfo.m_text );
iteminfo.m_col = 1;
if( !templateFieldListCtrl->GetItem( iteminfo ) )
return;
fieldDefaultValueTextCtrl->SetValue( iteminfo.m_text );
// Update the template field data
templateFields[selectedField].m_Name = fieldNameTextCtrl->GetValue();
templateFields[selectedField].m_Value = fieldDefaultValueTextCtrl->GetValue();
templateFields[selectedField].m_Visible = fieldVisibleCheckbox->GetValue();
}
iteminfo.m_col = 2;
if( !templateFieldListCtrl->GetItem( iteminfo ) )
void DIALOG_EESCHEMA_OPTIONS::copySelectedToPanel( void )
{
if( ( selectedField < 0 ) || ( selectedField >= templateFields.size() ) )
return;
if( iteminfo.m_text == _( "Hidden" ) )
fieldNameTextCtrl->SetValue( templateFields[selectedField].m_Name );
fieldDefaultValueTextCtrl->SetValue( templateFields[selectedField].m_Value );
if( templateFields[selectedField].m_Visible == true )
fieldVisibleCheckbox->SetValue( false );
else
fieldVisibleCheckbox->SetValue( true );
......@@ -201,30 +229,32 @@ void DIALOG_EESCHEMA_OPTIONS::copySelectedToPanel( void )
void DIALOG_EESCHEMA_OPTIONS::OnTemplateFieldSelected( wxListEvent& event )
{
selectedField = event.GetSelection();
// Before getting the new field data, make sure we save the old!
if( selectedField >= 0 )
copyPanelToSelected();
// Now update the selected field and copy the data from the field to the
// edit panel
selectedField = event.GetIndex();
copySelectedToPanel();
event.Skip();
}
void DIALOG_EESCHEMA_OPTIONS::OnTemplateFieldDeselected( wxListEvent& event )
{
copyPanelToSelected();
event.Skip();
}
void DIALOG_EESCHEMA_OPTIONS::SetTemplateFields( const TEMPLATE_FIELDNAMES& aFields )
{
// Set the template fields object
templateFields = aFields;
for( TEMPLATE_FIELDNAMES::iterator fld = templateFields.begin(); fld != templateFields.end(); ++fld )
{
long itemindex = templateFieldListCtrl->InsertItem( 0, wxT( "?" ) );
templateFieldListCtrl->SetItem( itemindex, 1, fld->m_Name );
templateFieldListCtrl->SetItem( itemindex, 2, fld->m_Value );
printf( "Parsed new templateField\n" );
}
// Refresh the view
RefreshTemplateFieldView();
}
......
......@@ -44,6 +44,7 @@ protected:
void copySelectedToPanel( void );
void OnTemplateFieldSelected( wxListEvent& event );
void OnTemplateFieldDeselected( wxListEvent& event );
void RefreshTemplateFieldView( void );
public:
DIALOG_EESCHEMA_OPTIONS( wxWindow* parent );
......
......@@ -127,7 +127,7 @@ wxString SCH_BASE_FRAME::SelectComponentFromLibrary( const wxString& aLibname,
if( !aHistoryList.empty() )
{
// This is good for a transition for experineced users: giving them a History. Ideally,
// This is good for a transition for experienced users: giving them a History. Ideally,
// we actually make this part even faster to access with a popup on ALT-a or something.
// the history is under a node named "-- History --"
// However, because it is translatable, and we need to have a node name starting by "-- "
......
......@@ -87,17 +87,6 @@ bool SCH_EDIT_FRAME::CreateArchiveLibrary( const wxString& aFileName )
// AddPart() does first clone the part before adding.
libCache->AddPart( part );
}
else // Search for a part/alias using case insensitive search
{ // for compatibility with old versions of schematics
LIB_ALIAS* entry = libs->FindLibraryNearEntry( component->GetPartName() );
if( entry && !libCache->FindEntry( entry->GetName() ) )
{
if( LIB_PART* part = libs->FindLibPart( entry->GetName() ) )
libCache->AddPart( part );
}
}
}
}
}
......
......@@ -308,6 +308,12 @@ void SCH_EDIT_FRAME::ReCreateMenuBar()
HK_ADD_NOCONN_FLAG, IS_ACCELERATOR ); // add an accelerator, not a shortcut
AddMenuItem( placeMenu, ID_NOCONN_BUTT, text, HELP_PLACE_NC_FLAG, KiBitmap( noconn_xpm ) );
text = AddHotkeyName( _( "&Junction" ), s_Schematic_Hokeys_Descr,
HK_ADD_JUNCTION, IS_ACCELERATOR ); // add an accelerator, not a shortcut
AddMenuItem( placeMenu, ID_JUNCTION_BUTT, text,
HELP_PLACE_JUNCTION,
KiBitmap( add_junction_xpm ) );
text = AddHotkeyName( _( "&Label" ), s_Schematic_Hokeys_Descr,
HK_ADD_LABEL, IS_ACCELERATOR ); // add an accelerator, not a shortcut
AddMenuItem( placeMenu, ID_LABEL_BUTT, text,
......@@ -320,12 +326,6 @@ void SCH_EDIT_FRAME::ReCreateMenuBar()
HELP_PLACE_GLOBALLABEL,
KiBitmap( add_glabel_xpm ) );
text = AddHotkeyName( _( "&Junction" ), s_Schematic_Hokeys_Descr,
HK_ADD_JUNCTION, IS_ACCELERATOR ); // add an accelerator, not a shortcut
AddMenuItem( placeMenu, ID_JUNCTION_BUTT, text,
HELP_PLACE_JUNCTION,
KiBitmap( add_junction_xpm ) );
placeMenu->AppendSeparator();
text = AddHotkeyName( _( "&Hierarchical Label" ), s_Schematic_Hokeys_Descr,
......
......@@ -265,22 +265,6 @@ bool SCH_COMPONENT::Resolve( PART_LIBS* aLibs )
return true;
}
// the part was not found. try to search with no case comparison
// because during a long time, Eeschema was using upper case only
// for names.
// and we could have loaded an old schematic using upper case only
// and libs using upper+lower case for lib items names
if( LIB_ALIAS* entry = aLibs->FindLibraryNearEntry( m_part_name ) )
{
// Now find the part (the lib part if we are using an alias) using
// the "near" name
if( LIB_PART* part = aLibs->FindLibPart( entry->GetName() ) )
{
m_part = part->SharedPtr();
return true;
}
}
return false;
}
......
......@@ -73,23 +73,6 @@ public:
void UpdateStatusBar(); // overload EDA_DRAW_FRAME
protected:
/**
* Function SelectComponentFromLibBrowser
* Calls the library viewer to select component to import into schematic.
* if the library viewer is currently running, it is closed and reopened
* in modal mode.
* @param aPreslectedAlias Preselected component alias. NULL if none.
* @param aUnit Pointer to Unit-number. Input is the pre-selected unit, output
* is the finally selected unit by the user. Can be NULL.
* @param aConvert Pointer to deMorgan conversion. Input is what is pre-selected,
* output is the finally selected deMorgan type by the user.
* @return the component name
*/
wxString SelectComponentFromLibBrowser( LIB_ALIAS* aPreselectedAlias,
int* aUnit, int* aConvert );
/**
* Function SelectComponentFromLib
* Calls the library viewer to select component to import into schematic.
......@@ -112,6 +95,22 @@ protected:
int* aUnit,
int* aConvert );
protected:
/**
* Function SelectComponentFromLibBrowser
* Calls the library viewer to select component to import into schematic.
* if the library viewer is currently running, it is closed and reopened
* in modal mode.
* @param aPreslectedAlias Preselected component alias. NULL if none.
* @param aUnit Pointer to Unit-number. Input is the pre-selected unit, output
* is the finally selected unit by the user. Can be NULL.
* @param aConvert Pointer to deMorgan conversion. Input is what is pre-selected,
* output is the finally selected deMorgan type by the user.
* @return the component name
*/
wxString SelectComponentFromLibBrowser( LIB_ALIAS* aPreselectedAlias,
int* aUnit, int* aConvert );
/**
* Function OnOpenLibraryViewer
......
This diff is collapsed.
///////////////////////////////////////////////////////////////////////////////
/// Class DIALOG_DESIGN_RULES
///////////////////////////////////////////////////////////////////////////////
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2004-2009 Jean-Pierre Charras, jean-pierre.charras@gpisa-lab.inpg.fr
* Copyright (C) 2009 Dick Hollenbeck, dick@softplc.com
* Copyright (C) 2009 KiCad Developers, see change_log.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
/**
* @file dialog_design_rules.h
*/
#ifndef __dialog_design_rules_h_
#define __dialog_design_rules_h_
......@@ -36,7 +62,7 @@ class DIALOG_DESIGN_RULES : public DIALOG_DESIGN_RULES_BASE
private:
static const wxString wildCard; ///< the name of a ficticious netclass which includes all NETs
static const wxString wildCard; ///< the name of a fictitious netclass which includes all NETs
PCB_EDIT_FRAME* m_Parent;
BOARD* m_Pcb;
......@@ -63,24 +89,81 @@ private:
void OnOkButtonClick( wxCommandEvent& event );
void OnAddNetclassClick( wxCommandEvent& event );
void OnRemoveNetclassClick( wxCommandEvent& event );
/*
* Called on "Move Up" button click
* the selected(s) rules are moved up
* The default netclass is always the first rule
*/
void OnMoveUpSelectedNetClass( wxCommandEvent& event );
/*
* Called on the left Choice Box selection
*/
void OnLeftCBSelection( wxCommandEvent& event );
/*
* Called on the Right Choice Box selection
*/
void OnRightCBSelection( wxCommandEvent& event );
void OnRightToLeftCopyButton( wxCommandEvent& event );
void OnLeftToRightCopyButton( wxCommandEvent& event );
/*
* Called on clicking the left "select all" button:
* select all items of the left netname list list box
*/
void OnLeftSelectAllButton( wxCommandEvent& event );
/*
* Called on clicking the right "select all" button:
* select all items of the right netname list list box
*/
void OnRightSelectAllButton( wxCommandEvent& event );
/*
* Function TestDataValidity
*
* Performs a control of data validity
* set the background of a bad cell in RED and display an info message
* @return true if Ok, false if error
*/
bool TestDataValidity( );
void InitDialogRules();
void InitGlobalRules();
/**
* Function InitRulesList
* Fill the grid showing current rules with values
*/
void InitRulesList();
/* Populates the lists of sizes (Tracks width list and Vias diameters & drill list) */
void InitDimensionsLists();
void InitializeRulesSelectionBoxes();
/* Copy the rules list from grid to board
*/
void CopyRulesListToBoard();
void CopyGlobalRulesToBoard();
void CopyDimensionsListsToBoard( );
void SetRoutableLayerStatus();
/**
* Function FillListBoxWithNetNames
* populates aListCtrl with net names and class names from m_AllNets in a two column display.
*/
void FillListBoxWithNetNames( NETS_LIST_CTRL* aListCtrl, const wxString& aNetClass );
/**
* Function PrintCurrentSettings
* Display on m_MessagesList the current global settings:
* minimal values for tracks, vias, clearance ...
*/
void PrintCurrentSettings( );
/**
......
......@@ -347,7 +347,12 @@ public:
// Fit();
// We derive from DIALOG_SHIM so prior size will be used anyways.
// select the last selected page
m_auinotebook->SetSelection( m_pageNdx );
// fire pageChangedHandler() so m_cur_grid gets set
// m_auinotebook->SetSelection will generate a pageChangedHandler()
// event call later, but too late.
wxAuiNotebookEvent uneventful;
pageChangedHandler( uneventful );
......@@ -494,8 +499,8 @@ private:
void pageChangedHandler( wxAuiNotebookEvent& event )
{
int pageNdx = m_auinotebook->GetSelection();
m_cur_grid = ( pageNdx == 0 ) ? m_global_grid : m_project_grid;
m_pageNdx = m_auinotebook->GetSelection();
m_cur_grid = ( m_pageNdx == 0 ) ? m_global_grid : m_project_grid;
}
void appendRowHandler( wxMouseEvent& event )
......@@ -746,8 +751,11 @@ private:
FP_TBL_MODEL* cur_model() const { return (FP_TBL_MODEL*) m_cur_grid->GetTable(); }
wxGrid* m_cur_grid; ///< changed based on tab choice
static int m_pageNdx; ///< Remember the last notebook page selected during a session
};
int DIALOG_FP_LIB_TABLE::m_pageNdx = 0;
int InvokePcbLibTableEditor( wxTopLevelWindow* aParent, FP_LIB_TABLE* aGlobal, FP_LIB_TABLE* aProject )
{
......
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Nov 6 2013)
// C++ code generated with wxFormBuilder (version Jun 5 2014)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
......@@ -98,12 +98,12 @@ DIALOG_FP_LIB_TABLE_BASE::DIALOG_FP_LIB_TABLE_BASE( wxWindow* parent, wxWindowID
wxBoxSizer* bSizer51;
bSizer51 = new wxBoxSizer( wxHORIZONTAL );
m_append_button = new wxButton( this, wxID_ANY, _("Append Row"), wxDefaultPosition, wxDefaultSize, 0 );
m_append_button = new wxButton( this, wxID_ANY, _("Append Library"), wxDefaultPosition, wxDefaultSize, 0 );
m_append_button->SetToolTip( _("Add a PCB library row to this table") );
bSizer51->Add( m_append_button, 0, wxALL, 5 );
m_delete_button = new wxButton( this, wxID_ANY, _("Delete Row"), wxDefaultPosition, wxDefaultSize, 0 );
m_delete_button = new wxButton( this, wxID_ANY, _("Remove Library"), wxDefaultPosition, wxDefaultSize, 0 );
m_delete_button->SetToolTip( _("Remove a PCB library from this library table") );
bSizer51->Add( m_delete_button, 0, wxALL, 5 );
......
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<wxFormBuilder_Project>
<FileVersion major="1" minor="11" />
<FileVersion major="1" minor="13" />
<object class="Project" expanded="1">
<property name="class_decoration"></property>
<property name="code_generation">C++</property>
......@@ -696,7 +696,7 @@
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Append Row</property>
<property name="label">Append Library</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
......@@ -784,7 +784,7 @@
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Delete Row</property>
<property name="label">Remove Library</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
......
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Nov 6 2013)
// C++ code generated with wxFormBuilder (version Jun 5 2014)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
......
......@@ -215,7 +215,11 @@ IO_MGR::PCB_FILE_T IO_MGR::GuessPluginTypeFromLibPath( const wxString& aLibPath
// mistakenly put a pretty library into a directory other than
// *.pretty/ with *.kicad_mod in there., and I don't want to return -1,
// since we only claimed to be guessing.
else if( fn.GetExt() == KiCadFootprintLibPathExtension )
//
// However libraries on GitHub have names ending by .pretty
// so test also this is not a name starting by http (including https).
else if( fn.GetExt() == KiCadFootprintLibPathExtension &&
!aLibPath.StartsWith( wxT( "http" ) ) )
{
ret = KICAD;
}
......
......@@ -530,7 +530,6 @@ void FOOTPRINT_EDIT_FRAME::OnSaveLibraryAs( wxCommandEvent& aEvent )
PLUGIN::RELEASER dst( IO_MGR::PluginFind( dstType ) );
wxArrayString mods = cur->FootprintEnumerate( curLibPath );
for( unsigned i = 0; i < mods.size(); ++i )
{
std::auto_ptr<MODULE> m( cur->FootprintLoad( curLibPath, mods[i] ) );
......
......@@ -86,7 +86,6 @@ BEGIN_EVENT_TABLE( FOOTPRINT_EDIT_FRAME, PCB_BASE_FRAME )
EVT_TOOL( ID_MODEDIT_DELETE_PART, FOOTPRINT_EDIT_FRAME::Process_Special_Functions )
EVT_TOOL( ID_MODEDIT_NEW_MODULE, FOOTPRINT_EDIT_FRAME::Process_Special_Functions )
EVT_TOOL( ID_MODEDIT_NEW_MODULE_FROM_WIZARD, FOOTPRINT_EDIT_FRAME::Process_Special_Functions )
EVT_TOOL( ID_MODEDIT_LOAD_MODULE, FOOTPRINT_EDIT_FRAME::Process_Special_Functions )
EVT_TOOL( ID_MODEDIT_IMPORT_PART, FOOTPRINT_EDIT_FRAME::Process_Special_Functions )
EVT_TOOL( ID_MODEDIT_EXPORT_PART, FOOTPRINT_EDIT_FRAME::Process_Special_Functions )
EVT_TOOL( ID_MODEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART,
......
......@@ -236,8 +236,8 @@ static inline double mapY( int y )
/**
* Function mapPt
* converts a KiCad point into a DSN file point. Kicad's BOARD coordinates
* are in deci-mils (i.e. 1/10,000th of an inch) and we are exporting in units
* of mils, so we have to divide by 10.
* are in nanometers (called Internal Units or IU)and we are exporting in units
* of mils, so we have to scale them.
*/
static POINT mapPt( const wxPoint& pt )
{
......@@ -864,12 +864,14 @@ static void makeCircle( PATH* aPath, DRAWSEGMENT* aGraphic )
// do a circle segmentation
const int STEPS = 2 * 36;
wxPoint start;
wxPoint center = aGraphic->GetCenter();
int radius = aGraphic->GetRadius();
double angle = 3600.0;
start = center;
if( radius <= 0 ) // Should not occur, but ...
return;
wxPoint center = aGraphic->GetCenter();
double angle = 3600.0;
wxPoint start = center;
start.x += radius;
wxPoint nextPt;
......@@ -990,7 +992,8 @@ void SPECCTRA_DB::fillBOUNDARY( BOARD* aBoard, BOUNDARY* boundary ) throw( IO_ER
// pt has minimum x point
pt.x -= graphic->GetRadius();
if( pt.x < xmin.x )
// when the radius <= 0, this is a mal-formed circle. Skip it
if( graphic->GetRadius() > 0 && pt.x < xmin.x )
{
xmin = pt;
xmini = i;
......@@ -1020,7 +1023,7 @@ void SPECCTRA_DB::fillBOUNDARY( BOARD* aBoard, BOUNDARY* boundary ) throw( IO_ER
// Set maximum proximity threshold for point to point nearness metric for
// board perimeter only, not interior keepouts yet.
prox = Millimeter2iu( 0.002 ); // should be enough to fix rounding issues
prox = Millimeter2iu( 0.01 ); // should be enough to fix rounding issues
// is arc start and end point calculations
// Output the Edge.Cuts perimeter as circle or polygon.
......
......@@ -1019,7 +1019,7 @@ bool DRAWING_TOOL::drawSegment( int aShape, DRAWSEGMENT*& aGraphic,
else if( evt->IsAction( &COMMON_ACTIONS::decWidth ) )
{
if( lineWidth > WIDTH_STEP )
if( lineWidth > (unsigned) WIDTH_STEP )
{
lineWidth -= WIDTH_STEP;
aGraphic->SetWidth( lineWidth );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment