[Padre-dev] [Padre] #85: fix a bug (open many window for 1 file)

Gabor Szabo szabgab at gmail.com
Sat Nov 1 03:23:24 PDT 2008


AFAIK none of us who is contributing to Padre knew any Wx before the
project started.
It can be seen in the code :-)

Gabor

On Sat, Nov 1, 2008 at 12:12 PM, Fayland Lam <fayland at gmail.com> wrote:
> I'm afraid I need know more Wx. never learn that before.
>
> I'll submit again once I get it work.
>
> Thanks.
>
> 2008/11/1 Gabor Szabo <szabgab at gmail.com>:
>> I am diverting this to the mailing list as I saw you have also subscribed.
>>
>> I don't want to silently reload the file from the disk.
>> We should give a warning and let the user decide if he wants to reload or not.
>>
>> Actually I think even the "jump to the currently opened buffer" when trying
>> to open an already opened file should tell the user what happened.
>> Maybe by a pop-up. or just on the status bar?
>>
>> Gabor
>>
>> 2008/11/1 Fayland Lam <fayland at gmail.com>:
>>> Gabor Szabo wrote:
>>>>
>>>> thanks, applied.
>>>>
>>>> Gabor
>>>>
>>>
>>> another patch: when user tries to open an opened file, reload doc if it's
>>> changed.
>>>
>>> hmm, the sub name may not satisfy you, please rename it as u like.
>>> and if you prefers File::Modified than -M, I'll submit another patch with
>>> "File::Modified". but I think -M is enough.
>>>
>>> Thanks.
>>>
>>>> On Fri, Oct 31, 2008 at 3:04 PM, Fayland Lam <fayland at gmail.com> wrote:
>>>>
>>>>>
>>>>> OK. here you are. I hope I'm not making a mistake. but that's pretty
>>>>> simple.
>>>>>
>>>>> Thanks.
>>>>>
>>>>> On Fri, Oct 31, 2008 at 8:57 PM, Gabor Szabo <szabgab at gmail.com> wrote:
>>>>>
>>>>>>
>>>>>> On Fri, Oct 31, 2008 at 2:56 PM, Fayland Lam <fayland at gmail.com> wrote:
>>>>>>
>>>>>>>
>>>>>>> hi, since I can't reopen it, I'm saying here. hope you don't mind.
>>>>>>>
>>>>>>> "but I think just focus on that tab instead of an error is better."
>>>>>>>
>>>>>>
>>>>>> I'd appreciate a patch against svn for that
>>>>>> Gabor
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> anyway, good job. man
>>>>>>>
>>>>>>> Thanks.
>>>>>>>
>>>>>>> On Fri, Oct 31, 2008 at 8:49 PM, Padre <trac at perlide.org> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>> #85: fix a bug (open many window for 1 file)
>>>>>>>>
>>>>>>>> ----------------------+-----------------------------------------------------
>>>>>>>>  Reporter:  fayland  |       Owner:
>>>>>>>>     Type:  defect   |      Status:  closed
>>>>>>>>  Priority:  major    |   Milestone:
>>>>>>>>  Component:  editor   |     Version:  0.14
>>>>>>>> Resolution:  fixed    |    Keywords:
>>>>>>>>
>>>>>>>> ----------------------+-----------------------------------------------------
>>>>>>>> Changes (by fayland):
>>>>>>>>
>>>>>>>>  * status:  new => closed
>>>>>>>>  * resolution:  => fixed
>>>>>>>>
>>>>>>>>
>>>>>>>> Comment:
>>>>>>>>
>>>>>>>>  oh, thanks. I'm a bit outdated
>>>>>>>>
>>>>>>>> --
>>>>>>>> Ticket URL: <http://padre.perlide.org/ticket/85#comment:2>
>>>>>>>> Padre <http://padre.perlide.org/>
>>>>>>>> Perl Application Development and Refactoring Environment
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Fayland Lam // http://www.fayland.org/
>>>>>>> Foorum based on Catalyst // http://www.foorumbbs.com/
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> Gabor Szabo                     http://szabgab.com/blog.html
>>>>>> Perl Training in Israel         http://www.pti.co.il/
>>>>>> Test Automation Tips        http://szabgab.com/test_automation_tips.html
>>>>>> Phones:                            +972-8-975-2897     +972-54-4624648
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> Fayland Lam // http://www.fayland.org/
>>>>> Foorum based on Catalyst // http://www.foorumbbs.com/
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Fayland Lam // http://www.fayland.org/ Foorum based on Catalyst //
>>> http://www.foorumbbs.com/
>>>
>>> Index: lib/Padre/Document.pm
>>> ===================================================================
>>> --- lib/Padre/Document.pm       (版本 626)
>>> +++ lib/Padre/Document.pm       (工作副本)
>>> @@ -255,6 +255,8 @@
>>>  sub load_file {
>>>        my ($self, $file, $editor) = @_;
>>>
>>> +       $self->{last_load_time} = -M $file;
>>> +
>>>        my $newline_type = $self->_get_default_newline_type;
>>>        my $convert_to;
>>>        my $content = eval { File::Slurp::read_file($file, binmode => ':raw')
>>> };
>>> @@ -332,6 +334,14 @@
>>>        $_[0]->{filename} = $_[1];
>>>  }
>>>
>>> +sub get_last_load_mtime {
>>> +       $_[0]->{last_load_mtime};
>>> +}
>>> +
>>> +sub get_last_modify_mtime {
>>> +       return -M $_[0]->filename;
>>> +}
>>> +
>>>  sub mimetype {
>>>        $_[0]->{mimetype};
>>>  }
>>> Index: lib/Padre/Wx/MainWindow.pm
>>> ===================================================================
>>> --- lib/Padre/Wx/MainWindow.pm  (版本 626)
>>> +++ lib/Padre/Wx/MainWindow.pm  (工作副本)
>>> @@ -777,6 +777,11 @@
>>>                my $id = $self->find_editor_of_file($file);
>>>                if (defined $id) {
>>>                        $self->on_nth_pane($id);
>>> +                       # reload if it's changed.
>>> +                       my $doc = Padre::Documents->by_id($id);
>>> +                       if ( $doc->get_last_modify_mtime <
>>> $doc->get_last_load_mtime ) {
>>> +                               $doc->reload;
>>> +                       }
>>>                        return;
>>>                }
>>>        }
>>>


More information about the Padre-dev mailing list