diff --git a/artemis/resources.py b/artemis/resources.py index 06b71f9..5f00637 100644 --- a/artemis/resources.py +++ b/artemis/resources.py @@ -6401,71 +6401,77 @@ Mode: Image.Pres\ erveAspectFit\x0d\x0a \ }\x0d\x0a }\x0d\ \x0a}\x0d\x0a\ -\x00\x00\x03\xf0\ +\x00\x00\x04P\ \x00\ -\x00\x0f\xd5x\xda\xddWQo\xdb6\x10~/\xd0\xff\ -\xc0\xea\xc9F7\xc5i;lp\x97\x07\xdb\x05\xda\x00\ -\x0d\x9a&\x19\x8aa\xd8\x03-\x9dd\xc2\x14\xa9\x90T\ -\x1co\xf5\x7f\xdf\x91\xb4b\xc9\xa6%\x17(P`J\ -\x90\x90\xbc\xef\x8e\xc7\xe3\xdd\xf1\x8e\x15\xa5T\x86|6\ -\x9f+\x96,\x9f?c\xady\xfc\x85\x89T\xae\x0e\x96\ -gR\x18%\xb9>J\x88\xaf\xa8\x01\xc5(?@|\ -\xa4kY\x19\xe4\xb4?^<\xf9\xf7\xf93\x82\x1fK\ -\xc7d\xe5V\xae\x15d\xa0@$\xe0\x80\x96\xb8b\xa9\ -Y\x8c\xc9\x9b_F~\xbe\x00\x96/\x0c.\x8cF5\ -d&q+\x01\xc2\xc4R\xd81\x07\x03(r+\xdd\ -~\x8f\xe4\x82\xdc&\x0a@\xc4N\x1e9#\xaf\xc8\xcf\ -\xe4i\xbcC\xaewH\xbf\xd3\x16\xba\x9bx\xec\xa6\xde\ -\xbc\x90)\xe5\xcc\xac\xc7x\xd2xR\x96\x9c%\xd40\ -)\xae\xec\xba\x87d\x9c\xe6\xda\xd1k\xb3\xfau\xc3\x0c\ -\x871\xb9\xd7wj\x10M\x94\x81\x82i\xdc\xaaa\x84\ -hXc5\xcb\x05\xe5D\xd3\x07\xa8Mv \x1b\x86\xad\x1c\x10\x86m\xdf\xf5\xf3\ -\xd7\xbf\x86\xe9O\xef\xfcoa:F2\xa0+\xfd\x15\ -\xa6\xda/\xba]k\x0c\xbd\xe8\xa7\x0e\xc8G\xbbI'\ -\xe2\x1dU\xcb#\xd7\xf1w\xd0b\x9d\x06\xfc\x11\x1e\xe5\ -\xdf\xa5\xff\x8bK\xf9\xd3\xfc0\x9f\xba\x81\xb4\xd3]\xae\ -\x99Xv\x03*\x85\x05j\xb7\xcb\x01\x94'\xc0\xf0M\ -e\xb9\xec\x84L\xf1\xad\xee\xf7\xff^\xd4lME'\ -\xe0\x0e(\xef\x04\xbc\xb7\x15u\xbf&\xa7\xc0\x8an]\ -\xff\x04\xce\xe5\xaa\x132)\xe6\xa0:\x11\x9f\x94}\x94\ -{/\xe9\x04\xd8T\xc9\x95\xe83\xcd\xba\xf7\x12\x1d\xe8\ -\xbbe\xa1KL\x8b=\x09\xe8\xc36T\x0e\xa3\xf8@\ -\x9a\xafJB\xf2|&\xf2\xfd\x8d-\xc4\xa2\xe1!\x86\ -%R\xc4ZV*\xb1\x95\xd5\xbdJ\xc6g\xac\xc02\ -K\x9fY\x8a>\xb3\x15U\xac\x1f\xf2\xc0\xe9S\xa6K\ -N\xb1\xf3\x9a\xcc\xb1\xb5\xa1\x89\xf1\x9a\xc4\xb6\xaf\x98\x82\ -f)\x5c\xa2\x88\xa3\xc7\xc4\xb6-\x17\x05&\x13\xdf\xba\ -\xd9\xd9\x8dk\xf2\xbe>\xcd\xa7\xae\x868\x94\x80}&\ -\xf6y\xcb@\xa5\xd5l\x81\x5c?\x15&\x87\xeb\xd4X\ -\x96 B,\x9b\x13\xaac\xfc\xfd\x0f\xae\x0e\xc4\xc5\ +\x00\x12tx\xda\xddX_o\xdb6\x10\x7f/\xd0\xef\ +\xc0\xfa\xc9FW\xc5\xe96l\xf0\x96\x07\xdb\x01\xb6\x00\ +\x0d\x9a\xc6\x19\x8aa\xd8\x03-\x9dd\xc2\x14\xa9\x90T\ +\x1co\xf3w\xdf\x91\x94mI\xa6e\xe7a\xe86\xd9\ +HD\xde\xef\x8e\xf7\x8f\xc7\xa3Y^He\xc8'\xf3\ +\xa9d\xf1\xf2\xf5+\xd6\x18G\x9f\x99H\xe4\xea`z\ +*\x85Q\x92\xeb\xa3\x84\xe8\x96\x1aP\x8c\xf2\x03\xc4\x07\ +\xba\x96\xa5AN\xfb\xf1\xe2\xc9\x9f\xaf_\x11|X2\ +\x22+7s\xa7 \x05\x05\x22\x06\x07\xb4\xc4\x15K\xcc\ +bD\xbe\xf9v\xe8\xc7\x0b`\xd9\xc2\xe0\xc4p\xb8\x85\ +L%.%@\x98H\x0a\xfb\xce\xc1\x00\x8a\xac\xa4\xdb\ +\xe7\x99\x5c\x91Y\xac\x00D\xe4\xe4\x91\x0b\xf2\x9e\xbc#\ +\xbb\xf7=r\xbdG\xfa\x95*\xe8~\xe0\xb1\x9b\xed\xe2\ +\xb9L(gf=BK\xa3qQp\x16S\xc3\xa4\ +\xb8\xb5\xf3\x1e\x92r\x9aiG\xdf\xba\xd5\xcf\x1bf8\ +\x8c\xc8\xa3~P\xfd\xdeX\x19\xc8\x99\xc6\xa5jN\xe8\ +\x0d\xb6X\xcd2A9\xd1\xf4\x09\xb6.\x1e\xc71\xda\ +\xdc\xd7F1\x91\x11\xaa\xb2\xc1Q\xe8\xc3\x02r\xe8D\ +\x8eK#\xb9\xa4I\x9f\x09S!*\xe5K\x11[{\ +<\x8a\xf3\xfe\xa0\xee\xd8\x80>\xb1\xcc\xe7r\x22\x9f\xfd\ +0\x8aK\x85\xb6\x98\x07x6\x830\x9fWn\xcb\xe6\ +F\x1d\x5c;E\xe3\x05\xc4K\xbbN5\x11\xb9\x09H\ +\x06\xad\x00\xed\x0c\xb0\xa0\x96\xae\xd4\xfdkX\x94JE\ +\xfaOTaV\xda\xac\x19\xfe\xe0^~$m\xb3d\ +)\x8c\xa7\xbd}\xdb\x10\xe02:%\x95lruu\ +\xd5\xe6}\xa2\xbc\x84\xb1\xe9#\xf3\xe0\x80\xd5>a\x17\ +\xde\x88\x04\xacJ\xc8v\xc82W@\x97\xcd\xe9\xcd~\ +\xb89\xc7'>\x0e\xc6\xfe}\x91G\xaa\x88\x9dt\x88\ +\x93\xdc\xf0\x87\xe7<\xdb\x1d\x8d\xd4\xf8\xa7\xbc\xb1\xcb/\ +#\xb3\x8c7=\xe1\xac8\x9cv:\x1e\xc9F\xd4\xd0\ +\xa8\x12j\x8b\x13\xe0\x1a^\xc0\x9eR\xc4\x1fW\xfe\x1a\ +#'\xb3[\xd0\x9af\x0d\xb1\xb6\xaa&\x8eX+(\ +3\xdcA\xc9\x1e\xe3\x8a\xd7\xa8\xd2p?]\x15\xa6^\ +\x8d\xd1\xed\xbd\xe4M\xaf\xc6\xeb\x97D\xd8/\x1a\x14)\ +j\xd8\x05\xd5d\x8e%\xd43\x11]b\x1e\xeb\xb4\xe4\ +|\xfd\x86l\xeb\x9c\x02m(\x9e\x0f\xee\xf5\xb1d\x0a\ +\x5c\xa2\xc5\x0b*2\x14a$1t\x09\x04\xd2\x14b\ +\x13\xf5\xea\xea!\xa3H\xa8J&\xa51R`e\xf5\ +>\x88>.\xeb()\xec\xf6)\xdaG\x81?SZ\ +\x87M\x14s\xa9\xa1?\x08\xbb\xd9\xbf\xdeQ\xd1\xf0/\ +\x15\xf1B*\x1d\xa5\x8c\xa3\x0b\x0bj\x93\xb2\xbe\xfeT\ +\xf22\x17\xfe\xd8k+\x10\xe6\x0d!\x94=vn\xb1\ + 31\x22\x97\xc30\x88Cz\x123\x97\xe8\xac\xfc\ +\x14\xca\xc8\xa2\x0ei\x82\xee\xe5*l\x8e}<\xc5Y\ +\xf4\xd9\x1f\xd9\xed\xac\xda#\xe7\xc0C\x22\x5c\xeaa\xc5\ +\xc7\x94\xda\xd6$\xe2\xf6|/\x8cM\xb1\xe9\x88\x0a\xf6\ +\x0c|\xc6\xfe\xc0D\xbc|\x1f\xc6\xc5\x9c\x15\xa3\xd66\ +\ {\xe0\xcdHw\x8c-~\x7f\x01K`a9\ -\x00\x00\x02\xbb\ +\x00\x00\x02\xbf\ \x00\ -\x00\x195x\xda\xed\x98Oo\xda0\x18\xc6\xef\x93\xf6\ -\x1d,viw\x88L\x02$D\xe2P\xb1He\x02\ -:B\xdan\xc7\xfcq\xc0\xaa\x89YbV\xd6\x89\xef\ -\xbe\x84\x94\x92\xc4N!L\x9a@\x8a\xe1\x90\xd8\xcf\xfb\ -\xe4\xc5\xbf\xd7I0^,i\xc8\xc0\x84MV\xd8}\ -\xfa\xf8\x01\xe7\xce\xa5G\x1cx\xf4\x99\xeb\xee\xd3\x80\x85\ -\x94D\xa5\x03\xd2\xc8f(\xc46\xe1\x14C\xfb7]\ -\xb182\xf9\x0c\x18Z\x80?\xc9\x11\x88\x9b\xbf\x0a\x5c\ -\x86i\x00\x22\xc4\x86x6g\xd1\xd5\xd3 \xf0\xd0\xfa\ -:\xd1\x80\xd7\x16\xa2\xfd\xf0\xf5\xbe\x1b\xfb\xe0U\x0dz\ -\xbd\x1e\x80\xb9\x984\xceePr)\xa1!\xe8\x81\xc6\ -\xa7\xb6\xd2u|\xbf\xb1\x17m\x00\x22\x11*\x1a5\x85\ -F\xcd\x8c\x11t]\xbf\xa5\x1c4\x92\x85Fru#\ -Eh\xa4d\x8c|\x88 \x84\x07\x8dZB\xa3Vu\ -\xa3\xb6\xd0\xa8\x9d5\xf2\x1d\xf5\x08\xa3\x8e\xd0\xa8\x933\ -R\x9d#\x8cT\xa1\x91\x9a1B\x1a<\xe6\xa7iB\ -#\xad\xbaQWh\xd4}\xd7(=\xdcp\xeb#\xb7\ -\x04\xf2k#_\xe3\xb2\xd3\xf2\xd4l\x8ds\xb5\xabv\ -4Y)\x08\xe4C\x82l\xad\xa9]U\xcee]\xac\ -!\xa1 [\x1bZ\xb3\xeds\x82NN\xd0jr\x82\ -,K\xb5\x0d\x15N\xa0\x1d\x12t\xcb\x04o\x13\xde\xa7\ -d\xb5\x08\xd2;Vv\x9a\xed\xc0\x9d\xd30\x92|L\ -\x88\x0e\x96v\x88\x02\xb6\x1f\x8d\x96\xb6\x8b\x83\x99\x0e\xe0\ -\xce'if|E;\x98\x11T,\x03\xec\xe9i:\ -\xf9\xeemn\xba(\xf7\xa4\xa59m\x13x\xc4\x1e\x9b\ -\xeb\x80\x85+T\xaa\xb9EI\xb1\x88D.\xc1KQ\ -?\xa3\xcb!\xf2\x99i{x\x15\xe9\xa0\x09\xb9a3\ -\xb1,\x1b\x1f\xda\x0e\x22\xc5_\xba\x0dD\xeb8\x8f\x9f\ -\x91\x15^5\xa6\xf7\xdf\x0c\x13L\xad;s\xd4\xb8\xe6\ -\xa5\xef\xcf\xf2\xae\xc5\x12\xfc\x12?ulrC\xf0,\ -X\xc4\x22\x1dX\xf1U\xa4\xed\xf9m?\xee@!\x1f\ -\xf7\x0b\x85\x0c\xbb%Q\x0feQ~|%\xc9\xa1\xc4\ -\x13\xcd\xd9\x9b`\x89\xd7\x88L\xf1\x0b\xda\xa5-\xcd\xb7\ -\x00>CI\xc9\x87lr\xab\xbdB\xb5hgU-\ -G\xe16\xbe[\xa612j\xe0'\x01W/\x0f\xf8\ -\xd4x0\xcc\x9a\xf7i\xbc;%\xbc\xb9\x87\xe1\xf9\xf0\ -\x1e\xdd|\xbd\xab\xef\xe7\xa7\xe1n\x97\xe2.\xbc\x1c\x9d\ -\x11\xee\xc1\xb8\xc6}\x22\xeeV\xd9\xdd\xbc\xf8\xb2|>\ -\xb8o\xfa\xd6\xe0\xc1\xa8IW$\xad\x5c\x1e\xe9\xfb\xf1\ -\xd4\xb0\xac\xa1\xf1\xa5\x86]\x11\xb6\x5c\x02\x9b\xfb\x17}\ ->\xb0'\xf7\x03\xc3\xaaAW\x04\xdd\xbc<\xd0\xf1\xbb\ -\xf8\x0fP\xd3>\x856,\xa1\xcdm\xaf\xfd\x17\xda\x0e\ -e\x8c.\xde\xdb\x9dI\x15\xff\xbeA3\x18\xd7\x0f}\ -n/6\xfe\xfe\x05D}A\x9e\ +\x00\x199x\xda\xed\x98]o\x9b0\x14\x86\xef'\xed\ +?X\xd9M\xbb\x0bd \x09\x04)\x17U\x8a\xd6H\ +\xf9P\x08M\xb7K>Lb\xd5\xc1\x198[\xda\xa9\ +\xff}\x90\xb4\x0d`\x93\x84L\x9aR\x09'\x17`\xbf\ +\xe7\xe5\xc0s\xcc\x87\xf1rE#\x06&l\xb2\xc6\xde\ +\xe3\xe7O8\xb7/=\xe0\xd0\xa7\xbf\xb9\xee\x1e\x0dY\ +DI\x5c: \x0d\x1d\x86\x22\xec\x10N1p\x9e\xe8\ +\x9a%\x91\xe9\xaf\xcf\xd0\x12\xfcI\xb7@\xd2\x82u\xe8\ +1LC\x10#6\xc0\xf3\x05\x8b\xaf\x1e\xfb\xa1\x8f6\ +\xd7\xa9\x06\xbc\xb6\x08\xed\x87\xaf\xf7\xdd8\x00\xafj\xd0\ +\xedv\x01\xcc\xc5\xec\xe2<\x06%\x8f\x12\x1a\x81.h\ +|i\xa9\x1d7\x08\x1a{\xd1\x0b@$FE#Y\ +h$g\x8c\xa0\xe7\x05M\xf5\xa8\x91\x224R\xaa\x1b\ +\xa9B#5c\x14@\x04!5g\xa6U\xf3>\x8f\xb7\xf6\x01y\ +\xdb\xd6x\xf4\xad\xe6}\x16\xefv\x09o\xeeix9\ +\xbc\x87\xe3[\xd3\xba\xb1\xeb\x19~\x1e\xf1V)\xf1\xc2\ +\x0b\xd2\x05\x11\xef\x8f\xc6V\x8d\xfb,\xdc\xcd\xb2\x1bz\ +\xf1\x85\xf9rp\xdf\xf4\xec\xfe\xcc\xacIW$\xad~\ +<\xd2\xf7\xa3\xa9i\xdb\x03\xf3\xb6\x86]\x11\xb6R\x02\ +\x9b\xfb\x92\xbe\x1c\xd8\x93\xfb\xbei\xd7\xa0+\x82\x96?\ +\x1e\xe8\xe4\xf3\xeb\x07\xa8i\x9fC\x1b\x96\xd0\xe6\x96\xd8\ +\xfe\x0bm\x972F\x97\x87Vhv\x8a\x7f_\xa4\xe9\ +\x8f\xea\x87>\xb7\x1e\x9b\xfc\xff\x02j\xe6B\xc4\ \x00\x00\x03~\ \x00\ \x00\x160x\xda\xcdX[O\xdb0\x14~G\xe2?\ @@ -6967,48 +6973,48 @@ J\x93\xaaV\xd6\xaf/\xb0\xf74W\x06\xa8\xe9\x12\xf3\ \xd0\xba\xc4\xc4O\x17\x87\x07]\x12\xd6Nz\xf7Jo\ \xed\x22\x0e\xaf\xd9\x97\x9b\xa4\xb6\x81b\xcdy\xc6\x0d\xb7\ \x85#\x15C\xeb\x87\xf9\xff\x0b\x83\x18\xec\xb5\ -\x00\x00\x02v\ +\x00\x00\x02|\ \x00\ -\x00\x10\x1dx\xda\xed\x97]o\x9b0\x14\x86\xef'\xed\ -?X\x99T5\xbb@\x06BH\xd1:)\xca\x90\x9a\ -)i\x15B\xd3k>Lb\xcd\xc1\x0c\xcc\x9au\xca\ -\x7f\x1f\x84|`\x0c\xcd\xd2IU.\xe2\xe4\x02\xdb\xaf\ -_\x1f\xfb9\x80\xc1\xcb\x88\xc6\x0cL\xd8$\xc5\xde\x8f\ -\x8f\x1f0W\x97\x9ep\xe8\xd3g\xa1y@C\x16S\ -\x924vHc\x87\xa1\x18;DP\x8c\x9c\xdf4e\ -\xd9\xc8\xfc7dh\x09\xfe\xe4W +A\x1az\x0c\ -\xd3\x10$\x88\x8d\xf0|\xc1\x92kg\x18\xfah\xd5\xce\ -5`[bt\xe8n\x1f\x9aq\x00\xb6j\xf0\xf5\x16\ -@pu\x05\xb6\xd5/\xa0\xc7\x19\x14&\x1e\x83\x92G\ -\x09\x8d\xc1-h}\xd2\xd4\x1b7\x08Z\x07\xd1\x1a \ -\x92\xa0\x8ak\x8fs\x95\xbb\xb5\xb6r\xc9\x16z^\xd0\ -Q\x8f\xd9\xca]\xceW\x85\xb5\xbeJ\xc97\x80\x08B\ -x\xccW\xe5wA\xab\xf7U\xcb\xbe\x81\xab\x1f\xf7\xd5\ -x_\x19\xd6\x1bw8c\xdd=n\xdc\xe4\xa4\x95\x9c\ -P\x0fV\x96^\x5c\xae\x85,\xe2\x12\x85\xcf \x1e\xbe\ -\xe2v|\xbd\x0c_\xc0\xa8w{\x8aZ\x11\x94y\xe8\ -7\xba\xc2\x05U\xdd\xd8\x9e\xac\x05\x82\xa0\xc3\x09:\xb2\ - (\xaf[\xd7\xa0\xba\x17\xec\x17;\xa0$]\x86\xc5\ -=U^\xa2\x13z\x0b\x1a'R\x80\x091@\xe4\xc4\ -(d\x87\xde$r<\x1c\xce\x0d\x00w>y\xb1\xb2\ -\x19\x9dpNP\x15\x01\xf6\x8d\x22\x1c\xbey\x13\x9bQ\ -\x0dmW\x8a\x986\x01\xc1\xf3p\x99\x89\x0c`g\ -\xd3H\x9b\xfa\xdd k@\xb18\xee\x17\x8a\x19\xf6\x1a\ -F\xcd\x9aF\x05\xd9L\x92K\x89_\xb7i{A\x84\ -W\x88L\xf1\x0b\xda\x85--6\x04>CI\xe1\x87\ -\xac\xb9[\xed\x84t\xe94\xa4\x8b\x90\xea\xef\x92.\xff\ -\xc4{\xdc\xff\xfe`]p\xbf\x09\xb7\xda\x88\xbb\xf2\xe8\ -;#\xdc\xc3\xfb\x0b\xee7\xe2V\x9a^\x06\xd5W\xe1\ -\xf9\xe0\xee\x0f\xec\xe1\xcc\xbc\x90>\x91\xb4\xdc@Z8\ -\x15\x9d\x0f\xe9\xc7\xfb\xa9i\xdb#\xf3\xdb\x05\xf6\x89\xb0\ -a\x03l\xe1\x8c\xfc.\xb0]\xca\x18]\xbev\xcc+\ -\x14\xff\x7f\xd2\x9b<\x0eM\xfb\x92-\xa5\xaf\xa9\xec\xff\ -\x17\x08(\x06\xbc\ +\x00\x10'x\xda\xed\x97[o\xda0\x18\x86\xef'\xed\ +?XL\xaa\xca\xa4E\xce\x89\xd0h\x9d\x84h\xb4\x22\ +A\x11!\xa5\xd798`\xcd\xc4Y\xe2t\xac\x13\xff\ +}\x09\xe1\x10\xe7PV&U\x5c`\xb8\x88\xed\xd7o\ +>\xfb\xf9\x9c8x\x19\xd2\x88\x81\x09\x9b$\xd8\xfd\xf1\ +\xf1\x03\xe6\xea\xc2\x13\x0e<\xfa\xab\xd2\xdc\xa7\x01\x8b(\ +\x89\x1b;\x84\x91\xcdP\x84mRQ\x0c\xed\xdf4a\ +\xe9\xc8\xec7`h\x09\xfedW -~\x12\xb8\x0c\ +\xd3\x00\xc4\x88\x0d\xf1|\xc1\xe2k{\x10xh\xd5\xce\ +4`[\x22t\xe8n\x1f\x9a\xb1\x0f\xb6j\xf0\xed\x16\ +@pu\x05\xb6\xd5\xaf\xa0\xcb\x19\xe4&.\x83\x82K\ +\x09\x8d\xc0-h}R\xe5\x1b\xc7\xf7[\x07\xd1\x1a \ +\x12\xa3\x92k\x97s\x15;\xb5\xb6b\xc1\x16\xba\xae\xaf\ +\xc8\xc7l\xc5\x0e\xe7+\xc3Z_\xa9\xe0\xebC\x04!\ +<\xe6+\xf3\xab\xa0\xd6\xfb\xcaE_\xdf\xd1\x8e\xfb\xaa\ +\xbc\xaf\x08\xeb\x8d\x15\xceXs\x8e\x1b79\xa9\x05'\ +\xd4\x85\xa5\xa9\xe7\x97\xebJ\x16q\x89\xc2g\x10\x0f_\ +r\x14O+\xc2\xaf`\xd4:]I.\x09\x8a<\xb4\ +\x1bM\xe2\x82*/lWT\xfd\x8a@\xe1\x04\x8aX\ +\x11\x14\xe7\xad\xa9P\xde\x0b\xf6\x93\xedS\x92,\x83|\ +O\x15\xa7h\x07\xee\x82F\xb1\xe0cBt\x10\xda\x11\ +\x0a\xd8\xa17\x0em\x17\x07s\x1d\xc0\x9dOV\xcc\xf4\ +\x8ev0'\xa8\x8c\x00{z\x1e\x0e\xdf\xbc\x89M/\ +\x87\xb6+yL\x9b\x00\x9e\xb0\xc7\x16:`Q\x82\x1a\ +5\xf7(\x03U'r\x09\x0e\xeb\xda\x19\x0d\x87\xc8g\ +\xa6\xed\xe1$\xd6\xd3\xdc\xa9t\x9b\x99eS\xff\xd0v\ +\x10)\xcft3\x10\xad\xd28~\xc6Vt\xdd\x9a\x1a\ +3\xc34\xc0\xd4\x1a\x9b\xa3V\xbb\xaa}}\x99w%\ +\x95\xe0\x97\xf4\xc1h\x93\x1e\xc1\xf3`\x99\x8at`\xa5\ +\xb7\x116\xf5\xfb~\xda\x80\xa2\xea\xb8g\x141\xec6\ +\x8c\x9a5\x8d\xf2\xd3;\x09\x0e%^\xdd\xa2\xed\x05!\ +^!2\xc5/h\x17\xb6\xb0\xd8\x10\xf8\x0c\x05\x89\x1f\ +\xb2\xe6\xb6\xda\x1b\xd2EiH\x97J\xaa\xbfK\xba\xfc\ +\x1bo\xcb\x1c?|\xbf\xf0>\x89\xb7\xdc\xc8\xbb\xf4\xec\ +;\x1f\xde\xa3\xf1\x9da\xf6\xac\xcb\x0e?\x8d\xb8\xd4\xf4\ +B(\xbf\x0e\xcf\x87x\xafo\x0df\xc6\x97\x0b\xefS\ +x\x8b\x0d\xbc+\xe7\xa3\xf3\xe1\xfd\xf805,kh\ +\xdc]`\xbf\x116l\x80]9-\xbf\x0bl\x872\ +F\x97\xaf\x1d\xf8r\xc5\xff\x9f\xf9&\x8f\x03\xc3\xbad\ +K\xe1\xbb*\xfd\xff\x05CN\x09\xae\ " qt_resource_name = b"\ @@ -7270,17 +7276,17 @@ qt_resource_struct = b"\ \x00\x00\x01\x8f\xcb\x84\x8f\xb2\ \x00\x00\x03<\x00\x01\x00\x00\x00\x01\x00\x01>\xe2\ \x00\x00\x01\x8f\xe9\xc7\xa9\x5c\ -\x00\x00\x05\xa8\x00\x00\x00\x00\x00\x01\x00\x01\x9e\x83\ +\x00\x00\x05\xa8\x00\x00\x00\x00\x00\x01\x00\x01\x9e\xe3\ \x00\x00\x01\x8f\xcb\x83\x89\xfd\ \x00\x00\x03r\x00\x01\x00\x00\x00\x01\x00\x01I\x0c\ \x00\x00\x01\x8f\xe4\x8f\x92\xee\ -\x00\x00\x05\x86\x00\x00\x00\x00\x00\x01\x00\x01\x98\xd4\ +\x00\x00\x05\x86\x00\x00\x00\x00\x00\x01\x00\x01\x994\ \x00\x00\x01\x8f\xc8\xd7c\x19\ \x00\x00\x03X\x00\x02\x00\x00\x00\x04\x00\x00\x00+\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x04\xc4\x00\x01\x00\x00\x00\x01\x00\x01v7\ \x00\x00\x01\x8f\xe4\x96f\xc0\ -\x00\x00\x05d\x00\x01\x00\x00\x00\x01\x00\x01\x8e\xeb\ +\x00\x00\x05d\x00\x01\x00\x00\x00\x01\x00\x01\x8fK\ \x00\x00\x01\x8f\xe4\x96PE\ \x00\x00\x04\xe6\x00\x01\x00\x00\x00\x01\x00\x01\x7f-\ \x00\x00\x01\x8f\xcb\x83z\xd6\ @@ -7291,16 +7297,16 @@ qt_resource_struct = b"\ \x00\x00\x04\x9e\x00\x01\x00\x00\x00\x01\x00\x01t\x09\ \x00\x00\x01\x8f\xd301\xb9\ \x00\x00\x05@\x00\x01\x00\x00\x00\x01\x00\x01\x8a\xf7\ -\x00\x00\x01\x8f\xe4\x8e\xdd\xf9\ +\x00\x00\x01\x8f\xee\x84(\xe5\ \x00\x00\x05\x06\x00\x00\x00\x00\x00\x01\x00\x01\x85\xce\ \x00\x00\x01\x8f\xe4\x8f\x0e\x0f\ -\x00\x00\x05\xdc\x00\x01\x00\x00\x00\x01\x00\x01\xa76\ +\x00\x00\x05\xdc\x00\x01\x00\x00\x00\x01\x00\x01\xa7\x96\ +\x00\x00\x01\x8f\xee>\xc2\xd2\ +\x00\x00\x06$\x00\x01\x00\x00\x00\x01\x00\x01\xad\xdb\ +\x00\x00\x01\x8f\xeeO\xac\x19\ +\x00\x00\x05\xc0\x00\x01\x00\x00\x00\x01\x00\x01\xa4\x93\ \x00\x00\x01\x8f\xc8\xd7c\x19\ -\x00\x00\x06$\x00\x01\x00\x00\x00\x01\x00\x01\xadw\ -\x00\x00\x01\x8f\xc8\xd7c\x19\ -\x00\x00\x05\xc0\x00\x01\x00\x00\x00\x01\x00\x01\xa43\ -\x00\x00\x01\x8f\xc8\xd7c\x19\ -\x00\x00\x06\x00\x00\x01\x00\x00\x00\x01\x00\x01\xa9\xf5\ +\x00\x00\x06\x00\x00\x01\x00\x00\x00\x01\x00\x01\xaaY\ \x00\x00\x01\x8f\xe4\xc6\xf5\xd8\ " diff --git a/artemis/ui/artemis.py b/artemis/ui/artemis.py index 5a3608e..8499c1f 100644 --- a/artemis/ui/artemis.py +++ b/artemis/ui/artemis.py @@ -10,6 +10,7 @@ from artemis.utils.path_utils import DATA_DIR from artemis.utils.network_utils import NetworkManager from artemis.utils.generic_utils import generate_filter_query from artemis.utils.path_utils import normalize_dialog_path +from artemis.utils.config_utils import CONFIGURE_QT from artemis.ui.preferences import UIPreferences from artemis.ui.dbmanager import UIdbmanager @@ -69,6 +70,8 @@ class UIArtemis(QObject): self.network_manager = NetworkManager(self) + self.autoload_db() + def _connect(self): # QML > Python connections @@ -331,6 +334,13 @@ class UIArtemis(QObject): self.cateditor.load_cateditor_ui() + def autoload_db(self): + sig_id_path = DATA_DIR / 'SigID' / Constants.SQL_NAME + autoload = CONFIGURE_QT.get_or_default("Database", "autoload", 0) + if sig_id_path.exists() and int(autoload): + self.load_db('SigID') + + def dialog_popup(self, message_type, title, message): """ Opens a general dialog popup diff --git a/artemis/ui/preferences.py b/artemis/ui/preferences.py index 0773be9..d1ca0c6 100644 --- a/artemis/ui/preferences.py +++ b/artemis/ui/preferences.py @@ -9,6 +9,7 @@ class UIPreferences(QObject): show_ui = Signal() load_material_accent = Signal(str) load_material_theme = Signal(str) + load_autoload = Signal(int) def __init__(self, parent): @@ -27,11 +28,13 @@ class UIPreferences(QObject): # QML > Python connections self._window.saveMaterialAccent.connect(self.save_material_accent) self._window.saveMaterialTheme.connect(self.save_material_theme) + self._window.saveAutoload.connect(self.save_autoload) # Python > QML connections self.show_ui.connect(self._window.show) self.load_material_accent.connect(self._window.loadMaterialAccent) self.load_material_theme.connect(self._window.loadMaterialTheme) + self.load_autoload.connect(self._window.loadAutoload) def load_preferences_ui(self): @@ -39,6 +42,7 @@ class UIPreferences(QObject): """ self.load_material_accent.emit(CONFIGURE_QT.get_or_default("Material", "Accent", "Green")) self.load_material_theme.emit(CONFIGURE_QT.get_or_default("Material", "Theme", "System")) + self.load_autoload.emit(int(CONFIGURE_QT.get_or_default("Database", "autoload", 0))) self.show_ui.emit() @@ -54,3 +58,10 @@ class UIPreferences(QObject): """ Saving material theme setting """ CONFIGURE_QT.set("Material", "Theme", material_theme) + + + @Slot(int) + def save_autoload(self, autoload): + """ Saving autoload setting + """ + CONFIGURE_QT.set("Database", "autoload", str(autoload)) diff --git a/artemis/utils/config_utils.py b/artemis/utils/config_utils.py index d3d0810..52d8b87 100644 --- a/artemis/utils/config_utils.py +++ b/artemis/utils/config_utils.py @@ -32,10 +32,13 @@ class Config(ConfigParser): self.write(f, space_around_delimiters=self._space_around_delimiters) -if not (PREFERENCES_DIR / 'qtquickcontrols2.conf').exists(): - copy_file( - BASE_DIR / 'config' / 'qtquickcontrols2.conf', - PREFERENCES_DIR / 'qtquickcontrols2.conf' - ) +def prepare_qt_conf(): + if not (PREFERENCES_DIR / 'qtquickcontrols2.conf').exists(): + copy_file( + BASE_DIR / 'config' / 'qtquickcontrols2.conf', + PREFERENCES_DIR / 'qtquickcontrols2.conf' + ) + +prepare_qt_conf() CONFIGURE_QT = Config((PREFERENCES_DIR / 'qtquickcontrols2.conf').resolve().as_posix()) diff --git a/config/qtquickcontrols2.conf b/config/qtquickcontrols2.conf index 0870c13..0268295 100644 --- a/config/qtquickcontrols2.conf +++ b/config/qtquickcontrols2.conf @@ -5,3 +5,6 @@ style=Material variant=Dense theme=System accent=Green + +[Database] +autoload=0 diff --git a/ui/Preferences.qml b/ui/Preferences.qml index 13f8adf..7619ffb 100644 --- a/ui/Preferences.qml +++ b/ui/Preferences.qml @@ -23,10 +23,12 @@ Window { signal saveMaterialAccent(string arg) signal saveMaterialTheme(string arg) + signal saveAutoload(int arg) function saveAll() { saveMaterialAccent(comboBoxAccent.currentText) saveMaterialTheme(comboBoxTheme.currentText) + saveAutoload(checkBoxAutoload.checked) } function loadMaterialAccent(accent) { @@ -47,6 +49,14 @@ Window { } } + function loadAutoload(toggle) { + if (toggle) { + checkBoxAutoload.checked = true + } else { + checkBoxAutoload.checked = false + } + } + DialogMessage { id: dialogPreferencesSaved modal: true @@ -132,6 +142,21 @@ Window { } } + RowLayout { + Layout.fillWidth: true + + Label { + text: "Auto-load SigID Database on Startup" + font.pixelSize: 12 + clip: true + Layout.fillWidth: true + } + + CheckBox { + id: checkBoxAutoload + } + } + Item { Layout.fillHeight: true }