On Tue, Jun 8, 2010 at 10:00 AM, Helio Perroni Filho <[email protected]> wrote:
> On Feb 6, 3:36 pm, yin sun <[email protected]> wrote:
>
>> try this patch,
>
> I tried that patch, but I noticed two issues:
>
> * If you close all tabs, the editor won't automatically open a new tab
> for you. In itself it's not a big issue, however UliPad won't open any
> files unless you have at least one open tab;
> * If you have more than one open tab, and you close the first tab, the
> file name on UliPad's window bar is not updated.
>
> So I played some more with the code in mixins/EditorFactory.py, and
> came up with the following patch (UNIX diff format):
>
> 172c172,175
> <         if index < 0 or index > len(self.getDocuments()):
> ---
>>         documents = self.getDocuments()
>>         if 0 <= index and index < len(documents):
>>             return documents[index]
>>         else:
> 174d176
> <         return self.getDocuments()[index]
> 352,361c355,359
> < #        if index >= len(self.getDocuments()):
> < #            index = len(self.getDocuments())-1
> < #        if index >= 0:
> < #            self.switch(self.getDoc(index))
> < #        else:
> < #            self.new()
> < #        self.document.SetFocus()
> <         #if the page to close is not selected, no need to switch page
> <         if index == selected:
> <             if index > 0:
> ---
>>         # If there are no pages left, create one
>>         if len(self.getDocuments()) == 0:
>>             self.new()
>>         # No need to switch pages if the closed page was not selected
>>         elif index == selected:
> 364d361
> <                 # only swith page when there is a page to switch to
> 366,367c364
> <             else:
> <               self.new()
> ---
>>         # Whatever the case, set focus to the selected page
>
> Alternatively, below is the complete code for the affected methods,
> with changes already applied:
>
>    def getDoc(self, index):
>        documents = self.getDocuments()
>        if 0 <= index and index < len(documents):
>            return documents[index]
>        else:
>            return None
>
> # ...
>
>    def closefile(self, document):
>        try:
>            index = self.getIndex(document)
>        except:
>            return
>        self.callplugin('beforeclosefile', self, document)
>        selected = self.GetSelection()
>        self.skip_closing = True
>        self.skip_page_change = True
>        self.DeletePage(index)
>
>        # If there are no pages left, create one
>        if len(self.getDocuments()) == 0:
>            self.new()
>        # No need to switch pages if the closed page was not selected
>        elif index == selected:
>            if index >= len(self.getDocuments()):
>                index = len(self.getDocuments()) - 1
>            self.switch(self.getDoc(index))
>
>        # Whatever the case, set focus to the selected page
>        self.document.SetFocus()
>
>        self.callplugin('afterclosefile', self)
>
> It's relatively simple to open mixins/EditorFactory.py in a plain-text
> editor, locate the methods above and copy/paste the updated code. You
> can even use UliPad itself to apply the changes; just restart it after
> saving the file.
>
> --
> Ja ne,
> Helio Perroni Filho
> https://www.google.com/profiles/xperroni
>

Thanks. But I tried the svn version and didn't find the problem you
said. So which version do you use? And I tested in windows platform.

-- 
I like python!
UliPad <<The Python Editor>>: http://code.google.com/p/ulipad/
UliWeb <<simple web framework>>: http://uliwebproject.appspot.com
My Blog: http://hi.baidu.com/limodou

Reply via email to