- Timestamp:
- 02/08/10 00:07:56 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Padre/lib/Padre/Wx/Directory/OpenInFileBrowserAction.pm
r10610 r10611 64 64 } 65 65 66 my $error = undef;66 my $error; 67 67 if (Padre::Constant::WIN32) { 68 68 … … 72 72 } elsif (Padre::Constant::UNIX) { 73 73 my $parent_folder = File::Basename::dirname($filename); 74 if ( defined $ENV{KDE_FULL_SESSION} ) { 75 76 # In KDE, execute: kfmclient exec $filename 77 $error = $self->_execute( 'kfmclient', "exec", $parent_folder ); 78 } elsif ( defined $ENV{GNOME_DESKTOP_SESSION_ID} ) { 79 80 # In Gnome, execute: nautilus --nodesktop --browser $filename 81 $error = $self->_execute( 'nautilus', "--no-desktop", "--browser", $parent_folder ); 82 } else { 83 $error = "Could not find KDE or GNOME"; 84 } 74 $error = $self->_execute_unix($parent_folder); 85 75 } else { 86 76 87 # Unsupported Operating system.88 $error = "Unsupported operating system: '$^O'";77 # Unsupported 78 $error = sprintf(Wx::gettext("Unsupported OS: %s"), '$^O'); 89 79 } 90 80 91 if ( defined$error ) {92 Wx::MessageBox( $error, Wx::gettext("Error"), Wx::wxOK, $main,);81 if ( $error ) { 82 $main->error( $error ); 93 83 } 94 84 95 85 return; 86 } 87 88 # 89 # Open with default system editor 90 # 91 sub open_with_default_system_editor { 92 my ($self, $filename) = @_; 93 94 my $main = Padre::Current->main; 95 unless( $filename ) { 96 $main->error( Wx::gettext("No filename") ); 97 return; 98 } 99 100 my $error; 101 if(Padre::Constant::WIN32) { 102 # Win32 103 require Padre::Util::Win32; 104 Padre::Util::Win32::ExecuteProcessAndWait( 105 directory => $self->{cwd}, 106 file => $filename, 107 parameters => '', 108 show => 1); 109 } elsif(Padre::Constant::UNIX) { 110 # Unix 111 $error = $self->_execute_in_file_mananger($filename); 112 } else { 113 # Unsupported 114 $error = sprintf(Wx::gettext("Unsupported OS: %s"), '$^O'); 115 } 116 117 if ( $error ) { 118 $main->error( $error ); 119 } 120 121 return; 122 } 123 124 # 125 # Try to execute a file in KDE or GNOME 126 # 127 sub _execute_unix { 128 die "Only to be called in UNIX!" unless Padre::Constant::UNIX; 129 130 my ($self, $filename) = @_; 131 132 my $error; 133 if ( defined $ENV{KDE_FULL_SESSION} ) { 134 135 # In KDE, execute: kfmclient exec $filename 136 $error = $self->_execute( 'kfmclient', "exec", $filename ); 137 } elsif ( defined $ENV{GNOME_DESKTOP_SESSION_ID} ) { 138 139 # In Gnome, execute: nautilus --nodesktop --browser $filename 140 $error = $self->_execute( 'nautilus', "--no-desktop", "--browser", $filename ); 141 } else { 142 $error = Wx::gettext("Could not find KDE or GNOME"); 143 } 144 145 return $error; 96 146 } 97 147 … … 102 152 =head1 NAME 103 153 104 Padre::Wx::Directory::OpenInFileBrowserAction - Ecliptic'sOpen in file browser action154 Padre::Wx::Directory::OpenInFileBrowserAction - Open in file browser action 105 155 106 156 =head1 DESCRIPTION 107 157 108 =head2 Open in File Browser (Shortcut: C<Ctrl+6>)158 =head2 Open in File Browser 109 159 110 160 For the current saved Padre document, open the platform's file manager/browser and
Note: See TracChangeset
for help on using the changeset viewer.
