App-Asciio

 view release on metacpan or  search on metacpan

setup/actions/file.pl  view on Meta::CPAN

if($self->get_modified_state())
	{
	$user_answer = $self->display_yes_no_cancel_dialog('asciio', 'Diagram modified. Save it?') ;
	
	if($user_answer eq 'yes')
		{
		my $file_name = $self->get_file_name('save') ;
		
		my ($base_name, $path, $extension) = File::Basename::fileparse($file_name, ('\..*')) ;
		$extension =~ s/^\.// ;
		
		my $type =  $extension ne q{}
					? $extension
					: 'asciio_internal_format' ;
					
		$self->save_with_type(undef, $type, $file_name) if(defined $file_name && $file_name ne q[]) ;
		}
	}

if($user_answer ne 'cancel')
	{
	$file_name ||= $self->get_file_name('open') ;

	if(defined $file_name && $file_name ne q[])
		{
		my $title = $self->load_file($file_name) ;
		
		my ($base_name, $path, $extension) = File::Basename::fileparse($file_name, ('\..*')) ;
		$extension =~ s/^\.// ;
		
		my $type =  $extension ne q{}
					? $extension
					: 'asciio_internal_format' ;
					
		$self->set_title($title) if defined $title;
		$self->set_modified_state(0) ;
		}
	}
} ;

#----------------------------------------------------------------------------------------------

sub insert
{
my ($self, $x, $y, $file_name) = @_ ;

$file_name ||= $self->get_file_name('open') ;

if(defined $file_name && $file_name ne q[])
	{
	my $asciio = new App::Asciio() ;

	use Module::Util qw(find_installed) ;
	use File::Basename ;
	my ($basename, $path, $ext) = File::Basename::fileparse(find_installed('App::Asciio'), ('\..*')) ;
	my $setup_path = $path . $basename . '/setup/' ;
	
	$asciio->setup([$setup_path .  'setup.ini', ] ) ;
	
	$asciio->load_file($file_name) ;
	$asciio->run_actions_by_name('Select all elements', 'Copy to clipboard') ;
	
	use Clone ;
	$self->{CLIPBOARD} = Clone::clone($asciio->{CLIPBOARD}) ; 
	
	$self->run_actions_by_name(['Insert from clipboard', $x, $y]) ;
	}
} ;



( run in 0.417 second using v1.01-cache-2.11-cpan-2398b32b56e )