Skip to content

Commit

Permalink
Merge pull request Tribler#546 from NielsZeilemaker/horizontal_scroll
Browse files Browse the repository at this point in the history
Vertical scroll renamed to Horizontal scroll
  • Loading branch information
egbertbouman committed Apr 10, 2014
2 parents 94c7054 + d199676 commit 2f4bd63
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 24 deletions.
10 changes: 7 additions & 3 deletions Tribler/Main/vwxGUI/home.py
Original file line number Diff line number Diff line change
Expand Up @@ -821,10 +821,10 @@ def __init__(self, parent):
self.utility = self.guiutility.utility
self.OnExpand = lambda *args: None
self.OnCollapse = lambda *args: None
self.update_interval = 300
self.update_interval = 120
self.max_torrents = 20

self.list = ListBody(self, self, [{'width': wx.LIST_AUTOSIZE}], 0, 0, True, False, grid_columns=self.max_torrents, vertical_scroll=True)
self.list = ListBody(self, self, [{'width': wx.LIST_AUTOSIZE}], 0, 0, True, False, grid_columns=self.max_torrents, horizontal_scroll=True)
self.list.SetBackgroundColour(self.GetBackgroundColour())

vSizer = wx.BoxSizer(wx.VERTICAL)
Expand All @@ -848,7 +848,11 @@ def GetData(self):

self.SetData(data)

startWorker(None, self.GetData, delay=self.update_interval, workerType="guiTaskQueue")
if len(torrents) < self.max_torrents:
interval = self.update_interval / 2
else:
interval = self.update_interval
startWorker(None, self.GetData, delay=interval, workerType="guiTaskQueue")

@forceWxThread
def SetData(self, data):
Expand Down
47 changes: 26 additions & 21 deletions Tribler/Main/vwxGUI/list_body.py
Original file line number Diff line number Diff line change
Expand Up @@ -515,7 +515,7 @@ def __str__(self):
class AbstractListBody():

@warnWxThread
def __init__(self, parent_list, columns, leftSpacer=0, rightSpacer=0, singleExpanded=False, showChange=False, list_item_max=None, hasFilter=True, listRateLimit=LIST_RATE_LIMIT, grid_columns=0, vertical_scroll=False):
def __init__(self, parent_list, columns, leftSpacer=0, rightSpacer=0, singleExpanded=False, showChange=False, list_item_max=None, hasFilter=True, listRateLimit=LIST_RATE_LIMIT, grid_columns=0, horizontal_scroll=False):
self._logger = logging.getLogger(self.__class__.__name__)

self.columns = columns
Expand All @@ -531,7 +531,7 @@ def __init__(self, parent_list, columns, leftSpacer=0, rightSpacer=0, singleExpa
list_item_max = LIST_ITEM_MAX_SIZE
self.list_item_max = list_item_max
self.list_cur_max = self.list_item_max
self.vertical_scroll = vertical_scroll
self.horizontal_scroll = horizontal_scroll

self.hasFilter = hasFilter

Expand All @@ -540,7 +540,9 @@ def __init__(self, parent_list, columns, leftSpacer=0, rightSpacer=0, singleExpa

# vertical sizer containing all items
self.grid_columns = grid_columns
if self.grid_columns > 0:
if self.horizontal_scroll:
self.vSizer = wx.BoxSizer(wx.HORIZONTAL)
elif self.grid_columns > 0:
self.vSizer = wx.FlexGridSizer(0, self.grid_columns, 0, 0)
else:
self.vSizer = wx.BoxSizer(wx.VERTICAL)
Expand All @@ -551,7 +553,7 @@ def __init__(self, parent_list, columns, leftSpacer=0, rightSpacer=0, singleExpa
self.listpanel.SetSizer(sizer)

hSizer = wx.BoxSizer(wx.HORIZONTAL)
hSizer.Add(self.listpanel, 1)
hSizer.Add(self.listpanel, 1, wx.EXPAND if self.horizontal_scroll else 0, 0)
self.SetSizer(hSizer)

# messagePanel text
Expand Down Expand Up @@ -756,7 +758,7 @@ def OnChange(self, scrollToTop=False):
self.Layout()

# Determine scrollrate
if not self.vertical_scroll:
if not self.horizontal_scroll:
nritems = len(self.vSizer.GetChildren())
if self.rate is None or nritems <= LIST_ITEM_BATCH_SIZE * 3:
if nritems > 0:
Expand Down Expand Up @@ -1044,19 +1046,25 @@ def OnLoadAll(self):
def CreateItem(self, key):
if not key in self.items and self.data:
for curdata in self.data:
if len(curdata) > 3:
thiskey, item_data, original_data, create_method = curdata[:4]
else:
thiskey, item_data, original_data = curdata
create_method = ListItem
if key == curdata[0]:
if len(curdata) > 3:
_, item_data, original_data, create_method = curdata[:4]
else:
_, item_data, original_data = curdata
create_method = ListItem

if key == thiskey:
self.items[key] = create_method(self.listpanel, self, self.columns, item_data, original_data, self.leftSpacer, self.rightSpacer, showChange=self.showChange, list_selected=self.list_selected, list_expanded=self.list_expanded)
break

self.vSizer.Add(self.items[key], 0, wx.EXPAND | wx.BOTTOM, 1)
if key in self.items:
item = self.items[key]
sizer = self.vSizer.GetItem(item) if item else True
if not sizer:
self.vSizer.Add(item, 0, wx.EXPAND | wx.BOTTOM, 1)
item.Show()

self.OnChange()
return True
self.OnChange()
return True
return False

@warnWxThread
Expand Down Expand Up @@ -1226,10 +1234,7 @@ def GetExpandedItems(self):
@warnWxThread
def Select(self, key, raise_event=True):
# check if we need to create this item on the spot
if not key in self.items:
self.CreateItem(key)

if key in self.items:
if self.CreateItem(key):
if not self.items[key].expanded:
if self.singleExpanded:
self.DeselectAll()
Expand Down Expand Up @@ -1302,7 +1307,7 @@ def OnEventSize(self, event):

self.Thaw()

if not self.vertical_scroll and self.grid_columns > 0 and self.items:
if not self.horizontal_scroll and self.grid_columns > 0 and self.items:
column_width = self.items.values()[0].GetSize().x
viewable_width = self.listpanel.GetParent().GetSize().x

Expand Down Expand Up @@ -1331,9 +1336,9 @@ def SetGrid(self, enable):

class ListBody(AbstractListBody, scrolled.ScrolledPanel):

def __init__(self, parent, parent_list, columns, leftSpacer=0, rightSpacer=0, singleExpanded=False, showChange=False, list_item_max=LIST_ITEM_MAX_SIZE, listRateLimit=LIST_RATE_LIMIT, grid_columns=0, vertical_scroll=False):
def __init__(self, parent, parent_list, columns, leftSpacer=0, rightSpacer=0, singleExpanded=False, showChange=False, list_item_max=LIST_ITEM_MAX_SIZE, listRateLimit=LIST_RATE_LIMIT, grid_columns=0, horizontal_scroll=False):
scrolled.ScrolledPanel.__init__(self, parent)
AbstractListBody.__init__(self, parent_list, columns, leftSpacer, rightSpacer, singleExpanded, showChange, listRateLimit=listRateLimit, list_item_max=list_item_max, grid_columns=grid_columns, vertical_scroll=vertical_scroll)
AbstractListBody.__init__(self, parent_list, columns, leftSpacer, rightSpacer, singleExpanded, showChange, listRateLimit=listRateLimit, list_item_max=list_item_max, grid_columns=grid_columns, horizontal_scroll=horizontal_scroll)

homeId = wx.NewId()
endId = wx.NewId()
Expand Down
2 changes: 2 additions & 0 deletions Tribler/Main/vwxGUI/list_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -956,6 +956,8 @@ def ShortenText(statictext, text):
return newText
return ""

self.vSizer.AddStretchSpacer()

name = wx.StaticText(self, -1, '')
name.SetLabel(ShortenText(name, self.original_data.name))
self.AddEvents(name)
Expand Down

0 comments on commit 2f4bd63

Please sign in to comment.