summaryrefslogtreecommitdiffstats
path: root/perl-install/printerdrake.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/printerdrake.pm')
-rw-r--r--perl-install/printerdrake.pm26
1 files changed, 20 insertions, 6 deletions
diff --git a/perl-install/printerdrake.pm b/perl-install/printerdrake.pm
index fae5f3cf5..0570bd693 100644
--- a/perl-install/printerdrake.pm
+++ b/perl-install/printerdrake.pm
@@ -48,13 +48,9 @@ sub setup_local($$$) {
_("Printer Device") => {val => \$printer->{DEVICE}, list => \@port } ],
);
- #- make the DeviceURI from DEVICE.
- $printer->{DeviceURI} = ($printer->{DEVICE} =~ /usb/ ? "usb:" : "parallel:") . $printer->{DEVICE};
-
- #- select right DBENTRY according to device selected. #- TODO with cups (keep all configuration files)
foreach (@parport) {
$printer->{DEVICE} eq $_->{port} or next;
- $printer->{DBENTRY} = $printer::descr_to_db{common::bestMatchSentence2($parport[0]{val}{DESCRIPTION},
+ $printer->{DBENTRY} = $printer::descr_to_db{common::bestMatchSentence2($_->{val}{DESCRIPTION},
@printer::entry_db_description)};
}
1;
@@ -63,12 +59,26 @@ _("Printer Device") => {val => \$printer->{DEVICE}, list => \@port } ],
sub setup_uri_local($$$) {
my ($printer, $in, $install) = @_;
+ my @str = ();
+ my @parport = auto_detect($in);
+ foreach (@parport) {
+ $_->{val}{DESCRIPTION} and push @str, _("A printer, model \"%s\", has been detected on ",
+ $_->{val}{DESCRIPTION}) . $_->{port};
+ }
+
my @direct_uri = printer::get_direct_uri();
+ @parport and $printer->{DeviceURI} = ($parport[0]{port} =~ /usb/ ? "usb:" : "parallel:") . $parport[0]{port};
+
return if !$in->ask_from_entries_refH(_("Local Printer Device (URI)"),
_("What URI device is your printer connected to
-(note that parallel:/dev/lp0 is equivalent to LPT1:)?"), [
+(note that parallel:/dev/lp0 is equivalent to LPT1:)?\n") . (join "\n", @str), [
_("Printer Device URI") => { val => \$printer->{DeviceURI}, list => \@direct_uri } ],
);
+
+ foreach (@parport) {
+ (split ':', $printer->{DeviceURI})[1] eq $_->{port} or next;
+ $printer->{cupsDescr} = common::bestMatchSentence2($_->{val}{DESCRIPTION}, keys %printer::descr_to_ppd);
+ }
1;
}
@@ -176,6 +186,10 @@ sub setup_gsdriver_cups($$$;$) {
[ keys %printer::descr_to_ppd ], $printer->{cupsDescr}) or return;
$printer->{cupsPPD} = $printer::descr_to_ppd{$printer->{cupsDescr}};
+ #- install additional filter according to PPD files.
+ $printer->{cupsPPD} =~ /-pnm2ppa\.ppd/ and &$install('pnm2ppa');
+ $printer->{cupsPPD} =~ /-lm1100\.ppd/ and &$install('Lexmark-1100-printer-driver__lm1100');
+
$printer->{complete} = 1;
printer::copy_printer_params($printer, $printer->{configured}{$printer->{QUEUE}} ||= {});
printer::configure_queue($printer);