my ($r, $filename, $id, $dbwidth, $dbheight, $infobox, $xres, $yres, @otherres) = @_;
my $fname = get_disk_location($r, $id);
- unless (defined($xres) && ($xres < $dbheight || $yres < $dbwidth || $dbwidth == -1 || $dbheight == -1)) {
+ unless (defined($xres) && ($xres < $dbheight || $yres < $dbwidth || $dbwidth == -1 || $dbheight == -1 || $xres == -1)) {
return ($fname, 0);
}
$quality = 80;
}
- $cimg->Resize(width=>$nwidth, height=>$nheight, filter=>$filter);
+ if ($xres != -1) {
+ $cimg->Resize(width=>$nwidth, height=>$nheight, filter=>$filter);
+ }
- if (($nwidth >= 800 || $nheight >= 600) && $infobox == 1) {
+ if (($nwidth >= 800 || $nheight >= 600 || $xres == -1) && $infobox == 1) {
make_infobox($cimg, $info, $r);
}
if (defined($val) && $val =~ /^(\d+)$/) {
$settings{$s} = $val;
}
- if ($s eq "num" && defined($val) && $val == -1) {
+ if (($s eq "num" || $s eq "xres" || $s eq "yres") && defined($val) && $val == -1) {
$settings{$s} = $val;
}
}
my $filename = $ref->{'filename'};
my $uri = $filename;
- if (defined($xres) && defined($yres)) {
+ if (defined($xres) && defined($yres) && $xres != -1) {
$uri = "${xres}x$yres/$infobox$filename";
+ } elsif (defined($xres) && $xres == -1) {
+ $uri = "original/$infobox$filename";
}
$r->print(" <p><a href=\"$uri\"><img src=\"${thumbxres}x${thumbyres}/$filename\" alt=\"\"$imgsz /></a>\n");
my $filename = $ref->{'filename'};
my $uri = $filename;
- if (defined($xres) && defined($yres)) {
+ if (defined($xres) && defined($yres) && $xres != -1) {
$uri = "${xres}x$yres/$infobox$filename";
+ } elsif (defined($xres) && $xres == -1) {
+ $uri = "original/$infobox$filename";
}
my $selected = $ref->{'selected'} ? ' checked="checked"' : '';
my $filename = $ref->{'filename'};
my $uri = $filename;
- if (defined($xres) && defined($yres)) {
+ if (defined($xres) && defined($yres) && $xres != -1) {
$uri = "${xres}x$yres/$infobox$filename";
+ } elsif (defined($xres) && $xres == -1) {
+ $uri = "original/$infobox$filename";
}
$r->print(" <a href=\"$uri\"><img src=\"${thumbxres}x${thumbyres}/$filename\" alt=\"\"$imgsz /></a>\n");
$r->print(" <p>$title:\n");
for my $a (@$alternatives) {
- # Parse the current alternative
- my ($v1, $v2) = split /x/, $a;
+ my $text;
my %newsettings = %$settings;
- if (defined($v1) && defined($v2)) {
+ if (ref $a) {
+ my ($v1, $v2);
+ ($text, $v1, $v2) = @$a;
+
$newsettings{$var1} = $v1;
$newsettings{$var2} = $v2;
} else {
- $newsettings{$var1} = undef;
- $newsettings{$var2} = undef;
+ $text = $a;
+
+ # Parse the current alternative
+ my ($v1, $v2) = split /x/, $a;
+
+ $newsettings{$var1} = $v1;
+ $newsettings{$var2} = $v2;
}
$r->print(" ");
# Check if these settings are current (print only label)
if (eq_with_undef($settings->{$var1}, $newsettings{$var1}) &&
eq_with_undef($settings->{$var2}, $newsettings{$var2})) {
- $r->print($a);
+ $r->print($text);
} else {
- Sesse::pr0n::Common::print_link($r, $a, "/$event/", \%newsettings, $defsettings);
+ Sesse::pr0n::Common::print_link($r, $text, "/$event/", \%newsettings, $defsettings);
}
$r->print("\n");
}
my ($r, $event, $settings, $defsettings) = @_;
my @alternatives = qw(320x256 512x384 640x480 800x600 1024x768 1280x960);
chomp (my $unlimited = Sesse::pr0n::Templates::fetch_template($r, 'viewres-unlimited'));
- push @alternatives, $unlimited;
+ chomp (my $original = Sesse::pr0n::Templates::fetch_template($r, 'viewres-original'));
+ push @alternatives, [ $unlimited, undef, undef ];
+ push @alternatives, [ $original, -1, -1 ];
print_changes($r, $event, 'viewres', $settings, $defsettings,
'xres', 'yres', \@alternatives);
# Make cache while we're at it.
# Don't do it for the resource forks Mac OS X loves to upload :-(
if ($filename !~ /^\._/) {
- Sesse::pr0n::Common::ensure_cached($r, $filename, $newid, -1, -1, 1, 80, 64, 320, 256);
+ Sesse::pr0n::Common::ensure_cached($r, $filename, $newid, -1, -1, 1, 80, 64, 320, 256, -1, -1);
}
# OK, we got this far, commit