Update comment and flake8 listview.py

This commit is contained in:
Calum Lind 2014-02-20 19:16:53 +00:00
parent 881da401e1
commit 5e2f6b0f40
1 changed files with 26 additions and 36 deletions

View File

@ -38,17 +38,15 @@ import logging
import pygtk
pygtk.require('2.0')
import gtk
from gobject import signal_new, SIGNAL_RUN_LAST, TYPE_NONE
import deluge.common
from deluge.ui.gtkui.common import save_pickled_state_file, load_pickled_state_file
from gobject import signal_new, SIGNAL_RUN_LAST, TYPE_NONE
from gtk import gdk
signal_new('button-press-event', gtk.TreeViewColumn,
SIGNAL_RUN_LAST, TYPE_NONE, (gdk.Event,))
signal_new('button-press-event', gtk.TreeViewColumn, SIGNAL_RUN_LAST, TYPE_NONE, (gtk.gdk.Event,))
log = logging.getLogger(__name__)
class ListViewColumnState:
"""Used for saving/loading column state"""
def __init__(self, name, position, width, visible, sort, sort_order):
@ -59,6 +57,7 @@ class ListViewColumnState:
self.sort = sort
self.sort_order = sort_order
class ListView:
"""ListView is used to make custom GtkTreeViews. It supports the adding
and removing of columns, creating a menu for a column toggle list and
@ -213,6 +212,7 @@ class ListView:
def on_model_sort_changed(self, model):
if self.unique_column_id:
self.last_sort_order = {}
def record_position(model, path, iter, data):
self.last_sort_order[model[iter][self.unique_column_id]] = path[0]
model.foreach(record_position, None)
@ -262,9 +262,8 @@ class ListView:
if self.get_column_name(sort_id) == column.get_title():
sort = sort_id
return ListViewColumnState(column.get_title(), position,
column.get_width(), column.get_visible(),
sort, int(column.get_sort_order()))
return ListViewColumnState(column.get_title(), position, column.get_width(),
column.get_visible(), sort, int(column.get_sort_order()))
def save_state(self, filename):
"""Saves the listview state (column positions and visibility) to
@ -273,7 +272,8 @@ class ListView:
state = []
# Workaround for all zero widths after removing column on shutdown
if not any(c.get_width() for c in self.treeview.get_columns()): return
if not any(c.get_width() for c in self.treeview.get_columns()):
return
# Get the list of TreeViewColumns from the TreeView
for counter, column in enumerate(self.treeview.get_columns()):
@ -308,7 +308,7 @@ class ListView:
def get_state_field_column(self, field):
"""Returns the column number for the state field"""
for column in self.columns.keys():
if self.columns[column].status_field == None:
if self.columns[column].status_field is None:
continue
for f in self.columns[column].status_field:
@ -332,7 +332,6 @@ class ListView:
if event.button == 3:
self.menu.popup(None, None, None, event.button, event.get_time())
def register_checklist_menu(self, menu):
"""Register a checklist menu with the listview. It will automatically
attach any new checklist menu it makes to this menu.
@ -423,9 +422,9 @@ class ListView:
return
def add_column(self, header, render, col_types, hidden, position,
status_field, sortid, text=0, value=0, pixbuf=0, function=None,
column_type=None, sort_func=None, tooltip=None, default=True,
unique=False, default_sort=False):
status_field, sortid, text=0, value=0, pixbuf=0, function=None,
column_type=None, sort_func=None, tooltip=None, default=True,
unique=False, default_sort=False):
"""Adds a column to the ListView"""
# Add the column types to liststore_columns
column_indices = []
@ -466,39 +465,31 @@ class ListView:
if column_type == "text":
column.pack_start(render)
column.add_attribute(render, "text",
self.columns[header].column_indices[text])
column.add_attribute(render, "text", self.columns[header].column_indices[text])
elif column_type == "bool":
column.pack_start(render)
column.add_attribute(render, "active",
self.columns[header].column_indices[0])
column.add_attribute(render, "active", self.columns[header].column_indices[0])
elif column_type == "func":
column.pack_start(render, True)
if len(self.columns[header].column_indices) > 1:
column.set_cell_data_func_attributes(render, function,
tuple(self.columns[header].column_indices))
column.set_cell_data_func_attributes(render, function, tuple(self.columns[header].column_indices))
else:
column.set_cell_data_func_attributes(render, function,
self.columns[header].column_indices[0])
column.set_cell_data_func_attributes(render, function, self.columns[header].column_indices[0])
elif column_type == "progress":
column.pack_start(render)
if function is None:
column.add_attribute(render, "text",
self.columns[header].column_indices[text])
column.add_attribute(render, "value",
self.columns[header].column_indices[value])
column.add_attribute(render, "text", self.columns[header].column_indices[text])
column.add_attribute(render, "value", self.columns[header].column_indices[value])
else:
column.set_cell_data_func_attributes(render, function,
tuple(self.columns[header].column_indices))
column.set_cell_data_func_attributes(render, function, tuple(self.columns[header].column_indices))
elif column_type == "texticon":
column.pack_start(render[pixbuf], False)
if function is not None:
column.set_cell_data_func_attributes(render[pixbuf], function,
self.columns[header].column_indices[pixbuf])
self.columns[header].column_indices[pixbuf])
column.pack_start(render[text], True)
column.add_attribute(render[text], "text",
self.columns[header].column_indices[text])
elif column_type == None:
column.add_attribute(render[text], "text", self.columns[header].column_indices[text])
elif column_type is None:
return
column.set_sort_column_id(self.columns[header].column_indices[sortid])
@ -516,7 +507,7 @@ class ListView:
# Check for loaded state and apply
column_in_state = False
if self.state != None:
if self.state is not None:
for column_state in self.state:
if header == column_state.name:
# We found a loaded state
@ -622,6 +613,7 @@ class ListView:
# No state file exists, so, no reordering can be done
return
columns = self.treeview.get_columns()
def find_column(header):
for column in columns:
if column.get_title() == header:
@ -639,9 +631,7 @@ class ListView:
try:
column_at_position = columns[col_state.position]
except IndexError:
# While updating the multiuser branch, which adds a new column
# an IndexError was raised, just continue processing, once
# deluge is restarted, it all should be good
# Ignore extra columns from Plugins in col_state
continue
if col_state.name == column_at_position.get_title():
# It's in the right position