diff --git a/kidiff_gui.py b/kidiff_gui.py index e682497..2653cde 100755 --- a/kidiff_gui.py +++ b/kidiff_gui.py @@ -596,18 +596,18 @@ def comparePNG(diff1, diff2, prjctName, prjctPath): composite = convertProg + ' ' + p1 + ' ' + p2 + \ ' "(" -clone 0-1 -compose darken -composite ")" -channel RGB -combine ' + \ diffDir + '/' + plot - + comp1 = subprocess.Popen(c1, shell=True, executable='/bin/bash') comp2 = subprocess.Popen(c2, shell=True, executable='/bin/bash') diffs = subprocess.Popen(composite, shell=True, executable='/bin/bash') out, err = diffs.communicate() - + # Accounts for project names containing hyphens splitted = plot.split('-') page = splitted[-2] layerExt = splitted[-1] - + layer, ext = layerExt.split('.') colour = layerCols.get(layer, '#ffffff') @@ -615,7 +615,7 @@ def comparePNG(diff1, diff2, prjctName, prjctPath): colourize = convertProg + ' ' + diffDir + '/' + plot + ' -fill "' + colour + \ '" -fuzz 75% -opaque "#ffffff" ' + diffDir + '/' + plot - + diffs = subprocess.Popen(colourize, shell=True, stdout=subprocess.PIPE) out, err = diffs.communicate() @@ -975,16 +975,6 @@ div.responsive {{ diff1=diffDir1, diff2=diffDir2, prjctPath=prjctPath) - print(diffCmnd1) - - diffCmnd2 = '''diff {prjctPath}{plotDir}/{diff2}/*.kicad_pcb {prjctPath}{plotDir}/{diff1}/*.kicad_pcb | grep {mod} | sed 's/> /<\/div>
/g' | sed 's/< /<\/div>
/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)