[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