2004-03-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpthumbbox.c (gimp_thumb_box_new): set a fixed
width on the "filename" and "info" labels so they clip their texts
rather than expand the thumb_box when the text is too wide
(spotted by Jonathan Blandford).
2004-03-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdialogfactory.[ch]: made enum
GimpDialogVisibilityState and GIMP_DIALOG_VISIBILITY_KEY public.
* app/widgets/gimpsessioninfo.c (gimp_session_info_get_geometry):
only look at GTK_WIDGET_VISIBLE(info->widget) if the dialog's
visibility state is GIMP_DIALOG_VISIBILITY_UNKNOWN and map the
visibility state to info->open otherwise.
Fixes bug #137076.
2004-03-13 Simon Budig <simon@gimp.org>
* app/widgets/widgets-enums.h
* app/widgets/gimppreviewrenderer.[ch]: New function
gimp_preview_renderer_set_border_type that takes an enum instead
of an color to set the color of the border.
* app/widgets/gimpcellrendererviewable.c: check for the
current border_type and change it to black when it is white and
the cell is unselected. This should be solved in a better way
later.
Fixes bug #135023.
* app/widgets/gimplayertreeview.c
* app/widgets/gimpcontainergridview.c: changed to use the new
function.
2004-03-11 Sven Neumann <sven@gimp.org>
* app/config/gimpconfig-utils.c: made gimp_config_sync() and
gimp_config_connect() also work on objects of different types.
Properties with the same name and the same type are synced /
connected.
* app/core/gimpcontext.[ch]: added convenience functions to get/set
the font by name.
* app/tools/gimptextoptions.[ch]: don't hold a GimpText object
that duplicates properties like font and color which are in
GimpContext already. Instead added all text properties that are
controlled from the text tool options. Handling of the foreground
color is somewhat broken and needs a GimpContext wizard (Mitch!).
* app/text/gimptext.c: blurbs are not any longer needed now that
the property widgets are created from the GimpTextOptions.
* app/tools/gimptexttool.c: changed accordingly.
* app/widgets/gimptexteditor.[ch]: use an internal GtkTextBuffer
and emit "text-changed" when it changes.
2004-03-09 Sven Neumann <sven@gimp.org>
Finished some work that Brix started on the help system. It's
now possibly to use an external web-browser for context help
(bug #136081):
* configure.in
* plug-ins/Makefile.am
* plug-ins/help/Makefile.am
* plug-ins/help/domain.[ch]
* plug-ins/help/help.c: new plug-in that does the help domain
management. Most of this used to live in the helpbrowser plug-in.
* plug-ins/helpbrowser/Makefile.am
* plug-ins/helpbrowser/domain.[ch]: removed these two files here.
* plug-ins/helpbrowser/helpbrowser.c: changed accordingly.
* app/widgets/gimphelp.c: use the new help plug-in.
2004-03-07 Sven Neumann <sven@gimp.org>
Made size of undo previews configurable. Not dynamic for now, but
at least not hardcoded any longer. Fixes bug #119905:
* app/config/gimpcoreconfig.[ch]
* app/config/gimprc-blurbs.h: added "undo-preview-size" property.
* app/core/gimpundo.[ch]: use the new property instead of a
hardcoded value.
* app/widgets/gimpundoeditor.[ch]: added a "preview-size"
construct property.
* app/gui/dialogs-constructors.c: changed accordingly.
* app/gui/preferences-dialog.c: added a widget to control the undo
preview size.
2004-03-04 Sven Neumann <sven@gimp.org>
* app/config/gimprc-blurbs.h: marked new strings for translation.
* libgimpwidgets/gimpstock.h: added #defines for missing icons.
This allows us to replace them later without changing the API.
* app/gui/dialogs-constructors.c
* app/gui/dialogs-menu.c
* app/gui/gradient-editor-commands.c
* app/gui/image-menu.c
* app/gui/toolbox-menu.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimptextoptions.c
* app/widgets/gimppaletteeditor.c: use the new stock icon names
instead of abusing GTK+ and GIMP tool stock icons.
* app/gui/preferences-dialog.c (prefs_dialog_new): added icons
to the new check buttons.
2004-03-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_init): eek, the
separator crept back in while hacking GimpFileDialog. Removed it
again.
2004-03-04 Sven Neumann <sven@gimp.org>
* app/widgets/gimpwidgets-utils.c (gimp_message_box): set the
window icon to the icon displayed in the message dialog.
2004-03-04 Simon Budig <simon@gimp.org>
* app/widgets/gimpimagedock.[ch]: #ifdef'ed the code for
the global shortcuts and disabled it.
Fixes bug #133453
2004-03-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolormapeditor.c (gimp_colormap_editor_class_init):
GDK_TYPE_MODIFIER_TYPE are flags, not enum values, use the
right marshaller for the "selected" signal.
2004-03-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppreviewrendererimagefile.[ch]: moved the
(disabled) ENABLE_FILE_SYSTEM_ICONS from the .c to the .h file and
#ifdef the "gpointer file_system" member with it.
2004-03-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppreviewrendererimagefile.[ch]: moved the
(disabled) ENABLE_FILE_SYSTEM_ICONS from the .c to the .h file and
#ifdef the "gpointer file_system" member with it.
2004-03-03 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimppreviewrendererimagefile.[ch]: added new preview
renderer class (has some disabled code from my GtkFileChooser tree
and behaves exactly as the default implementation).
* app/widgets/gimppreviewrenderer-utils.c: use it for GimpImagefiles.
2004-03-02 Michael Natterer <mitch@gimp.org>
* app/tools/gimpeditselectiontool.c
* app/widgets/gimplayertreeview.c: compress undo steps only
if the redo stack is empty.
2004-03-01 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.[ch] (gimp_file_dialog_set_uri):
new function which configures the dialog to load an image.
* app/gui/file-open-dialog.c: use it. Don't use file-dialog-utils
any more and allow setting the uri of an already visible file open
dialog.
* app/gui/file-dialog-utils.c: took the file open menu entries out
of that insane logic that makes the menus insensitive while any
file dialog is open.
2004-03-01 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.[ch] (gimp_file_dialog_set_image):
new function which configures the dialog to save an image.
* app/gui/file-save-dialog.c: use it.
* app/gui/file-open-dialog.c
* app/gui/file-save-dialog.c: removed useless #inlcudes.
2004-02-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcellrendererviewable.c: some general cleanup.
(gimp_cell_renderer_viewable_set_property): ref the new renderer
before unrefing the old one. Fixes potential crash when setting
the same renderer again.
2004-02-27 Michael Natterer <mitch@gimp.org>
* app/gui/file-dialog-utils.c
* app/widgets/gimpfiledialog.c
* libgimpwidgets/gimpfileentry.[ch]: some irrelevant micro changes
to make that patch smaller.
2004-02-27 Michael Natterer <mitch@gimp.org>
* app/gui/file-open-dialog.c: removed the thumbnail box.
* app/widgets/gimpfiledialog.c: and added it here.
2004-02-27 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpfiledialog.[ch]: new widget swallowing most
of file-dialog-utils.[ch]'s functionality.
* app/widgets/widgets-types.h: added "gpointer callback_data" to
GimpItemFactorySetupFunc so the setup_funcs can create items in
the same context as the item factory's default items.
* app/widgets/gimpmenufactory.c (gimp_menu_factory_menu_new):
pass "callback_data" to setup_func().
* app/gui/file-open-menu.[ch]
* app/gui/file-save-menu.[ch]: use the passed callback_data
when creating the menus and attach the file_proc to the
menu items using g_object_set_data().
* app/gui/file-commands.[ch]: merged separate file type callbacks
for open and save dialogs into one callback which simply
calls gimp_file_dialog_set_file_proc().
* app/gui/file-dialog-utils.[ch]: removed file_dialog_new()
and file_dialog_set_proc().
* app/gui/file-open-dialog.[ch]
* app/gui/file-save-dialog.[ch]: use the new widget and removed
global variables except the dialog pointer itself.
* app/gui/image-menu.[ch]
* app/gui/tool-options-menu.[ch]
* app/gui/toolbox-menu.[ch]: changed accordingly.
2004-02-26 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpthumbbox.[ch]: new widget ripped out of the file
open dialog.
* app/gui/file-open-dialog.c: use it.
2004-02-20 Sven Neumann <sven@gimp.org>
* app/tools/gimplevelstool.[ch]: put the color bars into an event
box and draw the sliders on the event box window.
* app/widgets/gimpcolorbar.[ch]: removed support for input events
which is no longer needed. For consistency, renamed "channel"
property to "histogram-channel".
* app/widgets/gimphistogrambox.c: changed accordingly.
* app/widgets/gimpenummenu.[ch]: added new function
gimp_enum_stock_box_set_child_padding().
* app/tools/gimpcurvestool.[ch]: let the graph widget expand with
the dialog plus some other dialog tweaks.
* app/widgets/gimphistogrameditor.c: let the channel menu shrink
as in the other dialogs.
* libgimpwidgets/gimpcolorselect.c (gimp_color_select_image_fill):
allocate temporary buffer on the stack.
2004-02-18 Michael Natterer <mitch@gimp.org>
Some code review:
* app/config/gimpconfig-deserialize.c
* app/config/gimpconfig-serialize.c: removed obsolete code which
made sure serialize_property()/deserialize_property() are only
called for properties of the correct class. We do it the right way
for quite a while now and clear the inherited function pointers in
gimp_config_iface_base_init().
* app/config/gimprc.c (gimp_rc_dispose): don't forget to chain up.
* app/base/gimplut.c
* app/base/lut-funcs.c
* app/config/gimpconfig-deserialize.c
* app/config/gimpconfig-serialize.c
* app/config/gimpconfig-types.c
* app/config/gimprc.c
* app/core/gimp-modules.c
* app/core/gimpbrush.c
* app/core/gimpcontainer.c
* app/core/gimpdocumentlist.c
* app/core/gimpitem.c
* app/gui/about-dialog.c
* app/gui/color-notebook.c
* app/gui/gui.c
* app/gui/tips-dialog.c
* app/paint/gimppaintcore.c
* app/paint-funcs/paint-funcs.c
* app/widgets/gimpcolorpanel.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainermenuimpl.c
* app/widgets/gimpselectioneditor.c: removed I/O includes from
files which don't use lowlevel APIs any more. Also removes
a whole bunch of G_OS_WIN32 special casing. Removed trailing
whitespace. Misc tiny cleanups.
2004-02-17 Sven Neumann <sven@gimp.org>
* app/widgets/gimpeditor.c (gimp_editor_add_stock_box): cannot
gtk_widget_destroy() a floating widget, sink it instead.
* libgimpwidgets/gimppatheditor.c (gimp_path_editor_set_path):
plugged a small memleak.
2004-02-14 Michael Natterer <mitch@gimp.org>
Fixed lots of QuickMask brokenness by letting the image adjust
its qmask_state automatically:
* app/core/gimpimage-qmask.h: #define GIMP_IMAGE_QMASK_NAME "Qmask".
Use the define in all files below.
* app/core/gimpimage.[ch]: split gimp_image_drawable_add,_remove()
into separate handlers for layers and channels. Added a
"name_changed" handler for all channels. In the channel "add",
"remove" and "name_changed" handlers, check if it was a channel
named "Qmask" that was added, removed or renamed and call
gimp_image_set_qmask_state() accordingly.
* app/core/core-enums.[ch]
* app/core/gimpimage-undo-push.[ch]
* app/core/gimpundo.c: removed all Qmask undo code because the image
does the right thing without undo interaction now.
* app/core/gimpimage-qmask.c (gimp_image_set_qmask_state): set
gimage->qmask_state early so we can return early when called
recursively. Removed calls to gimp_image_undo_push_image_qmask().
Returned "removed" callback (it was utterly broken the way it was
implemented).
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_qmask_toggled): check if the image's
qmask state needs to be changed before changing it.
* app/xcf/xcf-load.c (xcf_load_channel): removed code which
recognized the qmask. GimpImage does this automatically now.
* app/gui/qmask-commands.c: cleanup.
* app/widgets/gimpimagedock.c (gimp_image_dock_constructor):
destroy the "/Select/By Color" and "/Select/Toggle QuickMask" menu
items.
* app/widgets/image-menu.c (image_menu_update): changed accordingly.
2004-02-13 Michael Natterer <mitch@gimp.org>
Fixed GimpData's default "writable" and "deletable" behaviour:
* app/core/gimpdata.c (gimp_data_init): default to writable and
deletable == TRUE (something that has no filename was never loaded
from disk and can't be undeletable or read-only).
Fixes bug #134274.
* app/core/gimpdata.[ch]: added new function
gimp_data_make_internal() which frees the filename and sets the
data's flags accordingly.
* app/core/gimp-gradients.c (gimp_gradients_add_gradient)
* app/core/gimpbrush.c (gimp_brush_get_standard)
* app/core/gimpgradient.c (gimp_gradient_get_standard)
* app/core/gimppalette.c (gimp_palette_get_standard)
* app/core/gimppattern.c (gimp_pattern_get_standard): use the
new function for internal data objects.
* app/core/gimpdata.c (gimp_data_save, gimp_data_delete_from_disk)
* app/core/gimpdatafactory.c (gimp_data_factory_save_single):
bail out with g_return_if_fail() is the data is not writable
or deletable.
* app/widgets/gimpdataeditor.c
* app/widgets/gimpdatafactoryview.c: changed accordingly.
2004-02-12 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphistogramview.c (gimp_histogram_view_button_press):
ignore double clicks so we don't grab the pointer away from the
curves dialog. Fixes bug #132356.
* app/tools/gimpcurvestool.c (curves_graph_events): ignore button
press and release events from all buttons except the first one.
2004-02-12 Michael Natterer <mitch@gimp.org>
Make sure that non-indexed images never have a colormap.
Fixes bug #121033.
* app/core/gimpimage-colormap.c (gimp_image_set_colormap): set
image->cmap to NULL when called with a NULL colormap.
* app/core/gimpimage-undo-push.c: made colormap undo/redo aware
of NULL colormaps.
* app/core/gimpimage-convert.c (gimp_image_convert): remove the
colormap using gimp_image_set_colormap() instead of freeing it
manually.
* app/widgets/gimpcolormapeditor.c: always check if the image
is INDEXED *and* has a colormap before accessing the colormap.
(need this new check because the fixed behaviour of colormap undo
produces undo groups which, when being popped, make the image have
no colormap while still being INDEXED in the small time frame
between the emission of "colormap_changed" and "mode_changed").
2004-02-10 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcolorframe.c (gimp_color_frame_init): make the
value labels selectable as suggested by Mariano Suárez-Alvarez in
bug #133958.
2004-02-07 Hans Breuer <hans@breuer.org>
* gimpdefs.msc : new file to keep common definitions for the msc build
* **/makefile.msc : use common defintions, e.g. GIMP_VER
* Makefile.am : add the former to EXTRA_DIST
2004-02-05 Michael Natterer <mitch@gimp.org>
Disallow editing of data objects which have no save functionality.
Also fixed the misassumption that "deletable" is always equal to
"writable". Fixes bug #133456.
* app/core/gimpdata.[ch]: added a "deletable" property which is
always equal to "writable" except when the data class does not
implement GimpData::save() (then deletable may be TRUE but
writable is always FALSE).
* app/gui/brushes-menu.c
* app/gui/gradients-menu.c
* app/gui/palettes-menu.c
* app/gui/patterns-menu.c
* app/widgets/gimpdatafactoryview.c: look at data->deletable when
setting the sensitivity of the "Delete" buttons and menu items.
* app/widgets/gimpdatafactoryview.c
(gimp_data_factory_view_tree_name_edited): rename the data
only if it's writable and restore the old name otherwise.
* app/widgets/gimpdataeditor.c: no need to look at data->internal
for figuring if the data is editable, data->editable is enough.
All files above: s/writeable/writable/g
* app/widgets/gimpbrusheditor.c (gimp_brush_editor_set_data):
simplified.
2004-02-02 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpimagedock.c (gimp_image_dock_constructor):
also destroy the <Image> factory's "Tools" submenu because menu
shortcuts with no or <shift> modifier prevent this key to be
entered in text entries. This really badly baldy cries for
GTK+ 2.4's GtkActions...
2004-02-01 Michael Natterer <mitch@gimp.org>
Disallow to rename the layer mask. Instead, always name the mask
"<layer name> mask". Fixes bug #133112 along with some other
unreported ones.
* app/core/gimpitem.[ch]: added a boolean return value indicating
success to GimpItem::rename().
(gimp_item_real_rename): push an undo step only if the item is
attached.
* app/core/gimplayer.c (gimp_layer_rename): refuse renaming if
the layer is a floating selection floated from a channel
(renaming a layer's floating selection makes a new layer out
of the floating selection).
(gimp_layer_duplicate): use gimp_layer_add_mask() to attach the
mask's duplicate. Fixes mask refcount brokenness for duplicated
layer masks.
(gimp_layer_name_changed): new function. Automatically renames the
layer mask when the layer's name changes.
* app/core/gimplayermask.c (gimp_layer_mask_rename): new function
which refuses renaming.
(gimp_layer_mask_name_changed): skip the unique name voodoo
GimpItem does by not chaining up.
(gimp_layer_mask_set_layer): change the mask's name whenever it is
attached to a layer.
* app/text/gimptextlayer.c (gimp_text_layer_rename): fiddle with
text_layer->auto_rename only if renaming was successful.
* app/widgets/gimpitemtreeview.c (gimp_item_tree_view_name_edited):
restore the old name if renaming failed.
* tools/pdbgen/pdb/drawable.pdb (set_name): return an execution
error if renaming failed.
* app/pdb/drawable_cmds.c: regenerated.
2004-01-31 Michael Natterer <mitch@gimp.org>
Use the global <Image> accel_group in all docks except the
toolbox (the latter needs GTK+ 2.4's new menu features).
Addresses bug #119878:
* app/gui/buffers-commands.c
* app/gui/channels-commands.c
* app/gui/data-commands.c
* app/gui/documents-commands.c
* app/gui/drawable-commands.c
* app/gui/edit-commands.c
* app/gui/file-commands.c
* app/gui/gradients-commands.c
* app/gui/image-commands.c
* app/gui/layers-commands.c
* app/gui/plug-in-commands.c
* app/gui/select-commands.c
* app/gui/tool-options-commands.c
* app/gui/tools-commands.c
* app/gui/vectors-commands.c
* app/gui/view-commands.c: changed the various return_if_no_foo()
macros to also accept a GimpDock as user_data.
* app/gui/image-menu.c (image_menu_update): don't update the
display related menu items if they don't exist (see below).
* app/gui/gui.c (gui_display_changed): simplified.
* app/widgets/gimpimagedock.[ch]: create an "<Image>" item_factory
and attach its accel_group to the dock. Destroy all display
related menu items. Destroy the layer stack navigation items
because their default shortcuts interfere with tree and grid view
keybindings. Connect to "image_changed" of the dock's private
context and to "flush" of the image container to update the
item_factory's state.
2004-01-31 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdock.c (gimp_dock_constructor): g_assert() that
we got the essential construct properties.