Hi Torsten, Apologies for the delay in replying. On 02/05/18 22:46, Torsten Schoenfeld wrote:
I think this is due to the @ARGV semantics. In Perl, @ARGV does not contain the program's name, but Gtk3::Application's run() expects the C-style argv with the program's name at the beginning. So try to use the following: $app->run([$0, @ARGV]);
Thanks. That get things going.
Also: I wrote a version of your program that more closely resembles the Python version. Here it is, in case it is helpful:
Thanks for this. Very helpful. Where should I have looked to know that
the Perl method names were simply capitalised versions of the C methods?
For anyone interested, $files is an arrayref of
Glib::Object::_Unregistered::GLocalFile, for which there is a method
get_basename() to dig out the filename:
sub OPEN {
my ($app, $files, $nfiles, $arg3) = @_;
print "in open\n";
use Data::Dumper;
print Dumper($files, $nfiles, $arg3);
for my $file (@$files) {
print $file->get_basename(), "\n";
}
}
I don't understand what is going on in the signal version, though. If
the callback for the open signal is:
sub _open {
my ($app, $files, $nfiles, $arg3) = @_;
print "files: $files, $nfiles, $arg3\n";
use Data::Dumper;
print Dumper($files, $nfiles, $arg3);
}
I get output like:
files: 94684537255296, 1,
$VAR1 = '94684537255296';
$VAR2 = 1;
$VAR3 = '';
What is going on?
Regards
Jeff
Attachment:
signature.asc
Description: OpenPGP digital signature