| 1 | package require wtree |
|---|
| 2 | package require BWidget |
|---|
| 3 | package require msgcat |
|---|
| 4 | |
|---|
| 5 | namespace eval ::TolPkgGUI { |
|---|
| 6 | |
|---|
| 7 | namespace import ::msgcat::* |
|---|
| 8 | |
|---|
| 9 | variable widgets |
|---|
| 10 | |
|---|
| 11 | variable cwd [ file normalize [ file dir [ info script ] ] ] |
|---|
| 12 | |
|---|
| 13 | variable urlmap |
|---|
| 14 | |
|---|
| 15 | array set urlmap { |
|---|
| 16 | http://packages.tol-project.org/OfficialTolArchiveNetwork/repository.php OTAN |
|---|
| 17 | OTAN http://packages.tol-project.org/OfficialTolArchiveNetwork/repository.php |
|---|
| 18 | http://packages.localbayes.es/BayesPrivateTolPackages/repository.php BPTP |
|---|
| 19 | BPTP http://packages.localbayes.es/BayesPrivateTolPackages/repository.php |
|---|
| 20 | } |
|---|
| 21 | |
|---|
| 22 | variable win |
|---|
| 23 | |
|---|
| 24 | variable packSyncInfo |
|---|
| 25 | variable versSyncInfo |
|---|
| 26 | variable localVersionInfo |
|---|
| 27 | variable localMostRecent |
|---|
| 28 | |
|---|
| 29 | variable nodesInfo |
|---|
| 30 | variable treeParents |
|---|
| 31 | |
|---|
| 32 | if { ![ info exists localInfo ] } { |
|---|
| 33 | array set localInfo {} |
|---|
| 34 | } |
|---|
| 35 | |
|---|
| 36 | if { [ lsearch [ image names ] green_light ] == -1 } { |
|---|
| 37 | image create photo green_light -data { |
|---|
| 38 | R0lGODlhEAAQAOedABoaGh0eHSUlJScnJykpKUtLS0xMTFxcXFxdXF1dXWNjY0l4KUt4LEt5LU57 |
|---|
| 39 | L1Z4QG1ubVd5QW9wb0iJG0mLG2yBX22BYFiQM3KEZ1eSMXaGa3OJZHSJZ3mHb4KDgYOEgoSEhISG |
|---|
| 40 | g3yKdIWGhHCRWoWHhHCTWIeIhlegJliiJnSUYF+jM3eZYY6OjmClM1+oL2CqLouXg3ufZo2YhoCh |
|---|
| 41 | bIGibZqbmpubm4mldpucm4emdZifk52dnZ2fnJ6fnI6ofZ2jmJ+inZGqgXO4UaCknpSshHS7UaSm |
|---|
| 42 | oqSmo4e4ZaqsqKSvnKutqqSxnI69bK2urHfPPLGzr3jQPIjLW7S2sn3URX3VQ4zOYLa6s4/OdYLW |
|---|
| 43 | Wbm9tYTYUILYWJHRdoTZTp/NiqDNjL3Au7/AvsDAwL/BvsHBwcDDvsPDwrfKrMTEw7nKr4riUrzK |
|---|
| 44 | sovjVL3Ls5DkXZHkX5TmaJbmZ5Xma5fmZ67anJfmaZnnbZ3ncM/Pzpzoc53odNHR0ZrqgqHpeqXo |
|---|
| 45 | eaHpe6Xoep/qgJzrhaHqgqXpg6XphNTU1K7rh9fX1q/ridfY19TjycHto9fmzcPwpcPwpsTwp9fv |
|---|
| 46 | xdfvxtnzx9X2zNr1yNb2zuL52+P53ev25Oz35P////////////////////////////////////// |
|---|
| 47 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 48 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 49 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 50 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 51 | /////////////////////////////////////////////////////yH+EUNyZWF0ZWQgd2l0aCBH |
|---|
| 52 | SU1QACH5BAEKAP8ALAAAAAAQABAAAAjfAP8JHHiDjBkeAxMO7HNmhoUKMcQgUiiQkYgHQtq8KRKh |
|---|
| 53 | gyKFejQwaLSJE6dNjxxg6DMQBJAGSShVunSp0iQnC3a0EIiGw4QpjiJJkgTJ0RUKG9QIfKICBRRA |
|---|
| 54 | iRYtSiRISgoSTAQiYfGiips6efLUYWMFhokjAnv8WMElzh08eObA+eIChw+BNpZc0EKHT6A/e+R0 |
|---|
| 55 | ydAkh8ADQXQMIVTokKFBfozUIKJg4AgsNLJg0pTJkhcZW04kFOAhypowduyASUPlAwGFACCEUDKm |
|---|
| 56 | DJMSEgJQFCigAIIEBgbsHk4xIAA7 |
|---|
| 57 | } |
|---|
| 58 | } |
|---|
| 59 | |
|---|
| 60 | if { [ lsearch [ image names ] ok_green_16 ] == -1 } { |
|---|
| 61 | image create photo ok_green_16 -data { |
|---|
| 62 | R0lGODlhEAAQAOelAEhfPU5hRlFiTFNiTk5oP1NmS1VlUFRmTVllWFloUlxoW15rXF1sV1dwSVpy |
|---|
| 63 | S11yUmlyaGl0ZWxzbmB6UGaET1yOMXqCeWqLUV6XLH+Ie1KhCFOhCFOiCFSiCFWiCVejDVekDFik |
|---|
| 64 | DnGWVFqkEVilDlmmD1ymFF2nFl6nGGCpGoqSimGqHHWkTnijVGyxKm6yLmm7G3O2M3W2N5qimXyz |
|---|
| 65 | SWq/GZ6jnpykm3e5OH27Qn29P36/QYS9UoLBR3DNF3HOFnLQFonFT3PSFnTSGHjTHo/HW3jUHnjU |
|---|
| 66 | H3rUIXvVJLO3s5TKYX/WKpTLXbS5tJHNV5LOWIXWNpPPWbe8t5DSUYjZOYnZOorZPLu+vY/XSIra |
|---|
| 67 | PZXUWozaQJnTYY3aQY/ZRo3aQp/Rbo7bQ4/bRJDbRpDbR5vVZJDcRpLcSZLcSpTbT5PcS5PcTJvY |
|---|
| 68 | XpTcTZvZX5TdTZTdTpbdUMHFxJfdVJfeUpjeU5rdWpneVZvdWpzdXpveWpzeW5rfV6DcZZ7dYaPb |
|---|
| 69 | a5zfWp3fW6HdaKfadZ3gXJ/fYZ/gX6DhYaHhY6fecqLhZKPhZazcfaPhZq3cf6PiZqzfe63hfKvk |
|---|
| 70 | c8/Rz63kd7Higa7kd9DS0bDlfrPkgrTkhrrmj9ja2dvb29zd3eDh4OTl4+Xm4+7v7vLy8f////// |
|---|
| 71 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 72 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 73 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 74 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 75 | /////////////////////////////////////////////////////yH+EUNyZWF0ZWQgd2l0aCBH |
|---|
| 76 | SU1QACH5BAEKAP8ALAAAAAAQABAAAAjmAP8JHPiPAweCCAV+6NHFzyAzQUYk/OdCkZsqVq5wwSNJ |
|---|
| 77 | BsIXlc6QQbMGjpwLFBrlGBjCEh48fQIVOlQEApYBnFAIXDJpkSNGixIhevDJRgtIYQQ+MiTiwBZB |
|---|
| 78 | gXhYGGWAjp1IBTexkEBJAJU6E0CpoMEmTSYPHTSpceAEU4EsC0glGCMGzCUQ/wiV+dJgihIAM+ZU |
|---|
| 79 | MJKECSAN/5rE0RIlQKcbnjLUECLkCBSBJv4MEQJDQShRDCgLuZNiYAw2lDEgiECAshcdCHHoQSLk |
|---|
| 80 | hw8gRPLsmHjiSRs+e95IWTFx4AYSJTYkDAgAOw== |
|---|
| 81 | } |
|---|
| 82 | } |
|---|
| 83 | if { [ lsearch [ image names ] yellow_light ] == -1 } { |
|---|
| 84 | image create photo yellow_light -data { |
|---|
| 85 | R0lGODlhEAAQAPcAABoaGh4eHSUlJScnJykpKX9qOUtLS0xMTFxcXF1dXF1dXWNjY25ubXBwb5ds |
|---|
| 86 | DZptDIJkH4JlIoNmI4VnJZ56JZx5J4BrOoV5W4V5XId9Y4l/aLOBFbCAFriJH7qKHrKHJbSIJOKp |
|---|
| 87 | KeOqKeexMuixMeu5POq4PpuEUZmEUpuHWaCLWqaSX46AYI2BY4qBbI2EcaiWZamWZqybbquacK6e |
|---|
| 88 | eK+ge7GifsWmQ8mpQ9mtTMOiWtywUcenYujDR+bCSfXAQPXAQfXFTPXGTvbJVvbJV/bKV/bLWPbO |
|---|
| 89 | WPbPW/fNXffOXtrDat3HavfNYffMa/fNa/fQZPfRZffUbPjUbffccvbYdvbYd/jddfjSefjTevjU |
|---|
| 90 | fPjmdfjneISDgYWEgoaFg4SEhIaFhIeGhIiIho6OjpmSgZqTg5uampubm5ycm52dnZ+enKGckqCe |
|---|
| 91 | nKWgl6KgnKSinbGrmrSsmaeloaemo6yrqK2sqa2sqq6tq7Syrre1sbu5sr67tMG/u9bEgdbEg+LT |
|---|
| 92 | lPfamfrdnPrdnc7EqM3Drs7FrM3Er8HAvcHAvsPBvsDAwMHBwcPDwsTEw8/PztHR0dLR0dTU1NjX |
|---|
| 93 | 1tjY1+fcxenfyvXkwPnowfvpwvz1xvz1yP342P342fjx4vny4gAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 94 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 95 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 96 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 97 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 98 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAKAALAAAAAAQABAA |
|---|
| 99 | AAjfAEEJHIhmESM1AxMOhKTIDIYLZfpIUiiQ0osCNQodsmHBxSSFjzREqOTp0ydPliZkiDQQjBsJ |
|---|
| 100 | Oi5hypQJ0yUeENiQEdiohYMcgQQNGiQo0I4HLBwJxJOCQwgnWbRowfJExAYUdwTSUdFhBBAiTZoM |
|---|
| 101 | +UHCw4k5AtfQ+GBCiBElSYoEKQFiRhuBZ+JU8IEkyhQpUI70oCAnjUAEb2Tc4HLFShUqW3DEgLNg |
|---|
| 102 | YJg9MJZs6sRJE5MVfMYkFNAlj6E/gAD5IaTHCwGFABh8qYMokR0xDQJQFCjAQAIFBwbsHk4xIAA7 |
|---|
| 103 | } |
|---|
| 104 | } |
|---|
| 105 | |
|---|
| 106 | if { [ lsearch [ image names ] refresh_yellow_16 ] == -1 } { |
|---|
| 107 | image create photo refresh_yellow_16 -data { |
|---|
| 108 | R0lGODlhEAAQAMZJAI99Ob2SKdGaI9SbI8+fIOCjHbynYsSpSLypbeKmHL+qZdWsGryrd+upGdyw |
|---|
| 109 | FsaycuS0E+yzE+W3E/u0Evu1EfK4D+i7GPu3EPy4D/y4EPy6Dvy7Dfy9DPy+DP2+C/3ACv3BCv3C |
|---|
| 110 | Cf3DCP3DCf3ECP7ECOTEWfzGB/7GBv7GB/7HBv7JCP7JCf3JDP7KDPHJPf/MEP3MGf/MFPjMLf/N |
|---|
| 111 | Fv/NGv/PIf7PJf7QJ//QKv/SMv/TNv/TOP/VQ/7WR/7WSPjXaP/YU//YVf/ZWP/bZP/bZv/edf/e |
|---|
| 112 | d/7ggf////////////////////////////////////////////////////////////////////// |
|---|
| 113 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 114 | /////////////////////////////////////////////////////////////////////////yH+ |
|---|
| 115 | EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEKAH8ALAAAAAAQABAAAAdpgH+Cg4SFhoeIf0gKiYMPRkRB |
|---|
| 116 | PTo2MBKHQEM+OzcyKykjFYcvOTEtJyIfHBoBhxYAgwQZEw2NjQwIBraCR0VCB4MOEIcmPzw4NCwo |
|---|
| 117 | qRGHMzUuKiUgHRoXCYcLJCEeGxgUBbt/AgPi5o2BADs= |
|---|
| 118 | } |
|---|
| 119 | } |
|---|
| 120 | |
|---|
| 121 | if { [ lsearch [ image names ] red_stop_16 ] == -1 } { |
|---|
| 122 | image create photo red_stop_16 -data { |
|---|
| 123 | R0lGODlhEAAQAOeLAKkAAKoAAKoBAasEBKsGBqwGBqsHB60ICMwAAKwJCcwCAq0NDa8PD68QEM4I |
|---|
| 124 | CMcMDLATE84MDLEUFLYbG4YpKoUrK4UtLbcjI4c0NLgnJ7srK4g7O9MnJ9QnJ7wvL5E7O7swMNQq |
|---|
| 125 | Kr4wMNUuLtUvL7w4OME3N8I4ONc0NMA7O9c1Ndc4OMU+Ptg6Otg7O9g9PcdCQtk/P9lCQshHR9pE |
|---|
| 126 | RNpFRdpGRtpHR9pISM5NTdpKSttKStpLS89OTtlMTNBPT9tNTdpPT9xPT81UVNxQUNZSUtdSUtxR |
|---|
| 127 | UdxSUtNVVd1UVNpVVc1ZWd1VVYFubtVZWYRvb91XV91YWNpZWd5YWNpbW9pgYNRlZdxmZuBmZtpr |
|---|
| 128 | a+Fra91xcd9xceJyctx2dpuIh5aKiI+NieB3d+R2duF3d56LiuJ7e6COjaOSkaaVlOSFhaiYl6eb |
|---|
| 129 | maubm6KfnKydnLKpp6+tqru+uL/CvcPFwMfJxcvNyc7QzNDSzdLU0dPV0dbY1NfY1Nrc2Nzd2d7f |
|---|
| 130 | 3N/h3uLj4OPk4eXm5Obn5enq6Orr6e7u7fHy8fX19P////////////////////////////////// |
|---|
| 131 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 132 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 133 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 134 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 135 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 136 | /////////////////////////////////////////////////////yH+EUNyZWF0ZWQgd2l0aCBH |
|---|
| 137 | SU1QACH5BAEKAP8ALAAAAAAQABAAAAjXAP8JHPgvQACCCAUSYJFkSpUnMxIk/HcBywsOHUKMqNHF |
|---|
| 138 | A8IMW1CoWNHiRQwZNsikGGhgDI0aN3YAIYKkCZUoaxoIZJKlSZQoTZQgOUJECBApVwR+QQIFjhs2 |
|---|
| 139 | atKgMQPGCQwuBc/giKMoEaJDhQYF+iOnhBcBAcrEaGOIkCBAfvrsyfMGxJYB/7SoCMNHD547durQ |
|---|
| 140 | mSNmghUA/4a8+LABg4UKkCFTeNBD4IIlChBo3rzZB4SBGlxw5kzCBEIRQSJwdsDjxEQGOYoA0WHk |
|---|
| 141 | h4SJAwEUOIAYYUAAOw== |
|---|
| 142 | } |
|---|
| 143 | } |
|---|
| 144 | |
|---|
| 145 | if { [ lsearch [ image names ] yellow_stop_16 ] == -1 } { |
|---|
| 146 | image create photo yellow_stop_16 -data { |
|---|
| 147 | R0lGODlhEAAQAOeQAIWFbpSLK4iIb5SMLZaNKpSNNJWOO5+WO5CTiZiaiZ6fh6GiiqOkjcqnDaKl |
|---|
| 148 | nMqoDcuoDcupDMupDaankcupE8yqEMuqE8yrEsyrFqiplKmpmc2sFM2sGs6uGs2uHausl8+vHq6u |
|---|
| 149 | m9CxIK+vnK+yqtS3LrO1p9W4MtG+G9e8NNe8OdHBMNq/ONLDOLu+uNrBRNzDP93EQL/Cvd7GR8PF |
|---|
| 150 | wODKTubPDN3NQsfJxe3UAO3UAuPPWuPPYO7VCMvNyebRUubRU+7WDOjTU87QzOnWWdDSzfDaJ+jW |
|---|
| 151 | afDbJ/DbKurYXdLU0fDcLvDcL9PV0e3aVPHdNO3bVPHdNfHdOPHeOvHeO/HePfHfP9bY1O/dW9fY |
|---|
| 152 | 1PLfQu/eVu/dYfLfRfDfTPHfS/HfUO7dbfLgRPLgRfLgRvLgR/LgSO/fXPLgSvLgTfLhSvLhTfPh |
|---|
| 153 | T/PhUPDgaO7fevPiUPPiUfPiUtrc2PPiVPPiVfDgc/PjV/PjWNzd2fLjcvHjeN7f3PTlZvTla/Tm |
|---|
| 154 | a/Pled/h3vPlffTmcuLj4PbodvTohuPk4eXm5Obn5enq6Orr6e7u7fHy8fX19P////////////// |
|---|
| 155 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 156 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 157 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 158 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 159 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 160 | /////////////////////////////////////////////////////yH+EUNyZWF0ZWQgd2l0aCBH |
|---|
| 161 | SU1QACH5BAEKAP8ALAAAAAAQABAAAAjWAP8JHPjvAQSCCAVSmEEkCxolNTAk/FfijRUjSJIw8bJH |
|---|
| 162 | BcITgKBImULFypUtZQy9GGiBzxgyZtawcTPHTh48hzwI5OHHDh48durMkROnDZs8RwTCmSNgRIgP |
|---|
| 163 | GSYwWKAAwI07/yAMOmPikaNGjBQhEqSHRAtCEiIEuqJhUaJCfehocVLEwYo/Ff6JkZIAy5IhPnDQ |
|---|
| 164 | kOECAYouAndYOWCgwIAAkCETsAFEIAcuOnJo3rz5C4iBKapw5twEBkIWYYJw7gEmxsQOP56oSRNF |
|---|
| 165 | iIiJBC9saJAwIAA7 |
|---|
| 166 | } |
|---|
| 167 | } |
|---|
| 168 | |
|---|
| 169 | if { [ lsearch [ image names ] red_light ] == -1 } { |
|---|
| 170 | image create photo red_light -data { |
|---|
| 171 | R0lGODlhEAAQAPcAABoaGh4dHSUlJScnJykpKUtLS0xMTFxcXF1cXF1dXWNjY25tbXBvb54KB4ge |
|---|
| 172 | GqEJBrgTD7sSDocgHYgiH6QkH7siHbkkHoojIIM4NoQ5NqInIsIbFsAdGOwmIO0mIPEvKPAxKfM/ |
|---|
| 173 | NvQ9NMxLPdBLPf5AN/5BOPFSP55QTZxST4dbWYhcWp5YVqRZVpBgXqpgXIljYotoZoxsa5BjYY5x |
|---|
| 174 | cKtnYq1mY7Bva65wbrF3dbJ7ebR+fMhXVcxfXeFJReNOS/5ORO5TQf5QRv9XTv9YT/9aT/9bUf5f |
|---|
| 175 | UP5iU/9hVv9iVv9iWf5pXf5rXv5pZP5qZeB1ZON3Zf9yZf9yZv5/bP95c/1+cP1/cf95dP98dtuI |
|---|
| 176 | fdqKf/6Cb/+Lbv+PcoSBgYWCgoaDg4SEhIaEhIiEhImGho6OjpqBgJyDgpuampubm5ybm52dnZ+c |
|---|
| 177 | nKKRkaWXl6CcnKOcnKWdnbOambaamaehoaejo6yoqK6pqa6qqq+rq7Svrreysbyzsr+1tOadkOed |
|---|
| 178 | kPyXlPyYlf6al/6bl/+cmc+trc+urtCpptCtqsG6u8G9vcG+vsS+vve/vvi/vvzAv8DAwMHBwcPC |
|---|
| 179 | wsTDw8/OztHR0dLR0dTU1NjW1tjX1+jExOvJyP7BwP/RxP/Sxv/e1v/g2Pnh4fvh4QAAAAAAAAAA |
|---|
| 180 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 181 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 182 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 183 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 184 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAKQALAAAAAAQABAA |
|---|
| 185 | AAjfAEkJHKgmkiQ2AxMOtNQIzQoVZxRhUihQEw0MOgwd2pFBRiaFlWJI2CRq1ChRnC7AuDRQzJsJ |
|---|
| 186 | PBxB6tQJ0qMeDtyYEThpRgMfgggVKjQo0I8HLigJ1MMCQgcnWLJkqfLEQ4QUeQTaacEBhAkiS5YM |
|---|
| 187 | KfFhA4o6AtvksBBCiBElSYoAEVEBBxyBaeZoCIKkyRQpTI6coEBnjcADcW6M8MLlihUqXUjYkKNg |
|---|
| 188 | 4Jg+NaB8CgXKU5QXfsokFPBlT6ItfwBpQcQHDAGFABaEubOIER4yDAJQFCigAIIEBgbsHk4xIAA7 |
|---|
| 189 | } |
|---|
| 190 | } |
|---|
| 191 | |
|---|
| 192 | if { [ lsearch [ image names ] database_refresh_32 ] == -1 } { |
|---|
| 193 | image create photo database_refresh_32 -data { |
|---|
| 194 | R0lGODlhIAAgAOf/ADRnADpsADpyAD53AEJ6BD18ADd/AEV7ADmAADKDADqBADuDAD2EAESCAD+G |
|---|
| 195 | AmtvckeFA0GHBUOJAGtzekaLAHJyh0iNAE6MD0qPAFWRB1uKO1SWAF6RM36Dhl2ZFWeUPn6GjnyI |
|---|
| 196 | iFihAIGFoIGIkGChAGWfEX2MkoeHqW6YUIWNlYOPkG2hIoePloiQmHWlAHylAJCQpnKqAHSiS46S |
|---|
| 197 | oXGkRW+kTIyUm4aWnHmlSIGqBIKrAH6tAIuaoXisLnSyAH2pS5KaonyqU4KxAJScpJWdpZaeppCg |
|---|
| 198 | pnq4AIOtY4OvUZigqIG4BX26AJmhqYKyRZmgtZOjqZmzAIurgpujq4G+AJ22AITAAJ28BKKqspS0 |
|---|
| 199 | eZrAAKCsuYTHAJXCAKOstJHEAKSttZjEAKautpq0n57DAJa+Up22j47FK5rGAKSwvpvIAJ3JAK2x |
|---|
| 200 | wKqzu6qyx5/DQJnMBKK7k6HMAK+zz5zOAKHNDJ7QAKjEYaTPAJnTAKPPEqDSAK66x5XWAKHTAKy/ |
|---|
| 201 | q7O7w7HLOrS70Z7XAK3RGafTGLHQKLa/x7jAyLnByZ/eALrCyrTHs7rC17vDy7zEzL3FzajgAL7G |
|---|
| 202 | z57lAL/H0L/G3LzI1sbG3cDJ0cHWVq/hLL/L2cLL08LK38PM1MnJ7cTN1azqAMTaWrLkMMbO1sjN |
|---|
| 203 | 3MjM6cLdVMPP3cfP18XcY8TQ3s3N5cjQ2MbfTsnR2svP7MneXsbS4NHQ6MvT3Mjgbs/U18zV3czU |
|---|
| 204 | 6tDU5M3W3tDhcMrjcM7X38rmZM/Y4NDX7c3Z59DZ4djic9LpR9fX79HpUNLa4svobdbjgdPb5Nba |
|---|
| 205 | 6tPb8dTc5drb5dXd5tXmkNTohNbe59ne7tnojNfoktnd+tfg6Nvf797e9dnh6tzg8OTonOLootvj |
|---|
| 206 | 7Nzsltno29zk+t3l7uTj++Hk/9/n8O3sqOPn9+Dp8eTp7OHq8ufvr+fn/+Ps9Orq/+jt8PHys+ru |
|---|
| 207 | /vXzwuzx9Ory+/Dx++7z9vb2//P4+/T5/PX6/fb7/vj+//7//P///yH+EUNyZWF0ZWQgd2l0aCBH |
|---|
| 208 | SU1QACH5BAEKAP8ALAAAAAAgACAAAAj+AP8JFHhkyRInCBMqNHhkoMOH/4xEGZPIFa505jJqzJgO |
|---|
| 209 | l6tEY5wYgTiwyBhc26ZBQ8aypUuW0KZtQzamCMl/UXbtwlWrp8+fQGvh0hnl5pFxnz6VWsq0qdNS |
|---|
| 210 | Scc1JFmE37dMjyBBisS1q1etjzJ940fFaKR7++rNVNWprdu2qpBtq5fWFBSjgRJ1QrYOnj59+QIL |
|---|
| 211 | /gtPHbJPjhJ8uGkkEaNHkTJ1KuXKF7KYyHzhYpWKU6ZLmBjoaEBVESOuk13tAoZsGrZnzJgFy0Wr |
|---|
| 212 | 1SlQDIjpYADxxBjIkimvRoaNWzZhSTIgWK6AAQJlo3iQdqgiyxhFqWtZRpaNnBYPZqL+gStW7Nix |
|---|
| 213 | YtHEyBoCwWGQdWOIOHETKFInYN2BPLGGqtCePAACmMaAv1jgUA+d0LPOLYy4kQUXXLyRwhPSGBLH |
|---|
| 214 | HXxkqOEdGDJxwIGJJFIKNPDQww8//YSTQTJ/6KHHFSVQwMCMDBBCSBMDPNSDaVtl8okquDQzAxqb |
|---|
| 215 | +EFICRecAUgstzEgSRU5PhQEI6fZR5kv2iBAyiKLdHFBLrmY8gloDnQR5UMgjNFjasAIg4AolFAi |
|---|
| 216 | ghzBzFJKJpFYwsCZaFqHHWW1AAOMcggooEAjxujCSieZ9PHGCP9YQAEFFhj4zw3uxDdffZxkI047 |
|---|
| 217 | 77RTzjU1JDAIF06M4c5dLMzTzTnuluLwiYIMOgihGmq08QYdHMDAgCe+jGOPKTQogIc3VlgRa4gj |
|---|
| 218 | lsjPPtDuw48/SrwQDwP4kJMKGVMw4AM7gmCxQwEC3cBjZD9qx105NrxQTTWFMmcCHNZoskUZll5K |
|---|
| 219 | JWrCAfOMODnIwIsYthRsMC+rHFJGGhsIMBAOikBmpWr+koPAKwOmYcfGGw+YhxgbEOBQB0EoEpwr |
|---|
| 220 | texyGcA/8MGhhhn+AYYMFgAA0QQtBJFFII+whs036MgjBBI2MhCBBJNSAEEANw30QAgktNDCCitI |
|---|
| 221 | HYMGVUhCAQoVNO31TQN0ke/XZDt0wNhlp6322moHBAA7 |
|---|
| 222 | } |
|---|
| 223 | } |
|---|
| 224 | if { [ lsearch [ image names ] install_zip_32 ] == -1 } { |
|---|
| 225 | image create photo install_zip_32 -data { |
|---|
| 226 | R0lGODlhIAAgAPcAACUmJSYoJikpJyorKD4/PFA0Clg7DEY2Gl0/Ez9BPm5EBmpECXBHCXJJC2VF |
|---|
| 227 | FWlIF2lJGHROEFdMNWtQJFBRTVpZUlxeWl9iXnpsUn5zXGJnYWlqZ21wbndwY3FybXx3and4dXt8 |
|---|
| 228 | eJ9pEJJkG5hnG5loHKBmCqJoDqJtFKl0HpZpJZZrK4xpMKp1IqFzL698LLF8KaF1MqN4NopvR5F0 |
|---|
| 229 | RJ58RIZ2WaB+SbaBLqmAP7WCNbWDOLuKPcaRP8+WPqWDS7WJRLiLRKeGU66LVK+PXbGPW7eRVrOR |
|---|
| 230 | WoGDf52Oda6RY7KTYbyZYr2caKuTcMeSQ82WQ8qXSsyaTtObRtSeS8OXUc+cUcacXNCfU9miTs6h |
|---|
| 231 | XNKiV9mjUdSlXdypW+CsXcOdYMmiZMikbNytZNKqa9uvad2wa9Svddy0ddi0fOGuYOa0Zum5buG1 |
|---|
| 232 | cOa5c+y9dISFg4eJhYuLi52UhZSSiZSVlJeYlZiZl5eZmJydm6idjqukl6Chn6qmnqSlo6appauo |
|---|
| 233 | o6anqaepqqurqrCtpLOzramtsbS0s7i5t7u8u926hb7BvODAjcDBvvfVoPncr8XFxMfIxsnKx8vM |
|---|
| 234 | y9LPx8/QzsjL0NTU09fZ09nZ19bY29zc297g3+Dh393e4N/i5uTl4+fo5+nq5+bn6ezs6/Dx7vT0 |
|---|
| 235 | 8/n59/f4+P39/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 236 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 237 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 238 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 239 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAKoAIf8LSUNDUkdC |
|---|
| 240 | RzEwMTL/AAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVD |
|---|
| 241 | IHNSR0IAAAAAAAAAAAAAAAEAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 242 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAA |
|---|
| 243 | AAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAA |
|---|
| 244 | AlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmll/3cAAAPUAAAAJGx1bWkAAAP4AAAAFG1l |
|---|
| 245 | YXMAAAQMAAAAJHRlY2gAAAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAI |
|---|
| 246 | DHRleHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNj |
|---|
| 247 | AAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAA |
|---|
| 248 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA |
|---|
| 249 | 81EAAf8AAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAA |
|---|
| 250 | AAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8v |
|---|
| 251 | d3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAA |
|---|
| 252 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4x |
|---|
| 253 | IERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0L/AAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIu |
|---|
| 254 | MSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRl |
|---|
| 255 | c2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAA |
|---|
| 256 | AAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAA |
|---|
| 257 | AAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFY |
|---|
| 258 | WVog/wAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJz |
|---|
| 259 | aWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBP |
|---|
| 260 | AFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA |
|---|
| 261 | 4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGS |
|---|
| 262 | AZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAv8UAh0CJgIvAjgCQQJLAlQCXQJnAnECegKE |
|---|
| 263 | Ao4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oD |
|---|
| 264 | xwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJ |
|---|
| 265 | BVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkH |
|---|
| 266 | Kwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglP |
|---|
| 267 | CWT/CXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvI |
|---|
| 268 | C+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsO |
|---|
| 269 | tg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHo |
|---|
| 270 | EgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgV |
|---|
| 271 | mxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kX/64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZ |
|---|
| 272 | kRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3s |
|---|
| 273 | HhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i |
|---|
| 274 | 3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN |
|---|
| 275 | KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last |
|---|
| 276 | 4f8uFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz |
|---|
| 277 | 8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0 |
|---|
| 278 | OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpB |
|---|
| 279 | rEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kd |
|---|
| 280 | SWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk3/Sk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EG |
|---|
| 281 | UVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZ |
|---|
| 282 | uFoHWlZaplr1W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKc |
|---|
| 283 | YvBjQ2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9s |
|---|
| 284 | V2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+ |
|---|
| 285 | /3abdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4Co |
|---|
| 286 | gQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL |
|---|
| 287 | /IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1 |
|---|
| 288 | l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj |
|---|
| 289 | 5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqv8cqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACw |
|---|
| 290 | dbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2P |
|---|
| 291 | vgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbL |
|---|
| 292 | tsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx |
|---|
| 293 | 2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LxU |
|---|
| 294 | 6Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4 |
|---|
| 295 | qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf//ACwAAAAAIAAgAAAI/gBVCRxIEASfO3f4KOQz6A8c |
|---|
| 296 | ghAjQhxkKtWpi6dSpaqU6FIkDRJDChyUqlQpUidLneqDJA8fSZUsiIwY4qKpmzdTNZJz6FChP5cG |
|---|
| 297 | zSRIYZLGoxpNcYATJw6eQ4g4cZhpARGkSEiRmmoUyU4FOoUIUcoztE7Ws6kO2cgRBIjbIDp0vBCZ |
|---|
| 298 | B61GTR8mqHARwwXfGDJkhKkiEtHRjKlQ+ZFgYMGCBpAhM1CgwMgjHiEJQEJ6ycOBAgYQOIDwgPRo |
|---|
| 299 | CA6OOOoi8kKlVKb6YKBxQwgRJmLOpEmjqHdvRmSgoIhYp6ecRHI6ELkCJgyZMm+iS3/D5k0ZVSlM |
|---|
| 300 | EIxzqNIlTZDq/mgaBUjJlS5hxnz54oVLlixTpviwMpzg8UmJIE3aJIoUKlSHLKFFFwRusYUVUkTx |
|---|
| 301 | xIJVpAARIpcgkt8lnoxCyk2kzDECCSV06OGHIpxAUB2bTHLVeCiVMsomo1gygwoqrCDjjDK6UMKD |
|---|
| 302 | o1xyySagTIJIhZdkssknSbyww5FIIhlECwTBMQkpn3xCyiQCIZJJJpVoAsoeT0DhAxRggunDFFTA |
|---|
| 303 | YN8lppCC0iEDBWlJJp4AAkV88VFB5xRc4ACRJLDdtAmbg3hSCUyb6EEmFYgmiugYOkB0SGKpkBLK |
|---|
| 304 | Jpt0cslVlVjixHtcdOqpe2NgZl8psAkqSSSJABKIIYjk0cQatmqMIesYZZRhRhtomDmRRpDAccgg |
|---|
| 305 | gAgCyCCDBGJDBCzUUMMNPwxxxBEq1BcRIqeM4oddfgQgRyCBHJLIJKAYMlQgm/yhiSkpoWRKJx5U |
|---|
| 306 | 4h0mnIRSykNDqQLCHaeI0h8p+pYySCOl6CuKKZDUS5AkpFB6ZaWg2NEIKKCIAsoGBg9EgSSdYKIx |
|---|
| 307 | JpVwwskfi4jSSQgVE5SAHYgsskgjjawsSSN/XFByRAEMYPMAAdQ8wMw89+xzRAEBADs= |
|---|
| 308 | } |
|---|
| 309 | } |
|---|
| 310 | if { [ lsearch [ image names ] database_add_32 ] == -1 } { |
|---|
| 311 | image create photo database_add_32 -data { |
|---|
| 312 | R0lGODlhIAAgAOfXADpyADx0AD52AEV7ADmAADqBADuCAEKAADyDAD6FAUaEAmtvckeFBEKHAEOI |
|---|
| 313 | AESJAGtzekaLAEmOAEqPAFuJM0+SAFCTAFOWAFmRIliUDX6Dhl6aF36FjWGYKn+GjnyIiIGIkIKJ |
|---|
| 314 | kX2MkoSMk4WNlG2eOYOPkIaOlYePlm6hQomRmIqSpouTmoaVm4yUm4eWnI2VnGmwBGSyAHimT4ua |
|---|
| 315 | oW6zAJGZoZKaom+1AHazAJCbqJObo5ScpHG3AGu5AHK4AJWdpZibt3m3AHO5AJaeppCgpnS6ApGh |
|---|
| 316 | p5igqHe7AHa7BZmhqXi8AJOjqZqiqnm9AJSkqnq+AJujq368DIDEAKGqsYPGAKKrs4rFAKCsuYTH |
|---|
| 317 | AKOstIXIAKGtuofFHKSttYfJAKKuvKauto3IAKevt47JAInLAKiwuJLBU5DLAKiwxYvNAJLII6qy |
|---|
| 318 | upPJJauzu5DMGZvDV6y0vJLNG6m5oK21vZvFXpHSAK+3v6S+qZ7IYbK7w7S9xZ3TMbW+xra/x6XT |
|---|
| 319 | M7jAyLXBz7nBybrCyrvDy6nVWLzEzK/UWLfJtb3Fzb7Gz8XE3L/H0L/G3MDJ0cHI3sTI2MHK0rTa |
|---|
| 320 | ZcLL08DM2sPM1MTN1brbbsbO1sfP18TQ3sjQ2MfP5cnR2srS28vT3M/U18/T48zV3cHhiM3U6sXg |
|---|
| 321 | j83W3s7X38Tji9LW5sjikc/Y4M3Z59DZ4dDY7c7a6MjkmdLa4s/b6tPb5NTc5cvnndTc8tva8tXd |
|---|
| 322 | 5tzb89be59fg6Nvf79jh6dni6trj69vk7N3l7t7m79/n8ODp8eTp7OHq8uXq7eLr8+Ps9Oft7+nu |
|---|
| 323 | 8Ojw+evw8+zx9Orz++7z9vP4+/T5/PX6/fb7/v7//P////////////////////////////////// |
|---|
| 324 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 325 | /////////////////////////////////////////////////////yH+EUNyZWF0ZWQgd2l0aCBH |
|---|
| 326 | SU1QACH5BAEKAP8ALAAAAAAgACAAAAj+AP8JFFgECZIlCBMqNFhkoMOH/4hAEROI06hixDJqzFhs |
|---|
| 327 | FKdAYpYQgTgQiJhRvnblksWypUuWuXb5kiUGCMl/TU6dGgWqp8+fQEGN0tnkZhFhlixlWsq0qdNM |
|---|
| 328 | SYU1JAmkGrBHhQ4dUsS1q1ethR4BqybFqKJo1KD9kqWJktu3bjXJ+gWNmjNFUyEe8ROIkqxjzKZN |
|---|
| 329 | k0a4sGBmxmRZChToyE0igQgVUvSIUiZOqGTFlIVqlCZLjxQdIjRoJNVBhLha5nSKlaxdvFie4vQ5 |
|---|
| 330 | dCFCNkmKEDO58uXWr2PLml1btJwQN0dUETNoNajMsnj5WokKFKdMlBThETPi5o1kZHj+OGmzRxEl |
|---|
| 331 | VLt+AYudKXSdKkvEIENykwalZ8dCEXpTpb+YM2d0kUV/chQyijHNUEJDfYxlkssyz1RDzYSCTUhN |
|---|
| 332 | Nc0ss0smgQiiQ32obfWIJZo8p9kunHmUSSWRQOIII0HcZAMhqZn3m2uwycbJJp3Q0QECCCQQgQMQ |
|---|
| 333 | cUCGiKsBlyNnopQygwRomGKLLavYkQEDDnmwXHOXgXIKS9KtJMsrKVywiiFTxBDDFIjEsgGWAsGg |
|---|
| 334 | THjjledXeuvJokoeEpDiRQ84WGMNDj14kUoGA71gCX768ecfgF10oQYGcbiRRBKBDnqpG3ooIFAL |
|---|
| 335 | DT4YoYUVVmMNAZNE0UMPMggqw6rDUWASgUAuhEgZiSZu1gouBfSRhKDAApsEILP+wwKNqt0YnCyw |
|---|
| 336 | 6FIAHFEEG2wUcBTbwiCT2cgajrE1WwAVVEQRhQ+C+iAuFWMUq8EOg0ji3Jey+PJLLrPcUkIMYIAR |
|---|
| 337 | rqBRUJFvDgcMBIEKO1TBRyGu8QLMMMQE80sviUgwhhn6CuqvGWVcQNICH4CAwgkmmEDCyCegsAIF |
|---|
| 338 | F6SxRr75rpHGBQLcJLNDAVQgxBp33LGGEBUEMPPPAw0QwdARDAD00UgnnXRAADs= |
|---|
| 339 | } |
|---|
| 340 | } |
|---|
| 341 | if { [ lsearch [ image names ] system_upgrade_32 ] == -1 } { |
|---|
| 342 | image create photo system_upgrade_32 -data { |
|---|
| 343 | R0lGODlhIAAgAOf/ACwsNDg2Oi09LSRGHUo7V0BERkNFQh9hETlXM2BdYS17GkB5MGdqeGlqc3Zn |
|---|
| 344 | jCmJHm9tcTmGJHBtfEuBRXNwf3FyeyKWFAegEnp2hnx2gVOJTECTKSqbGxWkGACwBQ6rE0WYLiuk |
|---|
| 345 | GkCdMQC1AGOOX4SChgC3AA+zAIKDjAC4AFCbOR+wBwC7AxaxJoWGj4iGihC2Ehi2AGOXZTmpM1ue |
|---|
| 346 | PSKzHjCtNoyImTGxHUWnSQm/DIiNkB67GpCNnXiaeCi+DSO+HpGSnEW2JFWtTzy5JyPBLJSWkzq+ |
|---|
| 347 | EC3DJZmZo0jAJC7HM3KuZz7EJznFO52eqHG0UT/GNKGeojzHPUPHKpygr6Cgt0zHNZ+kpqOiuVvH |
|---|
| 348 | LqSkulTKMKWnpIy0iU3NS1PNO6envqqorFLORZeykKaquVnMTGPKQ6mpv1/NPV3ORq6ssIW/cVzP |
|---|
| 349 | T2HNVa+tsaquvq2vrK2ut5+0pmjOR62txF7TObGuv1/SUZS8kbKwtLCwumjRUZm8mWzSTLK0sbOz |
|---|
| 350 | vbayw7ezxWzVVbW1v7i1unTWXnnWULq3yG3ZYLW5ybi6t3zVX7m5w6DEoHvWZnXZaHrZW7i8zKzC |
|---|
| 351 | tL68wLi+wLq+znrcZIDaa8G9z3zeZobacofcX73CxL3B0cbAy4XeZ8LCzL/D0oXfb8bDyMPFwrnM |
|---|
| 352 | uIficoziZIria8bH0ZDjc5XheorldMjJ08vJzZjidLvRw5PldtHK1p7lcZzld5boeM3O2NDO0sjR |
|---|
| 353 | zMvQ0pjnhbzXwdDR26LpidbS5KLsftnS3tTU387Y09jW2rnnn6Pwh9Xa3KfxgtzZ3tna5LHyhdvc |
|---|
| 354 | 5rjupdze27Pykt/c7t3e6ODe4rH1juHf49bl2MLwqLX3ieDh6+Ph5eTh8+jh7d3m4ebj6MfyuN7o |
|---|
| 355 | 4r/4oOXm8L77lOnm69D0u+ro7OXq7ejp8+vp7e3q7+Tu6err9u/s8dD9re3v6/Du8vLv9O/x7unz |
|---|
| 356 | 7vTx9u7z9vHz8Pbz+Pj1+vz1//n3+/j69/37//j9//v9+v3//P///yH+EUNyZWF0ZWQgd2l0aCBH |
|---|
| 357 | SU1QACH5BAEKAP8ALAAAAAAgACAAAAj+AP8JHEiwoMGDCBP+A+TPHyCFEAXiIvik4ROCEyMOLGTP |
|---|
| 358 | X6OBSRpiGZjJX75CGv9VaMgPAqVt6jbx2WWNXDNWjLw5SPnvVj9++/w9SuPrGbJly66Ja1dLC8Fi |
|---|
| 359 | ClHwy1ePyKhTqU7JkmULGLCj4CIJhEWroBxKAsXks3cvBKRBhhJd0nS11VZbtozBkjUNVcFu9saJ |
|---|
| 360 | sQdvnwg3Y9S0WYwkRQoWURJd1cqVE0FA99i9g8cOnqMZUZxM+QLEhIcLHVawiEEF06VLoEaJJeji |
|---|
| 361 | XDp06PApWFKkiBPHDw4MEIAgApEfTRgpZ3TIIIB048rFssCDBxAeKTgQDEBgQ5MjV/j+iPdjMMi4 |
|---|
| 362 | budk1IABg0eMGgYXcFFyxYx9M2cMAsJGbduEGh7EEIMJOBhkRxp00KFGGlQcocRAr5BCSS/MMBOM |
|---|
| 363 | Bi14YIIJLBwkhAggqCAiDVCwMYtAmdyiTDQVBkOCDQPG0OFBGfTwyS/QaAPNL54IhMYWWWxRRyCu |
|---|
| 364 | +DCECRBJsYcqgdwRRpBoCIQBBRJY8aQkczDxAURydNJIFmFYIQEFGBR0w49oUONFDgoZ4YozZWyB |
|---|
| 365 | xg0IMVAHGmikM0keClUijDlloFEHAwgl0GQgntDDSx8IURKOPZ4cmsBBhCByhyWKSMKMOtWYQgZB |
|---|
| 366 | ceCSzjzKSKKIJXcgQkhBVaBxRyCyosQaCjbycMPNMLnockw65dyTTSixitIkGlUUlCocDQijyi0q |
|---|
| 367 | xlOPOdCyY489yjCrijANwGGpQQ00IFAF0fQiTDLJUGNOPPCkQw25xPQSTQUCdQtRCdRkI0023Yyj |
|---|
| 368 | 73n2ZkNNCTz9Q0y588DjzsEIwzPPusTwtEa57xiwQynu1FOPO6XsUMA7676R0gvJCDZQFxZ3MZAY |
|---|
| 369 | 5STzQsB6EPRHPPH8QVDLARu0iD76LFLzzhAFBAA7 |
|---|
| 370 | } |
|---|
| 371 | } |
|---|
| 372 | if { [ lsearch [ image names ] product_update_32 ] == -1 } { |
|---|
| 373 | image create photo product_update_32 -data { |
|---|
| 374 | R0lGODlhIAAgAOf/AAAjAgEkAAQwBhM1DQM8AAA/AAs+Dhk7EwpCAxhAEQBKAQNOACVBHxRJCgBS |
|---|
| 375 | ABJNDipHJAVYABlQGABdAC5NLx9WHUVHRClTKABoAABvAAZtBjZbNRZyAEJgPEBiN0FjOCFxDhB4 |
|---|
| 376 | ACtuJTFvM0RpQz1tOSt1JACGAACHACh5IDxxNhp/ERCDB2FjYE5sRyZ/HQCPAEF3PByJEWlraACZ |
|---|
| 377 | BAGcADSLKCCUElGBTA2fAEOKOCiUJ0CLPnd5dmOCW3V6fGGDYlCLR0uQN2CGXlWORBilGXx+e3uA |
|---|
| 378 | ghisACOoEBGtFEiYRH6DhYGDgFuWUi2oKQy1ECiuJDioMoiKh1ufWG+YYyK7BI2RlFmpU2yiYzu5 |
|---|
| 379 | JmWqT0q1N12wUi3DJSvGGm+rZUy5Q2SvYHmoale5RG6wYnqrc1u4Uj7FMzDOJXiyeD7MJHi0bVHF |
|---|
| 380 | RZeplnS5cKKnqUHRNKaopU/MQ1/ISXDBaT7XMIu4hqesrpuyl17NXDreK62vrKuwsnrFdHPKape8 |
|---|
| 381 | jLCyr4zBjWHUU1DdQE3dSUngOVXbUKG9m5fCiovIf5LFi33OdXDUZGHcUnbUa1zfTJjKkLLAtK3E |
|---|
| 382 | qbDDr3DebKvHpI3TiILZd2XmU4fYfl/qTX/dc1btT1rtR17rVlHxSnHma2DtWKjQpbjKt2zpZb7I |
|---|
| 383 | w7zKvnvmbJvZj8HMupTfjKrYpITodsDQtqDcn2H2V77VuqDhnbjXuqPhl6fgnWz4Y8DYvLHfq4P0 |
|---|
| 384 | cZ3plbbfs8/U18bZxc/Wy4/wi73hvKzoq5L1iIH8d9Lb1sjgxL3mud3a39fc36bynrTtqs7izeLb |
|---|
| 385 | 59rf4tfh3N7g3Nzh5L/uutPm0s3o0uLg5MPtwLfztcjtyN/k57L5rOni79Ts0Ofl6dDw0uPo6ubp |
|---|
| 386 | 5eHr5uXq7e7n8+vp7ffp9+zu6+/t8env8ffs8+vx5vTt+dL8z+b058/+yezy9PPw9e/y7vL08fbz |
|---|
| 387 | +PD19+P83/3y+fvz//n3+/P5+/f59vX88Pf9//v9+v78//3//P///yH+EUNyZWF0ZWQgd2l0aCBH |
|---|
| 388 | SU1QACH5BAEKAP8ALAAAAAAgACAAAAj+AP8JHEiwoMGDBwP5W8iwocOHC6ckhEiRH798+PDlm+eP |
|---|
| 389 | ycR9FS1azIcxX7x57jpObLjPYr+XMO+R3BgPnrt9RyaKdNmPH7117dbRy3fvHkp4SPnlNKhwZz99 |
|---|
| 390 | 2XLZggWrU6ZKwdjdc/cO3jmcOvn18xcNkh07hjZ12kToC5Iwu+B9O3cOn5Gw/mRZgYIEjSNUrUId |
|---|
| 391 | QnMjgggcPsyFszsxn79dMFCwkLKqWzp46a49kqLiQQEElMzNu2uQj79+8UQsqKADV7979d6ps1cv |
|---|
| 392 | lZQuNzLcUTfvx8E+C90AYDDiVb93riKlWqRKXa1GmDApefJNXo+Dpv11ELChTD90iSD+2RqWbBAi |
|---|
| 393 | adY01fmD5I4936X9fRsAoQSrfpO8GKpU7doeLaao8802yvixiDzwFWSaLwl4EMQ09mxBQxSRvHNJ |
|---|
| 394 | EjWMMQ43HHIDzTkJEmRaOafEcks58AjhwAuW3MOGDRM4saEzzjxDzTnXxXdPP/XI8845RLiQBylm |
|---|
| 395 | 9KIAAVWI00sWQ5AgyTshDoSHP8WMMosv6KgDCAcgrBDCLSZgMIk4o8RAQQBP5liQHP6w8gQPVAgS |
|---|
| 396 | yzNbnJADFFHcAAY14rzxwQEJEDNOlALh0Q84SbTBCBZLqEGNInQ4Qscix2hTDA8UAAAEN96oSZAc |
|---|
| 397 | +dQjBgpc/BEGLuRo8wwxzWijzTL+WFxgAAKn3EjoP3Lg8w4lC0Rggg5k4IKNq9o0s8sZKWiQARjc |
|---|
| 398 | NDPaQXDMEw42F0jQQAM7oFHJKrSswskcReTwlo3e7NPEQXK44804lJDyhgw0eFHIJ6KwtcYXaTTi |
|---|
| 399 | DKfnqGQQHO94g80443zDih5xGOKJJ6AsXEot1HATzjkpeTpQuthgAw001KgKjC6/CCNMMsY8ow03 |
|---|
| 400 | 3yAFjz8zQGuOxtA0I/MxzDBzzM01U+NNOe7YdBNCcpyz8czNIGO00TdHPM477jQ9TzkIwTGOzDIf |
|---|
| 401 | jfQxzWDjzTk2wYOPP/ksVRo+4YTjjTeccno21/jwAxI/8/ByBUICtdDEEXjnbQQS3kY0McXfUzQx |
|---|
| 402 | gwV0F2644QEBADs= |
|---|
| 403 | } |
|---|
| 404 | } |
|---|
| 405 | if { [ lsearch [ image names ] file_remove_32 ] == -1 } { |
|---|
| 406 | image create photo file_remove_32 -data { |
|---|
| 407 | R0lGODlhIAAgAOf/AMIABToqFMMWGMUaIFZBH1pFI11HJcYpKcYpL19JJ8gqKmBKKGFLKExOS2NM |
|---|
| 408 | JMIvLmVNJmZOJlFTUGlRKWxTJW5VJ3BXKcc9Os48PXhZLHBaPNE+P3ddL19hXntdNnpgMYFgLtFH |
|---|
| 409 | R4RjMHRnUWhqZ4hmM9FPT4VuT5JuNYtvQJNvNpRwN5VxOJZyOZdzOnZ4dZh0O5p1PIJ4bJt2PZx3 |
|---|
| 410 | Pp14P555QJ96QKB7QYh+cs5qa4OAcqF8QqJ9Q8ttbKN+RKJ+SsxubaR/RZ2AUKN/S6aARqWATKeB |
|---|
| 411 | R6GDTaiCSKKETqmDSY6GgKWFSaOFT6qESqWGUKuFS5qIZ6yGTImLiK2HTaiJU66ITq2IVLCJT9l6 |
|---|
| 412 | eLGKUJONjN95erKLUbGMV7OMUo+Rjq2OV7SNU7ONWbWOU6yPZLaPVLWPWt9/fZKUkbGRVKKTfLOS |
|---|
| 413 | VZmUkraRXOGBf7OTXLWUV7SUXbiTXeKDhrWVXrqUXraWX5ial7iXWreXYK2ZceGIibmZYaybfqib |
|---|
| 414 | irqaY+SLi7ycZL2dZZ+hnr6eZr+fZ8CgaOSSkMGhacChb8KiasOja+CWl8KjceaVmcSkbMalbcOl |
|---|
| 415 | eaeppcembsWmdKiqp+Sam8inb+Ccm8mocMiodsqpccmpd8uqcs2sc8yses+tdc2te7Cyruejoc2v |
|---|
| 416 | gsixgs+wfc6wg+mlo7K0sbO1su2opsa2n9G0s8y2ssi7qby+u+izsr2/vL7BvcHDv8LEwcPFwsTG |
|---|
| 417 | w8XHxMbIxdHFxeq+wcfJxu2/vMjKx9THx8nLyNTJvNXIyMrMye/CxenExcvOys3Py+3HyM7QzdvO |
|---|
| 418 | z+/JytHT0NLU0djT0tPV0t/S0tXX1OHU1NvW1NbY1enU19ja1t7Z2Nnb19rc2dze293f3N7g3d/h |
|---|
| 419 | 3ubh3+Hk4Ojj4uPl4eTm4+Xn5Ozm5ebo5efp5ujq5+nr6Ors6fDr6evu6u3v6+7w7e/x7vXw7vDy |
|---|
| 420 | 7/Hz8Pjy8fL08fP18vT38/b49Pf59vj69/n7+Pr8+fv9+v3//P///yH+EUNyZWF0ZWQgd2l0aCBH |
|---|
| 421 | SU1QACH5BAEKAP8ALAAAAAAgACAAAAj+AP8JHEiwoMGDCAXWQkjFG7qEEHGhe1jQ1jhv7ihCLEgJ |
|---|
| 422 | XTp46brlEehN3blv796F2VjQWbp079y1a+fw3bpz4eDBY8WS4LN06tbNa5dxHLyM5+bNE9ZzYLSg |
|---|
| 423 | 7ea5ewcv3Dx569Ldu4etqcBo64i+mwdPnrp59o7m0/fN679pRKfWk4d2Hr6r+/Spcwt3Krx69e7h |
|---|
| 424 | y7cPH75++OS5xeZ3XmDC/Pr587dP6WKqdO9BnjwZH9GejEaFGoXKlGlTqFKdNp3q1ClLnDwtSlhJ |
|---|
| 425 | lG3bnzbp3pQpUyVJwCU1YsSo0SPalX4DbzRckSJEhw4ZIkQo0KRhyc6p05bsIHTp1AP+iQ+0pzye |
|---|
| 426 | 83RcYUMHz7E9e/N2ESy/5zweO3PmxEGD5kyZMmOAEYs26phDVz32xENPPV0JhIUVUESohBJIGGGh |
|---|
| 427 | hUBkyEd215SijFLxGKNMPPPIMlAVRRTxw4or8uDiizzcMg01iSQCyTHszKJKK7/M804HAolRRRVT |
|---|
| 428 | TBHFkU88scQSTSRhBi3dgKNJHX0IgomNmDTjIyUCtQHgGAF6scUWWWQxZBV/5MLNOOA40kUacFDZ |
|---|
| 429 | C13vICOQHnTkyR9/ZPRJxpiA4KJNOOFQY8IGGISgRTrrvNPONALJsd8ZXoY5pplVsHHJLs8QgwAA |
|---|
| 430 | oIIaRDfeYOOLQGW0YWmZQxqZpBTWheTCywOhDhCqDt5Mw9M/YmJKZBRKLpHEEUUMoYYtsAggKjQX |
|---|
| 431 | gHpANtFQIRCRrgo7bIoquijDKr68IoAP2GDD7AHMTHOqQEpem2KLPOBwww02pMCFLcUEM0242lQj |
|---|
| 432 | zTTJkDAQtj+86K4NNtRAwwwxxHCCG7cAk0w0907zDDLSDiQwvDUYjLALHLfAwgoe7ECKLsAIg0wx |
|---|
| 433 | skhQUAwF03BwDBy74PEKKqiAwgoulKDBCDkw8UIDBxVQggggfMBBBhZUQMEEEUDgwNMQMLBAAgYQ |
|---|
| 434 | EIBbWB8UEAA7 |
|---|
| 435 | } |
|---|
| 436 | } |
|---|
| 437 | if { [ lsearch [ image names ] check_connection_32 ] == -1 } { |
|---|
| 438 | image create photo check_connection_32 -data { |
|---|
| 439 | R0lGODlhIAAgAOeWAGhoaGlpaQCUAGxsbACYAG5ubgCbAHFxcQCeAHNzcwChAACiAHR0dHV1dXZ2 |
|---|
| 440 | dgClAHd3d3h4eACoAHl5eQumC3p6egCrAHt7ewCsAA6nDnx8fA+oD319fQCvAH5+foCAgACzAIGB |
|---|
| 441 | gQC1AIKCggC2AIODgwC4AEKeQoSEhAC5AIWFhYaGhoeHhwC9AImJiYqKioyMjI2NjY6Ojo+Pj5CQ |
|---|
| 442 | kJGRkZKSkpOTk5SUlJWVlZaWlpiYmJmZmVS3VJubm5ycnJ6enlS8VJ+fn6GhoaKioqOjo2y9bKen |
|---|
| 443 | p6ioqJSylKurq6ysrK6urq+vr7CwsLKysrOzs7S0tLW1tbe3t7i4uIfPh7y8vL29vb+/v8PDw8TE |
|---|
| 444 | xMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0rrcutPT09TU1NXV1dbW |
|---|
| 445 | 1tfX19jY2NnZ2dra2tvb28jjyNzc3N3d3d7e3t/f3+Dg4OHh4eLi4uLj4uPj4+Tk5OXl5ebm5ufn |
|---|
| 446 | 5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pr6+vn7 |
|---|
| 447 | +fv7+/z8/P////////////////////////////////////////////////////////////////// |
|---|
| 448 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 449 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 450 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 451 | //////////////////////////////////////////////////////////////////////////// |
|---|
| 452 | /////////////////////////////////////////////////////yH+EUNyZWF0ZWQgd2l0aCBH |
|---|
| 453 | SU1QACH5BAEKAP8ALAAAAAAgACAAAAj+AP8JHEiwoMGDCBMqXMiwoUOFLJCsMAjgocEYY9qooUGQ |
|---|
| 454 | RgCLBF+YWYPmjRwfXdZsqQFyoAs0cAqRKUMHzxEwcVoKZKGmDp0/isygsfPnyBudKtjkgYPmzqCg |
|---|
| 455 | SvX8aFnCTZ8/kNyoyVNI0Zk3fOSosDiiDSCihiC9YdMHkSI0cf6YsfiEUCM9awQhUvsG6KKhb4o0 |
|---|
| 456 | rEDjRhtFlPi0IaQIEhw5ghopGqMFCEMOdCwJ4aGGUeI3hxhFimNHkJwtShhWaFMpUCMcO8o8Siwn |
|---|
| 457 | kaNIbtZoWcLwgplIlCrFYQRDxxhIlfrYYaSIThYmDCd8abToUSVJcAKNuOFFUvI6b7T+NNHAMEtj |
|---|
| 458 | OIIYVcJd50INLpQWmcnixMNAAQivHDr0SG2gRZU80gYaDchAhRv0cTAQAQwaNAUhd9xRyCOOmJVI |
|---|
| 459 | JYyo0cUBGtCwRAgDGSCiiATN8McgFZb2CCNr+GHIJHOEYcUEL9gnEAI44liQB1f0EdoadADyyFt7 |
|---|
| 460 | BJFBGljwQJACCzS5wEElTJHHIYqoIYcfkCDSwwMPbJAECgNxKSZCDHzQxB2HJHJGHHxAUoUEcFJA |
|---|
| 461 | EJxwKjTCBEjAcYghZcCBxyFGYCCoBQIJKuhCb1SQABFoHELIGHKEIcUJHVRqaaUMxQFGBAX4IMYh |
|---|
| 462 | gHgRRQz/gGDqqSAwVMMWa3QBwQAtOWjRBRQzDCQCCbiSwFAAHA3kwAAqDGFDQSakkEJDFRXkgAMK |
|---|
| 463 | GtSCTtBG+1BAADs= |
|---|
| 464 | } |
|---|
| 465 | } |
|---|
| 466 | if { [ lsearch [ image names ] package_down_16 ] == -1 } { |
|---|
| 467 | image create photo package_down_16 -data { |
|---|
| 468 | R0lGODlhEAAQAPcAADJwKjZ6MUFqIkNsJ0ZvJkBvK096LVyAPUePQEuPQUqMRUuNRk2PSFeNQ1CS |
|---|
| 469 | S1WaTleZUVejTlikT2a2XGi4XWytZXysZ22+Yny/dnDCZXLFZnPGZ3THaH7AecODIsOEI8CFJcSF |
|---|
| 470 | JMWHJsaKKMeNK8iPLcmQLsmSL8iVMsuVMsyYNMiUO86dOd6fMtGkP+KqN+KpOOOrOua0Pea1P+y2 |
|---|
| 471 | OOm1PcqQStCXU9KlQNOoQtSqRNWsRdWtR9awSdewSteyS9iyS9i0TNi0Tdm1Tdm1Ttm3T9WmUdqt |
|---|
| 472 | UNuxVuGnQOa1QuaxR+i+Q+m9ReSxTOi/SOi7T/W9QOWvVtuyYt25ada4cNy9d+a2a+W/b+SzdIDB |
|---|
| 473 | eoLCfYXDfuzFR/nESOHAcuDAfeDGfvXPf//Vd/XQePXQf/7WeIfFgZHKiZPLjJ3QlaDSl6nXoKvY |
|---|
| 474 | otvDidfTj97JlezFg+7Eg+3Gh+zKhOvMhOfMiO7KiPHPhvvchPfViffXi/DQjOXPku3SkurVnPHV |
|---|
| 475 | kPXXkPLWlf7flfjbnf/hm+3ZpfLdr+3evv/kpfnhqvrjqv/oq/fksvrksP/qs//ptv/rt/blv//q |
|---|
| 476 | uf/ruv/rvf/tvv/uwf/vwfvty//vyPnrzfrszv/wyf/yzvXr0vfu0f/z1P/z1f/01//12f/02v/2 |
|---|
| 477 | 2//23fz24v324v724/744f344vz45v775//+8P//9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 478 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 479 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 480 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 481 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAALEALAAAAAAQABAA |
|---|
| 482 | AAjnAGMJHBgLiA+CCAcK+fHHzg4dCQcG6dNK1aFGX1wkJBIGFKxXmY7sUSRoCguBRYYY+oQIjpsq |
|---|
| 483 | VAKJIbSIjpEUQlZt8lMHC5IVnEhNGjQmUZ4TP1iFcoSnDBknjiAVMhOlBqASPVKVElVJD4cNGS54 |
|---|
| 484 | ofEECh8SPFCN8qSJkoY2bCh0aaJkyZ0ROlCF6mTp0YQ1aiQwmREjSRwROVydwhSJUYQ0aBDIgNHi |
|---|
| 485 | ipwQOKxIMnXpzYMzXAK8kDIniw0PAlmAsZCgwhYtDgAcuPEBoQoUDSB0wLCgAIjaEU0YYKBgQIiI |
|---|
| 486 | CAkIiBgQADs= |
|---|
| 487 | } |
|---|
| 488 | } |
|---|
| 489 | if { [ lsearch [ image names ] software_update_16 ] == -1 } { |
|---|
| 490 | image create photo software_update_16 -data { |
|---|
| 491 | R0lGODlhEAAQAPYAAM5cAM5dAM9dAM5dAc9dAc9eAc9eAs9fAs9eA89fBNBeAdBfAtBfA9FhBNFh |
|---|
| 492 | BdBhBtBiB9FjCNFjCtFkCtJkCtNlC9RlCNJmDdJnD9ptDdJoENNoENNpEt1xENhzHN96IN97IuF/ |
|---|
| 493 | JfaDE/WEEvaFE/aGFfaFF/aKGfKIH/eNH/iQG/iRHfiSH9+FMeKAJu6FIO+FIfCHIvCHI/OKIPaL |
|---|
| 494 | I/KNK/iWIfWSL+OOPPGTNPSWN/iYMfmeMviaNPmhOfmhPfqmPvafRfahRvmiQfqnQPqoQfemTvSm |
|---|
| 495 | UveoUPWrV/u0V/u3XvayYvSzZvW0aPa3a/q0avq0a/u3bfa4bPm4aPu6cfu6cvm9cfrAdPvBdPzB |
|---|
| 496 | df7kv//qzQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 497 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 |
|---|
| 498 | BAEAAF0ALAAAAAAQABAAAAeYgF2Cg4SFhoIHCYeGBy04C4tdEhwGE1dYGgQYFwCFG1pTTUtKTk9Z |
|---|
| 499 | HoYBTEVEW1tEQFQIhQURRz42XFw2PEkVkIIEIEZDLCq6Kis/SC4GggYfQT1WurpVO0IhzoICEDkp |
|---|
| 500 | UrpSJzoUCoY1JSRRUCQjNwOGDjQyLyYiMDE0FoYMEAUMUMxwUOBBg06HBGTocC7SoAIEHEoUFAgA |
|---|
| 501 | Ow== |
|---|
| 502 | } |
|---|
| 503 | } |
|---|
| 504 | if { [ lsearch [ image names ] check_green_16 ] == -1 } { |
|---|
| 505 | image create photo check_green_16 -data { |
|---|
| 506 | R0lGODlhEAAQAPYAAACVAACWAACXAACYAACZAAKaAgOaAwecBwidCAmdCA6gDQ+gDhCgDxOgERWj |
|---|
| 507 | ExymGiSlISirJSqsJCqsJi+uKzCvLDKvLzayMTeyMjixNDy1Nz21OD61OT+1O0C2O0O1P0O4PUS4 |
|---|
| 508 | PkW4P0m2REe5Qki7Q0q7REu7RlC+SlG6TFK6TF3CV17EWGjLWm3FZmnJYm7JZ3LMZnnNb3TQbHjU |
|---|
| 509 | a3vPcHrTcoDTdYDUeYXWeYbQfoXUfYfeeojeeovaf43VhY/VhY7WhonYgozdgI/dhJDXh5Peh5HV |
|---|
| 510 | iJHWiZLWiZLaiZPaiZbdjJTfjJnbkJ3elJHmhJTkh5rljpnikJ/ml57rkZ/qkqDgl6HgmKHimKbl |
|---|
| 511 | nKjmn6XsmajqnanvnanmoKnooKzroazoo6zuoK7qpbHtp7LsqLPtqbLuqbfzrLnzr7zzsr/1tQAA |
|---|
| 512 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 |
|---|
| 513 | BAEAAG0ALAAAAAAQABAAAAeZgG2Cg4SCBQgLhYptBSouKQ+LgwYfRzJIEpKCDD8xMUUTmgkwSy1P |
|---|
| 514 | KxSaFlc0TDsVmgtKRkNZHoIAECMNBJssWj1kLxeCATpAQRYHbRFiUWFNGIMCSTU3VyQOQl1WZSWE |
|---|
| 515 | AxlOOT5bOGdVazMahQUdWEQ8ZlxpVBuLCidfUlBeaiiaHmwAM4aNDRCa2kwwgWZKiISCMHAQISkQ |
|---|
| 516 | ADs= |
|---|
| 517 | } |
|---|
| 518 | } |
|---|
| 519 | if { [ lsearch [ image names ] cdr_tick_16 ] == -1 } { |
|---|
| 520 | image create photo cdr_tick_16 -data { |
|---|
| 521 | R0lGODlhEAAQAPZ2ADd7MTh8Mph/Mpl/Mpp/MjqUMECFOWuPPUijPFWcTVKtQ1ymUlyjVGuqXGC1 |
|---|
| 522 | UGi3XmyyYnS5ZZmAMo2vZo6waY+ya5Czb821b861cM63cs+3cs+3c9C4ddC4dtC5dtC5d9G6edK8 |
|---|
| 523 | fdO9f4HKdoPJeILLeIbJeYXLeYXIeoXJeofMe4bMfIfNfInNfYnOfovPf9S+gNS/gtW/g43PgZDS |
|---|
| 524 | hK/LlcDAhdbAhdnGjtnGj9nGkNrHkdvJldzKltzKl93Mmt7NnN7NneTWruTXsObZs+batebatufb |
|---|
| 525 | t+fbuOfduujduujdvOnevtPhvurgwOvhwuvixezixOzixezjx+3jyO3kyu7lzO7mzO/mze/mzu/n |
|---|
| 526 | z/Dp1PHq1fHr1/Lr1vLr1/Lr2PTv3vXv3/Xw4fXx4vby5Pfz5vj16vn27Pn27fn37fv48fz69Pz6 |
|---|
| 527 | 9fz69vz79v379/37+P78+v79+/7+/P///v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 |
|---|
| 528 | BAEAAHcALAAAAAAQABAAAAfMgHeCg4SFhjxOXGRgPgSOhR9zYjg/WHN1cx+PdwQfa3ZwITJedm5v |
|---|
| 529 | dpqDXzdbdj0ZY3NncnRzjgQ+QSAdUFlDYWpncWxtjQRMMCAePSKOMW1lXVJMjlEcHyBFtwRXQDoU |
|---|
| 530 | DQcEURsYF0fbTzsTECgJBEsaFzlbMY4iRBYQMy8GuEZWzIRp8qAGkgoQWrAIQEDQnDRfpkQwscCG |
|---|
| 531 | gxUnGDbshEaLEgU0UkAgUSLABwmEPoyhIgSBCxUjTG4ixCNJlQIMGAowRGgAAQANCQUCADs= |
|---|
| 532 | } |
|---|
| 533 | } |
|---|
| 534 | if { [ lsearch [ image names ] database_1_16 ] == -1 } { |
|---|
| 535 | image create photo database_1_16 -data { |
|---|
| 536 | R0lGODlhEAAQAPeLAEdHR0dHSEtMTEtMTU1OTlNUVFRVVVZYWFdYWGFjY2JjY2JkZGNkZGVlZWRn |
|---|
| 537 | Z2VnZ2hoaGhpaWttbW5vb29xcXN1dXV3d3Z2eHh5eXl5eXh6enl6enp6en19f3x+fn6AgICCgoGD |
|---|
| 538 | g4mLi4qKjI6Ojo6OkJGRkZGRk5OUlJSUlZSUlpSVlpWWlpaXl5iXl5aXmJeYmJeYmZmYmJmampqb |
|---|
| 539 | m5ydnZycn5+fn6CgoKCgoqGioqCjo6Smpqeoqautraytrq2urq2vr66vr66wr62vsLCxsbCysrGy |
|---|
| 540 | s7Gzs7Kzs7GztLKztbK0tbO1trS1tbW1tbS1trW2trW2t7W3t7e3ura4uLe4uLe6uri4ubm7u7q7 |
|---|
| 541 | u7u7vru8vr29vb6/wb6/wr/AwMLCwsPDxMXFxcXGxsXGx8bGxsXFyMbHycjIycjJysvKysvLy8rL |
|---|
| 542 | zcvLzcvNzcvMzs3Nz8/Ozs7Oz8/Pz8/Q0tHR0tLS1NfX19bX2Nvb29vc3Nzc3Nzd3d3e3t/f39/g |
|---|
| 543 | 4Ofn5/Dx8fX19vj4+fn5+fz8+/v8/Pz9/P39/f7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 544 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 545 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 546 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 547 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 548 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 549 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAIwALAAAAAAQABAA |
|---|
| 550 | AAjOABkJHEiwYEEyRnYg0fPnzRWDc+7YiaOmjBUtZNjIWUOQyZYveQQFamFBBI8xWQhCoYJmkKE9 |
|---|
| 551 | QT4kqFBkCsEmXNoQStTHx4cFGKI4IRjjgoo0fMzMmICAQQYZBInYGJGiBokGAgpMuHGEoJQtbggh |
|---|
| 552 | 2gMkxIMNTqoQVLIFDiFFfoD8xPAkCcEXF06IwROGhYQDCji4ILgkRwkYOExAIGCAgg6bA3t4aVOI |
|---|
| 553 | pxCzGqz8ILjiTJ1DiwANAeHAAxgaBQN0wEKnC4oIAwQAMEjbYEAAOw== |
|---|
| 554 | } |
|---|
| 555 | } |
|---|
| 556 | if { [ lsearch [ image names ] back_to_ou_16 ] == -1 } { |
|---|
| 557 | image create photo back_to_ou_16 -data { |
|---|
| 558 | R0lGODlhEAAQAPYAALRmJ33VJtuPGd+aHeGhHt+bL+WwKuaxPOe4PYnVPu3UAO3VE+3QF+7VHPDb |
|---|
| 559 | KvDYL/HdN8+kU+m9Q82nYt62Ztq1aeewY+K1dY3cQJDXSpXdUZvdW4jCZZHJaJbObu7PR+zJS/Hd |
|---|
| 560 | QezHU/DYVPLgTPPiWfPjWfPfZmZ3mHiGq3aIsH+Pt6u816Kx3LPA4b/P4r3F9L3G9s7Pzs/Pz8/S |
|---|
| 561 | 18/T19LX3dLY39jY2Nvb29zc3N3d3cHM48vZ68vb79LY4Nba4NPV8dPZ+ePj4+np6ert/PHx8QAA |
|---|
| 562 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 563 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 564 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 |
|---|
| 565 | BAEAAEcALAAAAAAQABAAAAd8gEeCg4SFhR8RLIoshoIDBw8MFT0+Pi+GCCQQDgoNF0VFPIUEJiUg |
|---|
| 566 | IQsUQUJCLoUSJwJHIxMwMbcthQYiggUqKykrKyiGFo3HRwDIy8xAPz80RzY3NzVHHhwcHYJERkY5 |
|---|
| 567 | R0PeOkcbGBgagjtDQzNHOOwyRxkBAQnM+Pn5gQA7 |
|---|
| 568 | } |
|---|
| 569 | } |
|---|
| 570 | |
|---|
| 571 | if { [ lsearch [ image names ] folder_yellow_16 ] == -1 } { |
|---|
| 572 | image create photo folder_yellow_16 -data { |
|---|
| 573 | R0lGODlhEAAQAPYAAK+KGLGMGLOOGbKNGrKMG7OMG7OOG7SOGbSPGbWPH7SQGaOFI8GLNMmJN8Se |
|---|
| 574 | MMSXOcSfO9eQOuOePN6xLcOhN8WgNMahNcehNcmjNMijN8mmNcukN8ulN8umNsumN8KgOMeiOMei |
|---|
| 575 | OcemPMekPselPsemPtGnN9uqNeG9K+K4LeO/LOS8LeW/LeytO/G5OeTALPTHN/XMNvTBOffQNcun |
|---|
| 576 | QtGtQtCuSd6+Q922Sum8S/TCTvjETvjITvjOTe/USO7USfrTTfzaS/veTPzgTPzkTfzmUfvpXd3A |
|---|
| 577 | ZurTg/rrhvLgl/nrqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 578 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
|---|
| 579 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5 |
|---|
| 580 | BAEAAEwALAAAAAAQABAAAAeSgEyCg4SFhoeGBwgICgGIggYTKSssAgqXlwiEAC4yMDEzKi8vKioo |
|---|
| 581 | A4MALScYGxwesLAdFRcgTAASJj9GSUu+v0tKFkwEERlCREW8wEtIIUwFDTVAQUPJy75HggUMODw9 |
|---|
| 582 | 1NbKvTbbDzk7O9/h1w7bEDrp6evVPhqCCTTy++s3gwsfSJQoQWIEiYIjRFB4xLAhoUAAOw== |
|---|
| 583 | } |
|---|
| 584 | } |
|---|
| 585 | } |
|---|
| 586 | |
|---|
| 587 | source [ file join $::TolPkgGUI::cwd tolpkg.tcl ] |
|---|
| 588 | |
|---|
| 589 | proc ::TolPkgGUI::CmpVersion { v1 v2 } { |
|---|
| 590 | foreach { v11 v12 } { {} {} } break |
|---|
| 591 | foreach { n1 v11 v12 } [ split $v1 . ] break |
|---|
| 592 | foreach { v21 v22 } { {} {} } break |
|---|
| 593 | foreach { n2 v21 v22 } [ split $v2 . ] break |
|---|
| 594 | set cmp [ string compare $n1 $n2 ] |
|---|
| 595 | if { $cmp } { |
|---|
| 596 | return $cmp |
|---|
| 597 | } else { |
|---|
| 598 | return [ expr { $v11 < $v21 ? -1 : ( $v11 > $v21 ? 1 : ( $v12 < $v22 ? -1 : ( $v12 > $v22 ? 1 : 0 ) ) ) } ] |
|---|
| 599 | } |
|---|
| 600 | } |
|---|
| 601 | |
|---|
| 602 | proc ::TolPkgGUI::ReadPackSyncInfo { } { |
|---|
| 603 | variable packSyncInfo |
|---|
| 604 | |
|---|
| 605 | array unset packSyncInfo |
|---|
| 606 | foreach p [ ::TolPkg::GetPkgSyncInfo ] { |
|---|
| 607 | array set packSyncInfo $p |
|---|
| 608 | } |
|---|
| 609 | } |
|---|
| 610 | |
|---|
| 611 | proc ::TolPkgGUI::ReadVersSyncInfo { } { |
|---|
| 612 | variable versSyncInfo |
|---|
| 613 | |
|---|
| 614 | array unset versSyncInfo |
|---|
| 615 | foreach p [ ::TolPkg::GetVersSyncInfo ] { |
|---|
| 616 | array set versSyncInfo $p |
|---|
| 617 | } |
|---|
| 618 | } |
|---|
| 619 | |
|---|
| 620 | proc ::TolPkgGUI::ReadLocalVersionInfo { } { |
|---|
| 621 | variable localVersionInfo |
|---|
| 622 | |
|---|
| 623 | array unset localVersionInfo |
|---|
| 624 | foreach pv [ ::TolPkg::GetLocalPackages ] { |
|---|
| 625 | array set localVersionInfo $pv |
|---|
| 626 | } |
|---|
| 627 | } |
|---|
| 628 | |
|---|
| 629 | proc ::TolPkgGUI::GetRepoId { url } { |
|---|
| 630 | variable urlmap |
|---|
| 631 | |
|---|
| 632 | set url [ expr { [ string range $url end-13 end ] eq "repository.php" ? |
|---|
| 633 | $url : "${url}repository.php" } ] |
|---|
| 634 | set repo [ expr { [ info exists urlmap($url) ] ? $urlmap($url) : "unknown" } ] |
|---|
| 635 | |
|---|
| 636 | return $repo |
|---|
| 637 | } |
|---|
| 638 | |
|---|
| 639 | proc ::TolPkgGUI::GetPkgNode { T url p } { |
|---|
| 640 | variable urlmap |
|---|
| 641 | variable treeParents |
|---|
| 642 | variable nodesInfo |
|---|
| 643 | variable packSyncInfo |
|---|
| 644 | |
|---|
| 645 | if { [ info exists treeParents($p) ] } { |
|---|
| 646 | return treeParents($p) |
|---|
| 647 | } |
|---|
| 648 | set url [ expr { [ string range $url end-13 end ] eq "repository.php" ? |
|---|
| 649 | $url : "${url}repository.php" } ] |
|---|
| 650 | set repo [ expr { [ info exists urlmap($url) ] ? $urlmap($url) : "unknown" } ] |
|---|
| 651 | if { [ info exists packSyncInfo($p) ] } { |
|---|
| 652 | array set packSync $packSyncInfo($p) |
|---|
| 653 | set lastlocal $packSync(lastlocal) |
|---|
| 654 | set lastremote $packSync(lastremote) |
|---|
| 655 | if { $lastlocal eq "" } { |
|---|
| 656 | set img "package_down_16" |
|---|
| 657 | set nodeStatus new |
|---|
| 658 | set statusLabel "new ($lastremote)" |
|---|
| 659 | } else { |
|---|
| 660 | set idx [ CmpVersion $lastremote $lastlocal ] |
|---|
| 661 | if { $idx <= 0 } { |
|---|
| 662 | # could be -1 (because of date error) |
|---|
| 663 | set img "cdr_tick_16" |
|---|
| 664 | set nodeStatus ok |
|---|
| 665 | set statusLabel "ok" |
|---|
| 666 | } else { |
|---|
| 667 | puts "$lastremote > $lastlocal" |
|---|
| 668 | set img "software_update_16" |
|---|
| 669 | set nodeStatus upgrade |
|---|
| 670 | set statusLabel "upgrade ($lastremote)" |
|---|
| 671 | } |
|---|
| 672 | } |
|---|
| 673 | } else { |
|---|
| 674 | set img "" |
|---|
| 675 | set nodeStatus unknown |
|---|
| 676 | set statusLabel "unknown" |
|---|
| 677 | } |
|---|
| 678 | set treeParents($p) [ $T insert [ list [ list $img $p ] [ list $statusLabel ] \ |
|---|
| 679 | [ list $repo ] ] -at end -relative root \ |
|---|
| 680 | -button auto ] |
|---|
| 681 | set nodesInfo($treeParents($p),type) pkg |
|---|
| 682 | set nodesInfo($treeParents($p),status) $nodeStatus |
|---|
| 683 | lappend nodesInfo($nodeStatus) $treeParents($p) |
|---|
| 684 | } |
|---|
| 685 | |
|---|
| 686 | proc ::TolPkgGUI::FillTreeInfo { T } { |
|---|
| 687 | variable packSyncInfo |
|---|
| 688 | variable versSyncInfo |
|---|
| 689 | variable localVersionInfo |
|---|
| 690 | variable treeParents |
|---|
| 691 | variable nodesInfo |
|---|
| 692 | variable localMostRecent |
|---|
| 693 | |
|---|
| 694 | array unset treeParents |
|---|
| 695 | array unset nodesInfo |
|---|
| 696 | ReadPackSyncInfo |
|---|
| 697 | ReadVersSyncInfo |
|---|
| 698 | ReadLocalVersionInfo |
|---|
| 699 | |
|---|
| 700 | $T configure -table no -filter yes -columns { |
|---|
| 701 | { {image text} -tags NAME -label "Name" } |
|---|
| 702 | { {text} -tags STATUS -label "Status" } |
|---|
| 703 | { {text} -tags REPO -label "Repository" } |
|---|
| 704 | } |
|---|
| 705 | |
|---|
| 706 | # insert package information |
|---|
| 707 | foreach p [ lsort [ array names packSyncInfo ] ] { |
|---|
| 708 | array unset pkg |
|---|
| 709 | array set pkg $packSyncInfo($p) |
|---|
| 710 | set url $pkg(url) |
|---|
| 711 | set pkgRepo [ expr { [ string range $url end-13 end ] eq "repository.php" ? |
|---|
| 712 | $url : "${url}repository.php" } ] |
|---|
| 713 | GetPkgNode $T $pkgRepo $p |
|---|
| 714 | } |
|---|
| 715 | |
|---|
| 716 | set localVersionNames [ lsort -decreasing -command ::TolPkgGUI::CmpVersion \ |
|---|
| 717 | [ array names localVersionInfo ] ] |
|---|
| 718 | |
|---|
| 719 | array unset localMostRecent |
|---|
| 720 | # insert version information |
|---|
| 721 | foreach pv $localVersionNames { |
|---|
| 722 | array unset pkg |
|---|
| 723 | array set pkg $localVersionInfo($pv) |
|---|
| 724 | set pkgRoot [ lindex [ split $pv . ] 0 ] |
|---|
| 725 | set url $pkg(_.autodoc.url) |
|---|
| 726 | set pkgRepo [ expr { [ string range $url end-13 end ] eq "repository.php" ? |
|---|
| 727 | $url : "${url}repository.php" } ] |
|---|
| 728 | GetPkgNode $T $pkgRepo $pkgRoot |
|---|
| 729 | |
|---|
| 730 | if { ![ info exists localMostRecent($pkgRoot) ] } { |
|---|
| 731 | # will be used in contextual menu |
|---|
| 732 | set localMostRecent($pkgRoot) $pv |
|---|
| 733 | } |
|---|
| 734 | if { [ info exists versSyncInfo($pv) ] } { |
|---|
| 735 | array set versSync $versSyncInfo($pv) |
|---|
| 736 | set dateremote $versSync(dateremote) |
|---|
| 737 | set datelocal $versSync(datelocal) |
|---|
| 738 | if { $datelocal eq "TheBegin" } { |
|---|
| 739 | set img "package_down_16" |
|---|
| 740 | set nodeStatus new |
|---|
| 741 | set statusLabel "new" |
|---|
| 742 | } else { |
|---|
| 743 | set idx [ string compare $dateremote $datelocal ] |
|---|
| 744 | if { $idx <= 0 } { |
|---|
| 745 | # could be -1 (because of date error) |
|---|
| 746 | set img "cdr_tick_16" |
|---|
| 747 | set nodeStatus ok |
|---|
| 748 | set statusLabel "ok" |
|---|
| 749 | } else { |
|---|
| 750 | puts "$pv OUTDATED : $dateremote > $datelocal" |
|---|
| 751 | set img "software_update_16" |
|---|
| 752 | set nodeStatus update |
|---|
| 753 | set statusLabel "outdated" |
|---|
| 754 | } |
|---|
| 755 | } |
|---|
| 756 | } else { |
|---|
| 757 | set img "" |
|---|
| 758 | set nodeStatus unknown |
|---|
| 759 | } |
|---|
| 760 | set repo [ GetRepoId $pkgRepo ] |
|---|
| 761 | set nid [ $T insert [ list [ list $img $pv ] [ list $statusLabel ] [ list $repo ] ] \ |
|---|
| 762 | -at end -relative $treeParents($pkgRoot) -button auto ] |
|---|
| 763 | set nodesInfo($nid,type) pkgver |
|---|
| 764 | set nodesInfo($nid,status) $nodeStatus |
|---|
| 765 | lappend nodesInfo($nodeStatus) $nid |
|---|
| 766 | foreach {{} d} $pkg(_.autodoc.dependencies) { |
|---|
| 767 | set _nid [ $T insert [ list [ list back_to_ou_16 $d ] ] \ |
|---|
| 768 | -at end -relative $nid -button no ] |
|---|
| 769 | set nodesInfo($_nid,type) pkgdep |
|---|
| 770 | } |
|---|
| 771 | } |
|---|
| 772 | } |
|---|
| 773 | |
|---|
| 774 | proc ::TolPkgGUI::CreateTreeWidget { t } { |
|---|
| 775 | variable tree $t |
|---|
| 776 | |
|---|
| 777 | wtree $t |
|---|
| 778 | grid $t -row 1 -column 0 -sticky "snew" |
|---|
| 779 | set f [ winfo parent $t ] |
|---|
| 780 | grid rowconfigure $f 1 -weight 1 |
|---|
| 781 | grid columnconfigure $f 0 -weight 1 |
|---|
| 782 | } |
|---|
| 783 | |
|---|
| 784 | proc ::TolPkgGUI::CreateTree { t } { |
|---|
| 785 | variable widgets |
|---|
| 786 | |
|---|
| 787 | CreateTreeWidget $t |
|---|
| 788 | |
|---|
| 789 | menu $t.cmenu -tearoff 0 \ |
|---|
| 790 | -postcommand [ list ::TolPkgGUI::PostContextMenu $t $t.cmenu ] |
|---|
| 791 | $t configure -contextmenu $t.cmenu |
|---|
| 792 | } |
|---|
| 793 | |
|---|
| 794 | proc ::TolPkgGUI::EntryState { listName } { |
|---|
| 795 | upvar $listName v |
|---|
| 796 | |
|---|
| 797 | if { [ info exists v ] && [ llength $v ] } { |
|---|
| 798 | return "normal" |
|---|
| 799 | } else { |
|---|
| 800 | return "disabled" |
|---|
| 801 | } |
|---|
| 802 | } |
|---|
| 803 | |
|---|
| 804 | proc ::TolPkgGUI::PostContextMenu { T w } { |
|---|
| 805 | variable nodesInfo |
|---|
| 806 | variable packSyncInfo |
|---|
| 807 | variable versSyncInfo |
|---|
| 808 | variable localVersionInfo |
|---|
| 809 | variable localMostRecent |
|---|
| 810 | |
|---|
| 811 | $w delete 0 end |
|---|
| 812 | array set selectionInfo { |
|---|
| 813 | repo "" |
|---|
| 814 | pkg "" |
|---|
| 815 | pkgver "" |
|---|
| 816 | } |
|---|
| 817 | foreach nid [ $T selection get ] { |
|---|
| 818 | lappend selectionInfo($nodesInfo($nid,type)) $nid |
|---|
| 819 | } |
|---|
| 820 | $w add command -label "[ mc {Add New Repository} ]..." \ |
|---|
| 821 | -command ::TolPkgGUI::AddNewRepository |
|---|
| 822 | set lenRepo [ llength $selectionInfo(repo) ] |
|---|
| 823 | if { $lenRepo } { |
|---|
| 824 | $w add cascade -label "[ mc {Check Repository} ]" \ |
|---|
| 825 | -menu $w.check |
|---|
| 826 | if { [ winfo exists $w.check ] } { |
|---|
| 827 | $w.check delete 0 end |
|---|
| 828 | } else { |
|---|
| 829 | menu $w.check -tearoff 0 |
|---|
| 830 | } |
|---|
| 831 | if { $lenRepo > 1 } { |
|---|
| 832 | set labelCheck [ mc "Selected" ] |
|---|
| 833 | } else { |
|---|
| 834 | set labelCheck [ $T item text [ lindex $selectionInfo(repo) 0 ] 0 ] |
|---|
| 835 | } |
|---|
| 836 | $w.check add command -label $labelCheck \ |
|---|
| 837 | -command "::TolPkgGUI::CheckRepository $labelCheck $lenRepo" |
|---|
| 838 | $w.check add command -label [ mc "All" ] \ |
|---|
| 839 | -command "::TolPkgGUI::CheckRepository ALL -1" |
|---|
| 840 | } |
|---|
| 841 | $w add command -label [ mc "Sync with servers" ] \ |
|---|
| 842 | -command "::TolPkgGUI::SyncServers" |
|---|
| 843 | $w add separator |
|---|
| 844 | # preprocess selection of packages |
|---|
| 845 | set listNEW {} |
|---|
| 846 | set listUPD {} |
|---|
| 847 | set listUPG {} |
|---|
| 848 | set listEXP {} |
|---|
| 849 | |
|---|
| 850 | # process first the list of pkg |
|---|
| 851 | foreach nid $selectionInfo(pkg) { |
|---|
| 852 | set pkg [ $T item text $nid 0 ] |
|---|
| 853 | array unset pkgInfo |
|---|
| 854 | if { [ info exists packSyncInfo($pkg) ] } { |
|---|
| 855 | array set pkgInfo $packSyncInfo($pkg) |
|---|
| 856 | } else { |
|---|
| 857 | set pkgInfo(lastremote) $localMostRecent($pkg) |
|---|
| 858 | } |
|---|
| 859 | switch -exact $nodesInfo($nid,status) { |
|---|
| 860 | "new" { |
|---|
| 861 | lappend listNEW [ list $pkgInfo(lastremote) $nid ] |
|---|
| 862 | } |
|---|
| 863 | "upgrade" { |
|---|
| 864 | lappend listUPG [ list $pkg $nid ] |
|---|
| 865 | } |
|---|
| 866 | "ok" { |
|---|
| 867 | } |
|---|
| 868 | "unknown" { |
|---|
| 869 | } |
|---|
| 870 | default { |
|---|
| 871 | puts "unexpected status $status for pkg $pkg" |
|---|
| 872 | } |
|---|
| 873 | } |
|---|
| 874 | lappend listEXP [ list $pkgInfo(lastremote) $nodesInfo($nid,status) $nid ] |
|---|
| 875 | } |
|---|
| 876 | # next process the list of pkgver |
|---|
| 877 | foreach nid $selectionInfo(pkgver) { |
|---|
| 878 | set pkg [ $T item text $nid 0 ] |
|---|
| 879 | switch -exact $nodesInfo($nid,status) { |
|---|
| 880 | "new" { |
|---|
| 881 | if { [ lsearch $listNEW $pkg ] == -1 } { |
|---|
| 882 | lappend listNEW [ list $pkg $nid ] |
|---|
| 883 | } |
|---|
| 884 | } |
|---|
| 885 | "update" { |
|---|
| 886 | lappend listUPD [ list $pkg $nid ] |
|---|
| 887 | } |
|---|
| 888 | "ok" { |
|---|
| 889 | } |
|---|
| 890 | default { |
|---|
| 891 | puts "unexpected status $status for pkg $pkg" |
|---|
| 892 | } |
|---|
| 893 | } |
|---|
| 894 | if { [ lsearch $listEXP $pkg ] == -1 } { |
|---|
| 895 | lappend listEXP [ list $pkg $nodesInfo($nid,status) $nid ] |
|---|
| 896 | } |
|---|
| 897 | } |
|---|
| 898 | # install list |
|---|
| 899 | if { [ llength $listNEW ] == 1 } { |
|---|
| 900 | $w add command -label [ mc "Install %s" [ lindex [ lindex $listNEW 0 ] 0 ] ] \ |
|---|
| 901 | -command [ list ::TolPkgGUI::InstallPackages $listNEW ] |
|---|
| 902 | } elseif { [ llength $listNEW ] > 1 } { |
|---|
| 903 | $w add command -label [ mc "Install selected" ]... \ |
|---|
| 904 | -command [ list ::TolPkgGUI::InstallPackages $listNEW ] |
|---|
| 905 | } |
|---|
| 906 | $w add command -label [ mc "Install ZIP" ]... \ |
|---|
| 907 | -command "::TolPkgGUI::InstallZip" |
|---|
| 908 | # update list |
|---|
| 909 | if { [ llength $listUPD ] == 1 } { |
|---|
| 910 | $w add command \ |
|---|
| 911 | -label [ mc "Update %s" [ lindex [ lindex $listUPD 0 ] 0 ] ] \ |
|---|
| 912 | -command [ list ::TolPkgGUI::UpdatePackageVersion $listUPD ] |
|---|
| 913 | } elseif { [ llength $listUPD ] > 1 } { |
|---|
| 914 | $w add command -label [ mc "Update selected" ]... \ |
|---|
| 915 | -command [ list ::TolPkgGUI::UpdatePackageVersion $listUPD ] |
|---|
| 916 | } |
|---|
| 917 | $w add command -label [ mc "Update all" ]... \ |
|---|
| 918 | -command "::TolPkgGUI::UpdatePackageVersion" \ |
|---|
| 919 | -state [ EntryState nodesInfo(update) ] |
|---|
| 920 | # upgrade list |
|---|
| 921 | if { [ llength $listUPG ] == 1 } { |
|---|
| 922 | $w add command \ |
|---|
| 923 | -label [ mc "Upgrade %s" [ lindex [ lindex $listUPG 0 ] 0 ] ] \ |
|---|
| 924 | -command [ list ::TolPkgGUI::UpgradePackages $listUPG ] |
|---|
| 925 | } elseif { [ llength $listUPG ] > 1 } { |
|---|
| 926 | $w add command -label [ mc "Upgrade selected" ]... \ |
|---|
| 927 | -command [ list ::TolPkgGUI::UpgradePackages $listUPG ] |
|---|
| 928 | } |
|---|
| 929 | $w add command -label [ mc "Upgrade all" ]... \ |
|---|
| 930 | -command "::TolPkgGUI::UpgradePackages" \ |
|---|
| 931 | -state [ EntryState nodesInfo(upgrade) ] |
|---|
| 932 | |
|---|
| 933 | # export options |
|---|
| 934 | $w add separator |
|---|
| 935 | if { [ llength $listEXP ] == 1 } { |
|---|
| 936 | $w add command -label [ mc "Export %s" [ lindex [ lindex $listEXP 0 ] 0 ] ]... \ |
|---|
| 937 | -command [ list ::TolPkgGUI::ExportPackageVersion $listEXP ] |
|---|
| 938 | } elseif { [ llength $listEXP ] > 1 } { |
|---|
| 939 | $w add command -label [ mc "Export selected" ]... \ |
|---|
| 940 | -command [ list ::TolPkgGUI::ExportPackageVersion $listEXP ] |
|---|
| 941 | } |
|---|
| 942 | $w add command -label [ mc "Export all" ]... \ |
|---|
| 943 | -command [ list ::TolPkgGUI::ExportPackageVersion ] |
|---|
| 944 | # SyncInfo import/export |
|---|
| 945 | $w add separator |
|---|
| 946 | $w add command -label [ mc "Import SyncInfo" ]... \ |
|---|
| 947 | -command [ list ::TolPkgGUI::ImportSyncInfo ] |
|---|
| 948 | $w add command -label [ mc "Export SyncInfo" ]... \ |
|---|
| 949 | -command [ list ::TolPkgGUI::ExportSyncInfo ] |
|---|
| 950 | |
|---|
| 951 | } |
|---|
| 952 | |
|---|
| 953 | proc ::TolPkgGUI::AddNewRepository { } { |
|---|
| 954 | variable win |
|---|
| 955 | variable urlmap |
|---|
| 956 | |
|---|
| 957 | set w $win.dlgAdd |
|---|
| 958 | if { ![ winfo exist $w ] } { |
|---|
| 959 | Dialog $w -title [ mc "Add repository"] \ |
|---|
| 960 | -parent $win -modal local |
|---|
| 961 | set f [ $w getframe ] |
|---|
| 962 | label $f.lb -text [ mc "Repository" ]: |
|---|
| 963 | ComboBox $f.cb -values BPTP |
|---|
| 964 | grid $f.lb -row 0 -column 0 -sticky ew |
|---|
| 965 | grid $f.cb -row 0 -column 1 -sticky ew |
|---|
| 966 | grid columnconfigure $f 1 -weight 1 |
|---|
| 967 | $w add -text Ok |
|---|
| 968 | $w add -text Cancel |
|---|
| 969 | } |
|---|
| 970 | set ans [ $w draw ] |
|---|
| 971 | if { $ans == 0 } { |
|---|
| 972 | set repo [ string trim [ [$w getframe].cb get ] ] |
|---|
| 973 | if { [ string range $repo 0 3 ] eq "http" } { |
|---|
| 974 | set url $repo |
|---|
| 975 | } else { |
|---|
| 976 | if { [ info exists urlmap($repo) ] } { |
|---|
| 977 | set url $urlmap($repo) |
|---|
| 978 | } else { |
|---|
| 979 | |
|---|
| 980 | } |
|---|
| 981 | } |
|---|
| 982 | puts "::TolPkg::AddRepository $url" |
|---|
| 983 | ::TolPkg::AddRepository $url |
|---|
| 984 | } |
|---|
| 985 | } |
|---|
| 986 | |
|---|
| 987 | proc ::TolPkgGUI::RefreshTree { } { |
|---|
| 988 | variable tree |
|---|
| 989 | |
|---|
| 990 | $tree item delete all |
|---|
| 991 | FillTreeInfo $tree |
|---|
| 992 | } |
|---|
| 993 | |
|---|
| 994 | proc ::TolPkgGUI::SyncServers { } { |
|---|
| 995 | variable tree |
|---|
| 996 | update |
|---|
| 997 | ::TolPkg::UpdateRepositoryInfo |
|---|
| 998 | RefreshTree |
|---|
| 999 | } |
|---|
| 1000 | |
|---|
| 1001 | proc ::TolPkgGUI::StartProgressBar { } { |
|---|
| 1002 | variable win |
|---|
| 1003 | variable Progress |
|---|
| 1004 | |
|---|
| 1005 | set Progress(status) "working" |
|---|
| 1006 | set Progress(state) 0 |
|---|
| 1007 | $win configure -cursor watch |
|---|
| 1008 | foreach wc [ winfo children $win.dlgInstall ] { |
|---|
| 1009 | catch { $wc configure -cursor watch } |
|---|
| 1010 | } |
|---|
| 1011 | } |
|---|
| 1012 | |
|---|
| 1013 | proc ::TolPkgGUI::DoneProgress { } { |
|---|
| 1014 | variable win |
|---|
| 1015 | variable Progress |
|---|
| 1016 | |
|---|
| 1017 | set Progress(status) "stopped" |
|---|
| 1018 | Dialog::enddialog $win.dlgInstall 1 |
|---|
| 1019 | $win configure -cursor "" |
|---|
| 1020 | foreach wc [ winfo children $win.dlgInstall ] { |
|---|
| 1021 | catch { $wc configure -cursor "" } |
|---|
| 1022 | } |
|---|
| 1023 | } |
|---|
| 1024 | |
|---|
| 1025 | proc ::TolPkgGUI::AdvanceProgress { x } { |
|---|
| 1026 | variable Progress |
|---|
| 1027 | |
|---|
| 1028 | if { $Progress(status) eq "working" } { |
|---|
| 1029 | set Progress(state) $x |
|---|
| 1030 | update |
|---|
| 1031 | } |
|---|
| 1032 | } |
|---|
| 1033 | |
|---|
| 1034 | proc ::TolPkgGUI::InstallBtn1 { remote } { |
|---|
| 1035 | variable win |
|---|
| 1036 | variable Progress |
|---|
| 1037 | |
|---|
| 1038 | set w $win.dlgInstall |
|---|
| 1039 | $w itemconfigure 0 -state disabled |
|---|
| 1040 | $w itemconfigure 1 -command ::TolPkgGUI::DoneProgress |
|---|
| 1041 | set f [ $w getframe ] |
|---|
| 1042 | $f.lb1 configure -text [ mc "Installing" ]... |
|---|
| 1043 | InstallTask $remote |
|---|
| 1044 | } |
|---|
| 1045 | |
|---|
| 1046 | proc ::TolPkgGUI::DlgProcessBtn1 { } { |
|---|
| 1047 | variable win |
|---|
| 1048 | variable DlgProcessData |
|---|
| 1049 | |
|---|
| 1050 | set w [ DlgProcessGetWin ] |
|---|
| 1051 | # disable button Ok |
|---|
| 1052 | $w itemconfigure 0 -state disabled |
|---|
| 1053 | # set cancel to finish progress |
|---|
| 1054 | $w itemconfigure 1 -command ::TolPkgGUI::DlgProcessStop |
|---|
| 1055 | eval $DlgProcessData(-beforestart) |
|---|
| 1056 | DlgProcessTask |
|---|
| 1057 | } |
|---|
| 1058 | |
|---|
| 1059 | proc ::TolPkgGUI::DlgProcess { pkgs args } { |
|---|
| 1060 | variable win |
|---|
| 1061 | variable DlgProcessData |
|---|
| 1062 | |
|---|
| 1063 | array unset DlgProcessData |
|---|
| 1064 | array set DlgProcessData { |
|---|
| 1065 | -title "Process packages" |
|---|
| 1066 | -beforestart "" |
|---|
| 1067 | -cmditem "" |
|---|
| 1068 | -cmdlabelitem "" |
|---|
| 1069 | -customgui "" |
|---|
| 1070 | -refreshtree 0 |
|---|
| 1071 | } |
|---|
| 1072 | set DlgProcessData(-label) [ mc "You are about to process"]: |
|---|
| 1073 | array set DlgProcessData $args |
|---|
| 1074 | set DlgProcessData(items) $pkgs |
|---|
| 1075 | set DlgProcessData(status) "stopped" |
|---|
| 1076 | set DlgProcessData(state) "" |
|---|
| 1077 | set w [ DlgProcessGetWin ] |
|---|
| 1078 | if { ![ winfo exists $w ] } { |
|---|
| 1079 | Dialog $w -title $DlgProcessData(-title) \ |
|---|
| 1080 | -parent $win -modal local -cancel 1 -separator 1 |
|---|
| 1081 | set f [ $w getframe ] |
|---|
| 1082 | label $f.lb1 |
|---|
| 1083 | listbox $f.list -selectmode single -background white \ |
|---|
| 1084 | -relief flat -borderwidth 1 -highlightthickness 0 \ |
|---|
| 1085 | -selectbackground #c3c3ff |
|---|
| 1086 | frame $f.cgui |
|---|
| 1087 | ProgressBar $f.pbar |
|---|
| 1088 | $w add -text Ok |
|---|
| 1089 | $w add -text Cancel |
|---|
| 1090 | grid $f.lb1 -row 0 -column 0 -sticky w |
|---|
| 1091 | grid $f.list -row 1 -column 0 -sticky snew |
|---|
| 1092 | grid $f.pbar -row 2 -column 0 -sticky e |
|---|
| 1093 | grid columnconfigure $f 0 -weight 1 |
|---|
| 1094 | grid rowconfigure $f 1 -weight 1 |
|---|
| 1095 | } else { |
|---|
| 1096 | wm title $w $DlgProcessData(-title) |
|---|
| 1097 | set f [ DlgProcessGetFrame ] |
|---|
| 1098 | } |
|---|
| 1099 | if { $DlgProcessData(-customgui) ne "" } { |
|---|
| 1100 | grid $f.cgui -row 3 -column 0 -sticky snew |
|---|
| 1101 | eval $DlgProcessData(-customgui) $f.cgui |
|---|
| 1102 | } else { |
|---|
| 1103 | grid remove $f.cgui |
|---|
| 1104 | grid rowconfigure $f 3 -weight 0 |
|---|
| 1105 | } |
|---|
| 1106 | $f.pbar configure -maximum 1 \ |
|---|
| 1107 | -variable ::TolPkgGUI::DlgProcessData(state,0) |
|---|
| 1108 | $f.pbar configure -variable ::TolPkgGUI::DlgProcessData(state) |
|---|
| 1109 | |
|---|
| 1110 | $f.lb1 configure -text $DlgProcessData(-label) |
|---|
| 1111 | $w itemconfigure 0 -state normal \ |
|---|
| 1112 | -command [ list ::TolPkgGUI::DlgProcessBtn1 ] |
|---|
| 1113 | $w itemconfigure 1 -command "Dialog::enddialog $w 1" |
|---|
| 1114 | set lb [ DlgProcessGetList ] |
|---|
| 1115 | $lb delete 0 end |
|---|
| 1116 | foreach it $DlgProcessData(items) { |
|---|
| 1117 | if { $DlgProcessData(-cmdlabelitem) ne "" } { |
|---|
| 1118 | set labelIt [ $DlgProcessData(-cmdlabelitems) $it ] |
|---|
| 1119 | } else { |
|---|
| 1120 | set labelIt $it |
|---|
| 1121 | } |
|---|
| 1122 | $f.list insert end $it |
|---|
| 1123 | } |
|---|
| 1124 | set DlgProcessData(state) "" |
|---|
| 1125 | $w draw |
|---|
| 1126 | foreach wc [ winfo children $f.cgui ] { |
|---|
| 1127 | destroy $wc |
|---|
| 1128 | } |
|---|
| 1129 | } |
|---|
| 1130 | |
|---|
| 1131 | proc ::TolPkgGUI::DlgProcessGetCurrentIndex { } { |
|---|
| 1132 | variable DlgProcessData |
|---|
| 1133 | |
|---|
| 1134 | return $DlgProcessData(current) |
|---|
| 1135 | } |
|---|
| 1136 | |
|---|
| 1137 | proc ::TolPkgGUI::DlgProcessStart { } { |
|---|
| 1138 | variable win |
|---|
| 1139 | variable DlgProcessData |
|---|
| 1140 | |
|---|
| 1141 | set lb [ DlgProcessGetList ] |
|---|
| 1142 | set total [ llength $DlgProcessData(items) ] |
|---|
| 1143 | set DlgProcessData(current) 0 |
|---|
| 1144 | $lb selection clear 0 end |
|---|
| 1145 | $lb selection set 0 |
|---|
| 1146 | $lb see 0 |
|---|
| 1147 | set DlgProcessData(status) "working" |
|---|
| 1148 | set DlgProcessData(state) 0 |
|---|
| 1149 | $win configure -cursor watch |
|---|
| 1150 | set w [ DlgProcessGetWin ] |
|---|
| 1151 | foreach wc [ winfo children $w ] { |
|---|
| 1152 | catch { $wc configure -cursor watch } |
|---|
| 1153 | } |
|---|
| 1154 | } |
|---|
| 1155 | |
|---|
| 1156 | proc ::TolPkgGUI::DlgProcessAdvance { } { |
|---|
| 1157 | variable DlgProcessData |
|---|
| 1158 | |
|---|
| 1159 | set i [ incr DlgProcessData(current) ] |
|---|
| 1160 | set lb [ DlgProcessGetList ] |
|---|
| 1161 | set total [ llength $DlgProcessData(items) ] |
|---|
| 1162 | $lb selection set $i |
|---|
| 1163 | $lb selection anchor $i |
|---|
| 1164 | $lb see $i |
|---|
| 1165 | if { $DlgProcessData(status) eq "working" } { |
|---|
| 1166 | set DlgProcessData(state) [ expr { double($i) / $total } ] |
|---|
| 1167 | update |
|---|
| 1168 | } |
|---|
| 1169 | } |
|---|
| 1170 | |
|---|
| 1171 | proc ::TolPkgGUI::DlgProcessItem { p } { |
|---|
| 1172 | variable DlgProcessData |
|---|
| 1173 | |
|---|
| 1174 | if { $DlgProcessData(-cmditem) ne "" } { |
|---|
| 1175 | $DlgProcessData(-cmditem) $p |
|---|
| 1176 | } |
|---|
| 1177 | } |
|---|
| 1178 | |
|---|
| 1179 | proc ::TolPkgGUI::DlgProcessStop { } { |
|---|
| 1180 | variable win |
|---|
| 1181 | variable DlgProcessData |
|---|
| 1182 | |
|---|
| 1183 | set w [ DlgProcessGetWin ] |
|---|
| 1184 | $win configure -cursor "" |
|---|
| 1185 | foreach wc [ winfo children $w ] { |
|---|
| 1186 | catch { $wc configure -cursor "" } |
|---|
| 1187 | } |
|---|
| 1188 | set DlgProcessData(status) "stopped" |
|---|
| 1189 | Dialog::enddialog $w 1 |
|---|
| 1190 | } |
|---|
| 1191 | |
|---|
| 1192 | proc ::TolPkgGUI::DlgProcessGetWin { } { |
|---|
| 1193 | variable win |
|---|
| 1194 | |
|---|
| 1195 | return $win.dlgProcess |
|---|
| 1196 | } |
|---|
| 1197 | |
|---|
| 1198 | proc ::TolPkgGUI::DlgProcessGetFrame { } { |
|---|
| 1199 | variable win |
|---|
| 1200 | |
|---|
| 1201 | set w [ DlgProcessGetWin ] |
|---|
| 1202 | return [ $w getframe ] |
|---|
| 1203 | } |
|---|
| 1204 | |
|---|
| 1205 | proc ::TolPkgGUI::DlgProcessGetList { } { |
|---|
| 1206 | variable win |
|---|
| 1207 | |
|---|
| 1208 | set w [ DlgProcessGetFrame ] |
|---|
| 1209 | return $w.list |
|---|
| 1210 | } |
|---|
| 1211 | |
|---|
| 1212 | proc ::TolPkgGUI::DlgProcessSetLabel { text } { |
|---|
| 1213 | variable win |
|---|
| 1214 | |
|---|
| 1215 | set f [ DlgProcessGetFrame ] |
|---|
| 1216 | $f.lb1 configure -text $text |
|---|
| 1217 | } |
|---|
| 1218 | |
|---|
| 1219 | proc ::TolPkgGUI::InstallPackages { pkgs } { |
|---|
| 1220 | variable win |
|---|
| 1221 | variable installData |
|---|
| 1222 | |
|---|
| 1223 | array unset installData |
|---|
| 1224 | foreach p $pkgs { |
|---|
| 1225 | array set installData $p |
|---|
| 1226 | lappend _pkgs [ lindex $p 0 ] |
|---|
| 1227 | } |
|---|
| 1228 | set InstallList [ TolPkg::CheckPackagesToInstall $_pkgs ] |
|---|
| 1229 | if { ![ llength $InstallList ] } { |
|---|
| 1230 | set ans [ MessageDlg $win.ask -title [ mc "Install packages" ] \ |
|---|
| 1231 | -icon error \ |
|---|
| 1232 | -parent $win \ |
|---|
| 1233 | -type ok -aspect 75 \ |
|---|
| 1234 | -message [ mc "Could not connect with remote repository" ] ] |
|---|
| 1235 | return |
|---|
| 1236 | } |
|---|
| 1237 | puts "InstallPackages: $InstallList" |
|---|
| 1238 | DlgProcess $InstallList -title [ mc "Install packages" ] \ |
|---|
| 1239 | -label [ mc "You are about to install"]: \ |
|---|
| 1240 | -beforestart ::TolPkgGUI::Installing \ |
|---|
| 1241 | -cmditem "InstallThisPackage" -refreshtree 1 |
|---|
| 1242 | |
|---|
| 1243 | } |
|---|
| 1244 | |
|---|
| 1245 | proc ::TolPkgGUI::DlgProcessGetVariableName { name } { |
|---|
| 1246 | return ::TolPkgGUI::DlgProcessData($name) |
|---|
| 1247 | } |
|---|
| 1248 | |
|---|
| 1249 | proc ::TolPkgGUI::DlgProcessGetVariable { name } { |
|---|
| 1250 | variable DlgProcessData |
|---|
| 1251 | |
|---|
| 1252 | return $DlgProcessData($name) |
|---|
| 1253 | } |
|---|
| 1254 | |
|---|
| 1255 | proc ::TolPkgGUI::DlgProcessTask { } { |
|---|
| 1256 | variable win |
|---|
| 1257 | variable Progress |
|---|
| 1258 | variable DlgProcessData |
|---|
| 1259 | |
|---|
| 1260 | DlgProcessStart |
|---|
| 1261 | set hasProcessed 0 |
|---|
| 1262 | foreach p $DlgProcessData(items) { |
|---|
| 1263 | if { $DlgProcessData(status) ne "working" } break |
|---|
| 1264 | DlgProcessItem $p |
|---|
| 1265 | DlgProcessAdvance |
|---|
| 1266 | set hasProcessed 1 |
|---|
| 1267 | } |
|---|
| 1268 | DlgProcessStop |
|---|
| 1269 | if { $DlgProcessData(-refreshtree) && $hasProcessed } { |
|---|
| 1270 | after idle ::TolPkgGUI::RefreshTree |
|---|
| 1271 | } |
|---|
| 1272 | } |
|---|
| 1273 | |
|---|
| 1274 | proc ::TolPkgGUI::InstallTask { remote } { |
|---|
| 1275 | variable win |
|---|
| 1276 | variable Progress |
|---|
| 1277 | variable InstallList |
|---|
| 1278 | |
|---|
| 1279 | set w $win.dlgInstall |
|---|
| 1280 | set f [ $w getframe ] |
|---|
| 1281 | set total [ llength $InstallList ] |
|---|
| 1282 | set i 0 |
|---|
| 1283 | $f.list selection clear 0 end |
|---|
| 1284 | $f.list selection set 0 |
|---|
| 1285 | $f.list see 0 |
|---|
| 1286 | StartProgressBar |
|---|
| 1287 | foreach p $InstallList { |
|---|
| 1288 | if { $Progress(status) ne "working" } break |
|---|
| 1289 | if { $remote } { |
|---|
| 1290 | TolPkg::RemoteInstall $p |
|---|
| 1291 | } else { |
|---|
| 1292 | TolPkg::ZipInstall $p |
|---|
| 1293 | } |
|---|
| 1294 | incr i |
|---|
| 1295 | $f.list selection set $i |
|---|
| 1296 | $f.list selection anchor $i |
|---|
| 1297 | $f.list see $i |
|---|
| 1298 | AdvanceProgress [ expr { double($i) / $total } ] |
|---|
| 1299 | } |
|---|
| 1300 | DoneProgress |
|---|
| 1301 | |
|---|
| 1302 | } |
|---|
| 1303 | |
|---|
| 1304 | proc ::TolPkgGUI::InstallZip { } { |
|---|
| 1305 | variable win |
|---|
| 1306 | variable installZipData |
|---|
| 1307 | |
|---|
| 1308 | set installZipData [ tk_getOpenFile -defaultextension .zip -multiple 1 \ |
|---|
| 1309 | -parent $win -title [ mc "Select zip packages" ] \ |
|---|
| 1310 | -filetypes {{zip {.zip}}} ] |
|---|
| 1311 | if { $installZipData ne "" } { |
|---|
| 1312 | foreach f $installZipData { |
|---|
| 1313 | lappend zipList [ file tail $f ] |
|---|
| 1314 | } |
|---|
| 1315 | DlgProcess $zipList -title [ mc "Install Zip's" ] \ |
|---|
| 1316 | -label [ mc "You are about to install zip"]: \ |
|---|
| 1317 | -beforestart ::TolPkgGUI::InstallingZip \ |
|---|
| 1318 | -cmditem InstallThisZip -refreshtree 1 |
|---|
| 1319 | } |
|---|
| 1320 | } |
|---|
| 1321 | |
|---|
| 1322 | proc ::TolPkgGUI::CheckConnectionConfig { } { |
|---|
| 1323 | variable win |
|---|
| 1324 | |
|---|
| 1325 | array set connConfig [ ::TolPkg::GetUpgradeConfig ] |
|---|
| 1326 | if { $connConfig(localPKG) } { |
|---|
| 1327 | MessageDlg $win.ask -title [ mc "Warning" ] \ |
|---|
| 1328 | -icon warning \ |
|---|
| 1329 | -type ok \ |
|---|
| 1330 | -message [ mc "Can not continue. You have configured to use only local packages. Check the value of\nTolConfigManager::Config::Upgrading::TolPackage::LocalOnly." ] |
|---|
| 1331 | return 0 |
|---|
| 1332 | } |
|---|
| 1333 | return 1 |
|---|
| 1334 | } |
|---|
| 1335 | |
|---|
| 1336 | proc ::TolPkgGUI::UpgradePackages { { pkgs {} } } { |
|---|
| 1337 | variable installData |
|---|
| 1338 | variable nodesInfo |
|---|
| 1339 | variable tree |
|---|
| 1340 | |
|---|
| 1341 | if { ![ CheckConnectionConfig ] } { |
|---|
| 1342 | return |
|---|
| 1343 | } |
|---|
| 1344 | array unset installData |
|---|
| 1345 | if { [ llength $pkgs ] } { |
|---|
| 1346 | foreach p $pkgs { |
|---|
| 1347 | array set installData $p |
|---|
| 1348 | lappend upgradeList [ lindex $p 0 ] |
|---|
| 1349 | } |
|---|
| 1350 | } else { |
|---|
| 1351 | # upgrade all, look for the list |
|---|
| 1352 | if { [ info exists nodesInfo(upgrade) ] } { |
|---|
| 1353 | foreach nid $nodesInfo(upgrade) { |
|---|
| 1354 | set p [ $tree item text $nid 0 ] |
|---|
| 1355 | lappend upgradeList $p |
|---|
| 1356 | set installData($p) $nid |
|---|
| 1357 | } |
|---|
| 1358 | } else { |
|---|
| 1359 | return |
|---|
| 1360 | } |
|---|
| 1361 | } |
|---|
| 1362 | DlgProcess $upgradeList -title [ mc "Upgrade packages" ] \ |
|---|
| 1363 | -label [ mc "You are about to upgrade"]: \ |
|---|
| 1364 | -beforestart ::TolPkgGUI::Upgrading \ |
|---|
| 1365 | -cmditem "InstallThisPackage" -refreshtree 1 |
|---|
| 1366 | } |
|---|
| 1367 | |
|---|
| 1368 | proc ::TolPkgGUI::UpdatePackageVersion { { pkgs {} } } { |
|---|
| 1369 | variable installData |
|---|
| 1370 | variable nodesInfo |
|---|
| 1371 | variable tree |
|---|
| 1372 | |
|---|
| 1373 | puts "UpdatePackageVersion: $pkgs" |
|---|
| 1374 | if { ![ CheckConnectionConfig ] } { |
|---|
| 1375 | return |
|---|
| 1376 | } |
|---|
| 1377 | |
|---|
| 1378 | array unset installData |
|---|
| 1379 | set updateList {} |
|---|
| 1380 | if { [ llength $pkgs ] } { |
|---|
| 1381 | foreach p $pkgs { |
|---|
| 1382 | array set installData $p |
|---|
| 1383 | lappend updateList [ lindex $p 0 ] |
|---|
| 1384 | } |
|---|
| 1385 | } else { |
|---|
| 1386 | # update all, look for the list |
|---|
| 1387 | if { [ info exists nodesInfo(update) ] } { |
|---|
| 1388 | foreach nid $nodesInfo(update) { |
|---|
| 1389 | set p [ $tree item text $nid 0 ] |
|---|
| 1390 | lappend updateList $p |
|---|
| 1391 | set installData($p) $nid |
|---|
| 1392 | } |
|---|
| 1393 | } else { |
|---|
| 1394 | return |
|---|
| 1395 | } |
|---|
| 1396 | } |
|---|
| 1397 | DlgProcess $updateList -title [ mc "Update packages" ] \ |
|---|
| 1398 | -label [ mc "You are about to update"]: \ |
|---|
| 1399 | -beforestart ::TolPkgGUI::Updating \ |
|---|
| 1400 | -cmditem "InstallThisPackage" -refreshtree 1 |
|---|
| 1401 | } |
|---|
| 1402 | |
|---|
| 1403 | proc ::TolPkgGUI::ImportSyncInfo { } { |
|---|
| 1404 | Unimplemented "Import Sync Info" |
|---|
| 1405 | } |
|---|
| 1406 | |
|---|
| 1407 | proc ::TolPkgGUI::ExportSyncInfo { } { |
|---|
| 1408 | Unimplemented "Export Sync Info" |
|---|
| 1409 | } |
|---|
| 1410 | |
|---|
| 1411 | proc ::TolPkgGUI::Unimplemented { title } { |
|---|
| 1412 | variable win |
|---|
| 1413 | |
|---|
| 1414 | MessageDlg $win.ask -parent $win -title [ mc $title ] \ |
|---|
| 1415 | -icon warning \ |
|---|
| 1416 | -type ok -message [ mc "Unimplemented option" ] |
|---|
| 1417 | } |
|---|
| 1418 | |
|---|
| 1419 | ## |
|---|
| 1420 | # Export packages -- |
|---|
| 1421 | # |
|---|
| 1422 | # p == "" then the last installed version of every package is |
|---|
| 1423 | # exported, |
|---|
| 1424 | # |
|---|
| 1425 | # [ llength $p ]>0 then all specified package is exported, if some |
|---|
| 1426 | # packages is not installed then it is requested from the remote |
|---|
| 1427 | # repository. |
|---|
| 1428 | # |
|---|
| 1429 | |
|---|
| 1430 | # Funciones que hacen falta: |
|---|
| 1431 | # |
|---|
| 1432 | # 1- Crear un zip de un paquete local |
|---|
| 1433 | # 2- Descargar un zip de un paquete remoto |
|---|
| 1434 | # |
|---|
| 1435 | proc ::TolPkgGUI::ExportPackageVersion { {pkgs ""} } { |
|---|
| 1436 | variable win |
|---|
| 1437 | |
|---|
| 1438 | if { ![ CheckConnectionConfig ] } { |
|---|
| 1439 | return |
|---|
| 1440 | } |
|---|
| 1441 | if { ![ llength $pkgs ] } { |
|---|
| 1442 | Unimplemented "Export all packages" |
|---|
| 1443 | return |
|---|
| 1444 | } |
|---|
| 1445 | set remote {} |
|---|
| 1446 | set local {} |
|---|
| 1447 | foreach _p $pkgs { |
|---|
| 1448 | foreach { p s } $_p break |
|---|
| 1449 | if { $s eq "upgrade" || $s eq "new" } { |
|---|
| 1450 | lappend remote $p |
|---|
| 1451 | } else { |
|---|
| 1452 | lappend local $p |
|---|
| 1453 | } |
|---|
| 1454 | } |
|---|
| 1455 | if { [ llength $remote ] } { |
|---|
| 1456 | set ans [ MessageDlg $win.ask -title [ mc "Export packages" ] \ |
|---|
| 1457 | -icon warning \ |
|---|
| 1458 | -type okcancel -aspect 75 \ |
|---|
| 1459 | -message [ mc "The following package can not be exported because they are not installed:\n%s\n\nContinue?" $remote ] ] |
|---|
| 1460 | if { $ans == 1 } { |
|---|
| 1461 | return |
|---|
| 1462 | } |
|---|
| 1463 | } |
|---|
| 1464 | puts "ExportPackageVersion: $local" |
|---|
| 1465 | if { [ llength $local ] } { |
|---|
| 1466 | DlgProcess $local -title [ mc "Export packages" ] \ |
|---|
| 1467 | -label [ mc "You are about to export"]: \ |
|---|
| 1468 | -beforestart ::TolPkgGUI::Exporting \ |
|---|
| 1469 | -customgui "CreateSelectDir" \ |
|---|
| 1470 | -cmditem "ExportThisPackage" -refreshtree 0 |
|---|
| 1471 | } |
|---|
| 1472 | } |
|---|
| 1473 | |
|---|
| 1474 | proc ::TolPkgGUI::Exporting { } { |
|---|
| 1475 | DlgProcessSetLabel [ mc "Exporting" ]... |
|---|
| 1476 | } |
|---|
| 1477 | |
|---|
| 1478 | proc ::TolPkgGUI::Installing { } { |
|---|
| 1479 | DlgProcessSetLabel [ mc "Installing" ]... |
|---|
| 1480 | } |
|---|
| 1481 | |
|---|
| 1482 | proc ::TolPkgGUI::Upgrading { } { |
|---|
| 1483 | DlgProcessSetLabel [ mc "Upgrading" ]... |
|---|
| 1484 | } |
|---|
| 1485 | |
|---|
| 1486 | proc ::TolPkgGUI::Updating { } { |
|---|
| 1487 | DlgProcessSetLabel [ mc "Updating" ]... |
|---|
| 1488 | } |
|---|
| 1489 | |
|---|
| 1490 | proc ::TolPkgGUI::InstallingZip { } { |
|---|
| 1491 | DlgProcessSetLabel [ mc "Installing Zip" ]... |
|---|
| 1492 | } |
|---|
| 1493 | |
|---|
| 1494 | proc ::TolPkgGUI::CreateSelectDir { f } { |
|---|
| 1495 | set varname [ DlgProcessGetVariableName "directory" ] |
|---|
| 1496 | upvar \#0 $varname var |
|---|
| 1497 | |
|---|
| 1498 | |
|---|
| 1499 | if { ![ info exists $varname ] } { |
|---|
| 1500 | trace add variable $varname write ::TolPkgGUI::OnChangeDirectory |
|---|
| 1501 | } |
|---|
| 1502 | label $f.lb -text [ mc "Output directory" ]: |
|---|
| 1503 | entry $f.ent -textvariable $varname |
|---|
| 1504 | button $f.btn -image folder_yellow_16 \ |
|---|
| 1505 | -command "::TolPkgGUI::ChooseDir $varname" |
|---|
| 1506 | grid $f.lb -row 0 -column 0 -sticky w |
|---|
| 1507 | grid $f.ent -row 0 -column 1 -sticky ew |
|---|
| 1508 | grid $f.btn -row 0 -column 2 -sticky ew |
|---|
| 1509 | grid columnconfigure $f 1 -weight 1 |
|---|
| 1510 | if { $var eq "" } { |
|---|
| 1511 | set var [ pwd ] |
|---|
| 1512 | } else { |
|---|
| 1513 | set var $var |
|---|
| 1514 | } |
|---|
| 1515 | } |
|---|
| 1516 | |
|---|
| 1517 | proc ::TolPkgGUI::OnChangeDirectory { args } { |
|---|
| 1518 | set w [ DlgProcessGetWin ] |
|---|
| 1519 | set dir [ DlgProcessGetVariable directory ] |
|---|
| 1520 | if { [ file exists $dir ] && [ file writable $dir ] } { |
|---|
| 1521 | $w itemconfigure 0 -state normal |
|---|
| 1522 | } else { |
|---|
| 1523 | $w itemconfigure 0 -state disabled |
|---|
| 1524 | } |
|---|
| 1525 | } |
|---|
| 1526 | |
|---|
| 1527 | proc ::TolPkgGUI::ChooseDir { varname } { |
|---|
| 1528 | variable win |
|---|
| 1529 | |
|---|
| 1530 | puts "upvar \#0 $varname var" |
|---|
| 1531 | upvar \#0 $varname var |
|---|
| 1532 | |
|---|
| 1533 | set res [ tk_chooseDirectory -parent $win -initialdir $var \ |
|---|
| 1534 | -mustexist 1 -title [ mc "Select output directory" ] ] |
|---|
| 1535 | if { $res ne "" } { |
|---|
| 1536 | set var $res |
|---|
| 1537 | } |
|---|
| 1538 | } |
|---|
| 1539 | |
|---|
| 1540 | proc ::TolPkgGUI::ExportThisPackage { p } { |
|---|
| 1541 | set status [ TolPkg::ExportPackage $p [ DlgProcessGetVariable "directory" ] ] |
|---|
| 1542 | puts "::TolPkgGUI::ExportThisPackage $p ==> $status" |
|---|
| 1543 | } |
|---|
| 1544 | |
|---|
| 1545 | proc ::TolPkgGUI::InstallThisPackage { p } { |
|---|
| 1546 | variable win |
|---|
| 1547 | variable urlmap |
|---|
| 1548 | variable installData |
|---|
| 1549 | |
|---|
| 1550 | if { [ info exists installData($p) ] } { |
|---|
| 1551 | set nid $installData($p) |
|---|
| 1552 | set REPO [ $win.tree item text $nid REPO ] |
|---|
| 1553 | set repo $urlmap($REPO) |
|---|
| 1554 | } else { |
|---|
| 1555 | # packages requested as a dependencie |
|---|
| 1556 | set repo "" |
|---|
| 1557 | } |
|---|
| 1558 | set result [ TolPkg::RemoteInstall $p $repo ] |
|---|
| 1559 | puts "TolPkg::RemoteInstall $p: $result" |
|---|
| 1560 | } |
|---|
| 1561 | |
|---|
| 1562 | proc ::TolPkgGUI::InstallThisZip { p } { |
|---|
| 1563 | variable win |
|---|
| 1564 | variable urlmap |
|---|
| 1565 | variable installZipData |
|---|
| 1566 | |
|---|
| 1567 | puts "::TolPkgGUI::InstallThisZip $p" |
|---|
| 1568 | set idx [ DlgProcessGetCurrentIndex ] |
|---|
| 1569 | set thisZip [ lindex $installZipData $idx ] |
|---|
| 1570 | set result [ TolPkg::ZipInstall $thisZip ] |
|---|
| 1571 | puts "::TolPkgGUI::InstallThisZip $p: $result" |
|---|
| 1572 | } |
|---|
| 1573 | |
|---|
| 1574 | proc ::TolPkgGUI::Show { } { |
|---|
| 1575 | variable win |
|---|
| 1576 | |
|---|
| 1577 | set win .tolpkg |
|---|
| 1578 | |
|---|
| 1579 | if { [ winfo exists $win ] } { |
|---|
| 1580 | raise $win |
|---|
| 1581 | } else { |
|---|
| 1582 | toplevel $win |
|---|
| 1583 | wm state $win withdrawn |
|---|
| 1584 | CreateTree $win.tree |
|---|
| 1585 | FillTreeInfo $win.tree |
|---|
| 1586 | wm state $win normal |
|---|
| 1587 | } |
|---|
| 1588 | } |
|---|
| 1589 | |
|---|
| 1590 | proc ::TolPkgGUI::test { } { |
|---|
| 1591 | destroy .tolpkg |
|---|
| 1592 | ::TolPkgGUI::Show |
|---|
| 1593 | } |
|---|
| 1594 | |
|---|
| 1595 | if { 0 } { |
|---|
| 1596 | ::TolPkg::UpdateRepositoryInfo |
|---|
| 1597 | ::TolPkgGUI::test |
|---|
| 1598 | } |
|---|