added settings and fixed a bug where the autocompletion could lead to a crash if a string without slashes were to be inserted
This commit is contained in:
@@ -18,9 +18,11 @@ class AutoComplete:
|
||||
self.path = ""
|
||||
self.check = ""
|
||||
self.check_in = ""
|
||||
self.okay = True
|
||||
|
||||
def autocomplete(self, text):
|
||||
self.text = str(text)
|
||||
self.okay = True
|
||||
if self.text[len(self.text) - 2:] == "\t\n":
|
||||
self.text = self.text[:len(self.text) - 2]
|
||||
elif self.text[len(self.text) - 1:] == "\t":
|
||||
@@ -42,26 +44,32 @@ class AutoComplete:
|
||||
self.check = ""
|
||||
self.check_in = self.text
|
||||
while self.check_in[len(self.check_in) - 1:] != "/":
|
||||
self.check += str(self.check_in[len(self.check_in) - 1:])
|
||||
self.check_in = self.check_in[:len(self.check_in) - 1]
|
||||
self.check = self.check[::-1]
|
||||
for self.item in self.__command_list:
|
||||
if self.check == self.item[:len(self.check)]:
|
||||
self.__possible_completion.append(f'{self.path}{self.item}/')
|
||||
if len(self.check_in) < 1:
|
||||
self.okay = False
|
||||
else:
|
||||
pass
|
||||
if len(self.__possible_completion) < 1:
|
||||
self.__return_value = ["No such file or directory", self.text[:len(self.text)]]
|
||||
elif len(self.__possible_completion) == 1:
|
||||
self.__return_value = ["", str(self.__possible_completion.pop(0))]
|
||||
else:
|
||||
for self.items in self.__possible_completion:
|
||||
self.__return_value_assembly += f"{str(self.items)} "
|
||||
if self.__command_count > 2:
|
||||
self.__return_value_assembly += "\n"
|
||||
self.__command_count = 0
|
||||
self.check += str(self.check_in[len(self.check_in) - 1:])
|
||||
self.check_in = self.check_in[:len(self.check_in) - 1]
|
||||
if self.okay:
|
||||
self.check = self.check[::-1]
|
||||
for self.item in self.__command_list:
|
||||
if self.check == self.item[:len(self.check)]:
|
||||
self.__possible_completion.append(f'{self.path}{self.item}/')
|
||||
else:
|
||||
self.__command_count += 1
|
||||
self.__return_value.append(self.__return_value_assembly)
|
||||
self.__return_value.append(self.text[:len(self.text)])
|
||||
return self.__return_value
|
||||
pass
|
||||
if len(self.__possible_completion) < 1:
|
||||
self.__return_value = ["No such file or directory", self.text[:len(self.text)]]
|
||||
elif len(self.__possible_completion) == 1:
|
||||
self.__return_value = ["", str(self.__possible_completion.pop(0))]
|
||||
else:
|
||||
for self.items in self.__possible_completion:
|
||||
self.__return_value_assembly += f"{str(self.items)} "
|
||||
if self.__command_count > 2:
|
||||
self.__return_value_assembly += "\n"
|
||||
self.__command_count = 0
|
||||
else:
|
||||
self.__command_count += 1
|
||||
self.__return_value.append(self.__return_value_assembly)
|
||||
self.__return_value.append(self.text[:len(self.text)])
|
||||
return self.__return_value
|
||||
else:
|
||||
pass
|
||||
|
||||
@@ -46,7 +46,7 @@ RootScreen:
|
||||
<invalidpathPU>:
|
||||
title: "NOTICE!"
|
||||
font_size: 50
|
||||
size_hint: 0.5, 0.4
|
||||
size_hint: 0.7, 0.6
|
||||
auto_dismiss: False
|
||||
GridLayout:
|
||||
cols:1
|
||||
@@ -56,6 +56,9 @@ RootScreen:
|
||||
Label:
|
||||
text: "Please enter a valid path and try again"
|
||||
font_size: 15
|
||||
Label:
|
||||
text: "Please be aware, that you cannot specify any other file type other than \"Directory\""
|
||||
font_size: 12
|
||||
Button:
|
||||
text:"Ok"
|
||||
on_release:
|
||||
@@ -71,7 +74,8 @@ RootScreen:
|
||||
GridLayout:
|
||||
cols: 1
|
||||
Label:
|
||||
text: "MusicPlayer V1.0"
|
||||
id: titleapp
|
||||
text: root.initapp()
|
||||
color: app.theme_cls.primary_color
|
||||
font_size: 50
|
||||
bold: True
|
||||
|
||||
Reference in New Issue
Block a user