Commit Graph

1641 Commits

Author SHA1 Message Date
Martin Nordholts 2d1d2aae17 app: Handle dock windows without docks in action_data_get_foo() 2009-10-04 02:10:11 +02:00
Michael Natterer f5f571bce5 Formatting cleanup 2009-10-03 13:53:40 +02:00
Michael Natterer ac20b2db67 Alphabetic ordering, remove stuff from EXTRA_DIST 2009-10-03 13:44:41 +02:00
Alexia Death 155393491b Merge commit 'origin/master' into soc-2009-dynamics 2009-10-03 14:12:53 +03:00
Martin Nordholts e36c3ee9bd app: Fix keyboard shortcuts not working when non-image-windows focused
Handle GIMP_IS_DOCK_WINDOW in action_data_get_foo(). This makes image
related keyboard shortcuts work again when e.g. a dock is the focused
window. Fix discovered by Michael Natterer.
2009-09-30 07:34:55 +02:00
Michael Natterer 1c430a2b19 Move all GimpImageWindow members to a private struct
Add accessor functions for publically available members and visibility
functions for menubar and statusbar.
2009-09-29 21:44:43 +02:00
Michael Natterer 253b8e2cbe Use gimp_display_shell_get_window() instead of gtk_widget_get_toplevel()
The new function does the right thing, unlike get_toplevel() which
returns the shell itself if it is not in a window. Check the return
value of get_window() for being non-NULL.
2009-09-29 20:32:26 +02:00
Michael Natterer 35739c743c Change GimpImageWindow API to speak in shells, not displays
A widget container should keep around child widgets, not whatever
objects that just have widgets.
2009-09-28 22:55:55 +02:00
Michael Natterer bb8daa49a3 Present the toplevel not the shell 2009-09-28 22:55:55 +02:00
Michael Natterer 10b98034d4 Move the statusbar to GimpImageWindow
As with the menubar, port some code properly, and add some
horrible /* FIXME image window */ hacks to make it work.
2009-09-28 22:55:38 +02:00
Michael Natterer 6793d68769 Move the menubar and the menubar_manager to GimpImageWindow
Also move some of their related code and update other code to
go via gtk_widget_get_toplevel(), but also add some horrid temp
/* FIXME image window */ hacks.
2009-09-28 22:55:38 +02:00
Michael Natterer be93e6564a Move the fullscreen API from GimpDisplayShell to GimpImageWindow
Also remove GimpDisplayShell's "window_state" member. Use
gtk_widget_get_toplvel() to get to the GimpImageWindow when we need a
display shell's fullscreen state.
2009-09-28 22:55:37 +02:00
Michael Natterer 7c66b4c43d Support GimpImageWindow as action callback user_data 2009-09-28 22:55:36 +02:00
Alexia Death e75d44c77c Merge commit 'origin/master' into soc-2009-dynamics 2009-09-28 20:30:17 +03:00
Martin Nordholts c39b8758d5 app: Make dock actions like "Show Image Selection" work
Take into account that the toplevel is not a dock any longer but a
dock window.
2009-09-27 17:12:18 +02:00
Martin Nordholts 9fa51f70f4 Add a Single-window mode
Add a single-window mode that can be toggled from 'Windows ->
Single-window mode'. No code is yet hooked to the mode though.
2009-09-26 18:28:41 +02:00
Martin Nordholts 5447938d5c app: Fix bogus cast in dock-actions.c 2009-09-26 16:13:42 +02:00
Martin Nordholts 0be33be0dc app: Add missing #include "widgets/gimpdockwindow.h" 2009-09-26 15:18:33 +02:00
Martin Nordholts c9d8aafb68 app: Change a few GIMP_IS_DOCK to GIMP_IS_DOCK_WINDOW
In many places we are interested in wether or not we have a dock
window, not a dock. This is in preparation for making GimpDock a
non-GimpDockWindow.
2009-09-26 14:26:49 +02:00
Martin Nordholts 62dde84e43 app: Change GimpDialogFactory signals to "dock-window-added/removed"
Change the GimpDialogFactory signals "dock-added" and "dock-removed"
to "dock-window-added" and "dock-window-removed". Doing this makes
sense for a couple of reasons. First of all, the dialog factory is
built around top-levels. Second of all, the listeners to the signals
(such as the "recently closed docks" construct) work on a
gtk-window-level, not a dock level.

This change is a preparation for when GimpDock will stop being a
GimpDockWindow.
2009-09-26 13:11:42 +02:00
Michael Natterer e79c3c9bd7 Allow merging down a group layer
There is no reason to disallow this, the merged-down group layer will
simply disappear from the image just as a normal layer, and its
projection composited with the layer below.
2009-09-21 19:21:03 +02:00
Michael Natterer 90893cea84 Add "layers-merge-group" action, callback and menu items 2009-09-21 19:17:02 +02:00
Martin Nordholts 8bfcd14f9a app: Add GimpSessionInfo getters and setters 2009-09-20 14:51:03 +02:00
Alexia Death be78fe3b1d Merge commit 'origin/master' into soc-2009-dynamics 2009-09-20 14:32:32 +03:00
Martin Nordholts e87ed66ba7 app: Don't cast GimpDock to GimpDockWindow
In preparation for making GimpDock inherit from a non-window, stop
casting GimpDocks to GimpDockWindows. Instead look up the toplevel
widget for a dock and get the dock window that way.
2009-09-15 07:58:14 +02:00
Martin Nordholts 8ffda9d20f app: Add and use windows_actions_dock_to_action_name() 2009-09-14 23:36:22 +02:00
Martin Nordholts 2ac7cedbfc app: Make GimpDockbook instance data private
Make GimpDockbook instance data private and add necessary getters and
setters.
2009-09-13 16:30:09 +02:00
Martin Nordholts fb99f99788 Move dock window themeing to GimpDockWindow
Move the dock window related themeing namely default dock heght and
font scale from GimpDock to GimpDockWindow to get rid of yet another
GtkWindow dependency from GimpDock.

Note that this change requires gtkrc updates where "GimpDock::" needs
to be repaced with "GimpDockWindow::".
2009-09-13 11:23:02 +02:00
Michael Natterer 84b02fb978 Refuse to convert layer trees to indexed 2009-09-07 21:09:24 +02:00
Michael Natterer 60ac874cd0 Refuse to add group layers to indexed images 2009-09-07 21:08:25 +02:00
Michael Natterer df9e9e2609 Disable layer masks on group layers for the time being
Will enable it again when I fixed it properly, it's clearly a
non-trivial problem that needs some thinking. Disabled for now because
it causes crashes.
2009-09-05 15:37:48 +02:00
Sven Neumann 8405d69e86 formatting 2009-09-03 20:54:06 +02:00
Martin Nordholts 9359c5d44f app: Escape the file names in export menu items
We need to escape _ in the filenames we use for the 'Overwrite' and
'Export to' menu items, otherwise they show up as mnemonics.
2009-09-03 20:14:15 +02:00
Michael Natterer 9e18f771c4 Replace "Group Layer" by "Layer Group" in all user visible strings 2009-09-03 14:57:18 +02:00
Michael Natterer f1f186c718 Change mnemonic of "New Group Layer..." to "G" 2009-09-03 09:10:42 +02:00
Michael Natterer c39dfab87c Don't access image->width and ->height directly 2009-09-03 01:03:29 +02:00
Michael Natterer c6c0817602 Don't make the action that invokes the tool insensitive for locked vectors 2009-09-01 12:44:30 +02:00
Michael Natterer a3558e3cb8 Remove GIMP_OBJECT() casts when calling gimp_object_get_name() 2009-08-31 22:47:18 +02:00
Michael Natterer e6235cd982 Don't allow stroking to locked items and group items 2009-08-29 20:20:25 +02:00
Michael Natterer 02903d6970 Use gimp_item_is_content_locked() instead of gimp_item_get_lock_content()
Use the new API whenever we want to determine the item's effective
lock state (whether we can write to the item's content or not). Use
gimp_item_get_lock_content() only in code that actually deals with
*this* item's locked state, which is only the PDB wrappers and GUI to
modify the flag on the item itself.
2009-08-29 15:27:04 +02:00
Michael Natterer 85c6af5d42 Separate checks for "writable" from "is group" when setting sensitivity 2009-08-29 12:51:58 +02:00
Martin Nordholts 957cf2cfa9 app: Always use gimp_object_get_name()
Begin to consider GimpObject::name as private and always use
gimp_object_get_name(). Change gimp_object_get_name() to take an
untyped pointer so we don't have to do so awfully many casts. There is
a runtime check for the type inside the function anyway.
2009-08-29 12:41:29 +02:00
Michael Natterer d442379d5e Change GimpProjectable::update to GimpProjectable:invalidate
The only purpose of this change is to avoid having the "update"
signal twice on GimpGroupLayer (from GimpDrawable and from
GimpProjectable). Switch back to normal g_signal_connect()
in the projection.
2009-08-26 13:06:55 +02:00
Michael Natterer d37dc64b16 Add GError reporting to gimp_image_merge_down()
- turn g_return_if_fail() of more complex conditions into errors.
- change PDB wrapper accordingly instead of adding a ton of conditions
  there.
2009-08-25 22:02:02 +02:00
Michael Natterer d91a89e157 Make "Merge down" work on trees and start fixing the rest of the merge code
* make internal merge functions aware of the container to merge and
  its parent layer.
* git rid of some cruft in gimp_image_merge_down().
* merge down works within one container (naturally) and needs:
  - the uppper layer not to be a group
  - the lower layer to be writable
* fix action sensitivity accordingly.
2009-08-25 21:26:14 +02:00
Michael Natterer 8a4d6c315f Enable "layers-resize" for group layers 2009-08-25 17:32:55 +02:00
Michael Natterer f812d09d1b Enable "layers-crop" for group layers 2009-08-25 17:30:50 +02:00
Michael Natterer 40cf6fa62a Allow scaling of group layers even though they appear locked 2009-08-25 14:31:33 +02:00
Michael Natterer 6934a0d2eb Make sure all group layers' projections switch to GEGL with the main projection 2009-08-24 22:38:16 +02:00
Michael Natterer f65261c8ad Enable simple flip and rotate for group layers
Flipping horizontally and vertically as well as rotating by multiples
of 90° works fine now for group layers, enable it even though they
appear locked. It seems that group == locked idea is not as allmighty
as i thought :(
2009-08-24 20:29:37 +02:00
Michael Natterer af794539d8 Make the lock actions insensitive according to the new can_lock functions 2009-08-23 19:45:37 +02:00
Michael Natterer b141bcdb60 Minor plug-in sensitivity refactoring
* app/plug-in/gimppluginprocedure.[ch]
  (gimp_plug_in_procedure_get_sensitive): change GimpImageType
  parameter to GimpDrawable and do the type check internally.

* app/actions/plug-in-actions.c (plug_in_actions_update): pass the
  active drawable instead of its type.
2009-08-22 11:03:05 +02:00
Martin Nordholts 51cd8c2981 app: Only show 'File->Overwrite' if the source URI has an exporter 2009-08-21 21:40:32 +02:00
Alexia Death d2143b8886 Merging master to current state 2009-08-21 19:26:05 +03:00
Michael Natterer de409ea52a Fix sensitivity of the "Merge down" action
The command doesn't simply need the next layer in the stack, it
needs the next *visible* layer.
2009-08-20 22:22:17 +02:00
Michael Natterer 35a7052b8d Add actions and callbacks to toggle "lock-content" on drawables and vectors 2009-08-20 21:19:43 +02:00
Michael Natterer 7262e45df9 Made modifying actions insensitive when the active item is locked
Use the term "writable" in the code as a shortcut for "there is an
active item and it is not locked".
2009-08-20 17:11:31 +02:00
Martin Nordholts 4df574acd6 Use separate shortcuts for 'File->Export to' and 'File->Overwrite'
Since Ctrl+E previously meant something harmless, don't use that
keyboard shortcut for the destructive command 'File->Overwrite'. We
still keep Ctrl+E for 'File->Export to' though, and we do this by
having 'File->Overwrite' as a separate GtkAction with its own keyboard
shortcut slot.
2009-08-13 21:53:23 +02:00
Michael Natterer e8bd830f48 Add action and callback for adding a group layer (works but is not used yet) 2009-08-06 18:37:54 +02:00
Michael Natterer 6f555cc407 Make sure duplicated item groups end up at the right place
Use the actual parent item when adding to the image, not
GIMP_IMAGE_ACTIVE_PARENT because the latter would add a duplicated
group inside itself instead of above it
2009-08-03 23:19:25 +02:00
Michael Natterer a53d4566da Use GIMP_IMAGE_ACTIVE_PARENT instead of a NULL parent in all obvious places 2009-08-03 22:30:36 +02:00
Sven Neumann 45529d4886 Bug 590638 – Changing palettes from list to grid view loses "locked to dock" status
Transfer the 'locked' state to the newly created dockable in
dockable_toggle_view_cmd_callback().
2009-08-03 22:16:33 +02:00
Michael Natterer c4075975bf Bring parent items to the public API in the core
* app/core/gimpimage.[ch]: make the parent parameter public in
add_layer(), add_layers(), add_channel() and add_vectors().

* app/vectors/gimpvectors-import.[ch]: add parent parameters to
  the vectors import functions.

* app/core/gimpchannelundo.[ch]
* app/core/gimplayerundo.[ch]
* app/vectors/gimpvectorsundo.[ch]
* app/core/gimpimage-undo-push.[ch]: remember the parent item when
  removing layers, channels and vectors.

* app/actions/channels-commands.c
* app/actions/debug-commands.c
* app/actions/edit-commands.c
* app/actions/layers-commands.c
* app/actions/vectors-commands.c
* app/core/gimp-edit.c
* app/core/gimpimage-duplicate.c
* app/core/gimpimage-merge.c
* app/core/gimpimage-quick-mask.c
* app/core/gimplayer-floating-sel.c
* app/core/gimpselection.c
* app/core/gimptemplate.c
* app/dialogs/file-open-dialog.c
* app/display/gimpdisplayshell-dnd.c
* app/text/gimptext-compat.c
* app/tools/gimptexttool.c
* app/tools/gimpvectortool.c
* app/widgets/gimptoolbox-dnd.c
* app/xcf/xcf-load.c
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/paths.pdb
* tools/pdbgen/pdb/vectors.pdb: pass NULL as parent item to above
  functions and add FIXMEs all over the place because there is some
  more hacking needed to make adding with index = -1 (on top of the
  current item) work again.

* app/pdb/image-cmds.c
* app/pdb/paths-cmds.c
* app/pdb/vectors-cmds.c: regenerated.

* app/core/gimpimage-duplicate.c: duplicate the original image's
  tree structure in the copy.

* app/widgets/gimpitemtreeview.[ch]: add parent to GimpAddItemFunc,
  add utility function gimp_item_tree_view_get_drop_index() which
  figures where to add something dropped to an item tree.

* app/widgets/gimpchanneltreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpvectorstreeview.c: changed accordingly, using above
  new GimpItemTreeView API.
2009-08-03 19:21:51 +02:00
Michael Natterer b3e0147598 Make layer selecting by actions work on the right container 2009-08-02 12:02:18 +02:00
Michael Natterer 603d3441e7 Use gimp_item_get_container_iter() instead of the GimpImage iter APIs
Using the new function makes sure the sensitivity of the raise and
lower actions corresponds to what is possible (raising and lowering
within the group).
2009-08-01 22:54:49 +02:00
zhenfeng zhao 441d287008 Fix menu issues.
actions/dynamics-editor-actions.c
   dialogs/dialogs-constructors.c
   ../menus/dialogs-menuitems.xml
   ../menus/image-menu.xml.in
2009-07-31 05:39:46 -03:00
Alexia Death 08a88f681d Lo and behold, menu item. 2009-07-30 20:49:10 +03:00
zhenfeng zhao 8480477f9d Further changes to make dynamics editor and its menu.
actions/Makefile.am
   actions/actions.c
   dialogs/dialogs-constructors.c
   dialogs/dialogs-constructors.h: further change on menu work.

   actions/dynamics-editor-actions.c
   actions/dynamics-editor-actions.h (new files): add actions for dynamics.
2009-07-30 11:55:17 -03:00
zhenfeng zhao 03e91b64f4 Add menu item for dynamics dockable (menu bits)
actions/actions.c
   actions/dialogs-actions.c
   dialogs/dialogs-constructors.c
   menus/menus.c
   menus/plug-in-menus.c
   pdb/makefile.msc
   ../etc/ps-menurc
   ../menus/Makefile.am
   ../menus/dialogs-menuitems.xml: add dynamics editor.

   ../menus/dynamics-editor-menu.xml: (new file)
2009-07-28 16:52:53 -03:00
Stephen Griffiths c53113d0cc app: Remove Tools dockable
Remove the Tools dockable. The toolbox will be configured from the
Toolbox page in preferences instead. This is part of the fix for
bug #500930.
2009-07-22 00:21:31 +02:00
Martin Nordholts b2b2b41e62 Get rid of artificial compiler warnings
Get rid of artificial compiler warnings generated with the #warning
directive. They pollute the build output and don't work as incentives
for fixing stuff.
2009-07-20 12:47:59 +02:00
Michael Natterer 6fd729cfb6 Remove the possibility to disable mnemonics (bug #120034)
There is GtkSettings:gtk-enable-mnemonics: now, so there is no
reason to do the same in GIMP:

* app/config/gimpguiconfig.[ch]: turn "menu-mnemonics" into a dummy.

* app/dialogs/preferences-dialog.c: remove its GUI.

* app/widgets/gimpactionfactory.[ch]
* app/widgets/gimpactiongroup.[ch]: remove infrastructure for disabling
  menu mnemonics.

* app/actions/actions.c: bye bye glue code.
2009-07-18 17:51:04 +02:00
Michael Natterer 997111bf0a Use gtk_dialog_get_content_area() instead of dialog->vbox 2009-07-15 16:19:32 +02:00
Massimo Valentini c837f25b40 Bug 167604 – gimp_gradient_get_color_at() may return out-of-bounds values
This is not a problem of gimp_gradient_get_color_at(), but a typo
in gradient_editor_right_color_update().
2009-07-07 17:02:32 +02:00
Martin Nordholts c4601b298d app: Make 'Overwrite foo.png' work
In File -> Overwrite, we need to use the import source as the export
URI since there is no explicit export target given yet.
2009-07-05 09:28:52 +02:00
Martin Nordholts c181f4eb05 app: Add and use gimp_image_is_dirty() 2009-07-03 21:11:21 +02:00
Martin Nordholts 0959414cd2 app: Simplify file_actions_update() 2009-07-03 08:20:40 +02:00
Martin Nordholts 46cdf8b16c app: Put 'Export to' above 'Export...' 2009-07-03 08:16:08 +02:00
Martin Nordholts 8a1e826d99 app: Show "Overwrite <filename>" in File menu
With no export target but with an import source, show
"Overwrite <filename>" in the File menu. This also means we can't set
GIMP_FILE_EXPORT_TO_URI_KEY along with import source any longer.
2009-07-02 22:17:36 +02:00
Michael Natterer bcfaed96d2 Simplify and clean up text tool clipboard handling. 2009-06-27 21:51:52 +02:00
Michael Natterer e170ad77b1 Remove the newly added tool clipboard facility again, we don't need it 2009-06-24 19:08:24 +02:00
Michael Natterer 2d8ced10c0 Some text deleteion refactoring
Change public text tool API to gimp_text_tool_delete_selection() and
move delete and backspace code to their own handlers in preparation of
handling all text deletion types.
2009-06-24 13:51:25 +02:00
Michael Natterer 0f55bf15bc Enable cut/copy/paste for the text tool
* app/tools/tools-enums.[ch]: add enum GimpClipboardAction which can be
{ CUT, COPY, PASTE }

* app/tools/gimptool.[ch]
* app/tools/tool_manager.[ch]: add GimpTool::clipboard_action() which
returns a boolean indicating whether the tool handled the action.

* app/tools/gimptexttool.c: implement clipboard_action().

* app/actions/edit-commands.c: try the active tool first in the cut,
copy and paste callbacks.
2009-06-21 23:37:18 +02:00
Michael Natterer 907971bab3 Bug 563966 - Edit - Copy _Visible Named tooltip can be improved
Mention "what is visible" in the tooltip for edit-named-copy-visible.
2009-06-11 13:41:05 +02:00
Michael Natterer c73b71810d Use g_strdup_printf() instead of g_new() and g_sprintf() 2009-05-29 20:49:40 +02:00
Michael Natterer c9674b4603 Use the new GtkAction accessors instead of g_object_get()/set() 2009-05-24 22:29:18 +02:00
Manish Singh 819281ebc8 gimp_enum_get_value() takes const char *'s 2009-05-24 10:39:57 -07:00
Martin Nordholts b74bc2c97e app: Swap 'Export' and 'Export to' shortcuts
Make Ctrl+E map to 'Export to' and Ctrl+Shift+E map to 'Export'. This
is more in line with the our cousin applications.
2009-05-18 19:12:58 +02:00
Michael Natterer 4514546471 Use Ctrl+R for "Shrink Wrap" and Ctrl+Shift+R for "Fit in Window".
Also use 2-5 for the zoom-in actions and Shift+2-5 for the zoom-out
ones (the latter don't work, which is probably a regression in
GtkAccelMap, will investigate this...)
2009-05-17 19:15:17 +02:00
Sven Neumann 9738db7ca8 minor change to improve readability, formatting 2009-05-17 11:00:46 +02:00
Sven Neumann e392af5cb6 app: improved a translatable string, formatting 2009-05-16 17:32:57 +02:00
Stephen Griffiths 2ff4bbd111 make action_message() visible externally and use it.
* app/actions/actions.h: added prototype for action_message()
* app/actions/actions.c: removed static keyword from action_message()
removed private prototype for action_message()
made action_message() use icons for objects derived from GimpViewable

* app/actions/context-commands.c:
context_brush_radius_cmd_callback()
context_brush_angle_cmd_callback()
context_paint_mode_cmd_callback()
context_brush_shape_cmd_callback()
call acton_message(), these callbacks had use cases where they could not
use generic code

* app/tools/gimpcoloroptions.c: added "average-radius" blurb
and mark for translarion
2009-05-16 15:34:41 +02:00
Stephen Griffiths 40fde28a62 Add status bar feedback for keyboard changes to brush paramaters.
* app/actions/context-commands.c:
include core/gimptoolinfo.h
include pain/gimppaintoptions.h

context_opacity_cmd_callback()
context_brush_spacing_cmd_callback()
context_brush_spikes_cmd_callback()
context_brush_hardness_cmd_callback()
context_brush_aspect_cmd_callback()
use 'action_select_property()' for statusbar feedback

* app/core/gimpbrush.c: added translable string for brush spacing
* app/paint/gimppaintoptions.c: add blurb to prop double brush-aspect-ratio
2009-05-16 15:34:41 +02:00
Martin Nordholts 9cf6214c74 app: Sort 'Dump Keyboard Shortcuts' output 2009-05-16 14:42:17 +02:00
Martin Nordholts a3a756091d app: Use Ctrl+E and Ctrl+Shift+E for export
Use Ctrl+E and Ctrl+Shift+E for File->Export and File->Export to
instead of View->Shrink Wrap an View->Fit Image in Window.
2009-05-16 13:15:39 +02:00
Martin Nordholts c23370c3af app: Emit the GimpImage::exported signal when image is exported 2009-05-16 13:02:55 +02:00
Martin Nordholts d3353f721b app: Rename 'Save as Template' to 'Create Template'
Rename 'Save as Template' to 'Create Template' in the File menu.
2009-05-16 09:48:22 +02:00
Martin Nordholts 7a771a09d3 app: Implement 'File -> Export to'
Handle 'Export to' by finding a file proc based on the import URI and
then save back to that location using the proc.
2009-05-16 09:48:22 +02:00
Martin Nordholts 10226ae453 app: Show the Export Image dialog on File -> Export...
Create a export dialog constructor in the dialog factory and invoke it
on File -> Export
2009-05-16 09:48:12 +02:00
Martin Nordholts 0971d61fc4 app: Add an 'export' mode to the file save dialog 2009-05-16 09:48:12 +02:00
Martin Nordholts e3f57fbd38 app: Support File -> Revert of imported images
If a file has not been saved yet but was imported from some other
image, revert to that image.
2009-05-16 01:12:40 +02:00
Martin Nordholts a452fd9188 app: Update sensitivity and labels for export menu items 2009-05-16 01:12:40 +02:00
Martin Nordholts c1a226bc74 app: Rearrange menu items for Save + export
Begin implementing the spec
http://gui.gimp.org/index.php/Save_+_export_specification
by rearranging the menu items according to it and adding necessary
stuff like help ids.
2009-05-16 01:12:40 +02:00
Martin Nordholts 1c33708f5a app: Add File -> Debug -> Dump Keyboard Shortcuts menu command
Add a Debug menu item 'Dump Keyboard Shortcuts' that can for example
be used to see what keyboard shortcuts that are unused or to simply
get an overview of what current keyboard shortcuts we hvae. Based on
code in gimp_action_view_new().
2009-05-08 20:13:27 +02:00
Martin Nordholts 9c2aae1281 app: Update name of file_save_dialog_save_image() parameter
Rename file_save_dialog_save_image() parameter save_a_copy to
change_saved_state since that is the semantics it has now.
2009-05-06 17:09:31 +02:00
Martin Nordholts 3c1366a0c1 app: Merge almost identical higher level file_save() wrappers
Merge file_savefile_write_with_uri_and_proc() and
file_save_dialog_save_image() which contains the same logic. Call the
result file_save_dialog_save_image() in lack of a better name, and
keep it in file-save-dialog.[ch] for now in lack of a better place.
2009-05-02 15:58:32 +02:00
Martin Nordholts a93346d0a0 app: Gather save dialog uri defaults in one place
Gather save dialog uri defaults in one place. Move the small bits of
it from file_save_dialog_new() to gimp_file_dialog_set_save_image()
where the rest is.
2009-05-01 12:23:46 +02:00
Sven Neumann b0af6524b4 app/file: Rename gimpfile.h to gimp-file.h and fix include guards
The source filename convention would indicate that gimpfile.h
	holds code for the GimpFile object. Rename it to gimp-file.h
	to make clear that it doesn't.
2009-05-01 09:03:13 +02:00
Martin Nordholts e622dc3cad app: Introduce gimpfile.h
Introduce gimpfile.h which for now contains defines for GObject data
keys used when managing save and open dialog URI defaults. More are to
be added.
2009-04-30 20:00:18 +02:00
Martin Nordholts 9e7edcd6f4 app: Introduce file_write_with_uri_and_proc()
Introduce file_write_with_uri_and_proc() so that the
file_save_cmd_callback() switch case becomes more managable and so
that we can reuse that logic later.
2009-04-26 17:22:56 +02:00
Alexia Death 6aafd34380 Adds dynamic aspect ratio for brushes. 2009-04-25 20:53:09 +03:00
Martin Nordholts 5803dc058b Improve Debug -> Show Image Graph output
Use the new gegl:introspect feature of showing the graph of nodes a
given node depends on. This gives much better depicted graphs.

svn path=/trunk/; revision=28265
2009-04-12 10:23:02 +00:00
Sven Neumann e148dfd6a2 Bug 576909 – "_Paste" and "_Paste as" have the same mnemonic
2009-03-27  Sven Neumann  <sven@gimp.org>

	Bug 576909 – "_Paste" and "_Paste as" have the same mnemonic

	* app/actions/edit-actions.c: resolved colliding mnemonics.


svn path=/trunk/; revision=28223
2009-03-27 19:25:12 +00:00
Sven Neumann b4670e2f8a changed "Aspect" to "Aspect Ratio".
2009-03-19  Sven Neumann  <sven@gimp.org>

	* app/actions/context-actions.c (context_actions): 
	* app/paint/gimpinkoptions.c: changed "Aspect" to "Aspect 
Ratio".


svn path=/trunk/; revision=28183
2009-03-19 22:16:41 +00:00
Martin Nordholts 0c17e790a7 Properly show name of image graph source image
svn path=/trunk/; revision=28077
2009-02-28 10:11:48 +00:00
Martin Nordholts c9b62622db Add a Show Image Graph item to the Debug menu
Add a Show Image Graph item to the Debug menu that creates a new image
showing the GEGL graph for the image. Would benefit from an enhanced
gegl:introspect op with a clearer graph, but still quite interesting
in its current shape.

svn path=/trunk/; revision=28069
2009-02-23 20:43:30 +00:00
Marco Ciampa 613e5f75ce fixed duplicated keyboard shortcut
2009-02-22  Marco Ciampa  <ciampix@libero.it>

        * app/actions/image-actions.c: fixed duplicated keyboard shortcut


svn path=/trunk/; revision=28060
2009-02-22 16:55:20 +00:00
Sven Neumann 385d0b0d6f applied patch from Alexia Death that changes the steppings of the newly
2009-02-09  Sven Neumann  <sven@gimp.org>

	* app/actions/tools-commands.c 
(tools_paint_brush_angle_cmd_callback):
	applied patch from Alexia Death that changes the steppings of 
the
	newly introduced brush rotation actions as suggested in bug 
#520078.


svn path=/trunk/; revision=28006
2009-02-09 12:14:01 +00:00
Sven Neumann aff0c284ed let the brush angle wrap.
2009-02-06  Sven Neumann  <sven@gimp.org>

	* app/actions/tools-commands.c
	(tools_paint_brush_angle_cmd_callback): let the brush angle 
wrap.


svn path=/trunk/; revision=27993
2009-02-06 14:17:21 +00:00
Sven Neumann 2c3e22e680 mark strings for translation and add translator comments for them.
2009-02-06  Sven Neumann  <sven@gimp.org>

	* app/actions/actions.c (action_select_property): mark strings 
for
	translation and add translator comments for them.


svn path=/trunk/; revision=27992
2009-02-06 10:12:20 +00:00
Sven Neumann 2ca771ec55 prototype action_message() with format function attribute and move it to
2009-02-06  Sven Neumann  <sven@gimp.org>

	* app/actions/actions.c: prototype action_message() with format
	function attribute and move it to the bottom of the file.


svn path=/trunk/; revision=27991
2009-02-06 10:09:33 +00:00
Sven Neumann 2b5df1f1ce fixed parameters passed to action_select_property().
2009-02-06  Sven Neumann  <sven@gimp.org>

	* app/actions/tools-commands.c
	(tools_paint_brush_angle_cmd_callback): fixed parameters passed 
to
	action_select_property().


svn path=/trunk/; revision=27990
2009-02-06 10:03:05 +00:00
Michael Natterer 952309a6ea Bug 471681 – Keyboard shortcuts for brush size/params need feedback
2009-02-06  Michael Natterer  <mitch@gimp.org>

	Bug 471681 – Keyboard shortcuts for brush size/params need
	feedback

	Applied patch from Sven Neumann which addresses above bug:

	* app/actions/actions.[ch]: add new function action_message()
	which pushes a temp message to a display's statusbar.

	(action_select_property): add GimpDisplay* parameter and call
	action_message() for int and double property changes.

	* app/actions/tools-commands.c: pass the display to
	action_select_property().

	* app/paint/gimpinkoptions.c: add some blurbs to make it work
	for the ink blob properties.


svn path=/trunk/; revision=27988
2009-02-05 23:44:30 +00:00
Sven Neumann 30c118b53c Bug 520078 – Rotate brushes
2009-02-05  Sven Neumann  <sven@gimp.org>

	Bug 520078 – Rotate brushes

	Applied patch from Alexia Death:

	* app/core/gimpbrush.[ch]
	* app/core/gimpbrushgenerated.c
	* app/core/gimpbrush-transform.[ch]: affine transformations for
	brushes. So far only scaling and rotation is supported. The
	transformation is done using nearest-neighbour. This is a
	regression and we need to add back interpolation before the next
	release.

	* app/paint/gimpsmudge.c
	* app/paint/gimppaintoptions.[ch]
	* app/paint/gimpbrushcore.[ch]: allow to control the brush
	rotation angle.

	* app/tools/gimppaintoptions-gui.c
	* app/tools/gimpbrushtool.c: added UI for controlling the
	brush rotation angle.

	* app/actions/tools-actions.c
	* app/actions/tools-commands.[ch]: add actions for controlling 
the
	brush rotation angle.


svn path=/trunk/; revision=27987
2009-02-05 21:47:57 +00:00
Martin Nordholts 4d7a6b10d1 Added .gitignore files generated with git svn create-ignore.
svn path=/trunk/; revision=27972
2009-01-31 11:37:44 +00:00
Michael Natterer d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
2009-01-17  Michael Natterer  <mitch@gimp.org>

	* all files with a GPL header and all COPYING files:

	Change licence to GPLv3 (and to LGPLv3 for libgimp).

	Cleaned up some copyright headers and regenerated the parsers in
	the ImageMap plugin.


svn path=/trunk/; revision=27913
2009-01-17 22:28:01 +00:00
Martin Nordholts 7c96452329 Make instance members private.
* app/widgets/gimpdock.[ch]: Make instance members private.

(gimp_dock_get_context)
(gimp_dock_get_dialog_factory)
(gimp_dock_get_dockbooks)
(gimp_dock_get_main_vbox)
(gimp_dock_get_vbox)
(gimp_dock_get_id): New getters.

* app/actions/actions.c
* app/actions/dockable-actions.c
* app/actions/dockable-commands.c
* app/actions/windows-actions.c
* app/menus/windows-menu.c
* app/widgets/gimpdialogfactory.c
* app/widgets/gimpdock.c
* app/widgets/gimpdock.h
* app/widgets/gimpdockable.c
* app/widgets/gimpdockbook.c
* app/widgets/gimpdockseparator.c
* app/widgets/gimpimagedock.c
* app/widgets/gimpmenudock.c
* app/widgets/gimpsessioninfo-book.c
* app/widgets/gimpsessioninfo-dock.c
* app/widgets/gimpsessioninfo-dockable.c
* app/widgets/gimptoolbox-color-area.c
* app/widgets/gimptoolbox-dnd.c
* app/widgets/gimptoolbox-image-area.c
* app/widgets/gimptoolbox-indicator-area.c
* app/widgets/gimptoolbox.c: Use new getters.

svn path=/trunk/; revision=27881
2009-01-04 10:28:31 +00:00
Marco Ciampa b5d03b3948 app/actions/error-console-actions.c updated italian translation and small
2008-12-30  Marco Ciampa  <ciampix@libero.it>

	* app/actions/error-console-actions.c
	* po/it.po: updated italian translation and small typo fix.


svn path=/trunk/; revision=27856
2008-12-30 11:23:30 +00:00
Martin Nordholts 571ce865bd Make instance member private and add getter that didn't already exist.
* app/widgets/gimpitemtreeview.[ch]: Make instance member private
and add getter that didn't already exist.

(gimp_item_tree_view_get_new_button)
(gimp_item_tree_view_get_edit_button): New getters.

* app/actions/actions.c
* app/widgets/gimpvectorstreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpchanneltreeview.c: Use new getters.

svn path=/trunk/; revision=27827
2008-12-25 11:31:51 +00:00
Martin Nordholts a4b0297b4b New helper functions to lesser level of indirection in client code.
* app/widgets/gimpdatafactoryview.[ch]
(gimp_data_factory_view_have)
(gimp_data_factory_view_get_children_type)
(gimp_data_factory_view_has_data_new_func): New helper functions
to lesser level of indirection in client code.

* app/actions/data-commands.c: Use them.

svn path=/trunk/; revision=27814
2008-12-20 12:27:52 +00:00
Martin Nordholts 7f733cee43 Make instance members private and add getters for accessed members.
* app/widgets/gimpdatafactoryview.[ch]: Make instance members
private and add getters for accessed members.

(gimp_data_factory_view_get_edit_button)
(gimp_data_factory_view_get_duplicate_button)
(gimp_data_factory_view_get_data_factory): New getters.

* app/actions/data-commands.c
* app/widgets/gimppatternfactoryview.c: Use new getters.

svn path=/trunk/; revision=27813
2008-12-20 12:08:28 +00:00
Martin Nordholts 4981816c0b Make instance members private and add getters for required members.
* app/core/gimpdatafactory.[ch]: Make instance members private and
add getters for required members.

(gimp_data_factory_get_container)
(gimp_data_factory_get_gimp)
(gimp_data_factory_has_data_new_func): The new getters.

* app/actions/context-commands.c
* app/actions/data-commands.c
* app/core/gimp-gradients.c
* app/core/gimp.c
* app/core/gimpcontext.c
* app/core/gimpdatafactory.c
* app/core/gimpdatafactory.h
* app/dialogs/convert-dialog.c
* app/dialogs/palette-import-dialog.c
* app/pdb/gimppdb-utils.c
* app/widgets/gimpbrushfactoryview.c
* app/widgets/gimpdataeditor.c
* app/widgets/gimpdatafactoryview.c
* app/widgets/gimpselectiondata.c
* app/widgets/gimpviewablebox.c
* tools/pdbgen/pdb/brush_select.pdb
* tools/pdbgen/pdb/brushes.pdb
* tools/pdbgen/pdb/gradient_select.pdb
* tools/pdbgen/pdb/gradients.pdb
* tools/pdbgen/pdb/palette_select.pdb
* tools/pdbgen/pdb/palettes.pdb
* tools/pdbgen/pdb/pattern_select.pdb
* tools/pdbgen/pdb/patterns.pdb: Use the getters.


* app/pdb/brush-select-cmds.c
* app/pdb/brushes-cmds.c
* app/pdb/gradient-select-cmds.c
* app/pdb/gradients-cmds.c
* app/pdb/palette-select-cmds.c
* app/pdb/palettes-cmds.c
* app/pdb/pattern-select-cmds.c
* app/pdb/patterns-cmds.c: Regenerated.

svn path=/trunk/; revision=27812
2008-12-19 21:58:17 +00:00
Martin Nordholts 6f8b354486 Formating...
svn path=/trunk/; revision=27761
2008-12-04 19:33:46 +00:00
Martin Nordholts bac6232e39 Pass arguments to gimp_action_group_add_actions() in the right order.
* app/actions/images-actions.c (images_actions_setup): Pass
arguments to gimp_action_group_add_actions() in the right order.

svn path=/trunk/; revision=27760
2008-12-04 19:32:15 +00:00
Sven Neumann ff6bde0a88 also use the translation context for the tooltips.
2008-12-04  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpactiongroup.[ch]: also use the translation
	context for the tooltips.

	* app/actions/*.c: added translation context to all tooltips. 
Also
	improved some tooltips while I was on it.


svn path=/trunk/; revision=27757
2008-12-04 10:32:20 +00:00
Sven Neumann 74e76f2c6a added an extra parameter for the translation context to all
2008-12-03  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpactiongroup.[ch]: added an extra parameter for
	the translation context to all gimp_action_group_add methods.

	* app/actions/*.c: added a translation context to all action
	labels. Also unified and improved the labels and tooltips in a 
few
	places.


svn path=/trunk/; revision=27754
2008-12-03 15:27:42 +00:00
Michael Natterer 558e2e17a9 make the entire selection API take GimpSelection arguments, not
2008-11-22  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpselection.[ch]: make the entire selection
	API take GimpSelection arguments, not GimpChannel.
	Clean up gimp_selection_load() a bit.

	* app/actions/select-commands.c
	* app/core/gimp-edit.c
	* app/core/gimpdrawable-transform.c
	* app/core/gimpimage-quick-mask.c
	* app/tools/gimpeditselectiontool.c
	* tools/pdbgen/pdb/selection.pdb: add the needed casts.

	* app/pdb/selection-cmds.c: regenerated.


svn path=/trunk/; revision=27711
2008-11-22 22:07:55 +00:00
Martin Nordholts 2f25fb132f Use GimpContainer getters instead of poking into the class
instance struct.

* app/actions/context-commands.c
* app/actions/data-commands.c
* app/actions/plug-in-commands.c
* app/actions/templates-commands.c
* app/core/gimp-utils.c
* app/core/gimpdrawablestack.c
* app/core/gimpitemstack.c
* app/core/gimplist.c
* app/gui/gui-vtable.c
* app/widgets/gimpcontainerbox.c
* app/widgets/gimpcontainercombobox.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainerentry.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainerpopup.c
* app/widgets/gimpcontainertreeview-dnd.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpcontainerview-utils.c
* app/widgets/gimpcontainerview.c
* app/widgets/gimpdataeditor.c
* app/widgets/gimpdatafactoryview.c
* app/widgets/gimpsettingsbox.c
* app/widgets/gimpviewablebutton.c

svn path=/trunk/; revision=27693
2008-11-20 23:43:58 +00:00
Martin Nordholts 5aeb568650 s/gimp_container_children_type/gimp_container_get_children_type/
s/gimp_container_policy/gimp_container_get_policy/
s/gimp_container_num_children/gimp_container_get_n_children/

* app/actions/actions.c
* app/actions/file-actions.c
* app/actions/file-commands.c
* app/actions/tool-options-actions.c
* app/actions/tools-actions.c
* app/actions/tools-commands.c
* app/actions/vectors-actions.c
* app/core/gimpcontainer-filter.c
* app/core/gimpcontainer.c
* app/core/gimpcontainer.h
* app/core/gimpimage-convert.c
* app/core/gimpimage-flip.c
* app/core/gimpimage-merge.c
* app/core/gimpimage-resize.c
* app/core/gimpimage-rotate.c
* app/core/gimpimage-scale.c
* app/core/gimpimage-undo.c
* app/core/gimpimage.c
* app/core/gimpimagefile.c
* app/core/gimplist.c
* app/core/gimpundostack.c
* app/dialogs/palette-import-dialog.c
* app/dialogs/quit-dialog.c
* app/display/gimpdisplay.c
* app/display/gimpdisplayshell-layer-select.c
* app/display/gimpdisplayshell-title.c
* app/gui/gui-vtable.c
* app/menus/tool-options-menu.c
* app/tools/gimp-tools.c
* app/widgets/gimpcontrollerlist.c
* app/widgets/gimpimagepropview.c
* app/widgets/gimpsettingsbox.c
* app/widgets/gimpviewablebutton.c
* app/xcf/xcf-load.c
* app/xcf/xcf-save.c

svn path=/trunk/; revision=27692
2008-11-20 22:45:19 +00:00
Sven Neumann f2665fe374 run the benchmark in an idle callback.
2008-11-15  Sven Neumann  <sven@gimp.org>

	* app/actions/debug-commands.c
	(debug_benchmark_projection_cmd_callback): run the benchmark in 
an
	idle callback.


svn path=/trunk/; revision=27657
2008-11-15 12:43:18 +00:00
Martin Nordholts a8c54971e1 Fix mnemonics for the Debug sub menu and the Benchmark Projection item.
* app/actions/debug-actions.c: Fix mnemonics for the Debug sub
menu and the Benchmark Projection item.

svn path=/trunk/; revision=27656
2008-11-15 12:31:36 +00:00
Martin Nordholts 1dd185c397 Bug 560903 – Explicit zooming with e.g. '1' should handle
zoom-focus better

* app/display/display-enums.h: Added
GIMP_ZOOM_FOCUS_RETAIN_CENTERING_ELSE_BEST_GUESS.

* app/display/gimpdisplayshell-scale.c
(gimp_display_shell_scale_get_zoom_focus): Take the new enum into
account; if the image is centered, keep it centered, else use the
best-guess method.

* app/actions/view-commands.c (view_zoom_explicit_cmd_callback):
Use the new enum for explicit zooming.

* app/display/display-enums.c: Regenerated.

svn path=/trunk/; revision=27653
2008-11-15 10:24:56 +00:00
Michael Natterer fb1660a4ea rename gimp_image_floating_sel() to gimp_image_get_floating_selection().
2008-11-14  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage.[ch]: rename gimp_image_floating_sel() to
	gimp_image_get_floating_selection().

	* app/actions/channels-actions.c
	* app/actions/image-actions.c
	* app/actions/layers-actions.c
	* app/actions/layers-commands.c
	* app/actions/select-actions.c
	* app/core/gimpdrawable.c
	* app/core/gimpimage-duplicate.c
	* app/core/gimpimage-merge.c
	* app/core/gimpimage-quick-mask.c
	* app/core/gimplayer-floating-sel.c
	* app/core/gimpselection.c
	* app/display/gimpdisplayshell-layer-select.c
	* app/display/gimpdisplayshell.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpfreeselecttool.c
	* app/tools/gimpmovetool.c
	* app/tools/gimprectangleselecttool.c
	* app/tools/gimpregionselecttool.c
	* app/tools/gimpselectiontool.c
	* app/tools/gimptexttool.c
	* app/widgets/gimpdrawabletreeview.c
	* app/widgets/gimplayertreeview.c
	* app/xcf/xcf-save.c
	* tools/pdbgen/pdb/image.pdb: changed accordingly, replaced some
	instances of direct acces by the accessor.

	* app/pdb/image-cmds.c: regenerated.


svn path=/trunk/; revision=27649
2008-11-14 15:01:44 +00:00
Sven Neumann cee9feca8f Bug 560300 – Document History did not clear when "Keep record of used
2008-11-11  Sven Neumann  <sven@gimp.org>

	Bug 560300 – Document History did not clear when "Keep record of
	used files" was unchecked
	
	* app/actions/documents-commands.c 
(documents_clear_cmd_callback):
	don't purge the entire GtkRecentManager, but only clear items
	added by GIMP. Do this regardless of the "save-document-history"
	gimprc option.


svn path=/trunk/; revision=27622
2008-11-11 20:37:15 +00:00
Sven Neumann c2c4183596 Bug 560375 – Clearing an already empty document history crashes GIMP
2008-11-11  Sven Neumann  <sven@gimp.org>

	Bug 560375 – Clearing an already empty document history crashes 
GIMP

	* app/actions/documents-commands.c 
(documents_clear_cmd_callback):
	gtk_recent_manager_purge_items() may return 0 but not set an
	error.


svn path=/trunk/; revision=27620
2008-11-11 20:09:05 +00:00
Sven Neumann 52c583cdd8 Bug 558797 – "Export Path" doesn't remember last used folder
2008-11-11  Sven Neumann  <sven@gimp.org>

	Bug 558797 – "Export Path" doesn't remember last used folder

	* app/actions/vectors-commands.c: remember last-used folders in
	the Path Import and Export dialogs.


svn path=/trunk/; revision=27614
2008-11-11 08:24:21 +00:00
Sven Neumann ff5e76cf5c added missing mnemonic.
2008-11-10  Sven Neumann  <sven@gimp.org>

	* app/actions/text-tool-actions.c (text_tool_actions): added
	missing mnemonic.


svn path=/trunk/; revision=27598
2008-11-10 08:59:10 +00:00
Michael Natterer 1cdf6c5b7f remove floating_sel_remove() and reorder one function.
2008-11-09  Michael Natterer  <mitch@gimp.org>

	* app/core/gimplayer-floating-sel.[ch]: remove
	floating_sel_remove() and reorder one function.

	* app/core/gimpimage.c (gimp_image_remove_layer): add the single
	line of special code that needs to be done when removing a
	floating selection.

	* app/core/gimpselection.c
	* app/actions/layers-commands.c
	* tools/pdbgen/pdb/floating_sel.pdb: changed accordingly.

	* app/pdb/floating-sel-cmds.c: regenerated.

	* app/core/core-enums.[ch]
	* app/core/gimpimage-undo.c: remove enum value
	GIMP_UNDO_GROUP_FS_REMOVE.


svn path=/trunk/; revision=27583
2008-11-09 18:45:16 +00:00
Martin Nordholts 983c3751c2 Prepare GimpCursorView for a dependency to GimpDisplayShell.
* app/widgets/gimpcursorview.[ch]: Move from here...

* app/display/gimpcursorview.[ch]: ...to here.

* app/widgets/Makefile.am
* app/display/Makefile.am: Change accordingly.

* app/actions/cursor-info-actions.c
* app/dialogs/dialogs-constructors.c
* app/actions/cursor-info-commands.c
* app/display/gimpdisplayshell-cursor.c: Update includes.

svn path=/trunk/; revision=27581
2008-11-09 17:51:43 +00:00
Sven Neumann cc7222d8e4 added missing include.
2008-11-04  Sven Neumann  <sven@gimp.org>

	* app/display/gimpdisplay-foreach.c: added missing include.

	* app/actions/debug-commands.c
	* plug-ins/common/lcms.c
	* plug-ins/common/mail.c
	* plug-ins/file-bmp/bmp-write.c
	* plug-ins/file-fits/fits.c
	* plug-ins/file-jpeg/jpeg.c
	* plug-ins/file-uri/uri.c
	* plug-ins/help/gimphelpdomain.c
	* plug-ins/ifs-compose/ifs-compose.c
	* plug-ins/print/print.c: fixed use of g_message() with literal
	strings.


svn path=/trunk/; revision=27551
2008-11-04 14:05:24 +00:00