#!/usr/bin/perl

# GUI wrapper around pto2tiff. Requires zenity
# July 2007 Bruno Postle <bruno@postle.net>

use strict;
use warnings;

my $cwd = `cat \$HOME/.pto2tiff-gui` || $ENV{'HOME'};
chomp $cwd;

unless (`which pto2tiff`)
{
    `zenity --error --text='pto2tiff not found in your \$PATH'`;
    exit 1;
}

my @files;

if (@ARGV)
{
    @files = @ARGV;
}
else
{
    my $result = `zenity --file-selection \\
                         --filename=$cwd/ \\
                         --title='Select hugin .pto project(s) to stitch' \\
                         --multiple` || exit 0;
    chomp $result;
    @files = split ('\|', $result);
}

my $index = 1;

for my $file (@files)
{
    $file = quotemeta ($file);
    my $title = "Stitching project $index of ". scalar (@files);
    `pto2tiff $file | \\
     zenity --progress \\
            --title='$title' \\
            --auto-close \\
            --pulsate \\
            --text='Project: $file'`;
    $index++;
    $cwd = $file;
    $cwd =~ s/\/[^\/]*$//;
    $cwd =~ s/\\\//\//g;
    `echo '$cwd' > \$HOME/.pto2tiff-gui` if ($cwd =~ /^\//);
}

my $title = scalar (@files) . ' hugin .pto project(s) stitched';
my $text = join ("\n", @files);

`zenity --info \\
        --title='$title' \\
        --text='$text'`;

exit 0;
