From 9964af199453ce45ae8a8c10828a79d11870e011 Mon Sep 17 00:00:00 2001 From: Nikita Zlobin Date: Fri, 28 Sep 2018 17:48:17 +0500 Subject: [PATCH] rack list: Colorized rails --- resources/bitmaps/rack_interior_left.png | Bin 742 -> 6219 bytes resources/bitmaps/rack_interior_right.png | Bin 738 -> 9037 bytes source/frontend/widgets/racklistwidget.py | 46 ++++++++++++++++++++-- 3 files changed, 42 insertions(+), 4 deletions(-) diff --git a/resources/bitmaps/rack_interior_left.png b/resources/bitmaps/rack_interior_left.png index ebd6402508f3bd0384d50f0694bb9721a0580799..977f0e8a69c4267cfb60ed23c0d844033949d389 100644 GIT binary patch literal 6219 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 JQzK;_`ah!sU|j$J delta 700 zcmV;t0z>`HM&bpK7#j!%0001MXzCFF000JJOGiWi{{a60|De66larPZAAbo36bc@s z?DN3@00M7GL_t(o!^N0QZ`&{ohF{7bL4ZU_fuQMSJ$JvM*fszE+M(C=lGXtnFRMOm z?U31(RoSuSpd%neh7+2k$cK#S$K#`cBSh3Jtu<6xLMwINE7dHi6r>OkQi5Tq5Pf{s zdrO8XGUmMO>v}s%QHOQLQh&%sx#d_#M5yn?zCaseAcVl5_jhQm5k(Q=IQDq_VNvWV z(OM%v9+71kl-4NA5{wA*`5cSI0%Qf7EK6fs31bX-p5xcc3#xxltE%d3p_C}g5}b3d z_f3o#V@T4prNox1s&G1;AcW{wv|KJx6h+H#S9DoIDb)nqdupro8h=u$3x`Loge0QR zc@#xar~l1&7{e@0TM0?7qTfYaCBuUb?B#Lmi z-D0^|fLTXwyGC~PbI$SY{vJex=jUe}4u|t;CP|Z=4FRNtR0=`}NGaP1nddovK0RT5 zbA!9>7MslmulqfYMSsyM2ivvI5>ZOwb-%}(#UtZXywA1qJaUxMBp%tff_Y?2%Q^~H zL^P3*9!`f@R9n#zt1xB+I=n}KHx3`~|-Fnd1GrLYc2XfiP?Qc zJDAy*djC*nr?Xjqj0VlwoFh%s{u1e9He;+kXZr@zAZAP1{L2oXvxj8%*D$+|OGjS| iBV;f}I^I6m@)Z}xtu&*LYX@ln0000 base_color.blackF() else base_color.darker(115) + def selectionChanged(self, selected, deselected): for index in deselected.indexes(): item = self.itemFromIndex(index)