So, I found a tutorial on creating a file browser using Gtk.TreeView but I'm facing a problem, when I select a file inside a folder I cant get the file's full path. I can get the model path but I don't know what to do with it.
This is my project tree:
. ├── browser │ ├── index.html │ └── markdown.min.js ├── compiler.py ├── ide-preview.png ├── __init__.py ├── main.py ├── __pycache__ │ ├── compiler.cpython-35.pyc │ └── welcomeWindow.cpython-35.pyc ├── pyide-settings.json ├── README.md ├── resources │ └── icons │ ├── git-branch.svg │ ├── git-branch-uptodate.svg │ └── git-branch-waitforcommit.svg ├── test.py ├── WelcomeWindow.glade └── welcomeWindow.py When I click on main.py the path is 4, but if I click on browser/markdown.min.js I get 0:1.
In my code I check if the path's length (I split the path by ':') is bigger than 1, if not I open the file normally, if it is... This is where I'm stuck. Anyone can help?
Here is my TreeSelection on changed function:
def onRowActivated(self, selection): # print(path.to_string()) # Might do the job... model, row = selection.get_selected() if row is not None: # print(model[row][0]) path = model.get_path(row).to_string() pathArr = path.split(':') fileFullPath = '' if not os.path.isdir(os.path.realpath(model[row][0])): # self.openFile(os.path.realpath(model[row][0])) if len(pathArr) <= 1: self.openFile(os.path.realpath(model[row][0])) else: # Don't know what to do! self.languageLbl.set_text('Language: {}'.format(self.sbuff.get_language().get_name())) else: print('None') Full code is available at https://github.com/raggesilver/PyIDE/blob/master/main.py
Edit 1: Just to be more specific, my problem is that when I get the name of the file from the TreeView, I can't get the path before it, so I get index.html instead of browser/index.html.
self.openFile(os.path.realpath(model[row][0]))?