From 77c43813a079afd2342ab73f095303548df243af Mon Sep 17 00:00:00 2001 From: Marco Dalla Tiezza Date: Thu, 13 Jun 2024 15:46:25 +0200 Subject: [PATCH] Final ieration of the new downloader and update_manager, implemented automatic updates only for windows --- artemis/resources.py | 378 +++++++++++++++++----------------- artemis/ui/artemis.py | 35 ++-- artemis/ui/downloader.py | 14 +- artemis/utils/update_utils.py | 81 ++++++-- ui/Artemis.qml | 8 +- 5 files changed, 285 insertions(+), 231 deletions(-) diff --git a/artemis/resources.py b/artemis/resources.py index d271e35..16a0cb5 100644 --- a/artemis/resources.py +++ b/artemis/resources.py @@ -5159,174 +5159,174 @@ z7\x80\xec$\xf4c9\xf2\xd1\x8f4\xc6\xbc>\xb8\ \x116\x9d`\x1e\x97*W\xd9M\xe1\x09\x12\xa5\xfc\xda\ h;Q\xfc\xeb\x9c\x87 J\xfd\xc5\xd0c0\xc6[\ \xf7\xe4\x19\xd3~\xf5\xc8?\xf0\xff?E#\xf2\xe8\ -\x00\x00\x0a[\ +\x00\x00\x0aW\ \x00\ -\x003#x\xda\xcd\x1ako\xdb8\xf2\xfb\x02\xfb\x1f\ -x\xfe\xb0\xb5osJ\xdaC\x81=w{@j\xa7\ -M\x80$\xcd\xd6i\x8bCQ\x14\xb4D\xdb\xbc\xd0\xa2\ -\x96\xa2\xe2d\xdb\xfc\xf7\x9d!\xf5\xa2^\x96\x93\xf4\xf6\ -\xdc\xc2\xb1\xc8\x19r^\x9c\x17\xc5\xd7\x91T\x9a\xfc\xa6\ -\x7fK\xb8\x7f\xf5\xe3\x0f\xdcy\xf6>\xf20\x90\x9b\xda\ -\xf0D\x86ZI\x11\xb7NxgT3\xc5\xa9\xa8A\ -\x9c\xd2[\x99\xe8:\xe6\x14\x80\xe5\x12\xc6\xf1\x9f\xdd\x96\ -|\xfd\xf1\x07\x02\x1f\x1e\x8c\xc9&%\x04\x9f7<\xd0\ -\xab1y\xfa\xf4\xe0\xc0\x0e\xac\x18_\xae\xf4\x98\xfc\x82\ -\x03vh\x22a\xf9\x90\x85\xda\x93!\xfe\x16L3X\ -&]\x11?7\xe4%\x99\xf9\x8a\xb1\xd03\x0b\x92}\ -\xf2\x8c\xfc\x83\xe4\xbf\x0b\xc8\xdb\x02\xd2\xee\x94\x82\x16\x0f\ -\x16\xf6.\xdb\x5cs-\xd8\x98\xfc\x1e_\xaa\xe1\xe0P\ -i\xb6\xe6\xf1`d\xe7\xaey\xcc\xe78\xabU\xc2\xec\ -\x90\xfd^\xcb\x80\x0a\xaeo\xc7 \x12\xef0\x8a\x04\xf7\ -\xa9\xe62<\xc3q\x0b\xb2\x10t\x19\x9b\xf9\x8f%q\ -\xd8\xef\xfd}b\x07c`A\xaf@\xc6$\x89\x22\xa6\ -\xc8\x9c\xaa\x0c\xa2\xc0\x7f\xad\xe8\x9a\x09\x16\xc7\x16\xe7\x98\ -\x87:#>\xe6\xcb\x90\x0a\x22$\x0df\xe6\xe7\x10&\ -\xd3\xd1\x93`\xe4\x00\xc5+\xb9\xb9Pl1\xac\x0fO\ -_\xadiH\x97L5\xccM\xa8>k\x9c\x94\x11\x0b\ -a\xd3\xa3\x80k\xa9\x86\xb1V<\x5c\x12}\x1b\xb1=\ -rM\x15B}\x89(\x90\xbeG\xe6R\x0a\xc2\xe3/\ -!\xdb\xd4\xd7\x9fE\xd4g\x1f\x19\xd5\xab\xda\x0e\xfe\x8a\ -\xf9W\xd3\xf9\xfb(\x00\x03\x8d\xab\xb4i\xaa\xf4Tn\ -Bd\xbe\x86\x9a\x18\x9cT\x9d\x0d\x84O\xe7S\xae\x98\ -\x0f\x94\xdfVf\x81\xc8\xe9\x15\x05>\x18}\x09\xa8\x80\xd0\xecF\xbf\xe6L\x04\ -3F\x95\xbf\xf2XH\xc1\x9e\x03\x00/,\xda\x18:\ -P\xe3'J\xc1\x19<\x09\x03\x86\xc7M\xc0B\x1f8\ -\xdbx\xe5\xf1\x02\x03\x0cI\xb1xe\xe8\x1b\x15\xc3`\ -\xd93\xa6\x09(\xd3]oN\xfd+B\x17\xe0g2\ -Lc-\x00&\x1c\x82\xf9\x82\x0c\x1d\xc4\x7f\xbf$\x07\ -\xe4\xa7\x9f\xdc\xd5~5Xp\xd8\x98\xf0|\x99\x84\xae\ -X\x8ch\x9a\xa8\x07\xae\x9a\x99\xb9\xab\xf8\x84\x5c\x0d\x0e\ -\x97\x8e\xe8\x8b\xfd\x05\x88\xb6,\x82\x85Td\x88\x02\xe5\ -\xb0\xdf\xc1\x0b\xf8\xf3kIS\x9e`\xe1R\xaf`\xf8\ -\xe7\x9fkT#\x16\x9a\x1c\x8a?\xc7\xf8\xc4?{8\ -\xe8iy*7LMh\xcc\xca\xfbe\x88\x01\x8b}\ -\xc5#Cw\x15\xbf4\xb7m\x99\xd8X\x0aZH\xc5\ -v\xf0\xb9\x0b\x19Ug\xe8\xe4\xa1/\x12\xd8qh\x97\ -\x1a\x91o\xdf\xca\xc4\xd5\xe6kbp\x05L\xc13\x86\ -\xc1\xd0a\xa8\xb2\xf5]M\x95\x86 8\xfc\x93\x15\x0d\ -\x97\x16-\xa3\xb7\xae\xe5\x1a`\x99 +\x13\x01\xbe\x82\ -\x05_\xe0\x90\xa5G\xc3\xd2\xb6dz\xd8hj#\xd7\ -\xa4\x9d\x05\xfe\xf6\xf2%I\x00h\xc1C\x16\xd4-\xb7\ -\xf0\xe5}\xf6\xf1f'o\xbe\x9cL+\x02a\xe0\x94\ -\xed\x22g,LZ\x8f\xfd\x1da\x22fU\x0aZ\x91\ -\x17\xe0_X\x8fSc\x8e\xc4Ng\xc6\xf1d\x9f>\ -\xb7;\xb0\x1af\xbb\x87+Q['QH\xff\x0a\xb9\ -\x1bj\xb9\x5c\x0a\xe6\xd0\x89\x0ak\x18\xc6\x0f\x86\x8e\xd7\ -\x5c\xb0n\xc1\x18!\x9a8\xd1\x0f\x16BN\x1fyg\ -\xba\x81\x88\xcc\x96\x10\xb8\xb6h\xa7Q\xb7-\x0c\xb8f\ -\xd1I\x7f\x1d\xb4\x8d\xfc\x86E\xdb\xa9\xaf\x18f\x9b\xde\ -\xe6Rk\xb9>\x09\x17\xf2\x15\xd8\xc1\x1a\x92\x22\xc8L\ -\xf6H\xfa\xe3\x12\xb2\x0fGg\x05\xf8)\x9d\x83\xe1\xa1\ -\xb5\xc0f)x\x01\x17C\x1a\x06No\xd8\xb6\x8e\x0f\ -\xfe\x8e\x0c6T\x85\x10\xb6\x06c\x97\xab\xea&\xbe\x14\ -\x10\x02^\x92,\xad\xb6\x03\xc3\xfc\xf1\x1d\x0b*\xc7u\ -\xae\x18\xbd\xaa\xee\xc6a\xc1\x9d\xb7\x82\xe0\xc3\x96\x0aB\ -b\xd0\xb9C\xab|\xd1>\xde\xb0\x90)*l\x92_\ -\x16\xc9\x9eM\x96sq;\x22\x0a\x0cx\x8a\xeb\x95\xb0\ -\x0ay\xe3S\x1b\x82Y\x19\xed\x00\xffnY\xb5I\x83\ -. \xb2\xd1\xee\xefM\x02h\xe0\xb3\xfc\x11\xb2\xb5\xdd\ -\xf8,\x10\xfb\xb3Z\xc2\xe9\xe4\xb6\xbev;\xc3%\xd8\ -\xbe<\xbfwR\xe3\x0e\xb6\xf7\x08M\xb4l`\xdeY\ -\xa1?\xff.Z\xa7\x08\x1awh\x97\x82\x0b\x8eT\xdb\ -\x11\xc0\xc0\x87n\xf0F\xb9YQ\x9d\xa5\x1b\x97\x83\x03\ -\x14\xa6U\xd1\x17\xb3\xa6.\xcc\xca\xc5\x92{\xd14\x0c\ -\xa8\x0a^%p|C\xa8\xea\xec\xf2\xde\x84\x86>\x13\ -\xe4[\xf6\xfc\x1f\x16\x97\xd1dx\xe8\xfb,\xaa\x16\xc3\ -\xe9\x8aM\xd5O\xd3\xd9\xee\xc1\x8a#\x90\xad\xdc\xe45\ -\x8c\xa9\xeb\x0ai\x7f_\x8e1*\x17{5\xe6\x8c\x95\ -\xa2\xefE%Il\x0c\x88\xf8\x81\x1a\x1b\x8d\xe0\xbd\x12\ -G7\xe0G!\x92\x89\xdb\xe1`\xa5u\x14\x8f\xf7\xf7\ -\x97P\xa1'sp\xb5\xeb\xfdC(\x06>\xc0,\xbb\ -\xdd\xcf;\x05/\xb6\xa5\xa2\xbb(\x22\xf5_\xf76\xa8\ -\xb7W\x8d{6ov\x8e\x95ny\xd5\x9b1\x19B\ -\xc9\x8e\x8d\x18\xdbYI;,\xa3J\x8b\xa5\x00K\xbb\ -*Y{%\x05l!?\x0foB\xc6\xecB\x0a\xee\ -\xc3J\x17P\xe8F\xde\xb9<\x04\xd5Np\xa2\x1f\x9b\ -\x85\x05Y\x8b*cM\xa4H\xd6\xa1\xed]U\xd5\x0d\ -\xc0+\xa9bo\xc1\x05\xd0e\xb9p!L`m\xb2\ -\x12\xcc\x1d\xb2>\xd1Q\x88\x95,\x96\xaf\xa6\x5c\x93\x0b\ -\xfb\x9bm\x08X \x9dC\xfc\x1e\x0fF\xf5%,M\ -\x9e\x8d\xe2gT-y8&O\x9f\xd7\x01\x17\x12\x84\ -\x1bI\x1eB\x22\xfe\x07\x03\x98g\xadV\x86\x9f\xcb,\ -\x09n\xa2\x1b\x15n\x9a\x1a\xe7@j+M(\x90\x8f\ -\xb6WW\xcf\xdb\xcc\xa9\x17\xd4g+)\xc0\xdb\x5c\x96\ -$\x81\x8b\x0e:\xcb\xb1^\xa7\xdbv]r2M\xa2\ -\xd6\xe1\xd30/m6\xed\xb4?c\xe6JU\x82m\ -\xf2\x0d.\xa0|\x00\x1f\x006\x00\x96F(\x89\xe95\ -\x03a#S\x9e\xe7\x0dJE<&\xbeP\xab\x8cK\ -[y3\x80\xc6\xc7\x02\x0c\xb5\x0f#`\x0c`\x9c\x9f\ -\x06\x87P\x81pXq\xe8\x81{\x1e\x0d>\xf7d\xbe\ -\xe8)\xa5e\x22nr/\xee\xd3\xdeSO\xee\xaf\xa9\ -\xe0\x01\x01R\xbd\xe5\x1f\x84Z\xda{\x88\xe1mZC\ -l\x17\xc3\xdfw\x93C\xd19\xeb'\x87\xc3y\xe5\x84\ -\xa3\x08(\x0e\x96%\x90\x83_T\xdcn\xb7/\x10l\ -\xa1/h\x10@\xc2\x0f\xe7\xef\xa0ZS8S\xc5\xe4\ -\x8aa8\x1e\x13\xacn\xa0B\xa9q\x08\x04j\x19\xbd\ -\xc26\xaf;\x83\x08\x8d^\xa7\xdc\x9eFy\x0cFU\ -\xd4\x0c\xfd\x04\x22R\xd3\x12\x85\xf3\x1a\x80\xcb'\xd3\xd4\ -C\xb9\x9av\x8a\xc4p\x02\xce\xf9\xcah\xa8\x14*\xd2\ -L\xe9\xae\x8et\xf7\x00\x92N!\x81\xd9\x91\xa6J\xcb\ -z\x17\x82f\x0c{\xd2\x1a\x8a\xa6\xaf\xf7\x22\xba8d\ -Yi\xdc\xc9\xdc\x89\xbd7\xc9\xd8\xeb\xc1[\xf9\x04?\ -\xb2\xc0\x0b\xf7\xd8\x8b\xf6\xa3\x9b]i/\xfb\xdev\xda\ -\x8d\xc7\xb3u\xff\xb8\xa9\xc5\xf1\xdd\xf5W\xedBtK\ -\x01\x80\xc9%]\xc6=\xed\xb2|]\xf2\xff\xc8|\xb9\ -\x01\xd4\xc98z\xf9\x5c\xf9\xe4\xb5\x89\x91=dP\xbb\ -\x5cyl!\xf4p)x\xcb\xc5\xc0\x9b\xfb\xac\xaf\xd6\ -\xec\xbd\xd8#{\xb6\xa3\x1b\xae{\xecooK=\x93\ -\x15\xf7\xa3\xe1\xaeo\xf0@\x85\xc7yknKp\xb1\ -=\xbc\xfb\x85\x974\xc7\x9cu\xec\xd5G\xe9n\xa4\xea\ -\x15\x0b\xdc[\xc8'\x96\x82'{\xe4\xd3\xe7=\x93\xc8\ ->\xae\xf7t:\xe3\x0f\xe6\x11\x89\xf6\x1e\xcc\xa5\xd9\xa7\ -\x85\xcd{Y\x8dk\x15x=K\xd2\xfb\xd9\x07\xe5\x1e\ -\x13\xbc\xcd%\xef\x18\xc6\x88\x1e,7C\x98\xaa\xb0\xe5\ -\xd6x\x0b\xff\x0f\x11I\x9eX\xf68G\xc7LD\x8f\ - (\xbcFLo\xbe{H\xabzU\xfe\xbf\xcc\x89\ -r\xaf+\xff\x0bN\x9f\x1c\xcb5,\xb8\xec\x9304\ -6^\x9ed\x8d\x17H\xc8\xe3k\xd3m1\xcd\x97'\ -\x8f\xed\x9f\xa7\xd2O\xd6\x90\xf3\x9b77\x1eLm\xd1\ -\x1b\xf2\xd2\x8e\x11\x97Y\x97\xe8\xd1I\x9f\xc1\x11\x80\xa3\ -d\xeb\xb9s\xd9\xcfF\xba\xe9\xefls\xed\xcf\x85\x9c\ -\xef\xafi\x0cx\xfb\x93\xe3\xc3\xf37G\xa7o\xdfx\ -\xeb\xe0\xc9_ai\xd6\x87\x90\x938N\xd8w\xe6\x9b\ -\xe3\x1e\xf1_\xc2\xa5\xa9n\x1f\xe4(K\xa5\xb0\xd3\xe5\ -\xbe\x97\xa3ld{!\xc1\xf6\xa0\xdcml\x9a\xa1\xd3\ -\xac\x5cX\xb9\x00\xb6\xcb\xc5o\x98h\xeer9%x\ -\xa5K\xa6\xb0\xdf\xd86Y)\xd1\x9f\xb7P\xffNn\ -\xee\xdb%\x8c!\xfe4\x94\xff\xdb\xda\x8f\xa5\x86\xdb\x9a\ -\xde\xf0u\xb2N{n\xcf\x9e\x1f4\x99Jgc/\ -o(\xb8W\xe0\xcd\x80\xe9\xae\x91I\x8d\x15\x0b\x8e\xd3\ -\xd7\xf0\xfe\xf9\xafNx-\xa3\xacO\xf9\xfc\xfe\xf9N\ -[\x8f\xb1\x19\xba\xa5\xd3h\xb9\x1b\x8c\xdaN\x04\xc2\xa6\ -oqt\x9e\x8a\x967\x97\xb6\x1f\x88\xfa\xa0c@-\ -\xac\xa7omtQ\x84J\xcc\xde\xeeh\x87\xea\xdb\xa8\ -m\x80\xcf\x94\xdd\x8d\xb0\x02 \x81\x80g\xf2\x9aM\x13\ -e\xe2\xe2\x98\x1c\xb4c\xf8\x82G\xdbV]@\x94\x8d\ -\xb7\x01\xcd|%\x85xE\x95w\xcd\x94\xe6>^\x1a\ -\xe4\xefBv\xd2:\x860\xe8k\xd0\xba`\xe4+1\ -\xf7\xe1\xe3\xe2:\x9c\xfa>\x1c\xdd\x17D\xd1\x80#\x15\ -\xcf\xc9]\xfb\x9a\xe0TKo\xd6\x14\xa6\xd4\xf0~P\ -\xc7*\x01D\xe5%\xec?&]>\xbe\xaa\xfai\x8a\ -\xd5\x0d\x9d\xbeL\x9b\xd9\x94w\x8d_f\xb0\x1b/{\ -\xe7\xf6\xd9A7\x5c\xea\xc6m\x00\xc2\xa6\xee]7\xfc\ -\x99Lb\x06Q\x93nc\xb3\x9fS\xdd\x12\xe9\xda\xde\ -\xe9\xe3\xee\xcb|=\x0ft\x8f\xa95\xbe\xacd\xc5m\ -\xde[\xea\xabL\x03\xbc\xf3\x8ewm.$?\x1c\xdb\ -|H\xe7\x89\xd9\xd9\x1dP_\xf3k\xd6\x05u\x8f\x02\ -\xabgp\xa4p\xb6C\xcc\xcd\xed\x0b\xd6\xf8t\x0a\xc9\ -\x00\xf9\x96?^\xca\xa8\xf3.\xab\x9b\xc7\xfe\x01\xe9\x92\ -\xce;$o\xc2\xaf\x81x\x8c\xc0\x87{\x99\x9b\xce.\ -E\x97\xaf!g'o\xce\x0fO\x07\xa3\x1d\x0dj\xe7\ -}^\x9f\x9c^\x1e\xbd\x9b\x0d\x1e\x18.g\x9a\xfaW\ -\xed\xba7\x11\xa5t\xb43\xd1\xb6\xbc\x81\xdc\xcfl\x8e\ -'\xcc\xdc\xd5\x16\x96\xf3\xc1\x8elU\xd8\xf6S\xb2\x9b\ -v\xb7\x85\x03\xdb\xd4\xa9^R\xb5Y]\x9cC?\x9e\ -\xa3\xd9F\xa1\xbd\xe2\xebK\xe1\x22\x87\xbe\x0f\x85;\x15\ -$\xe9\x1f\xf8\xff'\xb7x\xdf\xfa\ +\x003\x15x\xda\xcd\x1a\xdbn\xdb8\xf6}\x80\xf9\x07\ +\xae\x1f\xa6\xf6NVI\xbb(\xb0\xebN\x17H\xed\xa4\ +\x09\x90\xa4\x99:m\xb1(\x8a\x82\x96h\x9b\x1bZ\xd4\ +PT\x9cL\x9b\x7f\xdfsH\xdd\xa8\x9b\xe5$\xb3\xb3\ +n\xe1X\xe4!y\xee7\x8a\xaf#\xa94\xf9U\xff\ +\x9ap\xff\xfa\xc7\x1f\xb8\xf3\xec}\xe2a 7\xb5\xe1\ +\x89\x0c\xb5\x92\x22n\x9d\xf0\xce\xa9f\x8aSQ\x838\ +\xa3w2\xd1\xf5\x95S\x00\x96K\x18\xc7\x7f\xf6X\xf2\ +\xed\xc7\x1f\x08|x0&\x9b\x14\x11|\xde\xf0@\xaf\ +\xc6\xe4\xf9\xf3\x83\x03;\xb0b|\xb9\xd2c\xf2\x0f\x1c\ +\xb0C\x13\x09\xdb\x87,\xd4\x9e\x0c\xf1\xb7`\x9a\xc16\ +\xe9\x8e\xf8\xb9%\xaf\xc9\xccW\x8c\x85\x9e\xd9\x90\xec\x93\ +\x17\xe4o$\xff]@\xde\x15\x90\xf6\xa4\x14\xb4x\xb0\ +\xb0\xf7\xd9\xe1\x9ak\xc1\xc6\xe4\xb7\xf8J\x0d\x07\x87J\ +\xb35\x8f\x07#;w\xc3c>\xc7Y\xad\x12f\x87\ +\xec\xf7Z\x06Tp}7\x06\x96x\x87Q$\xb8O\ +5\x97\xe19\x8e[\x90\x85\xa0\xcb\xd8\xcc\x7f*\xb1\xc3\ +~\xef\xef\x13;\x18\x03\x09z\x05<&I\x141E\ +\xe6Te\x10\xc5\xfacE\xd7L\xb08\xb6kNx\ +\xa83\xe4c\xbe\x0c\xa9 B\xd2`f~\x0ea2\ +\x1d=\x0dF\x0eP\xbc\x92\x9bK\xc5\x16\xc3\xfa\xf0\xf4\ +\xcd\x9a\x86t\xc9T\xc3\xdc\x84\xea\xf3\xc6I\x19\xb1\x10\ +\x0e=\x0a\xb8\x96j\x18k\xc5\xc3%\xd1w\x11\xdb#\ +7T!\xd4\xd7\x88\x02\xea{d.\xa5 <\xfe\x1a\ +\xb2M}\xffYD}\xf6\x89Q\xbd\xaa\x9d\xe0\xaf\x98\ +\x7f},\xd5\x87(\x00\x0d\xadL&fp:o\x1c\ +N\xe5\xd8\x80\xf1t>\xe5\x8a\xf9\x80\xf2]e\x16\xb0\ +\x83\xddR:B`\xb9;\xcdn\xd1\x04\x0a\x88\x080\ +v!\xac\x91\xd4 ,L\xa4\xe0t\xa5\xef\x0coP\ +^,8\xe3q.\xc8E\x12\xfa\xa8@$\x92Q\x22\ +\x80\x02\x9c\x1c\xda\x8dc\xfc=*\x9bC\xb1\x1e\xb4\xbd\ +\x04T@hv\xab\x8f9\x13\xc1\x8cQ\xe5\xaf<\x16\ +RP\xe4\x00\xc0\x0bU6\x1a\x0e\xd8\xf8\x89R`|\ +\xa7a\xc0\xd0\xce\x04l\xf4\x91\xb3\x8dW\x1e/V\x80\ +\x06)\x16\xaf\x0c~\xa3b\x18Tz\xc64\x01)\xba\ +\xfb\xcd\xa9\x7fM\xe8\x02\x1cL\xb6\xd2\xa8\x09\x80\x09\x07\ +a\xbe Cg\xe1\xbf^\x93\x03\xf2\xd3O\xeen\xbf\ +\x98U`eLx\xbeLB\x97-\x865M\xd8\x03\ +U\xcd\xc4\xdcW\x9cA.\x06\x87J\x87\xf5\xc5\xf9\x02\ +X[f\xc1B*2D\x86r8\xef\xe0\x15\xfc\xf9\ +\xa5$)O\xb0p\xa9W0\xfc\xf3\xcf5\xacq\x15\ +\xaa\x1c\xb2?_\xf1\x99\x7f\xf1p\xd0\xd3\xf2Ln\x98\ +\x9a\xd0\x98\x95\xcf\xcb\x16\x06,\xf6\x15\x8f\x0c\xde\xd5\xf5\ +\xa5\xb9m\xdb\xc4FSPC*\xba\x83\xcf]\x8bQ\ +t\x06O\x1e\xfa\x22\x81\x13\x87v\xab\x11\xf9\xfe\xbd\x8c\ +\x5cm\xbe\xc6\x06\x97\xc1\x14\x5cb\x18\x0c\x1d\x82*G\ +\xdf\xd7Di\x10\x02\xe3\x9f\xach\xb8\xb4\xcb2|\xeb\ +R\xae\x01\x96\x11\xb2<\x11\xe0+X\xf0\x15\x8c,5\ +\x0d\x8b\xdb\x92\xe9a\xa3\xaa\x8d\x5c\x95v6\xf8\xcb\xeb\ +\xd7$\x01\xa0\x05\x0fYP\xd7\xdc\xc2\x89\xf79\xc7\x9b\ +\x9d\xbe\xfdz:\xad0\x84\x817\xb6\x9b\x9c\xb30i\ +5\xfb{\xc2D\xcc\xaa\x18\xb4.^\x80\x7fa=\xac\ +\xc6\x98\xc4N6\xe3x\xb2\xcf_\xda\x1dXme\xbb\ +\x87+a[GQH\xff\x1a\xa9\x1bj\xb9\x5c\x0a\xe6\ +\xe0\x89\x02k\x18\xc6\x0f\x86\x8ec.X7c\x0c\x13\ +M\x9c\xe8\x07\x0b!\xa7\x0f\xbf3\xd9@(fK\x08\ +\x5c[\xa4\xd3(\xdb\x16\x02\x5c\xb5\xe8\xc4\xbf\x0e\xda\x86\ +~\xc3\xa6\xed\xd8W\x14\xb3Mns\xa9\xb5\x5c\x9f\x86\ +\x0b\xf9\x06\xf4`\x0d\xd9\x10\xa4${$\xfdq\x05i\ +\x87#\xb3\x02\xfc\x8c\xceA\xf1P[\xe0\xb0\x14\xbc\x80\ +\x8b!\xff\x02\xa77l\xdb\xc7\x07\x7fG\x06\x1b\xaaB\ +\x08[\x83\xb1KU\xf5\x10_\x0a\x08\x01\xafI\x96O\ +\xdb\x81a\xfe\xf8\x9e\x05\x15s\x9d+F\xaf\xab\xa7q\ +\xd8p\xe7\xa3 \xf8\xb0\xa5\x82\x90\x18t\x9e\xd0\xca_\ +\xd4\x8f\xb7,d\x8a\x0a\x9b\xdd\x97Y\xb2g\xb3\xe4\x9c\ +\xdd\x0e\x8b\x02\x03\x9e\xae\xf5J\xab\x0a~\xe3S\xdb\x02\ +\xb33\xea\x01\xfe\xdd\xb2k\x93\x04]@$\xa3\xdd\xdf\ +\x9b\x04\xd0\xc0O\xe5&D\xdf\x03\xd9\xdant\x16\x0b\ +\xfb\x93ZZ\xd3Im}\xefv\x82K\xb0}i\xfe\ +\xe0\xa4\xc6\x1dd\xef\x11\x9ah\xd9@\xbc\xb3C\x7f\xfa\ +\xdde\x9d,h<\xa1\x9d\x0b.8bmG`\x05\ +>t\x837\xf2\xcd\xb2\xea<=\xb8\x1c\x1c\xa0\x22\xad\ +\xb2\xbe\x985\x05aV'\x96\xdc\x8b\xa6a@U\xf0\ +&\x01\xf3\x0d\xa1\x9c\xb3\xdb{\x13\x1a\xfaL\x90\xef\xd9\ +\xf3\xbfY\x5c^&\xc3C\xdfgQ\xb5\x0a\xc6O\xb5\ +\xeci2\xea\x1e48\x9c\xd8JF^\xbc\x98J\xae\ +`\xf3\x1fK*\x86\xe3\xe2\xac\xc6d\xb1R\xed\xbd\xaa\ +d\x87\x8d\x91\x10?PU\xa3\xf4?(qt\x0b\x0e\ +\x14B\x98\xb8\x1b\x0eVZG\xf1x\x7f\x7f\x095y\ +2\x07\x1f\xbb\xde?\x84*\xe0#\xcc\xb2\xbb\xfd\xbc7\ +\xf0j[\x0e\xba\x8b R\xc7\xf5`Mzw\xddx\ +f\xf3a\x17X\xe2\x96w\xbd\x1d\x93!\x14\xe9\xd8z\ +\xb1\xbd\x94\xb4\xa72\xaa4U\x0a\xb0\xb4\x8f\x925T\ +R\xc0\x16\xf4\xf3\xb8&d\xcc.\xa5\xe0>\xect\x09\ +\x15n\xe4]\xc8C\x10\xed\x04'\xfa\x91Yh\x90\xd5\ +\xa8\xf2\xaa\x89\x14\xc9:\xb4\xdd\xaa\xaa\xb8\x01x%U\ +\xec-\xb8\x00\xbc,\x15.\x84\x89\xa8MZ\x82IC\ +\xd6\x19:\x0a\xb1\x84\xc5\xba\xd5\xd4ira\x7f\xb3\x0d\ +\x01\x0d\xa4s\x08\xdc\xe3\xc1\xa8\xbe\x85\xc5\xc9\xb3\xe1\xfb\ +\x9c\xaa%\x0f\xc7\xe4\xf9\xcb:\xe0B\x02s#\xc9C\ +\xc8\xc0\x7fg\x00\xf3\xa2U\xcb\xf0s\x95e\xbfMx\ +\xa3\xc0M7\xe3\x02Pm\xc5\x09\x19\xf2\xc9v\xe7\xea\ +\x09\x9b\xb1zA}\xb6\x92\x22`\xea\xaa\xc4\x09\xdct\ +\xd0Y\x87\xf5\xb2n\xdbn\xc9\xd14\x19Z\x87O\xc3\ +\x84\xb4Y\xb5\xd3\xc6\x8c\x99+\x95\x07\xb6\xad7\xb8\x84\ +\xba\x01|\x00\xe8\x00h\x1a\xa1$\xa67\x0c\x98\x8dD\ +y\x9e7(U\xef\x98\xf1B\x912.\x1d\xe5\xcd\x00\ +\x1a\x1f\x0b0\x94>\x8c\x802\x80r~\x1e\x1cB\xe9\ +\xc1a\xc7\xa1\xa7\xa9\x1a\x0d\xbe\xf4$\xbeh&\xa5\xf5\ +!\x1e\xf2 \xea\xd3\xa6SO\xeao\xa8\xe0\x01\x01T\ +\xbd\xe5\xef\x84Z\xdc{\xb0\xe1]Z\xeb+5{\x13\xf6\ +\xc4\x9e\xed\xe8\x96\xeb\x1e\xe7\xdb\xfbQ\xcfd\xc5\xfdp\ +\xb8\xef\x1b<\xdfi\xeb16\ +C\xb7t\x1a-u\x83Q\x9bE l\xfa\xfaF\xa7\ +U\xb4\xbc\xb2\xb4\xdd \xea\x83\x8e\x02\xb5\x90\x9e\xbe\xae\ +\xd1\x85\x11\x0a1{\xad\xa3\x1d\xaao\xa3\xb6\x01>\x13\ +v\xf7\x82\x15\x00\x09\x04<\x977l\x9a(\x13\x17\xc7\ +\xe4\xa0}\x85/x\xb4m\xd7\x05D\xd9x\x1b\xd0\xcc\ +WR\x887Ty7Li\xee\xe3\xa5A\xfe\xf6c\ +'\xaec\x08\x83\xbe\x06\xa9\x0bF\xbe\x11s\x11>.\ +\xee\xc1\xa9\xef\x83\xe9\xbe\x22\x8a\x06\x1c\xb1xI\xee\xdb\ +\xf7\x04\xa7Zz\xa5\xa6P\xa5\x86\x17\x83:v\x09 \ +*/\xe1\xfc1\xe9\xf2\xf1U\xd1O\xd3U\xdd\xd0\xe9\ +\xeb\xb3\x99Ny7\xf8e\x06\xbb\xd7eo\xd9\xbe8\ +\xe8\x86K\xdd\xb8\x0d@\xd8\xd4\xbd\xef\x86?\x97I\xcc\ + j\xd2md\xf6s\xaa[\x22]\xdb\xcb|\xdc}\ +\x8b\xaf\xa7A\xf7\x98Z\xe3[J\x96\xdd\xe6\x85\xa5\xbe\ +\xc24\xc0;\x9fx\xdf\xe6Br\xe3\xd8\xe6C:-\ +fgw@}\xcdoX\x17\xd4\x03\x0a\xac\x9e\xc1\x91\ +\x82m\x87\x98\x9b\xdbW\xaa\xf1\xe9\x0c\x92\x01\xf2=\x7f\ +\xbc\x92Q\xe7]V7\x8d\xfd\x03\xd2\x15\x9dwp\xde\ +\x84_\x03\xf1\x14\x81\x0f\xcf27\x9d]\x82._C\ +\xceN\xdf^\x1c\x9e\x0dF;*\xd4\xce\xe7\x1c\x9f\x9e\ +]\x1d\xbd\x9f\x0d\x1e\x19.g\x9a\xfa\xd7\xed\xb27\x11\ +\xa5d\xda\x19k[^=\xee\xa76'\x13f\xeej\ +\x0b\xcd\xf9hG\xb6\x0al\xbb\x95\xec&\xddm\xe1\xc0\ +6u\xaa\x97TmZ\x17\xe7\xd0O\xe7h\xb6ah\ +\xaf\xf8\xfab\xb8\xc8\xa1\x1f\x82\xe1N\x05I\xfa\x07\xfe\ +\xff\x17E\xda\xd9\xee\ \x00\x00\x08k\ \x00\ \x00r]x\xda\xed\x5cms\x9b\xb8\x1a\xfd\xde\x99\xfe\ @@ -7295,47 +7295,47 @@ qt_resource_struct = b"\ \x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x01\x16\xe5\ \x00\x00\x01\x8f\xff^8P\ -\x00\x00\x03\xb0\x00\x01\x00\x00\x00\x01\x00\x01Q\xb0\ +\x00\x00\x03\xb0\x00\x01\x00\x00\x00\x01\x00\x01Q\xac\ \x00\x00\x01\x8f\xff^8_\ -\x00\x00\x04\x22\x00\x01\x00\x00\x00\x01\x00\x01[\xa5\ +\x00\x00\x04\x22\x00\x01\x00\x00\x00\x01\x00\x01[\xa1\ \x00\x00\x01\x8f\xff^8P\ -\x00\x00\x03\xe6\x00\x01\x00\x00\x00\x01\x00\x01T\xcd\ +\x00\x00\x03\xe6\x00\x01\x00\x00\x00\x01\x00\x01T\xc9\ \x00\x00\x01\x8f\xff^8P\ \x00\x00\x03\x12\x00\x01\x00\x00\x00\x01\x00\x019\x8e\ \x00\x00\x01\x8f\xff^8P\ \x00\x00\x03<\x00\x01\x00\x00\x00\x01\x00\x01>\xe2\ -\x00\x00\x01\x90\x11\x9a\x93$\ -\x00\x00\x05\xa8\x00\x00\x00\x00\x00\x01\x00\x01\xa0\xaf\ +\x00\x00\x01\x90\x11\xc7\x00\xf9\ +\x00\x00\x05\xa8\x00\x00\x00\x00\x00\x01\x00\x01\xa0\xab\ \x00\x00\x01\x8f\xff^8P\ -\x00\x00\x03r\x00\x01\x00\x00\x00\x01\x00\x01IA\ +\x00\x00\x03r\x00\x01\x00\x00\x00\x01\x00\x01I=\ \x00\x00\x01\x8f\xff^8_\ -\x00\x00\x05\x86\x00\x00\x00\x00\x00\x01\x00\x01\x99{\ -\x00\x00\x01\x90\x11U\xb4\x08\ +\x00\x00\x05\x86\x00\x00\x00\x00\x00\x01\x00\x01\x99w\ +\x00\x00\x01\x90\x11\xad[\xc5\ \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\x01vI\ -\x00\x00\x01\x90\x11U\xb4\x08\ -\x00\x00\x05d\x00\x01\x00\x00\x00\x01\x00\x01\x8f_\ +\x00\x00\x04\xc4\x00\x01\x00\x00\x00\x01\x00\x01vE\ +\x00\x00\x01\x90\x11\xad[\xc5\ +\x00\x00\x05d\x00\x01\x00\x00\x00\x01\x00\x01\x8f[\ \x00\x00\x01\x90\x01\x93J\xb0\ -\x00\x00\x04\xe6\x00\x01\x00\x00\x00\x01\x00\x01\x7fA\ +\x00\x00\x04\xe6\x00\x01\x00\x00\x00\x01\x00\x01\x7f=\ \x00\x00\x01\x8f\xff^8P\ -\x00\x00\x04H\x00\x01\x00\x00\x00\x01\x00\x01b1\ -\x00\x00\x01\x90\x11U\xb4\x08\ -\x00\x00\x04v\x00\x00\x00\x00\x00\x01\x00\x01nV\ +\x00\x00\x04H\x00\x01\x00\x00\x00\x01\x00\x01b-\ +\x00\x00\x01\x90\x11\xad[\xc5\ +\x00\x00\x04v\x00\x00\x00\x00\x00\x01\x00\x01nR\ \x00\x00\x01\x8f\xff^8P\ -\x00\x00\x04\x9e\x00\x01\x00\x00\x00\x01\x00\x01t\x1b\ +\x00\x00\x04\x9e\x00\x01\x00\x00\x00\x01\x00\x01t\x17\ \x00\x00\x01\x8f\xff^8P\ -\x00\x00\x05@\x00\x01\x00\x00\x00\x01\x00\x01\x8b\x0b\ +\x00\x00\x05@\x00\x01\x00\x00\x00\x01\x00\x01\x8b\x07\ \x00\x00\x01\x8f\xff^8P\ -\x00\x00\x05\x06\x00\x00\x00\x00\x00\x01\x00\x01\x85\xe2\ +\x00\x00\x05\x06\x00\x00\x00\x00\x00\x01\x00\x01\x85\xde\ \x00\x00\x01\x8f\xff^8P\ -\x00\x00\x05\xdc\x00\x01\x00\x00\x00\x01\x00\x01\xa9b\ +\x00\x00\x05\xdc\x00\x01\x00\x00\x00\x01\x00\x01\xa9^\ \x00\x00\x01\x8f\xff^8_\ -\x00\x00\x06$\x00\x01\x00\x00\x00\x01\x00\x01\xaf\xa7\ +\x00\x00\x06$\x00\x01\x00\x00\x00\x01\x00\x01\xaf\xa3\ \x00\x00\x01\x8f\xff^8_\ -\x00\x00\x05\xc0\x00\x01\x00\x00\x00\x01\x00\x01\xa6_\ +\x00\x00\x05\xc0\x00\x01\x00\x00\x00\x01\x00\x01\xa6[\ \x00\x00\x01\x8f\xff^8_\ -\x00\x00\x06\x00\x00\x01\x00\x00\x00\x01\x00\x01\xac%\ +\x00\x00\x06\x00\x00\x01\x00\x00\x00\x01\x00\x01\xac!\ \x00\x00\x01\x8f\xff^8_\ " diff --git a/artemis/ui/artemis.py b/artemis/ui/artemis.py index ce39396..16a2c53 100644 --- a/artemis/ui/artemis.py +++ b/artemis/ui/artemis.py @@ -6,10 +6,10 @@ from PySide6.QtCore import QObject, Slot, Signal from artemis.utils.constants import Constants, Messages from artemis.utils.sys_utils import open_directory, make_tar, unpack_tar from artemis.utils.sql_utils import ArtemisDatabase, ArtemisSignal -from artemis.utils.path_utils import DATA_DIR from artemis.utils.update_utils import UpdateManager from artemis.utils.generic_utils import generate_filter_query from artemis.utils.path_utils import normalize_dialog_path +from artemis.utils.path_utils import DATA_DIR from artemis.utils.config_utils import CONFIGURE_QT from artemis.ui.preferences import UIPreferences @@ -25,6 +25,7 @@ import artemis.resources class UIArtemis(QObject): # Python > QML Signals + close_ui = Signal() populate_sig_list = Signal(list) populate_sig_details = Signal(list) populate_filter_modulation = Signal(list) @@ -79,8 +80,8 @@ class UIArtemis(QObject): self._window.loadSignal.connect(self.load_sig) self._window.showPref.connect(self.show_pref_ui) self._window.openSigEditor.connect(self.open_sig_editor) - self._window.startDownloader.connect(self.start_download_db) - self._window.checkDbUpdates.connect(self.check_update_db) + self._window.checkForUpdate.connect(self.check_for_update) + self._window.updateDb.connect(self.update_db) self._window.updateArtemis.connect(self.update_artemis) self._window.showSpaceWeather.connect(self.show_space_weather_ui) self._window.openDbDirectory.connect(self.open_db_directory) @@ -99,6 +100,7 @@ class UIArtemis(QObject): self._window_signal.addCatTag.connect(self.add_cat_tag) # Python > QML connections + self.close_ui.connect(self._window.close) self.populate_sig_list.connect(self._window.populateList) self.clear_list.connect(self._window.clearList) self.update_info_bar.connect(self._window.bottomInfoBar) @@ -215,22 +217,12 @@ class UIArtemis(QObject): self.docmanager.load_documentsmanager_ui() - def check_update_db(self): - """ User manual check for updates db updates + def check_for_update(self): + """ User manual check for updates updates """ self.update_manager.check_updates(True) - def start_download_db(self): - """ Show the downloader and start the download of the sigid db - """ - self.downloader.finished.connect(self.update_manager.post_download_db) - self.downloader.on_start( - self.update_manager.remote_db_url, - DATA_DIR - ) - - def dialog_download_db(self, message_type, title, message): """ Dialog popup for DB download confirmation """ @@ -238,14 +230,23 @@ class UIArtemis(QObject): def dialog_update_artemis(self, message_type, title, message, auto=False): - """ Dialog popup for artemis download confirmation + """ Dialog popup for Artemis download confirmation """ self.show_dialog_update_artemis.emit(message_type, title, message, auto) + @Slot() + def update_db(self): + """ Start the download of the sigID DB + """ + self.update_manager.download_db() + + @Slot() def update_artemis(self): - print('ciao') + """ Start the download of Artemis + """ + self.update_manager.download_artemis() def open_db_directory(self): diff --git a/artemis/ui/downloader.py b/artemis/ui/downloader.py index b934999..209217d 100644 --- a/artemis/ui/downloader.py +++ b/artemis/ui/downloader.py @@ -55,7 +55,7 @@ class UIDownloader(QObject): url (str): url from where download the file save_path (str): path where to save the downloaded file """ - + self._clear_ui() self.show_ui.emit() self.file_url = QUrl(url) @@ -85,8 +85,6 @@ class UIDownloader(QObject): """ if self.reply: self.reply.abort() - self.update_progress_bar.emit(0, 0) - self.update_status.emit('') if self.file: self.file.cancelWriting() @@ -103,8 +101,8 @@ class UIDownloader(QObject): @Slot() def on_finished(self): - """ Finalize the download process and if no errors - occurs emits the finished signal usefulle for + """ Finalize the download process and, if no errors + occurs, emits the finished signal usefull for a callback """ if self.reply: @@ -144,6 +142,7 @@ class UIDownloader(QObject): def _get_filesize(self, url): """ Get the file size by sending a HEAD request to the URL. If the Content-Length in HTTP headers is missing, returns None + and set the progress_bar as 'indeterminate' like a 'busy indicator' Args: url (str): URL to check the file size @@ -157,6 +156,11 @@ class UIDownloader(QObject): return None + def _clear_ui(self): + self.update_progress_bar.emit(0, 0) + self.update_status.emit('') + + def show_popup_error(self, error_msg): self._parent.dialog_popup( Messages.DIALOG_TYPE_ERROR, diff --git a/artemis/utils/update_utils.py b/artemis/utils/update_utils.py index 2c56161..185a944 100644 --- a/artemis/utils/update_utils.py +++ b/artemis/utils/update_utils.py @@ -5,8 +5,8 @@ from packaging.version import Version from artemis.utils.constants import Constants, Messages from artemis.utils.sql_utils import ArtemisDatabase -from artemis.utils.sys_utils import is_windows, is_linux, is_macos, delete_file, delete_dir, match_hash, unpack_tar -from artemis.utils.path_utils import DATA_DIR +from artemis.utils.sys_utils import is_windows, is_linux, is_macos, delete_file, delete_dir, match_hash, unpack_tar, open_file +from artemis.utils.path_utils import DATA_DIR, APP_DIR class UpdateManager: @@ -26,19 +26,22 @@ class UpdateManager: self.remote_db_size = None self.remote_db_file_name = None - self.remote_art_version = None + self.remote_artemis_version = None + self.remote_artemis_url = None + self.remote_artemis_file_name = None self.check_updates() def check_updates(self, show_popup=False): """ Checks if a software or DB update is available. - Prioritize Artemis update over DB one. + Prioritize Artemis updates over the DB one. Args: show_popup (bool, optional): - Suppress the "already up-to-date" message on startup. - Defaults to False. + If False, suppress the "already up-to-date" message on startup. + Defaults to False. True is usefull when the user manual check for + updates. """ latest_json = self._fetch_remote_json(Constants.LATEST_VERSION_URL, show_popup) if latest_json: @@ -52,13 +55,18 @@ class UpdateManager: self.remote_db_file_name = self.remote_db_url.split('/')[-1] if is_windows(): - self.remote_art_version = latest_json['windows']['version'] + self.remote_artemis_version = latest_json['windows']['version'] + self.remote_artemis_url = latest_json['windows']['url'] elif is_linux(): - self.remote_art_version = latest_json['linux']['version'] + self.remote_artemis_version = latest_json['linux']['version'] + self.remote_artemis_url = latest_json['linux']['url'] elif is_macos(): - self.remote_art_version = latest_json['mac']['version'] + self.remote_artemis_version = latest_json['mac']['version'] + self.remote_artemis_url = latest_json['mac']['url'] + + self.remote_artemis_file_name = self.remote_artemis_url.split('/')[-1] - if Version(self.remote_art_version) > Version(Constants.APPLICATION_VERSION): + if Version(self.remote_artemis_version) > Version(Constants.APPLICATION_VERSION): self.art_update = True else: self.art_update = False @@ -77,6 +85,10 @@ class UpdateManager: def _fetch_remote_json(self, url, show_popup=False): """ Fetches the remote json from a url + + Args: + show_popup (bool, optional): If false, suppress any error message + Defaults to False (to avoid error if the program is used offline) """ try: response = requests.get(url) @@ -100,9 +112,25 @@ class UpdateManager: local_db.load() return local_db return None - + + + def download_db(self): + """ Open the downloader and download the sigID database in the + DATA_DIR folder. After a succesfull download the callback function + from the downloader is post_download_db + """ + self._parent.downloader.finished.connect(self.post_download_db) + self._parent.downloader.on_start( + self.remote_db_url, + DATA_DIR + ) + def post_download_db(self): + """ After a succesfull DB download, this function check the hash + for possible corrupted data, delete old sigID DB and extract + the new one + """ latest_db_tar_path = DATA_DIR / self.remote_db_file_name if match_hash(latest_db_tar_path, self.remote_db_hash): delete_dir(DATA_DIR / 'SigID') @@ -114,8 +142,29 @@ class UpdateManager: delete_file(latest_db_tar_path) + def download_artemis(self): + """ Open the downloader and download Artemis in the + APP_DIR folder. After a succesfull download the callback function + from the downloader is post_download_artemis + """ + self._parent.downloader.finished.connect(self.post_download_artemis) + self._parent.downloader.on_start( + self.remote_artemis_url, + APP_DIR + ) + + + def post_download_artemis(self): + """ After a succesfull Artemis download, this open the installer + and close the application + """ + if is_windows(): + open_file(APP_DIR / self.remote_artemis_file_name) + self._parent.close_ui.emit() + + def _show_popup_db_update(self): - """ Prompts the user to download the updated version of the database. + """ Prompts the user to download the updated version of the database """ self._parent.dialog_download_db( Messages.DIALOG_TYPE_WARN, @@ -133,20 +182,20 @@ class UpdateManager: self._parent.dialog_update_artemis( Messages.DIALOG_TYPE_QUEST, Messages.ART_NEW_VER, - Messages.ART_NEW_VER_AUTO_MSG.format(self.remote_art_version), + Messages.ART_NEW_VER_AUTO_MSG.format(self.remote_artemis_version), True ) else: self._parent.dialog_update_artemis( Messages.DIALOG_TYPE_QUEST, Messages.ART_NEW_VER, - Messages.ART_NEW_VER_MANUAL_MSG.format(self.remote_art_version), + Messages.ART_NEW_VER_MANUAL_MSG.format(self.remote_artemis_version), False ) def _show_popup_up_to_date(self): - """ Notifies the user that the database is up to date. + """ Notifies the user that the database is up to date """ self._parent.dialog_popup( Messages.DIALOG_TYPE_INFO, @@ -156,7 +205,7 @@ class UpdateManager: def _show_popup_initial_db_download(self): - """ Prompts the user to download the database for the first time. + """ Prompts the user to download the database for the first time """ self._parent.dialog_download_db( Messages.DIALOG_TYPE_QUEST, diff --git a/ui/Artemis.qml b/ui/Artemis.qml index c2f257c..4893877 100644 --- a/ui/Artemis.qml +++ b/ui/Artemis.qml @@ -31,8 +31,8 @@ Window { signal showCatManager() signal openSigEditor(string type, var sig_param, bool is_new) signal showSpaceWeather() - signal checkDbUpdates() - signal startDownloader() + signal checkForUpdate() + signal updateDb() signal updateArtemis() signal openDbDirectory() signal newDb(string name) @@ -137,7 +137,7 @@ Window { standardButtons: Dialog.Cancel | Dialog.Yes onAccepted: { - startDownloader() + updateDb() } } @@ -323,7 +323,7 @@ Window { MenuItem { text: "Check for Updates" - onClicked: {checkDbUpdates()} + onClicked: {checkForUpdate()} } MenuSeparator {}