; This program is free software; you can redistribute it and/or modify ; it under the terms of the GNU General Public License as published by ; the Free Software Foundation; either version 2 of the License, or ; (at your option) any later version. ; ; This program is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; GNU General Public License for more details. ; Requires GIMP 2.8 or later (define (script-fu-sg-dissolve-group image item) (when (= (car (gimp-item-is-group item)) TRUE) (gimp-image-undo-group-start image) (let ((parent (car (gimp-item-get-parent item))) (pos (car (gimp-image-get-item-position image item))) ) (let loop ((layers (reverse (vector->list (cadr (gimp-item-get-children item)))))) (unless (null? layers) (let ((new-layer (car (gimp-layer-copy (car layers) (car (gimp-drawable-has-alpha item))))) (name (car (gimp-item-get-name (car layers)))) ) (gimp-image-insert-layer image new-layer (if (= parent -1) 0 parent ) pos ) (gimp-image-remove-layer image (car layers)) (gimp-item-set-name new-layer name) ) (loop (cdr layers)) ))) (gimp-image-remove-layer image item) (gimp-image-undo-group-end image) (gimp-displays-flush) ) ) (script-fu-register "script-fu-sg-dissolve-group" "Dissolve Group" "Move layers from inside a group to its parent." "Saul Goode" "Saul Goode" "July 2013" "*" SF-IMAGE "Image" 0 SF-DRAWABLE "Layer" 0 ) (script-fu-menu-register "script-fu-sg-dissolve-group" "" )