Changeset 288

Show
Ignore:
Timestamp:
07/25/11 11:40:57 (2 years ago)
Author:
mbutscher
Message:

branches/mbutscher/work:
* Option to open link in new window (Ross' rep.:

517346f7e238022217c982b5c71ed92880e40249 and
7698dcedf92b4a7fedfe16cc5138c2b5ab99f437)

Location:
branches/mbutscher/work
Files:
7 modified

Legend:

Unmodified
Added
Removed
  • branches/mbutscher/work/WikidPad.xrc

    r286 r288  
    17481748                <item>New tab in background</item> 
    17491749                <item>Same Tab</item> 
     1750                <item>New Window</item> 
    17501751              </content> 
    17511752              <selection>0</selection> 
     
    17671768                <item>New tab in background</item> 
    17681769                <item>Same Tab</item> 
     1770                <item>New Window</item> 
    17691771              </content> 
    17701772              <selection>1</selection> 
  • branches/mbutscher/work/lib/pwiki/CmdLineAction.py

    r271 r288  
    4242        self.lastTabsSubCtrls = None  # Corresponding list of subcontrol names 
    4343                # for each wikiword to open 
     44        self.wikiWordsToCreate = None  # Words to create and open 
    4445        self.noRecent = False  # Do not modify history of recently opened wikis 
    4546 
     
    6263        try: 
    6364            opts, rargs = getopt.getopt(sargs, "hw:p:x", 
    64                     ["help", "wiki=", "page=", "exit", "export-what=", 
    65                     "export-type=", "export-dest=", "export-compfn", 
    66                     "export-saved=", "continuous-export-saved=", 
    67                     "anchor", 
    68                                         "rebuild", "no-recent", "preview", "editor"]) 
     65                    ["help", "wiki=", "page=", "new-page=", "exit",  
     66                    "export-what=", "export-type=", "export-dest=",  
     67                    "export-compfn", "export-saved=", "continuous-export-saved=", 
     68                    "anchor", "rebuild", "no-recent", "preview", "editor"]) 
    6969        except getopt.GetoptError: 
    7070            self.cmdLineError = True 
     
    7272 
    7373        wikiWordsToOpen = [] 
     74        wikiWordsToCreate = [] 
    7475 
    7576        for o, a in opts: 
     
    8081            elif o in ("-p", "--page"): 
    8182                wikiWordsToOpen.append(mbcsDec(a, "replace")[0]) 
     83            elif o in ("--new-page"): 
     84                wikiWordsToCreate.append(mbcsDec(a, "replace")[0]) 
    8285            elif o == "--anchor": 
    8386                self.anchorToOpen = mbcsDec(a, "replace")[0] 
     
    109112            self.wikiWordsToOpen = tuple(wikiWordsToOpen) 
    110113 
     114        if len(wikiWordsToCreate) > 0: 
     115            self.wikiWordsToCreate = tuple(wikiWordsToCreate) 
    111116 
    112117        self._fillLastTabsSubCtrls(len(wikiWordsToOpen)) 
     
    129134 
    130135            return 
    131  
    132136 
    133137        if len(self.lastTabsSubCtrls) < wwoLen: 
  • branches/mbutscher/work/lib/pwiki/Configuration.py

    r286 r288  
    848848# Maps configuration setting "mouse_middleButton_withoutCtrl" number to a  
    849849# tabMode number for WikiTxtCtrl._activateLink or WikiHtmlView._activateLink 
    850 MIDDLE_MOUSE_CONFIG_TO_TABMODE = {0: 2, 1: 3, 2: 0} 
     850MIDDLE_MOUSE_CONFIG_TO_TABMODE = { 
     851                                    0: 2, # New tab in background 
     852                                    1: 3, # New tab in foreground 
     853                                    2: 0, # Same Tab 
     854                                    3: 6, # New Window 
     855                                 } 
    851856 
    852857 
  • branches/mbutscher/work/lib/pwiki/PersonalWikiFrame.py

    r285 r288  
    392392                        anchorToOpen=anchorToOpen, 
    393393                        lastTabsSubCtrls=cmdLineAction.lastTabsSubCtrls, 
    394                         activeTabNo=cmdLineAction.activeTabNo) 
     394                        activeTabNo=cmdLineAction.activeTabNo,  
     395                        wikiWordsToCreate=cmdLineAction.wikiWordsToCreate) 
    395396#                 wx.GetApp().pauseBackgroundThreads() 
    396397            else: 
     
    29782979    def openWiki(self, wikiCombinedFilename, wikiWordsToOpen=None, 
    29792980            ignoreWdhName=False, lastTabsSubCtrls=None, anchorToOpen=None, 
    2980             activeTabNo=-1): 
     2981            activeTabNo=-1, wikiWordsToCreate=None): 
    29812982        """ 
    29822983        opens up a wiki 
     
    32643265                    # Omitting word, so adjust activeTabNo 
    32653266                    activeTabNo -= 1 
     3267 
     3268                if wikiWordsToCreate: 
     3269                    for word in wikiWordsToCreate: 
     3270                        wwo.append((word, u"textedit")) 
    32663271     
    32673272                # now try and open the last wiki page as leftmost tab 
     
    36483653            charlength=-1): 
    36493654        """ 
    3650         tabMode -- 0:Same tab; 2: new tab in foreground; 3: new tab in background 
     3655        tabMode -- 0:Same tab; 2: new tab in foreground; 3: new tab in background; 6: New Window 
    36513656        """ 
    36523657        # open the wiki page 
    36533658        if tabMode & 2: 
    3654             # New tab 
    3655             presenter = self.createNewDocPagePresenterTab() 
     3659            if tabMode == 6: 
     3660                # Open tab in new window 
     3661                if len(unifName) == 0: 
     3662                    return 
     3663                 
     3664                if unifName.startswith(u"wikipage/"): 
     3665                    unifName = unifName[9:] 
     3666 
     3667                self.OpenNewWikidPadInstance([unifName], [u'textedit'])  
     3668                return 
     3669                 
     3670            else: 
     3671                # New tab 
     3672                presenter = self.createNewDocPagePresenterTab() 
    36563673        else: 
    36573674            # Same tab 
     
    49564973 
    49574974 
    4958     def OnCmdCloneWindow(self, evt): 
     4975    def OnCmdCloneWindow(self, evt, wikiWords=None, preview=False): 
     4976        """ 
     4977        Clones the currently open window, creating a new instance with 
     4978        the same tabs. 
     4979 
     4980        """ 
     4981        wws, subCtrls, activeNo = \ 
     4982                self.getMainAreaPanel().getOpenWikiWordsSubCtrlsAndActiveNo() 
     4983        self.OpenNewWikidPadInstance(wws, subCtrls, activeNo) 
     4984 
     4985    def OpenNewWikidPadInstance(self, wikiWords, subCtrls, activeNo=0): 
     4986        """ 
     4987        Launches a new wikidpad instance 
     4988 
     4989        @param wikiWords: List of wikiwords to open 
     4990        @param subCtrls: Coresponding list (to wikiWords) of modes 
     4991            e.g. u"textedit" or u"preview" 
     4992        @ param activeNo: Tab to give focus to. 
     4993 
     4994        """ 
    49594995        wd = self.getWikiDocument() 
    49604996        if wd is None: 
     
    49665002            clAction.wikiToOpen = wd.getWikiConfigPath() 
    49675003            clAction.frameToOpen = 1  # Open in new frame 
    4968             wws, subCtrls, activeNo = \ 
    4969                     self.getMainAreaPanel().getOpenWikiWordsSubCtrlsAndActiveNo() 
    4970  
    4971             if wws is not None: 
    4972                 clAction.wikiWordsToOpen = wws 
    4973                 clAction.lastTabsSubCtrls = subCtrls 
     5004 
     5005            wikiWordsToOpen = [] 
     5006            wikiWordsToCreate = [] 
     5007            lastTabsSubCtrls = [] 
     5008 
     5009            if len(wikiWords) > 1: 
     5010                for word, sub in wikiWords, subCtrls: 
     5011                    if self.getWikiDocument().isDefinedWikiLink(word): 
     5012                        wikiWordsToOpen.append(word) 
     5013                        lastTabsSubCtrls.append(sub) 
     5014                    else: 
     5015                        wikiWordsToCreate.append(word) 
     5016            else: 
     5017                if self.getWikiDocument().isDefinedWikiLink(wikiWords[0]): 
     5018                    wikiWordsToOpen.append(wikiWords[0]) 
     5019                    lastTabsSubCtrls.append(subCtrls[0]) 
     5020                else: 
     5021                    wikiWordsToCreate.append(wikiWords[0]) 
     5022                     
     5023 
     5024            if wikiWords is not None: 
     5025                clAction.wikiWordsToOpen = wikiWordsToOpen 
     5026                clAction.wikiWordsToCreate = wikiWordsToCreate 
     5027                clAction.lastTabsSubCtrls = lastTabsSubCtrls 
    49745028                clAction.activeTabNo = activeNo 
    49755029 
     
    49805034                    u'WikidPad instance'), e) 
    49815035            return 
    4982  
    49835036 
    49845037    def OnImportFromPagefiles(self, evt): 
  • branches/mbutscher/work/lib/pwiki/WikiHtmlView.py

    r279 r288  
    496496            # open the wiki page 
    497497            if tabMode & 2: 
    498                 # New tab 
    499                 presenter = self.presenter.getMainControl().\ 
    500                         createNewDocPagePresenterTab() 
    501                 presenter.switchSubControl("preview", False) 
     498                if tabMode == 6: 
     499                    # New Window 
     500                    self.presenter.getMainControl(). \ 
     501                        OpenNewWikidPadInstance([word], [u'preview'])  
     502                    return True 
     503                else: 
     504                    # New tab 
     505                    presenter = self.presenter.getMainControl().\ 
     506                            createNewDocPagePresenterTab() 
     507                    presenter.switchSubControl("preview", False) 
    502508            else: 
    503509                # Same tab 
  • branches/mbutscher/work/lib/pwiki/WikiHtmlViewWK.py

    r285 r288  
    13941394 
    13951395            if tabMode & 2: 
    1396                 # New tab 
    1397                 presenter = self.presenter.getMainControl().\ 
    1398                         createNewDocPagePresenterTab() 
    1399                 presenter.switchSubControl("preview", False) 
     1396                if tabMode == 6: 
     1397                    # New Window 
     1398                    self.presenter.getMainControl(). \ 
     1399                        OpenNewWikidPadInstance([word], [u'preview'])  
     1400                    return True 
     1401                else: 
     1402                    # New tab 
     1403                    presenter = self.presenter.getMainControl().\ 
     1404                            createNewDocPagePresenterTab() 
     1405                    presenter.switchSubControl("preview", False) 
    14001406            else: 
    14011407                # Same tab 
  • branches/mbutscher/work/lib/pwiki/WikiTxtCtrl.py

    r286 r288  
    19761976                searchStr = None 
    19771977 
     1978                newWindow = False 
    19781979                # open the wiki page 
    19791980                if tabMode & 2: 
    1980                     # New tab 
    1981                     presenter = self.presenter.getMainControl().\ 
    1982                             createNewDocPagePresenterTab() 
     1981                    if tabMode == 6: 
     1982                        # New Window 
     1983                        newWindow = True 
     1984                    else: 
     1985                        # New tab 
     1986                        presenter = self.presenter.getMainControl().\ 
     1987                                createNewDocPagePresenterTab() 
    19831988                else: 
    19841989                    # Same tab 
     
    20102015                            forbiddenSearchfragHit = (node.pos, node.pos + node.strLength) 
    20112016 
     2017                if newWindow: 
     2018                    # NOTE: what about suggNewPageTitle? 
     2019                    self.presenter.getMainControl().OpenNewWikidPadInstance( 
     2020                            [unaliasedTarget], [u"textedit"]) 
     2021                    return True 
     2022 
    20122023                presenter.openWikiPage(unaliasedTarget, 
    20132024                        motionType="child", anchor=node.anchorLink, 
     
    20452056                    # open the wiki page 
    20462057                    if tabMode & 2: 
    2047                         # New tab 
    2048                         presenter = self.presenter.getMainControl().\ 
    2049                                 createNewDocPagePresenterTab() 
     2058                        if tabMode == 6: 
     2059                            # New Window 
     2060                            self.presenter.getMainControl(). \ 
     2061                                OpenNewWikidPadInstance( 
     2062                                    [node.value], [u"textedit"]) 
     2063                            return True 
     2064                        else: 
     2065                            # New tab 
     2066                            presenter = self.presenter.getMainControl().\ 
     2067                                    createNewDocPagePresenterTab() 
    20502068                    else: 
    20512069                        # Same tab