Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions dropdown.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ def __init__(self,frame=(0,0,300,32),name='dropdown', items=[]):
self.button.action=self.open_finder

self.base=os.path.expanduser('~/Documents')
self.icloudpath='/private/var/mobile/Library/Mobile Documents/iCloud~com~omz-software~Pythonista3/Documents'
self._abort=False
self.items=items
self.button.flex='l'
Expand Down Expand Up @@ -131,7 +132,7 @@ def action(self,value):
if __name__=='__main__':
d=DropdownView()

def file_generator(base=os.path.expanduser('~/Documents'),abortfcn=None):
def file_generator(base,icloud,abortfcn=None):
if not abortfcn:
abortfcn=lambda : False
def iterfn():
Expand All @@ -145,4 +146,4 @@ def iterfn():

d.items=file_generator(abortfcn=d.abort)

d.present()
d.present()
16 changes: 12 additions & 4 deletions gitui.py
Original file line number Diff line number Diff line change
Expand Up @@ -224,13 +224,17 @@ def scrollview_did_scroll(self, scrollview):
self.refresh()

#Get the parent git repo, if there is one
def _repo_path(self):
return os.path.join(self.view['repo'].base, self.view['repo'].text)
def _repo_path(self, path):
repo_path = os.path.join(path, self.view['repo'].text)
return repo_path

def _get_repo(self):
try:
repopath=self._repo_path()
repopath=self._repo_path(self.view['repo'].base)
repobase=self._find_repo(repopath)
if repobase is None:
repopath=self._repo_path(self.view['repo'].icloudpath)
repobase=self._find_repo(repopath)
if repobase:
return Gittle(repobase)
except:
Expand Down Expand Up @@ -635,13 +639,16 @@ def log_action(self, sender):
import show_log
show_log.main(self)

def icloud_switch(self, sender):
fdd.icloud = sender.value


r=repoView()
v=ui.load_view('gitui')
r.view=v
fdd=v['repo']
fdd.filter='.git'
fdd.icloud=v['icloud_switch'].value
fdd.textfield.action=r.did_select_repo
v['branch'].items=r.branch_iterator
v['remotebranch'].items=r.remote_branches_iterator
Expand All @@ -656,6 +663,7 @@ def log_action(self, sender):
v['new'].action=r.new_action
v['resetPW'].action=r.resetPW
v['log'].action=r.log_action
v['icloud_switch'].action=r.icloud_switch
#load current repo
editorpath=os.path.split(editor.get_path())[0]
if editorpath.startswith('/var'):
Expand All @@ -668,4 +676,4 @@ def log_action(self, sender):

v.present('panel')
if v['repo'].text:
r.did_select_repo(v['repo'])
r.did_select_repo(v['repo'])
13 changes: 11 additions & 2 deletions repo_finder.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import dropdown, os, fnmatch
class FilteredDirDropdown(dropdown.DropdownView):
def __init__(self,frame=(0,0,300,32),name='dropdown', filter='*',base=os.path.expanduser('~/Documents'), exclude='.Trash'):
def __init__(self,frame=(0,0,300,32),name='dropdown', filter='*',base=os.path.expanduser('~/Documents'), icloud=False, exclude='.Trash'):
self.frame=frame
self.filter=filter
self.base=base
self.icloudpath='/private/var/mobile/Library/Mobile Documents/iCloud~com~omz-software~Pythonista3/Documents'
self.icloud=icloud
self.exclude=exclude
super(type(self),self).__init__(
frame=frame,
Expand All @@ -17,4 +19,11 @@ def path_generator(self):
if self.abort():
return
if fnmatch.fnmatch(d,self.filter) and self.exclude not in rootpath:
yield os.path.relpath(rootpath,self.base)
yield os.path.relpath(rootpath,self.base)
if self.icloud:
for rootpath,dirs,_ in os.walk(self.icloudpath):
for d in dirs:
if self.abort():
return
if fnmatch.fnmatch(d,self.filter) and self.exclude not in rootpath:
yield os.path.relpath(rootpath,self.icloudpath)