Skip to content

Commit

Permalink
merged
Browse files Browse the repository at this point in the history
  • Loading branch information
dougransom committed Mar 2, 2024
2 parents b2056eb + 5b6fec3 commit 76d4783
Show file tree
Hide file tree
Showing 8 changed files with 38 additions and 547 deletions.
79 changes: 38 additions & 41 deletions src/unimacro/UnimacroGrammars/_folders.py
Original file line number Diff line number Diff line change
Expand Up @@ -312,10 +312,11 @@ def fillInstanceVariables(self):
# track recent folder at gotbegin or with timer:
## callback time in seconds:
optionsdict['timer track folders interval'] = ''
interval = self.ini.getInt('general', 'timer track folders interval', 4) # default 4 sec
interval = self.ini.getInt('general', 'timer track folders interval', 0) # default 0 (off).
if interval and interval > 100:
print(f'_folders, warning, "timer track folders interval" should be set in seconds, not {interval}')
interval = 0
self.trackFoldersTimerInterval = int(interval*1000) # give in seconds
if self.trackFoldersTimerInterval:
print(f'track active folder as "recent" every {self.trackFoldersTimerInterval} milliseconds')
self.recentfoldersDict = {}

self.trackRecentFoldersAtUtterance = self.ini.getBool('general', 'track recent folders at utterance')
Expand Down Expand Up @@ -458,7 +459,7 @@ def checkValidOptions(self, optionsdict, actualoptions):
break
unusedoptions = validoptions - actualoptions
for unused in unusedoptions:
print(f'unset option for _folders: "{unused}",\n\tplease set (possibly without value), section [general]')
print(f'-- option "{unused}" is not set, grammar "_folders",\n\tplease set (possibly without value) in section [general]')

def fillGrammarLists(self, listOfLists=None):
"""fills the lists of the grammar with data from inifile
Expand Down Expand Up @@ -576,35 +577,15 @@ def getActiveFolder(self, hndle=None, className=None):

if className == "CabinetWClass":
f = mess.getFolderFromCabinetWClass(hndle)
# if f and f.startswith("search-ms"):
# keystroke("{esc}")
# unimacroutils.Wait()
# f = mess.getFolderFromDialog(hndle, className)
if not f:
print("getActiveFolder, CabinetWClass failed: %s"% hndle)
elif className == '#32770':
f = mess.getFolderFromDialog(hndle, className)
if not f:
return None
# if not f:
# print "getActiveFolder, #32770 failed: %s"% hndle
else:
# print 'class for activeFolder: %s'% className
return None
if not f:
if className == 'CabinetWClass':
print('_folders, getActiveFolder, no folder found in className %s'% className)
return None
if os.path.isdir(f):
nf = os.path.normpath(f)
# print("getActiveFolder: %s"% nf)
return nf
# print("folder in getActiveFolder: %s"% f)
realFolder = extenvvars.getFolderFromLibraryName(f)
if realFolder:
# print("getActiveFolder realFolder for %s: %s"% (f, realFolder))
return realFolder
print('_folders, getActiveFolder, could not find folder for %s'% f)
print(f'getActiveFolder, strange invalid path for folder: "{f}"' )
return None

def fillListsForActiveFolder(self, activeFolder):
Expand Down Expand Up @@ -782,15 +763,17 @@ def manageRecentFolders(self, Spoken, Folder):
"""
# first see if the buffer needs to be shrinked:
buffer = max(10, self.maxRecentFolders//10)
if len(self.recentfoldersDict) > self.maxRecentFolders + buffer:
print("shrink recentfoldersDict with %s items to %s"% (buffer, self.maxRecentFolders))
while len(self.recentfoldersDict) >= self.maxRecentFolders:
keysList = list(self.recentfoldersDict.keys())
_removeItem = self.recentfoldersDict.pop(keysList[0])
# print('_folders, remove from recent folders: %s (%s)'% (keysList[0], removeItem))
# print("refilling recentfolders list with %s items'"% len(self.recentfoldersDict))
self.setList('recentfolders', list(self.recentfoldersDict.keys()))
self.dumpRecentFoldersDict()
print(f'manageRecentFolders buffer: {buffer}, self.maxRecentFolders: {self.maxRecentFolders}, len(recentfoldersDict): {len(self.recentfoldersDict)}')
if self.recentfoldersDict:
if len(self.recentfoldersDict) > self.maxRecentFolders + buffer:
print("shrink recentfoldersDict with %s items to %s"% (buffer, self.maxRecentFolders))
while len(self.recentfoldersDict) >= self.maxRecentFolders:
keysList = list(self.recentfoldersDict.keys())
_removeItem = self.recentfoldersDict.pop(keysList[0])
# print('_folders, remove from recent folders: %s (%s)'% (keysList[0], removeItem))
# print("refilling recentfolders list with %s items'"% len(self.recentfoldersDict))
self.setList('recentfolders', list(self.recentfoldersDict.keys()))
self.dumpRecentFoldersDict()

if not Spoken:
return
Expand All @@ -817,16 +800,25 @@ def manageRecentFolders(self, Spoken, Folder):
def startRecentFolders(self):
self.doTrackRecentFolders = True
self.fillList('recentfolders')
timerInterval = self.trackFoldersTimerInterval
if timerInterval:
print(f'start timer interval {timerInterval} milliseconds')
else:
timerInterval = 1000
print(f'start timer with interval {timerInterval} milliseconds, for this session only')
natlinktimer.setTimerCallback(self.catchTimerRecentFolders, self.trackFoldersTimerInterval) # should have milliseconds
print("the track recent folders timer is started")

def stopRecentFolders(self):
self.doTrackRecentFolders = False
natlinktimer.setTimerCallback(self.catchTimerRecentFolders, 0)
self.dumpRecentFoldersDict()
self.recentfoldersDict = {}
self.emptyList('recentfolders')
print("the track recent folders timer is stopped, the recentfolder list is emptied")
if self.trackFoldersTimerInterval:
print("the track recent folders timer is stopped, for this session")
else:
print("the track recent folders timer is stopped.")


def resetRecentFolders(self):
self.recentfoldersDict = {}
Expand Down Expand Up @@ -2414,12 +2406,17 @@ def unload():
thisGrammar = ThisGrammar(inifile_stem="_folders")
# thisGrammar.startInifile()
thisGrammar.initialize()

# get hndle of a explore window (via _general "give window info") and try interactive
thisGrammar.catchTimerRecentFolders(132524, "CabinetWClass")
Words = ['folder', 'dtactions']
Fr = {}
thisGrammar.gotResultsInit(Words, Fr)
thisGrammar.gotResults_folder(Words, Fr)
# thisGrammar.catchTimerRecentFolders(132524, "CabinetWClass")
thisGrammar.getActiveFolder(198518)


# # Words = ['folder', 'dtactions']
# Fr = {}
# Words = ['subfolder', 'hello']
# thisGrammar.gotResultsInit(Words, Fr)
# thisGrammar.gotResults_subfolder(Words, Fr)
finally:
thisGrammar.unload()
natlink.natDisconnect()
Expand Down
31 changes: 0 additions & 31 deletions src/unimacro/sample_ini/enx_inifiles/_brackets.ini

This file was deleted.

37 changes: 0 additions & 37 deletions src/unimacro/sample_ini/enx_inifiles/_clickbyvoice.ini

This file was deleted.

120 changes: 0 additions & 120 deletions src/unimacro/sample_ini/enx_inifiles/_folders.ini

This file was deleted.

Loading

0 comments on commit 76d4783

Please sign in to comment.