From c3d3409bec6c04e055e1ab9fe7bf730a521596a8 Mon Sep 17 00:00:00 2001 From: Photon89 Date: Mon, 10 Aug 2026 16:07:05 +0200 Subject: [PATCH 1/2] Little refactoring for determining mime type --- bin/shutter | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/bin/shutter b/bin/shutter index fa38a4ba..455a25c9 100755 --- a/bin/shutter +++ b/bin/shutter @@ -4167,8 +4167,7 @@ sub STARTUP { } #check mime type - my ($mime_type) = Glib::Object::Introspection->invoke('Gio', undef, 'content_type_guess', $giofile->get_path); - $mime_type =~ s/image\/x\-apple\-ios\-png/image\/png/; #FIXME + my $mime_type = fct_get_mime_type($giofile); if ($mime_type =~ m/(pdf|ps|svg)/ig) { #not a supported mime type @@ -5245,8 +5244,7 @@ sub STARTUP { my @valid_files; foreach my $file (@files) { my $giofile = Glib::IO::File::new_for_uri($file); - my ($mime_type) = Glib::Object::Introspection->invoke('Gio', undef, 'content_type_guess', $giofile->get_path); - $mime_type =~ s/image\/x\-apple\-ios\-png/image\/png/; #FIXME + my $mime_type = fct_get_mime_type($giofile); if ($mime_type && fct_check_valid_mime_type($mime_type)) { push @valid_files, $file; } @@ -5262,6 +5260,13 @@ sub STARTUP { return FALSE; } } + + sub fct_get_mime_type { + my $giofile = shift; + my ($mime_type) = Glib::Object::Introspection->invoke('Gio', undef, 'content_type_guess', $giofile->get_path); + $mime_type =~ s/image\/x\-apple\-ios\-png/image\/png/; #FIXME + return $mime_type; + } sub fct_check_valid_mime_type { my $mime_type = shift; @@ -6101,6 +6106,7 @@ sub STARTUP { $session_screens{$key}->{'name'}, $session_screens{$key}->{'is_unsaved'}, \%session_screens, $drawing_tool_icons ); + print "\n\nDEBUG: $session_screens{$key}->{'long'}, $session_screens{$key}->{'filetype'}, $session_screens{$key}->{'mime_type'}, $session_screens{$key}->{'name'}, $session_screens{$key}->{'is_unsaved'}, \%session_screens, $drawing_tool_icons \n\n"; } #~ &fct_control_main_window ('show'); @@ -7508,8 +7514,7 @@ sub STARTUP { $session_screens{$key}->{'name'} =~ s/\.$session_screens{$key}->{'filetype'}//g; #mime type - my ($mime_type) = Glib::Object::Introspection->invoke('Gio', undef, 'content_type_guess', $session_screens{$key}->{'giofile'}->get_path); - $mime_type =~ s/image\/x\-apple\-ios\-png/image\/png/; #FIXME + my $mime_type = fct_get_mime_type($session_screens{$key}->{'giofile'}); $session_screens{$key}->{'mime_type'} = $mime_type; #TAB PREVIEW IMAGE From 3b4bf2f0ed273dfb3f128e5cec58ae906b6cfccd Mon Sep 17 00:00:00 2001 From: Photon89 Date: Fri, 14 Aug 2026 16:39:18 +0200 Subject: [PATCH 2/2] Removed debug line --- bin/shutter | 1 - 1 file changed, 1 deletion(-) diff --git a/bin/shutter b/bin/shutter index 455a25c9..5cd38778 100755 --- a/bin/shutter +++ b/bin/shutter @@ -6106,7 +6106,6 @@ sub STARTUP { $session_screens{$key}->{'name'}, $session_screens{$key}->{'is_unsaved'}, \%session_screens, $drawing_tool_icons ); - print "\n\nDEBUG: $session_screens{$key}->{'long'}, $session_screens{$key}->{'filetype'}, $session_screens{$key}->{'mime_type'}, $session_screens{$key}->{'name'}, $session_screens{$key}->{'is_unsaved'}, \%session_screens, $drawing_tool_icons \n\n"; } #~ &fct_control_main_window ('show');