Changeset 9646
- Timestamp:
- 12/13/09 00:30:47 (2 years ago)
- Location:
- trunk/Padre-Plugin-Swarm/lib/Padre
- Files:
-
- 2 edited
-
Plugin/Swarm.pm (modified) (3 diffs)
-
Wx/Swarm/Chat.pm (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Padre-Plugin-Swarm/lib/Padre/Plugin/Swarm.pm
r9602 r9646 64 64 my $self = shift; 65 65 return $self->plugin_name => [ 66 'Run in Other Editor' => sub { $self->run_in_other_editor }, 66 67 'About' => sub { $self->show_about }, 67 68 ]; … … 80 81 my $config = $self->config_read; 81 82 $self->set_config( $config ); 83 84 # # Cargo WebGui 85 # # workaround Padre bug 86 # my %registered_documents = $self->registered_documents; 87 # while ( my ( $k, $v ) = each %registered_documents ) { 88 # Padre::MimeTypes->add_highlighter_to_mime_type( $k, $v ); 89 } 90 82 91 $self->_load_everything; 83 92 } … … 90 99 } 91 100 92 sub event_on_context_menu { 93 my $self = shift; 94 my $document = shift; 95 my $editor = shift; 96 my $menu = shift; 97 my $event = shift; 98 my $diff = $menu->Append( -1, 99 Wx::gettext("Swarm diff snippet") 100 ); 101 Wx::Event::EVT_MENU( 102 $editor, 103 $diff, 104 sub { 105 instance()->get_chat->on_diff_snippet; 106 }, 107 ); 108 } 109 110 111 112 101 102 #sub registered_documents { 103 # 'application/x-swarm-document' => 104 # 'Padre::Plugin::Swarm::Document', 105 #} 106 # 107 # 108 #sub editor_enable { 109 # my ( $self, $editor, $doc ) = @_; 110 # $self->{editor}{ refaddr $editor} = 1; 111 # return 1; 112 #} 113 # 114 ## Does this really happen ? # cargo from Plugin::Vi 115 #sub editor_stop { 116 # my ( $self, $editor, $doc ) = @_; 117 # delete $self->{editor}{ refaddr $editor}; 118 # 119 # return 1; 120 #} 121 122 # oh noes! 123 sub run_in_other_editor { 124 my $self = shift; 125 my $ed = $self->current->editor; 126 my $doc = $self->current->document; 127 $self->get_chat->tell_service( 128 Padre::Swarm::Message->new( 129 type => 'runme', 130 body => $ed->GetText, 131 filename => $doc->filename, 132 ) 133 ); 134 135 } 113 136 114 137 ##################################################################### -
trunk/Padre-Plugin-Swarm/lib/Padre/Wx/Swarm/Chat.pm
r9628 r9646 173 173 return unless _INSTANCE( $message , 'Padre::Swarm::Message' ); 174 174 175 if ( $message->type eq 'chat' ) { 176 my $user = $message->from || 'unknown'; 177 my $content = $message->body; 178 return unless defined $content; 179 $self->accept_chat($message); 180 } 181 elsif ( _INSTANCE( $message , 'Padre::Swarm::Message::Diff' ) ) { 182 warn "Got diff -- " if DEBUG; 183 $self->on_receive_diff($message); 184 return; 185 } 186 elsif ( $message->type eq 'announce' ) { 187 warn "Got announce" if DEBUG; 188 $self->accept_announce($message); 189 } 190 elsif ( $message->type eq 'leave' ) { 191 $self->accept_leave( $message ); 192 } 193 elsif ( $message->type eq 'promote' ) { 194 $self->accept_promote( $message ); 195 } 196 else { 197 TRACE("Discarded $message") if DEBUG; 198 } 175 my $handler = 'accept_' . $message->type; 176 if ( $self->can( $handler ) ) { 177 eval { 178 $self->$handler($message); 179 }; 180 if ($@) { 181 $self->write_user_styled( $message->from,$message->from ); 182 $self->write_unstyled(" sent unhandled message " 183 . $message->type . "\n" ); 184 185 } 186 } 187 199 188 } 200 189 … … 254 243 my $identity = $message->from; 255 244 $self->write_user_styled( $identity , $identity ); 256 $self->write_unstyled( ' has left the swarm.' ); 245 $self->write_unstyled( " has left the swarm.\n" ); 246 247 } 248 249 sub accept_runme { 250 my ($self,$message) = @_; 251 # Ouch.. 252 my @result = eval $message->body; 253 if ( $@ ) { 254 $self->write_user_styled( $message->from , $message->from ); 255 $self->write_unstyled( ' ran' . $message->{filename} 256 . ' in YOUR editor but failed!! ' . $@ ); 257 } 258 else { 259 $self->write_user_styled( $message->from , $message->from ); 260 $self->write_unstyled( ' ran ' . $message->{filename} 261 . ' in YOUR editor successfully, returning ', @result 262 ); 263 264 } 257 265 258 266 } … … 334 342 } 335 343 336 sub on_receive_diff {344 sub accept_diff { 337 345 my ($self,$message) = @_; 338 346 TRACE("Received diff $message") if DEBUG;
Note: See TracChangeset
for help on using the changeset viewer.
