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

Gabor Szabo szabgab at gmail.com
Sat Nov 1 02:53:20 PDT 2008


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