peer_view and file_view
This commit is contained in:
parent
f9ee7f4255
commit
625435646a
62
delugegtk.py
62
delugegtk.py
|
@ -73,16 +73,7 @@ class DelugeGTK:
|
||||||
self.view.set_rules_hint(True)
|
self.view.set_rules_hint(True)
|
||||||
|
|
||||||
|
|
||||||
## Still a lot of work to be done here,
|
## Initializes the columns for the torrent_view
|
||||||
## this column is here as an example of how
|
|
||||||
## to create and add columns. Perhaps I
|
|
||||||
## should create some sort of ColumnsManager
|
|
||||||
## object in dgtk to keep the code cleaner
|
|
||||||
## and also confine column code to one place.
|
|
||||||
## I'm worrying about columns way too much
|
|
||||||
## because that was one of the main places
|
|
||||||
## Deluge's code (up to 0.4) got way out of
|
|
||||||
## hand.
|
|
||||||
|
|
||||||
self.queue_column = dgtk.add_text_column(self.view, "#", 1)
|
self.queue_column = dgtk.add_text_column(self.view, "#", 1)
|
||||||
self.name_column = dgtk.add_text_column(self.view, "Name", 2)
|
self.name_column = dgtk.add_text_column(self.view, "Name", 2)
|
||||||
|
@ -95,6 +86,32 @@ class DelugeGTK:
|
||||||
self.eta_column = dgtk.add_text_column(self.view, "ETA", 10)
|
self.eta_column = dgtk.add_text_column(self.view, "ETA", 10)
|
||||||
self.share_column = dgtk.add_text_column(self.view, "Share Ratio", 11)
|
self.share_column = dgtk.add_text_column(self.view, "Share Ratio", 11)
|
||||||
|
|
||||||
|
self.status_column.set_expand(True)
|
||||||
|
|
||||||
|
self.file_view = self.wtree.get_widget("file_view")
|
||||||
|
self.file_store = gtk.ListStore(str, bool)
|
||||||
|
self.file_view.set_model(self.file_store)
|
||||||
|
|
||||||
|
self.filename_column = dgtk.add_text_column(self.file_view, "Filename", 0)
|
||||||
|
self.filetoggle_column = dgtk.add_toggle_column(self.file_view, "DL?", 0)
|
||||||
|
|
||||||
|
self.filename_column.set_expand(True)
|
||||||
|
|
||||||
|
self.peer_view = self.wtree.get_widget("peer_view")
|
||||||
|
self.peer_store = gtk.ListStore(str, str, str, str, str)
|
||||||
|
self.peer_view.set_model(self.peer_store)
|
||||||
|
|
||||||
|
self.peer_ip_column = dgtk.add_text_column(self.peer_view, "IP Address", 0)
|
||||||
|
self.peer_client_column = dgtk.add_text_column(self.peer_view, "Client", 1)
|
||||||
|
## Note: change this column to use a progress column before 0.5 is released
|
||||||
|
self.peer_complete_column = dgtk.add_text_column(self.peer_view, "Percent Complete", 2)
|
||||||
|
self.peer_download_column = dgtk.add_text_column(self.peer_view, "Download Rate", 3)
|
||||||
|
self.peer_upload_column = dgtk.add_text_column(self.peer_view, "Upload Rate", 4)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Interface created
|
## Interface created
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
|
@ -116,15 +133,24 @@ class DelugeGTK:
|
||||||
|
|
||||||
## For testing purposes, create a copy of the interface
|
## For testing purposes, create a copy of the interface
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
d = DelugeGTK()
|
deluge = DelugeGTK()
|
||||||
## Add an example line
|
|
||||||
|
|
||||||
## Test the interface by adding a few fake torrents
|
## Test the interface by adding a few fake torrents
|
||||||
d.store.append([0,1,"Deluge Torrent","700MB",50,"Downloading","10 (50)", "15 (30)", "50 KB/s", "10 KB/s", "2 h", "100%"])
|
deluge.store.append([0,1,"Deluge Torrent","700MB",50,"Downloading","10 (50)", "15 (30)", "50 KB/s", "10 KB/s", "2 h", "100%"])
|
||||||
d.store.append([1,2,"Sample Torrent","350MB",75,"Queued","10 (20)","20 (20)","0 KB/s", "0 KB/s", "und", "0%"])
|
deluge.store.append([1,2,"Sample Torrent","350MB",75,"Queued","10 (20)","20 (20)","0 KB/s", "0 KB/s", "und", "0%"])
|
||||||
d.store.append([2,3,"Deluge Torrent","700MB",55,"Downloading","10 (50)", "15 (30)", "50 KB/s", "10 KB/s", "2 h", "300%"])
|
deluge.store.append([2,3,"Deluge Torrent","700MB",55,"Downloading","10 (50)", "15 (30)", "50 KB/s", "10 KB/s", "2 h", "300%"])
|
||||||
d.store.append([3,4,"Sample Torrent","350MB",65,"Queued","10 (20)","20 (20)","0 KB/s", "0 KB/s", "und", "10%"])
|
deluge.store.append([3,4,"Sample Torrent","350MB",65,"Queued","10 (20)","20 (20)","0 KB/s", "0 KB/s", "und", "10%"])
|
||||||
d.store.append([4,5,"Deluge Torrent","700MB",50,"Downloading","10 (50)", "15 (30)", "50 KB/s", "10 KB/s", "2 h", "120%"])
|
deluge.store.append([4,5,"Deluge Torrent","700MB",50,"Downloading","10 (50)", "15 (30)", "50 KB/s", "10 KB/s", "2 h", "120%"])
|
||||||
d.store.append([5,6,"Sample Torrent","350MB",95,"Queued","10 (20)","20 (20)","0 KB/s", "0 KB/s", "und", "110%"])
|
deluge.store.append([5,6,"Sample Torrent","350MB",95,"Queued","10 (20)","20 (20)","0 KB/s", "0 KB/s", "und", "110%"])
|
||||||
|
|
||||||
|
deluge.file_store.append(["Sample_Filename.ext", True])
|
||||||
|
deluge.file_store.append(["Second_Filename.ext", True])
|
||||||
|
|
||||||
|
deluge.peer_store.append(["192.168.0.1", "Deluge 0.3.1", "100%", "30 KB/s", "0 KB/s"])
|
||||||
|
deluge.peer_store.append(["192.168.0.2", "Deluge 0.4.0", "76%", "13 KB/s", "0 KB/s"])
|
||||||
|
deluge.peer_store.append(["192.168.0.3", "Deluge 0.3.0", "74%", "12 KB/s", "3 KB/s"])
|
||||||
|
deluge.peer_store.append(["192.168.0.4", "Deluge 0.3.99.2", "50%", "9 KB/s", "0 KB/s"])
|
||||||
|
deluge.peer_store.append(["192.168.0.5", "Deluge 0.4.0", "90%", "0 KB/s", "20 KB/s"])
|
||||||
|
## Done with sample lines
|
||||||
|
|
||||||
gtk.main()
|
gtk.main()
|
20
dgtk.py
20
dgtk.py
|
@ -127,12 +127,7 @@ class PreferencesDialog:
|
||||||
self.prf.run()
|
self.prf.run()
|
||||||
self.prf.hide_all()
|
self.prf.hide_all()
|
||||||
|
|
||||||
## Columns still need work, but should be easy now that I've worked out
|
## Functions to create columns
|
||||||
## liststores and treeviews.
|
|
||||||
## Most likely will get rid of Objects for columns, and instead revert to
|
|
||||||
## a more organized form of the old add_column method, which will properly
|
|
||||||
## create and add the column and in addition, return that column to the
|
|
||||||
## calling function.
|
|
||||||
|
|
||||||
def add_text_column(view, header, cid):
|
def add_text_column(view, header, cid):
|
||||||
render = gtk.CellRendererText()
|
render = gtk.CellRendererText()
|
||||||
|
@ -146,6 +141,17 @@ def add_progress_column(view, header, pid, mid):
|
||||||
render = gtk.CellRendererProgress()
|
render = gtk.CellRendererProgress()
|
||||||
column = gtk.TreeViewColumn(header, render, value=pid, text=mid)
|
column = gtk.TreeViewColumn(header, render, value=pid, text=mid)
|
||||||
column.set_resizable(True)
|
column.set_resizable(True)
|
||||||
column.set_expand(True)
|
column.set_expand(False)
|
||||||
view.append_column(column)
|
view.append_column(column)
|
||||||
return column
|
return column
|
||||||
|
|
||||||
|
def add_toggle_column(view, header, cid, toggled_signal=None):
|
||||||
|
render = gtk.CellRendererToggle()
|
||||||
|
render.set_property('activatable', True)
|
||||||
|
column = gtk.TreeViewColumn(header, render, active=cid)
|
||||||
|
column.set_resizable(True)
|
||||||
|
column.set_expand(False)
|
||||||
|
view.append_column(column)
|
||||||
|
if toggled_signal is not None:
|
||||||
|
render.connect("toggled", toggled_signal, cid)
|
||||||
|
return column
|
Loading…
Reference in New Issue