From: daid303 Date: Tue, 23 Apr 2013 12:01:01 +0000 (+0200) Subject: New calls add some delay, so cache the results. X-Git-Tag: 13.05~58 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=6a09cc8eeb588484aa448849a89ef5d23a20dbba;p=cura.git New calls add some delay, so cache the results. --- diff --git a/Cura/util/removableStorage.py b/Cura/util/removableStorage.py index 0562b74d..27d5c705 100644 --- a/Cura/util/removableStorage.py +++ b/Cura/util/removableStorage.py @@ -3,12 +3,16 @@ import string import glob import os import stat +import time import subprocess try: from xml.etree import cElementTree as ElementTree except: from xml.etree import ElementTree +_removeableCache = None +_removeableCacheTime = None + def _parseStupidPListXML(e): if e.tag == 'plist': return _parseStupidPListXML(list(e)[0]) @@ -46,6 +50,10 @@ def _findInTree(t, n): return ret def getPossibleSDcardDrives(): + global _removeableCache, _removeableCacheTime + if _removeableCache is not None and time.time() - _removeableCacheTime < 5.0: + return _removeableCache + drives = [] if platform.system() == "Windows": from ctypes import windll @@ -82,6 +90,9 @@ def getPossibleSDcardDrives(): else: for volume in glob.glob('/media/*'): drives.append((os.path.basename(volume), volume, os.path.basename(volume))) + + _removeableCache = drives + _removeableCacheTime = time.time() return drives if __name__ == '__main__':