Changeset 128
- Timestamp:
- Wed Sep 26 05:55:36 2007
- Files:
-
- branches/mbutscher/TodoList.txt (modified) (diff)
- branches/stable-1.8/WikidPadStarter.py (modified) (diff)
- branches/stable-1.8/wikidpad_unicode.iss (modified) (diff)
- branches/stable-1.8/WikidPadHelp/WikidPadHelp.wiki (modified) (diff)
- branches/stable-1.8/WikidPadHelp/data/WIKIRELATIONS.grl (modified)
- branches/stable-1.8/WikidPadHelp/data/ChangeLog.wiki (modified) (diff)
- branches/stable-1.8/WikidPadHelp/data/WIKIWORDS.grl (modified)
- branches/stable-1.8/lib/pwiki/Exporters.py (modified) (diff)
- branches/stable-1.8/lib/pwiki/OsAbstract.py (added)
- branches/stable-1.8/lib/pwiki/wikidata/original_gadfly/DbStructure.py (modified) (diff)
- branches/stable-1.8/lib/pwiki/Configuration.py (modified) (diff)
- branches/stable-1.8/lib/pwiki/PersonalWikiFrame.py (modified) (diff)
- branches/stable-1.8/lib/pwiki/MainApp.py (modified) (diff)
- branches/stable-1.8/lib/pwiki/StringOps.py (modified) (diff)
- branches/stable-1.8/lib/pwiki/WindowsHacks.py (modified) (diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
branches/mbutscher/TodoList.txt
r127 r128 11 11 12 12 +++ Bug: Crash when using IE or Mozilla as preview 13 Make reduced program 13 14 15 16 17 18 > could the popup list only be activated by clicking on the dates? Popup on hover is very annoying if you have a lot of pages on a date. 19 20 21 22 23 >> For example, the user could select some text in the editor and press a 24 >> kexy. The text would then be executed as if it was enter in a 25 >> console(=DOS box) window and the output would then added after the 26 >> selection in the editor (similar to the way as eval behaves). 27 *Details*: 28 Expand plugin handling to allow customizable shortcuts taken from KeyBindings.py 14 29 15 30 … … 75 94 76 95 96 > - A real search pane so you can review all the matches you find, 97 > without having to re-search again. I don't understand why Michael 98 > doesn't use the LOG window for that functionality, it would make this 99 > easier. Save all the messing about with the drop down blue highlight 100 > stuff. 101 102 > Fair enough.. since writing my comment I discovered your powerful 103 > saved searches. Its quite difficult to understand, and I was just 104 > looking for a way to persist the last ordinary search - and go back to 105 > look at things in more detail. Perhaps a "system page" (like 106 > Scratchpad) could be written to? (a LastSearchResults page for 107 > example) - this would certainly meet my need 108 109 77 110 +++ Reload menu plugins during session (partly working) 78 111 For debugging purposes it would be great if I could force WikidPad to … … 81 115 82 116 117 > Are there keyboard shortcuts for folding and unfolding, as well as to 118 > skip to the next/previous header? (I guess skipping to the structure 119 > window and using arroes would be a workaround... if we could skip 120 > there ;) anyway it wouldn'i be very efficient) 121 122 83 123 +++ Wikize word enhancements 84 124 the first letter of words will be upper case (e.g. 'case' becomes [Case]) when wikized. Also I suggest wikizing should behave like bold and italics. (i.e. if the cursor is inside a wo|rd, it should wikize the whole [word], not like 'wo[]rd'.) 85 125 86 126 87 +++ Favorite wikis toolbar127 87 127 Another small feature request. How about a "button bar" for favorite 88 128 wiki files? Yes I know you have the recent file list, but it keeps … … 105 148 106 149 On the command line i use 'open <filename>' to start the apropriate application for the file. the 'open' comand is provided by Gnome, which I use on my desktop. However, I think it is the same command for KDE, so you might try to launch 'open' for the file in question. 150 *Details*: 151 "open" is not always supported, e.g. Ubuntu and derivates do not have it. 152 153 154 > Just a cosmetic thing, but I find black (shades of) very siniter to mark the busiest days. Like somebody died then. Maybe this could be set by the user? 155 156 157 > It is also cosmetic, but could the + signs be omitted from the lists? Just a little indent would be enough to show it is a lower level heading. Like: 158 > 159 > Heading 1 160 > Heading 2 161 > etc. 162 > 163 > Of course even better would be if it worked like Word's foldable Document Map headings... 107 164 108 165 … … 114 173 115 174 175 by the way, this FTP syncing capability would be a very nice addition 176 to wikipad. I could imagine just pressing a button to backup by ftp, 177 or to restore by ftp a whole wiki... wow... 178 179 116 180 +++ History of searches, opened wiki words, autocompleted terms and opened wikis 117 181 > * drop-down history of typed-in searches in Search Wiki? Same for Open … … 165 230 166 231 232 > i think i have an additional idea for timeline functionality. I have 233 > read many times that alot of people were asking date based topic 234 > creation for journaling and blogging. Would not it be great if we had 235 > a right click function on timeline that lets you create a new topic 236 > named with date ? 237 238 239 167 240 +++ Option for placement of "modified-within" (and other views in general). 168 241 Could move it (modified within) left a level to the same level as Views. 169 242 170 243 244 Or if there'd be an option to maximize it [already open instance] when I launch it 2nd time (I could create a hot-key to launch it). 245 246 > (1) if the wiki is already open - then a change of focus to the new page 247 > (2) if not already open then a new window - with its focus set. 248 249 250 171 251 +++ Insert spaces to wiki links on HTML export 172 252 Example: … … 188 270 189 271 272 >> I wonder if there's any way (hack or not) to set a link to 273 >> >> "views"/property lists? 274 >> >> 275 >> >> I.e. if I have a property [keyword: London] in some of my pages. I 276 >> >> would like to make some link to the "views"/keyword/London section 277 >> >> with a list of all entries with this keyword so that I don't have to 278 >> >> click all the way through the "views" tree. 279 >> >> (...) 280 > > 281 > > It could be programmed as insertion (similar to e.g. [:rel:children]), 282 > > but this would only show the relevant pages in the preview, not the editor. 283 > > 284 285 I would like that: this way information from 'views' could 286 be included in html-export (by a page with e.g. 287 [:rel:attribute:keyword.london] or something similar...) 288 *Details*: 289 Syntax suggested [:attributed:"keyword: london"] 290 291 292 Example: [alias:stupid;cats;stupid cats] 293 294 Should mean the same as 295 296 [alias:stupid] 297 [alias:cats] 298 [alias:stupid cats] 299 300 190 301 +++ Ensure visibility of autocomplete popup 191 302 Speaking of the autocomplete suggestions window: don't know if you've noticed, but if you switch to another window while on (without choosing a suggestion), it will stay on top. it is quite funny, actually, and maybe shouldn't be fixed, though. … … 274 387 275 388 389 276 390 +++ Allow to store selections in Export or Print dialog as presets 277 391 … … 412 527 413 528 529 My wiki.sli file is 4,795,392 bytes in size, and I run it off a 530 TrueCrypt partition on a USB stick. The USB stick doesn't have the 531 fastest write time, so I find that whenever the database is saved 532 (i.e., when I switch from one page to another) WikidPad hangs for a few 533 seconds while it takes care of saving the data. I'm using the Compact 534 Sqlite database version, but I've also tried Original Sqlite. 535 536 Is there any way WikidPad could be enhanced with a background save 537 option, so I could continue work while it's saving my database? Or is 538 that option already present and I just haven't looked hard enough? ;-) 539 *Details*: 540 May be better to hold database in memory? 541 542 543 544 414 545 +++ Option when to jump to stored cursor pos. 415 546 > - Editor/Preview should only jump to saved cursor position when going … … 532 664 533 665 666 > Any chance there could be a right click option on the preview page 667 > which says "copy selection to clipboard as HTML", then once I have the 668 > preview correct, I can just copy the info I want into an email message. 669 > Exporting a page and attaching it is a pain, especially if I only want 670 > a section of the page. 671 *Details*: 672 wx.HTMLWindow must support that first or maybe the new wx.RichTextCtrl may help when switching to wxPython 2.8. 673 674 675 534 676 +++ Timer hook 535 677 > 4.It'll be very useful to have one more hook function, which is called … … 549 692 550 693 551 +++ About Inter-process comm.552 Or if there'd be an option to maximize it \[already open instance] when I launch it 2nd time (I could create a hot-key to launch it). \[low prio.]553 554 555 694 +++ Toggle view tree on/off like main tree 556 695 … … 630 769 631 770 771 So you could add a "save search" button on the bottom of the blue roll 772 and save it for slow browsing in case you have too much results. 773 774 632 775 +++ Wikiwords in todo items 633 776 I often tie WikiWords to todo items: \todo.personal: CallBank? Where CallBank? is a page with a bunch of information. The problem is that the CallBank? page does not appear as a subitem in the tree, and shows up as parentless in the views. It seems like that should get picked up by the system and handled like any other wiki page. -
branches/stable-1.8/WikidPadStarter.py
r125 r128 4 4 os.stat_float_times(True) 5 5 6 VERSION_STRING = "wikidPad 1.8rc 8"6 VERSION_STRING = "wikidPad 1.8rc9" 6 6 7 7 if not hasattr(sys, 'frozen'): -
branches/stable-1.8/wikidpad_unicode.iss
r125 r128 39 39 SolidCompression=true 40 40 AppName=WikidPad 41 AppVerName=WikidPad 1.8rc 841 AppVerName=WikidPad 1.8rc9 41 41 DefaultDirName={pf}\WikidPad 42 42 DefaultGroupName=WikidPad 43 43 AppID={{22A83C29-58A8-4CAB-8EDC-918D74F8429E} 44 44 VersionInfoVersion=1.8 45 VersionInfoTextVersion=WikidPad 1.8rc 845 VersionInfoTextVersion=WikidPad 1.8rc9 45 45 LicenseFile=C:\DATEN\Projekte\Wikidpad\Current\license.txt 46 46 AllowNoIcons=true 47 47 ShowLanguageDialog=yes 48 48 Compression=lzma/ultra 49 OutputBaseFilename=WikidPad-1.8rc 849 OutputBaseFilename=WikidPad-1.8rc9 49 49 InternalCompressLevel=ultra 50 50 AppCopyright=© 2005-2007 Jason Horman, Michael Butscher, Gerhard Reitmayr -
branches/stable-1.8/WikidPadHelp/WikidPadHelp.wiki
r125 r128 4 4 [main] 5 5 footnotes_as_wikiwords = False 6 last_wiki_word = WikidPadHelp6 last_wiki_word = ChangeLog 6 6 filestorage_identity_moddatemustmatch = False 7 7 wiki_name = WikidPadHelp -
branches/stable-1.8/WikidPadHelp/data/ChangeLog.wiki
r125 r128 2 2 3 3 4 Aug. 25, 2007 (1.8rc8) 4 Sep. 26, 2007 (1.8rc9) 5 6 * Bug fixed: Updating wikis from WikidPad 1.1 failed 7 * Bug fixed: Source code did not work correctly with 8 wxPython 2.8 9 * Larger default delays for autosave 10 * Bug fixed (completely?): Starting URLs with characters not in 11 system codepage failed. 12 13 14 15 Aug. 25, 2007 (1.8rc8, repository revision in "stable-1.8" branch: 125) 5 16 6 17 * Internal: wxPython naming scheme changed to solve problems … … 12 23 13 24 14 Jul. 26, 2007 (1.8rc7) 25 Jul. 26, 2007 (1.8rc7, repository revision in "stable-1.8" branch: 122) 14 25 15 26 * Bug fixed: Font face choice dialog from options dialog did -
branches/stable-1.8/lib/pwiki/Exporters.py
r125 r128 25 25 import Configuration 26 26 27 import OsAbstract 28 27 29 import WikiFormatting 28 30 import PageAst … … 75 77 76 78 relUnAlias = self.wikiData.getAliasesWikiWord(word) 77 return self.htmlXmlExporter.convertFilename(u"%s.html" % relUnAlias) 79 return urlFromPathname(self.htmlXmlExporter.convertFilename( 80 u"%s.html" % relUnAlias)) 78 81 79 82 … … 260 263 if self.mainControl.getConfig().getboolean( 261 264 "main", "start_browser_after_export") and startfile: 262 if Configuration.isWindows(): 263 os.startfile(startfile) 264 # os.startfile(mbcsEnc(link2, "replace")[0]) 265 else: 266 # Better solution? 267 wx.LaunchDefaultBrowser(startfile) # TODO 265 OsAbstract.startFile(startfile) 266 # if Configuration.isWindows(): 267 # os.startfile(startfile) 268 # # os.startfile(mbcsEnc(link2, "replace")[0]) 269 # else: 270 # # Better solution? 271 # wx.LaunchDefaultBrowser(startfile) # TODO 268 272 269 273 self.tempFileSet.reset() … … 316 320 317 321 links = {} 318 # notExport = sets.Set() # Cache to store all rejected words319 # wordSet = sets.Set(self.wordList)320 #321 # def addWord(word):322 # if word in links:323 # return324 # if word in notExport:325 # return326 #327 # unAlias = self.wikiData.getAliasesWikiWord(word)328 # if unAlias not in wordSet:329 # notExport.add(word)330 # return331 #332 # wikiPage = self.wikiDataManager.getWikiPage(word)333 # if not self.shouldExport(word, wikiPage):334 # notExport.add(word)335 # return336 #337 # links[word] = u"#%s" % _escapeAnchor(unAlias)338 322 339 323 # First build links dictionary for all included words and their aliases … … 357 341 content = wikiPage.getLiveText() 358 342 formatDetails = wikiPage.getFormatDetails() 359 # links = {} # TODO Why links to all (even not exported) children?360 # for relation in wikiPage.getChildRelationships(361 # existingonly=True, selfreference=False):362 # if not self.shouldExport(relation):363 # continue364 # # get aliases too365 # relUnAlias = self.wikiData.getAliasesWikiWord(relation)366 # # TODO Use self.convertFilename here?367 # links[relation] = u"#%s" % _escapeAnchor(relUnAlias)368 343 369 344 self.wordAnchor = _escapeAnchor(word) … … 1551 1526 p = urllib.url2pathname(link) # TODO Relative URLs 1552 1527 link = wx.FileSystem.FileNameToURL(p) 1553 self.outAppend(u'<img src="%s" border="0"%s%s />' % 1554 (escapeHtml(link), sizeInTag, alignInTag)) 1528 self.outAppend(u'<img src="%s" alt="" border="0"%s%s />' % 1529 (link, sizeInTag, alignInTag)) 1555 1530 else: 1556 1531 # self.outAppend(u'<a href="%s">%s</a>' % … … 1593 1568 else: 1594 1569 self.outAppend(u'<span class="wiki-link"><a href="%s">' % 1595 escapeHtml(link))1570 link) 1595 1570 if tok.node.titleTokens is not None: 1596 1571 self.processTokens(content, tok.node.titleTokens) -
branches/stable-1.8/lib/pwiki/wikidata/original_gadfly/DbStructure.py
r99 r128 151 151 pass 152 152 153 def execSqlInsert(self, table, fields, values): 154 """ 155 Gadfly-specific function. In 2.0 it will be able to create default 156 values for non-existant fields. 157 """ 158 fieldStr = ", ".join(fields) 159 qmStr = ", ".join(["?"] * len(fields)) 160 self.execSql("insert into %s(%s) values (%s)" % (table, fieldStr, qmStr), 161 values) 162 153 163 154 164 def getLastRowid(self): … … 209 219 210 220 TABLE_DEFINITIONS = { 211 # "changelog": ( # Essential if versioning used212 # ("id", t.pi),213 # ("word", t.t),214 # ("op", t.i),215 # ("content", t.b),216 # ("compression", t.i),217 # ("encryption", t.i),218 # ("moddate", t.r)219 # ),220 #221 #222 # "headversion": ( # Essential if versioning used223 # ("word", t.t),224 # ("content", t.b),225 # ("compression", t.i),226 # ("encryption", t.i),227 # ("modified", t.r),228 # ("created", t.r)229 # ),230 #231 #232 # "versions": ( # Essential if versioning used233 # ("id", t.pi),234 # ("description", t.t),235 # ("firstchangeid", t.i),236 # ("created", t.r)237 # ),238 #239 #240 # "wikiwordcontent": ( # Essential for Compact241 # ("word", t.t),242 # ("content", t.b),243 # ("compression", t.i),244 # ("encryption", t.i),245 # ("modified", t.r),246 # ("created", t.r)247 # ),248 249 250 221 "wikiwords": ( # Essential 251 222 ("word", t.t), … … 716 687 w = wikiWordToLabel(w) 717 688 if not uniqueCtl.has_key(w): 718 connwrap.execSql("insert into wikiwords(word, created, modified) " 719 "values (?, ?, ?)", (w, c, m)) 689 connwrap.execSqlInsert("wikiwords", ("word", "created", 690 "modified", "presentationdatablock", "wordnormcase"), 691 (w, c, m, "", "")) 692 # connwrap.execSql("insert into wikiwords(word, created, modified) " 693 # "values (?, ?, ?)", (w, c, m)) 720 694 uniqueCtl[w] = None 721 695 … … 733 707 w, r = wikiWordToLabel(w), wikiWordToLabel(r) 734 708 if not uniqueCtl.has_key((w, r)): 735 connwrap.execSql("insert into wikirelations(word, relation, created) " 736 "values (?, ?, ?)", (w, r, c)) 709 connwrap.execSqlInsert("wikirelations", ("word", "relation", 710 "created"), (w, r, c)) 711 # connwrap.execSql("insert into wikirelations(word, relation, created) " 712 # "values (?, ?, ?)", (w, r, c)) 737 713 uniqueCtl[(w, r)] = None 738 714 … … 747 723 748 724 for w, k, v in dataIn: 749 connwrap.execSql("insert into wikiwordprops(word, key, value) " 750 "values (?, ?, ?)", (wikiWordToLabel(w), k, v)) 725 connwrap.execSqlInsert("wikiwordprops", ("word", "key", 726 "value"), (wikiWordToLabel(w), k, v)) 727 # connwrap.execSql("insert into wikiwordprops(word, key, value) " 728 # "values (?, ?, ?)", (wikiWordToLabel(w), k, v)) 751 729 752 730 # table todos … … 760 738 761 739 for w, t in dataIn: 762 connwrap.execSql("insert into todos(word, todo) " 763 "values (?, ?)", (wikiWordToLabel(w), t)) 740 connwrap.execSqlInsert("todos", ("word", "todo"), 741 (wikiWordToLabel(w), t)) 742 # connwrap.execSql("insert into todos(word, todo) " 743 # "values (?, ?)", (wikiWordToLabel(w), t)) 764 744 765 745 formatver = 2 … … 809 789 Performs further updates 810 790 """ 811 setSettingsValue(connwrap, "lastwritever", str(VERSION_DB)) 791 try: 792 setSettingsValue(connwrap, "lastwritever", str(VERSION_DB)) 793 except IOError: 794 pass 812 795 813 796 -
branches/stable-1.8/lib/pwiki/Configuration.py
r125 r128 4 4 5 5 import codecs 6 7 6 import wx 7 8 8 # from wxPython.wx import wxPlatformInfo, wxGetOsVersion, wxGetApp 9 9 10 wxWINDOWS_NT = 18 # For wx.GetOsVersion() 11 wxWIN95 = 20 # For wx.GetOsVersion(), this includes also Win 98 and ME 10 # Bug workaround: In wxPython 2.6 these constants weren't defined 11 # in 2.8 they are defined under a different name and with different values 12 13 try: 14 wxWINDOWS_NT = wx.OS_WINDOWS_NT 15 except AttributeError: 16 wxWINDOWS_NT = 18 # For wx.GetOsVersion() 17 18 try: 19 wxWIN95 = wx.OS_WINDOWS_9X 20 except AttributeError: 21 wxWIN95 = 20 # For wx.GetOsVersion(), this includes also Win 98 and ME 12 22 13 23 … … 39 49 40 50 _ISWIN9x = wx.GetOsVersion()[0] == wxWIN95 51 _ISWINNT = wx.GetOsVersion()[0] == wxWINDOWS_NT 41 52 42 53 def isWin9x(): 43 54 """ 44 Returns True if OS is W Indows 95/98/ME55 Returns True if OS is Windows 95/98/ME 44 55 """ 45 56 return _ISWIN9x 46 57 58 def isWinNT(): 59 return _ISWINNT 47 60 48 61 def isWindows(): 49 return _ISWIN9x or wx.GetOsVersion()[0] == wxWINDOWS_NT62 return _ISWIN9x or _ISWINNT 49 62 50 63 … … 490 503 491 504 ("main", "auto_save"): "True", # Boolean field, if auto save should be active 492 ("main", "auto_save_delay_key_pressed"): "3", # Seconds to wait after last key pressed and ... 493 ("main", "auto_save_delay_dirty"): "15", # secs. to wait after page became dirty before auto save 505 ("main", "auto_save_delay_key_pressed"): "5", # Seconds to wait after last key pressed and ... 506 ("main", "auto_save_delay_dirty"): "60", # secs. to wait after page became dirty before auto save 494 507 495 508 ("main", "hideundefined"): "False", # hide undefined wikiwords in tree -
branches/stable-1.8/lib/pwiki/PersonalWikiFrame.py
r126 r128 4 4 import os, sys, gc, traceback, sets, string, re 5 5 from os.path import * 6 from time import localtime, time, strftime 6 from time import localtime, time, strftime, sleep 6 6 7 7 import cPickle … … 24 24 import Configuration 25 25 from WindowLayout import WindowLayouter, setWindowPos, setWindowSize 26 # from WikiData import *27 26 from wikidata import DbBackendUtils, WikiDataManager 28 # from wikidata.WikiDataManager import WikiDataManager 27 28 import OsAbstract 29 29 30 import DocPages, WikiFormatting 30 31 … … 350 351 351 352 if cmdLineAction.exitFinally: 352 self.Close() 353 self.Destroy() 353 self.exitWiki() 354 # self.Close() 355 # self.Destroy() 354 356 return 355 357 … … 1326 1328 menuID=wx.NewId() 1327 1329 helpMenu.Append(menuID, '&Visit wikidPad Homepage', 'Visit Homepage') 1328 wx.EVT_MENU(self, menuID, lambda evt: os.startfile('http://www.jhorman.org/wikidPad/')) 1330 wx.EVT_MENU(self, menuID, lambda evt: OsAbstract.startFile( 1331 u'http://www.jhorman.org/wikidPad/')) 1329 1332 1330 1333 helpMenu.AppendSeparator() … … 1332 1335 menuID=wx.NewId() 1333 1336 helpMenu.Append(menuID, 'View &License', 'View License') 1334 wx.EVT_MENU(self, menuID, lambda evt: os.startfile(join(self.wikiAppDir, 'license.txt'))) 1337 wx.EVT_MENU(self, menuID, lambda evt: OsAbstract.startFile( 1338 join(self.wikiAppDir, u'license.txt'))) 1335 1339 1336 1340 helpMenu.AppendSeparator() … … 1400 1404 icon = self.lookupIcon("tb_back") 1401 1405 tbID = wx.NewId() 1402 tb.AddSimpleTool(tbID, icon, "Back (Ctrl-Alt-Back)", "Back")1406 tb.AddSimpleTool(tbID, icon, "Back", "Back") 1402 1406 wx.EVT_TOOL(self, tbID, lambda evt: self.pageHistory.goInHistory(-1)) 1403 1407 1404 1408 icon = self.lookupIcon("tb_forward") 1405 1409 tbID = wx.NewId() 1406 tb.AddSimpleTool(tbID, icon, "Forward (Ctrl-Alt-Forward)", "Forward")1410 tb.AddSimpleTool(tbID, icon, "Forward", "Forward") 1406 1410 wx.EVT_TOOL(self, tbID, lambda evt: self.pageHistory.goInHistory(1)) 1407 1411 … … 1417 1421 icon = self.lookupIcon("tb_doc") 1418 1422 tbID = wx.NewId() 1419 tb.AddSimpleTool(tbID, icon, "Open Wiki Word (Ctrl-O)", "Open Wiki Word")1423 tb.AddSimpleTool(tbID, icon, "Open Wiki Word", "Open Wiki Word") 1419 1423 wx.EVT_TOOL(self, tbID, lambda evt: self.showWikiWordOpenDialog()) 1420 1424 1421 1425 icon = self.lookupIcon("tb_lens") 1422 1426 tbID = wx.NewId() 1423 tb.AddSimpleTool(tbID, icon, "Search (Ctrl-Alt-F)", "Search")1427 tb.AddSimpleTool(tbID, icon, "Search", "Search") 1423 1427 wx.EVT_TOOL(self, tbID, lambda evt: self.showSearchDialog()) 1424 1428 … … 1433 1437 1434 1438 icon = self.lookupIcon("tb_save") 1435 tb.AddSimpleTool(GUI_ID.CMD_SAVE_WIKI, icon, "Save Wiki Word (Ctrl-S)",1439 tb.AddSimpleTool(GUI_ID.CMD_SAVE_WIKI, icon, "Save Wiki Word", 1435 1439 "Save Wiki Word") 1436 1440 wx.EVT_TOOL(self, GUI_ID.CMD_SAVE_WIKI, … … 1441 1445 icon = self.lookupIcon("tb_rename") 1442 1446 tbID = wx.NewId() 1443 tb.AddSimpleTool(tbID, icon, "Rename Wiki Word (Ctrl-Alt-R)", "Rename Wiki Word")1447 tb.AddSimpleTool(tbID, icon, "Rename Wiki Word", "Rename Wiki Word") 1443 1447 wx.EVT_TOOL(self, tbID, lambda evt: self.showWikiWordRenameDialog()) 1444 1448 1445 1449 icon = self.lookupIcon("tb_delete") 1446 1450 tbID = wx.NewId() 1447 tb.AddSimpleTool(tbID, icon, "Delete (Ctrl-D)", "Delete Wiki Word")1451 &nb
