2 Shared code for ROX applications
4 http://rox.sourceforge.net
8 Bugfix: When a menu has more than one toggle item, only one is updated
9 correctly (Ken Hayber).
13 Replace g.mainloop() and g.mainquit() with g.main() and g.main_quit() as
14 recommended since pygtk 2.0.0 to avoid warnings with pygtk 2.4.0 (Stephen
19 Added options.ListOption to support multi-valued option widgets, such as
20 lists (Stephen Watson).
22 02-Oct-2004 (Release 1.9.16)
24 Cope better with user cancelling su operation. New interface to replace
25 create_su_proxy (Thomas Leonard).
29 The choices module is now deprecated. You can use choices.migrate() to move
30 settings over to the basedir system (Thomas Leonard). Also added
31 basedir.load_first_config(), which works like the old choices.load().
35 Several incompatible changes to the experimental proxy API to make it simpler
38 - Create_su_proxy now returns the MasterObject directly, not the MasterProxy.
39 - You can call finish on the MasterObject (so the MasterProxy isn't needed).
40 - Slave methods no longer take a 'request' argument. Instead, the return
41 value of the function is returned.
42 - Methods can only return one value. dequeue and dequeue_last have been
43 replaced with a 'result' property.
44 - Methods on MasterObject now return a RequestBlocker, not a Queue. This
45 means you just yield the object itself, not object.blocker.
47 Tasks API is no longer experimental, but proxy API is.
51 Added a Help button to the exception dialog, which opens the new Help/Errors
52 file (Thomas Leonard).
56 Simplified su code and interface.
57 New suchild methods: open, close, read, write, chmod and rename, which work
58 just like their normal Python counterparts (Thomas Leonard).
62 Removed code to turn off the separator in the debug dialog. GTK 2.4 doesn't
63 need it, and generates a warning if you use it (Thomas Leonard).
65 27-Aug-2004 (Release 1.9.15)
67 Added spawnvpe and waitpid methods to suchild.
71 If the unit field for a <numentry> option is blank, don't try to translate it
72 (reported by Guido Schimmels).
76 Added 'su' module for performing operations as root.
80 Allow "" as a valid value in a OptionsBox menu (reported by Guido Schimmels).
84 Added 'proxy' module. This allows one Python process to invoke methods on
85 another asynchronously.
86 Added rox.UserAbort exception, to be raised when users cancel something
91 Fix syntax error I caused when I added a docstring (Stephen Watson).
95 Get update-mime-database command through Zero Install, if possible.
99 mime_handler can now uninstall (Stephen Watson).
103 Translate menu items in options (Guido Schimmels).
107 Added <slider> widget to options.
111 Added 'size-group' attribute to Options.xml elements. This allows grouping
112 elements so that their labels all appear the same width.
116 Bugfix: Colour buttons in the Options boxes didn't work with some themes
119 17-Apr-2004 (Release 1.9.14)
121 Added ToggleItem (based on a patch from Ken Hayber).
125 Better <label> widgets (wrapping and icon). Taken from LookAndFeel.
129 Stop themes from overriding the display of the colour-picker buttons in
130 the options box (Rene Ejury).
134 Warn about old versions of findrox.py.
135 Bugfix: Bug in new menu API prevented submenus from working.
137 16-Mar-2004 (Release 1.9.13)
139 Bugfix: Icon themes didn't work with python versions older than 2.2.2
140 (reported by Thomas Zajic).
144 Bugfix: Use filer module to show ROX-Lib help, rather than using os.system,
145 so that it works with Zero Install (reported by Keith Hopper).
149 Added widget_registry to OptionsBox, to provide an easy way to register
150 new option types. Removed build_button in favour of this method.
152 Bugfix: If an error occurred loading the ROX theme at startup it could not
153 be reported, because icon_theme wants debug, debug wants saving, and
154 saving wants icon_theme (reported by Thomas Zajic).
158 Cope with pygtk2.2 API change (Stephen Watson, reported by Guido Schimmels).
162 Added secretentry and button options to the OptionsBox (Stephen Watson).
166 Cope with option values split into multiple DOM text nodes (Rene Ejury).
170 Allow a list of values to be stored in each menu Action. These are used as
171 the arguments to the callback function.
172 If a file's details were recorded (in document.save_last_stat) when it was
173 loaded, make sure they haven't changed when saving. Saving also updates this
174 variable (requested by Arnaud Calvo).
178 Updated examples in documentation for new findrox (Yuri Bongiorno).
182 New API for menus. Instead of passing tuples for menu items, python classes
183 can be used. The old tuple interface is still supported.
187 Don't stop DnD working in the savebox just because no icon can be found
188 (reported by Martin Lucina).
192 Added French translation (Vincent Lefèvre).
196 Also translate <label> elements in the Options box (reported by Arnaud Calvo).
200 Also translate section names in the Options box (reported by Arnaud Calvo).
202 22-Jan-2004 (Release 1.9.12)
204 Added 'tasks' module to provide a light-weight alternative to threads.
205 Bugfix: On non-zero-install systems, the sense of the version check in findrox
210 Added method to MIMEtype to fetch its icon. Install list window for
211 the MIME handler installation uses it (Stephen Watson).
215 Translate text in Options box.
219 Allow ROXLIB_DISABLE_ZEROINSTALL to override looking for ROX-Lib in Zero
220 Install (useful for ROX-Lib developers). Prefer a locally installed version
221 of ROX-Filer to the Zero Install version; this also allows users to select
222 which Zero Install version they want (eg, stable or developer).
223 Moved MIME handler installation into a separate module (mime_handler) and
224 made a few changes to the XML syntax.
228 Added <menu> OptionMenu widget for Options box (Chris Shaffer).
232 Fixed bug in findrox when not using Zero Install (Lionel Bringuier).
236 Escape and unescape URIs, as required by ROX-Filer 2.1.0 (reported by
238 Note that the xds_load_uris() method is now called with escaped URIs.
239 Try to run the filer through Zero Install, if possible.
243 If we can't get pygtk through Zero Install, try the local copy.
247 Added support in mime.py for an application to set MIME-type run
248 actions and thumbnail programs (Stephen Watson).
252 Simplified implementation of saving.SaveFilter by using the new
253 processes.PipeThroughCommand class. The child_run() method of SaveFilter
254 is no longer supported.
255 In processes.PipeThroughCommand, a None input stream gets /dev/null instead
256 of inheriting its parent's stream. The class has a new run_child_with_streams
257 to make overriding the behaviour easier.
258 findrox.py script now warns if ROX-Lib2 version is too old (unless requesting
259 a version too old to have a version number).
263 Changed 'Dismiss' to 'Close' (Chris Shaffer).
264 Bugfix: Error reporting in mime.py failed to import the _ function (reported
265 by Christopher Haines).
266 New AppInfo.py for parsing AppInfo.xml files (Christopher Arndt), InfoWin
267 converted to use it (Stephen Watson).
269 15-Oct-2003 (Release 1.9.11)
271 Bugfix: Python 2.3's new bool type broke options saving (reported by Lars
276 Added PipeThroughCommand class (copied from Archive, with some minor
281 Allow event to be None for Menu.popup. This allows the menu to be activated
282 from the keyboard, using the 'popup-menu' signal.
286 Added French translation in AppInfo.xml (Vincent Lefèvre).
288 03-Oct-2003 (Release 1.9.10)
290 Added support for icon themes (doesn't do inheritance yet).
294 Added some version information to the dialog you get when you run ROX-Lib
299 New bug() function to quickly bring up a debugging prompt.
303 The glob patterns in mime.py are now sorted longest first. Fix for setting
304 icon in the old way when there was no icon (Stephen Watson).
308 Try to cope better with bad hostname setup (reported by Nathan Howell).
312 Added InfoWin.py to provide standardized information window (Stephen Watson).
316 Fall back to old way of setting default icon for older pygtk's (Stephen
321 Added Italian translation (Yuri Bongiorno).
325 Better way to set the default icon.
327 16-Aug-2003 (Release 1.9.9)
329 Give windows a default icon from .DirIcon (Chris Shaffer).
333 Try to get pygtk through ZeroInstall.
337 Updated findrox to use ZeroInstall, if possible.
341 Work out correct application name even if invoked via a symlink. This stops
342 applications from calling themselves 'text_plain', etc (reported by Joe Hill).
344 19-Jul-2003 (Release 1.9.8)
346 Make default menu positioning function keep the pointer inside the menu.
347 Allow stock icons in menus.
351 Added position_fn argument to rox.Menu.popup.
355 Cope with % escaped URIs.
359 Added italian translation in AppInfo.xml (Yuri Bongiorno)
363 When loading data from another application, pass the suggested leafname to
364 xds_load_from_stream().
368 Code tidying, thanks to pychecker.
372 Added fileutils module, which provides an interactive makedirs() function
374 Changed savebox module to use it.
376 16-May-2003 (Release 1.9.7)
378 New icon (Geoff Youngs).
379 Added 'basedir' module for freedesktop.org Base Directory specification.
383 Added functions to read MIME database (Stephen Watson).
385 27-Jan-2003 (Release 1.9.6)
387 Make the default window class the name of the application directory, not
388 'AppRun' (suggested by Albert Wagner).
389 Bugfix: With pygtk-1.99.14, only the first error message from a process
390 would be detected; this meant that ROX-Lib wouldn't detect when the
391 process quit (reported by joehill).
392 Bugfix: <hbox> and <vbox> layouts didn't work in the options box (Allen
397 If python is too old, raise SystemExit instead of quitting.
398 Ensure that True and False are defined.
402 Work around bug in some versions of pygtk that stopped the options window
405 12-Dec-2002 (Release 1.9.5)
407 Upgrade Options box to new style.
411 Bugfix: If an option had an empty value, an exception was thrown on loading
412 (reported by Stephen Watson).
416 Cope with missing input_add_full.
420 Pygtk 1.99.12 seems to more-or-less work now (according to Alastair Porter), so
421 remove the warning for that so we can support RedHat 8.0.
423 20-Oct-2002 (Release 1.9.4)
425 More warnings about old pygtk versions.
426 Added Dialog class (does ref-counting, like Window).
430 Trying to use ROX-Lib2 with earlier versions of python now gives a sensible
435 Make clicking on ROX-Lib itself work again (Christopher Arndt).
439 Updated findrox.py to use pygtk 1.99.13 -- update your programs!
441 25-Aug-2002 (Release 1.9.3)
443 Switch to use new pygtk versioning system (requires pygtk 1.99.13).
447 Added 'processes' module, based on code in Archive, which makes controlling
452 Bugfix: Changing the keys lost any builtin shortcuts (Gtk behaviour has
457 Trap exceptions when activating menu items and report nicely.
461 Bugfix: Remember to call drop_finish() after a drag-and-drop operation.
463 05-Aug-2002 (Release 1.9.2)
465 Renamed XDSLoader module to 'loading' (like 'saving').
466 Added 'mime' module for installing extra MIME information.
467 Bugfix: XDSLoader didn't handle the drag-drop signal, and so only worked for
468 widgets with their own implementation!
472 Show local variables in report_exception, and allow expressions to be
473 evaluated in the context of any frame.
474 Added StringSaver class.
478 Added applet module for creating ROX panel applets.
482 Bugfix: saving code didn't cope with missing images (reported by Musus Umbra).
486 If 'gtk2' isn't available, see if 'gtk' is actually the 2.0 version.
487 Added save_set_permissions to Saveable interface, allowing the default
488 save_to_file to preserve file permissions.
489 Changes to XDSLoader: xds_load_from_stream(name, type, stream)
490 replaces the old xds_load_data(data).
491 Loading files from remote filers works now.
492 Added much improved exception reporting system.
494 19-Jul-2002 (Release 1.9.1)
496 Added support for translations.
500 License change to the LGPL (allows commercial programs to use this library).
501 Added AbortSave exception.
505 Saveable.save_to_file() should raise an exception when saving fails, rather
506 than returning 0. The return value is now ignored (note that raising an
507 exception will still work with 1.9.0).
508 toplevel_unref() ignores any arguments, so it is easier to use as a signal
511 12-Jul-2002 (Release 1.9.0)
513 First release for Gtk+-2.0.