ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/gde/GCE/MapEditor.pm
(Generate patch)

Comparing deliantra/gde/GCE/MapEditor.pm (file contents):
Revision 1.59 by elmex, Mon Aug 20 07:56:58 2007 UTC vs.
Revision 1.60 by elmex, Tue Aug 21 10:42:43 2007 UTC

140 "_Map Resize" => { 140 "_Map Resize" => {
141 callback => sub { $self->open_resize_map }, 141 callback => sub { $self->open_resize_map },
142 }, 142 },
143 "Close" => { 143 "Close" => {
144 callback => sub { $self->destroy }, 144 callback => sub { $self->destroy },
145 accelerator => "<ctrl>W",
145 }, 146 },
146 ] 147 ]
147 }, 148 },
148 _Edit => { 149 _Edit => {
149 item_type => '<Branch>', 150 item_type => '<Branch>',
381 $self->{mapkey} = $key; 382 $self->{mapkey} = $key;
382 383
383 if (ref $path) { 384 if (ref $path) {
384 $self->{map}->set_map ($path); 385 $self->{map}->set_map ($path);
385 delete $self->{meta_info}; 386 delete $self->{meta_info};
386 $self->set_title ('<ram>'); 387 $self->set_window_title;
387 388
388 } else { 389 } else {
389 my $ok = 0; 390 my $ok = 0;
390 if (-e $path && -f $path) { 391 if (-e $path && -f $path) {
391 $ok = 1; 392 $ok = 1;
401 die "Couldn't open '$path' or find '$path.map': No such file or it is not a file.\n"; 402 die "Couldn't open '$path' or find '$path.map': No such file or it is not a file.\n";
402 } 403 }
403 $self->{path} = $path; 404 $self->{path} = $path;
404 $self->{map}->set_map (my $m = new_from_file Crossfire::Map $path); 405 $self->{map}->set_map (my $m = new_from_file Crossfire::Map $path);
405 $self->{meta_info} = load_meta_info ($path); 406 $self->{meta_info} = load_meta_info ($path);
406 $self->set_title ("gce - map editor - $self->{path}"); 407 $self->set_window_title ($self->{path});
407 $::MAINWIN->add_recent($path); 408 $::MAINWIN->add_recent($path);
408 } 409 }
409 $self->close_windows; 410 $self->close_windows;
410} 411}
411 412
416 $self->{map}{map}->write_file ($self->{path}); 417 $self->{map}{map}->write_file ($self->{path});
417 if ($self->{meta_info}) { 418 if ($self->{meta_info}) {
418 save_meta_info ($self->{path}, $self->{meta_info}); 419 save_meta_info ($self->{path}, $self->{meta_info});
419 } 420 }
420 quick_msg ($self, "saved to $self->{path}"); 421 quick_msg ($self, "saved to $self->{path}");
421 $self->set_title ("gce - map editor - $self->{path}"); 422 $self->set_window_title ($self->{path});
422 $::MAINWIN->add_recent($self->{path}); 423 $::MAINWIN->add_recent($self->{path});
423 } else { 424 } else {
424 $self->save_map_as; 425 $self->save_map_as;
425 } 426 }
427}
428
429sub set_window_title {
430 my ($self, $title) = @_;
431
432 $title = 'Unsaved'
433 unless $title;
434
435 $self->set_title(File::Basename::basename($title).' - gcrossedit');
426} 436}
427 437
428sub save_map_as { 438sub save_map_as {
429 my ($self) = @_; 439 my ($self) = @_;
430 440
702################################################################# 712#################################################################
703 713
704sub INIT_INSTANCE { 714sub INIT_INSTANCE {
705 my ($self) = @_; 715 my ($self) = @_;
706 716
707 $self->set_title ('gce - map editor'); 717 $self->set_window_title;
708 $self->add (my $vb = Gtk2::VBox->new); 718 $self->add (my $vb = Gtk2::VBox->new);
709 719
710 $vb->pack_start (my $menu = $self->build_menu, 0, 1, 0); 720 $vb->pack_start (my $menu = $self->build_menu, 0, 1, 0);
711 721
712 $vb->pack_start (my $map = $self->{map} = Crossfire::MapWidget->new, 1, 1, 0); 722 $vb->pack_start (my $map = $self->{map} = Crossfire::MapWidget->new, 1, 1, 0);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines