summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2008-03-04 11:36:58 +0100
committerRené 'Necoro' Neumann <necoro@necoro.net>2008-03-04 11:36:58 +0100
commitaa58720700de8cadfa017bfab569d448d937238b (patch)
treef2a1bb46714a1b85f3cf95fd89a9fa97e5327ae0
parent5f9bda4f89ad515910a34988924541c887d9c259 (diff)
downloadportato-aa58720700de8cadfa017bfab569d448d937238b.tar.gz
portato-aa58720700de8cadfa017bfab569d448d937238b.tar.bz2
portato-aa58720700de8cadfa017bfab569d448d937238b.zip
Improved selection handling in sessions.
Diffstat (limited to '')
-rw-r--r--portato/gui/gtk/windows.py44
1 files changed, 29 insertions, 15 deletions
diff --git a/portato/gui/gtk/windows.py b/portato/gui/gtk/windows.py
index 11588c4..05b9359 100644
--- a/portato/gui/gtk/windows.py
+++ b/portato/gui/gtk/windows.py
@@ -1248,23 +1248,36 @@ class MainWindow (Window):
return [x.get_position() for x in (self.vpaned, self.hpaned)]
# SELECTION
- def load_selection (*positions):
- def _load(list, pos):
- pos = int(pos)
+ def load_selection (list, col):
+ def _load (name):
+ pos = "0" # default
+
+ if name:
+ for cname, path in ((x[col], x.path) for x in list.get_model()):
+ if cname == name:
+ pos = path
+
list.get_selection().select_path(pos)
list.scroll_to_cell(pos)
+
+ return _load
- map(_load, (self.catList, self.pkgList), positions)
-
- def save_selection ():
- def _save(list):
- iter = list.get_selection().get_selected()[1]
- if iter:
- return list.get_model().get_string_from_iter(iter)
- else:
- return "0"
-
- return map(_save, (self.catList, self.pkgList))
+ def save_pkg_selection ():
+ store, iter = self.pkgList.get_selection().get_selected()
+ if iter:
+ return store.get_value(iter, 1)
+ else:
+ return ""
+
+ def save_cat_selection ():
+ # try to find the correct category using the pkgList selection
+ # so we do not select ALL =)
+ # if no package has been selected - return selCatName
+ store, iter = self.pkgList.get_selection().get_selected()
+ if iter:
+ return store.get_value(iter, 2)
+ else:
+ return self.selCatName
# PLUGIN
def load_plugin (p):
@@ -1289,7 +1302,8 @@ class MainWindow (Window):
map(self.session.add_handler,[
([("width", "window"), ("height", "window")], lambda w,h: self.window.resize(int(w), int(h)), self.window.get_size),
([("vpanedpos", "window"), ("hpanedpos", "window")], load_paned, save_paned),
- ([("catsel", "window"), ("pkgsel", "window")], load_selection, save_selection),
+ ([("catsel", "window")], load_selection(self.catList, 0), save_cat_selection),
+ ([("pkgsel", "window")], load_selection(self.pkgList, 1), save_pkg_selection),
([("merge", "queue"), ("unmerge", "queue"), ("oneshot", "queue")], load_queue, save_queue)
])
ions'>+25 2009-07-31ui-snapshot: use cgit_{open|close}_filter() to execute compressorsLars Hjemli1-28/+7 2009-07-31Add generic filter/plugin infrastructureLars Hjemli3-0/+62 2009-07-25Add support for mime type registration and lookupLars Hjemli4-5/+45 2009-07-25cgit.h: keep config flags sortedLars Hjemli1-2/+2 2009-07-25cgitrc.5.txt: document 'embedded' and 'noheader'Lars Hjemli1-0/+9 2009-07-25Add support for 'noheader' optionLars Hjemli3-7/+16 2009-07-25cgitrc.5.txt: document 'head-include'Lars Hjemli1-0/+4 2009-07-25ui-blob: return 'application/octet-stream' for binary blobsLars Hjemli1-1/+7 2009-07-25ui-plain: Return 'application/octet-stream' for binary files.Remko Tronçon1-1/+4 2009-06-11use cgit_httpscheme() for atom feedDiego Ongaro2-3/+6 2009-06-11add cgit_httpscheme() -> http:// or https://Diego Ongaro2-0/+12 2009-06-07Return http statuscode 404 on unknown branchLars Hjemli3-0/+6 2009-06-07Add head-include configuration option.Mark Lodato3-1/+6 2009-03-15CGIT 0.8.2.1v0.8.2.1Lars Hjemli1-1/+1 2009-03-15Fix doc-related glitches in Makefile and .gitignoreLars Hjemli2-1/+6 2009-03-15ui-snapshot: avoid segfault when no filename is specifiedLars Hjemli1-6/+17 2009-03-15fix segfault when displaying empty blobsEric Wong1-5/+8 2009-02-19Add support for HEAD requestsLars Hjemli2-0/+7 2009-02-19Add support for ETag in 'plain' viewLars Hjemli4-0/+5 2009-02-12ui-tree: escape ascii-text properly in hexdump viewLars Hjemli1-4/+9 2009-02-12Makefile: add doc-related targetsLars Hjemli1-2/+17