/g' | sed 's/\/n/<\/div>/g' '''.format(
- layername=filename,
- plotDir=plotDir,
- diff1=diffDir1,
- diff2=diffDir2,
- prjctPath=prjctPath,
- mod=layer,
- webDir=webDir)
diff1Txt = Popen(
diffCmnd1,
@@ -995,15 +985,28 @@ div.responsive {{
close_fds=True)
stdout, stderr = diff1Txt.communicate()
- diff2Txt = Popen(
- diffCmnd2,
- shell=True,
- stdin=PIPE,
- stdout=PIPE,
- stderr=PIPE,
- close_fds=True)
- stdout, stderr = diff2Txt.communicate()
- out = stdout.decode('utf8')
+
+ diffCmnd2 = '''diff {prjctPath}{plotDir}/{diff2}/*.kicad_pcb {prjctPath}{plotDir}/{diff1}/*.kicad_pcb | grep {mod} | sed 's/> /<\/div>
/g' | sed 's/< /<\/div>
/g' | sed -e 's/\/n/<\/div>/g' | sed 's/(layer {mod})//g' '''.format(
+ layername=filename,
+ plotDir=plotDir,
+ diff1=diffDir1,
+ diff2=diffDir2,
+ prjctPath=prjctPath,
+ mod=layer,
+ webDir=webDir)
+
+
+
+ diff2Txt = Popen(
+ diffCmnd2,
+ shell=True,
+ stdin=PIPE,
+ stdout=PIPE,
+ stderr=PIPE,
+ close_fds=True)
+ stdout, stderr = diff2Txt.communicate()
+ out = stdout.decode('utf8')
+ print(diffCmnd2)
tryptychOut.write(out)
diff --git a/style.css b/style.css
index c3ae3f2..6c6692b 100644
--- a/style.css
+++ b/style.css
@@ -1,433 +1,598 @@
-/* style.css */
-
-body {
- background-color: #282C35;
+body
+{
+ background-color: #002b36;
+ margin: 0 auto;
+ max-width: 45cm;
+ border: 1pt solid #586e75;
+ padding: 1em;
}
-.gallery {
+.gallery
+{
border: 1px solid #ccc;
+ background-color: #222;
}
-.gallery:hover {
+.gallery:hover
+{
border: 1px solid #777;
}
-.gallery img {
+.gallery img
+{
width: 100%;
height: auto;
}
-.desc {
+.desc,.title
+{
padding: 15px;
text-align: center;
- font: 15px arial, sans-serif;
+ font: 15px arial,sans-serif;
}
-.title {
- padding: 15px;
+.title
+{
text-align: left;
- font: 25px arial, sans-serif;
+ font: 25px arial,sans-serif;
color: #202b34;
}
-.subtitle {
+.details,.subtitle
+{
padding: 5px;
text-align: left;
- font: 20px arial, sans-serif;
- color: #000000;
+ font: 20px arial,sans-serif;
+ color: #000;
}
-.details {
+.details
+{
padding: 20px;
- text-align: left;
- font: 15px arial, sans-serif;
- color: #000000;
+ font: 15px arial,sans-serif;
}
-.differences{
+.differences
+{
+ font: 12px courier,monospace;
+}
+
+.differences,.td,.th
+{
padding: 5px;
text-align: left;
- font: 18px courier, monospace;
- color: #000000;
+ color: #000;
}
-
-.th {
- padding: 5px;
- text-align: left;
- font: 20px arial, sans-serif;
- font-weight: bold;
- color: #000000;
+.th
+{
+ font-weight: 700;
+ font: 20px arial,sans-serif;
}
-.td {
- padding: 5px;
- text-align: left;
- font: 15px arial, sans-serif;
- color: #000000;
+.td
+{
+ font: 15px arial,sans-serif;
}
-* {
+*
+{
box-sizing: border-box;
}
-
-.responsive {
+.responsive
+{
padding: 0 6px;
float: left;
width: 19.99999%;
margin: 6px 0;
}
-
-@media only screen and (max-width: 700px) {
- .responsive {
+@media only screen and (max-width:700px)
+{
+ .responsive
+ {
width: 49.98%;
margin: 6px 0;
}
}
-@media only screen and (max-width: 500px) {
- .responsive {
+@media only screen and (max-width:500px)
+{
+ .responsive
+ {
width: 100%;
margin: 6px 0;
}
}
-.clearfix:after {
+.responsivefull {
+ padding: 0 6px;
+ float: left;
+ width: 100%;
+ margin: 6px 0;
+}
+
+.clearfix:after
+{
content: "";
display: table;
clear: both;
}
-.box {
+.box
+{
float: left;
width: 20px;
height: 20px;
margin: 5px;
- border: 1px solid rgba(0, 0, 0, .2);
+ border: 1px solid rgba(0,0,0,.2);
}
-.red {
- background: #F40008;
+.red
+{
+ background: #ba312d;
}
-.green {
- background: #43ff01;
+.green
+{
+ background: #5eb6c4;
}
-.white {
- background: #ffffff;
+.white
+{
+ background: #fff;
}
-.added {
- color: #5EB6C4;
+.added
+{
+ color: #5eb6c4;
}
-.removed {
- color: #BA312D;
+.removed
+{
+ color: #ba312d;
}
-@import url(http://fonts.googleapis.com/css?family=Inconsolata);
-@import url(http://fonts.googleapis.com/css?family=PT+Sans);
-@import url(http://fonts.googleapis.com/css?family=PT+Sans+Narrow:400,700);
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-nav,
-section,
-summary {
+
+article,aside,details,figcaption,figure,footer,header,hgroup,nav,section,summary
+{
display: block;
}
-audio,
-canvas,
-video {
+
+audio,canvas,video
+{
display: inline-block;
}
-audio:not([controls]) {
+
+audio:not([controls])
+{
display: none;
height: 0;
}
-[hidden] {
+
+[hidden]
+{
display: none;
}
-html {
- font-family: sans-serif;
- -webkit-text-size-adjust: 100%;
- -ms-text-size-adjust: 100%;
+
+html
+{
+ -webkit-text-size-adjust: 80%;
+ -ms-text-size-adjust: 90%;
+ font-family: 'PT Sans',sans-serif;
+ background-color: #073642;
+ color: #e2e3e3;
+ margin: 1em;
}
-body {
- margin: 0;
-}
-a:focus {
+
+a:focus
+{
outline: thin dotted;
}
-a:active,
-a:hover {
+
+a:active,a:hover
+{
outline: 0;
}
-h1 {
- font-size: 2em;
-}
-abbr[title] {
+
+abbr[title]
+{
border-bottom: 1px dotted;
}
-b,
-strong {
- font-weight: bold;
+
+b,strong
+{
+ font-weight: 700;
}
-dfn {
+
+dfn
+{
font-style: italic;
}
-mark {
+
+mark
+{
background: #ff0;
color: #000;
}
-code,
-kbd,
-pre,
-samp {
- font-family: monospace, serif;
+
+code,kbd,pre,samp
+{
font-size: 1em;
}
-pre {
+
+kbd,samp
+{
+ font-family: monospace,serif;
+}
+
+pre
+{
white-space: pre-wrap;
word-wrap: break-word;
}
-q {
+
+q
+{
quotes: "\201C" "\201D" "\2018" "\2019";
}
-small {
+
+small
+{
font-size: 80%;
}
-sub,
-sup {
+
+sub,sup
+{
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
-sup {
- top: -0.5em;
+
+sup
+{
+ top: -.5em;
}
-sub {
- bottom: -0.25em;
+
+sub
+{
+ bottom: -.25em;
}
-img {
+
+img
+{
border: 0;
}
-svg:not(:root) {
- overflow: hidden;
+
+svg:not(:root)
+{
+ overflow: visible;
}
-figure {
+
+.F_Cu
+{
+ filter: invert(28%) sepia(50%) saturate(2065%) hue-rotate(334deg) brightness(73%) contrast(97%);
+}
+
+.B_Cu
+{
+ filter: invert(44%) sepia(14%) saturate(2359%) hue-rotate(70deg) brightness(103%) contrast(82%);
+}
+
+.B_Paste
+{
+ filter: invert(91%) sepia(47%) saturate(4033%) hue-rotate(139deg) brightness(82%) contrast(91%);
+}
+
+.F_Paste
+{
+ filter: invert(57%) sepia(60%) saturate(6%) hue-rotate(314deg) brightness(92%) contrast(99%);
+}
+
+.F_SilkS
+{
+ filter: invert(46%) sepia(44%) saturate(587%) hue-rotate(132deg) brightness(101%) contrast(85%);
+}
+
+.B_SilkS
+{
+ filter: invert(14%) sepia(27%) saturate(2741%) hue-rotate(264deg) brightness(95%) contrast(102%);
+}
+
+.B_Mask
+{
+ filter: invert(22%) sepia(56%) saturate(2652%) hue-rotate(277deg) brightness(94%) contrast(87%);
+}
+
+.F_Mask
+{
+ filter: invert(27%) sepia(51%) saturate(1920%) hue-rotate(269deg) brightness(89%) contrast(96%);
+}
+
+.Edge_Cuts
+{
+ filter: invert(79%) sepia(79%) saturate(401%) hue-rotate(6deg) brightness(88%) contrast(88%);
+}
+
+.Margin
+{
+ filter: invert(74%) sepia(71%) saturate(5700%) hue-rotate(268deg) brightness(89%) contrast(84%);
+}
+
+.In1_Cu
+{
+ filter: invert(69%) sepia(39%) saturate(1246%) hue-rotate(17deg) brightness(97%) contrast(104%);
+}
+
+.In2_Cu
+{
+ filter: invert(14%) sepia(79%) saturate(5231%) hue-rotate(293deg) brightness(91%) contrast(119%);
+}
+
+.Dwgs_User
+{
+ filter: invert(40%) sepia(68%) saturate(7431%) hue-rotate(203deg) brightness(89%) contrast(98%);
+}
+
+.Cmts_User
+{
+ filter: invert(73%) sepia(10%) saturate(1901%) hue-rotate(171deg) brightness(95%) contrast(102%);
+}
+
+.Eco1_User
+{
+ filter: invert(25%) sepia(98%) saturate(2882%) hue-rotate(109deg) brightness(90%) contrast(104%);
+}
+
+.Eco2_User
+{
+ filter: invert(85%) sepia(21%) saturate(5099%) hue-rotate(12deg) brightness(91%) contrast(102%);
+}
+
+.B_Fab
+{
+ filter: invert(60%) sepia(0%) saturate(0%) hue-rotate(253deg) brightness(87%) contrast(90%);
+}
+
+.F_Fab
+{
+ filter: invert(71%) sepia(21%) saturate(4662%) hue-rotate(21deg) brightness(103%) contrast(100%);
+}
+
+.B_Adhes
+{
+ filter: invert(24%) sepia(48%) saturate(2586%) hue-rotate(218deg) brightness(88%) contrast(92%);
+}
+
+.F_Adhes
+{
+ filter: invert(38%) sepia(49%) saturate(1009%) hue-rotate(254deg) brightness(88%) contrast(86%);
+}
+
+.B_CrtYd
+{
+ filter: invert(79%) sepia(92%) saturate(322%) hue-rotate(3deg) brightness(89%) contrast(92%);
+}
+
+.F_CrtYd
+{
+ filter: invert(73%) sepia(1%) saturate(0%) hue-rotate(116deg) brightness(92%) contrast(91%);
+}
+
+.section
+{
+ margin: 0 0 1em;
+}
+
+figure
+{
margin: 0;
}
-fieldset {
- border: 1px solid #c0c0c0;
+
+fieldset
+{
+ border: 1px solid silver;
margin: 0 2px;
- padding: 0.35em 0.625em 0.75em;
+ padding: .35em .625em .75em;
}
-legend {
+
+legend
+{
border: 0;
padding: 0;
}
-button,
-input,
-select,
-textarea {
+
+button,input,select,textarea
+{
font-family: inherit;
font-size: 100%;
margin: 0;
}
-button,
-input {
+
+button,input
+{
line-height: normal;
}
-button,
-html input[type="button"],
-input[type="reset"],
-input[type="submit"] {
+
+button,html input[type=button],input[type=reset],input[type=submit]
+{
-webkit-appearance: button;
cursor: pointer;
}
-button[disabled],
-input[disabled] {
+
+button[disabled],input[disabled]
+{
cursor: default;
}
-input[type="checkbox"],
-input[type="radio"] {
+
+input[type=checkbox],input[type=radio]
+{
box-sizing: border-box;
padding: 0;
}
-input[type="search"] {
+
+input[type=search]
+{
-webkit-appearance: textfield;
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
box-sizing: content-box;
}
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
+
+input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration
+{
-webkit-appearance: none;
}
-button::-moz-focus-inner,
-input::-moz-focus-inner {
+
+button::-moz-focus-inner,input::-moz-focus-inner
+{
border: 0;
padding: 0;
}
-textarea {
+
+textarea
+{
overflow: auto;
vertical-align: top;
}
-table {
+
+table
+{
border-collapse: collapse;
border-spacing: 0;
}
-html {
- font-family: 'PT Sans', sans-serif;
-}
-pre,
-code {
- font-family: 'Inconsolata', sans-serif;
-}
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- font-family: 'PT Sans Narrow', sans-serif;
- font-weight: 700;
-}
-html {
- background-color: #073642;
- color: #839496;
- margin: 1em;
-}
-body {
- background-color: #002b36;
- margin: 0 auto;
- max-width: 40cm;
- border: 1pt solid #586e75;
- padding: 1em;
+
+code,pre
+{
+ font-family: 'Inconsolata',sans-serif;
}
-code {
+h1,h2,h3,h4,h5,h6
+{
+ font-family: 'PT Sans Narrow',sans-serif;
+ font-weight: 400;
+}
+
+code
+{
background-color: #073642;
padding: 2px;
}
-a {
+
+a
+{
color: #b58900;
}
-a:visited {
+
+a:hover,a:visited
+{
color: #cb4b16;
}
-a:hover {
- color: #cb4b16;
-}
-h1 {
+
+.tag,h1
+{
color: #d33682;
}
-h2,
-h3,
-h4,
-h5,
-h6 {
+
+h1
+{
+ font-size: 2.4em;
+}
+
+h2,h3,h4,h5,h6
+{
+
color: #859900;
}
-pre {
- background-color: #002b36;
+
+pre
+{
color: #839496;
border: 1pt solid #586e75;
padding: 1em;
box-shadow: 5pt 5pt 8pt #073642;
}
-pre code {
+
+pre,pre code
+{
background-color: #002b36;
}
-h1 {
- font-size: 2.8em;
+
+h2
+{
+ font-size: 2em;
}
-h2 {
- font-size: 2.4em;
+
+h3
+{
+ font-size: 1.1em;
}
-h3 {
- font-size: 1.8em;
+
+h4
+{
+ font-size: 1.0em;
}
-h4 {
- font-size: 1.4em;
+
+h5
+{
+ font-size: 0.9em;
}
-h5 {
- font-size: 1.3em;
+
+h6
+{
+ font-size: .8em;
}
-h6 {
- font-size: 1.15em;
-}
-.tag {
+
+.tag
+{
background-color: #073642;
- color: #d33682;
- padding: 0 0.2em;
+ padding: 0 .2em;
}
-.todo,
-.next,
-.done {
+
+.done,.next,.todo
+{
color: #002b36;
background-color: #dc322f;
- padding: 0 0.2em;
+ padding: 0 .2em;
}
-.tag {
- -webkit-border-radius: 0.35em;
- -moz-border-radius: 0.35em;
- border-radius: 0.35em;
+
+.tag
+{
+ -webkit-border-radius: .35em;
+ -moz-border-radius: .35em;
+ border-radius: .35em;
}
-.TODO {
- -webkit-border-radius: 0.2em;
- -moz-border-radius: 0.2em;
- border-radius: 0.2em;
+
+.ACTIVE,.CANCELLED,.DONE,.HOLD,.NEXT,.NOTE,.TODO,.WAITING
+{
+ -webkit-border-radius: .2em;
+ -moz-border-radius: .2em;
+ border-radius: .2em;
background-color: #2aa198;
}
-.NEXT {
- -webkit-border-radius: 0.2em;
- -moz-border-radius: 0.2em;
- border-radius: 0.2em;
+
+.ACTIVE,.CANCELLED,.DONE,.HOLD,.NEXT,.NOTE,.WAITING
+{
background-color: #268bd2;
}
-.ACTIVE {
- -webkit-border-radius: 0.2em;
- -moz-border-radius: 0.2em;
- border-radius: 0.2em;
- background-color: #268bd2;
-}
-.DONE {
- -webkit-border-radius: 0.2em;
- -moz-border-radius: 0.2em;
- border-radius: 0.2em;
+
+.CANCELLED,.DONE,.HOLD,.NOTE,.WAITING
+{
background-color: #859900;
}
-.WAITING {
- -webkit-border-radius: 0.2em;
- -moz-border-radius: 0.2em;
- border-radius: 0.2em;
+
+.CANCELLED,.HOLD,.NOTE,.WAITING
+{
background-color: #cb4b16;
}
-.HOLD {
- -webkit-border-radius: 0.2em;
- -moz-border-radius: 0.2em;
- border-radius: 0.2em;
+
+.CANCELLED,.HOLD,.NOTE
+{
background-color: #d33682;
}
-.NOTE {
- -webkit-border-radius: 0.2em;
- -moz-border-radius: 0.2em;
- border-radius: 0.2em;
- background-color: #d33682;
-}
-.CANCELLED {
- -webkit-border-radius: 0.2em;
- -moz-border-radius: 0.2em;
- border-radius: 0.2em;
+
+.CANCELLED
+{
background-color: #859900;
-}
+}
\ No newline at end of file
diff --git a/temp b/temp
new file mode 100644
index 0000000..d067ab9
--- /dev/null
+++ b/temp
@@ -0,0 +1,13 @@
+
(fp_line (start 23.25 -1.7) (end 25.05 -1.7) (layer F.SilkS) (width 0.12))
+
(fp_line (start 25.05 -1.7) (end 25.05 -2.45) (layer F.SilkS) (width 0.12))
+
(fp_line (start 25.05 -2.45) (end 23.25 -2.45) (layer F.SilkS) (width 0.12))
+
(fp_line (start -1.8 2.75) (end 13.75 2.75) (layer F.SilkS) (width 0.12))
+
(fp_line (start 30.05 -0.2) (end 29.3 -0.2) (layer F.SilkS) (width 0.12))
+
(fp_line (start 29.3 -0.2) (end 29.3 2.75) (layer F.SilkS) (width 0.12))
+
(fp_line (start 29.3 2.75) (end 13.75 2.75) (layer F.SilkS) (width 0.12))
+
(fp_line (start -1.8 2.75) (end 11.25 2.75) (layer F.SilkS) (width 0.12))
+
(fp_line (start 25.05 -0.2) (end 24.3 -0.2) (layer F.SilkS) (width 0.12))
+
(fp_line (start 24.3 -0.2) (end 24.3 2.75) (layer F.SilkS) (width 0.12))
+
(fp_line (start 24.3 2.75) (end 11.25 2.75) (layer F.SilkS) (width 0.12))
+
(fp_text reference C13 (at 0 -1.65 270) (layer F.SilkS)
+
(fp_text reference C13 (at 0 -1.65) (layer F.SilkS)
diff --git a/tkUI.py b/tkUI.py
index e6ff590..df7576c 100644
--- a/tkUI.py
+++ b/tkUI.py
@@ -113,7 +113,7 @@ def runGUI(checkouts_top, prjctName, prjctPath, scm):
frame2, text=b, variable=buttons[b], onvalue=1, offvalue=0).pack(anchor='w')
commitTop = Variable()
- listTop = Listbox(frame3, bd=0, selectmode=SINGLE, exportselection=False)
+ listTop = Listbox(frame3, bd=0, selectmode=SINGLE, exportselection=False, font='TkFixedFont')
listTop.grid(column=0, row=0, sticky=(N, E, W))
scrollTop = ttk.Scrollbar(frame3, orient=VERTICAL, command=listTop.yview)
scrollTop.grid(column=1, row=0, sticky=(N, E, W))
@@ -122,8 +122,12 @@ def runGUI(checkouts_top, prjctName, prjctPath, scm):
listTop.bind('<>', CurSelect)
commitBottom = Variable()
- listBottom = Listbox(frame4, bd=0, selectmode=SINGLE,
- exportselection=False)
+ listBottom = Listbox(
+ frame4,
+ bd=0,
+ selectmode=SINGLE,
+ exportselection=False,
+ font='TkFixedFont')
listBottom.grid(column=0, row=0, sticky=(N, E, W))
scrollBottom = ttk.Scrollbar(
frame4, orient=VERTICAL, command=listBottom.yview)