Task {4} - TreeView

Здравейте, бих искал някой да ме насочи.


Условие :
http://imagepastebin.appspot.com/p/ag9zfmltYWdlcGFzdGViaW5yFQsSDFVwbG9hZGVkRmlsZRjpudtnDA

http://imagepastebin.appspot.com/p/ag9zfmltYWdlcGFzdGViaW5yFQsSDFVwbG9hZGVkRmlsZRjqudtnDA

 

Скелет: https://sourceb.in/b4a7d4b5a2

Кода ми до сега : 
TreeView.h - https://sourceb.in/1a884c7e6c

File.h - https://sourceb.in/44f9a026b1

Directory.h - https://sourceb.in/a1108a24f1

Имам следният проблем със задачата : 

1. Мога да направя още 1 променлива с dynamic_pointer_cast, за да проверявам дали мога да го кастна към Shortcut и да имам отделена проверка, която да влиза в него при това условие, но мисля, че кода ще стане твърде тежък.

2. Сега заради Shortcuts ще трябва да променя рекурсията си и си нямам на идея как ще стане това оптимално, дори си помислих за нова рекурсия, обаче за shortcuts.

Някой би ли ми предложил нещо ?