because the packing options are different for GtkH/VBox and GtkBox
itself which is now instantiable. Instead, always use
gtk_box_pack_start() and specify expanding explicitely.
When we are going to open new image windows, unset the transient
window. We don't need it since we will use gdk_window_raise() to
keep the dialog on top. And if we don't do it, then the dialog
will pull the image window it was invoked from on top of all the
new opened image windows, and we don't want that to happen.
Patch heavily inspiried by hack from Massimo Valentini.
Also add a manual test case for the fix. (I don't think there is GTK+
API to automate it).
Session manage empty- and single-image window separately. So when
starting up, the default 2.6 UI is the same. But when enabling
single-window mode, the image window will become much larger then the
empty-image window. These conceptually different windows will then
from that point be session managed separately: switching mode switches
size of the image window.
Instead of including dialogs/dialogs.h everywhere, introduce
gimp_dialog_factory_get_singleton(). The dialog factory singleton is
still initialized by dialogs.c though.
Right now the assumption is that we never will have another dialog
factory instance around. There were so many problems before when we
had four of them, so let's just keep one of them around.
We only have one dialog factory now, and
gimp_dialog_factory_from_name() doesn't provide compile-time type
safety, so use global_dialog_factory directly instead.
In GIMP 2.6 dockrc did not contain the factory entries for the session
infos, so set that up manually if needed. Also take the opportunity to
add a copyright notice to dialogs.c since tha file is almost rewritten
by now...
Added two new widgets, GimpDeviceInfoEditor, which is an editor/view
widget for GimpDeviceInfo, and GimpDeviceEditor, which is an editor
widget for all devices. Both are pretty much ugly right now and look a
lot like the old GtkInputDialog, but are at least internally cleaned
up and easily changable code and ui wise. Consider this a completely
intermediate state.
Also cleaned up GimpDeviceInfo so it's possible to have a proper
view on it, and did the needed changes to the preferences dialog
to use the new stuff.
Get rid of 'global_toolbox_factory' and manage everything dock-related
with 'global_dock_factory'. The whole of 'global_toolbox_factory' was
a big special-case and getting rid of it makes it easier to extend the
session management with e.g. single-window mode dock functionality.
To get rid of 'global_toolbox_factory' we, roughly, have to
* Replace 'global_toolbox_factory' with 'global_dock_factory'
everywhere. We can also get rid of lots of code that did special
things for the "toolbox" factory.
* Make the use or interaction with the toolbox explicit in some
places. For example, a function gimp_dock_window_has_toolbox() has
been introduced.
* Make GimpSessionInfoDock have an 'identifier' parameter so we can
differentiate between the "gimp-dock" and "gimp-toolbox" dock
types.
Rename back global_dock_window_factory to
global_dock_factory. Renaming to global_dock_window_factory was done
under the assumption that there would be a separate factory that would
create non-toplevel dockables, but I don't expect this to happen in
the forseeable future.
Let dock windows have proper GimpDialogFactory entries. This allows us
to get rid of a lot of ugly mostly duplicated code. This also makes us
ready the merge the dock window and toolbox factories which will soon
be done. A few things should be noted:
* We adjust the wrap box aspect ratio in the toolbox to avoid having
the toolbox dock window explode
* We make sure that we still can handle sessionrc files from GIMP 2.6
and older
Instead of having one dock constructor per dialog factory, put entries
for the normal dock and the toolbox dock in the dock window
factory. To do this we also need to merge the dock and normal dialog
constructors into one function protptype.
This takes us one step closer to be able to merge the
global_dock_window_factory and the global_toolbox_factory into one.
The long term goal: Support multi-column dock windows with one of the
docks being the toolbox. In this situation we can't have the toolbox
dock created by a separate dialog factory, that is too messy.
Instead of having gimp_dialog_factory_set_put_in_dockables() with all
the cruft that leads to we can use the 'dockable' member on
GimpDialogFactoryEntry. This is a general strategy that the code base
is being moved in: try to keep information per-entry rather than
per-factory.
Change gimp_dialog_factory_set_constructor() to
gimp_dialog_factory_set_put_in_dockables() order to narrow the
interface a bit. We can make both
gimp_dialog_factory_set_put_in_dockables() and the
GimpDialogConstructor typedef internal this way.
The main reason we do this is because we want to get rid of a
dependency on factory->p->new_dock_func. Eventually we want to
construct docks just like we construct other widgets in the factory,
so new_dock_func will be removed.
Also improve readability of code such as making it explicit that
gimp_dialog_factory_put_in_dockable_constructor() is just an extended
version of gimp_dialog_factory_default_constructor().
Move all macros definitions at the top and decorate struct
initialization values with the corresponding member names. Also do
some whitespace adjustments.
Move the Image Selection Menu from GimpMenuDock to
GimpDockWindow. That is, if a dock window contains many docks then
they will share the same Image Selection Menu.
To do this we need to move around quite a bit of code. Move the
"context", "dialog-factory" and "ui-manager" properties from GimpDock
to GimpToolbox, GimpMenuDock doesn't need it any longer. Turn the
GimpDock getters for these properties into wrappers that go to the
GimpDockWindow properties. In some places, most notably GimpToolbox
construction, we use the GimpToolbox values of these properties, but
most of the time it works fine to just use the GimpDockWindow
properties. GimpDock::setup() and set/get_aux_info() have also been
moved to GimpDockWindow since the only aux info for docks was for the
image selection menu.
Also, we don't bother porting gimp_menu_dock_destroy() to
GimpDockWindow, but we leave the code around. If this is a problem, it
will show.
In places where the pattern
if (show)
gtk_widget_show (widget);
else
gtk_widget_hide (widget);
is used, change to
gtk_widget_set_visible (widget, show);
Also do some other minor cleanups.
Add a "allow-dockbook-absence" property to the GimpDockWindow which is
set to TRUE for the dock window for the toolbox so that it is not
kiled when the last dockbook is removed.
Make GimpDock be a GtkVBox instead of a GimpDockWindow. This means we
can now put a GimpDock anywhere, including inside an image window.
In order to do this we need to:
* Separate dock and dock window creation in the dialog factory and
add a couple of new dock window constructors
* Change gimp_dialog_factory_dock_new() to not only create a dock,
but also create a dock window and then combine those two
* Change the dock constructor to take a GimpUIManager since they
depend on that during their construction. We get the ui manager
from the dock window, but we can't create the dock *inside* the
dock window, we have to add the dock later. So we create the dock
window first and then pass its ui manager to the dock constructors
* Make some other minor adaptions, mostly with
gimp_dock_window_from_dock() and gimp_dock_window_get_dock()
Simplify the code a bit by replacing the 'toplevel_entry' and
'dockable_entry' members in GimpSessionInfo with a single
'factory_entry'. We compensate for this by adding a 'dockable'
gboolean to GimpDialogFactoryEntry.
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.
* 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.
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.
Remove the transient-docks setting for gimprc. What GIMP tried to
accomplish with this enabled is much better accomplished by the window
manager with the docks set to the 'Utility window' window hint. See
discussion in bug #322577.
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.
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.
Forget the import source after save. We interpret a save as that the
user is not interested in being able to quickly export back to the
original any longer. The effect of this is that if we have an
'Overwrite' menu item, it becomes insensitive and set to 'Export to'.
When the user specifies a filename in the save dialog, make sure the
overwrite confirmation is not shown if the filename will be
altered. It doesn't make sense to ask for permission to overwrite a
file that will never be overwritten.
The Save a copy-URI shall only be remembered when the URI has been
entered through the dialog, so move it from file_save() to
file_save_dialog_response(). This is a preparation for the future
where we need to pass TRUE to save_a_copy without the URI being
remembered.
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.
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.
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.
Introduce file_save_dialog_unknown_ext_msg() so that we don't need to
have a copy-pasted huge error message (and prepare for more intricate
message handling).
2009-03-13 Sven Neumann <sven@gimp.org>
Bug 574427 – Stroke path with paint tool error
* app/dialogs/stroke-dialog.c: construct the combo-box that
selects the paint-info object with the GimpStrokeOptions as
context. Makes the code much easier and fixes bug #574427.
svn path=/trunk/; revision=28154
2009-03-07 Sven Neumann <sven@gimp.org>
* app/dialogs/stroke-dialog.c (stroke_dialog_response):
disconnect
from the "paint-info" combo-box before destroying the dialog.
The
GimpContainerView emits "select-item" from its dispose handler.
svn path=/trunk/; revision=28125
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
transferred in the file/new dialog box
* app/dialogs/preferences-dialog.c
(prefs_template_select_callback): We need to copy the template in
the same way as in the New Image dialog.
* app/dialogs/image-new-dialog.c (image_new_dialog_set): ... and
when we copy the template to the New Image dialog.
svn path=/trunk/; revision=27724
transferred in the file/new dialog box
* app/dialogs/preferences-dialog.c
(prefs_template_select_callback): We need to copy the template in
the same way as in the New Image dialog.
svn path=/trunk/; revision=27720
2008-11-13 Sven Neumann <sven@gimp.org>
* app/core/gimpimage.[ch]: added gimp_image_get_display_name().
* app/dialogs/palette-import-dialog.c
* app/display/gimpdisplayshell-close.c
* app/display/gimpdisplayshell-title.c
* app/pdb/gimppdb-utils.c
* app/widgets/gimpviewabledialog.c: use the new method instead
of
getting the image URI and mangling it with
file_utils_uri_display_basename().
svn path=/trunk/; revision=27637
crashes GIMP
* app/paint/gimppaintcore-stroke.c
(gimp_paint_core_stroke_vectors): Return an error message if there
were not enough points to stroke.
* app/dialogs/stroke-dialog.c (stroke_dialog_response): Guard
against crashes if an implementator forgets to set an error.
svn path=/trunk/; revision=27589
2008-10-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpwidgets-utils.[ch]: added "gboolean below" to
gimp_enum_radio_frame_add() and gimp_enum_radio_box_add() and
place the widget right of the radio button unless "below" is TRUE.
* app/dialogs/convert-dialog.c
* app/dialogs/layer-add-mask-dialog.c
* app/tools/gimpbucketfilloptions.c
* app/tools/gimpclonetool.c
* app/tools/gimpperspectiveclonetool.c
* app/widgets/gimpfilleditor.c: pass TRUE so everything stays as-is.
svn path=/trunk/; revision=27450
2008-10-25 Michael Natterer <mitch@gimp.org>
* app/core/gimpstrokeoptions.[ch]: add "gboolean use_context_color"
parameter to gimp_stroke_options_new() and set the passed context
as parent of the new options only if it's TRUE. Also fixed the
GimpConfig::duplicate() implementation to really duplicate the
object and not just return an object containing default values.
* app/core/gimpfilloptions.[ch]: add gimp_fill_options_new().
* app/actions/select-commands.c
* app/dialogs/stroke-dialog.c
* app/actions/vectors-commands.c
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/paths.pdb: pass TRUE to gimp_stroke_options_new().
* app/pdb/edit-cmds.c
* app/pdb/paths-cmds.c: regenerated.
svn path=/trunk/; revision=27393
2008-10-25 Michael Natterer <mitch@gimp.org>
* app/core/gimpfilloptions.[ch]: add non-serializable properties
pattern-view-type and pattern-view-size which are used only by the
new UI below.
* app/widgets/gimpfilleditor.[ch]: added boolean edit-context
property. If TRUE, add widgets to edit the context's foreground and
pattern. Add "edit_context" parameter to gimp_fill_editor_new().
* app/widgets/gimpstrokeeditor.[ch]: add the same parameter here.
* app/widgets/gimpwidgets-utils.[ch]: add gimp_enum_radio_box_add()
which does the same as the existing gimp_enum_radio_frame_add().
* app/dialogs/stroke-dialog.c: pass FALSE for "edit_context"
because this dialog takes its foreground and pattern from the user
context and doesn't need it's own GUI for them.
svn path=/trunk/; revision=27392
2008-10-09 Michael Natterer <mitch@gimp.org>
Add GEGL_CFLAGS and #includes as if gimpdrawable.h and gimpimage.h
had a GEGL dependency (they will have in the next commit, but I
wanted to keep the commit separate).
* app/dialogs/Makefile.am
* app/file/Makefile.am
* app/gui/Makefile.am
* app/menus/Makefile.am
* app/paint/Makefile.am
* app/plug-in/Makefile.am
* app/text/Makefile.am
* app/vectors/Makefile.am
* app/widgets/Makefile.am
* app/xcf/Makefile.am: add GEGL_CFLAGS.
* app/actions/*.c
* app/core/*.c
* app/dialogs/*.c
* app/display/*.c
* app/file/*.c
* app/gui/*.c
* app/menus/*.c
* app/paint/*.c
* app/pdb/gimppdb-utils.c
* app/pdb/gimpprocedure.c
* app/plug-in/*.c
* app/text/*.c
* app/tools/*.c
* app/vectors/*.c
* app/widgets/*.c
* app/xcf/*.c: add <gegl.h> or replace <glib-object.h> by <gegl.h>
to all files which include a drawable subclass or gimpimage.h
* tools/pdbgen/app.pl: include <gegl.h> instead of <glib-object.h>
in all generated files.
* app/pdb/*-cmds.c: regenerated.
* data/images/gimp-splash.png: the goat is still sleeping.
By Aurore Derriennic.
svn path=/trunk/; revision=27202
2008-10-09 Sven Neumann <sven@gimp.org>
* data/images/Makefile.am
* data/images/gimp-devel-logo.png: added 128x128 version of
wilber-devel.png.
* app/dialogs/about-dialog.c (about_dialog_load_logo): use
gimp-devel-logo.png for unstable releasees.
svn path=/trunk/; revision=27199
2008-10-05 Michael Natterer <mitch@gimp.org>
Allow to "Open as Layers" in the empty display:
* app/widgets/gimpfiledialog.[ch]: add member
"gboolean open_as_layers". Rename gimp_file_dialog_set_image() to
gimp_file_dialog_set_save_image() and add
gimp_file_dialog_set_open_image() which sets both the image to
load layers into and the "open_as_layers" boolean.
* app/dialogs/file-open-dialog.c (file_open_dialog_response): look
at dialog->open_as_layers instead of dialog->image to decide whether
to open as layers (that's much more obvious). Enable open as layers
without existing image by creating the image if it doesn't exist.
* app/actions/file-commands.c (file_open_dialog_show): add "title"
parameter and take the uri from the image if none was passed. Use the
new gimp_file_dialog_set_open_image() instead of poking into the
dialog struct. Change callers to pass the title and not get the
uri from the image; instead always pass the image.
* app/actions/file-actions.c (file_actions_update): keep
"Open as Layers" sensitive even without image.
svn path=/trunk/; revision=27135
2008-09-30 Michael Natterer <mitch@gimp.org>
Bug 546924 – "New Image" misscalculating dimensions for non-pixel
sized templates
* app/core/gimptemplate.h: added private param flag
GIMP_TEMPLATE_PARAM_COPY_FIRST.
* app/core/gimptemplate.c (gimp_template_class_init): set the flag
on the resolution properties.
* app/dialogs/image-new-dialog.c (image_new_template_changed):
make sure the resolution properties are copied first.
* libgimpconfig/gimpconfig-utils.c (gimp_config_sync): remove
comment about fixing the template editor. That's not true any
more.
svn path=/trunk/; revision=27091
image open.
* app/widgets/gimpdialogfactory.[ch]: Add 'toggle_visibility' to
GimpDialogFactory and as a parameter to gimp_dialog_factory_new(),
and set it there.
(gimp_dialog_factories_hide_foreach): Don't hide dialogs belonging
to factories with toggle_visibility FALSE.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): Move no-image event
handling to a new helper function, and make pressing Tab hide
windows.
* app/dialogs/dialogs.c (dialogs_init): Allow toggling visibility
for all factories except the display-factory.
svn path=/trunk/; revision=27077
2008-09-20 Sven Neumann <sven@gimp.org>
* app/dialogs/about-dialog.c: put translator comment on a single
line, looks better in the .po file.
svn path=/trunk/; revision=27025
2008-09-08 Sven Neumann <sven@gimp.org>
* authors.xml: restored alphabetic order. Use real name instead
of
a nick.
* AUTHORS: regenerated.
* app/dialogs/authors.xsl: changed rule to only include
contributors from the 2.6 development cycle in the About dialog.
svn path=/trunk/; revision=26898
2008-09-05 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpactioneditor.[ch]: new simple widget which
contains a GimpActionView plus the search entry.
* app/dialogs/keyboard-shortcuts-dialog.c: use the new widget
instead of implementing the search entry here.
* app/widgets/gimpcontrollereditor.c: use a GimpActionEditor
instead of GimpActionView so the actions become searchable here
too.
svn path=/trunk/; revision=26870
2008-09-04 Sven Neumann <sven@gimp.org>
* app/dialogs/keyboard-shortcuts-dialog.c: tweaked spacing
between
entry and button and resolved a mnemnic conflict.
svn path=/trunk/; revision=26862
2008-09-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpactionview.[ch]: add a column for the casefold
label of the action and filter on that.
* app/dialogs/keyboard-shortcuts-dialog.c: add a button to clear
the filter entry. Changed the label to "Search:".
svn path=/trunk/; revision=26861
2008-09-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpactionview.[ch]: add an GtkTreeModelFilter
between the GtkTreeView and the actual GtkTreeStore. Add API to
set the filter which is simply a string that's matched with
strstr(). Quite some things improvable here...
* app/dialogs/keyboard-shortcuts-dialog.c: add a "Filter" entry
and set the filter on the action view.
svn path=/trunk/; revision=26859
2008-08-25 Sven Neumann <sven@gimp.org>
* app/dialogs/image-scale-dialog.c: hide the Scale dialog before
starting to perform the scale operation.
svn path=/trunk/; revision=26753
2008-08-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpaction.c
* app/widgets/gimpdockable.c
* app/widgets/gimpradioaction.c
* app/widgets/gimpstringaction.c
* app/widgets/gimptoggleaction.c: added basic support for icon
names for actions and dockables. Uses the stock-id as icon name
if the icon theme provides an icon under this name.
* app/dialogs/dialogs.c
* app/actions/documents-actions.c
* app/actions/dialogs-actions.c: use the "document-open-recent"
icon for the document history.
svn path=/trunk/; revision=26710
2008-08-05 Sven Neumann <sven@gimp.org>
* app/dialogs/tips-dialog.c (tips_dialog_create): added a
translator comment for the "Learn more" button.
2008-08-05 Sven Neumann <sven@gimp.org>
* de.po: Updated German translation.
svn path=/trunk/; revision=26377
2008-08-04 Sven Neumann <sven@gimp.org>
Applied a slightly modified patch from Róman Joost as attached
to
bug #545963. This add links to the user manual to the tips
dialog:
* data/tips/gimp-tips.dtd
* data/tips/gimp-tips.xml.in: add optional help IDs to the tips.
* app/dialogs/tips-dialog.c
* app/dialogs/tips-parser.[ch]: parse the help IDs from the tips
file and show a "Learn more" link in the tips dialog.
svn path=/trunk/; revision=26361
2008-07-30 Sven Neumann <sven@gimp.org>
* app/dialogs/file-open-dialog.c (file_open_dialog_response):
attach the URI of the last opened image to the Gimp object.
* app/actions/file-commands.c (file_open_dialog_show): use the
last opened URI as a fallback for initializing the dialog.
svn path=/trunk/; revision=26339
2008-07-21 Sven Neumann <sven@gimp.org>
* app/core/gimpstrokedesc.[ch]: added boolean property
'emulate-brush-dynamics', in preparation for bug #543706.
* app/dialogs/stroke-dialog.c: added a toggle for the new
parameter.
svn path=/trunk/; revision=26255
2008-07-05 Sven Neumann <sven@gimp.org>
* app/dialogs/preferences-dialog.c
* app/widgets/gimphelp.[ch]: improved test for user manual
installation and moved the code out of the prefs dialog.
svn path=/trunk/; revision=26067
2008-07-04 Sven Neumann <sven@gimp.org>
* app/widgets/gimphelp.[ch]: added a function to get the
location
where the user manual is expected if it is installed locally.
* app/dialogs/preferences-dialog.c: inform the user about the
presence or absence of the user manual.
svn path=/trunk/; revision=26058
2008-06-30 Michael Natterer <mitch@gimp.org>
* app/dialogs/file-open-dialog.c (file_open_dialog_response):
restore code that sets the dialog back to sensitive when opening
fails because it stays open. Fixes bug #540801.
svn path=/trunk/; revision=26022
2008-06-13 Sven Neumann <sven@gimp.org>
* app/dialogs/preferences-dialog.c: added a preliminary user
interface to control the 'user-manual-online' property.
svn path=/trunk/; revision=25947
2008-05-30 Sven Neumann <sven@gimp.org>
* app/dialogs/module-dialog.c: tell the user that a restart is
needed for the changes to take effect.
svn path=/trunk/; revision=25871
2008-05-30 Sven Neumann <sven@gimp.org>
* app/dialogs/module-dialog.c: cleaned up the UI a bit. Removed
some information and a button that was not really useful. Only
show the error state when there is actually an error.
* app/actions/dialogs-actions.c: changed menu item to "Module
Manager".
svn path=/trunk/; revision=25867
2008-05-26 Sven Neumann <sven@gimp.org>
* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpwidgets.h
* libgimpwidgets/gimpwidgetstypes.h
* libgimpwidgets/gimpruler.[ch]
* libgimpwidgets/gimphruler.[ch]
* libgimpwidgets/gimpvruler.[ch]: added ruler widgets. These are
mostly copied from GTK+ and work as a drop-in replacement for
GtkRuler and friends.
* libgimpwidgets/gimpwidgets.def: updated.
* app/display/gimpdisplayshell.c
* app/display/gimpdisplayshell-scale.c
* app/dialogs/resolution-calibrate-dialog.c
* plug-ins/imagemap/imap_preview.c
* plug-ins/gfig/gfig-preview.c: use the GimpRuler widgets.
svn path=/trunk/; revision=25820
2008-05-21 Sven Neumann <sven@gimp.org>
Add Desaturate as an image-map tool with live preview (bug #533808):
* app/gegl/Makefile.am
* app/gegl/gegl-types.h
* app/gegl/gimpdesaturateconfig.[ch]: added config object for the
desaturate point filter.
* app/gegl/gimpoperationdesaturate.[ch]: derive from
GimpOperationPointFilter. Unrolled the inner loop.
* app/core/gimpdrawable-desaturate.c: changed accordingly.
* app/tools/Makefile.am
* app/tools/gimpdesaturatetool.[ch]: added desaturate as an
imagemap tool. So far only the GEGL code path is implemented.
* app/tools/gimp-tools.c: register the new tool.
* app/dialogs/dialogs.c: register the new tool dialog.
* app/dialogs/Makefile.am
* app/dialogs/desaturate-dialog.[ch]: removed the desaturate dialog.
* app/actions/drawable-actions.c
* app/actions/drawable-commands.[ch]: removed action
"drawable-desaturate".
* app/widgets/gimphelp-ids.h: changed help IDs accordingly.
* menus/image-menu.xml.in: replaced "drawable-desaturate" with
"tools-desaturate".
* libgimpwidgets/gimpstock.h: added a define for
GIMP_STOCK_TOOL_DESATURATE.
svn path=/trunk/; revision=25726
2008-05-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpwidgets-constructors.[ch]: add new function
gimp_stock_button_new() which creates a button with icon and label
which is *not* the stock_id's label.
* app/dialogs/preferences-dialog.c (prefs_button_add)
* app/tools/gimplevelstool.c (gimp_levels_tool_dialog): use it.
svn path=/trunk/; revision=25688
2008-05-17 Michael Natterer <mitch@gimp.org>
* app/dialogs/file-save-dialog.c (file_save_dialog_response): fix
crash (don't dereference dialog after it has been destroyed). Also
put back code that sets the dialog back to sensitive if it still
exists.
svn path=/trunk/; revision=25686
2008-05-16 Michael Natterer <mitch@gimp.org>
* app/dialogs/dialogs.c (dialogs_load_recent_docks): reverse the
list after loading so it keeps its order.
* app/menus/windows-menu.c (windows_menu_setup)
(windows_menu_recent_add): keep the recent docks menu in MRU
order.
svn path=/trunk/; revision=25672
2008-05-16 Michael Natterer <mitch@gimp.org>
Implement the presistent menu of recently closed docks, still
somewhat hackish but fully functional. Fixes bug #132744.
* app/actions/dialogs-actions.c
* app/actions/dialogs-commands.[ch]
* menus/image-menu.xml.in: remove the menu items that were
creating the hardcoded preconfigured docks.
* app/dialogs/dialogs.[ch]: add GimpContainer of recently closed
docks and API to load and save it.
* app/gui/session.c: call the recent dock load and save functions.
* app/widgets/gimpsessioninfo.[ch]: implement the GimpConfig interface
and (de)serialize via proper interface methods.
* app/gui/session.c
* app/widgets/gimpdialogfactory.c: use the GimpConfig API
to (de)serialize session infos and added the code that was
formerly in the info's (de)serialize functions but didn't belong
there.
* app/widgets/gimpaction.[ch]: add "max-width-chars" property and
set it on proxy menu item labels.
* app/actions/windows-actions.[ch]
* app/actions/windows-commands.[ch]
* app/menus/windows-menu.c: add actions and menu of recently
closed docks and code to restore the dock when the menu items are
selected. Use above new action property to ensure a minimum
width of the menu.
* app/widgets/gimpmenudock.c: use '-' instead of '|' for
separating notebooks in the window title. Menu items don't like '|'.
* app/widgets/gimpdock.c: removed the confirmation dialog when
closing docks and simply add them to the recent docks container.
This code is totally misplaced and will move to another file soon.
svn path=/trunk/; revision=25671
2008-05-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.[ch]: added infrastructure to
access
and set some state information of the GtkFileChooser.
* app/dialogs/file-open-dialog.c
* app/dialogs/file-save-dialog.c: don't keep the file-chooser
dialogs around. Instead keep the state attached to the Gimp
object
(one state for load, one for save dialogs). Closes bug #528811.
svn path=/trunk/; revision=25586
2008-04-09 Sven Neumann <sven@gimp.org>
* app/core/gimpcontainer.[ch]: added new methods
gimp_container_get_{first,last}_child().
* app/actions/file-actions.c (file_actions_close_all_update)
* app/dialogs/layer-add-mask-dialog.c (layer_add_mask_dialog_new)
* app/dialogs/palette-import-dialog.c (palette_import_image_callback)
* app/gui/gui-vtable.c (gui_get_empty_display):
* app/widgets/gimpmenudock.c (gimp_menu_dock_image_changed): use
the new GimpContainer methods.
* app/core/gimpundostack.c: use the new GimpContainer methods and
cleaned up the code.
svn path=/trunk/; revision=25426
2008-04-05 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplay.[ch]: added new function
gimp_display_close() which decides if gimp_display_delete() or
gimp_display_empty() needs to be called.
* app/display/gimpdisplay-foreach.[ch]: added new function
gimp_displays_close() and removed the 'do_quit' parameter from
gimp_displays_delete().
* app/gui/gui.c (gui_exit_callback): changed accordingly.
* app/display/gimpdisplayshell-close.c: removed
gimp_display_shell_really_close() and call gimp_display_close()
instead.
* app/display/gimpdisplayshell.c (gimp_display_shell_empty):
moved
code to update the ui managers here.
* app/actions/file-commands.c (file_save_cmd_callback)
(file_close_cmd_callback)
* app/dialogs/file-save-dialog.c (file_save_dialog_response)
* app/dialogs/quit-dialog.c (quit_close_all_dialog_response):
close displays instead of deleting them.
* app/gui/gui-vtable.c (gui_display_delete): call
gimp_display_close().
svn path=/trunk/; revision=25377
2008-03-28 Sven Neumann <sven@gimp.org>
* app/dialogs/tips-parser.[ch]
* app/dialogs/tips-dialog.c: improved the creation of fallback
tips in case of an error parsing the tips file.
(tips_dialog_create): simplified dialog layout.
* app/dialogs/preferences-dialog.c: removed the check button for
the "show-tips" option.
svn path=/trunk/; revision=25270
2008-03-28 Sven Neumann <sven@gimp.org>
* data/tips/gimp-tips.dtd
* data/tips/gimp-tips.xml.in
* app/dialogs/tips-parser.[ch]: reverted some of the changes
from
yesterday. The simplification went too far and we inadvertently
lost an important feature.
svn path=/trunk/; revision=25269
2008-03-27 Sven Neumann <sven@gimp.org>
* data/tips/gimp-tips.dtd
* data/tips/gimp-tips.xml.in: simplified the gimp-tips XML
format
as we do not any longer need a special welcome tip.
* app/dialogs/tips-dialog.c
* app/dialogs/tips-parser.[ch]: changed accordingly.
svn path=/trunk/; revision=25267
2008-03-27 Sven Neumann <sven@gimp.org>
Preparing for a revamp of the "Tip of the Day" feature:
* app/config/gimpguiconfig.[ch]: removed "show-tips" property.
* app/gui/gui.[ch]: removed gui_post_init() as it's only purpose
was
to show the tips dialog.
* app/app.c: changed accordingly.
* app/dialogs/tips-dialog.c: removed some stuff that we are not
going to need any longer.
svn path=/trunk/; revision=25265
2008-03-25 Sven Neumann <sven@gimp.org>
* app/actions/documents-commands.c: only fiddle with
GtkRecentManager when "save-document-history" is enabled.
* app/config/gimprc-blurbs.h
* app/dialogs/preferences-dialog.c: changed description and
label
for the "save-document-history" option.
svn path=/trunk/; revision=25212
2008-03-23 Michael Natterer <mitch@gimp.org>
* app/dialogs/dialogs.[ch]: added a dialog factory for displays
and register "gimp-no-image-window" with it.
* app/display/gimpdisplay.[ch]: add a GimpDialogFactory parameter
to gimp_display_new() and pass it on to gimp_display_shell_new().
* app/display/gimpdisplayshell.[ch]: keep the passed
GimpDialogFactory around. When the shell becomes empty, add it to
the dialog factory and resize it to the remembered size; when it
becomes non-empty, remove it from the dialog factory again.
* app/gui/gui-vtable.c: pass the display dialog factory to
gimp_display_new().
svn path=/trunk/; revision=25177