2 Shared code for ROX applications
4 http://rox.sourceforge.net
7 Several incompatible changes to the experimental proxy API to make it simpler
10 - Create_su_proxy now returns the MasterObject directly, not the MasterProxy.
11 - You can call finish on the MasterObject (so the MasterProxy isn't needed).
12 - Slave methods no longer take a 'request' argument. Instead, the return
13 value of the function is returned.
14 - Methods can only return one value. dequeue and dequeue_last have been
15 replaced with a 'result' property.
16 - Methods on MasterObject now return a RequestBlocker, not a Queue. This
17 means you just yield the object itself, not object.blocker.
19 Tasks API is no longer experimental, but proxy API is.
23 Added a Help button to the exception dialog, which opens the new Help/Errors
24 file (Thomas Leonard).
28 Simplified su code and interface.
29 New suchild methods: open, close, read, write, chmod and rename, which work
30 just like their normal Python counterparts (Thomas Leonard).
34 Removed code to turn off the separator in the debug dialog. GTK 2.4 doesn't
35 need it, and generates a warning if you use it (Thomas Leonard).
37 27-Aug-2004 (Release 1.9.15)
39 Added spawnvpe and waitpid methods to suchild.
43 If the unit field for a <numentry> option is blank, don't try to translate it
44 (reported by Guido Schimmels).
48 Added 'su' module for performing operations as root.
52 Allow "" as a valid value in a OptionsBox menu (reported by Guido Schimmels).
56 Added 'proxy' module. This allows one Python process to invoke methods on
57 another asynchronously.
58 Added rox.UserAbort exception, to be raised when users cancel something
63 Fix syntax error I caused when I added a docstring (Stephen Watson).
67 Get update-mime-database command through Zero Install, if possible.
71 mime_handler can now uninstall (Stephen Watson).
75 Translate menu items in options (Guido Schimmels).
79 Added <slider> widget to options.
83 Added 'size-group' attribute to Options.xml elements. This allows grouping
84 elements so that their labels all appear the same width.
88 Bugfix: Colour buttons in the Options boxes didn't work with some themes
91 17-Apr-2004 (Release 1.9.14)
93 Added ToggleItem (based on a patch from Ken Hayber).
97 Better <label> widgets (wrapping and icon). Taken from LookAndFeel.
101 Stop themes from overriding the display of the colour-picker buttons in
102 the options box (Rene Ejury).
106 Warn about old versions of findrox.py.
107 Bugfix: Bug in new menu API prevented submenus from working.
109 16-Mar-2004 (Release 1.9.13)
111 Bugfix: Icon themes didn't work with python versions older than 2.2.2
112 (reported by Thomas Zajic).
116 Bugfix: Use filer module to show ROX-Lib help, rather than using os.system,
117 so that it works with Zero Install (reported by Keith Hopper).
121 Added widget_registry to OptionsBox, to provide an easy way to register
122 new option types. Removed build_button in favour of this method.
124 Bugfix: If an error occurred loading the ROX theme at startup it could not
125 be reported, because icon_theme wants debug, debug wants saving, and
126 saving wants icon_theme (reported by Thomas Zajic).
130 Cope with pygtk2.2 API change (Stephen Watson, reported by Guido Schimmels).
134 Added secretentry and button options to the OptionsBox (Stephen Watson).
138 Cope with option values split into multiple DOM text nodes (Rene Ejury).
142 Allow a list of values to be stored in each menu Action. These are used as
143 the arguments to the callback function.
144 If a file's details were recorded (in document.save_last_stat) when it was
145 loaded, make sure they haven't changed when saving. Saving also updates this
146 variable (requested by Arnaud Calvo).
150 Updated examples in documentation for new findrox (Yuri Bongiorno).
154 New API for menus. Instead of passing tuples for menu items, python classes
155 can be used. The old tuple interface is still supported.
159 Don't stop DnD working in the savebox just because no icon can be found
160 (reported by Martin Lucina).
164 Added French translation (Vincent Lefèvre).
168 Also translate <label> elements in the Options box (reported by Arnaud Calvo).
172 Also translate section names in the Options box (reported by Arnaud Calvo).
174 22-Jan-2004 (Release 1.9.12)
176 Added 'tasks' module to provide a light-weight alternative to threads.
177 Bugfix: On non-zero-install systems, the sense of the version check in findrox
182 Added method to MIMEtype to fetch its icon. Install list window for
183 the MIME handler installation uses it (Stephen Watson).
187 Translate text in Options box.
191 Allow ROXLIB_DISABLE_ZEROINSTALL to override looking for ROX-Lib in Zero
192 Install (useful for ROX-Lib developers). Prefer a locally installed version
193 of ROX-Filer to the Zero Install version; this also allows users to select
194 which Zero Install version they want (eg, stable or developer).
195 Moved MIME handler installation into a separate module (mime_handler) and
196 made a few changes to the XML syntax.
200 Added <menu> OptionMenu widget for Options box (Chris Shaffer).
204 Fixed bug in findrox when not using Zero Install (Lionel Bringuier).
208 Escape and unescape URIs, as required by ROX-Filer 2.1.0 (reported by
210 Note that the xds_load_uris() method is now called with escaped URIs.
211 Try to run the filer through Zero Install, if possible.
215 If we can't get pygtk through Zero Install, try the local copy.
219 Added support in mime.py for an application to set MIME-type run
220 actions and thumbnail programs (Stephen Watson).
224 Simplified implementation of saving.SaveFilter by using the new
225 processes.PipeThroughCommand class. The child_run() method of SaveFilter
226 is no longer supported.
227 In processes.PipeThroughCommand, a None input stream gets /dev/null instead
228 of inheriting its parent's stream. The class has a new run_child_with_streams
229 to make overriding the behaviour easier.
230 findrox.py script now warns if ROX-Lib2 version is too old (unless requesting
231 a version too old to have a version number).
235 Changed 'Dismiss' to 'Close' (Chris Shaffer).
236 Bugfix: Error reporting in mime.py failed to import the _ function (reported
237 by Christopher Haines).
238 New AppInfo.py for parsing AppInfo.xml files (Christopher Arndt), InfoWin
239 converted to use it (Stephen Watson).
241 15-Oct-2003 (Release 1.9.11)
243 Bugfix: Python 2.3's new bool type broke options saving (reported by Lars
248 Added PipeThroughCommand class (copied from Archive, with some minor
253 Allow event to be None for Menu.popup. This allows the menu to be activated
254 from the keyboard, using the 'popup-menu' signal.
258 Added French translation in AppInfo.xml (Vincent Lefèvre).
260 03-Oct-2003 (Release 1.9.10)
262 Added support for icon themes (doesn't do inheritance yet).
266 Added some version information to the dialog you get when you run ROX-Lib
271 New bug() function to quickly bring up a debugging prompt.
275 The glob patterns in mime.py are now sorted longest first. Fix for setting
276 icon in the old way when there was no icon (Stephen Watson).
280 Try to cope better with bad hostname setup (reported by Nathan Howell).
284 Added InfoWin.py to provide standardized information window (Stephen Watson).
288 Fall back to old way of setting default icon for older pygtk's (Stephen
293 Added Italian translation (Yuri Bongiorno).
297 Better way to set the default icon.
299 16-Aug-2003 (Release 1.9.9)
301 Give windows a default icon from .DirIcon (Chris Shaffer).
305 Try to get pygtk through ZeroInstall.
309 Updated findrox to use ZeroInstall, if possible.
313 Work out correct application name even if invoked via a symlink. This stops
314 applications from calling themselves 'text_plain', etc (reported by Joe Hill).
316 19-Jul-2003 (Release 1.9.8)
318 Make default menu positioning function keep the pointer inside the menu.
319 Allow stock icons in menus.
323 Added position_fn argument to rox.Menu.popup.
327 Cope with % escaped URIs.
331 Added italian translation in AppInfo.xml (Yuri Bongiorno)
335 When loading data from another application, pass the suggested leafname to
336 xds_load_from_stream().
340 Code tidying, thanks to pychecker.
344 Added fileutils module, which provides an interactive makedirs() function
346 Changed savebox module to use it.
348 16-May-2003 (Release 1.9.7)
350 New icon (Geoff Youngs).
351 Added 'basedir' module for freedesktop.org Base Directory specification.
355 Added functions to read MIME database (Stephen Watson).
357 27-Jan-2003 (Release 1.9.6)
359 Make the default window class the name of the application directory, not
360 'AppRun' (suggested by Albert Wagner).
361 Bugfix: With pygtk-1.99.14, only the first error message from a process
362 would be detected; this meant that ROX-Lib wouldn't detect when the
363 process quit (reported by joehill).
364 Bugfix: <hbox> and <vbox> layouts didn't work in the options box (Allen
369 If python is too old, raise SystemExit instead of quitting.
370 Ensure that True and False are defined.
374 Work around bug in some versions of pygtk that stopped the options window
377 12-Dec-2002 (Release 1.9.5)
379 Upgrade Options box to new style.
383 Bugfix: If an option had an empty value, an exception was thrown on loading
384 (reported by Stephen Watson).
388 Cope with missing input_add_full.
392 Pygtk 1.99.12 seems to more-or-less work now (according to Alastair Porter), so
393 remove the warning for that so we can support RedHat 8.0.
395 20-Oct-2002 (Release 1.9.4)
397 More warnings about old pygtk versions.
398 Added Dialog class (does ref-counting, like Window).
402 Trying to use ROX-Lib2 with earlier versions of python now gives a sensible
407 Make clicking on ROX-Lib itself work again (Christopher Arndt).
411 Updated findrox.py to use pygtk 1.99.13 -- update your programs!
413 25-Aug-2002 (Release 1.9.3)
415 Switch to use new pygtk versioning system (requires pygtk 1.99.13).
419 Added 'processes' module, based on code in Archive, which makes controlling
424 Bugfix: Changing the keys lost any builtin shortcuts (Gtk behaviour has
429 Trap exceptions when activating menu items and report nicely.
433 Bugfix: Remember to call drop_finish() after a drag-and-drop operation.
435 05-Aug-2002 (Release 1.9.2)
437 Renamed XDSLoader module to 'loading' (like 'saving').
438 Added 'mime' module for installing extra MIME information.
439 Bugfix: XDSLoader didn't handle the drag-drop signal, and so only worked for
440 widgets with their own implementation!
444 Show local variables in report_exception, and allow expressions to be
445 evaluated in the context of any frame.
446 Added StringSaver class.
450 Added applet module for creating ROX panel applets.
454 Bugfix: saving code didn't cope with missing images (reported by Musus Umbra).
458 If 'gtk2' isn't available, see if 'gtk' is actually the 2.0 version.
459 Added save_set_permissions to Saveable interface, allowing the default
460 save_to_file to preserve file permissions.
461 Changes to XDSLoader: xds_load_from_stream(name, type, stream)
462 replaces the old xds_load_data(data).
463 Loading files from remote filers works now.
464 Added much improved exception reporting system.
466 19-Jul-2002 (Release 1.9.1)
468 Added support for translations.
472 License change to the LGPL (allows commercial programs to use this library).
473 Added AbortSave exception.
477 Saveable.save_to_file() should raise an exception when saving fails, rather
478 than returning 0. The return value is now ignored (note that raising an
479 exception will still work with 1.9.0).
480 toplevel_unref() ignores any arguments, so it is easier to use as a signal
483 12-Jul-2002 (Release 1.9.0)
485 First release for Gtk+-2.0.