Skip to content

Commit

Permalink
Revert "treeview - windows finished"
Browse files Browse the repository at this point in the history
This reverts commit 53fc468.
  • Loading branch information
qiray committed May 25, 2018
1 parent 53fc468 commit 7587f12
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 85 deletions.
26 changes: 5 additions & 21 deletions listview.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,9 @@

class Element(object):
"""This is an object representing view storing in listview"""
def __init__(self, name, node_id, window):
def __init__(self, name, node_id):
self.node_id = node_id
self.name = name
self.window = window
self.stringnum = 0

def get_name(self):
Expand All @@ -23,7 +22,7 @@ class List(object):
def __init__(self):
self.views = {}

def add_filename(self, filename, view_id, is_file, window):
def add_filename(self, filename, view_id, is_file):
"""
Function to add view into the list
is_file param is used to differ opened files from nonfile views
Expand All @@ -32,38 +31,23 @@ def add_filename(self, filename, view_id, is_file, window):
name = arr[-1]
if not is_file:
newname = '{} (id = {})'.format(filename, view_id)
self.views[newname] = Element(newname, view_id, window)
self.views[newname] = Element(newname, view_id)
return
self.views[name] = Element(name, view_id, window)
self.views[name] = Element(name, view_id)

def __str__(self):
"""Function to draw listview"""
result = ''
templist = sorted(self.views)
templist.sort(key=lambda x: self.views[x].window.id())
stringnum = 1
win_id = 0
prev_id = 1
for node in templist:
win_id = self.views[node].window.id()
if win_id != prev_id:
result += "Hm.\n"
stringnum += 1
prev_id = win_id
result += '≡ ' + self.views[node].name + "\n"
self.views[node].stringnum = stringnum
stringnum += 1
return result

def get_action(self, stringnum):
"""Get action by string number"""
for elm in self.views:
if self.views[elm].stringnum == stringnum:
return self.views[elm].node_id
return None

def get_view_id(self, stringnum):
"""Get action by string number"""
"""Get view id by string number"""
for elm in self.views:
if self.views[elm].stringnum == stringnum:
return self.views[elm].node_id
Expand Down
4 changes: 2 additions & 2 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def generate_tree(view_list, localtree):
result = Tree()
for view in view_list:
name = view_name(view)
result.add_filename(name, view.id(), is_file=False if view.file_name() is None else True, window=view.window())
result.add_filename(name, view.id(), is_file=False if view.file_name() is None else True)
nodes = result.get_nodes()
for n in nodes:
old_node = localtree.get_node(n)
Expand All @@ -55,7 +55,7 @@ def generate_list(view_list):
result = List()
for view in view_list:
name = view_name(view)
result.add_filename(name, view.id(), is_file=False if view.file_name() is None else True, window=view.window())
result.add_filename(name, view.id(), is_file=False if view.file_name() is None else True)
return result

def draw_view(window, edit, view_object, focus=False, other_window=False):
Expand Down
55 changes: 28 additions & 27 deletions opened_files.sublime-settings
Original file line number Diff line number Diff line change
@@ -1,31 +1,32 @@
{
/*
If true then show treeview else show listview.
*/
"tree_view": true,
/*
If true then show treeview else show listview.
*/
"tree_view": true,

/*
Values for tree view:
full - always show full path,
default - don't show folders with only one child folder.
*/
"tree_size": "default",
/*
Values for tree view:
full - always show full path,
medium - show folders with the same level on the same indents,
default - don't show folders with only one child folder.
*/
"tree_size": "default",

/*
Select group to show (left or right)
*/
"group_position": "left",

"color_scheme": "Packages/OpenedFiles/opened_files.hidden-tmTheme",
"line_numbers": false,
"word_wrap": false,
"spell_check": false,
"scroll_past_end": false,
"draw_indent_guides": false,
"fold_buttons": false,
"drag_text": false,
"highlight_line": true,
"margin": 0,
"tab_size": 2,
"rulers": [],
/*
Select group to show (left or right)
*/
"group_position": "left",
"color_scheme": "Packages/OpenedFiles/opened_files.hidden-tmTheme",
"line_numbers": false,
"word_wrap": false,
"spell_check": false,
"scroll_past_end": false,
"draw_indent_guides": false,
"fold_buttons": false,
"drag_text": false,
"highlight_line": true,
"margin": 0,
"tab_size": 2,
"rulers": [],
}
48 changes: 13 additions & 35 deletions treeview.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@
class Node(object):
separator = ' '

def __init__(self, node_id, children, status, parent=None, view_id=None, win_id=0):
def __init__(self, node_id, children, status, parent=None, view_id=None):
self.node_id = node_id
self.parent = parent
self.children = children
self.status = status
self.view_id = view_id
self.stringnum = ''
self.max_parents = []
self.printed = False
self.win_id = win_id

def add_child(self, child):
if not child in self.children:
Expand Down Expand Up @@ -56,14 +56,6 @@ def __init__(self):
self.parents = {}
self.opened_views = {}
self.actions_map = ActionsMap()
plugin_settings = sublime.load_settings('opened_files.sublime-settings')
self.tree_view = plugin_settings.get('tree_view')
self.windows = {}
windows = sublime.windows()
count = 0
for win in windows:
count += 1
self.windows[win.id()] = "Window {}".format(count)

def get_nodes(self):
return self.nodes
Expand All @@ -76,16 +68,14 @@ def get_node(self, node_id):
def set_node(self, node_id, node):
self.nodes[node_id] = node

def add_filename(self, filename, view_id, is_file, window):
win_id = window.id()
filename = self.windows[window.id()] + os.sep + filename
def add_filename(self, filename, view_id, is_file):
arr = filename.split(os.sep)
length = len(arr)
if not is_file:
filename = '{} (id = {})'.format(filename, view_id)
node = Node(filename, {}, 'file', None, view_id, win_id=win_id)
self.nodes[filename] = node
self.opened_views[filename] = node
newname = '{} (id = {})'.format(filename, view_id)
node = Node(newname, {}, 'file', None, view_id)
self.nodes[newname] = node
self.opened_views[newname] = node
return
if not arr[0] in self.parents:
self.parents[arr[0]] = True
Expand All @@ -96,9 +86,9 @@ def add_filename(self, filename, view_id, is_file, window):
if name in self.nodes:
self.nodes[name].add_child(child)
else:
self.nodes[name] = Node(name, {child : True}, 'fold', os.sep.join(arr[:i - 1]), win_id=win_id)
self.nodes[name] = Node(name, {child : True}, 'fold', os.sep.join(arr[:i - 1]))
else:
self.nodes[name] = Node(name, {}, 'file', os.sep.join(arr[:i - 1]), view_id, win_id=win_id)
self.nodes[name] = Node(name, {}, 'file', os.sep.join(arr[:i - 1]), view_id)

def __str__(self):
result = ''
Expand Down Expand Up @@ -140,23 +130,11 @@ def __str__(self):
templist.sort(key=lambda x: x.split(os.sep)[-1].lower())
printed_parents = templist
for name in printed_parents:
win_id = self.nodes[name].win_id
window = self.windows[win_id]
length = 0
if name != window: #draw window
node = self.nodes[window]
result += node.get_name() + '\n'
stringnum += 1
self.actions_map.add_action(node)
length = 1
if node.status == 'unfold':
continue
temp, stringnum = self.nodes[name].print_children(self.nodes, self.actions_map, length, stringnum)
temp, stringnum = self.nodes[name].print_children(self.nodes, self.actions_map, 0, stringnum)
result += temp
for name in self.opened_views:
temp, stringnum = self.opened_views[name].print_children(self.opened_views, self.actions_map, 0, stringnum)
result += temp
for name in self.opened_views: #draw non-files views
if self.nodes[name].win_id == win_id:
temp, stringnum = self.opened_views[name].print_children(self.opened_views, self.actions_map, 1, stringnum)
result += temp
return result

def get_action(self, number):
Expand Down

0 comments on commit 7587f12

Please sign in to comment.