Changeset 275

Show
Ignore:
Timestamp:
06/03/11 10:58:15 (2 years ago)
Author:
mbutscher
Message:

branches/stable-2.1:
* Internal: Bug fixed: Error in error handling for plugins
* Internal: Bug fixed: Some functions in plugins were not registered

for calling

* Bug fixed: WikidPad can't be closed if volume access lost during session

branches/mbutscher/work:
* Internal: Bug fixed: Error in error handling for plugins
* Internal: Bug fixed: Some functions in plugins were not registered

for calling

* Grammar change to forbid bold and italics to span over a heading
* Bug fixed: WikidPad can't be closed if volume access lost during session

Location:
branches
Files:
14 modified

Legend:

Unmodified
Added
Removed
  • branches/mbutscher/work/Consts.py

    r274 r275  
    2424# (2, 0, 300, 0) is 2.0final 
    2525 
    26 VERSION_TUPLE = ("wikidPad", 2, 2, 104, 0) 
    27 VERSION_STRING = "wikidPad 2.2beta04" 
     26VERSION_TUPLE = ("wikidPad", 2, 2, 104, 1) 
     27VERSION_STRING = "wikidPad 2.2beta04_1" 
    2828HOMEPAGE = u"http://wikidpad.sourceforge.net" 
    2929 
  • branches/mbutscher/work/WikidPad.pot

    r274 r275  
    66msgstr "" 
    77"Project-Id-Version: PACKAGE VERSION\n" 
    8 "POT-Creation-Date: 2011-05-28 12:12\n" 
     8"POT-Creation-Date: 2011-06-03 08:57\n" 
    99"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 
    1010"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 
     
    14741474 
    14751475#: WikidPad.xrc:0 lib\pwiki\DiffGui.py:436 lib\pwiki\PersonalWikiFrame.py:1338 
    1476 #: lib\pwiki\WikiTxtCtrl.py:3811 
     1476#: lib\pwiki\WikiTxtCtrl.py:3820 
    14771477msgid "Copy" 
    14781478msgstr "" 
    14791479 
    14801480#: WikidPad.xrc:0 lib\pwiki\DiffGui.py:437 lib\pwiki\PersonalWikiFrame.py:1347 
    1481 #: lib\pwiki\WikiTxtCtrl.py:3814 
     1481#: lib\pwiki\WikiTxtCtrl.py:3823 
    14821482msgid "Select All" 
    14831483msgstr "" 
    14841484 
    1485 #: WikidPad.xrc:0 lib\pwiki\DiffGui.py:439 lib\pwiki\WikiTxtCtrl.py:3830 
     1485#: WikidPad.xrc:0 lib\pwiki\DiffGui.py:439 lib\pwiki\WikiTxtCtrl.py:3839 
    14861486msgid "Close Tab" 
    14871487msgstr "" 
     
    15011501#: WikidPad.xrc:0 lib\pwiki\FileCleanup.py:529 lib\pwiki\FileCleanup.py:531 
    15021502#: lib\pwiki\FileCleanup.py:687 lib\pwiki\FileCleanup.py:1265 
    1503 #: lib\pwiki\WikiTxtCtrl.py:3813 
     1503#: lib\pwiki\WikiTxtCtrl.py:3822 
    15041504msgid "Delete" 
    15051505msgstr "" 
     
    15331533 
    15341534#: WikidPad.xrc:0 lib\pwiki\PersonalWikiFrame.py:1313 
    1535 #: lib\pwiki\WikiTxtCtrl.py:3808 
     1535#: lib\pwiki\WikiTxtCtrl.py:3817 
    15361536msgid "Undo" 
    15371537msgstr "" 
    15381538 
    15391539#: WikidPad.xrc:0 lib\pwiki\PersonalWikiFrame.py:1317 
    1540 #: lib\pwiki\WikiTxtCtrl.py:3809 
     1540#: lib\pwiki\WikiTxtCtrl.py:3818 
    15411541msgid "Redo" 
    15421542msgstr "" 
    15431543 
    15441544#: WikidPad.xrc:0 lib\pwiki\PersonalWikiFrame.py:1333 
    1545 #: lib\pwiki\WikiTxtCtrl.py:3810 
     1545#: lib\pwiki\WikiTxtCtrl.py:3819 
    15461546msgid "Cut" 
    15471547msgstr "" 
    15481548 
    15491549#: WikidPad.xrc:0 lib\pwiki\PersonalWikiFrame.py:1342 
    1550 #: lib\pwiki\WikiTxtCtrl.py:3812 
     1550#: lib\pwiki\WikiTxtCtrl.py:3821 
    15511551msgid "Paste" 
    15521552msgstr "" 
     
    16001600msgstr "" 
    16011601 
    1602 #: WikidPadStarter.py:207 lib\pwiki\PersonalWikiFrame.py:5136 
     1602#: WikidPadStarter.py:207 lib\pwiki\PersonalWikiFrame.py:5139 
    16031603#: lib\pwiki\SearchAndReplaceDialogs.py:724 
    16041604#: lib\pwiki\SearchAndReplaceDialogs.py:1008 
     
    17781778msgstr "" 
    17791779 
    1780 #: extensions\wikidPadParser\WikidPadParser.py:1627 
     1780#: extensions\wikidPadParser\WikidPadParser.py:1649 
     1781#: extensions\wikidPadParser\WikidPadParser.py:1676 
     1782msgid "This is a footnote" 
     1783msgstr "" 
     1784 
    17811785#: extensions\wikidPadParser\WikidPadParser.py:1654 
    1782 msgid "This is a footnote" 
    1783 msgstr "" 
    1784  
    1785 #: extensions\wikidPadParser\WikidPadParser.py:1632 
    1786 #: extensions\wikidPadParser\WikidPadParser.py:1659 
     1786#: extensions\wikidPadParser\WikidPadParser.py:1681 
    17871787msgid "This is syntactically not a wiki word" 
    17881788msgstr "" 
    17891789 
    1790 #: extensions\wikidPadParser\WikidPadParser.py:2276 
     1790#: extensions\wikidPadParser\WikidPadParser.py:2298 
    17911791msgid "++ Wiki Settings\n" 
    17921792"\n" 
     
    19411941msgstr "" 
    19421942 
    1943 #: lib\pwiki\AdditionalDialogs.py:1241 lib\pwiki\PersonalWikiFrame.py:4722 
     1943#: lib\pwiki\AdditionalDialogs.py:1241 lib\pwiki\PersonalWikiFrame.py:4725 
    19441944msgid "Exporting" 
    19451945msgstr "" 
    19461946 
    1947 #: lib\pwiki\AdditionalDialogs.py:1243 lib\pwiki\PersonalWikiFrame.py:4724 
     1947#: lib\pwiki\AdditionalDialogs.py:1243 lib\pwiki\PersonalWikiFrame.py:4727 
    19481948msgid "Preparing" 
    19491949msgstr "" 
     
    19531953msgstr "" 
    19541954 
    1955 #: lib\pwiki\AdditionalDialogs.py:1279 lib\pwiki\PersonalWikiFrame.py:4665 
     1955#: lib\pwiki\AdditionalDialogs.py:1279 lib\pwiki\PersonalWikiFrame.py:4668 
    19561956msgid "Select Export Directory" 
    19571957msgstr "" 
     
    19651965msgstr "" 
    19661966 
    1967 #: lib\pwiki\AdditionalDialogs.py:1325 lib\pwiki\PersonalWikiFrame.py:4689 
    1968 #: lib\pwiki\PersonalWikiFrame.py:4705 lib\pwiki\Printing.py:183 
     1967#: lib\pwiki\AdditionalDialogs.py:1325 lib\pwiki\PersonalWikiFrame.py:4692 
     1968#: lib\pwiki\PersonalWikiFrame.py:4708 lib\pwiki\Printing.py:183 
    19691969msgid "No real wiki word selected as root" 
    19701970msgstr "" 
     
    27062706msgstr "" 
    27072707 
    2708 #: lib\pwiki\MainAreaPanel.py:665 lib\pwiki\WikiTxtCtrl.py:2342 
     2708#: lib\pwiki\MainAreaPanel.py:665 lib\pwiki\WikiTxtCtrl.py:2341 
    27092709msgid "This can only be done for the page of a wiki word" 
    27102710msgstr "" 
    27112711 
    2712 #: lib\pwiki\MainAreaPanel.py:666 lib\pwiki\WikiTxtCtrl.py:2343 
     2712#: lib\pwiki\MainAreaPanel.py:666 lib\pwiki\WikiTxtCtrl.py:2342 
    27132713msgid "Not a wiki page" 
    27142714msgstr "" 
     
    31023102msgstr "" 
    31033103 
    3104 #: lib\pwiki\PersonalWikiFrame.py:942 lib\pwiki\PersonalWikiFrame.py:5702 
     3104#: lib\pwiki\PersonalWikiFrame.py:942 lib\pwiki\PersonalWikiFrame.py:5705 
    31053105msgid "Exit" 
    31063106msgstr "" 
     
    31273127 
    31283128#: lib\pwiki\PersonalWikiFrame.py:1194 lib\pwiki\PersonalWikiFrame.py:1924 
    3129 #: lib\pwiki\PersonalWikiFrame.py:2443 lib\pwiki\PersonalWikiFrame.py:3856 
    3130 #: lib\pwiki\PersonalWikiFrame.py:4942 lib\pwiki\PersonalWikiFrame.py:5279 
     3129#: lib\pwiki\PersonalWikiFrame.py:2443 lib\pwiki\PersonalWikiFrame.py:3859 
     3130#: lib\pwiki\PersonalWikiFrame.py:4945 lib\pwiki\PersonalWikiFrame.py:5282 
    31313131msgid "Error while starting new WikidPad instance" 
    31323132msgstr "" 
     
    31843184msgstr "" 
    31853185 
    3186 #: lib\pwiki\PersonalWikiFrame.py:1371 lib\pwiki\PersonalWikiFrame.py:4253 
     3186#: lib\pwiki\PersonalWikiFrame.py:1371 lib\pwiki\PersonalWikiFrame.py:4256 
    31873187msgid "Set at Page" 
    31883188msgstr "" 
     
    37913791 
    37923792#: lib\pwiki\PersonalWikiFrame.py:2086 lib\pwiki\PersonalWikiFrame.py:2087 
    3793 #: lib\pwiki\PersonalWikiFrame.py:4398 
     3793#: lib\pwiki\PersonalWikiFrame.py:4401 
    37943794msgid "Delete Wiki Word" 
    37953795msgstr "" 
     
    39953995msgstr "" 
    39963996 
    3997 #: lib\pwiki\PersonalWikiFrame.py:3828 
     3997#: lib\pwiki\PersonalWikiFrame.py:3831 
    39983998msgid "Couldn't start file" 
    39993999msgstr "" 
    40004000 
    4001 #: lib\pwiki\PersonalWikiFrame.py:3836 
     4001#: lib\pwiki\PersonalWikiFrame.py:3839 
    40024002msgid "Couldn't open wiki: %s" 
    40034003msgstr "" 
    40044004 
    4005 #: lib\pwiki\PersonalWikiFrame.py:3887 
     4005#: lib\pwiki\PersonalWikiFrame.py:3890 
    40064006msgid "Mod.: %s" 
    40074007msgstr "" 
    40084008 
    4009 #: lib\pwiki\PersonalWikiFrame.py:3888 
     4009#: lib\pwiki\PersonalWikiFrame.py:3891 
    40104010msgid "; Crea.: %s" 
    40114011msgstr "" 
    40124012 
    4013 #: lib\pwiki\PersonalWikiFrame.py:3925 
     4013#: lib\pwiki\PersonalWikiFrame.py:3928 
    40144014msgid "Parent nodes of '%s'" 
    40154015msgstr "" 
    40164016 
    4017 #: lib\pwiki\PersonalWikiFrame.py:3937 
     4017#: lib\pwiki\PersonalWikiFrame.py:3940 
    40184018msgid "Parentless nodes" 
    40194019msgstr "" 
    40204020 
    4021 #: lib\pwiki\PersonalWikiFrame.py:3949 
     4021#: lib\pwiki\PersonalWikiFrame.py:3952 
    40224022msgid "Child nodes of '%s'" 
    40234023msgstr "" 
    40244024 
    4025 #: lib\pwiki\PersonalWikiFrame.py:3962 
     4025#: lib\pwiki\PersonalWikiFrame.py:3965 
    40264026msgid "Bookmarks" 
    40274027msgstr "" 
    40284028 
    4029 #: lib\pwiki\PersonalWikiFrame.py:4109 
     4029#: lib\pwiki\PersonalWikiFrame.py:4112 
    40304030msgid "Wiki: %s" 
    40314031msgstr "" 
    40324032 
    4033 #: lib\pwiki\PersonalWikiFrame.py:4248 
     4033#: lib\pwiki\PersonalWikiFrame.py:4251 
    40344034msgid "Set at Page: %s\t%s" 
    40354035msgstr "" 
    40364036 
    4037 #: lib\pwiki\PersonalWikiFrame.py:4264 
     4037#: lib\pwiki\PersonalWikiFrame.py:4267 
    40384038msgid "Error saving global configuration" 
    40394039msgstr "" 
    40404040 
    4041 #: lib\pwiki\PersonalWikiFrame.py:4275 
     4041#: lib\pwiki\PersonalWikiFrame.py:4278 
    40424042msgid "Error saving current configuration" 
    40434043msgstr "" 
    40444044 
    4045 #: lib\pwiki\PersonalWikiFrame.py:4297 
     4045#: lib\pwiki\PersonalWikiFrame.py:4300 
    40464046msgid "No real wiki word selected to rename" 
    40474047msgstr "" 
    40484048 
    4049 #: lib\pwiki\PersonalWikiFrame.py:4301 
     4049#: lib\pwiki\PersonalWikiFrame.py:4304 
    40504050msgid "The scratch pad cannot be renamed." 
    40514051msgstr "" 
    40524052 
    4053 #: lib\pwiki\PersonalWikiFrame.py:4325 
     4053#: lib\pwiki\PersonalWikiFrame.py:4328 
    40544054msgid "Description:" 
    40554055msgstr "" 
    40564056 
    4057 #: lib\pwiki\PersonalWikiFrame.py:4326 
     4057#: lib\pwiki\PersonalWikiFrame.py:4329 
    40584058msgid "Store new version" 
    40594059msgstr "" 
    40604060 
    4061 #: lib\pwiki\PersonalWikiFrame.py:4340 
     4061#: lib\pwiki\PersonalWikiFrame.py:4343 
    40624062msgid "Do you want to delete all stored versions?" 
    40634063msgstr "" 
    40644064 
    4065 #: lib\pwiki\PersonalWikiFrame.py:4341 
     4065#: lib\pwiki\PersonalWikiFrame.py:4344 
    40664066msgid "Delete All Versions" 
    40674067msgstr "" 
    40684068 
    4069 #: lib\pwiki\PersonalWikiFrame.py:4386 
     4069#: lib\pwiki\PersonalWikiFrame.py:4389 
    40704070msgid "The scratch pad cannot be deleted" 
    40714071msgstr "" 
    40724072 
    4073 #: lib\pwiki\PersonalWikiFrame.py:4390 
     4073#: lib\pwiki\PersonalWikiFrame.py:4393 
    40744074msgid "No real wiki word to delete" 
    40754075msgstr "" 
    40764076 
    4077 #: lib\pwiki\PersonalWikiFrame.py:4397 
     4077#: lib\pwiki\PersonalWikiFrame.py:4400 
    40784078msgid "Are you sure you want to delete wiki word '%s'?" 
    40794079msgstr "" 
    40804080 
    4081 #: lib\pwiki\PersonalWikiFrame.py:4428 
     4081#: lib\pwiki\PersonalWikiFrame.py:4431 
    40824082msgid "No real wiki word to modify" 
    40834083msgstr "" 
    40844084 
    4085 #: lib\pwiki\PersonalWikiFrame.py:4444 
     4085#: lib\pwiki\PersonalWikiFrame.py:4447 
    40864086msgid "Replace text by WikiWord:" 
    40874087msgstr "" 
    40884088 
    4089 #: lib\pwiki\PersonalWikiFrame.py:4445 
     4089#: lib\pwiki\PersonalWikiFrame.py:4448 
    40904090msgid "Replace by Wiki Word" 
    40914091msgstr "" 
    40924092 
    4093 #: lib\pwiki\PersonalWikiFrame.py:4454 
     4093#: lib\pwiki\PersonalWikiFrame.py:4457 
    40944094msgid "'%s' is an invalid wiki word." 
    40954095msgstr "" 
    40964096 
    4097 #: lib\pwiki\PersonalWikiFrame.py:4469 
     4097#: lib\pwiki\PersonalWikiFrame.py:4472 
    40984098msgid "Wiki word %s exists already\n" 
    40994099"Would you like to append to the word?" 
    41004100msgstr "" 
    41014101 
    4102 #: lib\pwiki\PersonalWikiFrame.py:4472 
     4102#: lib\pwiki\PersonalWikiFrame.py:4475 
    41034103msgid "Word exists" 
    41044104msgstr "" 
    41054105 
    4106 #: lib\pwiki\PersonalWikiFrame.py:4730 
     4106#: lib\pwiki\PersonalWikiFrame.py:4733 
    41074107msgid "Error on export" 
    41084108msgstr "" 
    41094109 
    4110 #: lib\pwiki\PersonalWikiFrame.py:4802 
     4110#: lib\pwiki\PersonalWikiFrame.py:4805 
    41114111msgid "Are you sure you want to start a full rebuild of wiki in background?" 
    41124112msgstr "" 
    41134113 
    4114 #: lib\pwiki\PersonalWikiFrame.py:4804 
     4114#: lib\pwiki\PersonalWikiFrame.py:4807 
    41154115msgid "Initiate update" 
    41164116msgstr "" 
    41174117 
    4118 #: lib\pwiki\PersonalWikiFrame.py:4811 lib\pwiki\PersonalWikiFrame.py:4812 
     4118#: lib\pwiki\PersonalWikiFrame.py:4814 lib\pwiki\PersonalWikiFrame.py:4815 
    41194119msgid "     Initiating update     " 
    41204120msgstr "" 
    41214121 
    4122 #: lib\pwiki\PersonalWikiFrame.py:4826 
     4122#: lib\pwiki\PersonalWikiFrame.py:4829 
    41234123msgid "Error initiating update" 
    41244124msgstr "" 
    41254125 
    4126 #: lib\pwiki\PersonalWikiFrame.py:4835 
     4126#: lib\pwiki\PersonalWikiFrame.py:4838 
    41274127msgid "Are you sure you want to rebuild this wiki? You may want to backup your data first!" 
    41284128msgstr "" 
    41294129 
    4130 #: lib\pwiki\PersonalWikiFrame.py:4837 
     4130#: lib\pwiki\PersonalWikiFrame.py:4840 
    41314131msgid "Rebuild wiki" 
    41324132msgstr "" 
    41334133 
    4134 #: lib\pwiki\PersonalWikiFrame.py:4844 lib\pwiki\PersonalWikiFrame.py:4845 
     4134#: lib\pwiki\PersonalWikiFrame.py:4847 lib\pwiki\PersonalWikiFrame.py:4848 
    41354135msgid "     Rebuilding wiki     " 
    41364136msgstr "" 
    41374137 
    4138 #: lib\pwiki\PersonalWikiFrame.py:4860 
     4138#: lib\pwiki\PersonalWikiFrame.py:4863 
    41394139msgid "Error rebuilding wiki" 
    41404140msgstr "" 
    41414141 
    4142 #: lib\pwiki\PersonalWikiFrame.py:4952 
     4142#: lib\pwiki\PersonalWikiFrame.py:4955 
    41434143msgid "This could overwrite pages in the database. Continue?" 
    41444144msgstr "" 
    41454145 
    4146 #: lib\pwiki\PersonalWikiFrame.py:4953 
     4146#: lib\pwiki\PersonalWikiFrame.py:4956 
    41474147msgid "Import pagefiles" 
    41484148msgstr "" 
    41494149 
    4150 #: lib\pwiki\PersonalWikiFrame.py:5055 
     4150#: lib\pwiki\PersonalWikiFrame.py:5058 
    41514151msgid "No list of strings passed to \"listmcstr\" dialog" 
    41524152msgstr "" 
    41534153 
    4154 #: lib\pwiki\PersonalWikiFrame.py:5078 
     4154#: lib\pwiki\PersonalWikiFrame.py:5081 
    41554155msgid "Unknown dialog type" 
    41564156msgstr "" 
    41574157 
    4158 #: lib\pwiki\PersonalWikiFrame.py:5247 lib\pwiki\PersonalWikiFrame.py:5265 
    4159 #: lib\pwiki\PersonalWikiFrame.py:5290 
     4158#: lib\pwiki\PersonalWikiFrame.py:5250 lib\pwiki\PersonalWikiFrame.py:5268 
     4159#: lib\pwiki\PersonalWikiFrame.py:5293 
    41604160msgid "Choose a Wiki to open" 
    41614161msgstr "" 
    41624162 
    4163 #: lib\pwiki\PersonalWikiFrame.py:5304 
     4163#: lib\pwiki\PersonalWikiFrame.py:5307 
    41644164msgid "Name for new wiki (must be in the form of a WikiWord):" 
    41654165msgstr "" 
    41664166 
    4167 #: lib\pwiki\PersonalWikiFrame.py:5305 
     4167#: lib\pwiki\PersonalWikiFrame.py:5308 
    41684168msgid "Create New Wiki" 
    41694169msgstr "" 
    41704170 
    4171 #: lib\pwiki\PersonalWikiFrame.py:5320 
     4171#: lib\pwiki\PersonalWikiFrame.py:5323 
    41724172msgid "Directory to store new wiki" 
    41734173msgstr "" 
    41744174 
    4175 #: lib\pwiki\PersonalWikiFrame.py:5331 
     4175#: lib\pwiki\PersonalWikiFrame.py:5334 
    41764176#: lib\pwiki\wikidata\WikiDataManager.py:1420 
    41774177#: lib\pwiki\wikidata\WikiDataManager.py:1476 
     
    41794179msgstr "" 
    41804180 
    4181 #: lib\pwiki\PersonalWikiFrame.py:5635 
     4181#: lib\pwiki\PersonalWikiFrame.py:5638 
    41824182msgid "Clipboard Catcher at Cursor" 
    41834183msgstr "" 
    41844184 
    4185 #: lib\pwiki\PersonalWikiFrame.py:5639 
     4185#: lib\pwiki\PersonalWikiFrame.py:5642 
    41864186msgid "Clipboard Catcher off" 
    41874187msgstr "" 
    41884188 
    4189 #: lib\pwiki\PersonalWikiFrame.py:5700 
     4189#: lib\pwiki\PersonalWikiFrame.py:5703 
    41904190msgid "Restore" 
    41914191msgstr "" 
    41924192 
    4193 #: lib\pwiki\PersonalWikiFrame.py:5701 
     4193#: lib\pwiki\PersonalWikiFrame.py:5704 
    41944194msgid "Save" 
    41954195msgstr "" 
     
    43624362msgstr "" 
    43634363 
    4364 #: lib\pwiki\WikiHtmlView.py:558 lib\pwiki\WikiTxtCtrl.py:2179 
     4364#: lib\pwiki\WikiHtmlView.py:558 lib\pwiki\WikiTxtCtrl.py:2178 
    43654365msgid "Folder does not exist" 
    43664366msgstr "" 
    43674367 
    43684368#: lib\pwiki\WikiHtmlView.py:650 lib\pwiki\WikiHtmlViewIE.py:494 
    4369 #: lib\pwiki\WikiHtmlViewWK.py:968 lib\pwiki\WikiTxtCtrl.py:3355 
     4369#: lib\pwiki\WikiHtmlViewWK.py:968 lib\pwiki\WikiTxtCtrl.py:3364 
    43704370msgid "Link to page: %s" 
    43714371msgstr "" 
     
    44394439msgstr "" 
    44404440 
    4441 #: lib\pwiki\WikiTxtCtrl.py:1271 
     4441#: lib\pwiki\WikiTxtCtrl.py:1270 
    44424442msgid "Select Template" 
    44434443msgstr "" 
    44444444 
    4445 #: lib\pwiki\WikiTxtCtrl.py:1273 
     4445#: lib\pwiki\WikiTxtCtrl.py:1272 
    44464446msgid "Select Template (deletes current content!)" 
    44474447msgstr "" 
    44484448 
    4449 #: lib\pwiki\WikiTxtCtrl.py:1379 
     4449#: lib\pwiki\WikiTxtCtrl.py:1378 
    44504450msgid "Use Template" 
    44514451msgstr "" 
    44524452 
    4453 #: lib\pwiki\WikiTxtCtrl.py:2209 lib\pwiki\WikiTxtCtrl.py:2248 
     4453#: lib\pwiki\WikiTxtCtrl.py:2208 lib\pwiki\WikiTxtCtrl.py:2247 
    44544454msgid "File does not exist" 
    44554455msgstr "" 
    44564456 
     4457#: lib\pwiki\WikiTxtCtrl.py:2214 
     4458msgid "Are you sure you want to delete the file: %s" 
     4459msgstr "" 
     4460 
    44574461#: lib\pwiki\WikiTxtCtrl.py:2215 
    4458 msgid "Are you sure you want to delete the file: %s" 
    4459 msgstr "" 
    4460  
    4461 #: lib\pwiki\WikiTxtCtrl.py:2216 
    44624462msgid "Delete File" 
    44634463msgstr "" 
    44644464 
     4465#: lib\pwiki\WikiTxtCtrl.py:2255 
     4466msgid "Enter new name" 
     4467msgstr "" 
     4468 
    44654469#: lib\pwiki\WikiTxtCtrl.py:2256 
    4466 msgid "Enter new name" 
    4467 msgstr "" 
    4468  
    4469 #: lib\pwiki\WikiTxtCtrl.py:2257 
    44704470msgid "Rename File" 
    44714471msgstr "" 
    44724472 
    4473 #: lib\pwiki\WikiTxtCtrl.py:2267 
     4473#: lib\pwiki\WikiTxtCtrl.py:2266 
    44744474msgid "Target is not a file" 
    44754475msgstr "" 
    44764476 
     4477#: lib\pwiki\WikiTxtCtrl.py:2270 
     4478msgid "Target file exists already. Overwrite?" 
     4479msgstr "" 
     4480 
    44774481#: lib\pwiki\WikiTxtCtrl.py:2271 
    4478 msgid "Target file exists already. Overwrite?" 
    4479 msgstr "" 
    4480  
    4481 #: lib\pwiki\WikiTxtCtrl.py:2272 
    44824482msgid "Overwrite File" 
    44834483msgstr "" 
    44844484 
    4485 #: lib\pwiki\WikiTxtCtrl.py:2364 
     4485#: lib\pwiki\WikiTxtCtrl.py:2363 
    44864486msgid "Set in menu \"Wiki\", item \"Options...\", options page \"Security\", \n" 
    44874487"item \"Script security\" an appropriate value to execute a script." 
    44884488msgstr "" 
    44894489 
    4490 #: lib\pwiki\WikiTxtCtrl.py:2367 
     4490#: lib\pwiki\WikiTxtCtrl.py:2366 
    44914491msgid "Script execution disabled" 
    44924492msgstr "" 
    44934493 
    4494 #: lib\pwiki\WikiTxtCtrl.py:2439 
     4494#: lib\pwiki\WikiTxtCtrl.py:2438 
    44954495msgid "\n" 
    44964496"Exception: %s" 
    44974497msgstr "" 
    44984498 
    4499 #: lib\pwiki\WikiTxtCtrl.py:3147 
     4499#: lib\pwiki\WikiTxtCtrl.py:3146 
    45004500msgid "No more fields in this 'form' page" 
    45014501msgstr "" 
    45024502 
    4503 #: lib\pwiki\WikiTxtCtrl.py:3306 
     4503#: lib\pwiki\WikiTxtCtrl.py:3315 
    45044504msgid "Line: %d Col: %d Pos: %d" 
    45054505msgstr "" 
    45064506 
    4507 #: lib\pwiki\WikiTxtCtrl.py:3411 
     4507#: lib\pwiki\WikiTxtCtrl.py:3420 
    45084508msgid "Not a valid image" 
    45094509msgstr "" 
    45104510 
    4511 #: lib\pwiki\WikiTxtCtrl.py:3560 
     4511#: lib\pwiki\WikiTxtCtrl.py:3569 
    45124512msgid "Couldn't copy file" 
    45134513msgstr "" 
    45144514 
    4515 #: lib\pwiki\WikiTxtCtrl.py:3804 
     4515#: lib\pwiki\WikiTxtCtrl.py:3813 
    45164516msgid "Ignore" 
    45174517msgstr "" 
    45184518 
    4519 #: lib\pwiki\WikiTxtCtrl.py:3805 
     4519#: lib\pwiki\WikiTxtCtrl.py:3814 
    45204520msgid "Add Globally" 
    45214521msgstr "" 
    45224522 
    4523 #: lib\pwiki\WikiTxtCtrl.py:3806 
     4523#: lib\pwiki\WikiTxtCtrl.py:3815 
    45244524msgid "Add Locally" 
    45254525msgstr "" 
    45264526 
    4527 #: lib\pwiki\WikiTxtCtrl.py:3816 
     4527#: lib\pwiki\WikiTxtCtrl.py:3825 
    45284528msgid "Follow Link" 
    45294529msgstr "" 
    45304530 
    4531 #: lib\pwiki\WikiTxtCtrl.py:3817 
     4531#: lib\pwiki\WikiTxtCtrl.py:3826 
    45324532msgid "Follow Link New Tab" 
    45334533msgstr "" 
    45344534 
    4535 #: lib\pwiki\WikiTxtCtrl.py:3818 
     4535#: lib\pwiki\WikiTxtCtrl.py:3827 
    45364536msgid "Follow Link New Tab Backgrd." 
    45374537msgstr "" 
    45384538 
    4539 #: lib\pwiki\WikiTxtCtrl.py:3820 
     4539#: lib\pwiki\WikiTxtCtrl.py:3829 
    45404540msgid "Convert Absolute/Relative File URL" 
    45414541msgstr "" 
    45424542 
    4543 #: lib\pwiki\WikiTxtCtrl.py:3821 
     4543#: lib\pwiki\WikiTxtCtrl.py:3830 
    45444544msgid "Open Containing Folder" 
    45454545msgstr "" 
    45464546 
    4547 #: lib\pwiki\WikiTxtCtrl.py:3822 
     4547#: lib\pwiki\WikiTxtCtrl.py:3831 
    45484548msgid "Rename file" 
    45494549msgstr "" 
    45504550 
    4551 #: lib\pwiki\WikiTxtCtrl.py:3823 
     4551#: lib\pwiki\WikiTxtCtrl.py:3832 
    45524552msgid "Delete file" 
    45534553msgstr "" 
    45544554 
    4555 #: lib\pwiki\WikiTxtCtrl.py:3825 
     4555#: lib\pwiki\WikiTxtCtrl.py:3834 
    45564556msgid "Copy anchor URL to clipboard" 
    45574557msgstr "" 
    45584558 
    4559 #: lib\pwiki\WikiTxtCtrl.py:3827 
     4559#: lib\pwiki\WikiTxtCtrl.py:3836 
    45604560msgid "Other..." 
    45614561msgstr "" 
    45624562 
    4563 #: lib\pwiki\WikiTxtCtrl.py:3828 
     4563#: lib\pwiki\WikiTxtCtrl.py:3837 
    45644564msgid "Use Template..." 
    45654565msgstr "" 
    45664566 
    4567 #: lib\pwiki\WikiTxtCtrl.py:3832 
     4567#: lib\pwiki\WikiTxtCtrl.py:3841 
    45684568msgid "Show folding" 
    45694569msgstr "" 
    45704570 
    4571 #: lib\pwiki\WikiTxtCtrl.py:3833 
     4571#: lib\pwiki\WikiTxtCtrl.py:3842 
    45724572msgid "Show folding marks and allow folding" 
    45734573msgstr "" 
    45744574 
    4575 #: lib\pwiki\WikiTxtCtrl.py:3834 
     4575#: lib\pwiki\WikiTxtCtrl.py:3843 
    45764576msgid "&Toggle current folding" 
    45774577msgstr "" 
    45784578 
    4579 #: lib\pwiki\WikiTxtCtrl.py:3835 
     4579#: lib\pwiki\WikiTxtCtrl.py:3844 
    45804580msgid "Toggle folding of the current line" 
    45814581msgstr "" 
    45824582 
    4583 #: lib\pwiki\WikiTxtCtrl.py:3836 
     4583#: lib\pwiki\WikiTxtCtrl.py:3845 
    45844584msgid "&Unfold All" 
    45854585msgstr "" 
    45864586 
    4587 #: lib\pwiki\WikiTxtCtrl.py:3837 
     4587#: lib\pwiki\WikiTxtCtrl.py:3846 
    45884588msgid "Unfold everything in current editor" 
    45894589msgstr "" 
    45904590 
    4591 #: lib\pwiki\WikiTxtCtrl.py:3838 
     4591#: lib\pwiki\WikiTxtCtrl.py:3847 
    45924592msgid "&Fold All" 
    45934593msgstr "" 
    45944594 
    4595 #: lib\pwiki\WikiTxtCtrl.py:3839 
     4595#: lib\pwiki\WikiTxtCtrl.py:3848 
    45964596msgid "Fold everything in current editor" 
    45974597msgstr "" 
  • branches/mbutscher/work/extensions/wikidPadParser/WikidPadParser.py

    r274 r275  
    33 
    44# Official parser plugin for wiki language "WikidPad default 2.0" 
    5 # Last modified (format YYYY-MM-DD): 2011-05-26 
     5# Last modified (format YYYY-MM-DD): 2011-06-02 
    66 
    77 
     
    158158todoContent = Forward().setResultsNameNoCopy("value") 
    159159titleContent = Forward().setResultsNameNoCopy("title") 
    160  
     160characterAttributionContent = Forward().setResultsNameNoCopy("title") 
    161161 
    162162whitespace = buildRegex(ur"[ \t]*") 
     
    198198italicsEnd = buildRegex(ur"_\b") 
    199199 
    200 italics = italicsStart + content + italicsEnd 
     200italics = italicsStart + characterAttributionContent + italicsEnd 
    201201italics = italics.setResultsNameNoCopy("italics").setName("italics") 
    202202 
     
    206206boldEnd = buildRegex(ur"\*") 
    207207 
    208 bold = boldStart + content + boldEnd 
     208bold = boldStart + characterAttributionContent + boldEnd 
    209209bold = bold.setResultsNameNoCopy("bold").setName("bold") 
    210210 
     
    10961096endTokenInTable = endToken | newCell | newRow 
    10971097 
     1098endTokenInTitle = endToken | buildRegex(ur"\n") 
     1099 
     1100endTokenInCharacterAttribution = endToken | heading 
     1101 
     1102 
    10981103 
    10991104# -------------------- Content definitions -------------------- 
     
    11101115tableContentInCell << temp 
    11111116 
    1112  
    1113  
    1114 endTokenInTitle = endToken | buildRegex(ur"\n") 
    11151117 
    11161118 
     
    11421144findMarkupInTodo = FindFirst([bold, italics, noExportSingleLine, 
    11431145        suppressHighlightingSingleLine, 
    1144         urlRef, attribute, insertion, escapedChar, footnote, wikiWord,   # wikiWordNcc, wikiWordCc, 
     1146        urlRef, attribute, insertion, escapedChar, footnote, wikiWord, 
    11451147        htmlTag, htmlEntity], endToken) 
    11461148findMarkupInTodo = findMarkupInTodo.setPseudoParseAction( 
     
    11511153todoContent << temp 
    11521154oneLineContent << temp 
     1155 
     1156 
     1157 
     1158findMarkupInCharacterAttribution = FindFirst([bold, italics, noExportSingleLine, 
     1159        suppressHighlightingSingleLine, urlRef, 
     1160        attribute, insertion, escapedChar, footnote, wikiWord, 
     1161        newLinesParagraph, newLineLineBreak, newLineWhitespace, 
     1162        todoEntry, anchorDef, preHtmlTag, htmlTag, 
     1163        htmlEntity, bulletEntry, unorderedList, numberEntry, orderedList, 
     1164        indentedText, table, preBlock, noExportMultipleLines, 
     1165        suppressHighlightingMultipleLines, equivalIndentation], 
     1166        endTokenInCharacterAttribution) 
     1167findMarkupInCharacterAttribution = findMarkupInCharacterAttribution\ 
     1168        .setPseudoParseAction(pseudoActionFindMarkup) 
     1169 
     1170temp = ZeroOrMore(NotAny(endTokenInCharacterAttribution) + 
     1171        findMarkupInCharacterAttribution) 
     1172temp = temp.leaveWhitespace().parseWithTabs() 
     1173characterAttributionContent << temp 
     1174 
    11531175 
    11541176 
  • branches/mbutscher/work/lib/pwiki/PersonalWikiFrame.py

    r274 r275  
    36013601    def openWikiPage(self, wikiWord, addToHistory=True, 
    36023602            forceTreeSyncFromRoot=False, forceReopen=False, **evtprops): 
     3603        if not self.requireReadAccess(): 
     3604            return 
     3605 
    36033606        try: 
    36043607            ## _prof.start() 
     
    36143617            self.getMainAreaPanel().showPresenter(dpp) 
    36153618            ## _prof.stop() 
    3616         except WikiFileNotFoundException, e: 
     3619        except (WikiFileNotFoundException, IOError, OSError, DbAccessError), e: 
    36173620            self.lostAccess(e) 
    36183621            return None 
  • branches/mbutscher/work/lib/pwiki/PluginManager.py

    r273 r275  
    7070    def __init__(self, descriptor, functions): 
    7171        self.descriptor = descriptor 
    72         self.__functionNames = functions 
    73         self.__plugins = {} 
    74         for f in self.__functionNames: 
     72        self._functionNames = functions 
     73        self._plugins = {} 
     74        for f in self._functionNames: 
    7575            pluginlist = [] 
    76             self.__plugins[f] = pluginlist 
    77             helper = self.__createHelper( pluginlist ) 
     76            self._plugins[f] = pluginlist 
     77            helper = self._createHelper( pluginlist ) 
    7878            setattr(self,f, helper) 
    7979 
    8080    def getFunctionNames(self): 
    81         return self.__functionNames 
     81        return self._functionNames 
    8282 
    8383    def hasFunctionName(self, fctName): 
    84         return fctName in self.__functionNames 
     84        return fctName in self._functionNames 
    8585 
    8686 
    8787    @staticmethod 
    88     def __createHelper(funcList): 
     88    def _createHelper(funcList): 
    8989        return lambda *args, **kwargs: [fun(*args, **kwargs) for fun in funcList] 
    9090 
     
    9393        registered = False 
    9494        if self.descriptor in module.WIKIDPAD_PLUGIN: 
    95             for f in self.__functionNames: 
     95            for f in self._functionNames: 
    9696                if hasattr(module, f): 
    97                     self.__plugins[f].append(getattr(module,f)) 
     97                    self._plugins[f].append(getattr(module,f)) 
    9898                    registered = True 
    9999            if not registered: 
     
    104104 
    105105#     def deleteModule(self, module): 
    106 #         for f in self.__functionNames: 
     106#         for f in self._functionNames: 
    107107#             if hasattr(module, f): 
    108 #                 self.__plugins[f].remove(getattr(module,f)) 
     108#                 self._plugins[f].remove(getattr(module,f)) 
    109109 
    110110 
     
    124124    def __init__(self, descriptor, **wrappedFunctions): 
    125125        self.descriptor = descriptor 
    126         self.__functionNames = wrappedFunctions.keys() 
    127         self.__wrappedFunctions = wrappedFunctions 
    128         self.__plugins = {} 
    129         for f in self.__functionNames: 
     126        self._functionNames = wrappedFunctions.keys() 
     127        self._wrappedFunctions = wrappedFunctions 
     128        self._plugins = {} 
     129        for f in self._functionNames: 
    130130            pluginlist = [] # List containing either modules if wrappedFunctions[f] 
    131131                    # is not None or functions if wrappedFunctions[f] is None 
    132             self.__plugins[f] = pluginlist 
    133             helper = self.__createHelper(wrappedFunctions[f], pluginlist) 
     132            self._plugins[f] = pluginlist 
     133            helper = self._createHelper(wrappedFunctions[f], pluginlist) 
    134134            setattr(self,f, helper) 
    135135             
    136136    def getFunctionNames(self): 
    137         return self.__functionNames 
     137        return self._functionNames 
    138138 
    139139    def hasFunctionName(self, fctName): 
    140         return fctName in self.__functionNames 
     140        return fctName in self._functionNames 
    141141 
    142142 
    143143    @staticmethod 
    144     def __createHelper(wrapFct, list): 
     144    def _createHelper(wrapFct, list): 
    145145        if wrapFct is None or isinstance(wrapFct, (str, unicode)): 
    146146            return lambda *args, **kwargs: [fun(*args, **kwargs) for fun in list] 
     
    151151 
    152152    def registerModule(self, module): 
    153         if self.descriptor in module.WIKIDPAD_PLUGIN: 
    154             for f in self.__functionNames: 
    155                 if self.__wrappedFunctions[f] is None: 
    156                     if hasattr(module, f): 
    157                         self.__plugins[f].append(getattr(module,f)) 
    158                         return True 
    159                     else: 
    160                         sys.stderr.write("plugin " + module.__name__ + " exposes " + 
    161                                 self.descriptor +  
    162                                 " but does not support any interface methods!") 
    163                         return False 
    164                 elif isinstance(self.__wrappedFunctions[f], (str, unicode)): 
    165                     realF = self.__wrappedFunctions[f] 
    166                     if hasattr(module, realF): 
    167                         self.__plugins[f].append(getattr(module,realF)) 
    168                         return True 
    169                     else: 
    170                         sys.stderr.write("plugin " + module.__name__ + " exposes " + 
    171                                 self.descriptor +  
    172                                 " but does not support any interface methods!") 
    173                         return False 
    174                 else: 
    175                     self.__plugins[f].append(module) 
    176                     return True 
    177  
    178         return False 
     153        if not self.descriptor in module.WIKIDPAD_PLUGIN: 
     154            return False 
     155 
     156        registered = False 
     157        for f in self._functionNames: 
     158            if self._wrappedFunctions[f] is None: 
     159                if hasattr(module, f): 
     160                    self._plugins[f].append(getattr(module,f)) 
     161                    registered = True 
     162            elif isinstance(self._wrappedFunctions[f], (str, unicode)): 
     163                realF = self._wrappedFunctions[f] 
     164                if hasattr(module, realF): 
     165                    self._plugins[f].append(getattr(module,realF)) 
     166                    registered = True 
     167            else: 
     168                self._plugins[f].append(module) 
     169                # An internal wrapper function doesn't count as "registered" 
     170#                 registered = True 
     171 
     172        if not registered: 
     173            sys.stderr.write("plugin " + module.__name__ + " exposes " + 
     174                    str(self.descriptor) +  
     175                    " but does not support any interface methods!") 
     176 
     177        return registered 
    179178 
    180179 
     
    182181class PluginAPIAggregation(object): 
    183182    def __init__(self, *apis): 
    184         self.__apis = apis 
     183        self._apis = apis 
    185184 
    186185        fctNames = set() 
    187         for api in self.__apis: 
     186        for api in self._apis: 
    188187            fctNames.update(api.getFunctionNames()) 
    189188         
    190189        for f in list(fctNames): 
    191190            funcList = [getattr(api, f) for api in apis if api.hasFunctionName(f)] 
    192             setattr(self, f, PluginAPIAggregation.__createHelper(funcList)) 
     191            setattr(self, f, PluginAPIAggregation._createHelper(funcList)) 
    193192 
    194193 
    195194    @staticmethod 
    196     def __createHelper(funcList): 
     195    def _createHelper(funcList): 
    197196        return lambda *args, **kwargs: reduce(lambda a, b: a+list(b), 
    198197                [fun(*args, **kwargs) for fun in funcList]) 
  • branches/mbutscher/work/lib/pwiki/WikiPyparsing.py

    r247 r275  
    18041804 
    18051805 
    1806 class Empty(Token): 
     1806class Empty(Token, NecessaryRegexProvider): 
    18071807    """An empty token, will always match.""" 
    18081808    def __init__( self ): 
     
    18111811        self.mayReturnEmpty = True 
    18121812        self.mayIndexError = False 
     1813 
     1814    def getRegex(self): 
     1815        return u"" 
     1816         
     1817    def isRegexComplete(self): 
     1818        return True 
    18131819 
    18141820 
     
    18551861            return None 
    18561862 
    1857     def getRegexMask(self): 
     1863    def getRegexFlagsMask(self): 
    18581864        # Here is a case where a NOT SET regex flag is important 
    18591865        return re.IGNORECASE 
     
    21492155        return self.re 
    21502156         
    2151     def getRegexMask(self): 
     2157    def getRegexFlagsMask(self): 
    21522158        return self.flagsMask 
    21532159         
     
    31833189       pseudoParseAction 
    31843190       If two expressions match, the first one listed is the one that will match. 
    3185        May be constructed using the '|' operator. 
    31863191    """ 
    31873192    def __init__( self, exprs, endExpr ): 
     
    44624467                    continue 
    44634468 
    4464                 if isinstance(exp, FindFirst) and self.reMode == REMODE_SEARCH: 
     4469                if isinstance(exp, FindFirst) and self.reMode == \ 
     4470                        RegexCombiner.REMODE_SEARCH: 
    44654471                    subCombiner = exp.getRegexCombiner() 
    44664472                    if subCombiner is None: 
  • branches/mbutscher/work/lib/pwiki/WikiTxtCtrl.py

    r274 r275  
    3030from . import OsAbstract 
    3131 
    32 from .WikiExceptions import WikiFileNotFoundException, \ 
    33         NotCurrentThreadException, NoPageAstException 
     32from .WikiExceptions import * 
    3433 
    3534from .SystemInfo import isUnicode, isOSX, isLinux, isWindows 
     
    32153214                return 
    32163215 
    3217             wikiPage.checkFileSignatureAndMarkDirty() 
     3216            try: 
     3217                wikiPage.checkFileSignatureAndMarkDirty() 
     3218            except (IOError, OSError, DbAccessError), e: 
     3219                self.presenter.getMainControl().lostAccess(e) 
     3220 
     3221 
    32183222    else: 
    32193223        def OnSetFocus(self, evt): 
     
    32283232                return 
    32293233 
    3230             wikiPage.checkFileSignatureAndMarkDirty() 
     3234            try: 
     3235                wikiPage.checkFileSignatureAndMarkDirty() 
     3236            except (IOError, OSError, DbAccessError), e: 
     3237                self.presenter.getMainControl().lostAccess(e) 
     3238 
     3239 
    32313240 
    32323241 
  • branches/mbutscher/work/wikidpad_unicode.iss

    r274 r275  
    5151Name: {app}\export 
    5252[Setup] 
    53 #define verStr "2.2beta04" 
    54 #define verNo "002.002.104.000" 
     53#define verStr "2.2beta04_1" 
     54#define verNo "002.002.104.001" 
    5555 
    5656SolidCompression=true 
  • branches/stable-2.1/Consts.py

    r274 r275  
    2424# (2, 0, 300, 0) is 2.0final 
    2525 
    26 VERSION_TUPLE = ("wikidPad", 2, 1, 204, 0) 
    27 VERSION_STRING = "wikidPad 2.1rc04" 
     26VERSION_TUPLE = ("wikidPad", 2, 1, 204, 1) 
     27VERSION_STRING = "wikidPad 2.1rc04_1" 
    2828HOMEPAGE = u"http://wikidpad.sourceforge.net" 
    2929 
  • branches/stable-2.1/WikidPad.pot

    r274 r275  
    66msgstr "" 
    77"Project-Id-Version: PACKAGE VERSION\n" 
    8 "POT-Creation-Date: 2011-05-28 12:05\n" 
     8"POT-Creation-Date: 2011-06-03 08:41\n" 
    99"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 
    1010"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 
     
    14181418 
    14191419#: WikidPad.xrc:0 lib\pwiki\DiffGui.py:434 lib\pwiki\PersonalWikiFrame.py:1267 
    1420 #: lib\pwiki\WikiTxtCtrl.py:3529 
     1420#: lib\pwiki\WikiTxtCtrl.py:3538 
    14211421msgid "Copy" 
    14221422msgstr "" 
    14231423 
    14241424#: WikidPad.xrc:0 lib\pwiki\DiffGui.py:435 lib\pwiki\PersonalWikiFrame.py:1276 
    1425 #: lib\pwiki\WikiTxtCtrl.py:3532 
     1425#: lib\pwiki\WikiTxtCtrl.py:3541 
    14261426msgid "Select All" 
    14271427msgstr "" 
    14281428 
    1429 #: WikidPad.xrc:0 lib\pwiki\DiffGui.py:437 lib\pwiki\WikiTxtCtrl.py:3546 
     1429#: WikidPad.xrc:0 lib\pwiki\DiffGui.py:437 lib\pwiki\WikiTxtCtrl.py:3555 
    14301430msgid "Close Tab" 
    14311431msgstr "" 
     
    14601460 
    14611461#: WikidPad.xrc:0 lib\pwiki\PersonalWikiFrame.py:1242 
    1462 #: lib\pwiki\WikiTxtCtrl.py:3526 
     1462#: lib\pwiki\WikiTxtCtrl.py:3535 
    14631463msgid "Undo" 
    14641464msgstr "" 
    14651465 
    14661466#: WikidPad.xrc:0 lib\pwiki\PersonalWikiFrame.py:1246 
    1467 #: lib\pwiki\WikiTxtCtrl.py:3527 
     1467#: lib\pwiki\WikiTxtCtrl.py:3536 
    14681468msgid "Redo" 
    14691469msgstr "" 
    14701470 
    14711471#: WikidPad.xrc:0 lib\pwiki\PersonalWikiFrame.py:1262 
    1472 #: lib\pwiki\WikiTxtCtrl.py:3528 
     1472#: lib\pwiki\WikiTxtCtrl.py:3537 
    14731473msgid "Cut" 
    14741474msgstr "" 
    14751475 
    14761476#: WikidPad.xrc:0 lib\pwiki\PersonalWikiFrame.py:1271 
    1477 #: lib\pwiki\WikiTxtCtrl.py:3530 
     1477#: lib\pwiki\WikiTxtCtrl.py:3539 
    14781478msgid "Paste" 
    14791479msgstr "" 
     
    15151515msgstr "" 
    15161516 
    1517 #: WikidPad.xrc:0 lib\pwiki\WikiTxtCtrl.py:3531 
     1517#: WikidPad.xrc:0 lib\pwiki\WikiTxtCtrl.py:3540 
    15181518msgid "Delete" 
    15191519msgstr "" 
     
    15311531msgstr "" 
    15321532 
    1533 #: WikidPadStarter.py:204 lib\pwiki\PersonalWikiFrame.py:5188 
     1533#: WikidPadStarter.py:204 lib\pwiki\PersonalWikiFrame.py:5191 
    15341534#: lib\pwiki\SearchAndReplaceDialogs.py:724 
    15351535#: lib\pwiki\SearchAndReplaceDialogs.py:1008 
     
    18521852msgstr "" 
    18531853 
    1854 #: lib\pwiki\AdditionalDialogs.py:1322 lib\pwiki\PersonalWikiFrame.py:4737 
     1854#: lib\pwiki\AdditionalDialogs.py:1322 lib\pwiki\PersonalWikiFrame.py:4740 
    18551855msgid "Exporting" 
    18561856msgstr "" 
    18571857 
    1858 #: lib\pwiki\AdditionalDialogs.py:1324 lib\pwiki\PersonalWikiFrame.py:4739 
     1858#: lib\pwiki\AdditionalDialogs.py:1324 lib\pwiki\PersonalWikiFrame.py:4742 
    18591859msgid "Preparing" 
    18601860msgstr "" 
     
    18641864msgstr "" 
    18651865 
    1866 #: lib\pwiki\AdditionalDialogs.py:1360 lib\pwiki\PersonalWikiFrame.py:4682 
     1866#: lib\pwiki\AdditionalDialogs.py:1360 lib\pwiki\PersonalWikiFrame.py:4685 
    18671867msgid "Select Export Directory" 
    18681868msgstr "" 
     
    18761876msgstr "" 
    18771877 
    1878 #: lib\pwiki\AdditionalDialogs.py:1406 lib\pwiki\PersonalWikiFrame.py:4706 
    1879 #: lib\pwiki\PersonalWikiFrame.py:4722 lib\pwiki\Printing.py:182 
     1878#: lib\pwiki\AdditionalDialogs.py:1406 lib\pwiki\PersonalWikiFrame.py:4709 
     1879#: lib\pwiki\PersonalWikiFrame.py:4725 lib\pwiki\Printing.py:182 
    18801880msgid "No real wiki word selected as root" 
    18811881msgstr "" 
     
    26012601msgstr "" 
    26022602 
    2603 #: lib\pwiki\MainAreaPanel.py:665 lib\pwiki\WikiTxtCtrl.py:2178 
     2603#: lib\pwiki\MainAreaPanel.py:665 lib\pwiki\WikiTxtCtrl.py:2177 
    26042604msgid "This can only be done for the page of a wiki word" 
    26052605msgstr "" 
    26062606 
    2607 #: lib\pwiki\MainAreaPanel.py:666 lib\pwiki\WikiTxtCtrl.py:2179 
     2607#: lib\pwiki\MainAreaPanel.py:666 lib\pwiki\WikiTxtCtrl.py:2178 
    26082608msgid "Not a wiki page" 
    26092609msgstr "" 
     
    29572957msgstr "" 
    29582958 
    2959 #: lib\pwiki\PersonalWikiFrame.py:871 lib\pwiki\PersonalWikiFrame.py:5746 
     2959#: lib\pwiki\PersonalWikiFrame.py:871 lib\pwiki\PersonalWikiFrame.py:5749 
    29602960msgid "Exit" 
    29612961msgstr "" 
     
    29822982 
    29832983#: lib\pwiki\PersonalWikiFrame.py:1123 lib\pwiki\PersonalWikiFrame.py:1870 
    2984 #: lib\pwiki\PersonalWikiFrame.py:2386 lib\pwiki\PersonalWikiFrame.py:3777 
    2985 #: lib\pwiki\PersonalWikiFrame.py:4983 lib\pwiki\PersonalWikiFrame.py:5323 
     2984#: lib\pwiki\PersonalWikiFrame.py:2386 lib\pwiki\PersonalWikiFrame.py:3780 
     2985#: lib\pwiki\PersonalWikiFrame.py:4986 lib\pwiki\PersonalWikiFrame.py:5326 
    29862986msgid "Error while starting new WikidPad instance" 
    29872987msgstr "" 
     
    30393039msgstr "" 
    30403040 
    3041 #: lib\pwiki\PersonalWikiFrame.py:1300 lib\pwiki\PersonalWikiFrame.py:4174 
     3041#: lib\pwiki\PersonalWikiFrame.py:1300 lib\pwiki\PersonalWikiFrame.py:4177 
    30423042msgid "Set at Page" 
    30433043msgstr "" 
     
    36623662 
    36633663#: lib\pwiki\PersonalWikiFrame.py:2032 lib\pwiki\PersonalWikiFrame.py:2033 
    3664 #: lib\pwiki\PersonalWikiFrame.py:4419 
     3664#: lib\pwiki\PersonalWikiFrame.py:4422 
    36653665msgid "Delete Wiki Word" 
    36663666msgstr "" 
     
    38663866msgstr "" 
    38673867 
    3868 #: lib\pwiki\PersonalWikiFrame.py:3749 
     3868#: lib\pwiki\PersonalWikiFrame.py:3752 
    38693869msgid "Couldn't start file" 
    38703870msgstr "" 
    38713871 
    3872 #: lib\pwiki\PersonalWikiFrame.py:3757 
     3872#: lib\pwiki\PersonalWikiFrame.py:3760 
    38733873msgid "Couldn't open wiki: %s" 
    38743874msgstr "" 
    38753875 
    3876 #: lib\pwiki\PersonalWikiFrame.py:3808 
     3876#: lib\pwiki\PersonalWikiFrame.py:3811 
    38773877msgid "Mod.: %s" 
    38783878msgstr "" 
    38793879 
    3880 #: lib\pwiki\PersonalWikiFrame.py:3809 
     3880#: lib\pwiki\PersonalWikiFrame.py:3812 
    38813881msgid "; Crea.: %s" 
    38823882msgstr "" 
    38833883 
    3884 #: lib\pwiki\PersonalWikiFrame.py:3846 
     3884#: lib\pwiki\PersonalWikiFrame.py:3849 
    38853885msgid "Parent nodes of '%s'" 
    38863886msgstr "" 
    38873887 
    3888 #: lib\pwiki\PersonalWikiFrame.py:3858 
     3888#: lib\pwiki\PersonalWikiFrame.py:3861 
    38893889msgid "Parentless nodes" 
    38903890msgstr "" 
    38913891 
    3892 #: lib\pwiki\PersonalWikiFrame.py:3870 
     3892#: lib\pwiki\PersonalWikiFrame.py:3873 
    38933893msgid "Child nodes of '%s'" 
    38943894msgstr "" 
    38953895 
    3896 #: lib\pwiki\PersonalWikiFrame.py:3883 
     3896#: lib\pwiki\PersonalWikiFrame.py:3886 
    38973897msgid "Bookmarks" 
    38983898msgstr "" 
    38993899 
    3900 #: lib\pwiki\PersonalWikiFrame.py:4030 
     3900#: lib\pwiki\PersonalWikiFrame.py:4033 
    39013901msgid "Wiki: %s" 
    39023902msgstr "" 
    39033903 
    3904 #: lib\pwiki\PersonalWikiFrame.py:4169 
     3904#: lib\pwiki\PersonalWikiFrame.py:4172 
    39053905msgid "Set at Page: %s\t%s" 
    39063906msgstr "" 
    39073907 
    3908 #: lib\pwiki\PersonalWikiFrame.py:4185 
     3908#: lib\pwiki\PersonalWikiFrame.py:4188 
    39093909msgid "Error saving global configuration" 
    39103910msgstr "" 
    39113911 
    3912 #: lib\pwiki\PersonalWikiFrame.py:4196 
     3912#: lib\pwiki\PersonalWikiFrame.py:4199 
    39133913msgid "Error saving current configuration" 
    39143914msgstr "" 
    39153915 
    3916 #: lib\pwiki\PersonalWikiFrame.py:4218 
     3916#: lib\pwiki\PersonalWikiFrame.py:4221 
    39173917msgid "No real wiki word selected to rename" 
    39183918msgstr "" 
    39193919 
    3920 #: lib\pwiki\PersonalWikiFrame.py:4222 
     3920#: lib\pwiki\PersonalWikiFrame.py:4225 
    39213921msgid "The scratch pad cannot be renamed." 
    39223922msgstr "" 
    39233923 
    3924 #: lib\pwiki\PersonalWikiFrame.py:4246 
     3924#: lib\pwiki\PersonalWikiFrame.py:4249 
    39253925msgid "Description:" 
    39263926msgstr "" 
    39273927 
    3928 #: lib\pwiki\PersonalWikiFrame.py:4247 
     3928#: lib\pwiki\PersonalWikiFrame.py:4250 
    39293929msgid "Store new version" 
    39303930msgstr "" 
    39313931 
    3932 #: lib\pwiki\PersonalWikiFrame.py:4261 
     3932#: lib\pwiki\PersonalWikiFrame.py:4264 
    39333933msgid "Do you want to delete all stored versions?" 
    39343934msgstr "" 
    39353935 
    3936 #: lib\pwiki\PersonalWikiFrame.py:4262 
     3936#: lib\pwiki\PersonalWikiFrame.py:4265 
    39373937msgid "Delete All Versions" 
    39383938msgstr "" 
    39393939 
    3940 #: lib\pwiki\PersonalWikiFrame.py:4407 
     3940#: lib\pwiki\PersonalWikiFrame.py:4410 
    39413941msgid "The scratch pad cannot be deleted" 
    39423942msgstr "" 
    39433943 
    3944 #: lib\pwiki\PersonalWikiFrame.py:4411 
     3944#: lib\pwiki\PersonalWikiFrame.py:4414 
    39453945msgid "No real wiki word to delete" 
    39463946msgstr "" 
    39473947 
    3948 #: lib\pwiki\PersonalWikiFrame.py:4418 
     3948#: lib\pwiki\PersonalWikiFrame.py:4421 
    39493949msgid "Are you sure you want to delete wiki word '%s'?" 
    39503950msgstr "" 
    39513951 
    3952 #: lib\pwiki\PersonalWikiFrame.py:4447 
     3952#: lib\pwiki\PersonalWikiFrame.py:4450 
    39533953msgid "No real wiki word to modify" 
    39543954msgstr "" 
    39553955 
    3956 #: lib\pwiki\PersonalWikiFrame.py:4463 
     3956#: lib\pwiki\PersonalWikiFrame.py:4466 
    39573957msgid "Replace text by WikiWord:" 
    39583958msgstr "" 
    39593959 
    3960 #: lib\pwiki\PersonalWikiFrame.py:4464 
     3960#: lib\pwiki\PersonalWikiFrame.py:4467 
    39613961msgid "Replace by Wiki Word" 
    39623962msgstr "" 
    39633963 
    3964 #: lib\pwiki\PersonalWikiFrame.py:4473 
     3964#: lib\pwiki\PersonalWikiFrame.py:4476 
    39653965msgid "'%s' is an invalid wiki word." 
    39663966msgstr "" 
    39673967 
    3968 #: lib\pwiki\PersonalWikiFrame.py:4488 
     3968#: lib\pwiki\PersonalWikiFrame.py:4491 
    39693969msgid "Wiki word %s exists already\n" 
    39703970"Would you like to append to the word?" 
    39713971msgstr "" 
    39723972 
    3973 #: lib\pwiki\PersonalWikiFrame.py:4491 
     3973#: lib\pwiki\PersonalWikiFrame.py:4494 
    39743974msgid "Word exists" 
    39753975msgstr "" 
    39763976 
    3977 #: lib\pwiki\PersonalWikiFrame.py:4745 
     3977#: lib\pwiki\PersonalWikiFrame.py:4748 
    39783978msgid "Error on export" 
    39793979msgstr "" 
    39803980 
    3981 #: lib\pwiki\PersonalWikiFrame.py:4775 
     3981#: lib\pwiki\PersonalWikiFrame.py:4778 
    39823982msgid "Choose a file to create URL for" 
    39833983msgstr "" 
    39843984 
    3985 #: lib\pwiki\PersonalWikiFrame.py:4843 
     3985#: lib\pwiki\PersonalWikiFrame.py:4846 
    39863986msgid "Are you sure you want to start a full rebuild of wiki in background?" 
    39873987msgstr "" 
    39883988 
    3989 #: lib\pwiki\PersonalWikiFrame.py:4845 
     3989#: lib\pwiki\PersonalWikiFrame.py:4848 
    39903990msgid "Initiate update" 
    39913991msgstr "" 
    39923992 
    3993 #: lib\pwiki\PersonalWikiFrame.py:4852 lib\pwiki\PersonalWikiFrame.py:4853 
     3993#: lib\pwiki\PersonalWikiFrame.py:4855 lib\pwiki\PersonalWikiFrame.py:4856 
    39943994msgid "     Initiating update     " 
    39953995msgstr "" 
    39963996 
    3997 #: lib\pwiki\PersonalWikiFrame.py:4867 
     3997#: lib\pwiki\PersonalWikiFrame.py:4870 
    39983998msgid "Error initiating update" 
    39993999msgstr "" 
    40004000 
    4001 #: lib\pwiki\PersonalWikiFrame.py:4876 
     4001#: lib\pwiki\PersonalWikiFrame.py:4879 
    40024002msgid "Are you sure you want to rebuild this wiki? You may want to backup your data first!" 
    40034003msgstr "" 
    40044004 
    4005 #: lib\pwiki\PersonalWikiFrame.py:4878 
     4005#: lib\pwiki\PersonalWikiFrame.py:4881 
    40064006msgid "Rebuild wiki" 
    40074007msgstr "" 
    40084008 
    4009 #: lib\pwiki\PersonalWikiFrame.py:4885 lib\pwiki\PersonalWikiFrame.py:4886 
     4009#: lib\pwiki\PersonalWikiFrame.py:4888 lib\pwiki\PersonalWikiFrame.py:4889 
    40104010msgid "     Rebuilding wiki     " 
    40114011msgstr "" 
    40124012 
    4013 #: lib\pwiki\PersonalWikiFrame.py:4901 
     4013#: lib\pwiki\PersonalWikiFrame.py:4904 
    40144014msgid "Error rebuilding wiki" 
    40154015msgstr "" 
    40164016 
    4017 #: lib\pwiki\PersonalWikiFrame.py:4993 
     4017#: lib\pwiki\PersonalWikiFrame.py:4996 
    40184018msgid "This could overwrite pages in the database. Continue?" 
    40194019msgstr "" 
    40204020 
    4021 #: lib\pwiki\PersonalWikiFrame.py:4994 
     4021#: lib\pwiki\PersonalWikiFrame.py:4997 
    40224022msgid "Import pagefiles" 
    40234023msgstr "" 
    40244024 
    4025 #: lib\pwiki\PersonalWikiFrame.py:5107 
     4025#: lib\pwiki\PersonalWikiFrame.py:5110 
    40264026msgid "No list of strings passed to \"listmcstr\" dialog" 
    40274027msgstr "" 
    40284028 
    4029 #: lib\pwiki\PersonalWikiFrame.py:5130 
     4029#: lib\pwiki\PersonalWikiFrame.py:5133 
    40304030msgid "Unknown dialog type" 
    40314031msgstr "" 
    40324032 
    4033 #: lib\pwiki\PersonalWikiFrame.py:5291 lib\pwiki\PersonalWikiFrame.py:5309 
    4034 #: lib\pwiki\PersonalWikiFrame.py:5334 
     4033#: lib\pwiki\PersonalWikiFrame.py:5294 lib\pwiki\PersonalWikiFrame.py:5312 
     4034#: lib\pwiki\PersonalWikiFrame.py:5337 
    40354035msgid "Choose a Wiki to open" 
    40364036msgstr "" 
    40374037 
    4038 #: lib\pwiki\PersonalWikiFrame.py:5348 
     4038#: lib\pwiki\PersonalWikiFrame.py:5351 
    40394039msgid "Name for new wiki (must be in the form of a WikiWord):" 
    40404040msgstr "" 
    40414041 
    4042 #: lib\pwiki\PersonalWikiFrame.py:5349 
     4042#: lib\pwiki\PersonalWikiFrame.py:5352 
    40434043msgid "Create New Wiki" 
    40444044msgstr "" 
    40454045 
    4046 #: lib\pwiki\PersonalWikiFrame.py:5364 
     4046#: lib\pwiki\PersonalWikiFrame.py:5367 
    40474047msgid "Directory to store new wiki" 
    40484048msgstr "" 
    40494049 
    4050 #: lib\pwiki\PersonalWikiFrame.py:5375 
     4050#: lib\pwiki\PersonalWikiFrame.py:5378 
    40514051#: lib\pwiki\wikidata\WikiDataManager.py:1406 
    40524052#: lib\pwiki\wikidata\WikiDataManager.py:1462 
     
    40544054msgstr "" 
    40554055 
    4056 #: lib\pwiki\PersonalWikiFrame.py:5679 
     4056#: lib\pwiki\PersonalWikiFrame.py:5682 
    40574057msgid "Clipboard Catcher at Cursor" 
    40584058msgstr "" 
    40594059 
    4060 #: lib\pwiki\PersonalWikiFrame.py:5683 
     4060#: lib\pwiki\PersonalWikiFrame.py:5686 
    40614061msgid "Clipboard Catcher off" 
    40624062msgstr "" 
    40634063 
    4064 #: lib\pwiki\PersonalWikiFrame.py:5744 
     4064#: lib\pwiki\PersonalWikiFrame.py:5747 
    40654065msgid "Restore" 
    40664066msgstr "" 
    40674067 
    4068 #: lib\pwiki\PersonalWikiFrame.py:5745 
     4068#: lib\pwiki\PersonalWikiFrame.py:5748 
    40694069msgid "Save" 
    40704070msgstr "" 
     
    42374237msgstr "" 
    42384238 
    4239 #: lib\pwiki\WikiHtmlView.py:600 lib\pwiki\WikiTxtCtrl.py:2124 
     4239#: lib\pwiki\WikiHtmlView.py:600 lib\pwiki\WikiTxtCtrl.py:2123 
    42404240msgid "Folder does not exist" 
    42414241msgstr "" 
     
    42934293msgstr "" 
    42944294 
    4295 #: lib\pwiki\WikiTxtCtrl.py:1289 
     4295#: lib\pwiki\WikiTxtCtrl.py:1288 
    42964296msgid "Select Template" 
    42974297msgstr "" 
    42984298 
    4299 #: lib\pwiki\WikiTxtCtrl.py:1291 
     4299#: lib\pwiki\WikiTxtCtrl.py:1290 
    43004300msgid "Select Template (deletes current content!)" 
    43014301msgstr "" 
    43024302 
    4303 #: lib\pwiki\WikiTxtCtrl.py:1397 
     4303#: lib\pwiki\WikiTxtCtrl.py:1396 
    43044304msgid "Use Template" 
    43054305msgstr "" 
    43064306 
    4307 #: lib\pwiki\WikiTxtCtrl.py:2200 
     4307#: lib\pwiki\WikiTxtCtrl.py:2199 
    43084308msgid "Set in menu \"Wiki\", item \"Options...\", options page \"Security\", \n" 
    43094309"item \"Script security\" an appropriate value to execute a script." 
    43104310msgstr "" 
    43114311 
    4312 #: lib\pwiki\WikiTxtCtrl.py:2203 
     4312#: lib\pwiki\WikiTxtCtrl.py:2202 
    43134313msgid "Script execution disabled" 
    43144314msgstr "" 
    43154315 
    4316 #: lib\pwiki\WikiTxtCtrl.py:2275 
     4316#: lib\pwiki\WikiTxtCtrl.py:2274 
    43174317msgid "\n" 
    43184318"Exception: %s" 
    43194319msgstr "" 
    43204320 
    4321 #: lib\pwiki\WikiTxtCtrl.py:2922 
     4321#: lib\pwiki\WikiTxtCtrl.py:2921 
    43224322msgid "No more fields in this 'form' page" 
    43234323msgstr "" 
    43244324 
    4325 #: lib\pwiki\WikiTxtCtrl.py:3081 
     4325#: lib\pwiki\WikiTxtCtrl.py:3090 
    43264326msgid "Line: %d Col: %d Pos: %d" 
    43274327msgstr "" 
    43284328 
    4329 #: lib\pwiki\WikiTxtCtrl.py:3261 
     4329#: lib\pwiki\WikiTxtCtrl.py:3270 
    43304330msgid "Couldn't copy file" 
    43314331msgstr "" 
    43324332 
    4333 #: lib\pwiki\WikiTxtCtrl.py:3522 
     4333#: lib\pwiki\WikiTxtCtrl.py:3531 
    43344334msgid "Ignore" 
    43354335msgstr "" 
    43364336 
    4337 #: lib\pwiki\WikiTxtCtrl.py:3523 
     4337#: lib\pwiki\WikiTxtCtrl.py:3532 
    43384338msgid "Add Globally" 
    43394339msgstr "" 
    43404340 
    4341 #: lib\pwiki\WikiTxtCtrl.py:3524 
     4341#: lib\pwiki\WikiTxtCtrl.py:3533 
    43424342msgid "Add Locally" 
    43434343msgstr "" 
    43444344 
    4345 #: lib\pwiki\WikiTxtCtrl.py:3534 
     4345#: lib\pwiki\WikiTxtCtrl.py:3543 
    43464346msgid "Follow Link" 
    43474347msgstr "" 
    43484348 
    4349 #: lib\pwiki\WikiTxtCtrl.py:3535 
     4349#: lib\pwiki\WikiTxtCtrl.py:3544 
    43504350msgid "Follow Link New Tab" 
    43514351msgstr "" 
    43524352 
    4353 #: lib\pwiki\WikiTxtCtrl.py:3536 
     4353#: lib\pwiki\WikiTxtCtrl.py:3545 
    43544354msgid "Follow Link New Tab Backgrd." 
    43554355msgstr "" 
    43564356 
    4357 #: lib\pwiki\WikiTxtCtrl.py:3538 
     4357#: lib\pwiki\WikiTxtCtrl.py:3547 
    43584358msgid "Convert Absolute/Relative File URL" 
    43594359msgstr "" 
    43604360 
    4361 #: lib\pwiki\WikiTxtCtrl.py:3539 
     4361#: lib\pwiki\WikiTxtCtrl.py:3548 
    43624362msgid "Open Containing Folder" 
    43634363msgstr "" 
    43644364 
    4365 #: lib\pwiki\WikiTxtCtrl.py:3541 
     4365#: lib\pwiki\WikiTxtCtrl.py:3550 
    43664366msgid "Copy anchor URL to clipboard" 
    43674367msgstr "" 
    43684368 
    4369 #: lib\pwiki\WikiTxtCtrl.py:3543 
     4369#: lib\pwiki\WikiTxtCtrl.py:3552 
    43704370msgid "Other..." 
    43714371msgstr "" 
    43724372 
    4373 #: lib\pwiki\WikiTxtCtrl.py:3544 
     4373#: lib\pwiki\WikiTxtCtrl.py:3553 
    43744374msgid "Use Template..." 
    43754375msgstr "" 
    43764376 
    4377 #: lib\pwiki\WikiTxtCtrl.py:3548 
     4377#: lib\pwiki\WikiTxtCtrl.py:3557 
    43784378msgid "Show folding" 
    43794379msgstr "" 
    43804380 
    4381 #: lib\pwiki\WikiTxtCtrl.py:3549 
     4381#: lib\pwiki\WikiTxtCtrl.py:3558 
    43824382msgid "Show folding marks and allow folding" 
    43834383msgstr "" 
    43844384 
    4385 #: lib\pwiki\WikiTxtCtrl.py:3550 
     4385#: lib\pwiki\WikiTxtCtrl.py:3559 
    43864386msgid "&Toggle current folding" 
    43874387msgstr "" 
    43884388 
    4389 #: lib\pwiki\WikiTxtCtrl.py:3551 
     4389#: lib\pwiki\WikiTxtCtrl.py:3560 
    43904390msgid "Toggle folding of the current line" 
    43914391msgstr "" 
    43924392 
    4393 #: lib\pwiki\WikiTxtCtrl.py:3552 
     4393#: lib\pwiki\WikiTxtCtrl.py:3561 
    43944394msgid "&Unfold All" 
    43954395msgstr "" 
    43964396 
    4397 #: lib\pwiki\WikiTxtCtrl.py:3553 
     4397#: lib\pwiki\WikiTxtCtrl.py:3562 
    43984398msgid "Unfold everything in current editor" 
    43994399msgstr "" 
    44004400 
    4401 #: lib\pwiki\WikiTxtCtrl.py:3554 
     4401#: lib\pwiki\WikiTxtCtrl.py:3563 
    44024402msgid "&Fold All" 
    44034403msgstr "" 
    44044404 
    4405 #: lib\pwiki\WikiTxtCtrl.py:3555 
     4405#: lib\pwiki\WikiTxtCtrl.py:3564 
    44064406msgid "Fold everything in current editor" 
    44074407msgstr "" 
  • branches/stable-2.1/lib/pwiki/PersonalWikiFrame.py

    r274 r275  
    35313531    def openWikiPage(self, wikiWord, addToHistory=True, 
    35323532            forceTreeSyncFromRoot=False, forceReopen=False, **evtprops): 
     3533        if not self.requireReadAccess(): 
     3534            return 
     3535 
    35333536        try: 
    35343537            ## _prof.start() 
     
    35443547            self.getMainAreaPanel().showPresenter(dpp) 
    35453548            ## _prof.stop() 
    3546         except WikiFileNotFoundException, e: 
     3549        except (WikiFileNotFoundException, IOError, OSError, DbAccessError), e: 
    35473550            self.lostAccess(e) 
    35483551            return None 
  • branches/stable-2.1/lib/pwiki/PluginManager.py

    r249 r275  
    66 
    77import wx 
     8 
     9import Utilities 
    810 
    911from .StringOps import mbcsEnc, pathEnc 
     
    6870    def __init__(self, descriptor, functions): 
    6971        self.descriptor = descriptor 
    70         self.__functionNames = functions 
    71         self.__plugins = {} 
    72         for f in self.__functionNames: 
     72        self._functionNames = functions 
     73        self._plugins = {} 
     74        for f in self._functionNames: 
    7375            pluginlist = [] 
    74             self.__plugins[f] = pluginlist 
    75             helper = self.__createHelper( pluginlist ) 
     76            self._plugins[f] = pluginlist 
     77            helper = self._createHelper( pluginlist ) 
    7678            setattr(self,f, helper) 
    7779 
    7880    def getFunctionNames(self): 
    79         return self.__functionNames 
     81        return self._functionNames 
    8082 
    8183    def hasFunctionName(self, fctName): 
    82         return fctName in self.__functionNames 
     84        return fctName in self._functionNames 
    8385 
    8486 
    8587    @staticmethod 
    86     def __createHelper(funcList): 
     88    def _createHelper(funcList): 
    8789        return lambda *args, **kwargs: [fun(*args, **kwargs) for fun in funcList] 
    8890 
     
    9193        registered = False 
    9294        if self.descriptor in module.WIKIDPAD_PLUGIN: 
    93             for f in self.__functionNames: 
     95            for f in self._functionNames: 
    9496                if hasattr(module, f): 
    95                     self.__plugins[f].append(getattr(module,f)) 
     97                    self._plugins[f].append(getattr(module,f)) 
    9698                    registered = True 
    9799            if not registered: 
    98100                sys.stderr.write("plugin " + module.__name__ + " exposes " + 
    99                         self.descriptor +  
     101                        str(self.descriptor) +  
    100102                        " but does not support any interface methods!") 
    101103        return registered 
    102104 
    103105#     def deleteModule(self, module): 
    104 #         for f in self.__functionNames: 
     106#         for f in self._functionNames: 
    105107#             if hasattr(module, f): 
    106 #                 self.__plugins[f].remove(getattr(module,f)) 
     108#                 self._plugins[f].remove(getattr(module,f)) 
    107109 
    108110 
     
    113115    The keys of the arguments are the function names exposed as attributes by 
    114116    the API object. The values can be either: 
    115         None  to call function of same name in module(s) 
     117        None  to call function of same name in module(s) as SimplePluginAPI 
     118            does 
    116119        a string  to call function of this name in module(s) 
    117120        a wrapper function  to call with module object and parameters from 
     
    121124    def __init__(self, descriptor, **wrappedFunctions): 
    122125        self.descriptor = descriptor 
    123         self.__functionNames = wrappedFunctions.keys() 
    124         self.__wrappedFunctions = wrappedFunctions 
    125         self.__plugins = {} 
    126         for f in self.__functionNames: 
     126        self._functionNames = wrappedFunctions.keys() 
     127        self._wrappedFunctions = wrappedFunctions 
     128        self._plugins = {} 
     129        for f in self._functionNames: 
    127130            pluginlist = [] # List containing either modules if wrappedFunctions[f] 
    128131                    # is not None or functions if wrappedFunctions[f] is None 
    129             self.__plugins[f] = pluginlist 
    130             helper = self.__createHelper(wrappedFunctions[f], pluginlist) 
     132            self._plugins[f] = pluginlist 
     133            helper = self._createHelper(wrappedFunctions[f], pluginlist) 
    131134            setattr(self,f, helper) 
    132135             
    133136    def getFunctionNames(self): 
    134         return self.__functionNames 
     137        return self._functionNames 
    135138 
    136139    def hasFunctionName(self, fctName): 
    137         return fctName in self.__functionNames 
     140        return fctName in self._functionNames 
    138141 
    139142 
    140143    @staticmethod 
    141     def __createHelper(wrapFct, list): 
     144    def _createHelper(wrapFct, list): 
    142145        if wrapFct is None or isinstance(wrapFct, (str, unicode)): 
    143146            return lambda *args, **kwargs: [fun(*args, **kwargs) for fun in list] 
     
    148151 
    149152    def registerModule(self, module): 
    150         if self.descriptor in module.WIKIDPAD_PLUGIN: 
    151             for f in self.__functionNames: 
    152                 if self.__wrappedFunctions[f] is None: 
    153                     if hasattr(module, f): 
    154                         self.__plugins[f].append(getattr(module,f)) 
    155                         return True 
    156                     else: 
    157                         sys.stderr.write("plugin " + module.__name__ + " exposes " + 
    158                                 self.descriptor +  
    159                                 " but does not support any interface methods!") 
    160                         return False 
    161                 elif isinstance(self.__wrappedFunctions[f], (str, unicode)): 
    162                     realF = self.__wrappedFunctions[f] 
    163                     if hasattr(module, realF): 
    164                         self.__plugins[f].append(getattr(module,realF)) 
    165                         return True 
    166                     else: 
    167                         sys.stderr.write("plugin " + module.__name__ + " exposes " + 
    168                                 self.descriptor +  
    169                                 " but does not support any interface methods!") 
    170                         return False 
    171                 else: 
    172                     self.__plugins[f].append(module) 
    173                     return True 
    174  
    175         return False 
     153        if not self.descriptor in module.WIKIDPAD_PLUGIN: 
     154            return False 
     155 
     156        registered = False 
     157        for f in self._functionNames: 
     158            if self._wrappedFunctions[f] is None: 
     159                if hasattr(module, f): 
     160                    self._plugins[f].append(getattr(module,f)) 
     161                    registered = True 
     162            elif isinstance(self._wrappedFunctions[f], (str, unicode)): 
     163                realF = self._wrappedFunctions[f] 
     164                if hasattr(module, realF): 
     165                    self._plugins[f].append(getattr(module,realF)) 
     166                    registered = True 
     167            else: 
     168                self._plugins[f].append(module) 
     169                # An internal wrapper function doesn't count as "registered" 
     170#                 registered = True 
     171 
     172        if not registered: 
     173            sys.stderr.write("plugin " + module.__name__ + " exposes " + 
     174                    str(self.descriptor) +  
     175                    " but does not support any interface methods!") 
     176 
     177        return registered 
    176178 
    177179 
     
    179181class PluginAPIAggregation(object): 
    180182    def __init__(self, *apis): 
    181         self.__apis = apis 
     183        self._apis = apis 
    182184 
    183185        fctNames = set() 
    184         for api in self.__apis: 
     186        for api in self._apis: 
    185187            fctNames.update(api.getFunctionNames()) 
    186188         
    187189        for f in list(fctNames): 
    188190            funcList = [getattr(api, f) for api in apis if api.hasFunctionName(f)] 
    189             helper = lambda *args, **kwargs: reduce(lambda a, b: a+list(b), 
    190                     [fun(*args, **kwargs) for fun in funcList]) 
    191             setattr(self,f, helper) 
     191            setattr(self, f, PluginAPIAggregation._createHelper(funcList)) 
     192 
     193 
     194    @staticmethod 
     195    def _createHelper(funcList): 
     196        return lambda *args, **kwargs: reduce(lambda a, b: a+list(b), 
     197                [fun(*args, **kwargs) for fun in funcList]) 
     198 
     199 
    192200 
    193201 
     
    389397 
    390398        self.startedHandlers = {} 
    391          
     399 
    392400    def getHandler(self, exporter, exportType, insKey): 
    393401        """ 
  • branches/stable-2.1/lib/pwiki/WikiTxtCtrl.py

    r247 r275  
    2525from . import OsAbstract 
    2626 
    27 from .WikiExceptions import WikiFileNotFoundException, \ 
    28         NotCurrentThreadException, NoPageAstException 
     27from .WikiExceptions import * 
    2928 
    3029from .SystemInfo import isUnicode, isOSX, isLinux, isWindows 
     
    29902989                return 
    29912990 
    2992             wikiPage.checkFileSignatureAndMarkDirty() 
     2991            try: 
     2992                wikiPage.checkFileSignatureAndMarkDirty() 
     2993            except (IOError, OSError, DbAccessError), e: 
     2994                self.presenter.getMainControl().lostAccess(e) 
     2995 
     2996 
    29932997    else: 
    29942998        def OnSetFocus(self, evt): 
     
    30033007                return 
    30043008 
    3005             wikiPage.checkFileSignatureAndMarkDirty() 
     3009            try: 
     3010                wikiPage.checkFileSignatureAndMarkDirty() 
     3011            except (IOError, OSError, DbAccessError), e: 
     3012                self.presenter.getMainControl().lostAccess(e) 
     3013 
     3014 
    30063015 
    30073016 
  • branches/stable-2.1/wikidpad_unicode.iss

    r274 r275  
    5454Name: {app}\export 
    5555[Setup] 
    56 #define verStr "2.1rc04" 
    57 #define verNo "002.001.204.000" 
     56#define verStr "2.1rc04_1" 
     57#define verNo "002.001.204.001" 
    5858 
    5959SolidCompression=true