gtk/gtktree.lisp: Fixing string representations of tree paths.
authorMark Wooding <mdw@distorted.org.uk>
Tue, 5 Feb 2008 13:33:37 +0000 (13:33 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Fri, 22 Mar 2013 00:52:55 +0000 (00:52 +0000)
  * The old ensure-tree-path returned a vector of strings, which is
    useless.  Fixed to return a vector of integers, using parse-integer.

  * Make tree-model-get-iter apply ensure-tree-path to its argument.

  * Enable ensure-tree-iter to coerce string representations of paths.

gtk/gtktree.lisp

index 4404530..d884dd0 100644 (file)
 
 (defun ensure-tree-path (path)
   (etypecase path
-    (string (coerce (clg-utils:split-string path :delimiter #\:) 'vector))
+    (string (map 'vector #'parse-integer
+                (clg-utils:split-string path :delimiter #\:)))
     (vector path)))
 
 
 (defbinding tree-model-get-iter (model path &optional (iter (make-instance 'tree-iter))) boolean
   (model tree-model)
   (iter tree-iter :in/return)
-  (path tree-path))
+  ((ensure-tree-path path) tree-path))
 
 #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.12.0")
 (defmethod allocate-foreign ((tree-iter tree-iter) &rest initargs)
 (defun ensure-tree-iter (model row)
   (etypecase row
     (tree-iter row)
-    (tree-path 
+    ((or tree-path string)
      (multiple-value-bind (valid-p iter) (tree-model-get-iter model row)
        (if valid-p
           iter