@cvp said:
@DavinE said:
I Think the easyest way to reload is close the picker and Open it again
Sure, but you want to reload while it is presented..aren't you?
Yes, That is right
@cvp said:
And we don't see how you use your structfolder dict in TreeNode and TreeDialogController
I do nothing other like the original file-picker.py but i can Post it:
Class TreeNode:
#FUNKTION Class TreeNode
class TreeNode(TreeNode):
#FUNKTION __init__
def __init__(
self,
customer_folder,
path=None,
level=0,
can_delete=None,
can_move=None,
can_rename=None,
can_add=None,
is_folder=None
):
TreeNode.__init__(self)
self.CUSTOMER_FOLDER = customer_folder
self.path = path
self.level = level
self.can_delete = can_delete
self.can_move = can_move
self.can_rename = can_rename
self.can_add = can_add
self.is_folder = is_folder
if path:
self.title = os.path.split(path)[1]
else:
self.title = 'Kundenordner anpassen'
self.leaf = path and len(os.path.splitext(path)[1]) > 0
self.icon_name = 'FileOther' if self.leaf else 'Folder'
# Setzt gewisse Eingenschaften was mit dem Objekt gemacht werden darf und was nicht!
if self.level is 1:
self.can_delete = False
self.can_move = False
self.can_rename = False
self.can_add = True
self.is_folder = True
else:
self.can_delete = True
self.can_move = True
self.can_rename = True
self.can_add = False if self.leaf else True
self.is_folder = False if self.leaf else True
if not self.path is None and self.path != list(self.CUSTOMER_FOLDER)[0]:
MariaDB()
try:
cursor_SQL.execute(
"""
SELECT
ID,
structure_set_path
FROM folder_structure
WHERE structure_name = %s
""",
[
self.path,
],
)
for datanorm_ID, datanorm_structure_set_path in cursor_SQL.fetchall():
self.ID = datanorm_ID
self.set_path = datanorm_structure_set_path
except mysql.connector.Error as e:
#CHANGES Hier muss noch der Fehler ausgegeben werden!!!
print(f'SELECT `version`, `build`, `update_needed` FROM `version` WHERE `file`= app:\n{e}')
sound.play_effect(play_sound('play_effect', 'mysql', 'error'))
console.alert('mysql.connector', 'Der Abruf des Versionstandes konnte nicht ausgeführt werden.\nFehlerausgabe im Terminal', hide_cancel_button=False)
finally:
cursor_SQL.close()
connection_SQL.close()
#FUNKTION expand_children
def expand_children(self):
print(f'self.path -- {self.path}')
print(f'self.level -- {self.level}')
if self.path is None:
names = [list(self.CUSTOMER_FOLDER)[0]]
else:
if self.path in self.CUSTOMER_FOLDER:
names = self.CUSTOMER_FOLDER[self.path]
else:
names = ''
print(names)
self.children = [FTPTreeNode(self.CUSTOMER_FOLDER, name, self.level+1) for name in names]
print(type(self.children))
print(self.children)
self.expanded = True
TreeDialogController:
class TreeDialogController(object):
#FUNKTION __init__
def __init__(
self,
root_node,
content_area,
main_content,
device,
customer_folder,
customerSettingPath,
sectionAdaptCustomer,
regUserLabel,
):
self.content_area = content_area
self.main_content = main_content
self.DEVICE = device
self.CUSTOMER_FOLDER = customer_folder
self.customerSettingPath = customerSettingPath
self.sectionAdaptCustomer = sectionAdaptCustomer
self.regUserLabel = regUserLabel
self.table_view = ui.TableView()
self.table_view.content_inset = (0, 0, 50, 0)
self.table_view.data_source = self
self.table_view.delegate = self
self.table_view.flex = 'WH'
self.table_view.allows_selection_during_editing = True
self.table_view.tint_color = 'grey'
self.view = ui.View()
self.view.name = root_node.title
self.root_node = root_node
self.entries = []
self.flat_entries = []
self.expand_root()