Hello community,

here is the log from the commit of package cherrytree for openSUSE:Factory 
checked in at 2012-02-27 18:33:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cherrytree (Old)
 and      /work/SRC/openSUSE:Factory/.cherrytree.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cherrytree", Maintainer is ""

Changes:
--------
--- /work/SRC/openSUSE:Factory/cherrytree/cherrytree.changes    2012-02-06 
15:54:35.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.cherrytree.new/cherrytree.changes       
2012-02-27 18:34:29.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Feb 24 12:27:46 UTC 2012 - [email protected]
+
+- Update to version 0.25.4:
+  + Bug fixes.
+
+-------------------------------------------------------------------
@@ -5,6 +11 @@
-  + The limit of undoable steps per node is now configurable.
-  + Implemented a dialog to iterate graphical way the find/replace.
-  + Implemented the insertion of timestamps. Format is configurable
-    through preferences dialog.
-  + Fixed some bugs/bad behaviors related to system tray, nodes 
-    drag n drop, links to files dialog and others.
+  + Bug fixes.

Old:
----
  cherrytree-0.25.3.tar.gz

New:
----
  cherrytree-0.25.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cherrytree.spec ++++++
--- /var/tmp/diff_new_pack.fdTYQy/_old  2012-02-27 18:34:30.000000000 +0100
+++ /var/tmp/diff_new_pack.fdTYQy/_new  2012-02-27 18:34:30.000000000 +0100
@@ -17,8 +17,8 @@
 
 
 Name:           cherrytree
-Version:        0.25.3
-Release:        1
+Version:        0.25.4
+Release:        0
 Summary:        A hierarchical note taking application
 License:        GPL-2.0+
 Group:          Productivity/Office/Other

++++++ cherrytree-0.25.3.tar.gz -> cherrytree-0.25.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cherrytree-0.25.3/debian/changelog 
new/cherrytree-0.25.4/debian/changelog
--- old/cherrytree-0.25.3/debian/changelog      2012-02-03 13:39:01.000000000 
+0100
+++ new/cherrytree-0.25.4/debian/changelog      2012-02-22 23:58:49.000000000 
+0100
@@ -1,4 +1,4 @@
-cherrytree (0.25.3-1) stable; urgency=low
+cherrytree (0.25.4-1) stable; urgency=low
 
   * Fellow upstream.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cherrytree-0.25.3/debian/debhelper.log 
new/cherrytree-0.25.4/debian/debhelper.log
--- old/cherrytree-0.25.3/debian/debhelper.log  2012-02-03 14:00:28.000000000 
+0100
+++ new/cherrytree-0.25.4/debian/debhelper.log  2012-02-24 09:29:39.000000000 
+0100
@@ -7,6 +7,67 @@
 dh_link
 dh_compress
 dh_fixperms
+dh_pycentral
+dh_installdeb
+dh_gencontrol
+dh_md5sums
+dh_builddeb
+dh_prep
+dh_installdirs
+dh_installchangelogs
+dh_installdocs
+dh_installexamples
+dh_installman
+dh_link
+dh_compress
+dh_fixperms
+dh_pycentral
+dh_installdeb
+dh_gencontrol
+dh_md5sums
+dh_builddeb
+dh_prep
+dh_installdirs
+dh_installchangelogs
+dh_installdocs
+dh_installexamples
+dh_installman
+dh_link
+dh_compress
+dh_fixperms
+dh_pycentral
+dh_installdeb
+dh_gencontrol
+dh_md5sums
+dh_builddeb
+dh_prep
+dh_installdirs
+dh_installchangelogs
+dh_installdocs
+dh_installexamples
+dh_installman
+dh_link
+dh_compress
+dh_fixperms
+dh_pycentral
+dh_installdeb
+dh_gencontrol
+dh_md5sums
+dh_builddeb
+dh_prep
+dh_installdirs
+dh_installchangelogs
+dh_installdocs
+dh_installexamples
+dh_installman
+dh_link
+dh_compress
+dh_fixperms
+dh_pycentral
+dh_installdeb
+dh_gencontrol
+dh_md5sums
+dh_builddeb
 dh_prep
 dh_installdirs
 dh_installchangelogs
Files old/cherrytree-0.25.3/linux/cherrytree.1.gz and 
new/cherrytree-0.25.4/linux/cherrytree.1.gz differ
Files old/cherrytree-0.25.3/locale/cs/LC_MESSAGES/cherrytree.mo and 
new/cherrytree-0.25.4/locale/cs/LC_MESSAGES/cherrytree.mo differ
Files old/cherrytree-0.25.3/locale/de/LC_MESSAGES/cherrytree.mo and 
new/cherrytree-0.25.4/locale/de/LC_MESSAGES/cherrytree.mo differ
Files old/cherrytree-0.25.3/locale/es/LC_MESSAGES/cherrytree.mo and 
new/cherrytree-0.25.4/locale/es/LC_MESSAGES/cherrytree.mo differ
Files old/cherrytree-0.25.3/locale/fr/LC_MESSAGES/cherrytree.mo and 
new/cherrytree-0.25.4/locale/fr/LC_MESSAGES/cherrytree.mo differ
Files old/cherrytree-0.25.3/locale/it/LC_MESSAGES/cherrytree.mo and 
new/cherrytree-0.25.4/locale/it/LC_MESSAGES/cherrytree.mo differ
Files old/cherrytree-0.25.3/locale/pl/LC_MESSAGES/cherrytree.mo and 
new/cherrytree-0.25.4/locale/pl/LC_MESSAGES/cherrytree.mo differ
Files old/cherrytree-0.25.3/locale/ru/LC_MESSAGES/cherrytree.mo and 
new/cherrytree-0.25.4/locale/ru/LC_MESSAGES/cherrytree.mo differ
Files old/cherrytree-0.25.3/locale/uk/LC_MESSAGES/cherrytree.mo and 
new/cherrytree-0.25.4/locale/uk/LC_MESSAGES/cherrytree.mo differ
Files old/cherrytree-0.25.3/modules/clipboard.pyc and 
new/cherrytree-0.25.4/modules/clipboard.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cherrytree-0.25.3/modules/codeboxes.py 
new/cherrytree-0.25.4/modules/codeboxes.py
--- old/cherrytree-0.25.3/modules/codeboxes.py  2012-02-03 10:40:15.000000000 
+0100
+++ new/cherrytree-0.25.4/modules/codeboxes.py  2012-02-22 23:58:49.000000000 
+0100
@@ -167,7 +167,10 @@
 
     def codebox_change_properties(self, action):
         """Change CodeBox Properties"""
-        self.dad.user_active = False
+        if self.dad.user_active:
+            self.dad.user_active = False
+            user_active_restore = True
+        else: user_active_restore = False
         
self.dad.glade.spinbutton_codebox_width.set_value(self.curr_codebox_anchor.frame_width)
         
self.dad.glade.spinbutton_codebox_height.set_value(self.curr_codebox_anchor.frame_height)
         
self.dad.glade.radiobutton_codebox_pixels.set_active(self.curr_codebox_anchor.width_in_pixels)
@@ -176,7 +179,7 @@
         
self.dad.glade.checkbutton_codebox_linenumbers.set_active(self.curr_codebox_anchor.show_line_numbers)
         
self.dad.glade.combobox_prog_lang_codebox.set_active_iter(self.dad.get_combobox_prog_lang_iter(self.curr_codebox_anchor.syntax_highlighting))
         self.dad.glade.codeboxhandledialog.set_title(_("Edit CodeBox"))
-        self.dad.user_active = True
+        if user_active_restore: self.dad.user_active = True
         response = self.dad.glade.codeboxhandledialog.run()
         self.dad.glade.codeboxhandledialog.hide()
         if response != 1: return # the user aborted the operation
Files old/cherrytree-0.25.3/modules/codeboxes.pyc and 
new/cherrytree-0.25.4/modules/codeboxes.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cherrytree-0.25.3/modules/config.py 
new/cherrytree-0.25.4/modules/config.py
--- old/cherrytree-0.25.3/modules/config.py     2012-01-16 12:05:22.000000000 
+0100
+++ new/cherrytree-0.25.4/modules/config.py     2012-02-22 23:58:49.000000000 
+0100
@@ -177,7 +177,10 @@
 
 def config_file_apply(inst):
     """Apply the Preferences from Config File"""
-    inst.user_active = False
+    if inst.user_active:
+        inst.user_active = False
+        user_active_restore = True
+    else: user_active_restore = False
     # treeview
     inst.hpaned.set_property('position', inst.hpaned_pos)
     inst.header_node_name_label.set_property("visible", 
inst.show_node_name_label)
@@ -244,7 +247,7 @@
     inst.ui.get_widget("/ToolBar").set_style(gtk.TOOLBAR_ICONS)
     inst.ui.get_widget("/ToolBar").set_property("icon-size", 
ICONS_SIZE[inst.toolbar_icon_size])
     if inst.autosave[0]: inst.autosave_timer_start()
-    inst.user_active = True
+    if user_active_restore: inst.user_active = True
 
 def config_file_save(inst):
     """Save the Preferences to Config File"""
Files old/cherrytree-0.25.3/modules/config.pyc and 
new/cherrytree-0.25.4/modules/config.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cherrytree-0.25.3/modules/cons.py 
new/cherrytree-0.25.4/modules/cons.py
--- old/cherrytree-0.25.3/modules/cons.py       2012-02-03 13:30:45.000000000 
+0100
+++ new/cherrytree-0.25.4/modules/cons.py       2012-02-23 23:11:45.000000000 
+0100
@@ -22,7 +22,7 @@
 import os, sys
 
 
-VERSION = "0.25.3"
+VERSION = "0.25.4"
 APP_NAME = "cherrytree"
 NEWER_VERSION_URL = "http://www.giuspen.com/software/version_cherrytree";
 if sys.platform[0:3] == "win":
@@ -735,3 +735,234 @@
     ("gtk-go-down", _("Increase CodeBox Height"), "<control>comma", 
_("Increase the Height of the CodeBox"), inst.codebox_increase_height),
     ("gtk-go-up", _("Decrease CodeBox Height"), "<control><alt>comma", 
_("Decrease the Height of the CodeBox"), inst.codebox_decrease_height),
     ]
+
+# Original from Dieter Verfaillie 
https://github.com/dieterv/elib.intl/blob/master/lib/elib/intl/__init__.py
+# List of ISO 639-1 and ISO 639-2 language codes: 
http://www.loc.gov/standards/iso639-2/
+# List of known lcid's: 
http://www.microsoft.com/globaldev/reference/lcid-all.mspx
+# List of known MUI packs: 
http://www.microsoft.com/globaldev/reference/win2k/setup/Langid.mspx
+MICROSOFT_WINDOWS_LCID_to_ISO_LANG =\
+{
+    1078:    'af',  # Afrikaans - South Africa
+    1052:    'sq',  # Albanian - Albania
+    1118:    'am',  # Amharic - Ethiopia
+    1025:    'ar',  # Arabic - Saudi Arabia
+    5121:    'ar',  # Arabic - Algeria
+    15361:   'ar',  # Arabic - Bahrain
+    3073:    'ar',  # Arabic - Egypt
+    2049:    'ar',  # Arabic - Iraq
+    11265:   'ar',  # Arabic - Jordan
+    13313:   'ar',  # Arabic - Kuwait
+    12289:   'ar',  # Arabic - Lebanon
+    4097:    'ar',  # Arabic - Libya
+    6145:    'ar',  # Arabic - Morocco
+    8193:    'ar',  # Arabic - Oman
+    16385:   'ar',  # Arabic - Qatar
+    10241:   'ar',  # Arabic - Syria
+    7169:    'ar',  # Arabic - Tunisia
+    14337:   'ar',  # Arabic - U.A.E.
+    9217:    'ar',  # Arabic - Yemen
+    1067:    'hy',  # Armenian - Armenia
+    1101:    'as',  # Assamese
+    2092:    'az',  # Azeri (Cyrillic)
+    1068:    'az',  # Azeri (Latin)
+    1069:    'eu',  # Basque
+    1059:    'be',  # Belarusian
+    1093:    'bn',  # Bengali (India)
+    2117:    'bn',  # Bengali (Bangladesh)
+    5146:    'bs',  # Bosnian (Bosnia/Herzegovina)
+    1026:    'bg',  # Bulgarian
+    1109:    'my',  # Burmese
+    1027:    'ca',  # Catalan
+    1116:    'chr', # Cherokee - United States
+    2052:    'zh',  # Chinese - People's Republic of China
+    4100:    'zh',  # Chinese - Singapore
+    1028:    'zh',  # Chinese - Taiwan
+    3076:    'zh',  # Chinese - Hong Kong SAR
+    5124:    'zh',  # Chinese - Macao SAR
+    1050:    'hr',  # Croatian
+    4122:    'hr',  # Croatian (Bosnia/Herzegovina)
+    1029:    'cs',  # Czech
+    1030:    'da',  # Danish
+    1125:    'dv',  # Divehi
+    1043:    'nl',  # Dutch - Netherlands
+    2067:    'nl',  # Dutch - Belgium
+    1126:    'bin', # Edo
+    1033:    'en',  # English - United States
+    2057:    'en',  # English - United Kingdom
+    3081:    'en',  # English - Australia
+    10249:   'en',  # English - Belize
+    4105:    'en',  # English - Canada
+    9225:    'en',  # English - Caribbean
+    15369:   'en',  # English - Hong Kong SAR
+    16393:   'en',  # English - India
+    14345:   'en',  # English - Indonesia
+    6153:    'en',  # English - Ireland
+    8201:    'en',  # English - Jamaica
+    17417:   'en',  # English - Malaysia
+    5129:    'en',  # English - New Zealand
+    13321:   'en',  # English - Philippines
+    18441:   'en',  # English - Singapore
+    7177:    'en',  # English - South Africa
+    11273:   'en',  # English - Trinidad
+    12297:   'en',  # English - Zimbabwe
+    1061:    'et',  # Estonian
+    1080:    'fo',  # Faroese
+    1065:    None,  # TODO: Farsi
+    1124:    'fil', # Filipino
+    1035:    'fi',  # Finnish
+    1036:    'fr',  # French - France
+    2060:    'fr',  # French - Belgium
+    11276:   'fr',  # French - Cameroon
+    3084:    'fr',  # French - Canada
+    9228:    'fr',  # French - Democratic Rep. of Congo
+    12300:   'fr',  # French - Cote d'Ivoire
+    15372:   'fr',  # French - Haiti
+    5132:    'fr',  # French - Luxembourg
+    13324:   'fr',  # French - Mali
+    6156:    'fr',  # French - Monaco
+    14348:   'fr',  # French - Morocco
+    58380:   'fr',  # French - North Africa
+    8204:    'fr',  # French - Reunion
+    10252:   'fr',  # French - Senegal
+    4108:    'fr',  # French - Switzerland
+    7180:    'fr',  # French - West Indies
+    1122:    'fy',  # Frisian - Netherlands
+    1127:    None,  # TODO: Fulfulde - Nigeria
+    1071:    'mk',  # FYRO Macedonian
+    2108:    'ga',  # Gaelic (Ireland)
+    1084:    'gd',  # Gaelic (Scotland)
+    1110:    'gl',  # Galician
+    1079:    'ka',  # Georgian
+    1031:    'de',  # German - Germany
+    3079:    'de',  # German - Austria
+    5127:    'de',  # German - Liechtenstein
+    4103:    'de',  # German - Luxembourg
+    2055:    'de',  # German - Switzerland
+    1032:    'el',  # Greek
+    1140:    'gn',  # Guarani - Paraguay
+    1095:    'gu',  # Gujarati
+    1128:    'ha',  # Hausa - Nigeria
+    1141:    'haw', # Hawaiian - United States
+    1037:    'he',  # Hebrew
+    1081:    'hi',  # Hindi
+    1038:    'hu',  # Hungarian
+    1129:    None,  # TODO: Ibibio - Nigeria
+    1039:    'is',  # Icelandic
+    1136:    'ig',  # Igbo - Nigeria
+    1057:    'id',  # Indonesian
+    1117:    'iu',  # Inuktitut
+    1040:    'it',  # Italian - Italy
+    2064:    'it',  # Italian - Switzerland
+    1041:    'ja',  # Japanese
+    1099:    'kn',  # Kannada
+    1137:    'kr',  # Kanuri - Nigeria
+    2144:    'ks',  # Kashmiri
+    1120:    'ks',  # Kashmiri (Arabic)
+    1087:    'kk',  # Kazakh
+    1107:    'km',  # Khmer
+    1111:    'kok', # Konkani
+    1042:    'ko',  # Korean
+    1088:    'ky',  # Kyrgyz (Cyrillic)
+    1108:    'lo',  # Lao
+    1142:    'la',  # Latin
+    1062:    'lv',  # Latvian
+    1063:    'lt',  # Lithuanian
+    1086:    'ms',  # Malay - Malaysia
+    2110:    'ms',  # Malay - Brunei Darussalam
+    1100:    'ml',  # Malayalam
+    1082:    'mt',  # Maltese
+    1112:    'mni', # Manipuri
+    1153:    'mi',  # Maori - New Zealand
+    1102:    'mr',  # Marathi
+    1104:    'mn',  # Mongolian (Cyrillic)
+    2128:    'mn',  # Mongolian (Mongolian)
+    1121:    'ne',  # Nepali
+    2145:    'ne',  # Nepali - India
+    1044:    'no',  # Norwegian (Bokmal)
+    2068:    'no',  # Norwegian (Nynorsk)
+    1096:    'or',  # Oriya
+    1138:    'om',  # Oromo
+    1145:    'pap', # Papiamentu
+    1123:    'ps',  # Pashto
+    1045:    'pl',  # Polish
+    1046:    'pt',  # Portuguese - Brazil
+    2070:    'pt',  # Portuguese - Portugal
+    1094:    'pa',  # Punjabi
+    2118:    'pa',  # Punjabi (Pakistan)
+    1131:    'qu',  # Quecha - Bolivia
+    2155:    'qu',  # Quecha - Ecuador
+    3179:    'qu',  # Quecha - Peru
+    1047:    'rm',  # Rhaeto-Romanic
+    1048:    'ro',  # Romanian
+    2072:    'ro',  # Romanian - Moldava
+    1049:    'ru',  # Russian
+    2073:    'ru',  # Russian - Moldava
+    1083:    'se',  # Sami (Lappish)
+    1103:    'sa',  # Sanskrit
+    1132:    'nso', # Sepedi
+    3098:    'sr',  # Serbian (Cyrillic)
+    2074:    'sr',  # Serbian (Latin)
+    1113:    'sd',  # Sindhi - India
+    2137:    'sd',  # Sindhi - Pakistan
+    1115:    'si',  # Sinhalese - Sri Lanka
+    1051:    'sk',  # Slovak
+    1060:    'sl',  # Slovenian
+    1143:    'so',  # Somali
+    1070:    'wen', # Sorbian
+    3082:    'es',  # Spanish - Spain (Modern Sort)
+    1034:    'es',  # Spanish - Spain (Traditional Sort)
+    11274:   'es',  # Spanish - Argentina
+    16394:   'es',  # Spanish - Bolivia
+    13322:   'es',  # Spanish - Chile
+    9226:    'es',  # Spanish - Colombia
+    5130:    'es',  # Spanish - Costa Rica
+    7178:    'es',  # Spanish - Dominican Republic
+    12298:   'es',  # Spanish - Ecuador
+    17418:   'es',  # Spanish - El Salvador
+    4106:    'es',  # Spanish - Guatemala
+    18442:   'es',  # Spanish - Honduras
+    58378:   'es',  # Spanish - Latin America
+    2058:    'es',  # Spanish - Mexico
+    19466:   'es',  # Spanish - Nicaragua
+    6154:    'es',  # Spanish - Panama
+    15370:   'es',  # Spanish - Paraguay
+    10250:   'es',  # Spanish - Peru
+    20490:   'es',  # Spanish - Puerto Rico
+    21514:   'es',  # Spanish - United States
+    14346:   'es',  # Spanish - Uruguay
+    8202:    'es',  # Spanish - Venezuela
+    1072:    None,  # TODO: Sutu
+    1089:    'sw',  # Swahili
+    1053:    'sv',  # Swedish
+    2077:    'sv',  # Swedish - Finland
+    1114:    'syr', # Syriac
+    1064:    'tg',  # Tajik
+    1119:    None,  # TODO: Tamazight (Arabic)
+    2143:    None,  # TODO: Tamazight (Latin)
+    1097:    'ta',  # Tamil
+    1092:    'tt',  # Tatar
+    1098:    'te',  # Telugu
+    1054:    'th',  # Thai
+    2129:    'bo',  # Tibetan - Bhutan
+    1105:    'bo',  # Tibetan - People's Republic of China
+    2163:    'ti',  # Tigrigna - Eritrea
+    1139:    'ti',  # Tigrigna - Ethiopia
+    1073:    'ts',  # Tsonga
+    1074:    'tn',  # Tswana
+    1055:    'tr',  # Turkish
+    1090:    'tk',  # Turkmen
+    1152:    'ug',  # Uighur - China
+    1058:    'uk',  # Ukrainian
+    1056:    'ur',  # Urdu
+    2080:    'ur',  # Urdu - India
+    2115:    'uz',  # Uzbek (Cyrillic)
+    1091:    'uz',  # Uzbek (Latin)
+    1075:    've',  # Venda
+    1066:    'vi',  # Vietnamese
+    1106:    'cy',  # Welsh
+    1076:    'xh',  # Xhosa
+    1144:    'ii',  # Yi
+    1085:    'yi',  # Yiddish
+    1130:    'yo',  # Yoruba
+    1077:    'zu'   # Zulu
+}
Files old/cherrytree-0.25.3/modules/cons.pyc and 
new/cherrytree-0.25.4/modules/cons.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cherrytree-0.25.3/modules/core.py 
new/cherrytree-0.25.4/modules/core.py
--- old/cherrytree-0.25.3/modules/core.py       2012-02-03 13:37:32.000000000 
+0100
+++ new/cherrytree-0.25.4/modules/core.py       2012-02-22 23:58:49.000000000 
+0100
@@ -715,7 +715,10 @@
 
     def nodes_add_from_cherrytree_data(self, cherrytree_string, 
cherrytree_db=None):
         """Adds Nodes to the Tree Parsing a CherryTree XML String / CherryTree 
DB"""
-        self.user_active = False
+        if self.user_active:
+            self.user_active = False
+            user_active_restore = True
+        else: user_active_restore = False
         file_loaded = False
         former_node = self.curr_tree_iter # we'll restore after the import
         tree_father = None # init the value of the imported nodes father
@@ -743,7 +746,7 @@
             if radiobutton_curr_node.get_active(): tree_father = 
self.curr_tree_iter
             dialog.destroy()
             if response != gtk.RESPONSE_ACCEPT:
-                self.user_active = True
+                if user_active_restore: self.user_active = True
                 return
         try:
             if not cherrytree_db:
@@ -783,7 +786,7 @@
                     
self.curr_buffer.place_cursor(self.curr_buffer.get_iter_at_offset(self.nodes_cursor_pos[self.treestore[former_node][3]]))
                     
self.sourceview.scroll_to_mark(self.curr_buffer.get_insert(), 0.3)
         else: support.dialog_error('Error Parsing the CherryTree File', 
self.window)
-        self.user_active = True
+        if user_active_restore: self.user_active = True
 
     def nodes_expand_all(self, action):
         """Expand all Tree Nodes"""
@@ -867,6 +870,8 @@
             self.autosave[1] = new_autosave_value
             if self.autosave_timer_id != None: self.autosave_timer_stop()
         if self.autosave[0] and self.autosave_timer_id == None: 
self.autosave_timer_start()
+        # update config file (for people that do not close the app but just 
logout/shutdown)
+        config.config_file_save(self)
 
     def autosave_timer_start(self):
         """Start Autosave Timer"""
@@ -1348,7 +1353,10 @@
             elif self.db == None: return # no error exit
         if document_loaded_ok:
             document_loaded_ok = False
-            self.user_active = False
+            if self.user_active:
+                self.user_active = False
+                user_active_restore = True
+            else: user_active_restore = False
             file_loaded = False
             if self.filetype in ["d", "z"]:
                 # xml
@@ -1365,7 +1373,7 @@
                 support.add_recent_document(self, filepath)
                 support.set_bookmarks_menu_items(self)
                 self.update_window_save_not_needed()
-            self.user_active = True
+            if user_active_restore: self.user_active = True
         if not document_loaded_ok:
             support.dialog_error(_('"%s" is Not a CherryTree Document') % 
filepath, self.window)
             self.file_name = ""
@@ -2284,14 +2292,17 @@
 
     def switch_buffer_text_source(self, text_buffer, tree_iter, 
new_syntax_highl):
         """Switch TextBuffer -> SourceBuffer or SourceBuffer -> TextBuffer"""
-        self.user_active = False
+        if self.user_active:
+            self.user_active = False
+            user_active_restore = True
+        else: user_active_restore = False
         node_text = text_buffer.get_text(*text_buffer.get_bounds())
         self.treestore[tree_iter][2] = self.buffer_create(new_syntax_highl)
         self.treestore[tree_iter][2].set_text(node_text)
         self.sourceview.set_buffer(self.treestore[tree_iter][2])
         self.treestore[tree_iter][2].connect('modified-changed', 
self.on_modified_changed)
         self.sourceview_set_properties(tree_iter, new_syntax_highl)
-        self.user_active = True
+        if user_active_restore: self.user_active = True
         
self.ctdb_handler.pending_edit_db_node_buff(self.treestore[tree_iter][3])
 
     def on_node_changed(self, *args):
@@ -2300,9 +2311,10 @@
         if new_iter == None: return # no node selected
         elif self.curr_tree_iter != None and model[new_iter][3] == 
model[self.curr_tree_iter][3]:
             return # if i click on an already selected node
-        if self.curr_tree_iter != None:
-            self.nodes_cursor_pos[model[self.curr_tree_iter][3]] = 
self.curr_buffer.get_property('cursor-position')
-            if self.curr_buffer.get_modified() == True:
+        if self.curr_tree_iter:
+            if self.user_active:
+                self.nodes_cursor_pos[model[self.curr_tree_iter][3]] = 
self.curr_buffer.get_property('cursor-position')
+            if self.curr_buffer.get_modified():
                 self.file_update = True
                 self.curr_buffer.set_modified(False)
                 
self.state_machine.update_state(self.treestore[self.curr_tree_iter][3])
@@ -2485,7 +2497,10 @@
             step_back = 
self.state_machine.requested_previous_state(self.treestore[self.curr_tree_iter][3])
             # step_back is [ [rich_text, pixbuf_table_vector, 
cursor_position],... ]
             if step_back != None:
-                self.user_active = False
+                if self.user_active:
+                    self.user_active = False
+                    user_active_restore = True
+                else: user_active_restore = False
                 self.xml_handler.dom_to_buffer(self.curr_buffer, step_back[0])
                 pixbuf_table_vector = step_back[1]
                 # pixbuf_table_vector is [ [ "pixbuf"/"table"/"codebox", 
[offset, pixbuf, alignment] ],... ]
@@ -2498,7 +2513,7 @@
                 self.objects_buffer_refresh()
                 
self.curr_buffer.place_cursor(self.curr_buffer.get_iter_at_offset(step_back[2]))
                 self.sourceview.scroll_to_mark(self.curr_buffer.get_insert(), 
0.3)
-                self.user_active = True
+                if user_active_restore: self.user_active = True
                 self.update_window_save_needed("nbuf")
         elif self.curr_buffer.can_undo():
             self.curr_buffer.undo()
@@ -2512,7 +2527,10 @@
             step_ahead = 
self.state_machine.requested_subsequent_state(self.treestore[self.curr_tree_iter][3])
             # step_ahead is [ [rich_text, pixbuf_table_vector, 
cursor_position],... ]
             if step_ahead != None:
-                self.user_active = False
+                if self.user_active:
+                    self.user_active = False
+                    user_active_restore = True
+                else: user_active_restore = False
                 self.xml_handler.dom_to_buffer(self.curr_buffer, step_ahead[0])
                 pixbuf_table_vector = step_ahead[1]
                 # pixbuf_table_vector is [ [ "pixbuf"/"table", [offset, 
pixbuf, alignment] ],... ]
@@ -2525,7 +2543,7 @@
                 self.objects_buffer_refresh()
                 
self.curr_buffer.place_cursor(self.curr_buffer.get_iter_at_offset(step_ahead[2]))
                 self.sourceview.scroll_to_mark(self.curr_buffer.get_insert(), 
0.3)
-                self.user_active = True
+                if user_active_restore: self.user_active = True
                 self.update_window_save_needed("nbuf")
         elif self.curr_buffer.can_redo():
             self.curr_buffer.redo()
@@ -2538,7 +2556,10 @@
         # refresh is [ [rich_text, pixbuf_table_vector, cursor_position],... ]
         pixbuf_table_vector = refresh[1]
         if len(pixbuf_table_vector) > 0:
-            self.user_active = False
+            if self.user_active:
+                self.user_active = False
+                user_active_restore = True
+            else: user_active_restore = False
             self.curr_buffer.set_text("")
             self.xml_handler.dom_to_buffer(self.curr_buffer, refresh[0])
             for element in pixbuf_table_vector:
@@ -2546,7 +2567,7 @@
                 elif element[0] == "table": 
self.state_machine.load_embedded_table_element(self.curr_buffer, element[1])
                 elif element[0] == "codebox": 
self.state_machine.load_embedded_codebox_element(self.curr_buffer, element[1])
             self.curr_buffer.set_modified(False)
-            self.user_active = True
+            if user_active_restore: self.user_active = True
 
     def on_text_insertion(self, sourcebuffer, text_iter, text_inserted, 
length):
         """Text insertion callback"""
@@ -2943,7 +2964,10 @@
 
     def image_load_into_dialog(self):
         """Load/Reload the Image Under Editing"""
-        self.user_active = False
+        if self.user_active:
+            self.user_active = False
+            user_active_restore = True
+        else: user_active_restore = False
         self.glade.spinbutton_image_width.set_value(self.temp_image_width)
         self.glade.spinbutton_image_height.set_value(self.temp_image_height)
         if self.temp_image_width <= 900 and self.temp_image_height <= 600:
@@ -2963,7 +2987,7 @@
                                                        int(temp_image_height),
                                                        gtk.gdk.INTERP_BILINEAR)
         self.glade.image_under_editing.set_from_pixbuf(pixbuf)
-        self.user_active = True
+        if user_active_restore: self.user_active = True
 
     def on_button_rotate_90_cw_clicked(self, *args):
         """Image Edit - Rotate 90 ClockWise"""
Files old/cherrytree-0.25.3/modules/core.pyc and 
new/cherrytree-0.25.4/modules/core.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cherrytree-0.25.3/modules/ctdb.py 
new/cherrytree-0.25.4/modules/ctdb.py
--- old/cherrytree-0.25.3/modules/ctdb.py       2012-01-24 09:04:06.000000000 
+0100
+++ new/cherrytree-0.25.4/modules/ctdb.py       2012-02-22 23:58:49.000000000 
+0100
@@ -404,8 +404,8 @@
         """Read a node content from DB"""
         if self.dad.user_active:
             self.dad.user_active = False
-            back_to_user_active = True
-        else: back_to_user_active = False
+            user_active_restore = True
+        else: user_active_restore = False
         syntax_highlighting = self.dad.treestore[tree_iter][4]
         if original_id: node_id = original_id
         else: node_id = self.dad.treestore[tree_iter][3]
@@ -467,7 +467,7 @@
                     else: self.add_node_image(images_rows[obj_idx[1]], 
curr_buffer)
                 self.dad.sourceview.set_buffer(self.dad.curr_buffer)
         curr_buffer.set_modified(False)
-        if back_to_user_active: self.dad.user_active = True
+        if user_active_restore: self.dad.user_active = True
     
     def get_children_rows_from_father_id(self, db, father_id):
         """Returns the children rows given the father_id"""
Files old/cherrytree-0.25.3/modules/ctdb.pyc and 
new/cherrytree-0.25.4/modules/ctdb.pyc differ
Files old/cherrytree-0.25.3/modules/exports.pyc and 
new/cherrytree-0.25.4/modules/exports.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cherrytree-0.25.3/modules/findreplace.py 
new/cherrytree-0.25.4/modules/findreplace.py
--- old/cherrytree-0.25.3/modules/findreplace.py        2012-01-16 
12:05:22.000000000 +0100
+++ new/cherrytree-0.25.4/modules/findreplace.py        2012-02-22 
23:58:49.000000000 +0100
@@ -31,6 +31,7 @@
         """Lists Handler boot"""
         self.dad = dad
         self.replace_active = False
+        self.replace_subsequent = False
         self.curr_find = [None, ""] # [latest find type, latest find pattern]
         self.from_find_iterated = False
         self.from_find_back = False
@@ -54,7 +55,9 @@
         elif response == 2:
             # replace
             self.replace_active = True
+            self.replace_subsequent = True
             self.find_again()
+            self.replace_subsequent = False
         elif response == 3:
             # undo replace
             self.dad.requested_step_back()
@@ -146,6 +149,10 @@
         if all_matches: self.liststore_create_or_clean()
         config.get_tree_expanded_collapsed_string(self.dad)
         # searching start
+        if self.dad.user_active:
+            self.dad.user_active = False
+            user_active_restore = True
+        else: user_active_restore = False
         while node_iter:
             self.all_matches_first_in_node = True
             while self.parse_given_node_content(node_iter, pattern, forward, 
first_fromsel, all_matches):
@@ -183,6 +190,7 @@
                 
self.dad.sourceview.scroll_to_mark(self.dad.curr_buffer.get_insert(), 0.3)
                 if 
self.dad.glade.checkbutton_iterated_find_dialog.get_active():
                     self.iterated_find_dialog()
+        if user_active_restore: self.dad.user_active = True
 
     def find_a_node(self, *args):
         """Search for a pattern between all the Node's Names"""
@@ -314,7 +322,7 @@
                     self.dad.set_selection_at_offset_n_delta(match_offsets[0] 
+ num_objs,
                                                              
len(replacer_text))
                 
self.dad.state_machine.update_state(self.dad.treestore[self.dad.curr_tree_iter][3])
-                
self.ctdb_handler.pending_edit_db_node_buff(self.dad.treestore[self.dad.curr_tree_iter][3])
+                
self.dad.ctdb_handler.pending_edit_db_node_buff(self.dad.treestore[self.dad.curr_tree_iter][3])
             return True
         else: return False
     
@@ -368,8 +376,8 @@
         or (all_matches and not self.all_matches_first_in_node):
             iter_insert = 
self.dad.curr_buffer.get_iter_at_mark(self.dad.curr_buffer.get_insert())
             iter_bound = 
self.dad.curr_buffer.get_iter_at_mark(self.dad.curr_buffer.get_selection_bound())
-            if not self.replace_active:
-                # it's a find, so we want, given a selected word, to find for 
the subsequent one
+            if not self.replace_active or self.replace_subsequent:
+                # it's a find or subsequent replace, so we want, given a 
selected word, to find for the subsequent one
                 if forward:
                     if iter_bound != None and iter_insert.compare(iter_bound) 
< 0: start_iter = iter_bound
                     else: start_iter = iter_insert
@@ -377,7 +385,7 @@
                     if iter_bound != None and iter_insert.compare(iter_bound) 
> 0: start_iter = iter_bound
                     else: start_iter = iter_insert
             else:
-                # it's a replace, so we want, given a selected word, to 
replace starting from this one
+                # it's a first replace, so we want, given a selected word, to 
replace starting from this one
                 if forward:
                     if iter_bound != None and iter_insert.compare(iter_bound) 
> 0: start_iter = iter_bound
                     else: start_iter = iter_insert
@@ -484,8 +492,10 @@
     def replace_again(self):
         """Continue the previous replace 
(a_node/in_selected_node/in_all_nodes)"""
         self.replace_active = True
+        self.replace_subsequent = True
         self.find_again()
         self.replace_active = False
+        self.replace_subsequent = False
 
     def get_line_content(self, text_iter):
         """Returns the Line Content Given the Text Iter"""
Files old/cherrytree-0.25.3/modules/findreplace.pyc and 
new/cherrytree-0.25.4/modules/findreplace.pyc differ
Files old/cherrytree-0.25.3/modules/imports.pyc and 
new/cherrytree-0.25.4/modules/imports.pyc differ
Files old/cherrytree-0.25.3/modules/lists.pyc and 
new/cherrytree-0.25.4/modules/lists.pyc differ
Files old/cherrytree-0.25.3/modules/machines.pyc and 
new/cherrytree-0.25.4/modules/machines.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cherrytree-0.25.3/modules/main.py 
new/cherrytree-0.25.4/modules/main.py
--- old/cherrytree-0.25.3/modules/main.py       2012-01-16 12:05:22.000000000 
+0100
+++ new/cherrytree-0.25.4/modules/main.py       2012-02-23 23:11:45.000000000 
+0100
@@ -133,12 +133,25 @@
             import ctypes, ctypes.util
             libc = ctypes.cdll.LoadLibrary(ctypes.util.find_library("libc"))
             libc.prctl(15, cons.APP_NAME, 0, 0, 0)
-        except: print "libc.prctl not available, the process name will be 
python and not cherrytree"
+        except:
+            print "libc.prctl not available, the process name will be python 
and not cherrytree"
     try:
         # change locale text domain
         import locale
         locale.bindtextdomain(cons.APP_NAME, cons.LOCALE_PATH)
-    except: print "locale.bindtextdomain not available, the glade i18n may not 
work properly"
+    except:
+        try:
+            from ctypes import cdll
+            libintl = cdll.intl
+            libintl.bindtextdomain(cons.APP_NAME, cons.LOCALE_PATH)
+        except:
+            print "ctypes.cdll.intl.bindtextdomain not available, the glade 
i18n will not work properly"
+        try:
+            from ctypes import windll
+            lcid = windll.kernel32.GetUserDefaultUILanguage()
+            os.environ["LANGUAGE"] = 
cons.MICROSOFT_WINDOWS_LCID_to_ISO_LANG[lcid]
+        except:
+            print "ctypes.windll.kernel32.GetUserDefaultUILanguage, the i18n 
may not work properly"
     # language installation
     if os.path.isfile(cons.LANG_PATH):
         lang_file_descriptor = file(cons.LANG_PATH, 'r')
Files old/cherrytree-0.25.3/modules/main.pyc and 
new/cherrytree-0.25.4/modules/main.pyc differ
Files old/cherrytree-0.25.3/modules/printing.pyc and 
new/cherrytree-0.25.4/modules/printing.pyc differ
Files old/cherrytree-0.25.3/modules/support.pyc and 
new/cherrytree-0.25.4/modules/support.pyc differ
Files old/cherrytree-0.25.3/modules/tablez.pyc and 
new/cherrytree-0.25.4/modules/tablez.pyc differ

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to