* 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.
(defun ensure-tree-path (path)
(etypecase path
(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 #\:)))
(defbinding tree-model-get-iter (model path &optional (iter (make-instance 'tree-iter))) boolean
(model tree-model)
(iter tree-iter :in/return)
(defbinding tree-model-get-iter (model path &optional (iter (make-instance 'tree-iter))) boolean
(model tree-model)
(iter tree-iter :in/return)
+ ((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)
#?(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)
(defun ensure-tree-iter (model row)
(etypecase row
(tree-iter row)
(multiple-value-bind (valid-p iter) (tree-model-get-iter model row)
(if valid-p
iter
(multiple-value-bind (valid-p iter) (tree-model-get-iter model row)
(if valid-p
iter