In order to make a GimpDock get hold of a GimpContext both in
single-window mode and in multi-window mode, don't make it look for a
GimpContext in a GimpDockWindow, put the context in GimpDockColumns
instead. GimpDockColumns exists both in s-w-m and m-w-m, contrary to
GimpDockWindow. Still use the GimpDockWindow as a backup though.
Use g_signal_connect_object() instead of g_signal_connect() so that
the dockable is referenced and not destroyed before
_drag_end(). Prevents a crash, but DnD in single-window mode does not
work properly yet.
In preparation for cleaning up the dialog factory stuff, start making
dockable constructable with just g_object_new(). First out is
gimp_tool_options_editor_new(). Move code from that function into
gimp_tool_options_editor_constructor() and add the necessary "gimp"
GObject property. The regression test
"/gimp-ui/tool-options-editor-updates" still passes after the
refactoring, of course.
Add and use GimpDialogFactoryPrivate for the members that are not used
by clients. Remove initialiation in _init() for member put in the
private struct, the struct is zeroed for us.
Spacing is now dynamically controllable. Unlike other parameters it
made little sense to scale down from default spacing so it scales between
current and maximum spacing.
Don't crash when detaching dockables from the image window. This
scenario only occurs in single-window mode. We solve it by using
global variables and checking for NULL for src_dock_window; there is
no dock window when detaching from the image window.
The use of global variables is meant to be temporary.
Introduce GimpSessionInfoDock and session manage multi-column dock
windows. We are still backwards compatible with sessionrc, the only
difference is that a "session-info" entry now can have multiple "dock"
entries.
Also make ond dock window multi-column in the regression test
app/tests/test-session-management.c and adjust positions and image
selection menus a bit.
Add GimpMenuFactoryPrivate. Note that we don't introduce a Gimp-getter
since the menu factory is globally accesible and we want to have as
much control as possible in who can get the Gimp instance.
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.
The private instance data struct is zeroed out for us so we don't need
to assign NULL, FALSE and 0 to private instance data members in
gimp_dock_window_init().
To make the smaller font in docks also apply in single-window mode,
move the GimpDockWindow::font-scale style property to GimpDock. We use
the GimpDockWindow approach, so now each GimpDock has a name of the
form "gimp-internal-dock-<id>". We add "internal" to avoid clashing
with the GimpDockWindow legacy id "gimp-dock-<id>".
Make drag-and-drop rearrangement of dockables happen directly in the
existing widget hierarchy so we don't have to use special, ugly
widgets (read GimpDockSeparator:s) for that.
More specifically, make edges of dockables and dockbooks have the same
semantics as the GimpDockSeparators had. We put a highlight colored
GdkWindow on top of the widget in question to highlight these special
drop areas. This GdkWindow is not taken into consideration in the GTK+
drag-and-drop code, so it does not interupt the DND interaction.
To achive this, there is a problem we must solve: Drag events in GTK+
are propagated inwards and out, but we sometimes want ancenstor
widgets to take care of drop events. We solve this by introducing the
concept of "drag handlers". A drag handler is asked if it will handle
a given drag event, and if it will, a client will let the drag event
be propagated upwards in the widget hierarchy. Right now, the
GimpPanedBox is the only "drag handler". The code could be generalized
more but it doesn't feel worth it at this point.
The size of the special drop area is 5px, the same size as the default
GtkPaned handles. This is because the plan is to later use these
handles as drop areas too.
Other changes of interest are:
* We need to take care of "drag-motion", "drag-drop" and widget
highlightning ourselves. We can not use the GtkDestDefaults
conveniences with gtk_drag_dest_set() any longer since we need more
control.
* Make the drop callback pass the insert index directly instead of a
GimpDockSeparator
* Add some GIMP_LOG() debug output for DND
* Disable the GimpDockSeparator code in GimpToolbox
Make GimpDockColumns listen to "dock-removed", not "dockbook-removed",
when trying to figure out when to destroy itself. Fixes some crashes
when rearranging the UI, for example when doing this step-by-step:
1. Have two dock windows with one dockable each, say A and B
2. Move A to B's dock window and make it multi-column
3. Try to detach B, will result in a crash
Removes tons of code but looks ugly because it uses GTK_STOCK_GO_DOWN
currently, will fix that. Also did some random small cleanups and
removed unused members from the instance struct.
Move g_list_copy() out from gimp_dock_columns_get_docks(). Fixes at
least one memory leak (in gimp_dock_window_get_dock()) and feels nicer
and more flexible.
The insert position for new column in GimpDockColumns was sometimes
wrong, the problem was in gimp_dock_separator_get_insert_pos() not
return an index but a GtkAnchorType. Convert from GtkAnchorType to an
insert index.
When dropping a dockable on a dock separator on the side of e.g. a
dock window, a new column of dockables will be created. This allows
multi-column dock window setups.
Put a GimpDockColumns inside GimpDockWindow so that there can be more
than one dock inside a dock window. For now,
gimp_dock_window_get_dock() returns the first dock. Eventually need to
return all docks and refactor the other code as needed.
Add gimp_dialog_factory_dock_window_new() since we need to be able to
create only dock windows when going from single-window mode back to
multi-window.
Add a new class GimpPanedBox that wraps the arrangement of widgets
into GtkPaned hierarchies. It takes over the separator management from
GimpDock and the GtkPaned management from
gimpwidgets-utils.[ch]. GimpPanedBox can be both vertically and
horizontally oriented.
Change GimpDock to use this widget and make some other minor
adaptations.
Allow to set the dropped callback after dock separator construction.
We need this in order to move the dock separators into a common widget
for which the callback to use is not known at construction time.
It keeps around its children as offscreen widgets and renders them
using a (potantially) arbitrary cairo_matrix_t (the actual API allows
for arbitrary alignment wihin the container and rotating).
(gimp_button_menu_position): reorder the code, use the new
gdk_window_get_root_coords() and pass it coordinates that include
the widget's offset within its parent gdk window.
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.
* app/core/gimpdynamics.c: remove all boolean properties and add the
outputs as properties instead. Make sure changes on the outputs get
notified on the dynamics object.
* app/widgets/gimpdynamicseditor.c: change widget creation accordingly,
also copy around the properties correctly when copying between
dynamics objects (fixes NULL filenames on GimpData).
Move the GtkPaned management code into gimp_widgets_add_paned_widget()
and gimp_widgets_remove_paned_widget() in gimpwidgets-utils.[ch] so we
can share this code for GimpDockColumns later.
For now, only show dock separators when they are needed, not all the
time. We need a better solution eventually, but at least docks in the
image window doesn't look terrible any longer.
When 'Single-window mode is enabled, move the toolbox and existing
docks into the image window. Needs a lot of more work but is
functional enough for curious people.
Implemented by adding a new GimpUIConfigurer component that has global
knowledge. There is a single application instance of this
component. It subscribes to changes in the single-window-mode config
property and adjusts the UI accordingly.
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.
The toolbox toplevel is no longer the dock, do some minor adjustments
to compensate for this, namely sending the toolbox (which is a dock)
as data to callbacks.
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()
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.
(gimp_layer_tree_view_mask_update): call
gimp_layer_tree_view_update_borders() unconditionally; not only when a
mask has been added, but also when it has been removed.
Rename gimp_session_info_set_geometry() to
gimp_session_info_apply_geometry() and gimp_session_info_get_geometry
to gimp_session_info_read_geometry(). The old functions were not
getters and setters and thus the names were misleading.
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.
Add GimpSessionInfo getters for a bunch of dialog factory entry
fields. This moves much of the GimpDock special casing to a common
place and also reduces direct access to session info fields.
The new function is called after the item is inserted. This is a much
smaller change than turning all vfuncs into signals just to be able
connect_after to one of them.
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.
Update export filename priorities according to changes in spec. Also
consistently use GIMP_FILE_EXPORT_URI_KEY instead of
GIMP_FILE_EXPORT_TO_URI_KEY. They have the same value.
Collapsing the tree gets rid of any selection in the collapsed branch,
and doesn't restore it upon exapnding. So connect to the
GtkTreeView::row-expanded signal and select the active item manually.
Had to add evil hack that makes sure we don't try this on child items
that are currently being inserted, because our parent class has no
choice but to expand the tree while the item is not completely
inserted in all subclasses yet.
In order to allow the toolbox dock to set geometry hints on the
GtkWindow it is in, introduce host geometry hint setting through a new
virtual function GimpDock::set_host_geometry_hints() and a new
"geometry-invalidated" signal.
Docks that needs to setup geometry hints on the window they are in
call gimp_dock_invalidate_geometry(). The GimpDockWindow will listen
to this and give the dock a chance to set geometry hints (or any setup
really) on the GimpDockWindow.
Add a "title-invalidated" signal to GimpDock and a virtual function
GimpDock::get_title(). When GimpDocks have a state change that their
title depends on they call gimp_dock_invalidate_title(). The
GimpDockWindow listens to this signal and update its window title
using GimpDock::get_title() in an idle handler.
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::".
Add a GimpDialogFactory property to GimpDockWindow so that it can get
rid of its GimpDock dependency. We need to call the property
"gimp-dialog-factory" instead of "dialog-factory" though as long as
GimpDock subclasses GimpDockWindow.
Move the GimpUIManager from GimpImageDock to GimpDockWindow. This
includes making the ui_manager_name class-member of GimpImageDock a
normal instance member of GimpDockWindow since the UI manager name no
longer can be configured at the class level.
The dock needs to listen to image changes in the context and not only
display changes since the introduction of the empty-image-window does
not cause any display changes when creating the first image.
The GimpDockWindow will need to have a GimpContext so add such a
property but call it "gimp-context" for now to avoid clashing with
"context" of GimpDock.
Introduce GimpDockWindow and make GimpDock inherit from it. Right now
it is just a GimpWindow, but window logic from GimpDock and subclasses
will gradually be moved here so that we eventually can make GimpDock a
GtkBin. That in turn will allow us to put several GimpDocks next to
each other in columns, or GimpDocks in an image window.
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.
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.
- gimp_container_tree_view_prepend_toggle_cell_renderer() to
gimp_container_tree_view_add_toggle_cell()
- gimp_container_tree_view_prepend_cell_renderer() to
gimp_container_tree_view_add_renderer_cell()
because "prepend" is an implementation detail, "renderer" is obsolete,
and in the second case it's not "cell renderer" but really a "renderer
cell".
Even though a user can only save to XCF in File->Save, the "All
images" filter shall show all images to allow a user to steal names
from non-XCF images and vice versa for File->Export, so make that
happen.
If we didn't click on any cell, but on empty space in the expander
column of a row that has children, let GtkTreeView process the button
press to maybe handle a click on an expander.
* app/widgets/gimpitemtreeview.[ch]: add class members for the lock
content button's icon, tooltip and help_id and use them when
creating the button. Create the button in constructor() instead of
init() so we have access to our real class structure without the
need for a custom get_type() function.
* app/widgets/gimpdrawabletreeview.c: configure the button as "Lock pixels".
* app/widgets/gimpvectorstreeview.c: configure it as "Lock path strokes".
- new API to add widgets to a box of options, for stuff like the paint
mode menu and opacity scale. Set it sensitive automatically and
update its spacings in GtkWidget::style_set().
- new API to get a hbox for "lock" toggles, for stuff like lock
pixels and lock alpha.
This reverts commit d2e1f2ac74. If we
keep the layer group button in 2.7.0 people will expect layer groups
to fully work and get mad when that is not the case. We can enable it
again after the release.
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.
* app/core/gimpimage.[ch]: rename all gimp_image_reposition_foo() to
gimp_image_reorder_foo() and added "new_parent" parameters. Factor
out calculating of the item's new container and index to a utility
function.
* app/core/core-enums.[ch]: rename the REPOSITION undos to REORDER.
* app/core/gimpimage-undo-push.[ch]
* app/core/gimpchannelpropundo.[ch]
* app/core/gimplayerpropundo.[ch]
* app/vectors/gimpvectorspropundo.[ch]: change accordingly. Remember
the old parent item in all item reorder undos.
* app/widgets/gimpitemtreeview.h: change GimpReorderItemFunc prototype
accordingly.
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpvectorstreeview.c (class_init): follow image API
name changes.
* app/widgets/gimpitemtreeview.c (gimp_item_tree_view_drop_viewable):
implement reordering of items between groups.
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_reorder_item): fix to reorder the item
within its level of the tree (unrelated to above changes, but needed
to make them work).
* app/widgets/gimpcontainertreeview-dnd.c
(gimp_container_tree_view_real_drop_possible): support DND within a
tree and make sure a group item is not dropped into itself.
* app/widgets/gimpitemtreeview.c (gimp_item_tree_view_drop_viewable):
implement intra-container reordering within all branches; print a
message for inter-container reordering because that's not yet
implemented in the core.
* app/widgets/gimpcontainerview.h: add "gboolean model_is_tree"
to GimpContainerViewInterface.
* app/widgets/gimpcontainerview.c: default to FALSE and enable the
commented-out optimization in remove_container() for list-only
container views.
* 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.
* app/widgets/gimpcontainerview.[ch]: add and remove container trees
recursively. Change virtual function ::add_item() to pass the
insert_data of the parent viewable.
* app/widgets/gimpcontainercombobox.c
* app/widgets/gimpcontainerentry.c
* app/widgets/gimpcontainergridview.c: changed accordingly.
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c: dito, but actually use the passed
parent_insert_data to insert the item at the right place in the
GtkTreeView.
Factor out large portions of identical code into new utility functions
gimp_container_view_connect_context() and
gimp_container_view_disconnect_context().
Keep around the handler IDs for the "name-changed" signals of the
container's children in a hash table that maps containers to handler
IDs and move adding/removing of the handler to
add_container()/remove_container(). This way the name-changed code is
prepared for handling multiple containers.
In preparation of having a tree of containers, added
gimp_container_view_add_container(),
gimp_container_view_remove_container() and
gimp_container_view_remove_foreach()
which do all the job of inserting/removing items and
connecting/disconnecting the "add", "remove" and "reorder" signals.
Also refactored things so when the toplevel container freezes/thaws,
it simply gets removed from the view instead of ignoring its signals.
gimp_container_view_real_set_container()
gimp_container_view_freeze()
gimp_container_view_thaw(): use the new add_container() and
remove_container() APIs and fix the code for the unlikely case
that a frozen container gets added/removed.
GHashTable has g_hash_table_remove_all() since GLib 2.12, so there is
no need any longer to clear the hash table by destroyung it. Instead,
keep the hash around during the view's entire lifetime and remove all
re-creation code and all checks for its existence.
Don't waste the expander space in all GimpContainerTreeViews. We can
later set it to TRUE in individual subclasses which actually display a
tree and not only a list.
Use gtk_tree_view_get_cell_area() instead of
gtk_tree_view_get_background_area() because the latter includes things
like expanders, indentation and padding and messes up the x coordinate
of our naive click detection.
Don't waste the expander space in all GimpContainerTreeViews. We can
later set it to TRUE in individual subclasses which actually display a
tree and not only a list.
Use gtk_tree_view_get_cell_area() instead of
gtk_tree_view_get_background_area() because the latter includes things
like expanders, indentation and padding and messes up the x coordinate
of our naive click detection.
Rename gimptoolview.[ch] to gimptooleditor.[ch]. The contents of the
file has already gone through this change, we do the file name change
separately for better diffs. Part of fix for bug #500930.
Convert the GimpToolView dockable to a non-dockable GimpToolEditor,
but wait with renaming the file so that we get better diffs. Part of
fix for bug #500930.
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.
* app/widgets/gimplayertreeview.c (gimp_layer_tree_view_layer_clicked):
when ALT is pressed, select the layer's alpha. SHIFT and CONTROL work
as usual to add, subtract and intersect.
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpvectorstreeview.c: add "clicked" handlers here too
and do the same select-on-alt-click thing.
Add a 'Use default comment' button to the Comment tab in Image
Properties that if clicked sets the image comment to the default
comment set in Preferences.
- artificially limit the popup's height again so scrolling gets some testing.
- make sure the scroll buttons' sensitivity is always correct.
- remove obsolete utility function and other cleanups.
- reorder instance struct and add some spacing
- rename member "timeout_id" to "scroll_timeout_id"
- clean up constructor() even more (still the wrong place to
do all these things)
Closing whatever popup by click on dead space within it is a no no,
otherwise one-pixel mis-clicks inside the widget make it go away,
which is totally unexpected.
- artificially limit the popup's height again so scrolling gets some testing.
- make sure the scroll buttons' sensitivity is always correct.
- remove obsolete utility function and other cleanups.
- reorder instance struct and add some spacing
- rename member "timeout_id" to "scroll_timeout_id"
- clean up constructor() even more (still the wrong place to
do all these things)
Closing whatever popup by click on dead space within it is a no no,
otherwise one-pixel mis-clicks inside the widget make it go away,
which is totally unexpected.
Not all actions have procedures associated with them, for example
unused "plug-in-recent-[N]" actions, so check for NULL before we
invoke the plug-in action
* app/widgets/gimptextproxy.c: also swallow the "toggle-overwrite"
signal.
* app/tools/gimpdrawtool. [ch] (gimp_draw_tool_draw_text_cursor): add
"gboolean overwrite" which causes the cursor to be drawn as block.
* app/tools/gimptexttool.[ch]: implement overwriting, toggling it,
and changing the text cursor accordingly.
* app/widgets/gimpwindow.c: treat GimpCanvas as a text widget and
dispatch all key events to it before invoking menu shortcuts.
* app/display/gimpdisplayshell-callbacks.c: treat all events on the
empty display as unhandled, not handled.
* app/tools/gimptexttool.c: use the right API for invoking the proxy
text view's bindings. Handle some more cursor navigation request and
swallow text deletion requests we don't handle instead of always
doing what the delete key does.
Use 0666 as permissions instead of 0644 and let the user's umask care
about restricting, so creating a file with open() behaves the same way
as with fopen().
Check for SHIFT, CONTROL and MOD1 explicitely so the code doesn't prevent
item activation for esoteric modifiers that are set by whatever X
component (like XKB).
Only activate container tree view items when no modifier keys are
pressed so that for example the layer properties dialog is not shown
when quickly toggling a layer mask with Ctrl + Click.
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.
Rename "gimp-image-save-a-copy" key to "gimp-file-save-a-copy-uri"
since the key is more logical to have in the gimp file namespace and
the "-ur"i suffix is more consistent with other similar keys.
2009-03-28 Michael Natterer <mitch@gimp.org>
Bug 555025 – Action GEGL box widgets weirdness
Must not set GDK_HINT_MIN_SIZE if we don't actually set a minimum
size, or the window will be shrinkable to zero and it won't
expand automatically when its contents' requisition grows.
* app/widgets/gimpdialogfactory.[ch]: add hackish API
gimp_dialog_factory_set,get_has_min_size() because GTK+ itself
has no API for querying a window's GdkWindowHints.
(gimp_dialog_factory_set_user_pos): set GDK_HINT_MIN_SIZE only if
the window was being marked as having a minimum size using above
new API.
* app/widgets/gimptoolbox.c (gimp_toolbox_set_geometry)
* app/display/gimpdisplayshell.c (gimp_display_shell_style_set):
call gimp_dialog_factory_set_has_min_size (window, TRUE).
svn path=/trunk/; revision=28224
2009-03-23 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerbox.c: use accessors instead of
scrolled_window->vscrollbar.
svn path=/trunk/; revision=28206
2009-03-23 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcombotagentry.c: use accessors instead of
widget->window and widget->style.
svn path=/trunk/; revision=28205
2009-03-22 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptagentry.c: use "list" as variable name for
iterators to be consistent with the rest of GIMP; various code
cleanups.
svn path=/trunk/; revision=28196
2009-03-22 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/gtkscalebutton.[ch]: remove this evil hack.
* app/widgets/gimpscalebutton.[ch]
* app/widgets/gimppropwidgets.c: minor adjustments so the widget
from GTK+ gets used.
svn path=/trunk/; revision=28194
2009-03-07 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontainercombobox.c
(gimp_container_combo_box_changed): do not attempt to chain up
in
a signal callback.
svn path=/trunk/; revision=28124
2009-03-05 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrendererimagefile.c
(gimp_view_renderer_imagefile_get_icon)
* plug-ins/print/print.c (query): removed GTK+ version checks
that
have become obsolete.
svn path=/trunk/; revision=28111
2009-03-02 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptagentry.c (gimp_tag_entry_expose): use
gtk_paint_layout() instead of fiddling with a PangoRenderer
manually.
svn path=/trunk/; revision=28096
2009-03-02 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptagentry.c (gimp_tag_entry_key_press): allow to
leave the widget with Ctrl+Tab. Handle GDK_KP_Tab and
GDK_ISO_Left_Tab.
svn path=/trunk/; revision=28095
2009-03-02 Michael Natterer <mitch@gimp.org>
* app/core/gimptagged.[ch]: add gimp_tagged_set_tags() which
takes a GList of tags.
* app/widgets/gimptagentry.c (gimp_tag_entry_assign_tags): use it.
(gimp_tag_entry_item_set_tags): remove.
svn path=/trunk/; revision=28094
2009-02-26 Sven Neumann <sven@gimp.org>
* app/gui/gui.c (gui_restore_callback): connect to changes of
the
"user-manual-online" gimprc property and kill the gimp-help
plug-in as it caches the location of the help pages.
* app/widgets/gimphelp.[ch]: added
gimp_help_user_manual_changed()
for this purpose.
svn path=/trunk/; revision=28073
2009-02-12 Michael Natterer <mitch@gimp.org>
Bug 567840 – GIMP's GtkScaleButton conflicts with GTK's
* app/widgets/gtkscalebutton.c: rename the type to
"GimpGtkScaleButton" so we don't crash if the real
GtkScaleButton type is registered too.
svn path=/trunk/; revision=28015
2009-02-09 Michael Natterer <mitch@gimp.org>
Bug 569470 – pls, introduce an option 'how many latest presets for
color curves should be saved'
* app/config/gimprc-blurbs.h
* app/config/gimpguiconfig.[ch]: add integer property
"image-map-tool-max-recent" which defaults to ten. Adding a GUI
for this IMO needs discussion, the value of ten seems appropriate.
* app/widgets/gimpsettingsbox.[ch]
(gimp_settings_box_add_current): add "gint max_recent" parameter
and limit the number of recent settings to this number.
* app/tools/gimpimagemaptool.c (gimp_image_map_tool_response):
pass the new settings property to above function.
svn path=/trunk/; revision=28004
2009-01-24 Michael Natterer <mitch@gimp.org>
Bug 568890 – don't rely on GtkAction implementation details
* app/widgets/gimpuimanager.c (gimp_ui_manager_menu_item_select):
use gtk_widget_get_action() instead of g_object_get_data(),
which relies on the name of the data key.
svn path=/trunk/; revision=27939
2009-01-22 Tor Lillqvist <tml@iki.fi>
Bug 559408 - Brushes dragged to the image window look strange
* app/widgets/gimppixbuf.c (gimp_pixbuf_format_compare): Drop
Windows-specific code to prefer BMP. The BMP format written by
gdk-pixbuf doesn't support alpha. PNG is better. Note that the
same bug report also takes up a different problem.
svn path=/trunk/; revision=27928
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-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcombotagentry.c
(gimp_combo_tag_entry_constructor): connect to entry->container's
signals with g_signal_connect_object() so the entry can be
destroyed without warning/crashing.
svn path=/trunk/; revision=27895
* 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
Merge the rest of the tagging code developed on the tagging branch
by Aurimas Juška. Development will now continue in trunk.
* app/core/gimptag.[ch]: New files (not strictly true but almost)
implementing the represention of a tag.
* app/core/gimptagcache.[ch]: New files implementing functionality
for loading and saving tags to tags.xml, and assigning loaded tags
to tagged objects.
* app/core/gimpfilteredcontainer.[ch]: New files implementing a
tag filtered GimpContainer.
* app/widgets/gimptagentry.[ch]: New files implementing a
GtkEntry-like widget for entering tags.
* app/widgets/gimpcombotagentry.[ch]: New files implementing a
combobox-like widget for selecting tags.
* app/widgets/gimptagpopup.[ch]: New files implementing a popup of
all available tags that can be selected and combined in a
checkbox-like way.
* app/core/gimp.[ch]: Add a GimpTagCache member and manage tag
assignment and saving and loading to/from tags.xml.
* app/widgets/gimpdatafactoryview.c: Add the tag query and tag
assignment widgets to the UI and show the tag filtered items
instead of all items.
* app/core/Makefile.am
* app/widgets/Makefile.am: Add new files.
* app/core/core-types.h
* app/widgets/widgets-types.h: Add new types.
svn path=/trunk/; revision=27816
Partial merge of code from Aurimas Juška.
* app/widgets/gimpbrushfactoryview.c: Use the same method for
getting the GimpContainer both when adding and when removing the
spacing-changed handler. It was just a coincidence that the
previously different methods retured the same GimpContainer.
svn path=/trunk/; revision=27815
* 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
* 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-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-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 Sven Neumann <sven@gimp.org>
* app/widgets/gimpactiongroup.c: check that the action name is
unique before adding it to a GimpActionGroup.
svn path=/trunk/; revision=27751
2008-11-21 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrenderervectors.c
(gimp_view_renderer_vectors_draw): inlined local variables that
are only used once.
svn path=/trunk/; revision=27703
* app/widgets/gimpcontainertreeview.[ch]
* app/widgets/gimpcontainertreeview-private.h: Make the
renderer_cells and toggle_cells members private.
(gimp_container_tree_view_set_main_column_title)
(gimp_container_tree_view_prepend_toggle_cell_renderer)
(gimp_container_tree_view_prepend_cell_renderer): New interface.
* app/widgets/gimptoolview.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpcontrollerlist.c: Use new interface.
svn path=/trunk/; revision=27675
* app/widgets/gimpcontainertreeview.[ch]: Move container tree view
model column enums here and call the last enum _N_COLUMNS.
* app/widgets/widgets-enums.h: Remove the enum. It was meant only
for the container tree view class hierarchy anyway.
svn path=/trunk/; revision=27672
* app/widgets/gimpcontainertreeview.[ch]
(gimp_container_tree_view_set_dnd_drop_to_empty): New setter
function so that we can make the "gboolean dnd_drop_to_empty"
class instance member private.
* app/widgets/gimpcontainertreeview-private.h: Move member here.
* app/widgets/gimpcontainertreeview-dnd.c: Go through priv pointer.
* app/widgets/gimpitemtreeview.c (gimp_item_tree_view_init): Use
the new function.
svn path=/trunk/; revision=27671
* app/widgets/widgets-enums.h: Put the GimpContainerTreeView enums
here instead of exposing them through silly class instance
members.
* app/widgets/gimpcontainertreeview.c:
* app/widgets/gimpcontainertreeview-dnd.c
* app/widgets/gimpdatafactoryview.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpsettingseditor.c
* app/widgets/gimptemplateview.c
* app/widgets/gimptoolview.c: Clean up and use new enum names.
svn path=/trunk/; revision=27666
* app/widgets/gimpcontainertreeview.[ch]: Don't expose class
instance struct members that is currently only used within the
GimpContainerTreeView implementation.
* app/widgets/gimpcontainertreeview-private.h: New file containing
the definition of the private struct.
* app/widgets/gimpcontainertreeview-dnd.c: Change accordingly.
* app/widgets/Makefile.am: Add new file.
svn path=/trunk/; revision=27662
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
* app/widgets/gimpcursorview.[ch]: Don't expose implementation
details, introduce internal helper functions, and make coordinates
outside the image be represented with an italic font instead of
enclosed in parenthesis.
svn path=/trunk/; revision=27578
2008-11-06 Sven Neumann <sven@gimp.org>
* tools/gimp-mkenums: use NC_() to mark enum values for
translation.
Use a lower-case short form of the type name as translation
context.
* libgimp/libgimp-intl.h: define the NC_() macro as noop.
* libgimpbase/gimpbasetypes.[ch]
* libgimpbase/gimpbase.def: added new functions to set and
get a translation context on an enum type.
* app/base/Makefile.am
* app/core/Makefile.am
* app/display/Makefile.am
* app/paint/Makefile.am
* app/plug-in/Makefile.am
* app/text/Makefile.am
* app/tools/Makefile.am
* app/widgets/Makefile.am
* libgimp/Makefile.am
* libgimpbase/Makefile.am:
* libgimpconfig/Makefile.am
* libgimpthumb/Makefile.am
* libgimpwidgets/Makefile.am: register the translation context
with the enum types.
* app/display/display-enums.h
* libgimpbase/gimpbaseenums.h
* libgimpconfig/gimpcolorconfig-enums.h: removed old-style
explicit
translation context.
* app/base/base-enums.c
* app/core/core-enums.c
* app/display/display-enums.c
* app/paint/paint-enums.c
* app/plug-in/plug-in-enums.c
* app/text/text-enums.c
* app/tools/tools-enums.c
* app/widgets/widgets-enums.c
* libgimpbase/gimpbaseenums.c
* libgimpconfig/gimpcolorconfig-enums.c
* libgimpwidgets/gimpwidgetsenums.c: regenerated.
svn path=/trunk/; revision=27562
* app/widgets/gimpwidgets-constructors.c
(gimp_paint_mode_menu_new): Arrange layer modes into more logical
and useful groups.
svn path=/trunk/; revision=27540
2008-11-02 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.[ch]: add new functions
gimp_image_get_layer_iter(), channel_iter() and vectors_iter()
which return the GList inside the resp. GimpList.
* app/actions/channels-actions.c
* app/actions/layers-actions.c
* app/actions/vectors-actions.c
* app/core/gimpimage-convert.c
* app/core/gimpimage-crop.c
* app/core/gimpimage-duplicate.c
* app/core/gimpimage-flip.c
* app/core/gimpimage-item-list.c
* app/core/gimpimage-merge.c
* app/core/gimpimage-resize.c
* app/core/gimpimage-rotate.c
* app/core/gimpimage-scale.c
* app/core/gimpimage.c
* app/core/gimpimage.h
* app/core/gimpprojection-construct.c
* app/display/gimpdisplayshell-draw.c
* app/file/file-open.c
* app/tools/gimpaligntool.c
* app/tools/gimpdrawtool.c
* app/vectors/gimpvectors-compat.c
* app/vectors/gimpvectors-export.c
* app/widgets/gimplayertreeview.c
* app/xcf/xcf-save.c
* tools/pdbgen/pdb/image.pdb: use the new functions instead of
peeking both into the image and the list. Remove inclusions of
"gimplist.h" or change them into "gimpcontainer.h" if needed.
* app/pdb/image-cmds.c: regenerated.
svn path=/trunk/; revision=27524
2008-10-31 Sven Neumann <sven@gimp.org>
Bug 558660 – help behavior for locales without manual
translation
* app/widgets/gimphelp.c (gimp_help_user_manual_is_installed):
as a fallback check for the english user manual.
svn path=/trunk/; revision=27500
2008-10-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpstrokeeditor.c: move the "Antialias" toggle from
here...
* app/widgets/gimpfilleditor.c: ...to here because it makes sense
for both filling and stroking.
svn path=/trunk/; revision=27458
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-26 Michael Natterer <mitch@gimp.org>
Merge on-canvas GSoC project:
* configure.in: check for pangocairo.
* app/Makefile.am
* app/text/Makefile.am: add its CFLAGS and LIBS.
* app/text/gimptext-bitmap.[ch]
* app/text/gimptext-private.h
* app/text/gimptext-vectors.[ch]
* app/text/gimptextlayer.c
* app/text/gimptextlayout-render.c
* app/text/gimptextlayout.c: port to pangocairo.
* menus/Makefile.am
* menus/text-tool-menu.xml
* app/menus/menus.c
* app/actions/Makefile.am
* app/actions/actions.c
* app/actions/text-tool-actions.[ch]
* app/actions/text-tool-commands.[ch]: add a context menu for the
text tool similar to GtkEntry's context menu.
* app/tools/gimprectangletool.[ch]: add "narrow-mode" property.
* app/tools/gimptextoptions.[ch]
* app/widgets/gimptexteditor.[ch]: take a text buffer for the
standalone text editor window instead of creating one internally.
* app/tools/gimptexttool.[ch]: all the new wonderful on-canvas
text editing logic. Wheee!
svn path=/trunk/; revision=27419
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-24 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpfilleditor.[ch]: new widget factored out of
GimpStrokeEditor.
* app/widgets/gimpstrokeeditor.[ch]: derive from GimpFillEditor
and remove UI for the properties of GimpFillOptions.
svn path=/trunk/; revision=27390
2008-10-24 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdialogfactory.c
(gimp_dialog_factories_toggle):
to be on the safe side, always show hidden dialogs when the Tab
key is used. It should not be possible to get a Tab key-press
while all displays are iconified, but you never know ...
svn path=/trunk/; revision=27385
2008-10-24 Sven Neumann <sven@gimp.org>
Bug 556896 – Dialogs don't get minimized with single image
window
* app/widgets/gimpdialogfactory.[ch]: renamed the new methods to
gimp_dialog_factories_{show|hide}_with_display().
Remember if the dialogs were hidden using
gimp_dialog_factories_hide_with_display() or using
gimp_dialog_factories_toggle() and keep this into account when
making them visible again. This ensures that dialogs that were
hidden using the Tab key won't be shown when the image window is
uniconified.
* app/display/gimpdisplayshell.c
(gimp_display_shell_window_state_event): changed accordingly.
svn path=/trunk/; revision=27384
2008-10-23 Sven Neumann <sven@gimp.org>
Bug 556896 – Dialogs don't get minimized with single image
window
* app/display/gimpdisplay-foreach.[ch]: added utility function
to
get the number of visible (not withdrawn or iconified) displays.
* app/widgets/gimpdialogfactory.[ch]: added functions to hide
and
show the dock windows. Changed gimp_dialog_factories_toggle() to
use the new functions.
* app/display/gimpdisplayshell.c
(gimp_display_shell_window_state_event): hide the docks if the
last display is iconified. Unhide them if a display is
uniconified. Probably needs more work ...
svn path=/trunk/; revision=27374
2008-10-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpprogressbox.c: set box->progress to NULL in
destroy() and check for progress being NULL in various places so
we don't crash on API calls after the widget is destroyed.
svn path=/trunk/; revision=27362
2008-10-22 Sven Neumann <sven@gimp.org>
Bug 555246 – gimp crashes when a file is opened while a preview
is
generating
* app/widgets/gimpthumbbox.c: set box->progress to NULL in
destroy() and check for progress being NULL in various places so
we don't crash on API calls after the widget is destroyed.
svn path=/trunk/; revision=27360
2008-10-21 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.c: set dialog->progress to NULL in
destroy() and check for progress being NULL in various places so
we don't crash on API calls after the widget is destroyed.
svn path=/trunk/; revision=27354
2008-10-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimperrorconsole.c (gimp_error_console_init):
don't
make the font size even smaller. We already use a smaller font
in
the dock windows.
svn path=/trunk/; revision=27341
2008-10-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimpgradienteditor.c (view_events)
(control_events):
use pointer coordinates from the passed event instead of calling
gtk_widget_get_pointer().
svn path=/trunk/; revision=27340
2008-10-16 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrenderervectors.c
(gimp_view_renderer_vectors_draw): just some cleanup.
svn path=/trunk/; revision=27293
2008-10-14 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdialogfactory.c
(gimp_dialog_factory_add_dialog):
let new docks appear at the pointer position.
svn path=/trunk/; revision=27282
* app/widgets/gimpdockseparator.c (gimp_dock_separator_new): Add a
GtkAnchorType member to GimpDockSeparator that specifies where a
dropped dockable shall be inserted.
(gimp_dock_separator_drag_drop): Get rid of the ugly hack where
the role of a given separator was based on its position as a child
in its container. Simply decide what role the separator has by
loooking at its anchor-member.
* app/widgets/gimpdock.c (gimp_dock_init)
(gimp_dock_add_book): Give the GimpDockSeparators their
appropriate roles directly at their construction.
svn path=/trunk/; revision=27218
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 Michael Natterer <mitch@gimp.org>
Remove the last code duplication from the undo system (or if not
the last then at least the most ugly):
* app/core/gimpimage.[ch] (gimp_image_add_layer,channel,vectors):
add "gboolean push_undo" parameter and add the item without
touching undo if it's TRUE. Changed assertions from
g_object_is_floating() to !gimp_item_is_attached() so they also
take items from the undo stack and not only newly created ones.
(gimp_image_remove_layer,channel,vectors): add "push_undo"
parameter here too. Also add a "new_active" parameter where an
optional new active item can be passed.
(gimp_image_remove_layer,channel): these functions must not be
called with push_undo=FALSE and a floating selection attached to
the layer/channel. This can't currently happen; added warnings in
case other code is changed and makes it happen anyway.
* app/core/gimpchannelundo.c
* app/core/gimplayerundo.c
* app/vectors/gimpvectorsundo.c: use above functions to add/remove
items instead of duplicating (parts of) their code. Pass
push_undo=FALSE and the previously active item to the remove()
functions.
* app/actions/channels-commands.c
* app/actions/edit-commands.c
* app/actions/layers-commands.c
* app/actions/vectors-commands.c
* app/core/gimp-edit.c
* app/core/gimpchannelundo.c
* app/core/gimpimage-crop.c
* app/core/gimpimage-duplicate.c
* app/core/gimpimage-merge.c
* app/core/gimpimage-quick-mask.c
* app/core/gimpimage-scale.c
* app/core/gimplayer-floating-sel.c
* app/core/gimplayerundo.c
* app/core/gimpselection.c
* app/core/gimptemplate.c
* app/display/gimpdisplayshell-dnd.c
* app/text/gimptext-compat.c
* app/tools/gimptexttool.c
* app/tools/gimpvectortool.c
* app/vectors/gimpvectors-import.c
* app/vectors/gimpvectorsundo.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpitemtreeview.[ch]
* app/widgets/gimplayertreeview.c
* app/widgets/gimptoolbox-dnd.c
* app/widgets/gimpvectorstreeview.c
* app/xcf/xcf-load.c
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/paths.pdb: changed accordingly (pass TRUE
unless it's a new image like when loading and XCF file).
* app/pdb/image-cmds.c
* app/pdb/paths-cmds.c: regenerated.
svn path=/trunk/; revision=27200
2008-10-09 Michael Natterer <mitch@gimp.org>
Bug 134956 – Curves tool doesn't save free curves
* app/core/gimpmarshal.list
* app/widgets/gimpsettingsbox.[ch]: add signal "file-dialog-setup"
and emit it when the export/import file chooser is fully
constructed. Callbacks can then do additional things to the
dialog, like adding custom buttons.
* app/tools/gimpcurvestool.h
* app/tools/gimplevelstool.h: add boolean member
"export_old_format".
* app/tools/gimpcurvestool.c
* app/tools/gimplevelstool.c (gimp_*_tool_dialog): connect to
the settings box' "file-dialog-setup".
(gimp_*_tool_export_setup): new callback which adds a toggle to
the file choosers that allows to export to the old format.
Default saving the new format, we defaulted to the old one before.
(gimp_*_tool_settings_export): check the "export_old_format"
boolean and only save the cruft format if it is TRUE; chain up
otherwise, which generically saves the new format.
* app/tools/gimplevelstool.c (gimp_levels_tool_settings_import):
add the same file format detection code as in the curves tool
so it transparently loads old and new levels files.
svn path=/trunk/; revision=27194
2008-10-07 Michael Natterer <mitch@gimp.org>
Bug 555362 – gimp-remote is not working properly
* app/widgets/gimptoolbox-dnd.c (gimp_toolbox_dnd_init): add the
window itself as drop traget again so gimp-remote works.
svn path=/trunk/; revision=27164
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-10-02 Michael Natterer <mitch@gimp.org>
Bug 554646 – Opening Help crashes GIMP with lqr-plugin installed
* app/widgets/gimphelp.c (gimp_help_get_help_domains): need to
assign (*foo)[i] and not *foo[i] of a gchar** returned via return
value location.
svn path=/trunk/; revision=27113
2008-10-01 Tor Lillqvist <tml@novell.com>
* app/widgets/gtkscalebutton.c: : Don't #define _GNU_SOURCE on
Windows as it confuses newest mingw headers.
svn path=/trunk/; revision=27097
2008-09-30 Sven Neumann <sven@gimp.org>
* app/widgets/gimpwidgets-utils.[ch]: added
gimp_pango_layout_set_scale().
* app/gui/splash.c: set a smaller font size on the lower label.
svn path=/trunk/; revision=27088
2008-09-30 Sven Neumann <sven@gimp.org>
* app/widgets/gimpwidgets-utils.c
(gimp_pango_layout_set_weight):
actually use the passed weight.
svn path=/trunk/; revision=27087
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-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdialogfactory.c
(gimp_dialog_factories_show_foreach)
(gimp_dialog_factories_hide_foreach): remove some casts that were
always useless and are even more useless now after the recent
readability improvement.
svn path=/trunk/; revision=27075
2008-09-24 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollereditor.c
(gimp_controller_editor_edit_response): call
gimp_controller_editor_sel_changed() with the right
GtkTreeSelection object (the editor's, not the action
list's). Fixes crash upon selecting an action for a controller
event. Spotted by Alexander Rabtchevich.
svn path=/trunk/; revision=27041
2008-09-23 Sven Neumann <sven@gimp.org>
Move the "Use GEGL" check-box to the Colors menu (bug #548760):
* app/actions/Makefile.am
* app/actions/config-actions.[ch]
* app/actions/config-commands.[ch]: new files holding the
"config"
action group that includes the "use-gegl" toggle action.
* app/actions/debug-actions.c
* app/actions/debug-commands.[ch]: removed the "use-gegl"
action
here.
* app/menus/menus.c
* app/actions/actions.c: added the new action group.
* app/widgets/gimphelp-ids.h: added a help ID for the
"use-gegl"
action.
* menus/image-menu.xml.in: moved the "Use GEGL" check-box to
the
Colors menu.
svn path=/trunk/; revision=27035
2008-09-21 Sven Neumann <sven@gimp.org>
* app/actions/windows-actions.c: don't set a help ID on the
display menu items.
* app/widgets/gimphelp-ids.h: removed now unused help ID.
* app/menus/windows-menu.c: show a larger image preview in the
tooltip.
svn path=/trunk/; revision=27028
2008-09-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdock.c (gimp_dock_style_set): reset the RC
styles of the dock's children after parsing the RC file snippet
for them. Fixes font size for detached dockables.
svn path=/trunk/; revision=26992
2008-09-18 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdock.c: made the font scale factor for the
docks
configurable in gtkrc.
* themes/Default/gtkrc
* themes/Small/gtkrc: for documentation purposes, added the
default value for GimpDock::font-scale here. Changed all style
property names to use the canonical names.
svn path=/trunk/; revision=26988
2008-09-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpactionview.c: factor out function that selects a
path and scrolls to that path. Keep the selected path visible if
it is still there after filtering.
svn path=/trunk/; revision=26914
* app/widgets/gimpnavigationview.c
(gimp_navigation_view_set_marker): Invalidating the view renderer
is just plain wrong, revert to redrawing the view. We will need to
solve the flicker in some other way.
svn path=/trunk/; revision=26894
2008-09-05 Michael Natterer <mitch@gimp.org>
Bug 545325 – Scrollbars do not disappear automatically
* app/widgets/gimpcontainertreeview.c: autosize the columns after
each operation that can reduce the treeview's width.
svn path=/trunk/; revision=26875
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 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-09-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpnavigationview.c
(gimp_navigation_view_motion_notify): remove the call to
gdk_window_get_pointer() again.
(gimp_navigation_view_grab_pointer): instead, grab the pointer
properly with owner_events=FALSE so all events are reported with
respect to the widget's window.
svn path=/trunk/; revision=26844
2008-09-02 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpselectiondata.c: no need to set strlen(sting)+1
bytes on the GtkSelectionData because gtk_selection_data_set()
zero-terminates all data anyway.
svn path=/trunk/; revision=26835
2008-09-02 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpselectiondata.c (gimp_selection_data_get_name):
return a const string, no need to strdup it since it's only used
temporarily in this file.
(gimp_selection_data_get_image)
(gimp_selection_data_get_component)
(gimp_selection_data_get_item)
(gimp_selection_data_get_object): changed accordingly. Move
variables to local scopes and simplify.
svn path=/trunk/; revision=26834
2008-08-28 Sven Neumann <sven@gimp.org>
* app/config/gimpguiconfig.[ch]: allow to disable the Wilber
image
shown at the top of the toolbox.
* app/widgets/gimptoolbox.c: honor the new gimprc option.
* app/config/gimprc-blurbs.h: document the old and new toolbox
preferences.
svn path=/trunk/; revision=26800
2008-08-27 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpuimanager.c (gimp_ui_manager_item_key_press):
try the find_widget_under_pointer() hack only if the menu item's
parent is really a GtkMenu (not a GtkMenuBar). Fixes crash spotted
by rubikcube.
svn path=/trunk/; revision=26796
2008-08-24 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gimpnavigationview.c
(gimp_navigation_view_draw_marker): Use a define for border width.
svn path=/trunk/; revision=26738
2008-08-24 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gimpnavigationview.c
(gimp_navigation_view_set_marker): Don't redraw the view, only
invalidate it. This causes the redraw to occur in an idle-handler
intead of each time this function is called, which reduces flicker
when opening new images. Stil some flicker left though...
svn path=/trunk/; revision=26737
2008-08-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpnavigationview.c
* libgimpwidgets/gimpscrolledpreview.c: hardcode the colors to
black and white. Using theme colors doesn't make sense here.
svn path=/trunk/; revision=26719
2008-08-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpnavigationview.c: indicate the viewport by
shading the outside region using Cairo.
svn path=/trunk/; revision=26716
2008-08-22 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gimpnavigationview.c
(gimp_navigation_view_grab_pointer): Don't confine the cursor to
the navigation view window because that limitation only feels in
the way with overscroll.
svn path=/trunk/; revision=26714
2008-08-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimptoolbox.c: removed the "Use GEGL" check-box
from the toolbox.
* app/config/gimpcoreconfig.c: changed the default for
"use-gegl"
to FALSE (in preparation of the 2.6 release).
* app/actions/debug-commands.[ch]
* app/actions/debug-actions.c
* menus/image-menu.xml.in: added a "Use GEGL" check-box to the
Debug menu. Temporary solution until a final decision is made.
svn path=/trunk/; revision=26711
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-22 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gimpnavigationview.c: Adapted to play nicely with
the overscroll feature. Basically remove limitations of the
marker, but also draw the marker frame with an inner and outer
border so it is possible to see on what side the viewport is when
zoomed out and overscrolled to the max. This is further work on
bug #362915.
svn path=/trunk/; revision=26709
2008-08-20 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpuimanager.c: reindent prototypes.
Steal find_widget_under_pointer() from gtktooltip.c
(gimp_ui_manager_item_key_press): use the function to invoke help
for the widget under the pointer if there is no selected menu
item. Makes F1 work on insensitive menu items.
svn path=/trunk/; revision=26684
2008-08-12 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogrameditor.c
(gimp_histogram_editor_frozen_update): don't do the background
histogram unless the histogram view is actually visible.
svn path=/trunk/; revision=26523
2008-08-07 Sven Neumann <sven@gimp.org>
* app/actions/layers-actions.c
* app/actions/layers-commands.[ch]: added new action
"layers-new-from-visible".
* app/widgets/gimphelp-ids.h: added new help-id.
* menus/layers-menu.xml
* menus/image-menu.xml.in: added the new action.
* app/actions/edit-actions.c: improved the blurb for
"edit-copy-visible".
svn path=/trunk/; revision=26421
2008-07-23 Sven Neumann <sven@gimp.org>
* app/widgets/gimpsessioninfo.c
(gimp_session_info_get_geometry):
don't report negative offsets, they would be interpreted
wrongly.
svn path=/trunk/; revision=26292
2008-07-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcellrendererviewable.c: no need to cast the
return value of g_value_dup_object().
svn path=/trunk/; revision=26279
2008-07-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpsessioninfo-aux.c
(gimp_session_info_aux_new_from_props): plugged memory leak.
2008-07-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogramview.c
(gimp_histogram_view_set_background): fixed refcounting issue.
This plugs the memory leak I tried to fix in
GimpHistogramEditor.
svn path=/trunk/; revision=26271
2008-07-22 Sven Neumann <sven@gimp.org>
* app/base/gimphistogram.[ch]: added new method
gimp_histogram_duplicate().
* app/widgets/gimphistogrameditor.c
(gimp_histogram_editor_frozen_update): instead of recalculating
the histogram, use a duplicate for the background histogram.
svn path=/trunk/; revision=26270
2008-07-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogrameditor.c
(gimp_histogram_editor_set_image):
reverted last change, it did not plug the leak.
svn path=/trunk/; revision=26269
2008-07-21 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogrameditor.c
(gimp_histogram_editor_set_image): always unset and ref the
histograms. Plugs a memory leak reported by valgrind.
svn path=/trunk/; revision=26263
2008-07-19 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gimpnavigationview.[ch]: Don't expose implementation
details and extend the interface with trivial new functions.
* app/display/gimpnavigationeditor.c
(gimp_navigation_editor_popup): Use the new interface instead of
directly accessing the members of the navigation view.
svn path=/trunk/; revision=26236
2008-07-14 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontrollerkeyboard.c: changed cursor key event
prefix from "key-" to "cursor-".
* etc/controllerrc: changed accordingly. Also removed default
bindings for cursor keys without modifiers as many tools use the
cursor keys already.
svn path=/trunk/; revision=26188
2008-07-13 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/gimpdbusservice.[ch]
* app/widgets/dbus-service.xml: removed here ...
* app/gui/Makefile.am
* app/gui/gimpdbusservice.[ch]
* app/gui/dbus-service.xml: ... and moved here.
(gimp_dbus_service_activate): raise the first display instead of
the toolbox.
* app/gui/gui-unique.c (gui_unique_win32_idle_open): same change
here, raise the display instead of the toolbox.
* app/unique.c: changed accordingly.
svn path=/trunk/; revision=26184
2008-07-12 Martin Nordholts <martinn@svn.gnome.org>
* app/core/gimpmarshal.list: Added
VOID__DOUBLE_DOUBLE_DOUBLE_DOUBLE marshaller.
* app/widgets/gimpnavigationview.c: Make the "marker-changed"
signal also pass the marker width and height as parameters.
* app/display/gimpnavigationeditor.c: Updated accordingly.
svn path=/trunk/; revision=26160
2008-07-10 Sven Neumann <sven@gimp.org>
* app/widgets/gimphelp.c: some changes to the dialog that is
shown
if the help browser is missing.
svn path=/trunk/; revision=26104
2008-07-07 Sven Neumann <sven@gimp.org>
* app/widgets/gimphelp.c (gimp_help_query_user_manual_online):
command button labels should be capitalized in header style.
svn path=/trunk/; revision=26080
2008-07-06 Sven Neumann <sven@gimp.org>
* app/widgets/gimphelp.c: if the user asks for help and the user
manual is not locally installed, show a dialog that allows to
change the preferences so that the online version is used.
svn path=/trunk/; revision=26074
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-07-03 Sven Neumann <sven@gimp.org>
* app/widgets/gimpsettingsbox.c (gimp_settings_box_constructor)
* app/widgets/gimpsettingseditor.c (gimp_settings_editor_constructor):
removed trailing period from tooltip texts.
* app/config/gimprc-blurbs.h: don't mark USER_MANUAL_ONLINE_BLURB
for translation, it is not used in the user interface.
svn path=/trunk/; revision=26042
2008-06-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpviewrendererimagefile.c
(gimp_view_renderer_imagefile_get_icon): add widget parameter so
we can get the right icon theme for the screen. If building
against GTK+ >= 2.13.4, use GFile to get proper file type icons.
(gimp_view_renderer_imagefile_render): pass the widget.
(get_icon_fallback): remove this unused function.
svn path=/trunk/; revision=26015
2008-06-28 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gtkscalebutton.h: Remove uses of GSEAL macro to make
the thing compile on systems without bleeding edge GTK+.
svn path=/trunk/; revision=26014
2008-06-28 Michael Natterer <mitch@gimp.org>
This is completely evil:
* app/widgets/Makefile.am
* app/widgets/gimpscalebutton.[ch]: copy GtkScaleButton from GTK+
upstream trunk and hack around until symbol conflicts are gone
and it builds.
* app/widgets/gimppropwidgets.c
* app/widgets/gtkscalebutton.[ch]: use the hacked version instead
of the one from GTK+. Set the orientation to horizontal.
svn path=/trunk/; revision=26013
2008-06-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.[ch]: add new function
gimp_container_tree_view_connect_name_edited() which makes the
name cell editable and connects a passed "edited" callback.
* app/widgets/gimpdatafactoryview.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimpsettingseditor.c
* app/widgets/gimptemplateview.c: use it instead of having the
same code four times.
svn path=/trunk/; revision=26009
2008-06-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimplanguagestore-parser.c: include
"libgimpbase/gimpbase.h" instead of "libgimpbase/gimpenv.h".
svn path=/trunk/; revision=26004
2008-06-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdbusservice.c: eek, include "gimpuimanager.h"
not "gimpuimanager.c".
svn path=/trunk/; revision=26003
2008-06-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpaction.c (gimp_action_set_proxy): simplify the
logic of setting "color" or "viewable" previews on menuitems.
svn path=/trunk/; revision=25999
2008-06-26 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpscalebutton.c (gimp_scale_button_init): hide the
popup's plus and minus buttons, they are completely pointless.
svn path=/trunk/; revision=25993
2008-06-25 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpsettingsbox.c: make sure the file dialog goes
away when the settings box' toplevel is hidden. Set the
alternative button order on the file dialog.
svn path=/trunk/; revision=25992
2008-06-25 Michael Natterer <mitch@gimp.org>
* app/core/gimpmarshal.list: add marshaller BOOLEAN__STRING for
the change below.
* app/widgets/gimpsettingsbox.[ch]: add the import/export dialogs
here. Add a bunch of parameters to new() to be used by the
dialogs, they are not properties yet. Changed import() and
export() signals to pass the selected filename and return a
boolean indicating success.
* app/tools/gimpimagemaptool-settings.c: remove the dialog code
here and connect the import/export functions directly to above
GimpSettingsBox signals.
* app/tools/gimpimagemaptool.[ch]: remove file dialog member.
svn path=/trunk/; revision=25991
2008-06-25 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpsettingseditor.c
(gimp_settings_editor_delete_clicked): select a neighboring item
after deleting the selected one.
svn path=/trunk/; revision=25986
2008-06-25 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpsettingseditor.[ch]: add dummy import and export
buttons, give the list a minimum size.
* app/widgets/gimpsettingsbox.c: use the correct dialog border.
svn path=/trunk/; revision=25985
2008-06-25 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpsettingsbox.c (gimp_settings_box_constructor):
tweak buttons to look the same and have no spacing between them.
svn path=/trunk/; revision=25984
2008-06-25 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpsettingsbox.c (gimp_settings_box_constructor):
move "Add to favorites" out of the menu into a small button
showing a '+' icon. Add a separator between the import/export and
the manage menu items.
svn path=/trunk/; revision=25983
2008-06-24 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpsettingseditor.[ch]: enable renaming the
settings objects by editing them directly in the list (renaming a
recent setting moves it to the favorites section). Enable deleting
settings. None of these changes is saved yet (need to trigger a
save by confirming the tool or storing the current settings as
favorite).
svn path=/trunk/; revision=25982
2008-06-24 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainercombobox.[ch]: made the model column
enum public and namespaced it.
* app/widgets/gimpsettingsbox.c: use the enum value instead of a
magic number.
* app/widgets/gimpsettingseditor.c: add a separator between
recently used settings and favorites.
svn path=/trunk/; revision=25979
2008-06-22 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpsettingseditor.[ch]: skeleton of a widget to
manage the list of saved settings for the image map tools. Does
absolutely nothing yet apart from displaying the list of settings.
* app/widgets/gimpsettingsbox.[ch]: add "Manage Settings" menu item
and show a dialog containing the new widget.
svn path=/trunk/; revision=25977
2008-06-13 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpsettingsbox.[ch]: new widget containing the
combo and menu button for the image map tool settings plus most of
their logic. Has "import" and "export" signals that might go away
if I figure a way to nicely abstract that. Contains some minor
bugfixes and cosmetic improvements compared to the old code.
* app/tools/gimpimagemaptool.[ch]
* app/tools/gimpimagemaptool-settings.[ch]: changed accordingly,
mostly removal of lots of code that is now in the widget.
svn path=/trunk/; revision=25943
2008-06-12 Sven Neumann <sven@gimp.org>
Added basic support for using the online user manual:
* app/widgets/gimphelp.c
* plug-ins/help/gimphelp.c: moved some help logic to the core.
The
default help domain is now constructed in the core and passed to
the help plug-ins just like the plug-in help domains.
* app/config/Makefile.am
* app/config/gimprc-blurbs.h
* app/config/gimpguiconfig.[ch]: added gimprc properties to
specify the location of the online user manual and to decide if
it
should be used instead of a locally installed copy.
svn path=/trunk/; revision=25938
2008-06-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpthumbbox.c (gimp_thumb_box_new): don't set a
width request on the info label. It broke horizontal label
positioning and didn't serve any purpose I can remember.
svn path=/trunk/; revision=25911
2008-06-03 Sven Neumann <sven@gimp.org>
* app/widgets/widgets-enums.[ch]: changed descriptions for
GimpHistogramScale enum.
* app/tools/gimpimagemaptool.[ch]
* app/tools/gimpimagemaptool-settings.c: added a GtkSizeGroup for
aligning with the "Presets" label. Added an accessor for the
dialog's vbox.
* app/tools/gimpbrightnesscontrasttool.c
* app/tools/gimpcolorbalancetool.c
* app/tools/gimpcolorizetool.c
* app/tools/gimpcurvestool.c
* app/tools/gimpdesaturatetool.c
* app/tools/gimpgegltool.c
* app/tools/gimphuesaturationtool.c
* app/tools/gimplevelstool.c
* app/tools/gimpposterizetool.c
* app/tools/gimpthresholdtool.c: use the new accessor. Minor
dialog cleanups in a few places.
svn path=/trunk/; revision=25884
2008-05-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimpscalebutton.c (gimp_scale_button_image_expose):
rotated the button graphics and fixed it for 'right-to-left'
rendering.
svn path=/trunk/; revision=25825
2008-05-26 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpscalebutton.c (gimp_scale_button_new): use
GTK_ICON_SIZE_MENU for the scale button.
svn path=/trunk/; revision=25817
2008-05-26 Sven Neumann <sven@gimp.org>
* app/widgets/gimppropwidgets.c
* app/widgets/gimpscalebutton.[ch]: some fiddling to get the step
and page sizes right.
svn path=/trunk/; revision=25810
2008-05-24 Martin Nordholts <martinn@svn.gnome.org>
Kill the Polygon Select Tool. The Free Select Tool now provides a
superset of the old Polygon Select Tool functionality. We still
keep the tool icons etc around though, they might come in useful
in the future.
* app/tools/gimppolygonselecttool.[ch]: Removed.
* app/tools/Makefile.am: Removed gimppolygonselecttool.[ch].
* app/tools/gimp-tools.c (gimp_tools_init): Don't register the
Polygon Select Tool.
* app/widgets/gimphelp-ids.h: Remove
GIMP_HELP_TOOL_POLYGON_SELECT.
svn path=/trunk/; revision=25783
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-20 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/gimptoggleaction.[ch]
* app/widgets/gimpradioaction.[ch]: added new action types derived
from GtkToggleAction and GtkRadioAction. These types override the
"connect_proxy" method to enable tooltips in menus.
* app/widgets/gimpactiongroup.c: use the new action types.
* app/actions/dockable-actions.c: added a tooltip for the
"dockable-lock-tab" action.
svn path=/trunk/; revision=25717
2008-05-19 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockable.[ch]
* app/widgets/gimpdockbook.[ch]: added a "locked" propery to
GimpDockable. A locked dockable cannot be moved by drag-n-drop.
Allows users to protect their dockables from accidental changes,
mainly when working with a tablet.
* app/widgets/gimpsessioninfo-dockable.[ch]: store the "locked"
property in the session info.
* app/actions/dockable-actions.c
* app/actions/dockable-commands.[ch]: added an action for
toggling
the "locked" state.
* app/widgets/gimphelp-ids.h: new help-id "gimp-dock-tab-lock".
* menus/dockable-menu.xml.in: show the new menu item.
* app/actions/plug-in-actions.c: formatting.
svn path=/trunk/; revision=25715
2008-05-18 Michael Natterer <mitch@gimp.org>
* app/core/gimpstrokeoptions.[ch]: renamed public function
set_dash_pattern() to take_dash_pattern() to clarify memory
management of the passed GArray.
* app/widgets/gimpdasheditor.c
* app/widgets/gimpstrokeeditor.c: changed accordingly.
svn path=/trunk/; revision=25700
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/widgets/gimphelp-ids.h: add help IDs for the stuff in the
Windows menu.
* app/actions/windows-actions.c: use them.
svn path=/trunk/; revision=25687
2008-05-17 Michael Natterer <mitch@gimp.org>
* app/actions/windows-actions.c: add tooltips to the menu items of
open and recently closed docks.
* app/widgets/gimpaction.c: connect to "notify::tooltip" and make
sure gimp_help_set_help_data() gets called when the action's
tooltip changes.
svn path=/trunk/; revision=25684
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-14 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcurveview.c (gimp_curve_view_motion_notify):
fixed use of uninitialized value.
svn path=/trunk/; revision=25668
2008-05-14 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpsessioninfo-book.[ch]: remove widget member from
struct GimpSessionInfoBook. Return the created GimpDockbook from
restore().
* app/widgets/gimpsessioninfo-dock.c (restore): use the returned
book instead of the struct member.
svn path=/trunk/; revision=25658
2008-05-14 Michael Natterer <mitch@gimp.org>
Made session info serialization independent from widgets so it can
be used on stored dock layouts which are not open:
* app/widgets/gimpsessioninfo-book.[ch]
* app/widgets/gimpsessioninfo-dock.[ch]
* app/widgets/gimpsessioninfo-dockable.[ch]: add from_widget()
functions which return newly allocated session info structs.
Changed serialize() functions to take these structs instead of
widgets. Changed deserialize() functions to return the structs
instead of appending them to lists in their parent structs. Don't
free anything in restore().
* app/widgets/gimpsessioninfo-aux.[ch]
(gimp_session_info_aux_serialize): take a GList of aux_info
instead of a widget.
* app/widgets/gimpsessioninfo.[ch]: add new functions get_info()
which collects above session info details from dialogs and
clear_info() which clears that info. Call clear_info() from
finalize(). Don't free anything in restore().
* app/widgets/gimpdialogfactory.c
(gimp_dialog_factories_save_foreach): collect the session info
detials from the dialogs before serializing because serialize()
doesn't know about the widget any longer. Clear the infos after
serializing.
(gimp_dialog_factories_restore_foreach): clear the session info
details after creating the dialogs because restore() doesn't clear
the info by itself any longer.
svn path=/trunk/; revision=25657
2008-05-12 Simon Budig <simon@gimp.org>
* app/vectors/gimpvectors.[ch]
* app/vectors/gimpstroke.[ch]
* app/vectors/gimpbezierstroke.c: Implement functionality to
get a bezier description a la moveto/curveto/closepath.
* app/vectors/vectors-types.h: implement an evil hack to avoid
the inclusion of cairo.h in most C files...
* app/vectors/Makefile.am: link against cairo
* app/widgets/gimpviewrenderervectors.c: use the new functionality
for preview rendering.
svn path=/trunk/; revision=25645
2008-05-11 Sven Neumann <sven@gimp.org>
* app/core/gimpcurve.[ch]: renamed gimp_curve_map() to
gimp_curve_map_value(). Added new function
gimp_curve_map_pixels()
which will allow for better optimization.
* app/gegl/gimpoperationcurves.c
(gimp_operation_curves_process):
use gimp_curve_map_pixels().
* app/tools/gimpcurvestool.c
* app/widgets/gimpcurveview.c: follow API change.
svn path=/trunk/; revision=25641
2008-05-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpaction.[ch]: add an "ellipsize" property that is
applied to all proxy menu items' labels.
* app/actions/windows-actions.c: set the dock actions to
PANGO_ELLIPSIZE_END because their labels can be insanely long.
svn path=/trunk/; revision=25635
2008-05-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdialogfactory.[ch]: add signals "dock-added" and
"dock-removed".
(gimp_dialog_factory_add_dialog)
(gimp_dialog_factory_remove_dialog): emit them when docks get
added and removed.
svn path=/trunk/; revision=25629
2008-05-10 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrenderer.c (gimp_view_renderer_real_draw):
reset the translation on the cairo context. Resurrects brush
emblems which were drawn in the wrong position.
* app/widgets/gimpviewrendererbrush.c
(gimp_view_renderer_brush_draw):
formatting.
svn path=/trunk/; revision=25614
2008-05-08 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_events): move the focus to the canvas on
button-press events.
* app/widgets/gimpwindow.c (gimp_window_key_press_event):
removed
a use of G_UNLIKELY() that is somewhat bogus here.
svn path=/trunk/; revision=25587
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-28 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpwindow.[ch]: added GimpWindow class and moved
key-press-event handler from GimpDock to this class.
* app/widgets/gimpdock.[ch]:
* app/display/gimpdisplayshell.[ch]: derive from GimpWindow.
svn path=/trunk/; revision=25541
2008-04-25 Sven Neumann <sven@gimp.org>
* app/widgets/gimptoolbox.c: do not any longer accept
middle-mouse-button paste on the toolbox buttons but use the
toolbox drop area for that.
svn path=/trunk/; revision=25521
2008-04-13 Sven Neumann <sven@gimp.org>
* app/widgets/gimpunitcombobox.c: added "label-scale" style
property.
* app/display/gimpscalecombobox.[ch]: ditto. Also removed the
support for extra action items.
* app/display/gimpstatusbar.c: changed accordingly.
* themes/Default/gtkrc
* themes/Small/gtkrc: use a smaller font for the combo-box
labels
in the statusbar.
svn path=/trunk/; revision=25475
2008-04-12 Martin Nordholts <martinn@svn.gnome.org>
Applied modified patch from Daniel Hornung that changes the mouse
cursor to a "clicking will create a selection"-icon when hovering
the center of a pending Scissors Select Tool selection (bug #493370)
* app/tools/gimpiscissorstool.c
(gimp_iscissors_tool_cursor_update): Use the new cursor icon.
* cursors/modifier-select.png
* cursors/xbm/modifier-select.xbm
* cursors/xbm/modifier-select-mask.xbm: New cursor icon.
* cursors/makefile.msc
* cursors/Makefile.am
* app/widgets/gimpcursor.c
* app/widgets/widgets-enums.h: Changed accordingly.
svn path=/trunk/; revision=25473
2008-04-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcomponenteditor.c: implement
GimpDocked::set_context() and set the GimpViewRenderers'
contexts. Unclear how this could have been missed since it
warned badly about NULL contexts.
svn path=/trunk/; revision=25460
2008-04-09 Sven Neumann <sven@gimp.org>
* app/widgets/gimptexteditor.c (gimp_text_editor_new): disabled
the language entry until it works.
svn path=/trunk/; revision=25432
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-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdialogfactory.c
(gimp_dialog_factory_set_user_pos): set GDK_HINT_MIN_SIZE on
dialogs which had no previous sessionrc entry. Fixes the minimum
size of the very first empty display of a new GIMP installation
and shouldn't have any ill effects on other windows.
svn path=/trunk/; revision=25409
2008-03-31 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpbrusheditor.c (gimp_brush_editor_notify_brush):
Add missing code for the "spacing" property. Spotted by Jerry Baker.
svn path=/trunk/; revision=25323
2008-03-30 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gimpcontainertreeview-dnd.c
(gimp_container_tree_view_drag_drop): Make all code paths result
in a call to gtk_drag_finish() if we return TRUE. Fixes bug
#317992.
svn path=/trunk/; revision=25320
2008-03-30 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontainertreeview.c: added a finalizer that
frees
the memory allocated for the cell lists.
svn path=/trunk/; revision=25316
2008-03-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpmenudock.c (gimp_menu_dock_auto_clicked): when
the "Auto" button gets enabled, always copy both display and image
to the local context (because there can be displays without image
now).
svn path=/trunk/; revision=25306
2008-03-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockable.c (gimp_dockable_detach): open the new
dock window at the mouse pointer position.
svn path=/trunk/; revision=25262
2008-03-26 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolbox.[ch]: store the toolbox area's vbox in
the widget struct.
* app/widgets/gimptoolbox-dnd.c (gimp_toolbox_dnd_init): use it as
DND target instead of the wbox with the tool buttons.
svn path=/trunk/; revision=25250
2008-03-26 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolbox.[ch]: big wilber is watching you from
the toolbox! Removed forgotten menubar cruft.
svn path=/trunk/; revision=25249
2008-03-26 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcairo-wilber.c: include a better Wilber path,
thanks to Jimmac.
* app/display/gimpcanvas.c (gimp_canvas_draw_drop_zone): undid
scaling "fix", instead take the offset into account. Draw with
transparency.
svn path=/trunk/; revision=25246
2008-03-26 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/gimpcairo-wilber.[ch]: new files that renders a
Wilber image as a Cairo path. Or at least it is supposed to do
this at some point...
* app/display/gimpcanvas.c (gimp_canvas_draw_drop_zone): use the
scalable Wilber path. Needs more work...
svn path=/trunk/; revision=25244
2008-03-25 Sven Neumann <sven@gimp.org>
* app/gui/gui.c (gui_restore_after_callback): focus the image
window after all docks have been created.
* app/widgets/gimpdock.c (gimp_dock_init): unset focus-on-map on
all dock windows.
* app/widgets/gimpdialogfactory.c
(gimp_dialog_factories_show_foreach): removed the focus hacks here
as they are not any longer needed.
svn path=/trunk/; revision=25216
2008-03-24 Sven Neumann <sven@gimp.org>
* libgimpthumb/gimpthumbnail.c: don't reset the mime-type info
when we can't load a thumbnail.
* app/core/gimpimagefile.c (gimp_imagefile_get_new_pixbuf):
don't
set a stock-id depending on the state.
* app/widgets/gimpviewrendererimagefile.[ch]: removed commented
out hack that used to access semi-private API from
GtkFilesystem.
Instead lifted some code from GtkRecentManager that looks up
icons
by mime-type.
svn path=/trunk/; revision=25195
2008-03-23 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdialogfactory.c (gimp_dialog_factory_add_dialog):
don't set the dialog's window geometry if it is already visible.
Fixes empty display moving and shouldn't affect anything else
since we always want to position dialogs before they are shown.
svn path=/trunk/; revision=25184
2008-03-23 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdialogfactory.c: cleanup (move variables to
local scopes), improve debugging outout.
(gimp_dialog_factory_remove_dialog): disconnect signal handlers
and unset any session management data which is attached to the
widget, so this function can really be used to remove a dialog
from the factory.
svn path=/trunk/; revision=25176
2008-03-23 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpsessioninfo.c (gimp_session_info_get_geometry):
use gdk_drawable_get_size() instead of looking at
widget->allocation since the latter is not yet updated if this
function is called from the dialog factory's "configure-event"
callback. Fixes remembering of dialog sizes within one session.
svn path=/trunk/; revision=25175
2008-03-22 Sven Neumann <sven@gimp.org>
* themes/Default/gtkrc
* app/widgets/gimpmenudock.c: reduced minimum dock width to 200
pixels.
* etc/sessionrc: use -0 instead of -1, just like in X geometry
strings. Changed default dock sizes to be taller but less wide.
* app/widgets/gimpsessioninfo.c: changed code to parse -0 from
the
sessionrc file and to deal more correctly with negative offsets.
svn path=/trunk/; revision=25169
2008-03-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpsessioninfo.c
(gimp_session_info_set_geometry):
deal with negative positions read from the sessionrc file and
interpret them as a hint to align the window with the right,
respective bottom edge of the screen.
* etc/sessionrc: position the toolbox in the upper left, the
additional dock in the upper right corner of the screen.
svn path=/trunk/; revision=25167
2008-03-21 Michael Natterer <mitch@gimp.org>
Remove the toolbox menu:
* configure.in: remove --enable-toolbox-menu option.
* menus/Makefile.am
* menus/toolbox-menu.xml.in: removed.
* menus/image-menu.xml.in: add the debug menu here.
* menus/menus.xsl: remove transformations depending on whether
there is a toolbox menu or not.
* app/menus/Makefile.am
* app/menus/toolbox-menu.[ch]: removed.
* app/menus/menus.c: remove the toolbox menu but keep the
<Toolbox> UI manager around so we can configure its actions
separate from normal docks.
* app/actions/image-actions.c (image_actions): remove the action
for the toolbox menubar.
* app/widgets/gimptoolbox.c: remove all menu code.
* app/plug-in/plug-in-menu-path.c: map plug-in registered toolbox
menu items to their new location in the image menu
unconditionally.
* plug-ins/common/screenshot.c
* plug-ins/common/uniteditor.c
* plug-ins/script-fu/script-fu.c
* plug-ins/script-fu/scripts/web-browser.scm
* plug-ins/twain/twain.c
* plug-ins/winsnap/winsnap.c: remove menu registrations under
<Toolbox>/File and change <Toolbox>/Help to <Image>/Help. Leave
<Toolbox>/Xtns untouched until its final location and name are
decided.
svn path=/trunk/; revision=25156
2008-03-21 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdock.h (struct GimpDock): added member "ID"
for themeing.
* app/widgets/gimpdock.c (gimp_dock_init): assign unique IDs
and set unique widget names based on the ID.
(gimp_dock_style_set): set individual styles for each dock based
on the widget name so docks on different screens get the correct
font size. Use PANGO_SCALE_SMALL instead of a hardcoded factor of
0.8.
svn path=/trunk/; revision=25152
2008-03-21 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdock.c (gimp_dock_style_set): some experimental
and pretty evil code which reduces the font size in docks by 20%.
svn path=/trunk/; revision=25150
2008-03-20 Sven Neumann <sven@gimp.org>
* app/config/gimpguiconfig.c: changed default values for
"toolbox-window-hint" and "dock-window-hint" to "utility".
* app/widgets/gimptoolbox.c (gimp_toolbox_new): changed window
title to "Toolbox".
svn path=/trunk/; revision=25142
2008-03-19 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockable.c
* app/widgets/gimpwidgets-utils.[ch]: moved utility function for
setting attributes on a PangoLayout out of gimpdockable.c.
* app/display/gimpcanvas.c (gimp_canvas_draw_drop_zone): use a
bold font and paint the layout with transparency.
svn path=/trunk/; revision=25116
2008-03-10 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockable.[ch]
* app/widgets/gimpdockbook.c: moved code for the drag widget to
GimpDockable. Use semi-bold text for the drag widget also.
svn path=/trunk/; revision=25082
2008-03-09 Michael Natterer <mitch@gimp.org>
* app/tools/Makefile.am
* app/tools/gimpiscissorsoptions.[ch]
* app/tools/gimpregionselectoptions.[ch]: new options classes.
* app/tools/gimpselectionoptions.[ch]: remove the options here.
Also remove some leftover rectangle options cruft that is in its
own files since long ago.
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpfuzzyselecttool.c
* app/tools/gimpiscissorstool.[ch]
* app/tools/gimpregionselecttool.[ch]
* app/widgets/gimpselectioneditor.c: changed accordingly.
svn path=/trunk/; revision=25071
2008-03-08 Sven Neumann <sven@gimp.org>
Experimental attempt to gain a little more horizontal space for
the tool options:
* app/widgets/gimptooloptionseditor.c: removed the shadow from
the
viewport and the border from the vbox.
* app/widgets/gimpdockable.c: use a semibold label for the
title.
svn path=/trunk/; revision=25065
2008-02-28 Michael Natterer <mitch@gimp.org>
* app/core/gimpcurve.[ch]: get rid of fixed-size arrays and
allocate the points and curve arrays dynamically. Added "n-points"
and "n-samples" CONSTRUCT_ONLY properties. Renamed member "curve"
to "samples". Lots of code changes to work with dynamic limits
rather than 17 and 256.
* app/core/gimpdrawable-curves.c
* app/gegl/gimpcurvesconfig.c
* app/tools/gimpcurvestool.c
* app/widgets/gimpcurveview.c: changed accordingly.
svn path=/trunk/; revision=24995
2008-02-12 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcolormapeditor.[ch]: show a hint on
non-indexed
images. Based on a patch from Olof Frahm. Closes bug #438217.
svn path=/trunk/; revision=24870
2008-02-12 Sven Neumann <sven@gimp.org>
* app/widgets/gimplanguagestore-parser.c: inverted logic; #ifdef
is IMO easier to read than #ifndef.
svn path=/trunk/; revision=24868
2008-02-12 Tor Lillqvist <tml@novell.com>
* app/widgets/gimplanguagestore-parser.c
(gimp_language_store_populate): Don't use the compile-time paths
to iso-codes on Windows. Instead assume iso-codes is installed in
the same location as GIMP. Make sure translated language names are
in UTF-8 by calling bind_textdomain_codeset().
svn path=/trunk/; revision=24867
2008-02-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptexteditor.c (gimp_text_editor_new): enable
wrapping so the text doesn't scroll out horizontally.
svn path=/trunk/; revision=24861
2008-02-11 Michael Natterer <mitch@gimp.org>
* app/core/gimpcurve.[ch]: add gimp_curve_get_point().
* app/gegl/gimpcurvesconfig.c
* app/widgets/gimpcurveview.c: use it instead of accessing the
points array directly.
svn path=/trunk/; revision=24857
2008-02-09 Michael Natterer <mitch@gimp.org>
* app/core/gimpcurve.[ch]: keep the anchor points as an array of
GimpVector2 instead of plain doubles.
* app/gegl/gimpcurvesconfig.c
* app/widgets/gimpcurveview.c: changed accordingly.
svn path=/trunk/; revision=24842
2008-02-09 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcurveview.[ch]: port internal cursor stuff to
gdouble, fix off-by-one in curve drawing, fix drawing artefact in
handle drawing by starting drawing on the handle's outline and not
its center.
svn path=/trunk/; revision=24839
2008-02-09 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcurveview.[ch]: port the "xpos" API
to [0.0..1.0] doubles too.
* app/tools/gimpcurvestool.[ch]: rename "col_value" member to
"picked_color" and use gdouble instead of gint. Also use GimpCurve
API to map the values instead of accessing the curve directly.
Fixes setting curve anchor points by color picking.
svn path=/trunk/; revision=24838
2008-02-09 Michael Natterer <mitch@gimp.org>
* app/core/gimpcurve.[ch]: changed all values to be [0.0..1.0]
doubles instead of [0..255] integers. Also changed the API to use
doubles instead of ints. Still have the fixed-size arrays though.
(gimp_curve_map): new function to map values.
* app/gegl/gimpoperationcurves.c: remove private map() function
and use the one from GimpCurve.
* app/gegl/gimpcurvesconfig.c
* app/core/gimpdrawable-curves.c: port to the new gdouble API.
* app/tools/gimpcurvestool.c: use gimp_curve_get_uchar() to get
the arrays for the color bars.
* app/widgets/gimpcurveview.[ch]: port to gdouble and some cleanup.
svn path=/trunk/; revision=24837
2008-02-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimptexteditor.c: use an entry with completion
for
language selection. Still not functional.
svn path=/trunk/; revision=24834
2008-02-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimplanguagestore.[ch]
* app/widgets/gimplanguagestore-parser.c: actually populate the
language store. Still work in progress...
* app/widgets/gimptexteditor.c: added a combo-box for language
selection. Not functional yet; just something to play with.
svn path=/trunk/; revision=24833
2008-02-07 Michael Natterer <mitch@gimp.org>
* app/base/base-utils.[ch]: add get_pid() which returns getpid().
* app/base/base.c
* app/base/tile-swap.c
* app/core/gimp-utils.c
* app/plug-in/gimppluginshm.c
* app/widgets/gimpselectiondata.c
* tools/pdbgen/pdb/misc.pdb: use it instead of getpid() and remove
all the #ifdef'ed includes getpid() needs.
* tools/pdbgen/app.pl: remove support for these includes. Also
remove some perl cruft in the include handling which is not needed
any longer.
* app/pdb/misc_cmds.c: regenerated.
svn path=/trunk/; revision=24827
2008-02-06 Michael Natterer <mitch@gimp.org>
* app/tools/gimpgegltool.c (gimp_param_spec_duplicate)
* app/widgets/gimppropwidgets.c (gimp_prop_table_new): add support
for GParamSpecEnum.
* app/core/gimpimagemap.c (gimp_image_map_apply): add even better
checks for input and output pads of the passed operation.
svn path=/trunk/; revision=24824
2008-02-06 Michael Natterer <mitch@gimp.org>
* app/paint/gimpclone.c
* app/paint/gimpheal.c
* app/paint/gimpink.c
* app/widgets/gimphistogrameditor.c: remove includes that are
not needed any longer.
svn path=/trunk/; revision=24823
2008-02-06 Michael Natterer <mitch@gimp.org>
* app/tools/gimpgegltool.c (gimp_param_spec_duplicate)
* app/widgets/gimppropwidgets.c (gimp_prop_table_new): support
multiline text and file paths. The multiline support is hacked up
and needs some proper solution.
svn path=/trunk/; revision=24818
2008-02-05 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppropwidgets.[ch] (gimp_prop_table_new): new
function which creates a table of prop widgets for all properties
of an object (pretty incomplete, does exactly what's needed in
GimpGeglTool, or even less).
* app/tools/gimpgegltool.c: create a proxy config class for each
GegĺOperation and create a prop table on the config class'
properties as GUI for the GEGL operation. Write the proxy object's
properties back to the GeglNode in map().
svn path=/trunk/; revision=24809
2008-02-04 Michael Natterer <mitch@gimp.org>
* app/base/gimphistogram.[ch]: add refcounting and replace free()
API by ref() and unref().
* app/core/gimpdrawable-equalize.c
* app/core/gimpdrawable-levels.c
* app/widgets/gimphistogrameditor.c
* tools/pdbgen/pdb/color.pdb: replace calls to
gimp_histogram_free() by gimp_histogram_unref().
* app/pdb/color_cmds.c: regenerated.
* app/widgets/gimphistogramview.c: reference the histograms so we
don't need the widget's users to keep them around while the widget
exists.
* app/tools/gimpcurvestool.[ch]: remove the histogram from the
tool struct and just create one locally to set it on the histogram
view widget.
Unrelated:
* app/tools/gimplevelstool.[ch]
* app/tools/gimpthresholdtool.[ch]: renamed "hist" members to
"histogram" plus some cleanup.
svn path=/trunk/; revision=24792
2008-02-01 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerview.c
(gimp_container_view_set_container): refuse containers if their
children are not GimpViewables instead of crashing later.
svn path=/trunk/; revision=24769
2008-01-30 Martin Nordholts <martinn@svn.gnome.org>
Added a Polygon Select Tool which is a primitive selection tool
based on Free Hand Select. Code filtered through David Gowers who
also made the tool icon. This version of the tool is a for-now
solution to bug #119646.
* app/tools/gimppolygonselecttool.[ch]: The new tool.
* app/tools/gimp-tools.c: Add the tool.
* app/tools/Makefile.am: Add tool source.
* app/widgets/gimphelp-ids.h: Add help id for the tool.
* libgimpwidgets/gimpstock.[ch]: Setup for the new tool icon.
* menus/image-menu.xml.in: Add action entry for the tool.
* themes/Default/images/tools/stock-tool-polygon-select-{16,24}.png:
Tool icon graphics.
* themes/Default/images/Makefile.am: Add tool icon graphics.
svn path=/trunk/; revision=24753
2008-01-25 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcolormapeditor.c (gimp_colormap_editor_draw):
avoid crashing when the widget allocation is small (bug
#511926).
svn path=/trunk/; revision=24704
2008-01-21 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolorbar.c (gimp_color_bar_class_init): fix the
ID of the "histogram-channel" property.
svn path=/trunk/; revision=24660
2008-01-10 Sven Neumann <sven@gimp.org>
* app/widgets/gimpuimanager.c (gimp_ui_manager_ui_popup):
gracefully deal with a NULL return value from
gtk_ui_manager_get_widget(). This happens when the XML menu
definitions are not found.
svn path=/trunk/; revision=24594
2008-01-04 Hans Breuer <hans@breuer.org>
**/makefile.msc app/gimpcore.def : updated so it compiles and links
(almost, see bug #507298)
svn path=/trunk/; revision=24533
2008-01-04 Michael Natterer <mitch@gimp.org>
* app/config/gimpcoreconfig.[ch]: add "use-gegl" property but
don't serialize it.
* app/widgets/gimptoolbox.c: add super ugly "Use GEGL" toggle to
the toolbox so we don't need to have prefs open all the time when
experimenting with gegl.
* app/tools/gimpimagemaptool.[ch]: remove "Use GEGL" toggle from
the tool dialogs and connect to the config property instead.
* app/core/gimpdrawable-desaturate.c
* app/core/gimpdrawable-invert.c: made them runtime-switchable by
looking at the config property.
svn path=/trunk/; revision=24530
2007-12-30 Sven Neumann <sven@gimp.org>
* app/display/gimpstatusbar.[ch]
* app/widgets/gimpprogressbox.[ch]: only update the
GtkProgressBar
if that would cause a visible change.
svn path=/trunk/; revision=24487
2007-12-28 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcolormapeditor.c: don't use the render buffer.
Use a white background until this widget is rewritten.
svn path=/trunk/; revision=24455
2007-12-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpsamplepointeditor.c
(gimp_sample_point_editor_points_changed): fix my last commit to
this file (don't access sample points of NULL images).
svn path=/trunk/; revision=24454
2007-12-28 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpcairo-utils.[ch]: addec const qualifiers to
GimpRGB parameters.
* app/widgets/gimprender.[ch]: removed global variables for
checkerboard colors and introduced functions to get the
checkerboard colors as pointers to GimpRGB structs.
* app/actions/view-actions.c
* app/display/gimpdisplayshell-appearance.c
* app/widgets/gimpviewrenderer.c
* app/widgets/gimpcolormapeditor.c: changed accordingly.
svn path=/trunk/; revision=24451
2007-12-28 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpcairo-utils.[ch]: added light and dark
check
color parameters to gimp_cairo_checkerboard_create().
* libgimpwidgets/gimpcellrenderercolor.c
* app/widgets/gimpviewrenderer.c (gimp_view_renderer_real_draw):
changed accordingly.
svn path=/trunk/; revision=24450
2007-12-28 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrenderer.c (gimp_view_renderer_real_draw):
if the surface has CAIRO_CONTENT_COLOR_ALPHA, render it on a
checkerboard background.
* app/widgets/gimpviewrenderergradient.[ch]: just draw the
gradient with alpha-transparency instead of doing the blend on
the
checkerboard here.
* app/widgets/gimpcolormapeditor.c: formatting.
svn path=/trunk/; revision=24446
2007-12-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimpthumbbox.c (gimp_thumb_box_new): enable line
wrapping on the info label.
svn path=/trunk/; revision=24439
2007-12-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimpprofilechooserdialog.c: added code for adding
a
shortcut to the default ICC profile location on Windows. Based
on
a patch by John Marshall (bug #503410).
svn path=/trunk/; revision=24407
2007-12-18 Sven Neumann <sven@gimp.org>
* app/widgets/gimpgradienteditor.c: don't rely on the pointer
position in the GdkEventMotion struct, query the pointer instead.
svn path=/trunk/; revision=24395
2007-12-18 Sven Neumann <sven@gimp.org>
* app/display/gimpnavigationeditor.c: minor cleanup.
* app/widgets/gimpnavigationview.c
(gimp_navigation_view_motion_notify): fixed handling of motion
events that broke when I introduced the call to
gdk_event_request_motions().
svn path=/trunk/; revision=24394
2007-12-16 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpcairo-utils.[ch]: added new function
gimp_cairo_set_focus_line_pattern().
* libgimpwidgets/gimpcellrenderercolor.c
(gimp_cell_renderer_color_render): use the focus line pattern to
emphasize the selected entry.
* app/widgets/gimppaletteview.c (gimp_palette_view_expose): use
the
new utility function.
* libgimpwidgets/gimpwidgets.def: updated.
svn path=/trunk/; revision=24371
* app/widgets/gimphelp-ids.h
* app/display/gimpdisplayshell-scale.[ch]
* app/display/gimpnavigationeditor.[ch]
* app/actions/view-commands.[ch]
* app/actions/view-commands.c:
Changed "Fit Image to Window" to "Fill Window", and changed
"fit-to" to "fill" in all the related things. Fixes
bug #490364.
svn path=/trunk/; revision=24370
2007-12-13 Sven Neumann <sven@gimp.org>
* app/widgets/gimprender.[ch]: export the light and dark check
color so that places that just need this information don't have to
access the gimp_render_blend_{dark,light}_check arrays.
* app/actions/view-actions.c
* app/display/gimpdisplayshell-appearance.c
* app/widgets/gimpcolormapeditor.c: changed accordingly.
svn path=/trunk/; revision=24351
2007-12-12 Sven Neumann <sven@gimp.org>
* INSTALL
* configure.in
* app/gui/gui.c (GTK_REQUIRED_MICRO): bumped minimum required
version of gtk+ to 2.12.1.
* app/widgets/gimpdockbook.c (gimp_dockbook_tab_drag_motion):
removed unused parameter that was needed for gtk+ < 2.12.1.
svn path=/trunk/; revision=24334
2007-11-26 Sven Neumann <sven@gimp.org>
* app/widgets/gimpwidgets-utils.c (gimp_widget_accel_changed):
escape text before using it in Pango text markup.
svn path=/trunk/; revision=24235
2007-11-22 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolorbar.[ch]: derive from GtkEventBox instead
of GtkMisc, but use an input-only window.
* app/tools/gimplevelstool.c: redirect the events of the color
bars to te handle bars. The historgram dialog has this change
already. Functionality should be 100% restored now.
svn path=/trunk/; revision=24218
2007-11-22 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimphelpui.[ch]: use
gtk_widget_set_tooltip_text() from gimp_help_set_help() and added
gimp_help_set_help_data_with_markup() for the cases where markup
is needed.
* libgimpwidgets/gimpwidgets.def: updated.
* app/tools/gimpselectionoptions.c
* app/widgets/gimpeditor.c
* app/widgets/gimpwidgets-utils.c: use the new function where markup
in tooltips is being used.
* app/widgets/gimptoolbox-color-area.c: no need to escape the
ampersand any longer.
svn path=/trunk/; revision=24217
2007-11-20 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainercombobox.c: set the combo insensitive
when it has no items. Fixes bug #498511.
svn path=/trunk/; revision=24204
2007-11-20 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-types.h
* app/widgets/Makefile.am
* app/widgets/gimphandlebar.[ch]: new widget implementing the slider
bar known from histogram and levels.
* app/widgets/gimphistogrambox.[ch]: use the new widget. General
cleanup and UI streamlining.
svn path=/trunk/; revision=24198
2007-11-19 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcurveview.[ch]: draw a base-line with the
grid.
Not sure if this should stay enabled for the Curves tool...
svn path=/trunk/; revision=24196
2007-11-16 Michael Natterer <mitch@gimp.org>
* app/gimp-log.[ch]: add HELP log domain.
* app/widgets/gimphelp.c: port debug output to GIMP_LOG() and
improve it.
svn path=/trunk/; revision=24177
2007-11-15 Michael Natterer <mitch@gimp.org>
* app/core/gimpviewable.[ch]: add read-only property "frozen" and
new API gimp_viewable_preview_is_fozen(). Emit property notifications.
* app/widgets/gimphistogramview.[ch]: add API to show a second
histogram in the background. Remove member "light_histogram" from
the GimpHistogramViewClass struct.
* app/widgets/gimpcurveview.c: don't set "light_histogram".
* app/tools/gimpcurvestool.c: set the background histogram instead.
* app/widgets/gimphistogrameditor.[ch]: connect to "notify::frozen"
of the drawable and show its histogram at the freezing point in
the background. This way the original histogram is visible while
we are doing color corrections.
svn path=/trunk/; revision=24158
2007-11-14 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolorframe.[ch]: replaced the number label with
a big Cairo-drawn number below the color value labels.
svn path=/trunk/; revision=24157
2007-11-14 Michael Natterer <mitch@gimp.org>
* app/display/gimpcanvas.c
* app/widgets/gimpcurveview.c: free the cached PangoLayouts in
GtkWidget::style_set().
* app/widgets/gimppaletteview.c: draw the focus rectangle in
hardcoded black/white since we also hardcode the grid color to
black.
* app/display/gimpstatusbar.c
* app/widgets/gimpdockable.c: small cleanups while reviewing
layout code.
svn path=/trunk/; revision=24156
2007-11-14 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolorframe.[ch]: replaced the number label with
a big Cairo-drawn number below the color value labels.
svn path=/trunk/; revision=24155
2007-11-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpviewrenderer.c (gimp_view_renderer_draw): use
cairo_save()/cairo_restore() around calling the virtual function
instead of restoring the clipping area manually.
svn path=/trunk/; revision=24148
2007-11-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpviewrenderervectors.c
(gimp_view_renderer_vectors_draw): naive port to Cairo. Somebody
should check if this isn't better done with proper curve_to()
drawing using the original vectors data instead of interpolation.
* app/widgets/gimpviewrenderer.c (gimp_view_renderer_draw): reset
clipping before drawing the border because a subclass' draw()
might have done additional clipping.
svn path=/trunk/; revision=24147
2007-11-13 Sven Neumann <sven@gimp.org>
Fix for bug #494049 (painting doesn't update the histogram):
* app/paint/gimppaintcore.c: freeze the drawable preview while we
are painting. Update the drawable instead of the image.
* app/widgets/gimphistogrameditor.c: use a short timeout instead
of an idle handler to update the histogram.
svn path=/trunk/; revision=24143
2007-11-09 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcurveview.c (gimp_curve_view_expose): align
the
overlay with the pixel grid.
svn path=/trunk/; revision=24104
2007-11-09 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcurveview.c: draw the selected point filled
and
outlines for the unselected points.
svn path=/trunk/; revision=24103
2007-11-09 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcurveview.c (gimp_curve_view_expose): draw the
center grid lines slightly stronger than the other grid lines.
svn path=/trunk/; revision=24102
2007-11-09 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcurveview.c (gimp_curve_view_expose): draw the
cursor position using a translucent overlay.
svn path=/trunk/; revision=24101
2007-11-09 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcurveview.[ch]: added construct-only
properties
to control the number of grid rows and columns. Increased the
default values to 8.
svn path=/trunk/; revision=24099
2007-11-09 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimphelpui.[ch]: use the new tooltip API instead
of the old deprecated one. Removed _gimp_help_init(). Remember
whether tooltips are enabled or not in a local variable that can
only be altered at startup time and not after. The API now expects
markup instead of plain text which might cause warnings and
perhaps needs to be changed.
* libgimpwidgets/gimpwidgets-private.c: don't call _gimp_help_init().
* app/config/gimpguiconfig.c: made show-tooltips a
GIMP_CONFIG_PARAM_RESTART property.
* app/widgets/gimptoolbox-color-area.c: don't add the tooltip here...
* app/widgets/gimptoolbox.c: ...but here (as for all other
indicators). Also escape '&' properly because we now use markup.
* app/tools/gimpselectionoptions.c
* app/widgets/gimpeditor.c
* app/widgets/gimpwidgets-utils.c: print modifiers and
shortcuts in bold instead of in ().
* app/widgets/gimpcontainertreeview.c: show tooltips on rows if
gimp_viewable_get_description() returns a tip.
* app/dialogs/preferences-dialog.c
* plug-ins/jpeg/jpeg-save.c
* plug-ins/MapObject/mapobject_ui.c
* plug-ins/Lighting/lighting_ui.c
* plug-ins/common/animationplay.c
* plug-ins/common/warp.c: no need to add event boxes just to have
tooltips, the new ones work on all widgets.
svn path=/trunk/; revision=24093
2007-11-05 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcurveview.c (gimp_curve_view_expose): translate
by 0.5,0.5 instead of adding 0.5 to all coordinates (we always
want to draw on pixel centers here). Some cleanup.
svn path=/trunk/; revision=24072
2007-11-05 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcairo-utils.h: introduced macros to set a
single
pixel in a Cairo surface without having to worry about
endianness.
* app/widgets/gimpcairo-utils.c
* app/widgets/gimpviewrenderer.c
* app/widgets/gimpviewrenderergradient.c
* app/widgets/gimpviewrendererpalette.c: use the new macros.
svn path=/trunk/; revision=24065
2007-11-05 Michael Natterer <mitch@gimp.org>
* app/core/gimpcurve.[ch]: don't recalculate the curve if the data
object is frozen. Recalculate on thaw instead. Made
gimp_curve_calculate() private and emit some GimpData::dirty
signals where appropriate.
* app/tools/gimpcurvestool.c
* app/widgets/gimpcurveview.c
* tools/pdbgen/pdb/color.pdb: changed accodingly (connect to "dirty"
instead of "notify" and added some freeze/thaw where approproate).
* app/pdb/color_cmds.c: regenerated.
svn path=/trunk/; revision=24063
2007-11-05 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcurveview.[ch]: added event handling and
completely edit the curve here.
* app/tools/gimpcurvestool.[ch]: remove all event handling and
curve editing code and only listen to curve signals.
svn path=/trunk/; revision=24060
2007-11-04 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrendererbrush.c: implement
GimpViewRenderer::draw and draw the overlays with Cairo.
* app/widgets/gimpviewrenderer.[ch]
* app/widgets/gimpviewrenderervectors.c: minor cleanups.
svn path=/trunk/; revision=24058
2007-11-04 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrenderer.[ch]: replaced the RGB buffer
with
a Cairo surface.
* app/widgets/gimpviewrendererbuffer.c
* app/widgets/gimpviewrendererbrush.c
* app/widgets/gimpviewrendererdrawable.c
* app/widgets/gimpviewrenderergradient.c
* app/widgets/gimpviewrendererimage.c
* app/widgets/gimpviewrendererpalette.c
* app/widgets/gimpviewrenderervectors.c: changed accordingly.
There
are some loose ends here that will be fixed over the next days.
* app/widgets/gimprender.c: removed gimp_render_temp_buf; it is
not any longer needed.
* app/core/gimpgradient.c (gimp_gradient_get_preview_size):
return
an odd preview height to make the border align with the pixel
grid.
svn path=/trunk/; revision=24056
2007-11-04 Sven Neumann <sven@gimp.org>
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpnavigationview.c: use
gdk_event_request_motions() to handle motion hint events.
svn path=/trunk/; revision=24052
2007-11-04 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcurveview.[ch]: new GimpHistogramView subclass
which does all the curve stuff.
* app/widgets/gimphistorgramview.[ch]: removed all curve code again.
* app/tools/gimpcurvestool.c: changed accordingly.
svn path=/trunk/; revision=24051
2007-11-02 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphistogramview.[ch]: added API to set the
selected point.
* app/tools/gimpcurvestool.c: use it.
svn path=/trunk/; revision=24046
2007-11-02 Michael Natterer <mitch@gimp.org>
* app/core/gimpcurve.[ch]: added API to modify free-form curves
and properties to listen to curve changes.
* app/widgets/gimphistogramview.[ch]: added everything that's
needed for rendering a curve with all its color and cursor
indicators on top of a histogram. This code will move to a
subclass soon.
* app/tools/gimpcurvestool.[ch]: removed all curve rendering here.
Also removed all explicit updating by connecting to curve signals
and updating in the callback.
svn path=/trunk/; revision=24045
2007-11-02 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcairo-utils.[ch]: added utility function to create
a Cairo surface from a GdkPixbuf.
* app/widgets/gimpviewrenderer.c (gimp_view_renderer_create_pattern):
use it from here.
svn path=/trunk/; revision=24043
2007-11-02 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcairo-utils.c (gimp_cairo_set_source_color):
also use the color's alpha channel. Added gtk-doc documentation.
svn path=/trunk/; revision=24040
2007-11-02 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/gimpcairo-utils.[ch]: new files holding Cairo
utility functions.
* app/widgets/gimpviewrenderer.[ch]: ported partly to Cairo
drawing.
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainercombobox.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpview.c: removed calls to
gimp_view_renderer_unrealize() which are not needed anymore
because we don't allocate a GC in the renderer any longer.
* app/widgets/gimpcellrendererdashes.c: removed a redundant
cast.
svn path=/trunk/; revision=24039
2007-11-01 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrenderer.c (gimp_view_renderer_draw):
removed code that draws a diagonal line across a renderer
without
context. Emit a warning instead; this shouldn't happen any
longer.
svn path=/trunk/; revision=24038
2007-10-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimpwidgets-utils.c (gimp_text_buffer_load): close
the file handle.
svn path=/trunk/; revision=23978
2007-10-17 Sven Neumann <sven@gimp.org>
* app/tools/gimpselectionoptions.c: removed a frame.
* app/tools/gimptransformoptions.c: tweaked layout to reduce
horizontal extent.
* app/widgets/gimpviewablebox.c (gradient_box_new): use an icon
for the "Reverse" check button.
svn path=/trunk/; revision=23857
2007-10-16 Sven Neumann <sven@gimp.org>
* libgimp/gimppatternselectbutton.c
* libgimp/gimpbrushselectbutton.c
* libgimpwidgets/gimpcolorarea.c
* app/widgets/gimpdnd.c
* app/widgets/gimpdockbook.c: set GDK_WINDOW_TYPE_HINT_DND on
popup windows used to implement a DND cursor.
svn path=/trunk/; revision=23841
2007-10-14 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimppropwidgets.[ch] (gimp_prop_size_entry_new):
added parameter "gboolean property_is_pixel" which indicates that
the stored property value is always in pixels and not in the
selected unit.
* app/tools/gimptextoptions.c
* app/widgets/gimpstrokeeditor.c: pass FALSE to keep the old
behavior.
* app/tools/gimprectangleoptions.c (gimp_rectangle_options_gui):
added property "fixed-unit" which is used for all fixed values
now. Perhaps we need separate units for width/height/size. Enable
the unit menu on the "Width" and "Height" size entries of the
"Fixed" section and configure them to store the value in
pixels. This was the easy part, some other widgets still need unit
support.
* app/tools/gimprectangletool.c (gimp_rectangle_tool_start): set
the image's resolution on the size entries changed above.
svn path=/trunk/; revision=23821
2007-10-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrendererimage.c
(gimp_view_renderer_image_render): as some kind of workaround
for
bug #459518, show the fallback icon when rendering the preview
for
an invisible channel.
svn path=/trunk/; revision=23768
2007-10-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcolorpanel.[ch]: reverted the live update change
from bug #451568. It causes breakage such as bug #484757.
svn path=/trunk/; revision=23762
2007-09-26 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontrollerwheel.c (gimp_controller_wheel_scroll):
fixed check for modifier keys and always return on a matched
event(bug #480319). Also reordered the list of events as the code
does not any longer rely on a certain order.
svn path=/trunk/; revision=23657
2007-09-25 Sven Neumann <sven@gimp.org>
* app/widgets/gimpwidgets-utils.c (gimp_widget_accel_changed):
show the keyboard shortcut in brackets, as we do in other places.
svn path=/trunk/; revision=23649
2007-09-20 Sven Neumann <sven@gimp.org>
* app/core/gimpimage.[ch]: added a load_proc member to GimpImage
and getters and setters for it.
* app/file/file-open.c (file_open_image): set the load
procedure,
but only if it hasn't been set already. Use the MIME type from
the
load procedure that is set on the image.
* tools/pdbgen/pdb/fileops.pdb (file_load_invoker): set the load
procedure. This causes it to be set when the URI plug-in calls
gimp-file-load to load the image.
* app/pdb/fileops_cmds.c: regenerated.
* app/widgets/gimpimagepropview.c
(gimp_image_prop_view_label_set_filetype): use the MIME type
from
the load procedure, in case that no save procedure is set.
svn path=/trunk/; revision=23597
2007-09-18 Michael Natterer <mitch@gimp.org>
* configure.in: replaced HAVE_GDK_QUARTZ conditional by
--disable-toolbox-menu configure switch which defaults to "yes"
normally and to "no" on quartz.
* app/widgets/gimptoolbox.c: changed #ifdef accordingly.
* app/plug-in/Makefile.am
* app/plug-in/plug-in-menu-path.[ch]: new generic machanism to map
around menu locations. If ENABLE_TOOLBOX_MENU is false, map
"Xtns" and "Help" from <Toolbox> to <Image>.
* app/plug-in/gimppluginmanager-menu-branch.c
* app/plug-in/gimppluginprocedure.c: run all menu paths through the
new mapping function.
* menus/Makefile.am
* menus/menus.xsl
* menus/image-menu.xml.in: add both the "Xtns" and "Help" menus to
the image menubar if TOOLBOX_MENU is false.
svn path=/trunk/; revision=23581
2007-09-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdockbook.[ch]: when DND-hovering > 500ms over a
notebook tab, switch to that tab's page. Suggested by Saul Goode.
svn path=/trunk/; revision=23573
2007-09-13 Sven Neumann <sven@gimp.org>
* app/text/gimpfontlist.c (gimp_font_list_add_font): corrected
Pango version number in comment.
* app/widgets/gimpundoeditor.c (gimp_undo_editor_set_context):
chain up after initializing the context. Fixes a warning about
gimp_viewable_get_new_preview() being called with a NULL context.
svn path=/trunk/; revision=23523
2007-09-12 Michael Natterer <mitch@gimp.org>
Bring back our menus when building on OS X but not against the
quartz GDK backend:
* configure.in: added conditional HAVE_GDK_QUARTZ.
* menus/Makefile.am: use it when moving the help menu around.
* app/dialogs/preferences-dialog.c
* app/display/gimpdisplayshell.c
* app/gui/gtk-macmenu.c
* app/gui/gui.c
* app/widgets/gimptoolbox.c: use #ifdef GDK_WINDOWING_QUARTZ
instead of #ifdef HAVE_CARBON when enabling the global menubar.
svn path=/trunk/; revision=23512
2007-08-30 Michael Natterer <mitch@gimp.org>
First version of global menubar support for OSX. Work in progress.
* app/gui/Makefile.am
* app/gui/sync-menu.[ch]: new files containing code that takes
a GtkMenuShell and proxies it in the OSX global menubar. Taken
from http://developer.imendio.com/projects/gtk-macosx/menubar
* app/gui/gui.c: put the global image popup menu to the menubar.
* app/dialogs/preferences-dialog.c
* app/display/gimpdisplayshell.c
* app/widgets/gimptoolbox.c: #ifdef out all menubars in windows.
* app/Makefile.am (AM_LDFLAGS): add $(CARBON_LDFLAGS)
svn path=/trunk/; revision=23408
2007-08-15 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h: remove GimpPlugInDebug typedef.
* app/plug-in/plug-in-types.h: added it here instead.
* app/core/gimpchannel-combine.h
* app/widgets/gimppropwidgets.[ch]: match parameter names
in .c, .h and API docs to make gtk-doc happy.
svn path=/trunk/; revision=23275
2007-08-14 Sven Neumann <sven@gimp.org>
* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpwidgets.h
* libgimpwidgets/gimpwidgetstypes.h
* libgimpwidgets/gimpcolorprofilecombobox.[ch]
* libgimpwidgets/gimpcolorprofilestore.[ch]
* libgimpwidgets/gimpcolorprofilestore-private.h: new widget to
select color profiles.
* libgimpwidgets/gimpwidgets.def: updated.
* app/widgets/gimpprofilechooserdialog.[ch]: remember the name of
the last previewed profile.
* app/dialogs/preferences-dialog.c: use the new color profile
combo-box.
* plug-ins/common/lcms.c: use the new color profile combo-box.
svn path=/trunk/; revision=23253
2007-08-11 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimpbaseenums.[ch]
* libgimpbase/gimpenv.[ch]: changed enum GimpUserDirectory and API
of gimp_user_directory() so that g_get_user_special_dir() can be
used instead as soon as we depend on GLib 2.14.
* tools/pdbgen/enums.pl: regenerated.
* app/widgets/gimpfiledialog.c
* plug-ins/pygimp/gimpmodule.c: changed accordingly.
svn path=/trunk/; revision=23212
2007-08-11 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogramview.c
(gimp_histogram_view_draw_spike):
pass the maximum value double and draw the histogram one pixel
less
high. Fixes bug #465669.
svn path=/trunk/; revision=23208
2007-08-11 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gimppropwidgets.c
(gimp_prop_number_pair_entry_number_pair_user_override_notify):
Only set config user override property when it changed, to avoid
deadlock.
svn path=/trunk/; revision=23200
2007-08-10 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gimppropwidgets.c
(gimp_prop_number_pair_entry_config_notify): Fixed bug where
property notifications were checked againts hardcoded property
names instead of the ones configured to the
GimpPropNumberPairEntryData object.
svn path=/trunk/; revision=23191
2007-08-10 Martin Nordholts <martinn@svn.gnome.org>
* app/tools/gimprectangleoptions.c: Added
"default-aspect-numerator", "default-aspect-denominator",
"default-fixed-size-width" and "default-fixed-size-height" as
non-serialized tool options, and "overridden-fixed-aspect" and
"overridden-fixed-size" as serialized ones.
* app/widgets/gimppropwidgets.c (gimp_prop_number_pair_entry_*):
Added support for the new GimpRectangleOptions.
svn path=/trunk/; revision=23187
2007-08-10 Martin Nordholts <martinn@svn.gnome.org>
* app/widgets/gimppropwidgets.[ch]: Merged gimp_prop_size_2d_* and
gimp_prop_aspect_ratio_* to gimp_prop_number_pair_*.
* app/tools/gimprectangleoptions.c (gimp_rectangle_options_gui):
Use the merged gimp_prop_number_pair_entry_new.
svn path=/trunk/; revision=23184
2007-08-08 Martin Nordholts <martinn@svn.gnome.org>
Renamed GimpRatioEntry to GimpNumberPairEntry, and generalized the
code a lot, so that it can be used both for 'Fixed: Aspect ratio'
and 'Fixed: Size'. Support is also added for having default values
and a 'user overrided' value mode.
* libgimpwidgets/gimpnumberpairentry.[ch]: Now contains the
rewrite and generalization of GimpRatioEntry.
(gimp_number_pair_entry_get_type)
(gimp_number_pair_entry_new)
(gimp_number_pair_entry_set_default_values)
(gimp_number_pair_entry_set_values)
(gimp_number_pair_entry_get_values): New libgimpwidget API.
* app/widgets/gimppropwidgets.[ch] (gimp_prop_size_2d_new): Added
new helper widget for setting up a GimpNumberPairEntry for the
Fixed: Size entry in the Rectangle Options.
* app/tools/gimprectangleoptions.c (gimp_rectangle_options_gui):
Use the new gimp_prop_size_2d_entry for the Fixed: Size entry.
* libgimpwidgets/gimpwidgets.def: Removed gimp_ratio_entry_* and
added gimp_number_pair_entry_*.
* libgimpwidgets/gimpwidgets.h * libgimpwidgets/gimpwidgetstypes.h
* libgimpwidgets/Makefile.am (libgimpwidgets_2_0_la_sources)
(libgimpwidgetsinclude_HEADERS): Updated accordingly.
svn path=/trunk/; revision=23154
2007-08-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimpprofilechooserdialog.[ch]: use a text view in a
scrolled window for the preview area.
svn path=/trunk/; revision=23152
2007-08-08 Sven Neumann <sven@gimp.org>
* app/dialogs/preferences-dialog.c: added buttons to unset the
color profiles.
* app/widgets/gimppropwidgets.c
* libgimpwidgets/gimppropwidgets.c: minor cleanup.
svn path=/trunk/; revision=23145
2007-08-07 Sven Neumann <sven@gimp.org>
* app/gui/gui-vtable.c (gui_pdb_dialog_new): as a workaround for
bug #360106, set a timeout that presents the dialog window.
* app/widgets/gimppdbdialog.c (gimp_pdb_dialog_set_property):
formatting.
svn path=/trunk/; revision=23133
2007-08-06 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpcolordisplay.[ch]: added GimpColorConfig
and
GimpColorManaged as construct-only properties.
Deprecated gimp_color_display_new().
* libgimpwidgets/gimpwidgets.def: updated for new symbols.
* app/widgets/gimpcolordisplayeditor.c: use g_object_new()
instead
of gimp_color_display_new().
* modules/cdisplay_lcms.c: use the image's embedded color
profile
for the display filter. Assume sRGB if no monitor profile is
configured.
* app/display/gimpdisplayshell.c:
* app/display/gimpdisplayshell-filter.[ch]: pass the display as
color-managed object to the display filter.
svn path=/trunk/; revision=23127
2007-08-02 Michael Natterer <mitch@gimp.org>
* app/tools/gimpcroptool.c (gimp_crop_tool_cursor_update): no need
to set the tool cursor here, we already do that in init() and
never change it.
* app/widgets/gimpcursor.c (gimp_cursor_new): don't show the move
cursor and the move modifier at the same time. Some small
cleanups.
svn path=/trunk/; revision=23104
2007-07-06 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_name_canceled): removed debug output.
(gimp_container_tree_view_clear_items)
(gimp_container_tree_view_remove_item): removed warning; the bug
this warning referred to has been closed as WONTFIX.
svn path=/trunk/; revision=22889
2007-07-05 Sven Neumann <sven@gimp.org>
* app/widgets/gimperrordialog.c (gimp_error_dialog_add): don't
count the number of repeated messages when the error messages are
being redirected to stderr already.
svn path=/trunk/; revision=22876
2007-06-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimpimagecommenteditor.[ch]: fixed spelling error.
* app/widgets/gimpcolorpanel.[ch]: applied slightly modified patch
from Tor Lillqvist that changes the ColorPanel to provide live
updates (bug #451568).
svn path=/trunk/; revision=22850
2007-06-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontrollerlist.c (gimp_controller_list_init):
use GTK_STOCK_PROPERTIES instead of GTK_STOCK_EDIT.
svn path=/trunk/; revision=22849
2007-06-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimpimagepropview.c: show the full filename instead
of the basename and ellipsize it. The tooltip was too hard to
discover.
svn path=/trunk/; revision=22847
2007-06-27 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpimagecommenteditor.[ch]: new widget derived from
GimpImageParasiteView. Basically the code that used to live in
image-properties-dialog.c.
* app/dialogs/image-properties-dialog.c: use the comment editor.
svn path=/trunk/; revision=22846
2007-06-27 Sven Neumann <sven@gimp.org>
* app/dialogs/image-properties-dialog.c: allow to edit the comment.
* app/widgets/gimpimageprofileview.c: enable line wrapping.
svn path=/trunk/; revision=22845
2007-06-26 Michael Natterer <mitch@gimp.org>
Invalidate the image preview after the projection is
completely constructed. Fixes bug #449141.
* app/core/gimpmarshal.list: add VOID:BOOLEAN
* app/core/gimpimage.[ch]: add boolean parameter
invalidate_preview to the "flush" signal.
* app/core/gimpprojection.[ch]: add boolean member
invalidate_preview to the GimpProjection struct. Set it to TRUE if
it was TRUE in the image's "flush" signal. When the projection is
completely constructed after a flush, invalidate the image's
preview.
* app/display/gimpdisplay-handlers.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimpimagedock.c
* app/widgets/gimpimageeditor.c: changed callback signatures
accordingly.
svn path=/trunk/; revision=22840
2007-06-26 Sven Neumann <sven@gimp.org>
* app/widgets/gimpimageprofileview.c
(gimp_image_profile_view_query):
use the name if the description is empty.
svn path=/trunk/; revision=22839
2007-06-26 Sven Neumann <sven@gimp.org>
* app/dialogs/image-properties-dialog.c
* app/widgets/gimpimageprofileview.[ch]: show comment and color
profile in text views instead of using labels. Deals much better
with longer texts.
svn path=/trunk/; revision=22837
2007-06-26 Sven Neumann <sven@gimp.org>
* app/widgets/gimpimagepropview.c
(gimp_image_prop_view_label_set_filename): set the full name as
tooltip.
svn path=/trunk/; revision=22835
2007-06-25 Sven Neumann <sven@gimp.org>
* configure.in: removed extra check for gthread and fold it into
the GLIB and GTK checks.
* */Makefile.am: changed accordingly.
* app/main.c (main): always call g_thread_init().
svn path=/trunk/; revision=22832
2007-06-11 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-preview.c: don't disable image previews
when
layer previews are disabled. We do not any longer create the
image
preview from the layer previews.
* app/core/gimpimagefile.c
* app/widgets/gimpthumbbox.c
* tools/pdbgen/pdb/image.pdb: thumbnail rendering is not any
longer disabled if layer previews are turned off.
* app/config/gimprc-blurbs.h (THUMBNAIL_SIZE_BLURB): removed
note
that has become invalid by the change above.
* app/core/gimpitem-preview.c: cosmetics.
* app/pdb/image_cmds.c: regenerated.
svn path=/trunk/; revision=22756
2007-06-09 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-resize.[ch]: added
gimp_image_resize_to_selection().
* app/actions/image-actions.c
* app/actions/image-commands.[ch]
* app/widgets/gimphelp-ids.h
* menus/image-menu.xml.in: added an action and a menu item for
it.
Fixes bug #335672.
* plug-ins/common/align_layers.c: resolved a conflicting
mnemonic.
svn path=/trunk/; revision=22749
2007-06-08 Sven Neumann <sven@gimp.org>
* app/core/gimpviewable.h: #define GIMP_VIEWABLE_PRIORITY_IDLE,
which is even lower than G_PRIORITY_LOW.
* app/core/gimpundo.c
* app/widgets/gimpviewrenderer.c: create previews with
GIMP_VIEWABLE_PRIORITY_IDLE so that they are run after the
projection has been invalidated.
svn path=/trunk/; revision=22743
2007-06-07 Sven Neumann <sven@gimp.org>
* app/text/Makefile.am
* app/core/Makefile.am
* app/tools/Makefile.am
* app/display/Makefile.am
* app/widgets/Makefile.am
* app/base/Makefile.am
* app/paint/Makefile.am
* app/plug-in/Makefile.am
* libgimp/Makefile.am
* libgimpthumb/Makefile.am
* tools/pdbgen/Makefile.am
* libgimpwidgets/Makefile.am: applied the remaining parts of the
patch from Daniel Richard G. to fix out-of-source-tree builds
(bug #444960).
svn path=/trunk/; revision=22735
2007-05-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolbox-dnd.c (gimp_toolbox_drop_drawable): set
"linked" and "lock-alpha" to FALSE too.
svn path=/trunk/; revision=22649
2007-05-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolbox-dnd.c (gimp_toolbox_drop_drawable): also
set the mode of the new layer to NORMAL and its opacity to OPAQUE.
svn path=/trunk/; revision=22647
2007-05-29 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell-dnd.c
* app/widgets/gimptoolbox-dnd.c: make drop-duplicated drawables
visible before adding them to the image. Spotted by Jimmac.
svn path=/trunk/; revision=22645
2007-05-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfgbgview.[ch]: derive from GtkWidget instead of
GtkDrawingArea so we save a GdkWindow and render on the correct
background color also for inactive notebook tabs.
svn path=/trunk/; revision=22641
2007-05-27 Michael Natterer <mitch@gimp.org>
* app/core/gimp-utils.[ch] (gimp_container_get_neighbor_of_active):
new utility function which returns the neighbor of a container's
active item.
* app/widgets/gimpcontainerview-utils.[ch]
(gimp_container_view_remove_active): remove a container view's
active item, using above function to select its neighbor.
* app/actions/data-commands.c
* app/actions/buffers-commands.c
* app/actions/documents-commands.c
* app/actions/templates-commands.c: use above functions to select
reasonable items when deleting from a list (instead of always
jumping to the first item).
svn path=/trunk/; revision=22632
2007-05-24 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpsessioninfo.[ch]: removed more code and cleaned
up the API.
* app/widgets/Makefile.am
* app/widgets/gimpsessioninfodock.[ch]: added the removed code here.
* app/widgets/gimpdialogfactory.c: changed accordingly.
svn path=/trunk/; revision=22604
2007-05-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimppropwidgets.c (gimp_prop_aspect_ratio_new):
use GSlice and plugged a memleak.
svn path=/trunk/; revision=22573
2007-05-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpthumbbox.c
* libgimp/gimpprogressbar.c
* plug-ins/script-fu/script-fu-interface.c: use Gtk functions to
manually iterate the main loop because they release the Gdk lock
correctly around calling the GLib main loop functions.
svn path=/trunk/; revision=22516
2007-05-16 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_sensitive):
apply sensitivity state to the Cancel button as well.
(gimp_file_dialog_progress_start): make the Cancel button sensitive
if the progress is cancelable.
* app/widgets/gimpthumbbox.c (gimp_thumb_box_progress_start): if
embedded in a GimpFileDialog, make its Cancel button sensitive if
the progress is cancelable
svn path=/trunk/; revision=22506
2007-05-16 Sven Neumann <sven@gimp.org>
* app/widgets/gimpthumbbox.[ch]: combined the two progress bars
(when loading multiple thumbnails) into a single one using a
GimpSubProgress.
svn path=/trunk/; revision=22503
2007-05-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimptexteditor.c: use GtkWindow::transient-for just
for the fun of using another GTK+ 2.10 feature.
svn path=/trunk/; revision=22454
2007-05-03 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcolorframe.c (gimp_color_frame_update): hide the
Index label if the color index is -1 (happens with sample_average).
svn path=/trunk/; revision=22387
2007-04-21 Sven Neumann <sven@gimp.org>
* app/widgets/dbus-service.xml
* app/widgets/gimpdbusservice.[ch]: use "uri" instead of
"filename"
in the D-Bus methods.
svn path=/trunk/; revision=22298
2007-04-17 Sven Neumann <sven@gimp.org>
Allow other applications to open images in GIMP as if they were
new images (without associating a filename). Fixes bug #423118.
* app/file/file-open.[ch]: added parameter 'as_new' to
file_open_image() and its variants.
* app/actions/data-commands.c
* app/actions/documents-commands.c
* app/actions/file-commands.c
* app/core/gimpimagefile.c
* app/dialogs/file-open-dialog.c
* app/dialogs/file-open-location-dialog.c
* app/widgets/gimptoolbox.c
* app/widgets/gimptoolbox-dnd.c: changed accordingly.
* app/app.[ch]
* app/main.c: added new command-line option '--as-new'.
* app/widgets/gimpdbusservice.[ch]
* app/widgets/dbus-service.xml: added new method "OpenAsNew" to the
D-Bus interface.
* docs/gimp.1.in: document the new command-line option.
svn path=/trunk/; revision=22264
2007-04-16 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcellrendereraccel.[ch]: remove GimpCellRenererAccel.
* app/widgets/gimpactionview.c: use GtkCellRendererAccel instead.
If an action has no label, use its name as label. Always show the
"Name" column because there are too many actions with confusingly
similar names.
svn path=/trunk/; revision=22256
2007-03-31 Michael Natterer <mitch@gimp.org>
Statusbar messages shouldn't depend on the emission of unrelated
signals:
* app/widgets/gimpuimanager.c (gimp_ui_manager_connect_proxy):
connect to the menu items' "select" and "deselect" signals here...
(gimp_ui_manager_item_realize): ...instead of here.
svn path=/trunk/; revision=22206
2007-03-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdbusservice.[ch]
* app/widgets/dbus-service.xml: added a boolean return value to
the D-Bus Open method.
svn path=/trunk/; revision=22182
2007-03-27 Sven Neumann <sven@gimp.org>
* app/file/file-open.[ch]: changed file_open_from_command_line()
to deal with a single filename only.
* app/widgets/gimpdbusservice.[ch]
* app/widgets/dbus-service.xml: changed the D-Bus Open method to
take only a single filename.
* app/app.c
* app/main.c: changed accordingly.
svn path=/trunk/; revision=22181
2007-03-26 Sven Neumann <sven@gimp.org>
* app/widgets/dbus-service.xml
* app/widgets/gimpdbusservice.h: be more specific in the D-Bus
service and interface name.
svn path=/trunk/; revision=22171
2007-03-20 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcursorview.[ch] (gimp_color_frame_update_cursor):
disallow passing a NULL image.
(gimp_color_frame_clear_cursor): new function that clears the
cursor view.
* app/widgets/gimpcolorframe.c (gimp_color_frame_update): if
color_frame->sample_valid is FALSE, don't do any color
transformations and don't construct any string because none
of them is going to be used (all labels will show "n/a").
* app/display/gimpstatusbar.[ch]: renamed set_cursor() API
to update_cursor().
* app/display/gimpdisplayshell-cursor.c
(gimp_display_shell_update_cursor): move variables to local
scopes. Follow GimpStatusbar API change. Cleanup.
(gimp_display_shell_clear_cursor): ditto. Follow GimpColorFrame
API change.
svn path=/trunk/; revision=22153
2007-03-17 Michael Natterer <mitch@gimp.org>
Make the height of the previews in data editors configurable.
Fixes bug #337757.
* app/widgets/gimpdataeditor.[ch]: add member "view" which needs
to be set by subclasses. Add style property "minimal-height" which
defaults to 96. Add style_set() implementation which sets
editor->view's height to the configured value.
* app/widgets/gimpbrusheditor.[ch]
* app/widgets/gimpgradienteditor.[ch]
* app/widgets/gimppaletteeditor.[ch]: use data_editor->view for
storing the view widget and removed own view members. Remove
separate #defines for the view's default width and height, it's
width follows the dialog anyway.
* themes/Default/gtkrc: document the default value of 96.
* themes/Small/gtkrc: set it to 64.
svn path=/trunk/; revision=22137
2007-03-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdialogfactory.[ch]: added new ugly function
gimp_dialog_factory_hide_dialog() which does gtk_widget_hide() and
sets the stored visibility state to GIMP_DIALOG_VISIBILITY_INVISIBLE
in order to avoid re-showing dialogs that were already insivible due
to TAB-toggling when we gtk_widget_hided them.
* app/tools/gimptransformtool.c
* app/tools/gimpimagemaptool.c: use the new function instead of
gtk_widget_hide() to hide tool dialogs. Fixes bug #414006.
svn path=/trunk/; revision=22111
2007-03-10 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginprocedure.[ch]: cache the result of
gimp_plug_in_procedure_get_label() and made the return value
const.
* app/actions/plug-in-actions.c
* app/plug-in/gimpplugin-cleanup.c
* app/plug-in/gimppluginmanager.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimpfileprocview.c
* app/widgets/gimpimagepropview.c: changed accordingly.
* app/file/file-open.c
* app/file/file-save.c: include the plug-in name (or actually
the
label) in the error messages.
svn path=/trunk/; revision=22095
2007-03-09 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h: include "libgimpmath/gimpmathtypes.h"
instead of "libgimpmath/gimpmath.h".
* app/core/gimpbrush.h
* app/paint/gimppaintcore.h
* app/paint/gimpperspectiveclone.h
* app/text/gimptext.h
* app/tools/gimptransformtool.h: include gimpvector.h and
gimpmatrix.h explicitely where they are needed in public structs.
* app/*/*.c
* tools/pdbgen/pdb/paths.pdb: include "libgimpmath/gimpmath.h"
where needed.
* app/pdb/paths_cmds.c: regenerated.
svn path=/trunk/; revision=22084
2007-02-20 Tor Lillqvist <tml@novell.com>
* app/widgets/gimpcontrollereditor.c
(gimp_controller_editor_sel_changed): Guard against event being
NULL.
svn path=/trunk/; revision=21963
2007-02-18 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimppluginprocedure.[ch]: add "locale_domain" and
"help_domain" members and APIs to get/set them. Removed locale and
help domain parameters from all other functions.
* app/plug-in/gimpplugin.c (gimp_plug_in_add_temp_proc)
* app/plug-in/plug-in-def.c (plug_in_def_add_procedure)
(plug_in_def_set_locale_domain_name)
(plug_in_def_set_help_domain_name): make sure all plug-in procedures
have locale and help domains.
* app/plug-in/gimppluginmanager.[ch]: removed function
gimp_plug_in_manager_get_label().
* app/plug-in/gimppluginmanager.c
* app/plug-in/gimpplugin-cleanup.c
* app/actions/plug-in-actions.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimpfileprocview.c
* app/widgets/gimpimagepropview.c: changed (simplified) accordingly.
svn path=/trunk/; revision=21937
2007-02-18 Sven Neumann <sven@gimp.org>
* app/widgets/gimppixbuf.c (gimp_pixbuf_targets_add): skip
Windows
ICO as writable format. It's not well suited as a general image
exchange format and the GdkPixbuf save routine seems to be
buggy.
svn path=/trunk/; revision=21936
2007-02-17 Michael Natterer <mitch@gimp.org>
* app/core/gimp-utils.[ch]
* app/core/gimp.c
* app/widgets/gimpcontrollerinfo.c
* libgimpwidgets/gimpcontroller.c: removed various boolean_handled
signal accumulators and use g_signal_accumulator_true_handled().
svn path=/trunk/; revision=21933
2007-02-13 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontrollerlist.c
(gimp_controller_list_edit_clicked):
don't use button as parent widget, it might be NULL.
svn path=/trunk/; revision=21907
2007-02-12 Sven Neumann <sven@gimp.org>
* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpwidgetstypes.h
* libgimpwidgets/gimpwidgets.h
* libgimpwidgets/gimpstringcombobox.[ch]: added GimpStringComboBox.
* libgimpwidgets/gimppropwidgets.[ch]: added a prop widget
constructor that uses the new widget.
* libgimpwidgets/gimpwidgets.def: updated.
* app/widgets/gimpcontrollereditor.c: use a GimpStringComboBox if
the module specifies a tree model with string values.
* modules/gimpinputdevicestore.c: minor cleanup.
* modules/controller_linux_input.c: keep a pointer to the input
device store and unref it in the finalizer.
svn path=/trunk/; revision=21900
2007-02-12 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontrollerlist.c (gimp_controller_list_edit_clicked):
use a GimpDialog instead of a GimpViewableDialog.
svn path=/trunk/; revision=21899
2007-02-12 Sven Neumann <sven@gimp.org>
* app/widgets/gimppropwidgets.c
* libgimpwidgets/gimppropwidgets.c: most property widgets rely on
a writable property. Check for that or make the widget non-editable
if the G_PARAM_WRITABLE flag is unset.
svn path=/trunk/; revision=21898
2007-02-12 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontrollereditor.c: minor refactoring.
* libgimpwidgets/gimppropwidgets.c (gimp_prop_label_new): allow
this function to be used with properties that are transformable
to
string values, not only with string properties.
svn path=/trunk/; revision=21896
2007-02-08 Sven Neumann <sven@gimp.org>
* app/tools/gimprectangleoptions.c
* app/widgets/gimppropwidgets.[ch]: cleaned out some cruft. Still
work in progress.
svn path=/trunk/; revision=21872
2007-02-07 Michael Natterer <mitch@gimp.org>
* app/tools/tools-enums.[ch]: remove enum GimpColorPickMode...
* app/widgets/widgets-enums.[ch]: ...and add it here.
* app/widgets/gimpgradienteditor.c: merge separate functions for
picking FG and BG colors and update the new color area from the
merged function.
svn path=/trunk/; revision=21863
2007-02-07 Sven Neumann <sven@gimp.org>
* app/dialogs/preferences-dialog.c
* app/widgets/gimpgrideditor.c: slightly increased the height of
color buttons.
svn path=/trunk/; revision=21862
2007-02-07 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpgradienteditor.[ch]: applied patch from Joao
S. O. Bueno Calligaris which adds a preview for the color the
cursor is currently hovering and reduces excess precision when
displaying color components and gradient positions (bug #400907).
svn path=/trunk/; revision=21858
2007-02-02 Sven Neumann <sven@gimp.org>
* app/widgets/gimpitemtreeview.c (gimp_item_tree_view_toggle_clicked):
changed function signature according to changes in internal undo API.
svn path=/trunk/; revision=21836
2007-02-01 Sven Neumann <sven@gimp.org>
* app/config/gimpdisplayconfig.c
* app/widgets/gimpwidgets-utils.c (gimp_get_screen_resolution):
changed the default monitor resolution to 96 dpi and also use that
as a fallback value.
svn path=/trunk/; revision=21830
2007-01-23 Sven Neumann <sven@gimp.org>
* app/widgets/dbus-service.xml: added Activate method.
* app/widgets/gimpdbusservice.[ch]: raise the toolbox from the
Activate method. Do nothing when no URIs are passed
* app/main.c: try the Activate method on the org.gimp.GIMP
service
when being called without any filenames on the command-lines.
svn path=/trunk/; revision=21761
2007-01-22 Sven Neumann <sven@gimp.org>
* app/file/file-open.[ch]: added utility function that handles
opening files passed on the command-line.
* app/app_procs.c
* app/widgets/gimpdbusservice.c: use the new function instead of
duplicating the code.
svn path=/trunk/; revision=21759
2007-01-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdatafactoryview.c: don't add the open-as-image
button to all data factory views.
* app/widgets/gimppatternfactoryview.c: but do it here for the
Pattern dialog.
svn path=/trunk/; revision=21755
2007-01-20 Michael Natterer <mitch@gimp.org>
Close the display after "Save as" when invoked via the "Close
Without Saving" dialog. Fixes bug #383700.
* app/actions/actions-types.h: added enum GimpSaveMode { SAVE,
SAVE_AS, SAVE_A_COPY, SAVE_AND_CLOSE }.
* app/actions/file-actions.c: changed the 4 save actions into
GimpEnumActions with above enum as values.
* app/actions/file-commands.[ch]: merged the save callbacks into
one and pass a "close_after_saving" boolean to
file_save_dialog_show().
* app/widgets/gimpfiledialog.[ch]: added "gboolean
close_after_saving" parameter to gimp_file_dialog_set_image() and
to the GimpFileDialog struct.
* app/dialogs/file-save-dialog.c: if the file was saved
successfully and close_after_saving is TRUE, close the display if
the image has not become dirty again in the meantime.
svn path=/trunk/; revision=21743
2007-01-19 Sven Neumann <sven@gimp.org>
* INSTALL
* configure.in: check for D-Bus GLib bindings.
* app/Makefile.am
* app/main.c: check if an interactive GIMP instance proposes
itself on the D-Bus and delegate to it. Allow this behaviour to be
overridden by using the --new-instance command-line option.
* app/widgets/Makefile.am
* app/widgets/gimpdbusservice.[ch]
* app/widgets/dbus-service.xml: added an object that offers a
D-Bus service.
* app/gui/Makefile.am
* app/gui/gui.c: connect to the D-Bus and export the GimpDBusService.
svn path=/trunk/; revision=21737
2007-01-16 Sven Neumann <sven@gimp.org>
* app/widgets/gimpprofilechooserdialog.c: use GTK_RESPONSE_ACCEPT
to make it work properly with GtkFileChooserButton.
svn path=/trunk/; revision=21723
2007-01-16 Sven Neumann <sven@gimp.org>
* app/widgets/gimpprofilechooserdialog.c: include *.icm files in
the filter. Add a shortcut to the systemwide color profile
folder.
svn path=/trunk/; revision=21722
2007-01-13 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c
* app/widgets/gimpthumbbox.[ch]: save some string copies by
changing gimp_thumb_box_set_uri() to gimp_thumb_box_take_uri().
svn path=/trunk/; revision=21701
2007-01-12 Michael Natterer <mitch@gimp.org>
* app/core/gimpdashpattern.[ch]: register GIMP_TYPE_DASH_PATTERN
as boxed type. Added "new" to function names which create dash
patterns. Changed and renamed GValue functions to functions which
convert the dash pattern between GArray and GValueArray.
* app/core/gimpstrokeoptions.c
* app/widgets/gimpcellrendererdashes.c
* app/widgets/gimpstrokeeditor.c: changed accordingly.
* app/widgets/gimpdasheditor.c: ditto. Get rid of the recently
added manual memory management. The list store manages boxed types
all by itself.
svn path=/trunk/; revision=21698
2007-01-04 Tor Lillqvist <tml@novell.com>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_image): Add
workaround for a problem that occurs on Win32 when one has opened
an image from the root of a drive letter and then does Save As.
svn path=/trunk/; revision=21639
2006-12-30 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppropwidgets.c
(gimp_prop_ratio_entry_notify): compile before you commit :P
svn path=/trunk/; revision=21615
2006-12-30 Simon Budig <simon@gimp.org>
* libgimpwidgets/gimpratioentry.[ch]: New files implementing a widget
for entering ratios. Will be improved over time...
* libgimpwidgets/gimpwidgetstypes.h
* libgimpwidgets/gimpwidgets.h
* libgimpwidgets/Makefile.am: changed accordingly.
* app/widgets/gimppropwidgets.c: use it for the crop/rectangle
select tools.
svn path=/trunk/; revision=21613
2006-12-22 Sven Neumann <sven@gimp.org>
* app/core/gimp-documents.c
* app/core/gimp-parasites.c
* app/core/gimp-templates.c
* app/core/gimp-units.c
* app/widgets/gimpcontrollers.c: changed the header that is
written to config files that are rewritten on exit.
* app/tools/gimpiscissorstool.c: comment.
2006-12-18 Sven Neumann <sven@gimp.org>
* app/plug-in/plug-in-icc-profile.[ch]
* plug-ins/common/lcms.c: removed run-mode argument from
plug-in-icc-profile-info. Added new procedure to obtain
information
about a color profile on disk.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpprofilechooserdialog.[ch]: added a first draft
of a file-chooser dialog for selecting a color profile.
* app/dialogs/preferences-dialog.c: use it.
2006-12-15 Sven Neumann <sven@gimp.org>
* app/widgets/gimpuimanager.[ch]: added new function
gimp_ui_manager_activate_action() as a shortcut for looking up the
action and activating it.
* app/actions/dialogs-actions.c
* app/display/gimpdisplayshell-close.c
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimptoolbox.c
* app/widgets/gimptooloptionseditor.c: use the new function.
* app/actions/file-commands.c
* app/dialogs/file-save-dialog.c: minor code cleanup.
2006-12-14 Michael Natterer <mitch@gimp.org>
Applied slightly modified patch from David Gowers which abstracts
away and unifies seraching a color in a palette (bug #132146):
* app/core/gimppalette.[ch]: added gimp_palette_find_entry().
* app/widgets/gimpcolorselectorpalette.c
* app/widgets/gimppaletteeditor.c: use it for selecting matching
colors from the active palette.
2006-12-12 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockbook.c (gimp_dockbook_get_tab_widget): check
ui_manager before accessing it. Fixes warnings on destruction.
2006-12-12 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell.c (gimp_display_shell_new):
slightly increased size of the quick-mask and zoom-mode buttons.
Also changed the style to not displace the icon when the buttons
are pressed.
* app/display/gimpdisplayshell.[ch]
* app/display/gimpdisplayshell-appearance.c: changed "origin_button"
to "origin". Don't draw it as a button but use an event box just
like we do for the navigation icon in the lower right corner.
* app/display/gimpdisplayshell-title.c
(gimp_display_shell_format_title): use the viewable description
for the drawable's name. We don't want to see "Qmask" in the
statusbar.
* app/widgets/gimpwidgets-utils.c (gimp_button_menu_position): fix
for the case where button is not really a GtkButton but has it's
own window.
* app/widgets/gimphelp-ids.h: changed help ID, removed unused one.
* libgimpwidgets/gimpstock.c
* themes/Default/images/Makefile.am
* themes/Default/images/stock-quick-mask-off-12.png
* themes/Default/images/stock-quick-mask-off-16.png
* themes/Default/images/stock-quick-mask-on-12.png
* themes/Default/images/stock-quick-mask-on-16.png: cropped empty
space from the quick-mask icon.
2006-12-11 Sven Neumann <sven@gimp.org>
* app/core/gimptooloptions.[ch]: added API to delete saved
tool-options.
* app/tools/gimp-tools.c: don't deal with saving presets, just
load them on startup. Create the tool-options directory when
saving tool-options.
* app/core/gimptoolpresets.[ch]: added new signal that is
emitted
whenever the presets changes. Create the tool-options directory
when saving a preset.
* app/widgets/gimptooloptionseditor.[ch]: listen to the
"changed"
signal of GimpToolPresets and queue an idle save.
2006-12-10 Sven Neumann <sven@gimp.org>
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimptoolpresets.[ch]: added GimpToolPresets, derived
from GimpList.
* app/core/gimptoolinfo.[ch]: use the new type, renamed
member "options_presets" to "presets".
* app/actions/tool-options-actions.c
* app/actions/tool-options-commands.c
* app/core/gimptooloptions.[ch]
* app/menus/tool-options-menu.c
* app/widgets/gimptooloptionseditor.c: changed accordingly.
* app/tools/gimp-tools.c: let the GimpToolPresets object deal
with
loading and saving the presets from ${gimpdir}/tool-options.
* app/core/gimpcontainer-filter.c
* app/core/gimpdocumentlist.c
* app/core/gimplist.c
* app/text/gimpfontlist.c: use canonical property names.
2006-11-25 Michael Natterer <mitch@gimp.org>
* app/core/gimpbrushclipboard.c
* app/core/gimppatternclipboard.c
* app/core/gimptooloptions.c
* app/core/gimpundo.c
* app/widgets/gimpdevicestatus.c
* app/widgets/gimpdock.c
* app/widgets/gimpimageparasiteview.c
* app/widgets/gimpimagepropview.c: no need to cast the return
value of g_value_get_object(), it's a gpointer.
2006-11-25 Simon Budig <simon@gimp.org>
* libgimpwidgets/gimpresolutionentry.c
* libgimpwidgets/gimpwidgets.def: fix typo in a function name.
* app/widgets/gimpgradienteditor.c
* app/widgets/gimppaletteeditor.c
* app/actions/gradient-editor-actions.c
* app/actions/palette-editor-actions.c: handle all enum values
and use sane ones.
* app/widgets/gimpcontrollerinfo.c: fix a warning.
2006-11-23 Michael Natterer <mitch@gimp.org>
* plug-ins/help/gimphelpitem.[ch]
* plug-ins/help/gimphelplocale.[ch]: added some EEKy members to
the structs where the browser can store its state.
* plug-ins/helpbrowser/Makefile.am
* plug-ins/helpbrowser/helpbrowser.c: link against libgimphelp.a
and implement all the help ID mapping ourselves.
* plug-ins/helpbrowser/dialog.[ch]: added a tree view with the
help IDs of the current help domain. Double click to jump to an
item. Very early-stage code and very unusable, please try anyway.
* app/widgets/gimphelp.c: if the help browser is available, call
it directly, not via the help plug-in.
2006-11-22 Sven Neumann <sven@gimp.org>
* app/gui/gui-message.c (gui_message_error_console): don't raise
and focus the error console for not so severe error messages. Fixes
bug #322210 and bug #373254.
* app/widgets/gimperrorconsole.c (gimp_error_console_init): reduced
font sizes in error console.
2006-11-14 Sven Neumann <sven@gimp.org>
* app/dialogs/file-open-location-dialog.c: don't use
gimp_dialog_set_sensitive(); just make the entry not editable and
the dialog's OK button insensitive.
* app/widgets/gimpfiledialog.c
* app/widgets/gimpwidgets-utils.[ch]: moved gimp_dialog_set_sensitive()
implementation into gimp_file_dialog_set_sensitive().
2006-11-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcoloreditor.c
* app/widgets/gimpcolordialog.c: temporarily attach the context to
the GimpColorConfig object while calling the color selector's
set_config().
* app/widgets/gimpcolorselectorpalette.c: moved widget creation
and signal connecting to GimpColorSelector::set_config() and
use the context attached to the passed GimpColorConfig object.
2006-11-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.[ch]: added gimp_image_add_layers() which
takes a list of layers and vierport coordinates to center the
layers in.
* app/dialogs/file-open-dialog.c
* app/display/gimpdisplayshell-dnd.c
* app/widgets/gimplayertreeview.c: use it instead of having the
same code three times.
2006-11-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolorselectorpalette.c
(gimp_color_selector_palette_set_color): select a matching color
in the palette if possible.
2006-11-03 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/gimpcolorselectorpalette.[ch]: new widget featuring
a proof-of-concept palette color selector. It always shows the
current palette and doesn't bother to have any features yet. If I
don't get around finishing this I will disable it for the 2.4
release, but it's better kept in CVS than on my disk...
Addresses bug #132146.
* app/widgets/gimpcolordialog.c (gimp_color_dialog_new): attach
the passed context to the dialog so the palette selector can find
it (puke).
* app/gui/gui.c (gui_restore_callback): register the new object
with the GType system.
2006-11-03 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.[ch] (enum GimpUndoType): added value
GIMP_UNDO_GROUP_LAYER_ADD.
* app/file/file-open.[ch]: changed file_open_layer() to
file_open_layers(), added parameter "gboolean merge_visible",
return a GList of layers.
* app/dialogs/file-open-dialog.c
* app/display/gimpdisplayshell-dnd.c
* app/widgets/gimplayertreeview.c: pass merge_visible = FALSE and
add all returned layers to the image. Fixes bug #358082.
(contains lots of duplicated code, will factor that out later).
* tools/pdbgen/pdb/fileops.pdb (load_layer): pass merge_visible = TRUE
(load_layers): new wrapper which returns all the image's layers.
* app/pdb/fileops_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpfileops_pdb.[ch]: regenerated.
* libgimp/gimp.def: changed accordingly.
2006-11-03 Sven Neumann <sven@gimp.org>
* app/widgets/gimpimageparasiteview.[ch]: made non-abstract.
* app/dialogs/image-properties-dialog.c: show a "Comment" tab if
the image contains a "gimp-comment" parasite.
2006-11-03 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpimageparasiteview.[ch]: new abstract base class.
* app/widgets/gimpimageprofileview.[ch]: derive from
GimpImageParasiteView.
2006-11-01 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpviewrendererpalette.c
(gimp_view_renderer_palette_render): fix cell_width calculation
again so we don't cut off cells. Don't write beyond the buffer's
size, fixes random crashes.
2006-11-01 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpviewrendererpalette.c
(gimp_view_renderer_palette_render): make sure we calculate the
right number of columns and don't render more cells than columns
in one row.
2006-11-01 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdataeditor.c
* app/widgets/gimppaletteeditor.c: set the editable state, not
the
sensitivity of the entries according to the data's editable
state.
2006-10-27 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpcolorconfig-enums.[ch]
* libgimpconfig/gimpcolorconfig.c
* libgimpconfig/gimpconfig.def: removed unused enum
GimpColorFileOpenBehaviour.
* app/core/core-enums.[ch]: added enum GimpColorProfilePolicy.
* app/config/gimpcoreconfig.[ch]
* app/config/gimprc-blurbs.h: added property
"color-profile-policy".
* app/plug-in/Makefile.am
* app/plug-in/plug-in-icc-profile.[ch]: new files that wrap
usage
of the lcms plug-in.
* app/file/file-open.c: implement the user-configured policy for
embedded color profiles.
* app/widgets/gimpimageprofileview.c: use the wrapper to call
the
plug-in-icc-profile-info procedure.
* app/widgets/gimptoolbox-dnd.c: pass TRUE for "attach_comment"
parameter to gimp_create_image().
* app/core/gimptemplate.c
* app/file/Makefile.am: cosmetic changes.
* app/Makefile.am: some resorting to make the beast link again.
2006-10-26 Sven Neumann <sven@gimp.org>
* app/widgets/gimpimageprofileview.[ch]: update the profile
information from an idle handler.
* plug-ins/common/lcms.c: bug fixes and robustness.
2006-10-25 Sven Neumann <sven@gimp.org>
* app/core/gimpimage.[ch]: added signals "parasite-attached" and
"parasite-detached".
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpimageprofileview.[ch]: draft of a new widget
that
displays color profile information.
* app/widgets/gimpimagepropview.c: minor cleanup and bug fix.
* app/dialogs/image-properties-dialog.c: added Color Profile
information.
* plug-ins/common/lcms.c: bug fixes.
2006-10-21 Michael Natterer <mitch@gimp.org>
Added "Edit -> Fade" which allows to modify the paint mode and
opacity of the last drawable operation (fill, plugins etc.).
Started from a patch by Bill Skaggs. Fixes bug #170707.
* app/base/base-enums.[ch] (enum GimpLayerModeEffects): register
the values REPLACE_MODE, ERASE_MODE and ANTI_ERASE_MODE with
the type system.
* app/widgets/gimppropwidgets.[ch]
* app/widgets/gimpwidgets-constructors.[ch]: added "gboolean
with_replace_modes" to the paint mode menu constructors.
* app/tools/gimppaintoptions-gui.c
* app/widgets/gimpbrushselect.c
* app/widgets/gimplayertreeview.c: pass with_replace_modes = FALSE.
* app/core/gimpdrawableundo.[ch]: added members which keep tiles,
paint mode and opacity of the pasted pixels.
* app/core/gimpimage-undo.[ch] (gimp_image_undo_get_fadeable):
returns a GimpUndo suitable for a fade operation, or NULL.
* app/core/gimp-edit.[ch] (gimp_edit_fade): implements the actual
fade by undoing the last operation and then re-applying the pixels
with different paint mode and opacity.
* app/core/gimpdrawable-combine.c: store the pasted pixels in
the GimpDrawableUndo.
* app/actions/edit-actions.c
* app/actions/edit-commands.[ch]: action and callback for fade.
* app/dialogs/Makefile.am
* app/dialogs/fade-dialog.[ch]: the fade dialog.
* app/widgets/gimphelp-ids.h: the fade help ID.
* menus/image-menu.xml.in: added a menu entry in "Edit".
2006-10-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppropwidgets.[ch]: added
gimp_prop_expanding_frame_new() which creates a frame with a
toggle button in the title.
* app/tools/gimpblendoptions.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimprectangleoptions.c
* app/tools/gimprectangleselectoptions.c
* app/tools/gimpselectionoptions.c: use it instead of duplicating
this code all over the place.
2006-10-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpselectioneditor.c: use enum GimpChannelOps
instead of SelectOps (which is a tool state).
2006-10-16 Tor Lillqvist <tml@novell.com>
* libgimp/gimpui.c (gimp_window_set_transient_for)
* app/widgets/gimpwidgets-utils.c (gimp_window_set_transient_for):
These functions are used for cross-process transient-for, which
causes hangs on Win32. Bypass on Win32 for now. (#359538)
2006-10-09 Michael Natterer <mitch@gimp.org>
Added message severities and make sure all messages are routed
through a central function, so redirecting to the error console or
stderr work again:
* app/core/core-enums.[ch]: added enum GimpMessageSeverity { INFO,
WARNING, ERROR }.
* app/core/gimp.[ch] (gimp_message)
(gimp_message_valist): added severity parameter. Changed
"GimpProgress *progress" parameter to "GObject *handler", where
"handler" can be either a GimpProgress, a GtkWidget or NULL.
* app/core/gimp-gui.[ch] (gimp_show_message): ditto. Honor
--console-messages again. Always dispatch to the GUI message
handler first if it exists.
* app/gui/gui-message.[ch]: pass severity parameters around.
(gui_message_error_dialog): if "handler" is a progress, dispatch
the message to it first. If it is a widget (and *not* a progress),
use a GtkMessageDialog on top of that widget's toplevel. Fall
back to the usual GimpErrorDialog otherwise.
* app/core/gimpprogress.[ch] (gimp_progress_message): added
severity parameter. Also added boolean return value to the virtual
function so it can decide to fail if it can't handle the message.
* app/display/gimpdisplay.c: implement GimpProgress::message() and
redirect the message to GimpDisplayShell.
* app/display/gimpdisplayshell-progress.c: implement
GimpProgress::message() and redirect the message to GimpStatusbar
if it is not an error and if the status bar is visible.
* app/display/gimpstatusbar.[ch]: implement GimpProgress::message(),
but fail on messages that contain a newline. Show the right icons
for the message severities (work in progress).
* app/display/gimpdisplayshell.[ch]: removed
gimp_display_shell_message() and its _valist() variant.
* app/widgets/gimperrorconsole.[ch]: show the right icons for the
message severities.
* app/widgets/gimpthumbbox.c (gimp_thumb_box_progress_message):
return TRUE to swallow all messages.
* app/widgets/gimpwidgets-utils.[ch]: removed
gimp_show_message_dialog(). Added gimp_get_message_stock_id().
* app/errors.c
* app/actions/edit-commands.c
* app/actions/error-console-commands.c
* app/actions/file-commands.c
* app/actions/select-commands.c
* app/actions/text-editor-commands.c
* app/actions/vectors-commands.c
* app/core/gimpimage-convert.c
* app/core/gimpimagefile.c
* app/dialogs/convert-dialog.c
* app/dialogs/file-open-dialog.c
* app/dialogs/file-open-location-dialog.c
* app/dialogs/file-save-dialog.c
* app/dialogs/palette-import-dialog.c
* app/dialogs/stroke-dialog.c
* app/display/gimpdisplayshell-dnd.c
* app/pdb/gimppdb.c
* app/plug-in/gimpplugin.c
* app/tools/gimpimagemaptool.c
* app/tools/gimptool.c
* app/tools/gimpvectortool.c
* app/widgets/gimpactionview.c
* app/widgets/gimpcontrollerlist.c
* app/widgets/gimppdbdialog.c
* app/widgets/gimpvectorstreeview.c
* app/xcf/xcf-load.c
* app/xcf/xcf-save.c
* app/xcf/xcf.c
* tools/pdbgen/pdb/brush.pdb
* tools/pdbgen/pdb/gradient.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/message.pdb
* tools/pdbgen/pdb/palette.pdb: added severity parameter to
gimp_message() calls. Convert all calls to
gimp_show_message_dialog() and gimp_display_shell_message() to
gimp_message(). Also converted some more g_message() calls.
* app/pdb/brush_cmds.c
* app/pdb/gradient_cmds.c
* app/pdb/image_cmds.c
* app/pdb/message_cmds.c
* app/pdb/palette_cmds.c: regenerated.
2006-10-02 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolbox.[ch] (gimp_toolbox_new): changed Gimp
parameter to GimpContext and use it instead of getting the user
context from the Gimp.
(toolbox_tool_button_toggled): set the tool on the dock's
context instead of the user context.
* app/dialogs/dialogs-constructors.c (dialogs_toolbox_get): pass
the context to gimp_toolbox_new() instead of context->gimp.
2006-10-01 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcolordisplay.[ch]
* libgimpwidgets/gimpcontroller.[ch]: added "const gchar *stock_id"
members to the class structs.
* libgimpwidgets/gimpstock.[ch]
* themes/Default/images/Makefile.am
* themes/Default/images/stock-controller-16.png
* themes/Default/images/stock-controller-24.png
* themes/Default/images/stock-controller-keyboard-16.png
* themes/Default/images/stock-controller-keyboard-24.png
* themes/Default/images/stock-controller-linux-input-16.png
* themes/Default/images/stock-controller-linux-input-24.png
* themes/Default/images/stock-controller-midi-16.png
* themes/Default/images/stock-controller-midi-24.png
* themes/Default/images/stock-controller-wheel-16.png
* themes/Default/images/stock-controller-wheel-24.png
* themes/Default/images/stock-display-filter-colorblind-16.png
* themes/Default/images/stock-display-filter-colorblind-24.png
* themes/Default/images/stock-display-filter-contrast-16.png
* themes/Default/images/stock-display-filter-contrast-24.png
* themes/Default/images/stock-display-filter-gamma-16.png
* themes/Default/images/stock-display-filter-gamma-24.png
* themes/Default/images/stock-display-filter-lcms-16.png
* themes/Default/images/stock-display-filter-lcms-24.png
* themes/Default/images/stock-display-filter-proof-16.png
* themes/Default/images/stock-display-filter-proof-24.png: added
icons for the various display filters and controllers. Made them
as ugly as sin to trigger some replacement pain in the relevant
people ;)
* modules/cdisplay_colorblind.c
* modules/cdisplay_gamma.c
* modules/cdisplay_highcontrast.c
* modules/cdisplay_lcms.c
* modules/cdisplay_proof.c
* modules/controller_linux_input.c
* modules/controller_midi.c
* app/widgets/gimpcontrollerkeyboard.c
* app/widgets/gimpcontrollerwheel.c: set icons.
* app/widgets/gimpcolordisplayeditor.c
* app/widgets/gimpcontrollerinfo.c
* app/widgets/gimpcontrollerlist.c: show them in the display filter
and controller GUIs.
2006-09-26 Sven Neumann <sven@gimp.org>
* modules/Makefile.am
* modules/colorsel_cmyk_lcms.c: new CMYK color-selector that
uses
littleCMS for the RGB <-> CMYK conversion. This is built instead
of the standard CMYK color-selector if lcms is available.
* libgimpwidgets/gimpcolornotebook.c
* libgimpwidgets/gimpcolorselection.[ch]
* libgimpwidgets/gimpcolorselector.[ch]
* libgimpwidgets/gimpwidgets.def: added API to set the color
management configuration on color selectors.
* libgimpwidgets/gimpwidgetstypes.h: include
libgimpconfig/gimpconfigtypes.h.
* app/dialogs/grid-dialog.c
* app/dialogs/preferences-dialog.c
* app/widgets/gimpcolordialog.c
* app/widgets/gimpcoloreditor.c
* app/widgets/gimpcolorpanel.c
* app/widgets/gimpgrideditor.[ch]
* app/widgets/gimppropwidgets.c
* app/widgets/gimptoolbox-color-area.c: set the color management
configuration on (hopefully) all color selectors.
* modules/cdisplay_lcms.c: use a GimpHintBox widget.
2006-09-24 Michael Natterer <mitch@gimp.org>
Some more proper typing instead of using pointers:
* libgimpconfig/gimpconfig-params.h: added macro
GIMP_CONFIG_INSTALL_PROP_BOXED().
* app/core/gimpcontainer.c: made "children-type" a GParamSpecGType.
* app/widgets/gimpcontrollerinfo.c: made "mapping" a
GParamSpecBoxed and use g_hash_table_unref() instead of destroy().
* app/widgets/gimppdbdialog.c: made "select-type" a GParamSpecGType.
* app/dialogs/module-dialog.c
* app/widgets/gimpcolordisplayeditor.c
* app/widgets/gimpcontrollerlist.c
* app/widgets/gimpfileprocview.c
* app/widgets/gimppluginaction.c: use proper object types, boxed
types and G_TYPE_GTYPE instead of G_TYPE_POINTER for various list
stores and signal signatues.
2006-09-22 Sven Neumann <sven@gimp.org>
* app/gui/gui-message.c
* app/widgets/gimpwidgets-utils.[ch]: moved utility function to
gimpwidgets-utils.
* app/core/gimp-gui.[ch]
* app/gui/gui-vtable.c: added a progress parameter to
gimp_pdb_dialog_new() and make the dialog transient to the progress
window.
* tools/pdbgen/pdb/brush_select.pdb
* tools/pdbgen/pdb/font_select.pdb
* tools/pdbgen/pdb/gradient_select.pdb
* tools/pdbgen/pdb/palette_select.pdb
* tools/pdbgen/pdb/pattern_select.pdb: pass progress to
gimp_pdb_dialog_new().
* app/pdb/brush_select_cmds.c
* app/pdb/font_select_cmds.c
* app/pdb/gradient_select_cmds.c
* app/pdb/palette_select_cmds.c
* app/pdb/pattern_select_cmds.c: regenerated.
* libgimp/gimpselectbutton.c: cosmetics.
* app/widgets/gimppropwidgets.c (gimp_prop_aspect_ratio_new):
some small bug-fixes.
* app/tools/gimprectangleoptions.[ch]: major revision. Got
rid of lots of unneeded getter/setter-clutter, simplified
set of options and appearance of gui. Still work in progress.
* app/tools/gimprectangleselectoptions.c
* app/tools/gimprectangletool.c: corresponding changes.
2006-09-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogrambox.c: draw slider positions more
accurately, fixed incorrect use of GtkAdjustments.
* app/widgets/gimppropwidgets.[ch]: add prop widget specially
for controlling aspect ratio.
* app/tools/gimprectangleoptions.ch]: use "aspect-numerator"
and "aspect-denominator" properties instead of "aspect",
and use new prop widget in gui to set and display them.
* app/tools/gimprectangletool.c: calculate aspect from
numerator and denominator.
2006-09-14 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontrollereditor.[ch]
* app/widgets/gimpcontrollerlist.c: pass a GimpContext to
gimp_viewable_dialog_new().
2006-09-14 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerentry.c: Don't popup the completion
when there is only a single match because we already use inline
completion.
2006-09-14 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerentry.c: implement
GimpContainerView::set_context() and set the renderers'
contexts. Fixes more preview rendering warnings.
Connect to GtkEntryCompletion::match-selected in addition to
GtkEntry::changed to select the active item. Makes the whole
thing work a lot better.
2006-09-12 Sven Neumann <sven@gimp.org>
* app/widgets/gimppaletteeditor.c (gimp_palette_editor_get_index):
applied a modified patch from David Gowers that changes the search
behaviour to favour colors in the neighborhood of the selected color
(bug #355520).
2006-09-11 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginmanager.[ch]: added a convenience function
to retrieve the translated procedure label.
* app/widgets/gimpfiledialog.c
* app/widgets/gimpimagepropview.c: use it.
2006-09-11 Sven Neumann <sven@gimp.org>
* app/plug-in/gimppluginmanager-locale-domain.h: corrected comment.
* app/widgets/gimpimagepropview.[ch]: added file related info to
the Image Properties dialog as requested in bug #86276.
2006-09-11 Sven Neumann <sven@gimp.org>
* app/core/core-enums.[ch]: use "Solid color" as description for
GIMP_STROKE_STYLE_SOLID.
* app/widgets/gimpstrokeeditor.c: moved "style" control further up
to make it less ambiguous (bug #309740).
* app/dialogs/stroke-dialog.c (stroke_dialog_new): pass the context
to gimp_container_combo_box_new().
2006-09-08 Sven Neumann <sven@gimp.org>
* app/core/gimp.[ch]: added function gimp_get_tool_info().
* app/actions/tools-commands.c
* app/actions/vectors-commands.c
* app/tools/gimppainttool.c
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimptoolbox.c: use the new function instead of poking
into gimp->tool_info_list.
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell.[ch]: moved code that deals with
the space key into separate functions. Added space_shaded_tool
to GimpDisplayShell instead of using a static variable for it.
* app/tools/tool_manager.c: removed unused include.
2006-09-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimpwidgets-utils.c: mark "Space" and "Backslash"
for translation (using the same translation context as in GTK+).
2006-09-07 Michael Natterer <mitch@gimp.org>
Merged the "soc-2006-perspective-clone" branch. That branch is
now officially closed and all further fixes and changes have to
be applied to HEAD.
Did some minor adjustments, mostly small indentation and spacing
fixes. Derive the tool from GimpBrushTool and renamed the enum
added to paint-enums.h and it values, added stock icon and menu
entry.
Thanks a lot to Pedro Alonso Ferrer!
* app/paint/paint-enums.[ch]: new enum GimpPerspectiveCloneMode.
* app/paint/Makefile.am
* app/paint/gimpperspectiveclone.[ch]
* app/paint/gimpperspectivecloneoptions.[ch]: the perspective
clone core and its options.
* app/paint/gimp-paint.c: register it.
* app/tools/Makefile.am
* app/tools/gimpperspectiveclonetool.[ch]: the perspective clone tool.
* app/tools/gimp-tools.c: register it.
* app/tools/gimppaintoptions-gui.c: show the widgets that are used
by perspective clone.
* app/widgets/gimphelp-ids.h: the help ID.
* themes/Default/images/Makefile.am
* themes/Default/images/tools/stock-tool-perspective-clone-16.png
* themes/Default/images/tools/stock-tool-perspective-clone-22.png
* libgimpwidgets/gimpstock.[ch]: its stock ID and icons.
* menus/image-menu.xml.in: added it to the menu.
2006-09-02 Michael Natterer <mitch@gimp.org>
Merged the "soc-2006-healing-brush" branch. That branch is now
officially closed and all further fixes and changes have to be
applied to HEAD.
Did some minor adjustments, mostly small indentation and spacing
fixes. Derive the tool from the newly introduced GimpBrushTool
which did not exist when the branch was created.
Thanks a lot to Kevin Sookocheff for this nice contribution!
* app/paint/paint-enums.[ch]: new enum GimpHealAlignMode.
* app/paint/Makefile.am
* app/paint/makefile.msc
* app/paint/gimpheal.[ch]
* app/paint/gimphealoptions.[ch]: the heal core and its options.
* app/paint/gimp-paint.c: register the heal core.
* app/tools/Makefile.am
* app/tools/makefile.msc
* app/tools/gimphealtool.[ch]: the heal tool.
* app/tools/gimp-tools.c: register the heal tool.
* app/tools/gimppaintoptions-gui.c: show the widgets that are used
by heal.
* app/widgets/gimphelp-ids.h: the heal help ID.
* tools/pdbgen/stddefs.pdb
* tools/pdbgen/pdb/paint_tools.pdb: the heal PDB wrappers.
* app/widgets/widgets-enums.h
* app/widgets/gimpcursor.c
* cursors/Makefile.am
* cursors/makefile.msc
* cursors/tool-heal.png
* cursors/xbm/tool-heal.xbm
* cursors/xbm/tool-heal-mask.xbm: a new cursor for the heal tool.
* libgimpwidgets/gimpstock.[ch]
* themes/Default/images/Makefile.am
* themes/Default/images/makefile.msc
* themes/Default/images/tools/stock-tool-heal-16.png
* themes/Default/images/tools/stock-tool-heal-22.png: new stock
icons for the heal tool.
* app/pdb/internal_procs.c
* app/pdb/paint_tools_cmds.c
* libgimp/gimppainttools_pdb.[ch]: regenerated.
2006-09-01 Michael Natterer <mitch@gimp.org>
This commit *should* fix the remaining missing contexts for
preview creation. Eek at me if it doesn't.
* app/core/gimpundo.c: pass a struct containing a context to
gimp_undo_create_preview_idle().
* app/widgets/gimpundoeditor.[ch]: implement
GimpDocked::set_context(), remember the context and use it for the
undo treeview.
* app/widgets/gimpviewrenderergradient.c: disable debugging output.
2006-09-01 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpaction.[ch]: added a context property and use
it when creating GimpViews.
* app/actions/file-actions.c: set the context on the "Open Recent"
actions.
2006-09-01 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainercombobox.c: implement set_context() and
set the view renderers' contexts.
(gimp_container_combo_box_insert_item): unselect after inserting
the first item, GimpContainerView doesn't select items by itself.
* app/dialogs/image-new-dialog.c: create a local context for the
combo box, connect to the context's "template-changed" signal
instead of the combo boxed's "select-item", fix some stuff and
don't leak the local GimpTemplate.
2006-08-31 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerview.c
(gimp_container_view_real_set_container)
(gimp_container_view_real_set_context)
(gimp_container_view_item_selected)
(gimp_container_view_thaw): support setting a context even if
the viewed container's children_type is *not* a property of
GimpContext. This removes a major restriction of container
views and allows to get rid of some hacks:
* app/widgets/gimpitemtreeview.[ch]: removed GimpContext member
and implement GimpContainerView::set_context() instead of
GimpDocked::set_context().
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimplayertreeview.c: use GimpContainerView's context
instead of GimpItemTreeView's and implement GimpContainerView's
set_context() instead of GimpDocked's.
* app/actions/actions.c (action_data_get_gimp)
(action_data_get_context): don't special-case GimpItemTreeView any
more, it's just like a normal GimpContainerView now.
* app/widgets/gimpcontrollerlist.c
(gimp_controller_list_constructor): set a context on the
GimpContainerView so its renderers have a context to use.
2006-08-31 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpthumbbox.[ch]: remember the context passed to
gimp_thumb_box_new() and use it instead of the user context when
creating thumbnails.
2006-08-31 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpgradienteditor.[ch] (struct GimpGradientEditor):
removed GimpContext member I added before deciding it needs to be
added to GimpDataEditor.
Use GimpDataEditor's context instead of the bogus one. Also use
the data editor's context instead of the user context wherever it
was used.
* app/widgets/gimppaletteeditor.c: use GimpDataEditor's context
instead of the user context here too.
2006-08-31 Michael Natterer <mitch@gimp.org>
* app/core/gimpgradient.[ch] (gimp_gradient_has_fg_bg_segments):
new funtion which returns TRUE if any of the gradient's segments
refer to FG of BG.
(gimp_gradient_segment_get_left_color_type)
(gimp_gradient_segment_set_left_color_type)
(gimp_gradient_segment_get_right_color_type)
(gimp_gradient_segment_set_right_color_type): new accessors for
the new GimpGradientColor stuff.
(gimp_gradient_segment_split_midpoint)
(gimp_gradient_segment_range_flip)
(gimp_gradient_segment_range_replicate): split, flip and replicate
the segments' color_types too.
* app/widgets/gimpviewrenderer.[ch]: added virtual functions
::set_context() and ::invalidate() and call them.
* app/widgets/gimpviewrenderergradient.[ch]: implement the virtual
functions. Connect to the context's "foreground-changed" and
"background-changed" signals if the gradient contains FG or BG
colors and invalidate the renderer whenever they change.
* app/core/gimp-gradients.c: removed signal connections which
invalidated the gradients on FG/BG changes of the user context.
2006-08-29 Michael Natterer <mitch@gimp.org>
Changed GimpViewable preview rendering to have a context to get
FG/BG/whatever from. Use the context to enable dynamic FG/BG
colors in gradients. Fixes bug #127676 and bug #352214. Addresses
bug #128367 (doesn't fix it because there's no loading/saving and
no GUI yet).
* app/core/core-enums.[ch]: added enum GimpGradientColor to enable
specifying gradient colors in terms of foreground and background.
* app/core/gimpgradient.[ch]: added color_type members to the
GimpGradientSegment struct and honor them in
gimp_gradient_get_color_at(). Added GimpContext parameters to all
functions which finally call get_color_at().
* app/core/gimp-gradients.c: use the new method to implement the
builtin gradients.
* app/core/gimpviewable.[ch]: added GimpContext parameters to all
get_preview() and get_pixbuf() functions.
* app/core/gimpbrush.c
* app/core/gimpbuffer.c
* app/core/gimpdrawable-preview.[ch]
* app/core/gimpgradient.c
* app/core/gimpimage-preview.[ch]
* app/core/gimpimagefile.c
* app/core/gimppalette.c
* app/core/gimppattern.c
* app/core/gimpundo.[ch]
* app/text/gimpfont.c
* app/vectors/gimpvectors-preview.[ch]: changed ::get_preview()
and ::get_pixbuf() implementations accordingly.
* app/core/gimpdrawable-blend.c
* app/core/gimppalette-import.[ch]
* app/dialogs/dialogs-constructors.c
* app/dialogs/palette-import-dialog.c
* app/dialogs/resize-dialog.c
* app/display/gimpdisplayshell-layer-select.c
* app/display/gimpdisplayshell.c
* app/display/gimpnavigationeditor.c
* app/paint/gimppaintoptions.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimptexttool.c
* app/actions/gradient-editor-commands.c
* app/widgets/gimpaction.c
* app/widgets/gimpbrusheditor.[ch]
* app/widgets/gimpbufferview.c
* app/widgets/gimpcellrendererviewable.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpclipboard.c
* app/widgets/gimpcoloreditor.c
* app/widgets/gimpcomponenteditor.c
* app/widgets/gimpcontainerbox.c
* app/widgets/gimpcontainercombobox.c
* app/widgets/gimpcontainereditor.c
* app/widgets/gimpcontainerentry.c
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.[ch]
* app/widgets/gimpdataeditor.[ch]
* app/widgets/gimpdevicestatus.c
* app/widgets/gimpdnd.[ch]
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimpgradienteditor.[ch]
* app/widgets/gimpgradientselect.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimppaletteeditor.[ch]
* app/widgets/gimppropwidgets.[ch]
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpthumbbox.[ch]
* app/widgets/gimptoolbox-image-area.c
* app/widgets/gimptoolbox-indicator-area.c
* app/widgets/gimptooloptionseditor.c
* app/widgets/gimpundoeditor.c
* app/widgets/gimpvectorstreeview.c
* app/widgets/gimpview-popup.[ch]
* app/widgets/gimpview.[ch]
* app/widgets/gimpviewablebutton.c
* app/widgets/gimpviewabledialog.c
* app/widgets/gimpviewrenderer.[ch]
* app/widgets/gimpviewrenderer-frame.c
* app/widgets/gimpviewrendererbrush.c
* app/widgets/gimpviewrendererbuffer.c
* app/widgets/gimpviewrendererdrawable.c
* app/widgets/gimpviewrenderergradient.c
* app/widgets/gimpviewrendererimage.c
* tools/pdbgen/pdb/drawable.pdb
* tools/pdbgen/pdb/gradient.pdb
* tools/pdbgen/pdb/gradients.pdb
* tools/pdbgen/pdb/image.pdb: added tons of GimpContext members
and parameters, implement GimpDocked::set_context() in many
widgets. Pass these locally remembered contexts to GimpViewable
functions. Did some minor cleanups on the way. There are still
some minor FIXMEs around where the code uses a NULL context (which
is allowed by the APIs)
* app/pdb/drawable_cmds.c
* app/pdb/gradient_cmds.c
* app/pdb/gradients_cmds.c
* app/pdb/image_cmds.c: regenerated.
2006-08-29 Sven Neumann <sven@gimp.org>
* app/core/gimpimage-duplicate.c (gimp_image_duplicate)
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_image): a
somewhat hackish implementation of what's suggested in bug #353246.
Let the save dialog default to the folder of the duplicated image.
2006-08-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerview.[ch]: made set_container() a
virtual function of the GimpContainerView interface.
2006-08-28 Sven Neumann <sven@gimp.org>
* app/tools/gimptextoptions.[ch]
* app/tools/gimptexttool.c
* app/widgets/gimptexteditor.[ch]: make the text editor transient
to the display shell.
2006-08-15 Hans Breuer <hans@breuer.org>
* **/makefile.msc app/gimpcore.def : updated
* app/xcf/xcf-save.c(1464) : error C2036: 'void *' : unknown size
pointer arithmetics on void a pointer looks like a GCC extension
* app/tools/gimpbrightnesscontrasttool.c
app/tools/gimpcolorbalancetool.c
app/tools/gimphuesaturationtool.c
app/tools/gimpcolorizetool.c : #include "core/gimp.h" for gimp_message
* app/tools/gimpiscissorstool.c : use RINT() rather than rint()
* app/widgets/gimpcontrollerlist.c : #include "gimpwidgets-utils.h"
for gimp_show_message_dialog
* app/core/gimpprogress.c(229) : 'gimp_progress_message' must
return a value
2006-08-11 Sven Neumann <sven@gimp.org>
* app/widgets/gimpwidgets-utils.[ch]: introduced a simple message
dialog to use when there's no progress but a parent widget.
* app/dialogs/convert-dialog.c
* app/dialogs/palette-import-dialog.c
* app/dialogs/preferences-dialog.c
* app/dialogs/stroke-dialog.c
* app/tools/gimpimagemaptool.c
* app/widgets/gimpactionview.c
* app/widgets/gimpcontrollerlist.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimppdbdialog.c
* app/widgets/gimpvectorstreeview.c: use the new utility function
instead of g_message().
2006-08-09 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontainercombobox.[ch]: allow to configure the
ellipsize property of the text renderer.
* app/dialogs/image-new-dialog.c: don't pack the template
combo-box
expanding, unset the ellipsize property.
2006-08-05 Michael Natterer <mitch@gimp.org>
Applied (modified and enhanced) patch from Chris Moller which allows
tools to distinguish similar colors not only by composite, but also
by R, G, B, H, S and V. Fixes bug #348291.
* app/core/core-enums.[ch]: added new enum GimpSelectCriterion
which can be one of { COMPOSITE, R, G, B, H, S, V }.
* app/core/gimpimage-contiguous-region.[ch]: added
select_criterion params and create the region based on difference
by the selected criterion.
* app/core/gimpchannel-select.[ch]
* app/core/gimpdrawable-bucket-fill.[ch]: take criterion params and
pass them through to the contiguous region functions.
* app/tools/gimpbucketfilloptions.[ch]
* app/tools/gimpselectionoptions.[ch]: added criterion properties
and GUI to select it.
* app/tools/gimpbucketfilltool.c
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpfuzzyselecttool.c: pass the selected criterion to
the resp. core functions.
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpselectioneditor.c
* app/display/gimpdisplayshell-dnd.c
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/selection_tools.pdb: changed accordingly
(simply pass GIMP_SELECT_CRITERION_COMPOSITE in most cases).
* app/pdb/edit_cmds.c
* app/pdb/selection_tools_cmds.c: regenerated.
2006-08-02 Raphael Quinet <raphael@gimp.org>
* app/widgets/gimpwidgets-utils.h
* app/widgets/gimpwidgets-utils.c (gimp_suggest_modifiers):
New utility function to build status bar messages while allowing
dynamic names for the modifiers.
* app/tools/gimppainttool.h
* app/tools/gimppainttool.c: Added new members to the class in
order to allow paint tools to set different status messages for
the normal case or when drawing a line.
* app/tools/gimpclonetool.c
* app/tools/gimpconvolvetool.c
* app/tools/gimpdodgeburntool.c
* app/tools/gimperasertool.c
* app/tools/gimpsmudgetool.c: Use the new functions to set
appropriate messages in the status bar. Still work in progress,
partial fix for bug #124040.
* app/tools/gimpvectortool.c: Use gimp_suggest_modifiers().
2006-07-26 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_button_press): removed code that was
special-casing RTL since gtk_tree_view_get_path_at_pos() takes
this correctly into account now. Fixes bug #348347.
* app/widgets/gimpdockable.c (gimp_dockable_size_allocate): fix
menu button positioning for RTL.
2006-07-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_image): use
file_utils_uri_display_basename() instead of g_path_get_basename()
to get an uri's basename. Fixes bug #347544.
2006-07-18 Sven Neumann <sven@gimp.org>
* app/widgets/gimppaletteeditor.c (gimp_palette_editor_get_index,
gimp_palette_editor_set_index, gimp_palette_editor_max_index):
fixed potential crash based on a patch from David Gowers (bug #347593).
2006-07-07 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcoloreditor.c
* libgimpwidgets/gimpcolorselection.c: in the tooltip for the hex
entry, mention that it also accepts CSS color names.
* libgimpwidgets/gimpwidgets.c (gimp_scale_entry_new_internal):
use an invisible event box for the tooltip.
2006-06-30 Simon Budig <simon@gimp.org>
* app/widgets/gimpstrokeeditor.c: unref the old StrokeOptions
when new ones get set as a property. Spotted by Henk Boom.
2006-06-27 Sven Neumann <sven@gimp.org>
I18n improvements based on a patch from Zbigniew Chyla:
* app/main.c:
* modules/controller_midi.c
* plug-ins/script-fu/scripts/guides-new.scm: marked strings for
translation.
* app/widgets/gimpdock.c
* libgimpwidgets/gimppageselector.c
* plug-ins/common/plugin-browser.c: use ngettext() for plural
forms.
2006-06-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdockbook.c (gimp_dockbook_get_tab_widget): put
the event box' event window above its children because now that it
is input-only, it won't receive events that are not in its
childrens' event mask if the event window is below.
Fixes bug #345137.
2006-06-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_image):
always call gtk_file_chooser_set_current_folder_uri() and
gtk_file_chooser_set_current_name() instead of
gtk_file_chooser_set_uri(), since the latter only works if the
file exists and its return value is bogus. Fixes bug #343284.
2006-06-16 Michael Natterer <mitch@gimp.org>
Allow plug-ins to register in <Layers>, <Channels>, <Vectors> and
<ColormapEditor>:
* app/pdb/gimppluginprocedure.c
(gimp_plug_in_procedure_add_menu_path): added the argument type
checks for the new locations. Factored out duplicated code.
* app/menus/menus.c (menus_init): add the "plug-in" action
group to the resp. UI managers.
* app/menus/plug-in-menus.c (plug_in_menus_menu_path_added):
support them here too.
* app/widgets/gimpimageeditor.[ch]
* app/widgets/gimpitemtreeview.[ch]: added get_image() functions.
* app/actions/plug-in-commands.c: added new utility functions
which collect plug-in arguments from GimpImageEditor and
GimpItemTreeView widgets.
* menus/channels-menu.xml
* menus/colormap-editor-menu.xml
* menus/layers-menu.xml
* menus/vectors-menu.xml: added separators.
* menus/image-menu.xml.in: added a "Colormap" placeholder in
Colors/Map
* plug-ins/common/colormap-remap.c (query): register a menu
entry in <ColormapEditor> and moved the existing one to the
"Colormap" placeholder. Also register an icon to make this
menu item clearly distinct from the others in that menu.
Unrelated:
* plug-ins/common/colormap-remap.c (run): cleaned up quite a
bit. Fixed last-vals code and simplified map handling.
(remap_swap): removed, folded into run().
(remap_dialog): use the passed map to initialize the dialog so it
starts with the last-vals. Tweaked layout to have 16 columns
and simplified cell renderer creation.
2006-06-15 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdockbook.c (gimp_dockbook_get_tab_widget): set
the event box' window invisible so we get the right background
with all themes.
Finally implemented the suggestion in bug #144854, of
"strong" undo/redo commands that continue undoing so long
as they only encounter visibility changes.
* app/actions/edit-actions.c
* app/actions/edit-commands.c
* app/actions/edit-commands.h: added "strong undo"
and "strong redo" commands/actions.
* app/core/gimpimage-undo.[ch]: added functions
gimp_image_strong_undo() and gimp_image_strong_redo().
* app/core/gimpundo.[ch]: added utility function
gimp_undo_is_weak().
* app/widgets/gimphelp-ids.h:added id's.
* menus/image-menu.xml.in: added to edit menu,
bound to C-S-z and C-S-y.
This will no doubt need tweaking, but I will consider it
to fix bug #144854.
Here is the big change-over, finally.
* app/tools/gimprectselecttool.[ch]: removed.
* app/tools/Makefile.am
* app/tools/gimp-tools.c
* app/tools/gimpellipseselecttool.c
* app/tools/gimpellipseselecttool.h
* app/tools/gimpnewrectselectoptions.c
* app/tools/gimpnewrectselectoptions.h
* app/tools/gimpnewrectselecttool.c
* app/tools/gimpnewrectselecttool.h
* app/tools/gimpselectionoptions.c
* app/widgets/gimptoolbox.c
* menus/image-menu.xml.in: get rid of the "new" in everything
referring to the new rect select tool, except filenames. This
will wait for yosh to perform cvs-magic-foo.
* app/tools/gimprectangleoptions.[ch]
* app/tools/gimprectangletool.[ch]: fix a couple of minor
problems that popped up during testing.
2006-06-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpeditor.c (gimp_editor_add_action_button): simply
use gimp_button_new() instead of g_object_new(). Don't set the
"use-stock" property and reordered some code. Keeps GtkButton from
thinking that is has constructed the button's child itself and
thus makes the function more rubust against changes in GtkButton.
2006-06-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpthumbbox.c (gimp_thumb_box_new): changed
mnemonic from "_Preview" to "Pr_eview" because the GTK+ HEAD
file chooser has a "_Places" mnemonic now.
* app/widgets/gimpcomponenteditor.c: minor cleanup.
2006-06-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolorframe.c (gimp_color_frame_set_color): use
gimp_rgba_distance() instead of gimp_rgb_distance(), so alpha
changes update the color frame too.
2006-06-02 Michael Natterer <mitch@gimp.org>
* cursors/Makefile.am
* cursors/cursor-corner-bottom-left.png
* cursors/cursor-corner-bottom-right.png
* cursors/cursor-corner-top-left.png
* cursors/cursor-corner-top-right.png
* cursors/cursor-side-bottom.png
* cursors/cursor-side-left.png
* cursors/cursor-side-right.png
* cursors/cursor-side-top.png
* cursors/xbm/cursor-corner-bottom-left-mask.xbm
* cursors/xbm/cursor-corner-bottom-left.xbm
* cursors/xbm/cursor-corner-bottom-right-mask.xbm
* cursors/xbm/cursor-corner-bottom-right.xbm
* cursors/xbm/cursor-corner-top-left-mask.xbm
* cursors/xbm/cursor-corner-top-left.xbm
* cursors/xbm/cursor-corner-top-right-mask.xbm
* cursors/xbm/cursor-corner-top-right.xbm
* cursors/xbm/cursor-side-bottom-mask.xbm
* cursors/xbm/cursor-side-bottom.xbm
* cursors/xbm/cursor-side-left-mask.xbm
* cursors/xbm/cursor-side-left.xbm
* cursors/xbm/cursor-side-right-mask.xbm
* cursors/xbm/cursor-side-right.xbm
* cursors/xbm/cursor-side-top-mask.xbm
* cursors/xbm/cursor-side-top.xbm: new cursors for edge and corner
resizing. They perfectly align with the small crosshair and can be
used together with tool cursors and cursor modifiers.
* cursors/gimp-tool-cursors.xcf: add them here too.
* app/widgets/widgets-enums.h: add them to the GimpCursorType enum.
* app/widgets/gimpcursor.c: add them here too.
* app/display/gimpdisplayshell-cursor.c: treat them like the small
crosshair (don't replace them by the small crosshair but use them
as-is). Also allow the bad modifier with the large crosshair.
* app/tools/gimprectangletool.c
(gimp_rectangle_tool_cursor_update): use the new cursors. Don't
call gimp_tool_set_cursor() here.
(gimp_rectangle_tool_response): reset "function" to RECT_CREATING
when resetting the tool.
* app/tools/gimpselectiontool.[ch] (struct GimpSelectionTool):
added boolean member "allow_move" which defalts to TRUE.
(gimp_selection_tool_oper_update): don't move masks, floating
selections or anything when "allow_move" is FALSE. Changed
behavior of click inside a selection to simply create a new
selection, need to press alt+shift now to drag-float the
selection. Please test this, it's apretty fundamental change!
(gimp_selection_tool_cursor_update): use the tool's configured
cursor instead of always GIMP_CURSOR_MOUSE, so this function can
be called after gimp_rectangle_tool_cursor_update() to add the
plus, minus etc. modifiers.
* app/tools/gimpnewrectselecttool.c: implement
GimpTool::cursor_update() and call
gimp_rectangle_tool_cursor_update() from there. Chain up to get
the plus, minus etc. modifiers added.
Re-enble selection moving:
(gimp_new_rect_select_tool_oper_update): set GimpSelectionTool's
"allow_move" to FALSE unless the rectangle tool is in an idle
state.
(gimp_new_rect_select_tool_button_press): allow a selection moving
to be started if the rectangle tool is idle. Fall back to starting
a rect select if gimp_selection_tool_start_edit() returned FALSE.
2006-06-01 Michael Natterer <mitch@gimp.org>
* cursors/Makefile.am
* cursors/modifier-bad.png
* cursors/xbm/modifier-bad-mask.xbm
* cursors/xbm/modifier-bad.xbm: new "bad" cursor
modifier. Replaces the "bad" cursor.
* cursors/gimp-tool-cursors.xcf: added it here too.
* app/widgets/widgets-enums.h: added GIMP_CURSOR_MODIFIER_BAD.
* app/widgets/gimpcursor.c: add the bad modifier. Leave the bad
cursor there for now.
* app/display/gimpdisplayshell-callbacks.c
* app/tools/gimpaligntool.c
* app/tools/gimpblendtool.c
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpclonetool.c
* app/tools/gimpcolortool.c
* app/tools/gimpfliptool.c
* app/tools/gimpiscissorstool.c
* app/tools/gimpmovetool.c
* app/tools/gimptransformtool.c
* app/tools/gimpvectortool.c: use the modifier instead of the
cursor. Fixes hotspot jumping when switching between normal and
bad cursors. The changed cursor_update() functions even make more
sense IMHO. Fixes bug #158407.
2006-05-30 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdataeditor.c (gimp_data_editor_name_activate)
* app/widgets/gimpdatafactoryview.c
(gimp_data_factory_view_tree_name_edited): strip the newly
entered name from whitespace and reject empty names.
2006-05-29 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdialogfactory.c
(gimp_dialog_factory_dialog_new_internal): code cleanup; only call
gtk_window_present() if called with present == TRUE.
2006-05-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdock.c (gimp_dock_key_press_event): make sure
text widgets get all key events first. Fixes bug #301006.
2006-05-28 Michael Natterer <mitch@gimp.org>
Applied patch from David Gowers which adds actions to select
palette and colormap colors with actions. Modified the patch quite
a bit. Fixes bug #130123.
* app/widgets/gimpcolormapeditor.[ch]
* app/widgets/gimppaletteeditor.[ch]: add functions get_index()
which gets the currently selected color's index (optionally the
index of a passed color), set_index() which sets the selected
color by index, and max_index() which returns the maximum possible
color index.
* app/dialogs/dialogs-constructors.c: changed accordingly.
* app/actions/context-actions.c
* app/actions/context-commands.[ch]: actions and callbacks which
use the new functions.
2006-05-23 Karine Delvare <edhel@gimp.org>
* app/core/gimpcontext.c
* app/tools/gimp-tools.c
* app/tools/gimpnewrectselecttool.c
* app/tools/gimprectselecttool.c
* app/widgets/gimptoolbox.c
* menus/image-menu.xml.in: replace old rect select by new in the
toolbox.
2006-05-21 Michael Natterer <mitch@gimp.org>
One of the following changes fixes a crash on exit when there is a
cut buffer and a clipboard manager is runnig. I don't care which,
since they are all the right thing to do:
* app/widgets/gimpdialogfactory.c (gimp_dialog_factory_finalize):
don't remove the factory from the hash table of all factories here...
(gimp_dialog_factory_dispose): ...but here. Use the right key for
the toolbox factory.
(gimp_dialog_factories_set_busy)
(gimp_dialog_factories_unset_busy): check the return value of
g_type_class_ref() before using it.
Unrelated:
(gimp_dialog_factory_dispose): free the list of open dialogs here,
not in dispose(). Don't leak all the factory's session infos.
2006-05-19 Sven Neumann <sven@gimp.org>
* app/widgets/gimpsizebox.c: connect to the chain-button and
update the "keep-aspect" property when it is toggled.
2006-05-16 Michael Natterer <mitch@gimp.org>
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimppatternclipboard.[ch]: new GimpPattern subclass
that auto-updates its contents from gimp->global_buffer.
* app/core/gimp.c (gimp_real_initialize): add a clipboard pattern
to the pattern factory.
* app/widgets/gimpaction.c (gimp_action_set_proxy): replace the
GimpView by a new one if the viewable type changes, instead of
running into a warning (didn't happen before because this is only
used for imagefiles and patterns, which didn't have subclasses).
2006-05-13 Michael Natterer <mitch@gimp.org>
Added some new text layer actions and menu items (bug #316299).
* app/actions/layers-actions.c: added actions for "Text to Path",
"Text along Path" and "Text to Selection" (use the alpha to
selection callback for text to selection)
* app/actions/layers-commands.[ch]: added
layers_text_to_vectors_cmd_callback() and
layers_text_along_vectors_cmd_callback().
* app/widgets/gimphelp-ids.h: help IDs for the new actions.
* menus/image-menu.xml.in
* menus/layers-menu.xml: added them to the layers menus in the
image window and the layers dialog.
2006-05-12 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpview.h: save 20 bytes per instance by using
single bits instead of 6 gbooleans.
* app/widgets/gimpview.c: some code cleanup.
* app/widgets/gimpviewrendererbrush.c: don't #include "gimpbrush.h".
* app/widgets/gimpviewrendererbuffer.c: #include "gimpviewable.h"
instead of "gimpbuffer.h".
* app/widgets/gimpviewrenderergradient.c
* app/widgets/gimpviewrendererimagefile.c
* app/widgets/gimpviewrendererimagefile.h: micro cosmetics.
2006-05-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpviewrendererbrush.c
* app/widgets/gimpviewrendererbuffer.c: use
gimp_viewable_get_size() and get rid of useless
local "brush" and "buffer" variables.
2006-05-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolbox.c: code cleanup, no logic changed.
* app/widgets/gimptoolbox-color-area.c: make the very first click
on the color area work as expected.
2006-05-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_new): set the
alternative button order here...
* app/dialogs/file-open-dialog.c (file_open_dialog_new)
* app/dialogs/file-save-dialog.c (file_save_dialog_new): ...instead
of here.
2006-05-07 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpbrusheditor.c: hide the button bar, which is
useless for the brush editor. Fixes user confusion (bug #306704).
2006-05-05 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimppluginmanager.[ch]: added signals
"plug-in-opened" and "plug-in-closed". Added functions
gimp_plug_in_manager_add_open_plug_in() and _remove_open_plugin()
which maintain the list of open plug-ins and emit the signals.
* app/plug-in/gimpplugin.c (gimp_plug_in_open)
(gimp_plug_in_close): don't touch manager->open_plug_ins and don't
ref/unref the plug-in. Call above new functions instead. Don't
call gimp_pdb_dialogs_check().
* app/core/gimp-gui.[ch]
* app/gui/gui-vtable.c: removed gimp_pdb_dialogs_check().
* app/widgets/gimppdbdialog.[ch]: removed
gimp_pdb_dialogs_check_callback() and connect to the
plug-in-manager's "plug-in-closed" signal instead.
2006-05-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpselectiondata.c
(gimp_selection_data_get_tool_info): port to using
gimp_selection_data_get_object(), it was simply forgotten.
Fixes tool dropping (bug #336402).
2006-05-02 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontainercombobox.c
(gimp_container_combo_box_remove_item): turned a #warning into an
explanation because the bug it referred to is marked as WONTFIX.
2006-04-29 Michael Natterer <mitch@gimp.org>
* app/plug-in/gimppluginmanager-locale-domain.c
(gimp_plug_in_manager_get_locale_domains): NULL-terminate string
arrays here too, so they can be freed with g_strfreev() (even
though they currently aren't).
* app/widgets/gimphelp.c: set the plug-in arguments
correctly. Fixes warnings and makes help work again.
2006-04-27 Sven Neumann <sven@gimp.org>
* libgimpcolor/gimprgb.[ch]: added "has_alpha" to GimpParamSpecRGB.
Made the GimpParamSpecRGB struct public. When validating a color,
only look at the alpha channel if has_alpha is set.
* libgimpconfig/gimpconfig-params.h: added "has_alpha" to
GIMP_CONFIG_INSTALL_PROP_RGB macro definition.
* libgimpconfig/gimpconfig-serialize.c: serialize color values as
"(rgb r g b)" if the param-spec indicates that the alpha channel
is meaningless.
* app/config/gimpconfig-dump.c: take "has_alpha" into account when
documenting color properties.
* app/core/gimpcontext.c
* app/core/gimpgrid.c
* app/display/gimpdisplayoptions.c
* app/text/gimptext.c
* app/widgets/gimpaction.c
* app/widgets/gimpcolorbar.c
* libgimpwidgets/gimpcolorarea.c
* libgimpwidgets/gimpcolorbutton.c: specify whether color properties
have an alpha channel.
* tools/pdbgen/app.pl: handle "has_alpha" for color paramaters.
* tools/pdbgen/pdb/channel.pdb
* tools/pdbgen/pdb/context.pdb
* tools/pdbgen/pdb/grid.pdb
* tools/pdbgen/pdb/image.pdb: set the "has_alpha" flag where
appropriate.
* app/pdb/gimp-pdb-compat.c (gimp_pdb_compat_param_spec): set
"has_alpha" to TRUE for GIMP_PDB_COLOR.
* app/pdb/channel_cmds.c
* app/pdb/context_cmds.c
* app/pdb/gradient_cmds.c
* app/pdb/grid_cmds.c
* app/pdb/image_cmds.c
* app/pdb/palette_cmds.c
* app/pdb/palettes_cmds.c
* app/pdb/selection_tools_cmds.c: regenerated.
* app/config/gimpdisplayconfig.c (gimp_display_config_class_init):
removed unused code.
2006-04-27 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppluginaction.[ch]: use a GParamSpecObject instead
of GParamSpecPointer for the "procedure" property. Keep a reference
on the action's procedure. Did a global s/proc/procedure/.
2006-04-26 Michael Natterer <mitch@gimp.org>
* app/pdb/Makefile.am
* app/pdb/pdb-types.h
* app/pdb/gimppdb.[ch]: new object GimpPDB which keeps all
procedures and functions to register and run them. Renamed all
functions and did some cleanups.
* app/pdb/gimp-pdb.[ch]
* app/core/gimp.[ch]: removed the same stuff here.
* app/pdb/gimp-pdb-query.[ch]: removed these files...
* app/pdb/gimppdb-query.[ch]: ...added here as members of GimpPDB.
* app/pdb/gimp-pdb-compat.h: fix include guard.
* app/batch.c
* app/actions/vectors-commands.c
* app/dialogs/about-dialog.c
* app/file/file-open.c
* app/file/file-save.c
* app/plug-in/plug-in-message.c
* app/plug-in/plug-ins.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimphelp.c
* app/xcf/xcf.c
* tools/pdbgen/pdb/brush_select.pdb
* tools/pdbgen/pdb/fileops.pdb
* tools/pdbgen/pdb/font_select.pdb
* tools/pdbgen/pdb/gradient_select.pdb
* tools/pdbgen/pdb/palette_select.pdb
* tools/pdbgen/pdb/pattern_select.pdb
* tools/pdbgen/pdb/procedural_db.pdb: changed includes and function
calls accordingly.
* tools/pdbgen/app.pl: pass around GimpPDB instead of Gimp
pointers to register the internal procedures with. Changed some
newlines in the generated code.
* app/pdb/*_cmds.c
* app/pdb/internal_procs.[ch]: regenerated.
* app/core/gimppdbprogress.[ch]
* app/widgets/gimppdbdialog.[ch]: added "pdb" CONSTRUCT_ONLY
properties.
* app/plug-in/plug-in-progress.c
* app/gui/gui-vtable.c: pass gimp->pdb when creating them.
* app/widgets/gimpbrushselect.c
* app/widgets/gimpfontselect.c
* app/widgets/gimpgradientselect.c
* app/widgets/gimppaletteselect.c
* app/widgets/gimppatternselect.c: use the new local pdb pointers
instead of some foo->bar->gimp->pdb overkill.
2006-04-23 Sven Neumann <sven@gimp.org>
* app/dialogs/module-dialog.c
* app/dialogs/palette-import-dialog.c: use GimpDialog instead of a
GimpViewableDialog with a NULL viewable.
* app/widgets/gimpviewabledialog.c: deprecate use of
GimpViewableDialog with a NULL viewable.
* app/dialogs/resolution-calibrate-dialog.c: whitespace.
2006-04-20 Tor Lillqvist <tml@novell.com>
* app/widgets/gimpsessioninfo.c (get_appropriate_monitor): New
helper function. Same functionality as
gdk_screen_get_monitor_at_window(), except that it takes a window
geometry as parameter and not the window itself.
(gimp_session_info_set_geometry): Make sure the window is
completely inside a monitor. (#339099, #324254)
2006-04-10 Sven Neumann <sven@gimp.org>
* app/widgets/gimpactiongroup.[ch]: take const arrays of action
entries.
* app/actions/*-actions.c: declare action arrays as const.
2006-04-07 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-run.[ch]: made plug_in_run_temp() public and
changed its parameters to match the ones of plug_in_run().
* app/pdb/gimpprocedure.[ch]: added GimpProcedure::execute_async()
which takes an additional display_ID parameter and returns nothing.
* app/pdb/gimppluginprocedure.c
* app/pdb/gimptemporaryprocedure.c: implement it, using
plug_in_run() and plug_in_run_temp().
* app/core/gimp-utils.[ch]: added gimp_value_array_truncate()
which takes a GValueArray and the number of values to truncate the
array to.
* app/actions/plug-in-commands.c
* app/actions/vectors-commands.c
* app/pdb/gimp-pdb.c
* app/plug-in/plug-ins.c
* app/widgets/gimphelp.c: use gimp_procedure_execute_async()
instead of plug_in_run() and don't #include "plug-in-run.h".
Truncate GValueArray passed to plug-ins again, and don't just pass
some default values to the noninteractive args.
Unrelated:
* tools/pdbgen/pdb/plug_in.pdb: don't call
gimp_menus_create_branch() here.
* app/plug-in/plug-ins.c (plug_ins_menu_branch_add): call it here
instead.
* app/pdb/plug_in_cmds.c: regenerated.
2006-04-05 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-types.h
* app/plug-in/plug-in-proc-def.[ch]: renamed to GimpPlugInProcedure
and made a GObject derived from GimpProcedure (instead of having
a pointer to a GimpProcedure). Added image_types and file_magic
utility functions taken from plug-ins.[ch]. Still lives in the
same crappy files because I am undecided where to put it...
* app/pdb/gimpprocedure.c (gimp_procedure_real_execute): removed
switch() statement and always call the internal marshaller because
GimpProcedure::execute() is properly overridden by
GimpPlugInProcedure now.
* app/plug-in/plug-ins.[ch]: removed the mime_type and file_magic
utilities added to GimpPlugInProcedure.
* app/actions/file-commands.c
* app/actions/plug-in-actions.[ch]
* app/actions/plug-in-commands.[ch]
* app/core/gimp-gui.[ch]
* app/core/gimp.[ch]
* app/core/gimpimage.[ch]
* app/dialogs/file-open-dialog.c
* app/dialogs/file-save-dialog.c
* app/dialogs/print-size-dialog.c
* app/file/file-open.[ch]
* app/file/file-save.[ch]
* app/file/file-utils.[ch]
* app/gui/gui-vtable.c
* app/menus/plug-in-menus.[ch]
* app/plug-in/plug-in-def.[ch]
* app/plug-in/plug-in-message.c
* app/plug-in/plug-in-rc.c
* app/plug-in/plug-in-run.c
* app/plug-in/plug-in.c
* app/plug-in/plug-ins-query.c
* app/widgets/gimpactiongroup.[ch]
* app/widgets/gimpdnd-xds.c
* app/widgets/gimpfiledialog.[ch]
* app/widgets/gimpfileprocview.[ch]
* app/widgets/gimppluginaction.[ch]
* app/xcf/xcf.c
* tools/pdbgen/pdb/fileops.pdb
* tools/pdbgen/pdb/plug_in.pdb: changed addordingly.
* app/pdb/fileops_cmds.c
* app/pdb/plug_in_cmds.c: regenerated.
2006-04-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview-dnd.c
(gimp_container_tree_view_drag_leave)
(gimp_container_tree_view_drag_motion): use the correct API to
unset the tree view's drop indicator. Apparently using the wrong
API has stopped working due to changes in GtkTreeView...
2006-04-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpparamspecs.[ch]: added a shitload of new GTypes and
corresponding GParamSpecs to use them as PDB arguments.
Each GimpPDBArgType has one or more corresponding GTypes in the
core now.
* app/pdb/gimpargument.[ch] (struct GimpArgument)
(struct GimpArgumentSpec): removed "value" member because the
GValue's/GParamSpec's GType carries just as much information now.
(gimp_argument_type_to_pdb_arg_type): new function which maps
GTypes to GimpPDBArgType.
(gimp_pdb_arg_type_to_string): formerly known as
procedural_db_type_name().
* app/pdb/gimpprocedure.[ch]
* app/pdb/procedural_db.[ch]: completely switch to GValue. Use the
new GParamSpecs for procedure arguments. GimpPDBArgType is only
used for adding compat args/values of plug-in procedures.
(procedural_db_run_proc): the va_list expects a sequence of
(GType, value, GType, value, ..., G_TYPE_NONE) now.
* app/plug-in/plug-in-params.[ch]: changed accordingly.
(plug_in_param_defs_check): removed this function.
* app/plug-in/plug-in-message.c (plug_in_handle_proc_install): use
plug_in_proc_args_check() instead and initialize the GimpProcedure
before doing so.
* tools/pdbgen/app.pl
* tools/pdbgen/pdb.pl: use the new param spec types and their
utility functions. Changed argument/value registration
accordingly.
* app/pdb/procedural-db-query.c
* app/actions/plug-in-commands.c
* app/actions/vectors-commands.c
* app/core/gimppdbprogress.c
* app/dialogs/about-dialog.c
* app/file/file-open.c
* app/file/file-save.c
* app/plug-in/plug-in-progress.c
* app/plug-in/plug-in-rc.c
* app/plug-in/plug-ins.c
* app/widgets/gimpbrushselect.c
* app/widgets/gimpfontselect.c
* app/widgets/gimpgradientselect.c
* app/widgets/gimphelp.c
* app/widgets/gimppaletteselect.c
* app/widgets/gimppatternselect.c
* tools/pdbgen/pdb/fileops.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/procedural_db.pdb: changed accordingly.
* app/pdb/*_cmds.c: regenerated.
2006-03-31 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdockable.c (gimp_dockable_destroy): always set
dockable->blurb to NULL, also if its memory is shared with
dockable->name.
2006-03-30 Michael Natterer <mitch@gimp.org>
* app/pdb/procedural_db.c (procedural_db_execute_proc): don't
memset(0) the array of return values if the procedure didn't
succeed. GValues don't like to be treated like that and I don't
understand what the memsetting is good for. It just looks like a
very bad hack.
* app/file/file-open.c: additionally, don't access return_vals[>0]
unless the procedure returned successfully.
* app/core/gimppdbprogress.c
* app/widgets/gimppdbdialog.c: procedural_db_run_proc() always
returns non-NULL, no need to check for it.
2006-03-30 Michael Natterer <mitch@gimp.org>
* app/pdb/procedural_db.[ch] (struct Argument): replace the value
union by a GValue.
(procedural_db_argument_init)
(procedural_db_compat_arg_init): new functions to initialize
an Argument. They call g_value_init() on the Argument's value.
(procedural_db_arguments)
(procedural_db_return_values): initialize the returned Argument
arrays so their GValues are ready to use. Allow to get the
(unsuccessful) return values of a NULL ProcRecord.
(procedural_db_destroy_args): g_value_unset() the values. Added a
"gboolean full_destroy" parameter. Its only effect is to destroy
PDB arrays, everything else is nicely memory managed by GValue.
(procedural_db_execute)
(procedural_db_run_proc): do GValue stuff. Added n_args and
n_return_vals parameters to execute().
(procedural_db_execute_proc): private function to execute a
procedure. Validates the passed in arguments using the registered
GParamSpecs before passing them to the resp. exec method.
* app/plug-in/plug-in-params.[ch] (plug_in_params_to_args): needs
an array of ProcArgs now in order to initialize the Arguments'
GValues correctly. Passing NULL ProcArgs uses
procedural_db_compat_arg_init(), so procedures (plug-ins)
returning more values than expected work.
(plug_in_args_to_params): do GValue stuff here too.
(plug_in_args_destroy): removed this function,
procedural_db_destroy_args() does the same now.
* app/plug-in/plug-in-message.c (plug_in_handle_proc_run):
simplified quite a bit because everything returns n_return_values
now. Call plug_in_params_to_args() only of the procedure was found.
(plug_in_handle_proc_return_priv): pass ProcRecs to
plug_in_params_to_args().
* app/batch.c
* app/actions/plug-in-commands.c
* app/actions/vectors-commands.c
* app/core/gimppdbprogress.c
* app/dialogs/about-dialog.c
* app/file/file-open.c
* app/file/file-save.c
* app/plug-in/plug-ins.c
* app/plug-in/plug-in-progress.c
* app/plug-in/plug-in-run.[ch]
* app/widgets/gimphelp.c
* app/widgets/gimppdbdialog.c
* app/xcf/xcf.c
* tools/pdbgen/pdb/fileops.pdb: changed accordingly: don't
g_new/g_free Argument arrays, always use procedural_db_foo()
functions. Use GValue functions to get/set Arguments.
* tools/pdbgen/pdb.pl: added get_value_func and set_value_func to
all PDB types. Removed id_func, id_ret_func and check_func. Added
flags which indicated that a type is an ID. Removed unused utility
functions.
* tools/pdbgen/lib.pl: use the flag instead of looking at
functions and value types.
* tools/pdbgen/app.pl: use the get_value_func and set_value_func
to marshal inargs and outargs. Removed all checks performed on
inargs because that's done by GParamSpec validation now. Added the
missing bits to register excluded values with GimpParamSpecEnum.
* app/pdb/*_cmds.c: regenerated.
2006-03-28 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockbook.c (gimp_dockbook_drop_dockable):
allow
dropping of dockables from the same dockbook to the empty space
next to the notebook tabs. This moves the dockable to the end.
2006-03-15 Sven Neumann <sven@gimp.org>
* app/widgets/gimpaction.c (gimp_action_set_proxy): enabled
tooltips on all menu items for easier review of the action blurbs.
This should be made configurable.
2006-03-10 Sven Neumann <ven@gimp.org>
* app/widgets/gimpaction.c: factored out some code to a utility
function.
* app/config/gimpguiconfig.[ch]
* app/config/gimprc-blurbs.h
* app/dialogs/preferences-dialog.c
* app/gui/gui.c
* app/plug-in/plug-in-run.c
* libgimp/gimp.c
* libgimpbase/gimpprotocol.[ch]: renamed tool_tips to tooltips in
variables and in the gimprc.
* app/config/gimpbaseconfig.[ch]: removed stingy_memory_use from
the GimpBaseConfig struct.
2006-03-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpuimanager.c: connect to the menu items' "select"
and "deselect" signals instead of "enter-notify-event" and
"leave-notify-event", so tooltips work with keynav.
2006-03-09 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpuimanager.[ch]: added "show-tooltip" and
"hide-tooltip" signals. Connect to each menu item's
enter-notify-event and leave-notify-event. On enter, emit
show-tooltip, on leave emit hide-tooltip.
* app/display/gimpdisplayshell.c: connect to the menubar ui
manager's show-tooltip and hide-tooltip signals and show the tip
in the display's status bar.
2006-02-15 Sven Neumann <sven@gimp.org>
* app/widgets/gimptooldialog.c: do not unset focus-on-map for all
tool dialogs.
* app/tools/gimpcolorpickertool.c
* app/tools/gimpmeasuretool.c: explicitely do it here instead.
2006-01-18 Michael Natterer <mitch@gimp.org>
* app/config/config-types.c: define GIMP_PARAM_STATIC_STRINGS
which is G_PARAM_STATIC_NAME|NICK|BLURB. Also define
GIMP_PARAM_READABLE, _WRITABLE and _READWRITE which include
GIMP_PARAM_STATIC_STRINGS.
* app/*/*.c: use them for all object properties so their
strings are not copied.
2006-01-14 Michael Natterer <mitch@gimp.org>
* app/config/gimpconfig-utils.[ch] (gimp_config_connect_full):
variant of gimp_config_connect() which allows the connected
objects to have different propertynames.
* app/widgets/widgets-enums.[ch]: removed enum GimpViewType...
* app/core/core-enums.[ch]: ...and added it here.
* app/widgets/gimpviewablebutton.[ch] (gimp_viewable_button_new):
added "button_preview_size" parameter so the button and popup
preview sizes can be specified separately.
* app/widgets/gimptemplateeditor.c: changed accordingly.
* app/widgets/gimpviewablebox.[ch] (gimp_prop_*_box_new):
new functions which take additional "view_type_prop" and
"view_size_prop" parameters and sync the passed context's
properties with the resp. properties of the viewable button.
* app/paint/gimppaintoptions.[ch]
* app/tools/gimpbucketfilloptions.c
* app/tools/gimpclonetool.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimptextoptions.[ch]: added view-type and view-size
properties to the options objects and use the new viewable box
constructors so the selected view types and sizes are persistant
across sessions. Fixes bug #315443.
2006-01-14 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpsessioninfo.c (gimp_session_info_restore): always
set the current page of dockbooks, also if it's the first one.
2006-01-12 Sven Neumann <sven@gimp.org>
* app/actions/actions.c
* app/actions/cursor-info-actions.c
* app/actions/dialogs-actions.c
* app/config/gimprc-blurbs.h
* app/dialogs/dialogs.c
* app/dialogs/preferences-dialog.c
* app/widgets/gimphelp-ids.h: use the term Pointer instead of
Cursor when refering to the mouse pointer (bug #326700).
2005-12-30 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontainerentry.c (gimp_container_entry_init):
set "inline-completion" and unset "popup-set-width" properties.
2005-12-30 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdockable.[ch]: #define GIMP_DOCKABLE_DRAG_OFFSET
publically.
* app/widgets/gimpdockbook.c (gimp_dockbook_tab_drag_end): use the
define to reset the dockable's drag offsets.
2005-12-29 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockbook.c (gimp_dockbook_dockable_added): set
the current notebook page to the dockable that was just added.
2005-12-29 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdialogfactory.c (gimp_dialog_factories_show_foreach):
fiddle with the "focus-on-map" window hint to prevent the dialogs
from grabbing the focus away from the image window. Fixes bug #167762
for window managers supporting this hint.
* app/display/gimpdisplayshell-callbacks.c: removed redundant call
to gdk_window_focus() that wasn't having the desired effect anyway.
2005-12-29 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdialogfactory.[ch]: split
gimp_dialog_factories_toggle() into two functions. Turned the
tri-state into a simple boolean state. Dialogs are now either
shown or not, without treating the toolbox any special.
* app/actions/dialogs-commands.c
* app/display/gimpdisplayshell-callbacks.c: changed accordingly.
2005-12-29 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockbook.c (gimp_dockbook_tab_drag_begin): use
the width of the source widget as the minimum width of the drag
icon.
2005-12-29 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockable.[ch]: store coordinates of last button
press event.
* app/widgets/gimpdockbook.c (gimp_dockbook_tab_drag_begin): set
the drag hotspot to the mouse position that started the drag.
2005-12-29 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockable.c (gimp_dockable_expose_event): draw the
standalone dockable like a notebook tab to indicate that it can be
dragged.
2005-12-29 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimphelpui.c (gimp_help_set_help_data): allow to
unset the tooltip by passing NULL.
* app/widgets/gimpdockseparator.c: unset the tooltip while the same
text is being shown as a label.
2005-12-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.[ch]: set the new
"do-overwrite-confirmation" property on GtkFileChooser. Removed
gimp_file_overwrite_dialog().
* app/dialogs/file-save-dialog.c (file_save_dialog_check_uri):
removed broken code which tried to figure if a file exists.
Fixes bug #309729.
* app/widgets/gimpdnd-xds.c: added gimp_file_overwrite_dialog()
here as private utility function.
2005-12-27 Michael Natterer <mitch@gimp.org>
Fixed incomplete core/ui separation of paint tools and paint
methods:
* app/core/core-enums.h
* app/core/gimpcontext.[ch]: added a "paint-info" property and API
so the current paint method can be selected without the need for
an active tool.
(gimp_context_real_set_tool): set the paint-info to
tool_info->paint_info so the paint method follows the active tool
just as the active image follows the active display.
* app/core/gimp.h (struct Gimp)
* app/core/gimppaintinfo.[ch]: added "standard_paint_info" API
and stuff to be consistent with other context object properties.
* app/paint/gimp-paint.c: set the paintbrush as
standard_paint_info.
* app/core/gimpstrokedesc.c (gimp_stroke_desc_new): removed the
hack of falling back to the paintbrush when there is no active
tool and use the active paint method instead. Fall back to the
standard paint method if there is no active one.
(nothing in the core uses the active tool any more now).
* app/widgets/gimpdeviceinfo.h: add the paint info to the
properties which are saved in devicerc.
Added identifiers (names) and stock-ids to GimpPaintInfo:
* app/core/gimppaintinfo.[ch] (gimp_paint_info_new): added
identifier and stock-id parameters.
* app/core/gimptoolinfo.c (gimp_tool_info_new): removed the hack
of setting the paint-info stock-id from the tool-info stock-id.
* app/paint/paint-types.h
* app/paint/gimp-paint.c: changed GimpPaintRegisterCallback
accordingly.
* app/tools/gimp-tools.c (gimp_tools_register): changed paint
info names accordingly.
* app/paint/*.c (gimp_*_register): pass identifier and stock-id
accordingly.
2005-12-21 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfileprocview.c: removed icons from
GimpFileProcView. It turned out that the Wilber icon is commonly
mistaken as an indicator for the selected file-type.
2005-11-30 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpeditor.c (gimp_editor_add_button)
(gimp_editor_add_action_button): set the "use-stock" property on
the created buttons so changes of the underlying action's name
don't affect change the button's icon to a string.
2005-11-27 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdeviceinfo.[ch]: added GdkDisplay member since
there is no way fo figure the display a GdkDevice exists on.
Minor cleanups.
* app/widgets/gimpdevices.[ch]: connect to the GdkDeviceManager
and add input devices when displays are opened. Added API to get
the GimpContainer of devices.
* app/widgets/gimpdevicestatus.[ch]: don't just show the devices
of the default display. Instead get the device container from the
new API above and update the GUI when devices are added/removed.
Cleaned up the whole file quite a bit.
2005-11-27 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdeviceinfo.c (gimp_device_info_get_property):
use gtk_accelerator_name() instead of serializing the accelerator
manually.
2005-11-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpgradienteditor.c (view_events):
* app/widgets/gimpnavigationview.c (gimp_navigation_view_scroll):
changed wheel scrolling to be HIG-compliant (control zooms). Also
handle GDK_SCROLL_LEFT/RIGHT correctly and made shift switch the
scroll axis. The widgets behave as the image window now.
2005-11-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpgradienteditor.c: implement GtkWidget::unrealize()
and destroy the control pixmap. fixes crash when moving the dialog
to another display.
* menus/dockable-menu.xml.in: added a separator before the
"Move to Screen" submenu.
2005-11-15 Michael Natterer <mitch@gimp.org>
Allow to construct a group of radio actions in multiple chunks.
(not used yet).
* app/widgets/gimpactiongroup.[ch]
(gimp_action_group_add_radio_actions): added "GSList *radio_group"
parameter and return value.
* app/actions/dockable-actions.c
* app/actions/gradient-editor-actions.c
* app/actions/quick-mask-actions.c
* app/actions/text-editor-actions.c
* app/actions/view-actions.c
* app/actions/window-actions.c: pass NULL as radio_group.
2005-11-15 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainercombobox.c: implement
GtkWidget::unrealize() and unrealize all GimpViewRenderers.
Fixes BadMatch with the renderers' GCs on display change.
2005-11-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollereditor.c (gimp_controller_editor_init):
set the widget's spacing to 12 pixels.
2005-11-02 Sven Neumann <sven@gimp.org>
* app/widgets/gimpclipboard.[ch] (gimp_clipboard_set_text): clear
the GIMP clipboard. Suppress debug output unless gimp is started
with the --verbose command-line option.
* app/actions/data-commands.c
* app/actions/documents-commands.c: adapt to clipboard API change.
2005-11-02 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpsizebox.[ch]: added a GtkSizeGroup member and put
all labels into the group.
* app/dialogs/scale-dialog.c: put the "Interpolation:" label into
the same size box.
2005-11-01 Sven Neumann <sven@gimp.org>
* app/actions/data-commands.c
* app/actions/documents-commands.c
* app/widgets/gimpclipboard.[ch]: moved text clipboard handling to
utility function to avoid code duplication.
2005-10-31 Sven Neumann <sven@gimp.org>
* app/widgets/gimpmessagebox.c (gimp_message_box_init): reverted
the change for bug #302400; it caused bug #319962 to be opened.
Instead unset the focus chain for the message box.
2005-10-31 Sven Neumann <sven@gimp.org>
* app/actions/data-commands.[ch]: added new action command
data_copy_location_cmd_callback().
* app/actions/brushes-actions.c
* app/actions/gradients-actions.c
* app/actions/palettes-actions.c
* app/actions/patterns-actions.c
* app/widgets/gimphelp-ids.h
* menus/brushes-menu.xml
* menus/gradients-menu.xml
* menus/palettes-menu.xml
* menus/patterns-menu.xml: added Copy Location menu entries to all
data views. Allows to retrieve the file location for data files.
2005-10-31 Sven Neumann <sven@gimp.org>
* app/core/gimpdata.[ch]
* app/core/gimpdatafactory.c: applied a heavily modified version
of the patch provided by Shlomi Fish in bug #311740. Introduces a
cache to speed up reloading of data files.
* app/actions/data-commands.c: set gimp busy while refreshing data
factories.
* app/widgets/gimpwidgets-utils.c (gimp_widget_accel_changed):
free the return value of gimp_get_accel_string().
2005-10-31 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpviewablebutton.[ch] (gimp_viewable_button_new):
add GimpViewType parameter.
* app/widgets/gimptemplateeditor.c
* app/widgets/gimpviewablebox.c: pass view types, using grid view
for brushes and patterns ass suggested in bug #315443.
2005-10-30 Michael Natterer <mitch@gimp.org>
Fixed bug #316395:
* app/actions/dialogs-actions.c (dialogs_dockable_actions)
* app/actions/quick-mask-actions.c (quick_mask_toggle_actions):
added tooltips to action entries.
* app/display/gimpdisplayshell.c (gimp_display_shell_new): use
gimp_widget_set_accel_help() to set the tooltip so it contains
the accelerator.
* app/dialogs/dialogs-constructors.c (dialogs_dockable_constructor):
attach the dialog's identifier to the dockable widget (hack).
* app/widgets/gimpdockbook.c (gimp_dockbook_get_tab_widget): use
the attached identifier to find the action for this dockable in
the dock's UI manager (HACK HACK). Use the found action to set
a tooltip with accelerator.
* app/widgets/gimpwidgets-utils.c (gimp_widget_set_accel_help):
fixed bug in fallback code what should never be used.
2005-10-29 Michael Natterer <mitch@gimp.org>
Fix bug #145492:
* app/actions/file-commands.c (file_save_cmd_callback)
* app/dialogs/file-save-dialog.c (file_save_dialog_save_image):
set the "file-quit" action insensitive while the image is being
saved to prevent data loss.
* app/widgets/gimptoolbox.c (gimp_toolbox_delete_event): activate
the "file-quit" action instead of calling gimp_exit() directly so
trying to close the toolbox while saving is impossible too.
2005-10-26 Michael Natterer <mitch@gimp.org>
Fixed bug #313547:
* app/widgets/gimpdataeditor.c
(gimp_data_editor_set_aux_info)
(gimp_data_editor_get_aux_info): store the state of edit_active
in sessionrc.
(gimp_data_editor_constructor): enable edit_active by default.
2005-10-25 Michael Natterer <mitch@gimp.org>
Let the data editors optionally follow the active brush, palette
and gradient. Still needs to be saved in sessionrc and probably
be enabled by default. Addresses bug #313547.
* app/widgets/gimpdataeditor.[ch]: added new functions
gimp_data_editor_set,get_edit_active().
Make it configurable from the palette and gradient editor menus:
* app/actions/gradient-editor-actions.c
* app/actions/palette-editor-actions.c: added actions...
* app/actions/data-editor-commands.[ch]: ...and callbacks...
(new file).
* app/widgets/gimphelp-ids.h: ...help IDs...
* menus/gradient-editor-menu.xml
* menus/palette-editor-menu.xml: ...and menu items.
Add menu to the brush editor and make it configurable there too:
* app/actions/Makefile.am
* app/actions/actions.c
* app/actions/brush-editor-actions.[ch]
* app/menus/menus.c
* menus/Makefile.am
* menus/brush-editor-menu.xml: added all the bits needed for
the new menu.
* app/widgets/gimpbrusheditor.[ch]: use the menu. Added menu_factory
paramater to the contstructor.
* app/dialogs/dialogs-constructors.c: changed accordingly.
2005-10-24 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdockable.c (gimp_dockable_realize): create the
title window as GDK_WINDOW_CHILD, not GDK_WINDOW_TEMP.
2005-09-30 Sven Neumann <sven@gimp.org>
* app/dialogs/Makefile.am
* app/dialogs/keyboard-shortcuts-dialog.[ch]
* app/dialogs/preferences-dialog.c
* app/widgets/gimphelp-ids.h: moved Keyboard Shortcuts dialog into
it's own file.
2005-09-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpprogressbox.c
* plug-ins/script-fu/script-fu-interface.c: made progress bars HIG
compliant (with italic label below).
* app/widgets/gimpfiledialog.[ch]: use a GimpProgressBox intead of
implementing the progress bar again.
2005-09-24 Hans Breuer <hans@breuer.org>
* **makefile.msc : updated
* app/dialogs/user-install-dialog.c : only add the migrate page if
there is something to migrate from. Avoids on version being NULL.
* app/dialogs/file-save-dialog.c : the g_print() output was crashing
on the assumption that ->menu_label != NULL. It is for colorhtml.py.
* app/widgets/gimpselectiondata.c : use HAVE_UNISTD_H and move
* process.h definition by G_OS_WIN32 below it being defined
* app/widgets/gimpwidgets-utils.c(gimp_window_get_native) : cast
return value to (GdkNativeWindow) it is not necessary an int.
* libgimpwidgets/gimpwidgets.def : added gimp_zoom_type_get_type
* plug-ins/help/gimp-help-lookup.c : dynamic lookup of help_root
instead of hard-coding DATADIR/GIMP_HELP_PREFIX
* plug-ins/xjt/xjt.c : there is no pid_t with msvc, typedef one.
2005-09-24 Michael Natterer <mitch@gimp.org>
Applied (slightly modified) patch from Sylvain Foret which adds
"Close All" menu entries and dialog. Fixes bug #163532.
* app/actions/file-actions.c
* app/actions/file-commands.[ch]: added "file-close-all" action
and callback.
* app/dialogs/dialogs-constructors.[ch]
* app/dialogs/dialogs.c
* app/dialogs/quit-dialog.[ch]: added close all dialog which is a
modified quit dialog.
* app/widgets/gimphelp-ids.h: added help ID.
* menus/image-menu.xml.in
* menus/toolbox-menu.xml.in: add close all next to quit.
* app/widgets/widgets-enums.h: Moved the GimpZoomType enum from here...
* libgimpwidgets/gimpwidgetsenums.h: ...to here.
* app/widgets/widgets-enums.c
* libgimpwidgets/gimpwidgetsenums.c: regenerated.
* app/display/gimpdisplayshell-scale.[ch]: removed
gimp_display_shell_scale_zoom_step and
gimp_display_shell_scale_get_fraction from here...
* libgimpwidgets/gimpzoommodel.[ch]: ... to here so we can use these
utility functions in plug-ins and in the core.
Also removed the step-size property since the zoom-model now use
gimp_zoom_model_zoom_step.
* app/actions/view-commands.c
* app/display/gimpdisplayshell-title.c
* app/display/gimpdisplayshell.c
* app/tools/gimpmagnifytool.c: modified accordingly.
* libgimp/gimpzoompreview.c: don't pass any argument to the
gimp_zoom_model_new function.
* libgimpwidgets/gimpwidgets.def: added gimp_zoom_model_zoom_step
(gimp_zoom_model_get_fraction was already there)
* devel-docs/app/app-sections.txt: removed
gimp_display_shell_scale_zoom_step and
gimp_display_shell_scale_get_fraction.
2005-09-24 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpactiongroup.c
(gimp_action_group_set_action_hide_empty): renamed from
set_action_important(). Set the "hide-if-empty" property so
showing an insensitive "Empty" item instead of hiding the submenu
works again (did this ever work?).
* app/actions/tool-options-actions.c (tool_options_actions_setup):
changed accordingly. Keeps the tool options submenus from
disappearing.
2005-09-21 Michael Natterer <mitch@gimp.org>
Separated the global buffer logic from the clipboard
implementation:
* app/widgets/gimpclipboard.[ch]: removed all knowledge about
gimp->global_buffer. Removed the Gimp::buffer-changed callback.
Made gimp_clipboard_set_buffer() public and remember the set
buffer in the GimpClipboard struct. Fixed the has_buffer() and
has_svg() functions.
* app/gui/gui.c: connect to Gimp::buffer-changed here and call
gimp_clipboard_set_buffer() from the callback.
2005-09-19 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpclipboard.[ch]: added new public function
gimp_clipboard_set_svg() and internal stuff to offer and transfer
the svg data to the clipboard.
* app/actions/vectors-commands.c (vectors_copy_cmd_callback)
(vectors_paste_cmd_callback): implement copy/paste of vectors as
SVG. Fixes bug #316547.
* app/widgets/gimpvectorstreeview.c
(gimp_vectors_tree_view_drag_svg): don't add the terminating
nul-byte of the svg string to svg_data_length, it confuses the XML
parser.
* app/actions/vectors-actions.c
* app/actions/vectors-commands.[ch]
* menus/vectors-menu.xml: reordered export/import so they are in
the same order as copy/paste.
2005-09-19 Sven Neumann <sven@gimp.org>
* autogen.sh
* configure.in
* app/main.c
* app/widgets/gimptoolbox.c
* plug-ins/script-fu/scripts/web-browser.scm: changed "The GIMP"
to "GNU Image Manipulation Program" or just "GIMP".
2005-09-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpactionview.c (gimp_action_view_new): skip
actions if their name starts with '<' (menu actions created by
plug-ins have names like "<Image>/Foo/Bar"). Scroll the
pre-selected action to the center of the view, not to the top.
* app/widgets/gimpcontrollereditor.c
(gimp_controller_editor_edit_clicked): make the action editor
transient to the controller editor. Show the edited event's name
in the controller editor's header.
* app/widgets/gimpcontrollerwheel.c: use gimp_get_mod_string()
instead of hardcoding the modifiers in tons of translatable
strings. Don't call gettext() in GimpController::get_blurb(),
the strings are already translated.
* app/widgets/gimpcontrollerkeyboard.c: removed call to gettext()
here too.
2005-09-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpwidgets-utils.[ch] (gimp_widget_set_accel_help):
mis-named and mis-placed function that sets a widget's tooltip to
the action's tooltip plus the action's keyboard shortcut.
* app/widgets/gimptoolbox.c: at least the code is not here any
more.
* app/actions/tools-actions.c: use tool_info->help, not ->blurb
as the action's tooltip so the above works.
2005-09-13 Michael Natterer <mitch@gimp.org>
* app/actions/dockable-actions.c (dockable_actions_update): don't
make "Detach Tab" insensitive if there are other dockbooks in the
dock.
* app/widgets/gimpdock.[ch]
* app/widgets/gimpdockseparator.[ch]: cleanup.
2005-09-12 Michael Natterer <mitch@gimp.org>
Really fix bug #150593:
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpdockseparator.[ch]: new widget implementing the
droppable separator bar in docks.
* app/widgets/gimpdock.c: use it and removed local separator
utility functions.
* app/widgets/gimptoolbox.c: use GimpDockSeparator API to show/hide
the label. Expand the separator initially.
* themes/Default/gtkrc
* themes/Small/gtkrc: the separator height style property moved
from GimpDock to GimpDockSeparator.
2005-09-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolbox.c (gimp_toolbox_book_added)
(gimp_toolbox_book_removed): if there is no dockbook added, expand
the separator and add a label telling the user that she can drop
dockables there. Fixes bug #150593.
2005-09-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerbox.c
(gimp_container_box_set_size_request): take the container's
border_width into account.
* app/widgets/gimpcontainergridview.c
(gimp_container_grid_view_init): make sure GTK_SHADOW_IN is set on
the scrolled window, not on the viewport, so we get the same
results for list and grid views when using
gimp_container_box_set_size_request().
* app/widgets/gimpcontainerpopup.[ch]: added setters and getters
for view_type and preview_size, don't allow the preview to grow
larger than the popup.
* app/widgets/gimpviewablebutton.[ch]: added "popup-view-type" and
"popup-preview-size" properties and setters/getters.
2005-09-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpviewablebox.c: factored out common code in
preparation of fixing bug #315443.
* app/widgets/gimpviewablebutton.h (struct GimpViewableButton):
"popup_preview_size" is a gint, not a GimpViewType.
2005-09-09 Michael Natterer <mitch@gimp.org>
Added parent window API to the GimpProgress interface and to
the libgimp progress stuff. Might look strange, but does
the right thing in almost all cases (image window, file dialog,
script-fu dialog etc). Fixes bug #62988.
* app/core/gimpprogress.[ch]: added GimpProgress::get_window()
which should return a toplevel window ID if the progress is in a
window that wants to be the transient parent of plug-in dialogs.
* app/widgets/gimpwidgets-utils.[ch] (gimp_window_get_native): new
function which returns the window handle of a GtkWindow's GdkWindow.
* app/widgets/gimpfiledialog.c: implement ::get_window().
* app/display/gimpdisplay.[ch]: ditto. Removed window handle API.
* app/gui/gui-vtable.c: changed accordingly.
* libgimpbase/gimpbaseenums.[ch] (enum GimpProgressCommand):
added GIMP_PROGRESS_COMMAND_GET_WINDOW.
* app/plug-in/plug-in-progress.[ch] (plug_in_progress_get_window):
new function. Also renamed some functions to match the
GimpProgress interface, and not the legacy PDB procedure names.
* tools/pdbgen/pdb/progress.pdb
* app/core/gimppdbprogress.c: implement get_window() on both
sides of the wire, keeping backward compatibility (hopefully).
* libgimp/gimpprogress.[ch]: deprecated gimp_progress_install()
and added gimp_progress_install_vtable() which takes a vtable with
padding to be extensible. Added get_window() vtable entry and
dispatch it accordingly. Also added pulse() which was implemented
in a hackish way before. Everything is of course backward
compatible.
* libgimp/gimpprogressbar.c: inmplement the get_window() stuff
so a plug-in dialog containing a progress can be the transient
parent of another dialog in another plug-in.
* libgimp/gimpui.[ch] (gimp_ui_get_progress_window): new function
which returns a foreign GdkWindow of this plug-ins progress
window.
Renamed gimp_window_set_transient_for_default_display() to
gimp_window_set_transient() and make it use the progress' window
handle instead of the display's (which is the right thing to do in
almost all cases).
* libgimp/gimp.def
* libgimp/gimpui.def: add the new functions.
* tools/pdbgen/enums.pl
* app/pdb/internal_procs.c
* app/pdb/progress_cmds.c
* libgimp/gimpprogress_pdb.[ch]: regenerated.
* libgimp/gimpexport.c
* plug-ins/*/*.c: follow API change.
2005-09-08 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer-floating-sel.c (floating_sel_boundary): if
the floating selection has no alpha, manually create BoundSegs of
its outline instead of calling boundary_find() (which creates a
boundary of the last channel). Fixes bug #145373.
* app/widgets/gimplayertreeview.c
(gimp_layer_tree_view_floating_selection_changed): update all
layer names' text attributes, not only for layers with alpha.
Fixes layer name display when making a new layer out of a floating
selection without alpha.
2005-09-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c: allow to popup the context
menu from the views' empty area. Fixes bug #314719.
2005-09-07 Sven Neumann <sven@gimp.org>
* app/widgets/gimperrordialog.[ch]: don't set a window icon, the
dialog should be transient anyway.
* app/dialogs/dialogs-constructors.c: changed accordingly.
2005-09-04 Michael Natterer <mitch@gimp.org>
Cleaned up and fixed the order in which default tool options and
user context values are initialized, and added loading / saving of
the global user context. Fixes bug #165078.
* app/core/Makefile.am
* app/core/gimp-contexts.[ch]: new files which manage the global
contexts. Contains gimp_contexts_init/exit/load/save/clear().
* app/core/gimp.c: use the new init/exit functions instead of
implementing the stuff here.
* app/tools/gimp-tools.c: load/save/clear the user context from
here so it follows the same logic as the tool options. Reset all
tool options before loading the user context and copy the user
context's property to all tool options before loading tool
options.
* app/core/gimptoolinfo.c (gimp_tool_info_new): don't initialize
the tool options with the users context's properties. It's way too
early here and they will be overwritten later.
* app/widgets/gimpdevices.c (gimp_devices_restore): initialize all
device contexts with the user context's properties before loading
the devices and copying the active one back to the user context.
2005-09-03 Michael Natterer <mitch@gimp.org>
* app/core/gimp-edit.[ch] (gimp_edit_paste_as_new): don't create a
display here.
(gimp_edit_named_cut)
(gimp_edit_named_copy)
(gimp_edit_named_copy_visible): new functions containing named
buffer wrappers around the functions affecting the global buffer
only.
* app/actions/edit-commands.c: use the new functions instead of
implementing them here, create a display for the image returned
by paste as new.
* app/actions/buffers-commands.c
* app/widgets/gimptoolbox-dnd.c: create displays here too.
* tools/pdbgen/pdb/edit.pdb: added wrappers for paste as new and
wrappers for all the cut/copy/paste named stuff.
Fixes bug #315130. Cleaned up and de-obfuscated.
* libgimp/gimp.def: changed accordingly.
* app/pdb/edit_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpedit_pdb.[ch]: regenerated.
2005-09-02 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontainergridview.c
* app/widgets/gimpcontainertreeview.c: allow to popup menus on
empty container views using the standard Shift-F10 keybinding.
2005-09-02 Sven Neumann <sven@gimp.org>
* app/tools/gimptextoptions.c
* app/widgets/gimpwidgets-utils.[ch]: dropped the labels from text
tool options that have icons. Reduces visual clutter.
2005-08-27 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpviewrendererpalette.c
(gimp_view_renderer_palette_init): initialize renderer->columns
to != 0 to avoid floating point exceptions on initial layout
calculation. Fixes bug #314663.
2005-08-21 Michael Natterer <mitch@gimp.org>
* app/paint/gimppencil.h
* app/paint/gimppenciloptions.h
* app/widgets/widgets-types.h
* app/widgets/gimptooldialog.h: don't simply typedef object
instance structs which add no members as their parent instance
structs. Give them their own instance structs. Fixes gtk-doc
confusion.
2005-08-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_proc_changed):
when looking for the file extension, only look at the part after
the last directory separator.
2005-08-18 Sven Neumann <sven@gimp.org>
* app/core/gimptemplate.c: go back to using dpi as the default
resolution unit.
* app/core/gimp-utils.[ch]: moved the code to determine the unit
from the locale settings here as gimp_get_default_unit().
* app/dialogs/print-size-dialog.c
* app/widgets/gimpimagepropview.c: use the unit returned by the
new function to display the print size (bug #107497).
2005-08-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppaletteview.c (gimp_palette_view_focus): when
focussing the widget, select the palette's first entry if none is
selected. Enables cursor navigation after tabbing in.
2005-08-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppaletteview.c (gimp_palette_view_focus): return
FALSE on TAB_FORWARD and TAB_BACKWARD. Enables tabbing out of the
widget.
2005-08-09 Michael Natterer <mitch@gimp.org>
* cursors/gimp-tool-cursors.xcf: changed path tool cursor to
actually show a path and added 3 new cursors which are supposed
to show a path's anchor, handle and segments. Someone really
needs to beautify these...
* cursors/tool-paths.png
* cursors/xbm/tool-paths-mask.xbm
* cursors/xbm/tool-paths.xbm: changed accordingly.
* cursors/Makefile.am
* cursors/tool-paths-anchor.png
* cursors/tool-paths-control.png
* cursors/tool-paths-segment.png
* cursors/xbm/tool-paths-anchor-mask.xbm
* cursors/xbm/tool-paths-anchor.xbm
* cursors/xbm/tool-paths-control-mask.xbm
* cursors/xbm/tool-paths-control.xbm
* cursors/xbm/tool-paths-segment-mask.xbm
* cursors/xbm/tool-paths-segment.xbm: new files.
* app/widgets/widgets-enums.h (enum GimpToolCursorType): added
PATH_ANCHOR, PATH_CONTROL and PATH_SEGMENTS.
* app/widgets/gimpcursor.c: added the new cursors.
* app/tools/gimpvectortool.c (gimp_vector_tool_cursor_update):
use them.
2005-08-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdataeditor.c: made hitting Escape in the name
entry restore the data's original name. Enables undoing of
accidential editing. Addresses bug #169257.
2005-08-06 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpuimanager.c (gimp_ui_manager_ui_popup): applied
patch from Robert Ögren that frees the event returned by
gtk_get_current_event(). Fixes bug #312017.
2005-08-06 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimppropwidgets.[ch]
* libgimpwidgets/gimpwidgets.def: added gimp_prop_hscale_new().
* app/tools/gimpforegroundselectoptions.c: added a control for the
stroke width.
* app/tools/gimpforegroundselecttool.c: cancel the tool if the
active drawable or the image size changes.
* app/widgets/gimpcontrollerlist.c: fixed signedness warning.
2005-07-29 Sven Neumann <sven@gimp.org>
* app/core/gimpscanconvert.[ch]: added
gimp_scan_convert_render_value(), a variant of
gimp_scan_convert_render() that allows to pass the foreground value.
* app/tools/gimpfreeselecttool.[ch]: added a virtual "select" method.
* app/tools/Makefile.am
* app/tools/gimp-tools.c
* app/tools/gimpforegroundselecttool.[ch]: added a rough first
version of foreground selection tool based on the SIOX algorithm.
Work in progress...
* app/widgets/gimphelp-ids.h: added help-id for the new tool.
2005-07-25 Michael Natterer <mitch@gimp.org>
Some DND fixes / cleanup:
* app/widgets/widgets-enums.h: renamed GIMP_DND_TYPE_TOOL to
GIMP_DND_TYPE_TOOL_INFO.
* app/widgets/gimpselectiondata.[ch]: s/tool/tool_info/g. Moved
private functions to the end of the file. Include GIMP's PID in
all GtkSelectionData strings which are used to pass around stuff
by reference. For things which are referenced by name, also encode
the object's address in the GtkSelectionData so having a brush
called "Standard" or a named buffer called "Global Buffer" will
work together with DND.
* app/widgets/gimpdnd.[ch]: s/tool/tool_info/g. Renamed
gimp_dnd_get_data_data() to gimp_dnd_get_object_data() since it's
not limited to GimpData objects. Follow above selection data API
changes. Cleanup.
* libgimp/gimpbrushmenu.c
* libgimp/gimpdrawablecombobox.c
* libgimp/gimpfontselectbutton.c
* libgimp/gimpgradientmenu.c
* libgimp/gimpimagecombobox.c
* libgimp/gimppalettemenu.c
* libgimp/gimppatternmenu.c: follow GtkSelectionData format change
and check the dropped things' PID against the return value of
gimp_getpid().
2005-07-23 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpselectiondata.c
(gimp_selection_data_get_buffer): special case the global buffer
so it can be dropped, not only dragged around.
2005-07-22 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppaletteeditor.c (gimp_palette_editor_init):
allow to drop palettes onto the palette view again.
2005-07-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimppaletteeditor.c (gimp_palette_editor_zoom):
fixed the GIMP_ZOOM_TO case for palettes with a number of colors
that is not a multiple of the number of columns.
2005-07-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrendererpalette.c
(gimp_view_renderer_palette_render): reverted my last change here
and replaced it with a better fix.
2005-07-22 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppaletteview.c: setup the dnd stuff in
GimpView::set_viewable() and remove GimpView's automatically added
GimpPalette drag source. Fixes color dragging (bug #113237).
2005-07-19 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogrameditor.c: try a different style for the
info labels below the histogram; mainly to avoid repositioning.
2005-07-14 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppaletteview.[ch]: added "entry-clicked" and
"color-dropped" signals. Completely handle color DND. Cleanup.
* app/core/gimpmarshal.list: marshallers for above signals.
* app/widgets/gimppaletteeditor.[ch]: chopped and reassembled.
Remove tons of code and use a GimpPaletteView instead of the
deprecated GtkPreview. Addresses bug #102204.
2005-07-14 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimppaletteview.[ch]: new widget which manages the
selected palette entry itself and emits "selected", "activated"
and "context" signals. Not used yet.
* app/widgets/gimpviewrendererpalette.[ch]: reimplemented palette
drawing: added optional grid drawing and APIs to configure the
renderer. Should be ready for the palette editor now.
2005-07-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpviewrendererpalette.c
(gimp_view_renderer_palette_render): implement it the same way as
gimp_palette_get_preview(). Can't be used for the palette editor
yet.
2005-07-13 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpviewrendererpalette.[ch]: new view renderer,
does nothing yet except chaining up in ::render().
* app/widgets/gimpviewrenderer-utils.c
(gimp_view_renderer_type_by_viewable_type): use it for palettes.
2005-07-13 Michael Natterer <mitch@gimp.org>
* app/core/gimppalette.c (gimp_palette_add_entry): actually return
the added entry, and not always the palette's last entry (argh!).
* app/widgets/gimppaletteeditor.c: make sure the cursor is always
on the newly added color. Really fixes#15060 this time.
2005-07-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdockable.[ch]: added new public function
gimp_dockable_blink_cancel() which stops title blinking.
* app/tools/gimpcolorpickertool.c (gimp_color_picker_tool_picked):
cancel blinking when updating a picked color so the dockable
doesn't flicker for each cursor movement.
2005-07-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppaletteeditor.c (gimp_palette_editor_pick_color):
add colors after the cursor. Fixes bug #150608.
2005-07-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimplayertreeview.c (gimp_layer_tree_view_init):
moved the lock alpha toggle to a separate "Lock:" line.
2005-07-10 Hans Breuer <hans@breuer.org>
* **/makefile.msc app/gimpcore.def : updated
* app/widgets/gimpcontrollerlist.c : dont include
"gimpmessagedialog.c" to avoid redefinitions.
Instead include gimpmessagebox.h and gimpmessagedialog.h
* plug-ins/common/raw.c : include <io.h>
* plug-ins/common/screenshot.c : make it compile. It
still has no code to actually work on win32.
2005-07-09 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpsamplepointeditor.[ch]: added "sample-merged"
property and API. Pass it to gimp_image_pick_color().
* app/actions/Makefile.am
* app/actions/actions.c
* app/actions/sample-point-editor-actions.[ch]
* app/actions/sample-point-editor-commands.[ch]: actions and
callbacks for the sample point editor's menu.
* app/widgets/gimphelp-ids.h: its help IDs.
* app/menus/menus.c
* menus/Makefile.am
* menus/sample-point-editor-menu.xml: the sample point editor menu.
2005-07-09 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-pick-color.c (gimp_image_pick_color): if
sample_merged is FALSE and drawable is NULL, just get the image's
active drawable instead of bailing out.
* app/widgets/gimpcursorview.c (gimp_cursor_view_update_cursor):
use gimp_image_pick_color() insted of duplicating its code.
2005-07-09 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcursorview.[ch]: added boolean "sample-merged"
property, API and GUI. Pick from the active drawable if it's
FALSE.
* app/actions/Makefile.am
* app/actions/actions.c
* app/actions/cursor-info-actions.[ch]
* app/actions/cursor-info-commands.[ch]: new files with actions
and callbacks for the cursor info dialog's menu.
* app/widgets/gimphelp-ids.h: help IDs for above actions.
* app/dialogs/dialogs.c: follow help ID change.
* app/menus/menus.c
* menus/Makefile.am
* menus/cursor-info-menu.xml: add the cursor-info menu.
* app/dialogs/dialogs-constructors.c: pass the menu factory to
gimp_cursor_view_new().
2005-07-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcursorview.c (gimp_cursor_view_update_cursor):
pass the color index value to gimp_color_frame_set_color() so it
would show up in the frame if we actually picked from indexed
things.
2005-07-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_new): enable
remote files: set local_only to FALSE if the PDB has
"file_uri_load/save" procedures (yes, this is questionable).
2005-07-07 Michael Natterer <mitch@gimp.org>
* app/actions/documents-actions.c
* app/actions/documents-commands.[ch]
* app/widgets/gimphelp-ids.h
* menus/documents-menu.xml: added "Copy Image Location" to the
document history popup menu which copies the image's URI to
clipbpard and primary.
2005-07-07 Sven Neumann <sven@gimp.org>
* app/actions/gradient-editor-commands.c
* app/widgets/gimpcolordialog.c
* app/widgets/gimpdock.c
* plug-ins/gflare/gflare.c
* plug-ins/script-fu/script-fu-server.c: specify alternative
button order in some places that were missed earlier (spotted by
Stephan Binner).
2005-06-27 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpenumcombobox.[ch]: added new constructor
gimp_enum_combo_box_new_with_model(). Also override the "model"
property to make it clear that GimpEnumComboBox expects to be
used with GimpEnumStore.
* libgimpwidgets/gimpwidgets.def: updated.
* app/tools/gimpcurvestool.c
* app/tools/gimplevelstool.c
* app/widgets/gimpwidgets-constructors.c: use the new constructor.
* libgimpwidgets/gimpenumlabel.h
* libgimpwidgets/gimpenumstore.h
* libgimpwidgets/gimpintcombobox.h
* libgimpwidgets/gimpintstore.h: use "parent_class", not
"parent_instance" when including the parent struct.
2005-06-25 Sven Neumann <sven@gimp.org>
* app/widgets/gimpimagepropview.c (gimp_image_prop_view_update):
use gimp_enum_get_value() to avoid string duplication.
2005-06-15 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.c (gimp_imagefile_load_thumb):
* app/widgets/gimpthumbbox.c (gimp_thumb_box_auto_thumbnail):
don't display a preview and don't attempt to create one if the
image file does not exist any longer (bug #307672).
2005-06-11 Michael Natterer <mitch@gimp.org>
Allow to use the selected font in the text editor (bug #170299):
* app/widgets/gimptexteditor.[ch]: added a "Use selected font"
toggle and an API to set/get the selected font name.
* app/tools/gimptextoptions.c: update the editor's font when the
text option's font changes. Renamed text editor callbacks to
gimp_text_options_editor_foo().
2005-06-05 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrendererbrush.c
(gimp_view_renderer_brush_render_timeout): if the area is larger
than the brush, center the brush.
2005-06-05 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcoloreditor.c
* app/widgets/gimpcursorview.c
* app/widgets/gimpdataeditor.c
* app/widgets/gimpeditor.c
* app/widgets/gimphistogrameditor.c
* app/widgets/gimppaletteeditor.c: peek at the default interface to
get the parent interface. Unconditionally chain up in get_aux_info()
and set_aux_info() methods.
2005-06-05 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdocked.[ch]
* app/widgets/gimpeditor.[ch]: moved button-bar API to the
GimpDocked interface.
* app/widgets/gimpcontainereditor.c: implement the new interface
methods and proxy them to the embedded docked.
* app/actions/dockable-actions.c
* app/actions/dockable-commands.c: changed accordingly.
2005-06-04 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontainerview.h: don't include gimpeditor.h.
* app/widgets/gimpbufferview.c
* app/widgets/gimpdocumentview.c
* app/widgets/gimpfontview.c
* app/widgets/gimpimageview.c: include it here instead.
2005-06-04 Sven Neumann <sven@gimp.org>
* app/actions/dockable-actions.c
* app/actions/dockable-commands.[ch]
* app/widgets/gimpeditor.[ch]
* app/widgets/gimphelp-ids.h
* menus/dockable-menu.xml.in: allow to show/hide the button-bar in
GimpEditor. Should be merged into the GimpDocked interface.
2005-06-04 Sven Neumann <sven@gimp.org>
* app/widgets/gimpwidgets-utils.c (gimp_text_buffer_load):
validate the iter after appending to the text buffer.
2005-06-04 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdnd.c (gimp_dnd_get_viewable_icon): use the
viewable's description in the drag icon. Use a larger preview.
* app/widgets/gimpdockbook.c: tweak spacing and border-width of
the tab widget if it is being used as drag icon.
2005-06-04 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdnd.c (gimp_dnd_get_viewable_icon): reduced the
number of characters to show before ellipsizing the label.
* libgimpwidgets/gimpcolorarea.c: added a "draw-border" property.
* app/widgets/gimpcolorframe.c: draw a border around the color area.
2005-06-04 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcolorframe.[ch]: added property for "mode",
fixed some implementation issues.
* app/widgets/gimpsamplepointeditor.c: create the color frames
using g_object_new().
* app/widgets/gimpcolorframe.[ch]: add "has-color-area" property,
FALSE by default.
* app/widgets/gimpsamplepointeditor.c: explicitly add a color
area to the color frames.
2005-06-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview-dnd.c
(gimp_container_tree_view_drop_status): bail out early if the view
has no container (instead of crashing).
2005-06-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolorframe.[ch]: added API to show a number in
front of the color area.
* app/widgets/gimpsamplepointeditor.c: use the new API to put the
sample points' numbers there.
2005-06-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolorframe.c (gimp_color_frame_init): pack the
color area and the labels into different vboxes to make the widget
compact again.
2005-05-31 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpaction.c (gimp_action_set_proxy): re-enabled
tooltips on the "Open Recent" menu items, using an evil but
documented heuristic.
2005-05-29 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdnd.c (gimp_dnd_get_color_icon): pass
GIMP_COLOR_AREA_CHECKS_SMALL instead of TRUE for the type of the
GimpColorArea.
* app/widgets/gimpcoloreditor.c: added a "context" property.
* libgimpwidgets/gimpcolorarea.c (gimp_color_area_set_color):
always use gimp_rgba_distance(), regardless of the area's type.
2005-05-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogrameditor.[ch]: connect to "name-changed"
of the active drawable and change the name displayed in the editor.
2005-05-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimpeditor.[ch]: added a name label (with properties
to show/hide and to set it).
* app/widgets/gimpcontainergridview.[ch]
* app/widgets/gimphistogrameditor.[ch]: removed the label here and
use the functionality now provided by GimpEditor instead.
* app/widgets/gimpcontainerpopup.c: changed accordingly.
2005-05-25 Michael Natterer <mitch@gimp.org>
* app/core/gimpviewable.[ch]: added virtual function
GimpViewable::get_size() and public API gimp_viewable_get_size()
which return width and height and a boolean indicating if the
viewable has a size at all.
Added default implementation of GimpViewable::get_popup_size()
using the new get_size() API.
* app/core/gimpbrush.c
* app/core/gimpbuffer.c
* app/core/gimpdrawable.c
* app/core/gimpimage.c
* app/core/gimppattern.c: implement GimpViewable::get_size().
* app/core/gimpbrush.c
* app/core/gimppattern.c: removed GimpViewable::get_popup_size()
implementations, the default one is good enough.
* app/core/gimpbrushpipe.c (gimp_brush_pipe_get_popup_size):
redirect to gimp_viewable_get_size() instead of duplicating its
return values.
* app/widgets/gimpcontainertreeview.c
* app/widgets/gimpview.c: allow pixbuf dragging out of any
viewable that has a size.
* app/widgets/gimpdrawabletreeview.c: removed pixbuf dragging code
here.
* app/widgets/gimpdnd.c: set gimp busy around encoding/decoding
pixbufs into/from GtkSelectionData, because it can be a time
consuming operation.
2005-05-25 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockable.c: ellipsize the dockable title if it
is too wide.
* app/widgets/gimpstrokeeditor.c: added mnemonic for the presets
combo.
2005-05-25 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolbox-dnd.c: implemented dropping of pixbufs.
Bail out early from all callbacks if gimp->busy is TRUE.
2005-05-23 Sven Neumann <neumann@jpk.com>
* app/widgets/gimpcellrendererdashes.[ch]: we don't actually need to
keep a pointer to the dashes array.
(gimp_cell_renderer_dashes_render): respect horizontal padding.
* app/widgets/gimpstrokeeditor.c: added 2 pixels horizontal
padding for the dashes cell-renderer.
2005-05-22 Sven Neumann <sven@gimp.org>
* app/core/gimpdashpattern.c: minor cleanup.
* app/widgets/gimpcellrendererdashes.c: don't draw a background,
draw the dash pattern twice, use the correct widget state.
2005-05-21 Sven Neumann <sven@gimp.org>
* app/core/gimpdashpattern.[ch]: added utility functions to copy
and to free a dash pattern.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcellrendererdashes.[ch]: added a simple cell
renderer to visualize a dash pattern.
* app/widgets/gimpstrokeeditor.c: show previews of the dash
presets in the combo-box.
2005-05-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcoloreditor.c: moved the color picker button out
of the row of notebook switching buttons next to the hex entry.
2005-05-19 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpcolorscales.c: removed the hex entry from the
GimpColorScales widget.
* libgimpwidgets/gimpcolorselection.c: added it here instead.
* app/widgets/gimpcoloreditor.[ch]: and here, next to the FG/BG
editor.
2005-05-19 Sven Neumann <sven@gimp.org>
* app/core/gimpstrokeoptions.[ch]: renamed property "miter" to
"miter-limit" and added a description to be used as a tooltip in
the stroke editor.
* app/core/gimpdrawable-stroke.c
* app/widgets/gimpstrokeeditor.c: changed accordingly.
2005-05-19 Sven Neumann <sven@gimp.org>
* app/core/gimpstrokeoptions.[ch]
* app/widgets/gimpdasheditor.c
* app/widgets/gimpstrokeeditor.c: small change to the internal API
to reduce code and conversion between GArray and GValueArray.
2005-05-19 Sven Neumann <sven@gimp.org>
* app/core/gimpdashpattern.[ch]
* app/widgets/gimpdasheditor.c: moved more code out of
GimpDashEditor to gimpdashpattern.c. Fixed bug in last commit.
2005-05-19 Sven Neumann <sven@gimp.org>
* app/core/gimpdashpattern.[ch]
* app/widgets/gimpdasheditor.c: moved code out of GimpDashEditor
to gimpdashpattern.c.
2005-05-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpclipboard.[ch]: added gimp_clipboard_has_svg()
and gimp_clipboard_get_svg().
* app/actions/edit-commands.c (edit_paste_cmd_callback): enabled
pasting of SVG data using gimp_vectors_import_buffer().
2005-05-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollerlist.c
(gimp_controller_list_remove_clicked): implement removing of
controllers, confirmed by a dialog.
* app/widgets/gimpcontrollereditor.c
(gimp_controller_editor_edit_clicked): set an alternative button
order for the event mapping dialog.
2005-05-12 Sven Neumann <sven@gimp.org>
* app/widgets/gimpimagedock.c: request notification about changes
to the "transient-docks" preference and drop the transient
relationship if it is disabled.
plus some other changes / fixes to my previous commit
2005-05-12 Sven Neumann <sven@gimp.org>
* app/config/gimpguiconfig.[ch]
* app/config/gimprc-blurbs.h: added new gimprc option
"transient-docks".
* app/widgets/gimpimagedock.c (gimp_image_dock_display_changed):
as an experiment
, obey the "transient-docks" preference and set
the dock window transient to the active display shell. Please
comment on the behaviour you observe.
* app/dialogs/preferences-dialog.c (prefs_dialog_new): added a
view on the new gimprc property.
* app/config/gimpguiconfig.[ch]: set the IGNORE flag on the
"info-window-per-display" property; it isn't used any longer.
* app/config/gimpconfig-dump.c (dump_gimprc_system): don't dump
properties that have the GIMP_CONFIG_PARAM_IGNORE flag set.
2005-05-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpuimanager.c (gimp_ui_manager_find_action): allow
to pass a NULL group_name and iterate all action groups to find
the action in that case.
* app/widgets/gimpcontrollereditor.c: show the action's stock icon
in the "Action" column, using above function.
2005-05-11 Michael Natterer <mitch@gimp.org>
Some dock refactoring which separates the docking logic from
active image and UI manager stuff:
* app/widgets/gimpmenudock.[ch]: new widget renamed from
GimpImageDock, zero changes except the name change.
* app/widgets/gimpimagedock.[ch]: new widget derived from
GimpDock. Keeps the UI manager.
* app/widgets/gimpdock.[ch]: removed the UI manager. GimpDock only
contains the basic docking logic again.
* app/widgets/gimpmenudock.[ch]
* app/widgets/gimptoolbox.[ch]: derive them from GimpImageDock.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/actions/dialogs-commands.c
* app/actions/dock-actions.c
* app/actions/dock-commands.c
* app/actions/dockable-commands.c
* app/dialogs/dialogs-constructors.c: changed accordingly.
2005-05-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollerinfo.[ch]: added API to set an event
snooper which, if set, receives any controller event first, even
if event dispatching is disabled for the controller.
* app/widgets/gimpcontrollereditor.[ch]: use the new API to
implement a "Grab Event" button, which takes the next event from
the controller and selects it in the event mapping tree view.
2005-05-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollerlist.[ch]: some more stuff: up/down
buttons, remember the dialogs' size and positions, misc stuff.
* app/widgets/gimpcontrollereditor.c
(gimp_controller_editor_edit_clicked): use a GimpViewableDialog
now that GimpControllerInfo is a GimpViewable.
* app/dialogs/dialogs.c: added a foreign entry for the controller
editor dialog. Allow the controller editors and its event mapping
dialogs to exist multiple times.
* app/dialogs/preferences-dialog.c (prefs_notebook_append_page):
create the pages' event boxes with input-only windows.
2005-05-09 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcontrollerlist.[ch]: new widget which allows
adding/removing controllers using two lists of available/active
controllers. Work in progress...
* app/widgets/gimpcontrollerinfo.[ch]: derive it from GimpVieable
so it can have an icon (unfinished). Added convenience constructor
gimp_controller_info_new().
* app/dialogs/preferences-dialog.c: use a GimpControllerList
instead of a notebook of GimpControllerEditors.
2005-05-06 Sven Neumann <sven@gimp.org>
* app/actions/layers-actions.c
* app/core/gimpimage.c (gimp_image_position_layer)
* app/widgets/gimplayertreeview.c (gimp_layer_tree_view_drop_possible):
drop the limitation that layers not at the bottom of the stack
have to have an alpha channel. Allow the user to move the
background layer up in the stack or reposition it using DND.
* tips/gimp-tips.xml.in: changed the relevant tip and some more.
2005-05-06 Michael Natterer <mitch@gimp.org>
* app/actions/gradient-editor-commands.h: added enum for the
"load_color" actions.
* app/actions/gradient-editor-actions.c
* app/actions/gradient-editor-commands.c: use the new enum instead
of magic values, cleanup.
* app/actions/palette-editor-commands.c: cleanup.
* app/widgets/gimpbrusheditor.c
* app/widgets/gimpdataeditor.c: cleanup.
* app/widgets/gimpgradienteditor.c: added GtkObject::destroy() and
GtkWidget::unmap() implementations which destroy the color dialog.
Destroy color dialogs by cancelling them via gtk_dialog_response(),
so temporarily changed colors are restored correctly. Refactored
my last commit below a bit. Various cleanups.
* app/widgets/gimppaletteeditor.[ch]: no need to remember the
buttons in the GimpPaletteEditor struct.
2005-05-05 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpgradienteditor.c (control_draw)
(control_draw_normal_handle)
(control_draw_middle_handle): changed handle colors to be always
black and white. Fixes bug #303118. Also changed the handle bar's
background and the handles' outlines to theme colors which should
make the handles distinguishable from the background for all
themes.
Various unrelated cleanups.
2005-05-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolordisplayeditor.h: include the parent class,
not gimpeditor.h
* app/widgets/gimpcolordisplayeditor.c: include gimpeditor.h here
2005-04-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimpunitstore.c: don't call va_arg() too often.
* libgimpconfig/gimpcolorconfig.c (gimp_color_config_finalize):
free the string allocated for the display module.
2005-04-24 Hans Breuer <hans@breuer.org>
* menus/makefile.msc : build menus with nmake, too
menus/Makefile.am : added to EXTRA_DIST
* **/makefile.msc app/gimpcore.def : updated
* app/base/tmp-buf.c : there is no pid_t with msvc so typedef one
2005-04-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpsamplepointeditor.[ch]: Connect to the
GimpImage::update-sample-point and GimpProjection::update signals
and idle-pick colors at the sample points' coordinates.
Addresses bug #137776.
2005-04-16 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.c (gimp_context_real_set_brush)
(gimp_context_real_set_pattern): no need to get base_config twice
in the same function.
* app/widgets/gimpblobeditor.h: include the parent class.
* app/widgets/gimpdataeditor.c (gimp_data_editor_init): set the
name entry insensitive.
2005-04-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdataeditor.[ch]: implement
GimpDocked::get_title() and add "(read only)" to the dialog's
title if the data is not editable. Fixes bug #164003.
(gimp_data_editor_real_set_data): call gimp_docked_title_changed()
when the editable state changes.
(struct GimpDataEditorClass): added "const gchar *title" member.
* app/widgets/gimpbrusheditor.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimppaletteeditor.c (class_init): set titles.
2005-04-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpimagedock.c (gimp_image_dock_image_changed):
don't use the image container as display container.
2005-04-09 Michael Natterer <mitch@gimp.org>
Implement dragging and dropping in any GdkPixbuf supported
format. Fixes bug #172794 and bug #172795.
* app/core/gimplayer.[ch] (gimp_layer_new_from_region): new
function which contains all stuff that was in
gimp_layer_new_from_tiles().
(gimp_layer_new_from_tiles): use above function.
(gimp_layer_new_from_pixbuf): new function.
* app/widgets/Makefile.am
* app/widgets/gimppixbuf.[ch]: new files containing GdkPixbuf
utility functions for clipboard and DnD.
* app/widgets/gimpselectiondata.[ch]: removed
gimp_selection_data_set,get_pixbuf(), GTK+ provides the same API.
Also removed GdkAtom parameters all over the place because it's
always the same as selection_data->target.
* app/widgets/gimpclipboard.c: use the new pixbuf utility
functions and gtk_selection_data_set,get_pixbuf().
* app/widgets/widgets-enums.h
* app/widgets/gimpdnd.[ch]: removed never-implemented
GIMP_DND_TYPE_PNG and added a generic GIMP_DND_TYPE_PIXBUF
instead. Added API to drag and drop GdkPixbufs which transparently
converts from/to and GdkPixbuf-supported image format. Removed
passing around of GdkAtoms, since they were always the same
as selection_data->target.
* app/widgets/gimpdnd-xds.[ch]: follow GdkAtom parameter removal.
* app/widgets/gimpcontainertreeview.[ch]: added virtual function
GimpContainerTreeView::drop_pixbuf().
* app/widgets/gimpcontainertreeview-dnd.c: dispatch drop_pixbuf().
* app/widgets/gimplayertreeview.c: implement drop_pixbuf().
* app/widgets/gimpdrawabletreeview.c: allow to drag all drawables
as pixbufs.
* app/display/gimpdisplayshell-dnd.c: allow dropping of pixbufs.
2005-04-07 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcolorframe.c (gimp_color_frame_set_color): only
update the view if there's actually a change.
2005-04-07 Sven Neumann <sven@gimp.org>
* app/widgets/gimpmessagebox.c: plugged a small memleak.
* libgimpwidgets/gimpcontroller.c: added a finalizer and free the
allocated strings.
2005-04-05 Michael Natterer <mitch@gimp.org>
More unfinished replacement for the info window:
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpimagepropview.[ch]: new widget showing an image's
size, resolution, mode, memsize etc.
* app/dialogs/Makefile.am
* app/dialogs/image-properties-dialog.[ch]: a dialog keeping the
widget.
* app/widgets/gimphelp-ids.h: a help ID for the dialog.
* app/actions/image-actions.c
* app/actions/image-commands.[ch]
* menus/image-menu.xml.in: action and menu entry for the dialog.
2005-04-04 Tor Lillqvist <tml@novell.com>
* app/widgets/gimpclipboard.c (gimp_clipboard_format_compare): On
Win32, move the "bmp" format to the front. Means less conversion
in most cases, as other apps on Win32 typically provide/want the
BMP format on the Clipboard. (Actually CF_DIB, but that's the
same, just without the BMP file header.) See also bug #168173.
2005-04-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcursorview.[ch]: fixed spacings and update them
in GtkWidget::style_set(). Removed lots of cruft from the widget
this files were copied from, including the GimpContext param
to gimp_cursor_view_new(). Remember the state of the two color
frames as aux-info in sessionrc.
* app/dialogs/dialogs-constructors.c: changed accordingly.
2005-04-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolorframe.c (gimp_color_frame_init): switch
from a table to a vbox containing hboxes, so the widget's width is
not determined by the longest label *plus* the longest value.
2005-04-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage.[ch]: added new signals "sample-point-added"
and "sample-point-removed" and public functions to emit them.
* app/core/gimpimage-sample-points.c (gimp_image_add_sample_point)
(gimp_image_remove_sample_point): emit them accordingly.
* app/core/gimpimage-undo-push.c (undo_pop_image_sample_point):
ditto.
(undo_pop_image_guide)
(undo_pop_image_sample_point): added comments why we add/remove
stuff manually instead of using the GimpImage APIs.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcursorview.[ch]
* app/widgets/gimpsamplepointeditor.[ch]: new widgets.
GimpCursorView is a replacement for the info window's "Cursor"
page, GimpSamplePointEditor is a view on an image's sample points.
The sample point editor does nothing yet except keeping a 2x2 grid
of GimpColorFrames. Addresses bug #137776.
* app/dialogs/dialogs.c
* app/dialogs/dialogs-constructors.[ch]: register the new widgets
as dockable dialogs.
* app/actions/dialogs-actions.c (dialogs_dockable_actions)
* menus/dialogs-menuitems.xml: added actions and menu items for
the new dialogs.
* app/display/gimpdisplayshell-cursor.c
(gimp_display_shell_update_cursor)
(gimp_display_shell_clear_cursor): update the new cursor view.
* app/widgets/gimphelp-ids.h: help IDs for the new dialogs.
* app/widgets/widgets-enums.[ch] (enum GimpColorFrameMode):
changed description "Pixel values" to "Pixel" because the former
was too long.
2005-03-31 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/gimpfgbgview.[ch]
* app/widgets/widgets-types.h: added new widget GimpFgBgView;
somewhat similar to GimpFgBgEditor but a lot simpler.
* app/widgets/gimpcoloreditor.c: use GimpFgBgView as preview widget.
Closes bug #168592.
* app/widgets/gimpfgbgeditor.c: gracefully handle a very small
size allocation.
2005-03-26 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdnd.c: don't add the same target multiple times.
This used to happen when gimp_dnd_foo_source_add() is called
after calling gimp_dnd_drag_source_set_by_type().
2005-03-25 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockable.c (gimp_dockable_add): initialize the
tab style to a supported one. Fixes bug #171562.
2005-03-25 Sven Neumann <sven@gimp.org>
* app/dialogs/file-save-dialog.c
* app/widgets/gimpfiledialog.[ch]: moved overwrite confirmation
dialog to app/widgets.
* app/widgets/gimpdnd-xds.c: set "Untitled.xcf" as default name
for untitled images; ask for confirmation before overwriting a
local file.
2005-03-25 Sven Neumann <sven@gimp.org>
* app/core/gimpmarshal.list: added VOID: OBJECT, OBJECT.
* app/widgets/gimpview.[ch]: pass old and new viewable in the
"set-viewable" signal.
* app/widgets/gimptoolbox-image-area.c: don't add the XDS drag source
more than once.
2005-03-25 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdnd-xds.c (gimp_dnd_xds_save_image): in case of
an error, answer with E (error) instead of F (failure).
2005-03-25 Sven Neumann <sven@gimp.org>
* app/widgets/gimpview.[ch]: virtualized GimpView::set_viewable.
* app/widgets/gimptoolbox-image-area.c: hook into "set_viewable"
and add an XDS drag source.
* app/widgets/gimpdnd-xds.c
* app/widgets/gimpdnd.c: unset the XdndDirectSave0 property when
the drag ends, minor cleanups.
2005-03-25 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/gimpdnd-xds.[ch]: new files.
* app/widgets/gimpdnd.[ch]
* app/widgets/widgets-enums.h: added a basic XDS (Direct Save
Protocol) implementation.
* app/widgets/gimpimageview.c: allow to save images by dragging
them from the Images dialog to an XDS capable file manager.
2005-03-24 Sven Neumann <sven@gimp.org>
Merged from gimp-2-2 branch:
* app/widgets/gimphistogrameditor.c: change to the Value channel
if the current channel becomes invalid due to an image mode change.
Fixes bug #170116.
2005-03-23 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpselectiondata.c (gimp_selection_data_get_image)
(gimp_selection_data_get_component)
(gimp_selection_data_get_item): same fix as below for ID-based DND
types.
2005-03-23 Sven Neumann <sven@gimp.org>
* libgimp/gimpbrushmenu.c
* libgimp/gimpfontmenu.c
* libgimp/gimpgradientmenu.c
* libgimp/gimppalettemenu.c
* libgimp/gimppatternmenu.c: accept names passed over DND no matter
whether they are NULL-terminated or not.
* app/widgets/gimpselectiondata.c: same change here, also
UTF8-validate the selection data before accepting it.
2005-03-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpactiongroup.c
* app/widgets/gimpcolorpanel.c: use gtk_action_set_sensitive()
and gtk_action_set_visible() instead of setting the respective
properties.
2005-03-21 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_constructor): disable search for tree
views so that treeview typeahead doesn't collide with global
accelerators. Fixes bug #169339 and would suck less if bug #170435
got fixed.
* app/widgets/gimpviewrenderergradient.c:
(gimp_view_renderer_gradient_render): Make sure specified
point lies within specified gradient segment; should
fix bug #167604.
2005-03-08 Sven Neumann <sven@gimp.org>
* app/core/gimppalette.[ch]: renamed gimp_palette_[gs]et_n_columns
to gimp_palette_[gs]et_num_columns().
* app/dialogs/palette-import-dialog.c
* app/widgets/gimppaletteeditor.c: changed accordingly.
* tools/pdbgen/pdb/palette.pdb: added new PDB function to control
the number of columns used when displaying a palette (bug #169370).
* app/pdb/internal_procs.c
* app/pdb/palette_cmds.c
* libgimp/gimppalette_pdb.[ch]: regenerated.
* libgimp/gimp.def: updated.
2005-02-28 Sven Neumann <sven@gimp.org>
* app/widgets/gimphelp.c (gimp_help_get_locales): use
g_get_language_names().
* plug-ins/help/locales.c (locales_parse): simplified;
g_get_language_names() already takes care of this.
2005-02-27 Sven Neumann <sven@gimp.org>
* app/core/gimpgradient.[ch]: removed the "last_visited" field
from GimpGradient. Instead added the new function
gimp_gradient_get_color_at_segment() that allows the caller to do
the same optimization.
* app/actions/gradient-editor-commands.c
* app/core/gimpdrawable-blend.c
* app/core/gimppalette-import.c
* app/paint/gimppaintoptions.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpgradientselect.c
* app/widgets/gimpviewrenderergradient.c: changed accordingly.
* app/pdb/gradient_cmds.c
* app/pdb/gradients_cmds.c: regenerated.
2005-02-21 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolbox.c (toolbox_area_notify): apply evil
size_request hacks to the color/image/foo areas' wrapbox because
its child requisition/allocation code is apparently broken. Works
around bug #162500.
2005-02-20 Manish Singh <yosh@gimp.org>
Support for custom plug-in interpreters, independent of OS support.
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpinterpreterdb.[ch]: implemented GimpInterpreterDB,
which handles registering and resolving custom plug-in interpreters.
* app/core/gimp.[ch]: keep a GimpInterpreterDB around.
* app/config/gimpcoreconfig.[ch]
* app/config/gimprc-blurbs.h
* app/dialogs/preferences-dialog.c
* app/dialogs/user-install-dialog.c
* app/widgets/gimphelp-ids.h: interpreter-path config stuff.
* app/plug-in/plug-in.c: use registered interpreters when running
plug-ins.
* themes/Default/images/preferences/Makefile.am
* themes/Default/images/preferences/folders-interp.png: just copied
folders-plug-ins.png here, need a better one.
* data/interpreters/Makefile.am: creates system interpreter directory.
* data/interpreters/default.interp: sample interpreter file info.
* data/Makefile.am
* configure.in: add data/interpreters directory.
* plug-ins/pygimp/Makefile.am: install pygimp.interp, which configures
the python interpreter to point to the python we were built with. Also
register the .py extension.
* etc/gimprc
* docs/gimprc.5.in: regenerated
2005-02-19 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdockable.c
* app/widgets/gimphelp-ids.h: added a tooltip and a help-id for the
dockable menu.
2005-02-19 Hans Breuer <hans@breuer.org>
* app/base/pixel-processor.c : TILE_WIDTH is used unconditionally
so always include "tile.h"
* app/base/tile-swap.c : WIN32 needs <process.h> for _getpid()
* app/dialogs/user-install-dialog.c : include gimpwin32-io.h
* libgimpbase/gimpwin32-io.h : there are no group or other
flags in msvcrt, define S_IGRP etc in terms of _S_IREAD etc
* plug-ins/script-fu/script-fu.c plug-ins/script-fu/siod-wrapper.c :
no script-fu server on win32, make respective function calls conditional
* libgimpconfig/makefile.msc : new file
* **/makefile.msc app/gimpcore.def : updated, gimp builds
and runs once more with ms toolchain
2005-02-17 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewrenderergradient.c
(gimp_view_renderer_gradient_render): don't attempt to read beyond
the pre-calculated render buffers, even if the gradient somehow
has out-of-bounds values. Fixes the crash reported in bug #167604.
2005-02-17 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontainercombobox.c
* libgimpwidgets/gimpintcombobox.c: set the "ellipsize" property
on the text cell-renderer. Not sure if it's a good idea to
hardcode this for GimpIntComboBox, but let's give it a try. Fixes
bug #136676.
2005-02-14 Sven Neumann <sven@gimp.org>
* app/base/gimphistogram.[ch]: allocate temporary histogram slots
on demand and provide an array with enough slots for the maximum
number of threads. gimp_histogram_new() doesn't need a
GimpBaseConfig parameter any longer.
* app/core/gimpdrawable-equalize.c
* app/core/gimpdrawable-levels.c
* app/tools/gimpcurvestool.c
* app/tools/gimplevelstool.c
* app/tools/gimpthresholdtool.c
* app/widgets/gimphistogrameditor.c
* tools/pdbgen/pdb/color.pdb: changed accordingly.
* app/pdb/color_cmds.c: regenerated.
2005-02-12 Sven Neumann <sven@gimp.org>
* app/core/gimpprogress.[ch]: added GimpProgress::pulse.
* app/display/gimpdisplay.c
* app/display/gimpstatusbar.c
* app/widgets/gimpfiledialog.c
* app/widgets/gimpprogressbox.c
* app/widgets/gimpprogressdialog.c
* app/widgets/gimpthumbbox.c: implement it in the classes that
implement the GimpProgress interface.
* app/plug-in/plug-in-progress.[ch]: allow plug-ins to pulse their
progress.
* tools/pdbgen/pdb/progress.pdb: added a procedure for the new
functionality.
* app/pdb/internal_procs.c
* app/pdb/progress_cmds.c
* libgimp/gimpprogress_pdb.[ch]: regenerated.
* libgimp/gimp.def: updated.
2005-02-11 Sven Neumann <sven@gimp.org>
* app/widgets/gimptoolbox.c (toolbox_paste_received): drop
everything after the first newline and strip leading and trailing
whitespace from the pasted text.
2005-02-09 Michael Natterer <mitch@gimp.org>
* app/core/gimpimagefile.c
* app/widgets/gimpthumbbox.c: enable explicit (not automatic while
browsing the list of files) thumbnailing of remote files
2005-02-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpuimanager.[ch]: removed gimp_ui_manager_ui_get()
and implement the new virtual functions GtkUIManager::get_widget()
and ::get_action() instead. Menu loading happens transparently now.
* app/display/gimpdisplayshell.c
* app/widgets/gimpdockable.c
* app/widgets/gimptexteditor.c
* app/widgets/gimptoolbox.c
* app/widgets/gimptooloptionseditor.c: use
gtk_ui_manager_get_widget() instead of the removed
gimp_ui_manager_ui_get().
2005-02-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimpgradienteditor.c (gimp_gradient_editor_init):
use "single-line-mode" for the hint labels. Should fix bug #157570.
2005-02-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpwidgets-constructors.[ch]: undeprecated the
paint mode menu (ported to GimpEnumComboBox with separators).
The separator code is quite hackish and therefore still
implemented privately here.
* app/widgets/gimpbrushselect.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimppropwidgets.c: changed accordingly.
2005-02-08 Sven Neumann <sven@gimp.org>
* libgimpconfig/gimpcolorconfig-enums.[ch]: gimp-mkenums doesn't
seem to like newlines in enum definitions.
* libgimpconfig/gimpcolorconfig.[ch]: removed the "profile-path"
property for now. It doesn't work too well with GimpFileEntry.
We can add it back later if it turns out that we really need it.
* app/dialogs/preferences-dialog.c
* app/widgets/gimphelp-ids.h: added a color management page to the
preferences dialog.
2005-02-07 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_add_filters): add
an "All Images" filter and select it by default.
2005-02-07 Sven Neumann <sven@gimp.org>
* app/dialogs/file-open-dialog.c
* app/dialogs/file-save-dialog.c
* app/widgets/gimpthumbbox.c: use file_utils_filename_from_uri()
in some more places.
* app/dialogs/file-open-location-dialog.c
* app/widgets/gimpselectiondata.c: deal with hostname in URIs.
2005-02-07 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.c (gimp_imagefile_get_desc_string):
changed "Remote Image" to "Remote File". The state of the
thumbnail doesn't tell us if this is an image file at all.
* app/widgets/gimpthumbbox.c: don't auto-thumbnail remote files.
* libgimpthumb/gimpthumb-utils.[ch]
* libgimpthumb/gimpthumbnail.c: do the same workaround for UNC
paths as in file_utils_filename_from_uri().
2005-02-07 Sven Neumann <sven@gimp.org>
* app/widgets/gimptooldialog.c (gimp_tool_dialog_new): unset the
"focus-on-map" property for tool dialogs. Fixes bug #154651 (on
window managers supporting this hint).
2005-02-05 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontrollers.c (gimp_controllers_init): removed
some eeeky code that used to fiddle with the GimpController type.
* libgimpwidgets/gimpcontroller.c (gimp_controller_get_type): add
the GimpConfig interface here, where it belongs.
2005-01-31 Michael Natterer <mitch@gimp.org>
Some cleanup to make plug-in menu creation less hackish and
finally enable registering plug-in menu entries in much more UI
managers (not only in the image and toolbox menus):
* app/menus/menus.c: added a <Toolbox> UI manager instead of
creating the toolbox menu from the <Image> UI manager.
* app/widgets/gimpimagedock.[ch]: removed the ui_manager and the
signal connections to update it...
* app/widgets/gimpdock.[ch]: ...and added them here so all docks
have their own UI manager. Determine which manager to create from
looking at GimpDockClass::ui_manager_name (defaults to <Dock>).
* app/widgets/gimptoolbox.c: set ui_manager_name to <Toolbox> and
use the UI manager created by our parent class instead of using
the <Image> one.
(toolbox_create_tools): use gimp_action_get_accel_closure()
instead of doing evil hacks.
* app/gui/gui-vtable.c
* app/menus/plug-in-menus.c: removed lots of special casing of the
<Image> UI manager. The code is almost ready for allowing plug-in
menus under <Layers>, <Channels>, <Brushes> etc.
2005-01-26 Michael Natterer <mitch@gimp.org>
* app/actions/dockable-actions.c
* app/actions/dockable-commands.[ch]: removed dock-related
actions (show-image-menu, auto-follow-active and move-to-screen).
* app/actions/dock-actions.c
* app/actions/dock-commands.[ch]: and added them here.
* app/menus/menus.c: add the "dock" action group to the
"<Dockable>" UI Manager.
* app/widgets/gimphelp-ids.h: reordered to match the new grouping.
* menus/dockable-menu.xml.in: changed accordingly.
2005-01-25 Michael Natterer <mitch@gimp.org>
* libgimpconfig/gimpconfigtypes.h: new file holding the opaque
typedefs for libgimpconfig. Includes "libgimpbase/gimpbasetypes.h"
* libgimpconfig/Makefile.am: added the new file. Removed stuff
that is not needed.
* libgimpconfig/gimpconfigwriter.h
* libgimpconfig/gimpconfig-iface.h: removed typedefs here.
* libgimpconfig/gimpconfig-deserialize.c
* libgimpconfig/gimpconfig-iface.c
* libgimpconfig/gimpconfig-serialize.c
* libgimpconfig/gimpconfig-utils.c
* libgimpconfig/gimpconfig.h
* libgimpconfig/gimpconfigwriter.c: include it before including
any other libgimpconfig stuff.
* app/config/config-types.h: #include "libgimpbase/gimpbasetypes.h"
* app/config/gimpconfig-utils.h: changed include guards to
__APP_GIMP_CONFIG_UTILS_H__.
* app/dialogs/tips-parser.c: include <glib-object.h> instead of
just <glib.h>.
* app/tools/gimphistogramoptions.c
* app/tools/gimptextoptions.c: include "config/gimpconfig-utils.h"
* app/widgets/gimpdialogfactory.h
* app/widgets/gimpsessioninfo.h: removed inclusion of
"libgimpbase/gimpbasetypes.h".
2005-01-24 Michael Natterer <mitch@gimp.org>
Enabled closing docks with Ctrl-W:
* app/actions/Makefile.am
* app/actions/dock-actions.[ch]
* app/actions/dock-commands.[ch]: added new action group which
holds a single action, "dock-close".
* app/actions/actions.c: register the "dock" group.
* app/menus/menus.c: add it to the "<Dock>" UI manager.
* app/widgets/gimphelp-ids.h: added GIMP_HELP_DOCK_CLOSE.
2005-01-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimppropwidgets.[ch]: added gimp_prop_expander_new().
* app/paint/gimppaintoptions.[ch]: added a property to track the
state of the "Pressure sensitivity" expander.
* app/tools/gimppaintoptions-gui.c: use gimp_prop_expander_new()
to create the "Pressure sensitivity" expander.
2005-01-21 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpwidgets-utils.[ch] (gimp_action_get_accel_closure):
new function as workaround for missing GTK+ API (see bug #141750).
* app/widgets/gimpactionview.[ch]: use the function instead of
having this ugly hack here. Store the accel_closure instead of the
hackish menu_item in the tree store. Removed cruft and cleaned up
a bit.
2005-01-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcomponenteditor.c
(gimp_component_editor_button_press): call gimp_image_flush() after
setting the active component since this might unselect the active
channel. Fixes bug #164195.
2005-01-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdockable.[ch]: added new function
gimp_dockable_blink() which lets the dockable's title_area blink.
* app/widgets/gimpdialogfactory.c
(gimp_dialog_factory_dialog_new_internal): let wilber blink at the
user :) Fixes bug #164156.
2005-01-17 Michael Natterer <mitch@gimp.org>
Allow to drop stuff onto empty layers, channels and paths dialogs
to create new items:
* app/widgets/gimpcontainertreeview.h (struct GimpContainerTreeView):
added "gboolean dnd_drop_to_empty".
* app/widgets/gimpcontainertreeview-dnd.c: if "dnd_drop_to_empty"
is TRUE, dispatch drops to empty views and to the empty area below
all items.
* app/widgets/gimpitemtreeview.c (gimp_item_tree_view_init): set
"dnd_drop_to_empty" to TRUE.
* app/widgets/gimpitemtreeview.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpvectorstreeview.c: made all drop functions work
with "dest_viewable" being NULL and changed drop_possible()
implementations accordingly. Cleaned up the whole DND code a bit.
* app/widgets/gimplayertreeview.c: removed color and pattern
drop code...
* app/widgets/gimpdrawabletreeview.c: and added it here so colors
and patterns can be dropped to the channels dialog too.
2005-01-15 Michael Natterer <mitch@gimp.org>
* app/core/gimpchannel.c: implement GimpItem::convert(). Handles
any drawable, including conversion to GRAY, flattening and
resizing.
* app/widgets/gimpchanneltreeview.c: implement dropping of all
kinds of drawables as new channels. Fixes bug #158133.
Simplified component dropping by removing stuff which is done by
gimp_item_convert() now.
2005-01-15 Michael Natterer <mitch@gimp.org>
* app/core/gimpitem.c
* app/core/gimpdrawable.c
* app/vectors/gimpvectors.c: made GimpItem::scale() and ::resize()
work on unattached items.
* app/widgets/gimplayertreeview.c
(gimp_layer_tree_view_drop_component): fix drop index.
* app/widgets/gimpchanneltreeview.c: implement dropping of
components as new channels. Fixes bug #158483.
2005-01-15 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.[ch]: added virtual function
GimpContainerTreeView::drop_component(). Added EEKy "dnd_gimp"
needed for gimp_selection_data_get_component().
* app/widgets/gimpitemtreeview.c (gimp_item_tree_view_set_context):
set the "dnd_gimp" pointer if it is NULL.
* app/widgets/gimpcontainertreeview-dnd.c: handle component drops
and dispatch ::drop_component() accordingly.
* app/widgets/gimplayertreeview.c: implement dropping of
components as new layers. Addresses bugs #158483 and #158133.
2005-01-15 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c
* app/display/gimpdisplayshell-dnd.[ch]
* app/widgets/gimptoolbox-dnd.c: enabled dropping of components
to the display and the toolbox. Addresses bug #158483.
2005-01-15 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdnd.c: added gimp_dnd_get_component_icon().
* app/widgets/gimpcomponenteditor.c: allow to drag
components. They can't be dropped anywhere yet.
2005-01-15 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpitemtreeview.c
(gimp_item_tree_view_drop_viewable): handle drops of items of all
types from all images and convert them if needed.
* app/widgets/gimplayertreeview.c: enable dropping of all kinds of
drawables. Addresses bug #158133.
2005-01-15 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-enums.h (enum GimpDndType): reordered so
COMPONENT is after IMAGE.
* app/widgets/gimpdnd.[ch]
* app/widgets/gimpselectiondata.[ch]: added API for passing
components around via DND. Speaks in terms of a
(GimpImage,GimpChannelType) tuple.
2005-01-13 Michael Natterer <mitch@gimp.org>
Allow to easily open brushes and patterns as images.
Fixes bug #163059.
* app/actions/brushes-actions.c
* app/actions/patterns-actions.c: added "brushes-open-as-image"
and "patterns-open-as-image" actions.
* app/actions/data-commands.[ch]: added
data_open_as_image_cmd_callback() which tries to load
data->filename as image.
* app/widgets/gimphelp-ids.h: added help IDs for the new actions.
* app/widgets/gimpdatafactoryview.c: added buttons.
* menus/brushes-menu.xml
* menus/patterns-menu.xml: added them to the menus.
2005-01-13 Michael Natterer <mitch@gimp.org>
Made the file open and save dialogs use the last used folder
instead of defaulting to current directory. Fixes bug #162385.
* app/widgets/gimpfiledialog.[ch] (gimp_file_dialog_set_uri):
removed this function because it had no functionality except
creating usability problems.
* app/actions/file-commands.c: use gtk_file_chooser_set_uri()
instead but *only* if we already have an uri from an alread open
image or the document hinstory.
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_image): set
the file chooser's uri only if we have an uri from the image
itself. Leave the current folder untouched otherwise and just set
the current name (e.g. "Untitled").
* app/dialogs/file-save-dialog.c (file_save_dialog_save_image): on
successful save, remember the used uri by attaching it to the
"gimp" instance.
(file_save_dialog_new): set the last saved uri's folder on the
newly created file save dialog.
2005-01-09 Sven Neumann <sven@gimp.org>
* app/widgets/gimpactionview.c (gimp_action_view_new): connect to
"button_press_event" and start editing immidiately instead of
waiting for a second click. Fixes bug #163385.
2005-01-09 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdialogfactory.c (gimp_dialog_factories_toggle):
if called with (ensure_visibility == TRUE), raise the toolbox.
Fixes bug #163381.
2005-01-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_button_press): fixed handling of clicks
into a horizontally scrolled treeview.
2005-01-03 Michael Natterer <mitch@gimp.org>
Implemented "Snap to Canvas Edges" (fixes bug #152971) and
"Snap to Active Path" (half way done):
* app/core/gimpimage-snap.[ch]: added boolean snap_to_canvas and
snap_to_vectors parameters (snap_to_vectors works fine when
snapping to a point, but is unimplemented for snapping to a
rectangle).
* app/display/gimpdisplayshell.[ch] (struct GimpDisplayShell):
added snap_to_canvas and snap_to_vectors booleans.
* app/display/gimpdisplayshell-appearance.[ch]: added API to
get/set them.
* app/actions/view-actions.c
* app/actions/view-commands.[ch]
* app/widgets/gimphelp-ids.h: added actions, callbacks and help IDs.
* menus/image-menu.xml.in: added them to Image->View.
2005-01-02 Sven Neumann <sven@gimp.org>
* app/widgets/gimpsizebox.c
* app/widgets/gimptemplateeditor.c: round displayed resolution
instead of just casting to integer values. Use image size limits
from libgimpbase/gimplimits.h instead of some arbitrary numbers.
2004-12-31 Michael Natterer <mitch@gimp.org>
* app/core/gimppalette.[ch]: removed the just added
gimp_palette_insert_entry() and added a "gint position" parameter
to gimp_palette_add_entry() instead (no need to have two almost
identical functions).
* app/actions/palette-editor-commands.c
* app/core/gimppalette-import.c
* app/widgets/gimppaletteeditor.c
* tools/pdbgen/pdb/palette.pdb: changed accordingly.
* app/pdb/palette_cmds.c: regenerated.
2004-12-31 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfgbgeditor.[ch]: use the coordinates passed in
the color drop callback instead of remembering them in the
drag_motion handler.
2004-12-31 Michael Natterer <mitch@gimp.org>
Applied modified patch from Ben Campbell which adds drop
coordinates to the color drop callback and uses it to insert
colors in the palette editor. Extended the patch to add drop
coordinates to all drop callbacks.
* app/core/gimppalette.[ch]: added gimp_palette_insert_entry().
* app/display/gimpdisplayshell-dnd.[ch]: added drop coordinates
to all drop callbacks.
* app/dialogs/palette-import-dialog.c
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpcontainerview.c
* app/widgets/gimpdnd.[ch]
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpfgbgeditor.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimppropwidgets.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimptoolbox-dnd.c
* app/widgets/gimptoolbox-image-area.c
* app/widgets/gimptoolbox-indicator-area.c
* app/widgets/gimptooloptionseditor.c
* libgimpwidgets/gimpcolorselect.c: changed accordingly. The passed
drop coordiantes are so far unused.
* app/widgets/gimppaletteeditor.c: use the drop coordinates to
insert the new color into the palette at the right place instead
of always appending. Fixes bug #150030.
2004-12-31 Michael Natterer <mitch@gimp.org>
* app/actions/tools-actions.c
* app/actions/tools-commands.[ch]
* app/widgets/gimptoolview.[ch]: applied a (modified) patch from
Joao S. O. Bueno which adds "raise" and "lower" actions and
their buttons in the tool dialog. Fixes bug #158666.
Cleaned up the tool action callbacks.
2004-12-28 Sven Neumann <sven@gimp.org>
* libgimp/gimp.[ch] (gimp_install_procedure, gimp_install_temp_proc):
renamed menu_path parameter to menu_label and added a pointer to
gimp_plugin_menu_register()
* app/widgets/gimpsizebox.c (gimp_size_box_constructor): removed
unused variables.
* app/actions/documents-commands.c
* app/actions/file-commands.c
* app/dialogs/file-open-dialog.c
* app/dialogs/file-open-location-dialog.c
* app/display/gimpdisplayshell-dnd.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimptoolbox-dnd.c: replace % with space
in file name before showing error message,
fixes bug #162147.
* app/core/gimp-gui.c
* app/widgets/gimpmessagebox.c: be a bit more paranoid
about validating utf8 for messages.
* gimp/app/widgets/gimpsizebox.c: use gimp_coordinates_new()
instead of duplicating a lot of code. Fixes bug #161756.
* gimp/app/widgets/gimppropwidgets.c: small change in
chainbutton handling to make above work.
2004-12-16 Manish Singh <yosh@gimp.org>
* app/widgets/gimppdbdialog.c (gimp_pdb_dialog_set_property): Cast
result of g_value_dup_object() to GIMP_CONTEXT().
2004-12-15 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-preview.[ch]: added utility function
gimp_drawable_preview_bytes() and use it. Some cleanup,
untabified.
* app/widgets/gimpviewrendererdrawable.c: use
gimp_drawable_preview_bytes() instead of duplicating its code.
2004-12-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppdbdialog.[ch]: don't forget the context we
were created with but rmember it as pdb_dialog->caller_context.
* app/widgets/gimpbrushselect.c
* app/widgets/gimpfontselect.c
* app/widgets/gimpgradientselect.c
* app/widgets/gimppaletteselect.c
* app/widgets/gimppatternselect.c: use the caller_context when
calling the temp_proc so the temp_proc's stack frame doesn't
contain the dialog's private context (which is just a scratch
model for the container views) but the plug-in's real context
which is fully initialized. Fixes bug #161114.
2004-12-13 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdock.c (gimp_dock_delete_event): invert logic so
everything except GTK_RESPONSE_OK keeps the dock open
(e.g. hitting escape).
2004-12-12 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-preview.c (gimp_drawable_get_sub_preview):
added precondition check for the coords of the src area. Some
cleanup and simplification.
* app/widgets/gimpviewrendererdrawable.c
(gimp_view_renderer_drawable_render): don't request sub-previews
of areas outside the drawable and don't reuqest previews of zero
width or height. Fixes crashes with the new preview code.
2004-12-12 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdock.c: show a confirmation dialog if a dock
with multiple tabs is being closed. Sorry for the new strings,
they were carefully copied from gnome-terminal.
2004-12-12 Michael Natterer <mitch@gimp.org>
* app/paint-funcs/paint-funcs.[ch]: added new function
copy_region_nocow() as a workaround for the fact that sharing
tiles with the projection is heavily broken.
* app/base/tile-manager.c (tile_invalidate): added a warning when
entering the code path that breaks badly.
* app/core/gimp-edit.[ch]: added gimp_edit_copy_visible(), using
the non-COW copying function above.
* app/widgets/gimphelp-ids.h: added GIMP_HELP_COPY_VISIBLE.
* app/actions/edit-actions.c
* app/actions/edit-commands.[ch]: added action & callback for
"edit-copy-visible".
* menus/image-menu.xml.in: added "edit-copy-visible" to the image
menu.
* tools/pdbgen/pdb/edit.pdb: added gimp_edit_copy_visible()
PDB wrapper.
* app/pdb/edit_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpedit_pdb.[ch]: regenerated.
* plug-ins/script-fu/scripts/copy-visible.scm: removed all code
and made it a backward compat wrapper around gimp-edit-copy-visible.
Fixes bug #138662.
2004-12-11 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-preview.[ch]: added new function
gimp_drawable_get_sub_preview() which returns a scaled preview of
a part of a drawable.
(gimp_drawable_preview_scale): made it work with srcPR.x and
srcPR.y being != 0.
* app/core/gimpimage-preview.c (gimp_image_get_new_preview)
* app/widgets/gimpviewrendererdrawable.c
(gimp_view_renderer_drawable_render): if the area of the drawable
preview is more than 4 times larger than the drawable itself (evil
heuristic, but seems to work fine), use above function to get a
sub-preview of the drawable instead of getting an insanely large
preview of the whole drawable just to use a small part of it.
Fixes bug #142074.
* app/core/gimpimage-preview.c (gimp_image_get_new_preview):
optimized by skipping layers which do not intersect with the
canvas.
* app/widgets/gimphistogrameditor.c: make histogram editor,
and therefore histogram dialog, use the selection. Should
resolve bug #72959.
* app/core/gimpdrawable-histogram.h: remove trailing
whitespace.
2004-12-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdatafactoryview.c
(gimp_data_factory_view_tree_name_edited)
* app/widgets/gimpitemtreeview.c
(gimp_item_tree_view_name_edited)
* app/widgets/gimptemplateview.c
(gimp_template_view_tree_name_edited): call gimp_object_set_name()
or gimp_item_rename() only if the item's name has actually changed
and restore the old text otherwise. Fixes one instance of "name is
not updated correctly after editing" for which I blamed GTK+ in
bug #145463 :-) The other instances should be fixed in GTK+ HEAD
and are imho unfixable with GTK+ 2.4.
2004-12-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_clear_items): clear all viewable cell
renderers so they don't keep pointers to layers/masks which don't
exist any more. Fixes the additional problem in bug #148852 but
not the bug itself.
2004-12-09 Michael Natterer <mitch@gimp.org>
* app/dialogs/print-size-dialog.c
* app/widgets/gimpsizebox.c: set a focus_chain on the size_entries
so the focus order is width->height->chain->unitmenu and not
width->chain->height->unitmenu.
* app/widgets/gimptemplateeditor.c: changed focus_chain code to
work like above (cosmetics).
2004-12-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpuimanager.[ch]: renamed
gimp_ui_manager_get_action() to gimp_ui_manager_find_action().
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimptoolbox.c
* app/widgets/gimptooloptionseditor.c
* app/display/gimpdisplayshell-close.c: changed accordingly.
(this change is quite useless as it stands, but will help keeping
the diff between 2.2 and 2.3 small as soon as we're branched).
* app/widgets/gimpcolormapeditor.c
(gimp_colormap_preview_button_press): invoke the "edit-color", not
"new-color" action upon double click.
(palette_editor_select_entry): update the ui manager after
selecting the entry so the entry-specific actions become sensitive
if there was no entry selected before.
2004-12-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppropwidgets.[ch]: added new prop_widget
gimp_prop_int_combo_box_new() which takes a pre-built GimpIntStore
and allows to create views on int properties with arbitrary sets
of values (not just enums).
* app/widgets/gimpcontrollereditor.c
(gimp_controller_editor_constructor): added support for generic
combo boxes controlled exclusively by controller properties: if an
int property "foo" is followed by an object property "foo-values"
and the contained object is a GimpIntStore, use that store as
model for selecting "foo"'s values using
gimp_prop_int_combo_box_new().
(Allows for more flexible controller configuration, the actual use
case in the midi controller is still work in progress).
2004-12-01 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolview.c (gimp_tool_view_select_item): no need
to update the ui manager here, the parent class already does it.
2004-11-30 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpactiongroup.c
(gimp_action_group_set_action_color)
(gimp_action_group_set_action_color): allow to set color and
viewable to NULL, GimpAction handles this nicely. Fixes warnings
some foo_actions_update() functions were triggering.
2004-11-24 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcontroller.[ch]: guarded the whole header
with GIMP_ENABLE_CONTROLLER_UNDER_CONSTRUCTION because it's no
fixed API yet. Added a "state" property bacause "name" was abused
as the controller's state. Added "help_domain" to the controller
class.
* libgimpwidgets/gimpwidgets.h: don't include gimpcontroller.h
* modules/controller_linux_input.c
* modules/controller_midi.c: set the "name" property to the name
retrieved from the device, or to a default string if no name is
available. Store the status in the "state" property. Added and
changed some strings, but it's better to have the controller
strings untranslated than to have no tooltips at all or misleading
labels.
* app/widgets/gimpcontrollerkeyboard.c
* app/widgets/gimpcontrollerwheel.c: set default strings for both.
* app/widgets/gimpcontrollereditor.c: added a GUI for the "state"
property.
* app/widgets/gimpcontrollerkeyboard.h
* app/widgets/gimpcontrollerwheel.h
* app/widgets/gimpcontrollerinfo.c
* app/widgets/gimpcontrollers.c: #define
GIMP_ENABLE_CONTROLLER_UNDER_CONSTRUCTION (just as in all files
above).
* app/widgets/gimphelp-ids.h: added the IDs of all controller
modules and also of all other modules. The defines are not
actually used, but this file is the canonical place to collect all
the core's help IDs.
2004-11-23 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpwidgets-utils.[ch]: added new function
gimp_toggle_button_set_visible() which can be used as "toggled"
callback on a GtkToggleButton and sets a widget (in)visible
according to the toggle's "active" state.
* app/tools/gimpblendoptions.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimpselectionoptions.c: use it to hide (rather than
just insensitize) the seldomly used "Feather edges", "Autoshrink
selection", "Adaptive supersampling", "Fade out" and "Use color
from gradient" widgets when their enabling toggle is unchecked.
Makes the affected tool options much less crowded and noisy in
their default appearance. Fixes bug #159008.
2004-11-22 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollerinfo.c (gimp_controller_info_init):
always create the event mapping table. Fixes tons of warnings and
non-functional controller mapping dialog when an empty controller
was deserialized from controllerrc. Spotted by drc.
2004-09-21 Hans Breuer <hans@breuer.org>
* app/dialogs/makefile.msc : [new file]
app/dialogs/Makefile.am : added to EXTRA_DIST
* **/makefile.msc app/gimpcore.def : updated
* app/gimp.rc : let wilber be first
* app/widgets/gimppropwidgets.c : msvc6 can't cast uint64 either
* libgimpbase/gimpwin32-io.h : make up recent loss of ftruncate in GLib
* libgimpthumbnail/gimpthumbnail.c : <process.h> for getpid() on win32
* plug-ins/helpbrowser/dialog.c : include gimpwin32-io.h
* plug-ins/script-fu/siodwrapper.c plug-ins/script-fu/scrip-fu.c : there
is no script-fu-server on win32
2004-11-18 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpenumaction.[ch]: added boolean property
"value-variable" which specifies if the GimpEnumAction::selected()
signal may be emitted with arbirtary values (value-variable = TRUE)
or *only* with enum_action->value (value-variable = FALSE).
* app/widgets/gimpactiongroup.[ch]: added "gboolean
value_variable" to GimpEnumActionEntry and set it in
gimp_action_group_add_enum_actions().
* app/actions/channels-actions.c
* app/actions/colormap-editor-actions.c
* app/actions/context-actions.c
* app/actions/drawable-actions.c
* app/actions/edit-actions.c
* app/actions/error-console-actions.c
* app/actions/gradient-editor-actions.c
* app/actions/image-actions.c
* app/actions/layers-actions.c
* app/actions/palette-editor-actions.c
* app/actions/plug-in-actions.c
* app/actions/vectors-actions.c
* app/actions/view-actions.c: set "variable" to FALSE for all enum
actions except those which are used with the GIMP_ACTION_SELECT_SET
voodoo.
* app/widgets/gimpcontrollers.c (gimp_controllers_event_mapped):
fall back to gtk_action_activate() if the action specified in a
GIMP_CONTROLLER_EVENT_VALUE mapping is not variable. Enables
triggering of enum actions from GIMP_CONTROLLER_EVENT_VALUE events
(like midi note-on and note-off).
2004-11-18 Michael Natterer <mitch@gimp.org>
* plug-ins/common/compressor.c (compressors): added back the
.xcf.gz and .xcf.bz2 extensions because they are the only way
to figure the special nature of this plug-in's extensions.
* app/widgets/gimpfileprocview.[ch]: keep a list of "meta
extensions" (extensions which have a '.' themselves).
* app/widgets/gimpfiledialog.c (gimp_file_dialog_proc_changed):
try to replace the whole extension if the last extension is one of
the meta extensions kept by GimpFileProcView. Fixes bug #158377.
2004-11-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfgbgeditor.c: get rid of the
gimp_fg_bg_editor_context_changed() callback and
g_signal_connect_swapped() gtk_widget_queue_draw() directly.
2004-11-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpchanneltreeview.c: implement
GimpDockedInterface::set_context() and set the context of the
embedded GimpComponentEditor. Fixes NULL-context crashes in
action callbacks when invoked from the component editor.
Spotted by Jimmac.
Unrelated:
* app/widgets/gimpitemtreeview.c: get rid of the
gimp_item_tree_view_context_changed() callback and
g_signal_connect_swapped() gimp_item_tree_view_set_image()
directly.
2004-11-16 Sven Neumann <sven@gimp.org>
* app/actions/file-commands.c
* app/dialogs/file-save-dialog.c
* app/file/file-save.[ch]
* app/widgets/gimpfiledialog.[ch]: combined "set_uri_and_proc" and
"set_image_clean" parameters into a single "save_a_copy"
parameter. When saving a copy, attach the used URI to the image and
let the "Save a Copy" file chooser default to the last used value.
2004-11-15 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_add_filters):
limit the number of file extensions that are added to the file
filter menu to keep the file dialog from growing too wide.
2004-11-15 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_proc_changed):
return early if gimp_file_proc_view_get_proc() didn't return a file
procedure. Should fix bug #158369.
2004-11-15 Sven Neumann <sven@gimp.org>
* app/dialogs/print-size-dialog.c: started to redo this dialog
without using a GimpSizeBox. The widgets aren't connected, so it
isn't usable yet.
* app/widgets/gimpprogressbox.c
* app/widgets/gimpprogressdialog.c
* app/widgets/gimpsizebox.c: trivial cleanups.
* data/images/gimp-splash.png: splash for 2.2-pre2, done by Jimmac.
2004-11-13 Sven Neumann <sven@gimp.org>
* app/dialogs/Makefile.am
* app/dialogs/print-size-dialog.[ch]: new files for the Print Size
dialog that is still missing. Still work in progress...
* app/actions/image-actions.c
* app/actions/image-commands.[ch]
* app/widgets/gimphelp-ids.h
* menus/image-menu.xml.in: integrate the new dialog.
2004-11-06 Sven Neumann <sven@gimp.org>
* app/widgets/gimpbrusheditor.c: allow a smaller brush radius to
be set in the brush editor. Fixes bug #157508.
2004-11-06 Sven Neumann <sven@gimp.org>
* app/dialogs/resize-dialog.c (resize_dialog_reset): fixed most of
the Reset functionality (bug #157495). The offset box is still not
working correctly.
* app/widgets/gimpsizebox.c (gimp_size_box_update_resolution):
check for availability of the size entry before accessing it.
2004-11-04 Sven Neumann <sven@gimp.org>
* app/widgets/gimpsessioninfo.c: be more tolerant and silently
skip entries that the dialog factory doesn't recognize.
* app/widgets/gimpdialogfactory.c: minor cleanup.
2004-11-04 Michael Natterer <mitch@gimp.org>
Don't use deprecated GtkToolbar API in GimpTextEditor:
* app/actions/Makefile.am
* app/actions/actions.c
* app/actions/text-editor-actions.[ch]
* app/actions/text-editor-commands.[ch]: added acions and
callbacks for the new "text-editor" action group.
* app/menus/menus.c: register a "<TextEditor>" UI manager.
* menus/Makefile.am
* menus/text-editor-toolbar.xml: new file for the toolbar.
* app/widgets/gimptexteditor.[ch]: use the toolbar created by the
UI manager instead of constructing it using deprecated API.
* app/tools/gimptextoptions.c: changed accordingly.
* app/widgets/gimpwidgets-utils.[ch]: added gimp_text_buffer_load()
(used by text-editor-commands.c).
2004-11-04 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcolorbutton.[ch]: use a GtkUIManager instead
of a GtkItemFactory. Added virtual function ::get_action_type()
and create the manager's actions manually using that action type
instead of using gtk_action_group_add_actions().
* app/widgets/gimpcolorpanel.c: override ::get_action_type() so it
creates GimpActions (which can have a color attached) instead of
GtkActions. Changed the menu item visibility and color preview
code accordingly.
* app/widgets/Makefile.am
* app/widgets/gimpitemfactory.[ch]: finally removed.
* configure.in: added -DGTK_DISABLE_DEPRECATED to CPPFLAGS again.
2004-11-01 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_add_filters):
don't check for file_proc->menu_paths. Our load and save procedure
don't necessarily register a menu path any longer.
* app/plug-in/plug-ins.c: minor cleanup.
* app/xcf/xcf.c (xcf_init): no need for adding menu paths for the
XCF load and save procedures.
* tools/pdbgen/pdb/fileops.pdb: fixed outdated documentation.
* app/pdb/fileops_cmds.c
* libgimp/gimpfileops_pdb.c: regenerated.
2004-10-29 Sven Neumann <sven@gimp.org>
* app/widgets/gimpuimanager.c (gimp_ui_manager_entry_load)
* app/widgets/gimpclipboard.c (gimp_clipboard_init): only be
verbose on request.
* app/plug-in/plug-in.c (plug_in_close): turned warnings into
messages and respect gimp->be_verbose.
2004-10-29 Michael Natterer <mitch@gimp.org>
* app/dialogs/dialogs.c (toplevel_entries): added foreign entries
for the keyboard shortcut and the controller action dialogs.
* app/dialogs/preferences-dialog.c
* app/widgets/gimpcontrollereditor.c: register the dialogs with
the "toplevel" dialog factory so they remember their size and
position.
2004-10-27 Sven Neumann <sven@gimp.org>
* app/actions/dockable-actions.c (dockable_toggle_actions): changed
menu label from "Show Image Menu" to "Show Image Selection".
* app/widgets/gimpsizebox.c: unmarked a string for translation.
* app/dialogs/scale-dialog.c: added back the message when scaling
an indexed image.
2004-10-27 Sven Neumann <sven@gimp.org>
* app/dialogs/Makefile.am
* app/dialogs/image-scale-dialog.[ch]: a wrapper around the scale
dialog that takes care verifying the user input and optionally
asking for confirmation. Most of this moved out of image-commands.c.
* app/actions/image-commands.c: use the new image scale dialog
even though it doesn't allow to edit the resolution yet. That's a
temporary regression that will get fixed soon.
* app/actions/layers-commands.c: cosmetics.
* app/dialogs/scale-dialog.c (scale_dialog_reset): also reset the
resolution.
* app/widgets/gimpsizebox.c: fixed cut'n'paste error.
2004-10-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimpsizebox.[ch]: added a resolution label similar
to one in the template editor. Prepared for editable resolution,
work in progress...
* app/dialogs/scale-dialog.[ch]: added resolution and resolution
unit parameters to ScaleDialogCallback.
* app/actions/layers-commands.c: changed accordingly.
2004-10-26 Sven Neumann <sven@gimp.org>
* app/widgets/gimptemplateeditor.c: commented out the memory size
label. The visual clutter of it's bold appearance was IMO not
appropriate. I think the dialog is better without it.
* app/widgets/gimpsizebox.c: added a pixel size label as in the
Image New dialog.
2004-10-26 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpactionview.[ch] (gimp_action_view_new): added
parameter "const gchar *select_action" and preselect the passed
action if non-NULL. Made the column enum public to users of this
widget can get data from its tree store.
* app/dialogs/preferences-dialog.c (prefs_keyboard_shortcuts_dialog):
pass NULL because we don't want a preselected action here.
* app/widgets/gimpcontrollereditor.[ch]: added "Edit" and "Delete"
buttons to change the event -> action mapping. Implement a action
chooser dialog using GimpActionView. Fixes bug #106920.
2004-10-26 Sven Neumann <sven@gimp.org>
* app/actions/channels-commands.c
* app/core/gimpchannel-select.c
* app/core/gimpimagefile.c
* app/core/gimpundo.c
* app/widgets/gimpcomponenteditor.c: use the new enum utility
functions from libgimpbase instead of accessing enum_value->value_name.
2004-10-26 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcontrollereditor.[ch]: new widget built from
preliminary code from the prefs dialog. Prerequisite for finally
fixing bug #106920.
* app/dialogs/preferences-dialog.c: use the new widget.
2004-10-25 Michael Natterer <mitch@gimp.org>
Don't store human readable and translatable enum/flag strings in
GEnumValue's and GTypeValue's fields but attach them to their
GType using separate structs and utility functions:
* tools/gimp-mkenums: added params and perl voodoo to support
generating a second array of values, which is used by the
Makefiles below to create and register arrays of value
descriptions.
* libgimpbase/gimpbasetypes.[ch]: added API to attach/retreive
arrays of translatable strings to/from enum and flags types. Added
structs GimpEnumDesc and GimpFlagsDesc for that purpose.
* libgimpbase/gimputils.[ch]: changed existing enum utility
functions, added new ones and added a symmetric API for flags.
* app/base/Makefile.am
* app/core/Makefile.am
* app/display/Makefile.am
* app/paint/Makefile.am
* app/text/Makefile.am
* app/tools/Makefile.am
* app/widgets/Makefile.am
* libgimp/Makefile.am
* libgimpbase/Makefile.am: changed *-enums.c generation rules
accordingly.
* app/base/base-enums.c
* app/core/core-enums.c
* app/display/display-enums.c
* app/paint/paint-enums.c
* app/text/text-enums.c
* app/tools/tools-enums.c
* app/widgets/widgets-enums.c
* libgimpbase/gimpbaseenums.c: regenerated.
* app/widgets/gimpenumstore.c
* app/widgets/gimpenumwidgets.c
* app/widgets/gimptemplateeditor.c
* libgimpwidgets/gimppreviewarea.c: follow the enum utility
function API changes.
2004-10-25 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpwidgets-utils.[ch]: added gimp_text_buffer_save()
which saves a GtkTextBuffer's contents to a file.
* app/widgets/gimperrorconsole.c: use
gimp_editor_add_action_button() and removed all "clicked"
callbacks, including all file saving code.
* app/actions/error-console-actions.c
* app/actions/error-console-commands.[ch]: added the code removed
above to the action callbacks. Use gimp_text_buffer_save().
2004-10-24 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpgradienteditor.[ch]
* app/widgets/gimppaletteeditor.[ch]: added public APIs for
zooming the editors. Use gimp_editor_add_action_button() to create
all buttons. Removed all button callbacks and all duplicated
button sensitivity logic.
* app/widgets/gimpdataeditor.c (gimp_data_editor_set_data): update
the editor's UI manager if it exists.
* app/actions/gradient-editor-actions.c
* app/actions/gradient-editor-commands.[ch]: added zoom actions
and callback and call gimp_gradient_editor_zoom(). Fixed
gradient_editor_actions_update() to actually set all items'
sensitivity (it was possible to modify read-only gradients and
even to crash GIMP).
* app/actions/palette-editor-actions.c
* app/actions/palette-editor-commands.[ch]: changed "new" and
"zoom" actions to actually do their job instead of calling
gtk_button_clicked(editor->foo_button).
2004-10-24 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolormapeditor.c: removed the "Edit Color"
dialog callbacks and use gimp_editor_add_action_button() for
the edit button. Removed button sensitivity logic. Hide the
color dialog when the image's mode changes.
* app/actions/colormap-editor-actions.c: added missing tooltip
for the edit action.
* app/actions/colormap-editor-commands.c: implement the dialog
here.
2004-10-23 Sven Neumann <sven@gimp.org>
* libgimpthumb/gimpthumb-utils.[ch]
* libgimpthumb/gimpthumbnail.[ch]
* libgimpthumb/gimpthumb.def: added missing API, mainly for deleting
thumbnails.
* app/core/gimpimagefile.[ch]: when saving a thumbnail, delete a
failure thumbnail if one exists. Unless the thumbnail was created
explicitely, remove all other thumbnails for this image.
* app/actions/documents-commands.c: changed accordingly.
* app/file/file-open.c: only save a thumbnail if there isn't a
valid thumbnail already.
* app/widgets/gimpthumbbox.c: before attempting to create a new
thumbnail, check if there's an uptodate failure thumbnail.
2004-10-23 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpstock.c: added labels ("_Stroke") to the
SLEECTION_STROKE and PATH_STROKE stock items so they can be used
in action areas.
* app/widgets/gimpstrokeeditor.c: changed mnemonic to no clash
with "_Stroke" and reordered some code.
* app/dialogs/stroke-dialog.[ch]: use the passed stock_id instead
of GTK_STOCK_OK. Added parameters to specify the dialog's title
so it doesn't say "Stroke Options".
* app/actions/select-commands.c
* app/actions/vectors-commands.c
* app/tools/gimpvectortool.c: pass "Stroke Selection" and "Stroke
Path" as dialog titles.
2004-10-23 Michael Natterer <mitch@gimp.org>
When there are variants of actions with and without dialog, let
the dialog-less actions try to use the values from the last dialog
invocation:
* app/actions/channels-actions.c
* app/actions/channels-commands.[ch]
* app/actions/layers-actions.c
* app/actions/layers-commands.[ch]
* app/actions/vectors-actions.c
* app/actions/vectors-commands.[ch]: renamed the foo-new-defaults
actions to foo-new-last-values and use the last values entered in
the dialogs.
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpvectorstreeview.c: changed accordingly. Show
the dialog on clicking "New" and call the last-values action on
<shift>+click.
* app/actions/select-actions.c
* app/actions/vectors-commands.c: renamed the foo-stroke-last-vals
to -last-values.
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpvectorstreeview.c: stroke with last values on
<shift> clicking the stroke buttons.
2004-10-22 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpeditor.c (gimp_editor_ensure_button_box): make
sure the button_box is always interted at the very bottom of the
editor.
* app/widgets/gimpviewabledialog.c: changed the "description"
property from CONSTRUCT_ONLY to CONSTRUCT.
* app/widgets/gimpcolormapeditor.c: show the index of the edited
color in the color dialog and use the correct icon. Replaced label
"Hex triplet" by "HTML notation" to be consistent with the color
dialog. Removed wrong 2 pixel border around the table below the
preview.
2004-10-22 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppropwidgets.c: remember the param_spec with each
radio button instead of with the box/frame around them.
2004-10-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpitemtreeview.[ch]: moved "item_type" and
"signal_name" from GimpItemTreeView to GimpItemTreeViewClass.
Removed them from gimp_item_tree_view_new(). Require the view_type
instead of item_type in gimp_item_tree_view_new().
* app/widgets/gimpitemtreeview.c
* app/widgets/gimpdrawabletreeview.c (get_type): made them
abstract base classes.
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpvectorstreeview.c (class_init): set the
item_type and signal_name members if GimpItemTreeViewClass.
* app/dialogs/dialogs-constructors.c: changed accordingly.
2004-10-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpuimanager.[ch]: added utility function
gimp_ui_manager_get_action() which takes "group_name" and
"action_name".
* app/display/gimpdisplayshell-close.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimptoolbox.c
* app/widgets/gimptooloptionseditor.c: use it.
2004-10-16 Michael Natterer <mitch@gimp.org>
* app/actions/channels-actions.c
* app/actions/colormap-editor-actions.c
* app/actions/documents-actions.c
* app/actions/tool-options-actions.c
* app/actions/vectors-actions.c: added more tooltips for actions
which are used as extended dialog button callbacks.
* app/widgets/gimpeditor.c (gimp_editor_add_action_button): keep
the list of extended actions in reverse order.
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpdocumentview.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimptooloptionseditor.c
* app/widgets/gimpvectorstreeview.c: don't set the tooltips
manually. Removes another bunch of insane translatable multiline
format strings. Pass the extended actions in the right order
to gimp_editor_add_action_button().
2004-10-16 Michael Natterer <mitch@gimp.org>
Ported the layers, channels and paths dialogs from
gimp_editor_add_button() to gimp_editor_add_action_button(),
removing a massive amount of duplicated code, sensitivity logic
and confusing utility functions.
* app/actions/channels-actions.c
* app/actions/channels-commands.[ch]
* app/actions/layers-actions.c
* app/actions/layers-commands.[ch]
* app/actions/vectors-actions.c
* app/actions/vectors-commands.[ch]: added "foo-new-default"
actions and callbacks which create items without a dialog,
optionally using default values from a passed template. Removed
all public utility function that were passed as function pointers
to widget construtors. Added tooltips to all actions which are now
used for dialog buttons.
* app/widgets/gimpeditor.c (gimp_editor_add_action_button):
automatically create multi-line tooltips showing the modifiers for
extended action buttons. Removes the need for lots of insane
format strings that need to be translated correctly.
* app/widgets/gimpitemtreeview.[ch] (struct GimpItemTreeViewClass):
replaced tooltip and help_id strings by action names.
(struct GimpItemTreeView)
(gimp_item_tree_view_new): removed "edit", "new" and "activate"
function pointers.
(gimp_item_tree_view_constructor): create all buttons
with gimp_editor_add_action_button(), using the action names
from GimpItemTreeViewClass.
Removed tons of "clicked" callbacks and all code which sets the
buttons' sensitivity. They are not needed any longer.
Require all subclasses to implement GimpItemTreeView::new_item(),
a new virtual function which creates a plain new item without
showing a dialog.
* app/widgets/gimpdrawabletreeview.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimpvectorstreeview.c: fill in the action names and
implement GimpItemTreeView::new_item(). Removed all button
sensitivity logic.
* app/dialogs/dialogs-constructors.c: changed accordingly. Doesn't
include anything from actions/ any more.
2004-10-15 Michael Natterer <mitch@gimp.org>
Fixed bug #155328:
* app/actions/vectors-actions.c (vectors_actions_update): don't
set the "selection to path" actions sensitive if there is no
image.
* app/widgets/gimpitemtreeview.c: update the UI manager after
setting the view's image. Connect to GimpImage::flush() and
update the UI manager in the callback, too.
2004-10-15 Sven Neumann <sven@gimp.org>
* app/tools/gimptransformoptions.c: removed the "Density" label.
It wasn't helpful and caused the transform options to be wider than
necessary.
* app/tools/gimpblendoptions.c
* app/tools/gimppaintoptions-gui.c
* app/tools/gimptransformoptions.c: let combo boxes expand
horizontally like we do in other (all ?) dialogs.
* app/widgets/gimptemplateeditor.c
(gimp_template_editor_aspect_callback): update the pixel size label.
2004-10-14 Sven Neumann <sven@gimp.org>
* app/core/gimpprogress.[ch]: added "message" function to the
GimpProgress interface. Call gimp_message() if it is unimplemented.
* app/plug-in/plug-in-progress.[ch]: added new function
plug_in_progress_message() that passes the message to the current
proc_frame's progress.
* app/widgets/gimpthumbbox.c: implement GimpProgress::message.
Just do nothing in the implementation. We don't want to see
messages from file plug-ins that we use to create the thumbnails.
* tools/pdbgen/pdb/message.pdb
* app/pdb/message_cmds.c: if there's a current plug-in, dispatch
the message by calling plug_in_progress_message().
* app/display/gimpdisplayshell-close.c: fixed wrong types in
function calls.
2004-10-14 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.[ch]: register GimpConvertPaletteType with
the type system.
* app/widgets/gimpwidgets-utils.c (gimp_enum_radio_frame_add):
fixed to insert the widget at the right place in the radio box.
* app/dialogs/convert-dialog.c: use enum widgets and
gimp_enum_radio_frame_add(), resulting in a much better looking
dialog with much less lines of code.
2004-10-13 Sven Neumann <sven@gimp.org>
* app/widgets/gimpmessagedialog.c: handle parent widget not being
a GtkWindow by calling gtk_widget_get_toplevel().
* app/actions/data-commands.c
* app/actions/edit-commands.c
* app/actions/file-commands.c: ported more boolean queries to
GimpMessageDialog.
2004-10-13 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpmessagedialog.[ch]: added a simple message
dialog to avoid code duplication.
* app/widgets/gimpmessagebox.c: set the border width to 12 pixels.
* app/dialogs/file-save-dialog.c
* app/dialogs/quit-dialog.c
* app/display/gimpdisplayshell-close.c
* app/widgets/gimperrordialog.c
* app/widgets/gimphelp.c
* app/widgets/gimpactionview.c: use the new GimpMessageDialog.
2004-10-13 Sven Neumann <sven@gimp.org>
* app/widgets/widgets-enums.[ch]: changed the description for
GIMP_HELP_BROWSER_GIMP.
* app/dialogs/file-save-dialog.c:
* app/widgets/gimphelp.c: use a GimpDialog embedding a
GimpMessageBox instead of gimp_query_boolean_box which looks
somewhat old fashioned.
2004-10-13 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.c (gimp_imagefile_create_thumbnail): ref
the imagefile while creating the thumbnail.
* app/core/gimpimagefile.[ch]
* app/widgets/gimpthumbbox.c (gimp_thumb_box_auto_thumbnail): moved
the tricky part about thumbnail creation into the new function
gimp_imagefile_create_thumbnail_weak().
2004-10-12 Sven Neumann <sven@gimp.org>
* app/core/gimpimage.[ch]: renamed struct member "unit" to
"resolution_unit".
* app/actions/image-commands.c
* app/core/gimp-edit.c
* app/core/gimpimage-duplicate.c
* app/core/gimpimage-undo-push.c
* app/dialogs/info-window.c
* app/vectors/gimpvectors-export.c
* app/widgets/gimptoolbox-dnd.c:
* app/xcf/xcf-load.c
* app/xcf/xcf-save.c: changed accordingly. Use gimp_image_get_unit()
where appropriate.
* app/core/gimptemplate.c (gimp_template_set_from_image): fixed
unit handling. Don't touch the template unit, it is used as the
initial display unit. This will need further changes...
2004-10-12 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpwidgets-utils.c (gimp_enum_radio_frame_add):
need to pack the widget expanding. Fixes pattern container
entries.
2004-10-12 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpsizebox.[ch]: added new widget GimpSizeBox.
* app/widgets/gimppropwidgets.c: the order of setting the X and Y
properties does matter.
* app/dialogs/Makefile.am
* app/dialogs/scale-dialog.[ch]: added first version of a new
Scale dialog in an attempt to address bug #151022.
* app/actions/layers-commands.c: use the new scale dialog.
2004-10-12 Sven Neumann <sven@gimp.org>
* app/widgets/gimpaction.c (gimp_action_set_proxy): use a larger
icon size for GimpImagefile views.
* themes/Default/images/stock-frame-64.png: removed the 1 pixel
wide empty border around the frame.
* app/widgets/gimpviewrenderer-frame.c: adjusted the hardcoded values.
2004-10-12 Sven Neumann <sven@gimp.org>
* app/widgets/gimptemplateeditor.c: tweaked table spacings to get
the Height label aligned with the entry again.
2004-10-12 Sven Neumann <sven@gimp.org>
* app/widgets/gimpprogressdialog.c (gimp_progress_dialog_new): set
the "skip_taskbar_hint" and "skip_pager_hint" properties on the
progress window.
2004-10-11 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c: construct a case-insensitive glob
pattern to use when filtering for file extensions.
2004-10-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpthumbbox.c (gimp_thumb_box_create_thumbnails):
user-visible counting starts at 1, not 0.
2004-10-11 Sven Neumann <sven@gimp.org>
* libgimpthumb/gimpthumb-utils.[ch]
* libgimpthumb/gimpthumb.def: added an API to delete thumbnails.
* app/widgets/gimpthumbbox.c (gimp_thumb_box_create_thumbnail):
when recreating a thumbnail on user request, delete all existing
thumbnails for it.
* plug-ins/common/AlienMap2.c: removed unused variable.
2004-10-10 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontainerview.c (gimp_container_view_lookup):
handle NULL as viewable parameter as a workaround for bug #149906.
* app/widgets/gimpthumbbox.c (gimp_thumb_box_auto_thumbnail): made
the code more robust.
* app/xcf/xcf-private.h
* app/xcf/xcf.c: added a const qualifier.
2004-10-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimpthumbbox.c: tweaked the text shown while
updating the preview so that the dialog doesn't need to resize.
2004-10-08 Sven Neumann <sven@gimp.org>
* app/config/gimpcoreconfig.[ch]
* app/config/gimprc-blurbs.h: added new gimprc option
"thumbnail-filesize-limit" that allows to control the maximum
filesize for automatic thumbnail creation.
* app/dialogs/preferences-dialog.c: added a GUI for it, needs
review.
* app/core/gimpimagefile.[ch]: minor cleanups. Moved call to
gimp_thumbnail_peek_image() from gimp_imagefile_save_thumb() to
gimp_imagefile_save_thumbnail() to avoid it being called twice.
* app/file/file-utils.[ch]: export utility function
file_utils_find_proc_by_extension() that allows to check for a
file plug-in by looking at the filename extension only.
* app/widgets/gimpthumbbox.[ch]: automatically create or update
thumbnails for image files with a known extension that are smaller
than "thumbnail-filesize-limit". Fixes bug #137176.
2004-10-08 Sven Neumann <sven@gimp.org>
* plug-ins/common/apply_lens.c (lens_dialog): invalidate the
preview when the toggle buttons are used. Reported by Olivier.
* app/widgets/gimpview.c: minor cleanup.
2004-10-08 Michael Natterer <mitch@gimp.org>
Made the text options about two toolbox grid columns smaller.
Addresses bug #122862.
* app/widgets/gimppropwidgets.c (gimp_prop_size_entry_new): use
the number of digits of the property's max_val plus two as number
of chars for the sizeentry'y spinbutton (instead of always 10 as
before).
* app/tools/gimptextoptions.c (gimp_text_options_gui): GtkEntry
has a minimal width of 150 pixels (eek). Set a silly small minimal
width instead (the entry expands to the available width anyway).
2004-10-07 Sven Neumann <sven@gimp.org>
* libgimpthumb/gimpthumbnail.c: added some (disabled) debug output.
* app/widgets/gimpviewrenderer-frame.[ch]: added a way to retrieve
the size of the frame borders.
* app/widgets/gimpthumbbox.c: don't set an arbitrary padding but
exactly the size of the frame borders. Otherwise we get large
thumbnails (scaled down) if we request normal sized ones.
2004-10-06 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdnd.c (gimp_dnd_data_drag_begin): remember for
which GdkDragContext the icon_widget was made.
(gimp_dnd_data_drag_end): destroy the icon_widget only if it was
created for this GdkDragContext. Fixes broken DND icon_widgets
when dragging the same source again while the old icon_widget is
still floating back from an unsuccessful drop. Fixes bug #139337.
2004-10-04 Sven Neumann <sven@gimp.org>
* app/config/gimpguiconfig.[ch]
* app/config/gimprc-blurbs.h: added gimprc option "show-help-button".
* app/dialogs/preferences-dialog.c: added a GUI for it.
* app/dialogs/file-save-dialog.c
* app/dialogs/image-new-dialog.c
* app/dialogs/quit-dialog.c
* app/display/gimpdisplayshell-close.c
* app/widgets/gimphelp-ids.h: don't set help-ids on confirmation
dialogs.
* libgimpbase/gimpprotocol.[ch]
* libgimp/gimp.[ch]: added boolean "show_help_button" to the
config message.
* app/plug-in/plug-in-run.c: pass the new preference to the plug-in.
* libgimpwidgets/gimpdialog.[ch]: added new function that allows to
set whether new dialogs should get a help button added.
* app/gui/gui.c
* libgimp/gimpui.c: call gimp_dialogs_show_help_button() according
to the gimprc settings.
2004-10-01 Sven Neumann <sven@gimp.org>
* themes/Default/images/stock-frame-64.png: replaced the obtrusive
drop-shadow by a thin white frame with a subtle shadow. Taken from
a mockup done by Jimmac.
* app/widgets/gimpviewrenderer-frame.c: changed the hardcoded
offsets for the new frame image :(
2004-09-28 Michael Natterer <mitch@gimp.org>
* app/core/gimppalette.c: code review / cleanup.
(gimp_palette_delete_entry): don't add "Black" when the last color
gets removed, a palette can easily live with zero colors.
* app/widgets/gimppaletteeditor.c
(palette_editor_invalidate_preview): also update the entry which
shows the palette_entry's name.
2004-09-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainerbox.c (gimp_container_box_get_preview):
removed hack which strcmp()s the property name to figure the
preview's border_width and use the container view's
preview_border_width instead.
2004-09-28 Sven Neumann <sven@gimp.org>
* app/widgets/gimpaction.c (gimp_action_set_proxy): added a hack
to get rid of the border drawn around thumbnails in the "Open Recent"
menu.
2004-09-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimpthumbbox.c (gimp_thumb_box_new): added some
padding for the shadow frame to avoid scaling the thumbnail.
2004-09-27 Sven Neumann <sven@gimp.org>
* themes/Default/images/Makefile.am
* themes/Default/images/stock-frame-64.png: added a stock icon
that shows a simple drop shadow but could be exchanged for other
image decorations.
* libgimpwidgets/gimpstock.[ch]: register the new icon.
* app/widgets/Makefile.am
* app/widgets/gimpviewrenderer-frame.[ch]: new file that holds some
ugly code to draw a frame around a preview pixbuf.
* app/widgets/gimpviewrenderer.[ch]: the frame pixbuf is attached
to the GimpViewRenderer class so it can be shared by all renderers.
* app/widgets/gimpviewrendererimagefile.c: use the new functionality
to draw a nice frame around imagefile previews.
* app/widgets/gimpcontainerbox.c: draw imagefile preview w/o a border.
2004-09-27 Michael Natterer <mitch@gimp.org>
* app/actions/brushes-actions.c
* app/actions/gradients-actions.c
* app/actions/palettes-actions.c
* app/actions/patterns-actions.c: made the "foo-edit" actions
GimpStringActions and pass the identifier of the editor dialog
to the callback.
* app/actions/data-commands.[ch] (data_edit_data_cmd_callback):
show the editor dialog here instead of calling view->edit_func().
* app/dialogs/dialogs-constructors.[ch]: removed the brush,
gradient and palette edit_funcs.
* app/widgets/widgets-types.h: removed typedef GimpDataEditFunc.
* app/widgets/gimpdatafactoryview.[ch]: removed the edit_func
member and parameters and create the edit button unconditionally.
* app/widgets/gimpbrushfactoryview.[ch]
* app/widgets/gimppatternfactoryview.[ch]: changed accordingly.
* app/widgets/Makefile.am
* app/widgets/gimpdataselect.[ch]: removed this class, it's not
needed any longer.
* app/widgets/gimpbrushselect.[ch]
* app/widgets/gimpgradientselect.[ch]
* app/widgets/gimppaletteselect.[ch]
* app/widgets/gimppatternselect.[ch]: derive them from GimpPdbDialog
and follow the edit_func removal.
* app/gui/gui-vtable.c (gui_pdb_dialog_new): removed edit_func
stuff.
* app/widgets/gimpcontainereditor.c: minor unrelated cleanup.
2004-09-27 Sven Neumann <sven@gimp.org>
* app/core/gimpimagefile.c: removed conversion to TempBuf.
Instead implement GimpViewable::get_new_pixbuf by compositing the
thumbnail on a checkerboard.
* app/widgets/gimpviewrenderer.[ch]: renamed the no_view_pixbuf
struct member to pixbuf.
(gimp_view_renderer_real_render): try gimp_viewable_get_pixbuf()
and render the pixbuf before falling back to the TempBuf preview.
(gimp_view_renderer_render_pixbuf): new function that sets a
pixbuf for the renderer and flushes the render_buffer.
* app/widgets/gimpviewrendererimagefile.c
(gimp_view_renderer_imagefile_render): render the pixbuf.
* app/dialogs/dialogs-constructors.c: create the document history
dockable with a zero borderwidth.
2004-09-27 Sven Neumann <sven@gimp.org>
* tools/pdbgen/pdb/fileops.pdb (file_load_thumbnail_invoker): use
the GIMP_CHECK_SIZE_SM define, not the enum value
GIMP_CHECK_SIZE_SMALL_CHECKS which is 0 (eeek!).
* app/pdb/fileops_cmds.c: regenerated.
* app/widgets/gimphelp.c (gimp_help_get_locales): minor cleanup.
2004-09-26 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdataeditor.[ch]: added "data" property.
* app/widgets/gimpbrusheditor.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimppaletteeditor.c: pass the current data to
g_object_new() so we never end up with initially empty editors.
2004-09-26 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcolorframe.c: changed label alignment to be more
HIG conformant and consistent with the rest of the user interface.
2004-09-26 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdialogfactory.[ch]: added "name", "blurb",
"stock_id" and "help_id" to struct GimpDialogFactoryEntry and to
gimp_dialog_factory_dialog_register(). Added typedef
GimpDialogConstructor which takes a GimpDialogFactoryEntry in
addition to the parameters GimpDialogNewFunc takes. Added a
constructor function pointer to GimpDialogFactory which defaults
to a function that just returns entry->new_func(). Use that
constructor instead of entry->new_func() for creating
dialogs. Added public API gimp_dialog_factory_set_constructor().
* app/dialogs/dialogs.c: register name, blurb, stock_id and
help_id for all dockables so all the dialog info lives in one huge
ugly table now. For the global_toolbox_factory and the
global_dock_factory, set a constructor which creates a dockable
around the widget returned by entry->new_func().
* app/dialogs/dialogs-constructors.[ch]: don't create the dockable
in each dialog constructor. Removes tons of code and reduces most
constructors to a "return gimp_foo_new(...)" one-liner. Got rid of
all static variables, they were from a time when GimpDialogFactory
was unable to manage singletons.
* app/widgets/gimpbrusheditor.[ch]
* app/widgets/gimpgradienteditor.[ch]
* app/widgets/gimppaletteeditor.[ch]: return GtkWidget, not
GimpDataEditor from gimp_foo_editor_new().
* app/widgets/gimpdataeditor.c: minor cleanups.
2004-09-26 Michael Natterer <mitch@gimp.org>
Ported GimpNavigationView to use actions for its buttons:
* app/menus/menus.c (menus_init): register a <GimpNaviagaionEditor>
UI manager containing the "view" action group.
* app/actions/actions.c (action_data_get_foo): handle "data" being
a GimpNavigationEditor.
* app/actions/view-actions.c (view_actions): added tooltips for
the actions used in the editor.
(view_actions_update): use action_data_get_display() instead of
checking the type of "data" manually.
* app/widgets/gimpeditor.c (gimp_editor_add_action_button): use
a GtkToggleButton instead of GimpButton for GtkToggleActions.
* app/display/gimpnavigationeditor.[ch]: added a GimpMenuFactory
parameter to the public constructor and removed all other
parameters. Simplified gimp_navigation_editor_new_private() and
use gimp_editor_add_action_button() instead of just add_button()
for creating the buttons. Made gimp_navigation_view_set_shell()
private. Update the UI manager when the shell zooms or scrolls.
* app/dialogs/dialogs-constructors.c (dialogs_navigation_view_new):
pass the menu_factory to gimp_navigation_editor_new().
Removed #includes which are not needed any more.
2004-09-25 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolormapeditor.[ch]
* app/widgets/gimphistogrameditor.[ch]
* app/widgets/gimpselectioneditor.[ch]: removed redundant "gimage"
parameters from public constructors. They are all GimpImageEditor
widgets which get their image via gimp_docked_set_context() and
gimp_image_editor_set_image() later anyway. Fixes uglyness as well
as problems where the editors had an image but no context, causing
strange behavior in their foo_actions_update() functions.
* app/dialogs/dialogs-constructors.c: changed accordingly. Removed
redundant calls to gimp_dockable_set_context() on newly created
dockables because they will get a context when added to their
containers.
2004-09-25 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcolormapeditor.c: moved stuff from
gimp_colormap_editor_new() to
gimp_colormap_editor_init(). Untabified.
2004-09-25 Sven Neumann <sven@gimp.org>
* app/widgets/gimptemplateeditor.[ch]: added resolution and image
type information which is usually hidden in the Advanced Options.
2004-09-24 Sven Neumann <sven@gimp.org>
* app/widgets/gimptemplateeditor.[ch]: added a label that shows
the pixel size (as in the initial mockup done by Jimmac).
2004-09-22 Michael Natterer <mitch@gimp.org>
* app/widgets/gimplayertreeview.c
(gimp_layer_tree_view_floating_selection_changed): removed the
hack that was displaying "Floating Selection" instead of the
floating layer's real name.
* app/core/gimplayer.c: implement GimpViewable::get_description()
instead and special case floating selections with a two-line
text that contains "Floating Selection".
* app/core/gimplayer-floating-sel.c
* app/core/gimpimage-undo-push.c: emit "name_changed" on the layer
when it changes its state from floating to normal or vice versa
so the views can update accordingly.
* app/core/gimpselection.c: s/"Selection"/"Floated Layer"/.
* app/tools/gimpeditselectiontool.c:
s/"Floating Layer"/"Floating Selection"/.
2004-09-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewabledialog.c: removed the prelit event box
from the header frame, use a smaller font for the subtitle,
removed the separator.
* app/dialogs/preferences-dialog.c: removed the prelit event box
from the header frame. Perhaps we should have subtitles here with
a more verbose description of the settings page?
2004-09-21 Michael Natterer <mitch@gimp.org>
For the sake of completeness, added a GUI for the hidden
"Open as Layer" feature:
* app/actions/file-actions.c
* app/actions/file-commands.[ch]: added "file-open-as-layer"
action and callback. Abuse the "gimage" field of GimpFileDialog to
indicate layer opening (it's otherwise unused for file-open).
* app/dialogs/file-open-dialog.c: if dialog->gimage is non-NULL,
open the selected files as layers for that image.
* app/widgets/gimphelp-ids.h: added GIMP_HELP_FILE_OPEN_AS_LAYER.
* menus/image-menu.xml.in: added it to the menu.
2004-09-19 Sven Neumann <sven@gimp.org>
Try to make floating selections more obvious:
* app/widgets/gimplayertreeview.c
(gimp_layer_tree_view_floating_selection_changed): always display
"Floating Selection" as the name for a floating selection.
* app/core/gimpselection.c (gimp_selection_float): call the new
layer "Selection" instead of "Floating Selection". This is what
will be displayed if the FS is turned into a layer.
* app/actions/layers-commands.c (layers_edit_layer_query): don't
special case floating selections here.
* app/core/gimplayer-floating-sel.c: cosmetics.
2004-09-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcomponenteditor.c
(gimp_component_editor_renderer_update): use
gimp_component_editor_get_iter() instead of duplicating its code.
2004-09-17 Simon Budig <simon@gimp.org>
* app/widgets/gimpbrusheditor.[ch]: Added a slider for the
brush spacing to the brush editor. Should make it more obvious
how to change it.
2004-09-16 Michael Natterer <mitch@gimp.org>
* configure.in: depend on GLib >= 2.4.5 and GTK+ >= 2.4.4.
* app/gui/gui.c: changed accordingly.
* app/sanity.c: ditto. Added check for GLib and put each check
into its own utility function. Enabled #if 0'ed check for
FreeType >= 6.2.7.
* app/widgets/gimpactiongroup.c
* app/widgets/gimpcursor.c
* app/widgets/gimpselectiondata.c
* app/widgets/gimpuimanager.c
* app/widgets/gimpwidgets-utils.c: removed workarounds for library
versions we refuse to start with.
2004-09-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdnd.c (gimp_dnd_uri_list_dest_add): reverse
order of DND dests so "text/uri-list" is preferred again after my
DND change of 2004-06-29. Fixes dropping of multiple files.
2004-09-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcomponenteditor.[ch]: set the viewable
renderer's "renderer" property to NULL when clearing the
view to work around bug #149906.
2004-09-15 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphelp-ids.h: added help IDs for the drawable- and
vectors-visible and -liked actions as well as for the layer mask
property action.
* app/actions/drawable-actions.c
* app/actions/vectors-actions.c: use them.
* app/actions/layers-actions.c
* app/actions/layers-commands.[ch]: ditto. Use
GIMP_STOCK_TRANSPARENCY for all layer opacity actions. Replaced
"paint_mode" by "mode" in all action and function/variable names
because this is the layer mode, not a paint mode.
* app/actions/channels-commands.c
* app/actions/layers-commands.c
* app/actions/vectors-commands.c: set the "activates-default"
property on the name entry in all "New Foo" and "Edit Foo
Attributes" dialogs except in the "New Layer" dialog.
Addresses bug #148026.
* menus/image-menu.xml.in: added a (commented out) layer
properties menu containing all the new actions.
2004-09-15 Michael Natterer <mitch@gimp.org>
* app/actions/layers-actions.c
* app/actions/layers-commands.[ch]: added actions and callbacks
"layers-preserve-transparency" and
"layers-paint-mode-first,last,previous,next". Update the "active"
state of the recently added layer mask property actions in
layers_actions_update().
* app/actions/drawable-actions.c
* app/actions/drawable-commands.[ch]: added actions and callbacks
for "drawable-visible" and "drawable-linked". Fixes bug #152597.
* app/actions/vectors-actions.c
* app/actions/vectors-commands.[ch]: same here ("vectors-visible"
and "vectors-linked").
* app/widgets/gimplayertreeview.c
(gimp_layer_tree_view_preserve_button_toggled): flush the image
so the new actions are updated. Compress preserve_trans undos.
* menus/image-menu.xml.in: added the layer mask property actions
to the Layers/Mask submenu.
* menus/layers-menu.xml: reordered the mask property actions
to have the same order as in the image menu.
2004-09-15 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_menu_position): improved the fix for bug
#152662 and removed trailing whitespace.
2004-09-15 Nathan Summers <rock@gimp.org>
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_menu_position): clamp the popup menu's Y
position to the visible area of the GtkTreeView. Fixes#152662.
2004-09-14 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpbufferview.c: simplified the code which deals
with the global_buffer's preview. The new buffer view renderer
does the aspect ratio magic all by itself now.
* app/actions/image-commands.h: removed trailing whitespace.
2004-09-14 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpviewrendererbuffer.[ch]: added a view renderer
which knows how to preserve a GimpBuffer's aspect ratio if the
view's aspect ratio is different.
* app/widgets/gimpviewrenderer-utils.c
(gimp_view_renderer_type_from_viewable_type): use it for viewables
of type GimpBuffer. Fixes bug #152531
2004-09-13 Sven Neumann <sven@gimp.org>
* app/widgets/gimphelp.c: simulate the behaviour of GNU gettext and
look at the LANGUAGE environment variable if the locale is not "C".
2004-09-11 Simon Budig <simon@gimp.org>
* app/widgets/gimpdialogfactory.[ch]: Added boolean parameter to
gimp_dialog_factories_toggle to make it possible to ensure a visible
toolbox.
* app/actions/dialogs-commands.c: Use the new parameter to ensure
toolbox visibility after the last image window closes.
* app/display/gimpdisplayshell-callbacks.c: Changed accordingly.
Fixes bug #137057 (the discussion is in bug #152285)
2004-09-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview-dnd.c
(gimp_container_tree_view_drop_status): always call
gdk_drag_status() before returning FALSE.
(gimp_container_tree_view_drag_motion): never return FALSE, an
impossible drop location is now reported by calling
gdk_drag_status() above. Always returning TRUE makes sure
gimp_container_tree_view_drag_leave() is called unconditionally
and can remove the scroll_timeout set in drag_motion().
Fixes bug #152193 and many other obscure DND crashes caused by the
scroll_timeout being invoked after the widget is destroyed.
2004-09-09 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppdbdialog.c (gimp_pdb_dialog_constructor): use
g_type_name(dialog_type) instead of just "pdb dialog" as name for
the dialog's private context.
2004-09-09 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdialogfactory.c
(gimp_dialog_factory_dialog_new_internal): renamed parameter
"gboolean raise_if_found" to "return_existing" and added
additional parameter "gboolean present".
(gimp_dialog_factory_dialog_new)
(gimp_dialog_factory_dialog_raise)
(gimp_dialog_factory_dockable_new): pass both parameters (passing
"present" as "raise_if_found" was not quite correct).
2004-09-07 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_uri):
simplified the code that selects an image file by its URI.
2004-09-07 Simon Budig <simon@gimp.org>
* app/widgets/gimpviewrendererbrush.c: Added an indicator for
generated brushes. Pretty straightforward, suggestions for
improvements are welcome.
2004-09-05 Sven Neumann <sven@gimp.org>
* configure.in: bumped version number to 2.1.5.
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_uri): select
the image file, not only the folder it lives in. Fixes bug #151638.
2004-09-05 Simon Budig <simon@gimp.org>
* app/core/gimpimage-resize.[ch]: Implement function to resize
the image to contain all layers completely. Untabified.
* app/actions/image-actions.c
* app/actions/image-commands.[ch]
* app/widgets/gimphelp-ids.h
* menus/image-menu.xml.in: Make it available in the GUI.
* tools/pdbgen/pdb/image.pdb: Make it available in the PDB.
* app/pdb/image_cmds.c
* app/pdb/internal_procs.c
* libgimp/gimpimage_pdb.[ch]: regenerated.
2004-09-01 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplay.c
* app/widgets/gimpprogressdialog.c: gracefully handle progress
calls after the widget is destroyed. Re-fixes bug #150194.
2004-09-01 Sven Neumann <sven@gimp.org>
* app/widgets/gimpdialogfactory.[ch]: added a boolean parameter to
gimp_dialog_factory_dialog_new() to let the caller decide whether
the window should be presented or not.
* app/actions/dialogs-commands.c
* app/actions/image-commands.c
* app/actions/templates-commands.c
* app/gui/gui-vtable.c
* app/gui/gui.c
* app/widgets/gimpsessioninfo.c: changed accordingly. Do not let
gimp_dialog_factory_dialog_new() present the dialog if we need to
change it after creation. This avoids annoying resizes, noticeable
especially with the error dialog.
2004-08-31 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdatafactoryview.c
(gimp_data_factory_view_activate_item): emit "clicked" on the
edit_button only if it exists and is sensitive. Fixes bug #151343.
2004-08-28 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpwidgets.[ch]: applied a patch from Joao
S. O. Bueno which adds an API that allows to make the scale widget
of a GimpScaleEntry behave logarithmic. Fixes bug #149420.
* app/widgets/gimpbrusheditor.c: use the new functionality for the
radius control.
2004-08-28 Sven Neumann <sven@gimp.org>
* app/widgets/gimphelp-ids.h
* app/widgets/gimptoolbox.c (toolbox_create_image_area): added a
help-id for the image area.
2004-08-27 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainereditor.c
(gimp_container_editor_construct): call
gimp_container_editor_select_item() manually at construction time
so views show the initially selected object's state correctly
(e.g. the brush spacing). Fixes bug #151227.
* app/widgets/gimpnavigationpreview.c
* app/widgets/gimpnavigationpreview.h: renamed these files to ...
* app/widgets/gimpnavigationview.c
* app/widgets/gimpnavigationview.h: to these.
And renamed the GimpNavigationPreview type to GimpNavigationView.
Hopefully, this is the last change in file names for the Preview->View
renaming process.
* app/display/gimpnavigationeditor.c
* app/widgets/Makefile.am
* app/widgets/widgets-types.h: Changed accordingly.
2004-08-25 Sven Neumann <sven@gimp.org>
* app/widgets/gimperrordialog.[ch] (gimp_error_dialog_add): stop
adding message boxes and redirect messages to stderr if there are
too many messages.
2004-08-25 Sven Neumann <sven@gimp.org>
* app/widgets/gimpmessagebox.[ch]: added gimp_message_box_repeat().
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimperrordialog.[ch]: added new dialog that adds a new
GimpMessageBox for each message added. Fixes bug #92604.
* app/widgets/gimpwidgets-utils.[ch]: removed old gimp_message_box()
functionality.
* app/gui/gui.c (gui_abort): use a GimpMessageBox in a GimpDialog.
* app/gui/dialogs-constructors.[ch]
* app/gui/dialogs.c: manage GimpErrorDialog as singleton.
* app/gui/gui-vtable.c (gui_message): use the new error dialog.
* app/core/gimp-gui.c (gimp_message): substitue "GIMP" for a NULL
domain.
* app/widgets/gimperrorconsole.c (gimp_error_console_add): fail
when being called with a NULL domain.
2004-08-24 Sven Neumann <sven@gimp.org>
* app/widgets/gimpmessagebox.c: put the icon to the right for RTL
layouts.
* app/display/gimpdisplayshell-close.c
* app/gui/quit-dialog.c: use a GimpMessageBox.
2004-08-24 Sven Neumann <sven@gimp.org>
* app/widgets/gimpmessagebox.[ch]: added API to change the labels.
Modeled after the proposed new API for GtkMessageDialog.
* app/widgets/gimpwidgets-utils.c: changed accordingly.
2004-08-24 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpmessagebox.[ch]: added new widget GimpMessageBox.
* app/widgets/gimpwidgets-utils.c: use it for message dialogs.
2004-08-21 Sven Neumann <sven@gimp.org>
* app/actions/layers-actions.[ch]
* app/actions/layers-commands.[ch]
* app/widgets/gimplayertreeview.c: added actions to handle layer
masks as suggested in bug #150446.
* menus/layers-menu.xml: added menu entries for new actions,
commented out raise/lower menu entries.
2004-08-18 Sven Neumann <sven@gimp.org>
* app/gui/color-notebook.c: no need to set a size_request here.
* libgimpwidgets/gimpcolorselection.c: HIG-ified spacings.
* libgimpwidgets/gimpcolorscales.c
* modules/colorsel_cmyk.c: don't set a minimum width on the color
scales. Improves behaviour for narrow color dockables.
2004-08-18 Sven Neumann <sven@gimp.org>
* app/widgets/gimphelp-ids.h: define GIMP_HELP_DOCK_SEPARATOR.
* app/widgets/gimpdock.c
* app/widgets/gimpdockable.c: help-ids are never used directly,
use the defines from app/widgets/gimphelp-ids.h instead.
2004-08-12 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpmenufactory.c (gimp_menu_factory_manager_new):
make sure that all actions, even if they have no menu proxy, can
be invoked by their accelerators. Fixes bug #149938.
* app/widgets/gimpimagedock.c (gimp_image_dock_constructor):
removed the same code here.
* app/widgets/gimpactionview.[ch] (gimp_action_view_dispose): new
function which disconnects from "accel_changed" of the accel_group
before upchaining (== before emitting "destroy").
The above changes make this one redundant, but since the crash in
bug #149938 was triggered by "accel_changed" emitted in the middle
of g_object_unref(tree_model), it feels better to be paranoic here
(fiddling with objects in destruction is no fun).
(gimp_action_view_accel_edited): don't warn if assigning the same
accel to the same action again.
(gimp_action_view_new): don't leak all accel_closures.
2004-08-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainercombobox.[ch]
* app/widgets/gimpcontainertreeview.c: when removing the last item
from the view, manually clear all GimpCellRendererViewables'
"renderer" properties; otherwise we have stale GimpPreviewRenderers
with still-refed viewables hanging around in the cells.
Works around GTK+ bug #149906.
2004-08-11 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpthumbbox.c (gimp_thumb_box_create_thumbnails):
fixed annoying resizing when thumbnailing exactly one image.
2004-08-11 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpprogressbox.[ch]: new GtkVBox subclass featuring
a label and a progressbar. Implements GimpProgressIterface.
* app/widgets/gimpprogressdialog.[ch]: replaced label and progress
by a GimpProgressBox. Delegate most progress functionality to it.
* app/widgets/gimpwidgets-utils.[ch]: factored out utility
function gimp_dialog_set_sensitive().
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_sensitive):
use it.
* app/gui/file-open-location-dialog.c (file_open_location_response):
embed the called file procedure's progress using a GimpProgressBox.
2004-08-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfiledialog.[ch]
(gimp_file_dialog_set_sensitive): new function which works on all
widgets in the dialog except the cancel button.
Remember if the active progress is cancelable and added two
booleans "busy" and "canceled". Added GtkDialog::response()
implementation which, if the dialog is busy, cancels the active
progress and sets the dialog's "canceled" state.
Moved the progress bar right above the action area so it is next
to the cancel button and in the same place for both open and save
dialogs.
* app/gui/file-open-dialog.c
* app/gui/file-save-dialog.c: use the new API to make image loading
and saving cancelable again.
* app/widgets/gimpthumbbox.c: use the same stuff to make
thumbnailing cancelable. Increased the minimum height a bit so it
doesn't resize when the progress bars are shown.
2004-08-10 Michael Natterer <mitch@gimp.org>
Redid the whole internal progress stuff: don't pass around
progress_callback and progress_data; instead, provide a
pointer to a GimpProgressInterface which can be implemented
by a variety of backends.
Addresses (but not yet fixes) bugs #6010, #97266 and #135185.
* app/display/Makefile.am
* app/display/gimpprogress.[ch]: removed the old progress hack.
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpprogress.[ch]: implement GimpProgressInterface.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpprogressdialog.[ch]: the standalone progress
dialog as widget implementing GimpProgressInterface.
* app/display/gimpdisplay.c
* app/display/gimpstatusbar.[ch]
* app/widgets/gimpfiledialog.[ch]
* app/widgets/gimpthumbbox.[ch]: added GimpProgressInterface
implementation to these classes.
* app/core/gimp-gui.[ch]
* app/gui/gui-vtable.c: replaced the old progress vtable entries
by two new to create and destroy a GimpProgressDialog in case
no other progress is available.
* app/pdb/procedural_db.[ch]
* app/plug-in/plug-in-run.[ch]
* tools/pdbgen/app.pl: pass a GimpProgress to all PDB wrappers and
all plug-ins.
* app/plug-in/plug-in.[ch]
* app/plug-in/plug-ins.c
* app/plug-in/plug-in-message.c
* app/plug-in/plug-in-progress.c: handle the case there the
plug-in was crated with a progress as well as the case where it
wasn't.
* app/app_procs.c
* app/batch.c
* app/xcf/xcf.c
* app/file/file-open.[ch]
* app/file/file-save.[ch]
* app/widgets/gimphelp.c
* app/widgets/gimpbrushselect.c
* app/widgets/gimpfontselect.c
* app/widgets/gimpgradientselect.c
* app/widgets/gimppaletteselect.c
* app/widgets/gimppatternselect.c: changed accordingly.
* app/core/gimpimagefile.[ch]
* app/display/gimpdisplayshell-dnd.c
* app/gui/file-open-dialog.c
* app/gui/file-open-location-dialog.c
* app/gui/file-save-dialog.c
* app/widgets/gimplayertreeview.c
* app/widgets/gimptoolbox-dnd.c: pass a GimpProgress to all file
related functions. Embed the progress in the file dialog where
possible.
* app/core/gimpdrawable-blend.[ch]
* app/core/gimpdrawable-transform.[ch]
* app/core/gimpimage-convert.[ch]
* app/core/gimpimage-flip.[ch]
* app/core/gimpimage-resize.[ch]
* app/core/gimpimage-rotate.[ch]
* app/core/gimpimage-scale.[ch]
* app/core/gimpitem-linked.[ch]
* app/core/gimpitem.[ch]
* app/core/gimpchannel.c
* app/core/gimpdrawable.c
* app/core/gimplayer.c
* app/core/gimpselection.c
* app/vectors/gimpvectors.c: replaced callback/data by GimpProgress.
* app/tools/gimpblendtool.c
* app/tools/gimptransformtool.c
* app/gui/convert-dialog.c
* app/actions/documents-commands.c
* app/actions/file-commands.c
* app/actions/image-commands.c
* app/actions/layers-commands.c
* app/actions/plug-in-commands.c
* app/actions/vectors-commands.c
* tools/pdbgen/pdb/convert.pdb
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/layer.pdb: changed callers accordingly.
* app/pdb/*_cmds.c: regenerated.
2004-08-05 Michael Natterer <mitch@gimp.org>
Enabled previewing items without selecting them in all list and
grid views using mouse button 2. Implicitly enables previewing of
items in container popups and thus fixes bug #121011:
* app/widgets/gimppreview.c (gimp_preview_button_press_event)
* app/widgets/gimpcellrendererviewable.c
(gimp_cell_renderer_viewable_clicked): show the preview also on
mouse button 2 click.
* app/widgets/gimpcontainertreeview.c
(gimp_container_tree_view_button_press): dispatch mouse button 2
clicks to GimpCellRendererViewable, but don't select or change
anything in the tree_view.
Unrelated cleanup:
* app/widgets/gimppreview.c (gimp_preview_button_press_event):
don't offset bevent->x,y by widget->allocation.x,y before calling
gimp_preview_popup_show() ...
* app/widgets/gimppreview-popup.c (gimp_preview_popup_show):
... instead, do it here generically (check if the parent widget is
GTK_WIDGET_NO_WINDOW()).
2004-08-04 Sven Neumann <sven@gimp.org>
* themes/Default/images/Makefile.am
* themes/Default/images/stock-brush-generated-*-16.png: removed ...
* themes/Default/images/stock-shape-*-16.png: ... and added back
with more generic names.
* libgimpwidgets/gimpstock.[ch]
* app/widgets/gimpbrusheditor.c: changed accordingly.
* app/tools/gimpinkoptions-gui.c: use the new stock icons here as
well.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpblobeditor.[ch]: added a simple blob shape
editor widget factored out of app/tools/gimpinkoptions-gui.c.
2004-08-04 Michael Natterer <mitch@gimp.org>
Allow URI drops from apps linked against GLib < 2.4.4 to GIMP
linked against GLib >= 2.4.5. Fixes bug #148140.
* app/core/gimp-utils.[ch]: added gimp_check_glib_version().
* app/widgets/gimpselectiondata.c: added runtime check for GLib
versions that encode file:// URIs correctly (>= 2.4.5). For older
(broken) GLibs, leave the code path as is, for newer (fixed) ones,
perform an additional check if the dropped URI is in the (broken)
escaped-UTF-8 format and convert it to local filename encoding.
* app/gui/gui.c: warn the user that non-ASCII filenames can't
be used when linked against GLib 2.4.4.
2004-08-03 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainergridview.c
(gimp_container_grid_view_item_context): ref/unref the view around
the calls to gimp_container_view_item_selected() and _item_context()
because the former may destroy the view which leads to a crash
when trying the latter. Fixes bug #148955.
2004-08-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpimage-undo.[ch] (gimp_image_undo_can_compress):
new function which checks if undo compression is possible:
(1) is the image dirty? Fixes bug #148853.
(2) is redo stack empty?
(3) do both the passed undo object_type and undo_type
match the top undo item?
Consistently name the GType and GimpUndoType passed to undo
functions "object_type" and "undo_type" to avoid confusion.
* app/actions/layers-commands.c
* app/tools/gimpeditselectiontool.c
* app/tools/gimptexttool.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimplayertreeview.c: use the new utility function
instead of checking the above conditions manually.
2004-07-31 Hans Breuer <hans@breuer.org>
* app/display/makefile.msc app/widgets/makefile.msc : build
but *dont link* display-enums.obj, widget-enums.obj and
gimpdisplayoptions.obj. They must be in the dll
* app/makefile.msc : build gimp.exe and gimp-console.exe both
using the same gimp-core.dll
* app/gimpcore.def : new file, exports for gimp-core.dll
* app/Makefile.am : added to EXTRA_DIST
* cursors/makefile.msc : new file to create gimp-tool-cursors.h
* cursors/Makefile.am : added to EXTRA_DIST
* **/makefile.msc : updated
* app/main.c app/app_procs.c : moved code to close the console
from the former to the later. It only is to be used if The Gimp
is not build as console app.
* plug-ins/gfig/gfig.c : dont gimp_drawable_detach() the same
drawable twice
* plug-ins/gfig-dialog.c() : added a g_return_if_fail() to avoid
crashing on File/Import
2004-08-01 Simon Budig <simon@gimp.org>
* app/core/core-enums.h
* app/core/gimpbrushgenerated.[ch]: Implement three different
brush shapes for generated brushes.
* app/core/gimpbrush.c: changed accordingly.
* app/core/core-enums.c: regenerated.
* app/widgets/gimpbrusheditor.[ch]: Add toggles for the shape.
* themes/Default/images/stock-brush-generated-*-16.png: New stock
icons for the brush shapes.
* themes/Default/images/Makefile.am
* libgimpwidgets/gimpstock.[ch]: changed accordingly
untabified the files touched.
2004-07-30 Sven Neumann <sven@gimp.org>
* configure.in: always do the check for perl and use the
substituted perl executable name in the call for gimp-mkenums.
Fixes the build on platforms where perl is not available as
/usr/bin/perl. Closes bug #148813.
* app/widgets/gimpenumstore.c: added missing include.
2004-07-30 Sven Neumann <sven@gimp.org>
Applied a bunch of AIX portability fixes (bug #148813):
* configure.in: when testing for Xmu library, link with -lXt -lX11.
* app/gui/tips-parser.c
* app/gui/user-install-dialog.c
* app/tools/tools-enums.h
* app/widgets/gimpdasheditor.c
* app/widgets/widgets-enums.h
* libgimpthumb/gimpthumb-error.h
* libgimpwidgets/gimpcolorbutton.c
* plug-ins/common/edge.c: removed trailing commas from enums.
* plug-ins/common/snoise.c
* plug-ins/imagemap/imap_cmd_move.c: no C++ style comments.
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.c: use integers for bit fields.
2004-07-29 Sven Neumann <sven@gimp.org>
* app/core/core-enums.h: removed enums GimpImageType and
GimpImageBaseType ...
* libgimpbase/gimpbaseenums.h: ... and added them here. Also moved
all enums from gimpbasetypes.h to this new file.
* libgimpbase/Makefile.am
* tools/pdbgen/Makefile.am: changed accordingly.
* app/core/core-enums.c
* libgimp/gimpenums.h
* libgimpbase/gimpbaseenums.c
* tools/pdbgen/enums.pl: regenerated.
* libgimpbase/gimpparasite.c
* libgimpbase/gimpprotocol.c
* libgimp/gimp.c: include <glib-object.h>
* libgimpbase/gimpbasetypes.[ch]: added API to set and get a
translation domain on a GType. This is used for translatable enum
values.
* libgimpbase/gimputils.[ch]: added API to retrieve the translated
name for an enum value.
* app/widgets/gimpenumstore.c
* app/widgets/gimpenumwidgets.c: use the new API in libgimpbase.
2004-07-28 Michael Natterer <mitch@gimp.org>
* app/core/core-enums.h: added still unused flags type
GimpDirtyMask.
* app/base/Makefile.am
* app/core/Makefile.am
* app/display/Makefile.am
* app/paint/Makefile.am
* app/text/Makefile.am
* app/tools/Makefile.am
* app/widgets/Makefile.am
* libgimpthumb/Makefile.am: changed calls to gimp-mkenums to
support GTypeFlags and to make the value arrays private to the
get_type() functions.
* app/base/base-enums.c
* app/core/core-enums.c
* app/display/display-enums.c
* app/paint/paint-enums.c
* app/text/text-enums.c
* app/tools/tools-enums.c
* app/widgets/widgets-enums.c: regenerated.
2004-07-28 Michael Natterer <mitch@gimp.org>
Enabled disabling all menu mnemonics. Addresses bug #120034:
* app/config/gimpguiconfig.[ch]
* app/config/gimprc-blurbs.h: added boolean RESTART property
"menu-menonics".
* app/gui/preferences-dialog.c: added a GUI for it.
* app/widgets/gimpactiongroup.[ch]: added boolean CONSTRUCT_ONLY
property "mnemonics".
(gimp_action_group_add_*_actions): call gimp_strip_uline() on
the actions' labels if mnemonics is FALSE.
* app/widgets/gimpactionfactory.[ch]
* app/actions/actions.c: pass gui_config->menu_menmonics to
all action groups.
2004-07-27 Sven Neumann <sven@gimp.org>
* libgimpbase/Makefile.am
* libgimpbase/gimpbase.h
* libgimpbase/gimpbase.def
* libgimpbase/gimpmemsize.[ch]: added new files with memsize
related functions (moved here from gimputil.c) and
GIMP_TYPE_MEMSIZE (moved here from app/config/gimpconfig-types.[ch]).
* libgimpbase/gimputils.[ch]: removed gimp_memsize_to_string() here.
* libgimpbase/gimpunit.[ch]: added GIMP_TYPE_UNIT (moved here from
app/config/gimpconfig-types.[ch]).
* libgimpbase/gimpbase-private.c
* libgimp/gimptile.c
* libgimp/gimpunitcache.c
* plug-ins/help/domain.c
* app/xcf/xcf-read.c: need to include glib-object.h.
* plug-ins/common/uniteditor.c: use GIMP_TYPE_UNIT.
* app/config/gimpconfig-types.[ch]: removed code that lives in
libgimpbase now.
* app/config/gimpconfig-deserialize.c: changed accordingly.
* app/config/gimpbaseconfig.c
* app/config/gimpdisplayconfig.c
* app/core/gimpcontext.c
* app/gui/grid-dialog.c
* app/tools/gimpcolortool.c
* app/widgets/gimpaction.c
* app/widgets/gimpunitstore.c: no need to include gimpconfig-types.h
any longer.
2004-07-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimphelp-ids.h removed unused help IDs
GIMP_HELP_FILE_OPEN_XCF and GIMP_HELP_FILE_SAVE_XCF. The help IDs
for these entries are generated from the procedure names.
2004-07-27 Sven Neumann <sven@gimp.org>
* app/widgets/gimphelp.c (gimp_help): print the help-id and
help-domain to stdout if gimp was started with the --verbose
command-line option.
2004-07-26 Michael Natterer <mitch@gimp.org>
* app/pdb/procedural_db.[ch] (procedural_db_free_data): new
function which clears the whole list of data set by plug-ins.
(procedural_db_free): use it.
* app/actions/plug-in-actions.c
* app/actions/plug-in-commands.[ch]: added action, callback and
confirmation dialog for "Reset all filters to default values".
Somehow addresses bug #81015.
* app/widgets/gimphelp-ids.h: added a help ID for the new action.
* menus/image-menu.xml.in: added it to the "Filters" submenu.
2004-07-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpactionview.c: rephrased the text for the dialog
that appears if a new shortcut collides with an existing one.
* libgimpcolor/gimprgb.[ch]: added new function gimp_rgb_parse_name()
which accepts RGB colors in hexadezimal notation or as SVG color
keywords.
2004-07-22 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolbox.c (toolbox_create_tools): connect to
"accel-changed" of the accel_group using connect_object(), not
just connect() so we don't crash when it's emitted after the
toolbox is destroyed.
2004-07-21 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptemplateeditor.c
* plug-ins/common/gif.c
* plug-ins/common/jpeg.c: set GTK_SHADOW_IN on scrolled windows of
text views. Fixes bug #148025.
2004-07-21 Michael Natterer <mitch@gimp.org>
Enabled the various "Clear saved foobar now" buttons in prefs:
* app/gui/session.[ch]
* app/menus/menus.[ch]
* app/widgets/gimpdevices.[ch]: implemented the _clear()
functions: unlink() the rc file and set an internal flag that it
has been deleted. Added "gboolean always_save" parameter to the
_save() functions and don't save anything if it is FALSE and the
internal deletion flag has been set.
* app/gui/gui.c
* app/widgets/gimpdevicestatus.c: changed accordingly.
* app/gui/preferences-dialog.c: added callbacks for all "Save now"
and "Clear now" buttons and show error messages if clearing fails.
Inform the user that she has to restart GIMP to see the effect of
the clearing.
2004-07-21 Michael Natterer <mitch@gimp.org>
* app/core/gimpmarshal.list
* app/widgets/gimpcellrendereraccel.[ch]: added "gboolean delete"
parameter to the GimpCellRendererAccel::accel_edited() signal.
* app/widgets/gimpactionview.c: distinguish between deletion of an
accelerator and the user entering an invalid accelerator.
2004-07-21 Michael Natterer <mitch@gimp.org>
* app/gui/preferences-dialog.c: remember the keyboard shortcut
dialog and show it only once.
* app/widgets/gimpactionview.c
* app/widgets/gimpcellrendereraccel.c: minor cleanups.
Seems to work pretty well now and thus fixes bug #142922.
2004-07-21 Michael Natterer <mitch@gimp.org>
* app/core/gimpmarshal.list
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcellrendereraccel.[ch]: new cell renderer
which displays an accelerator and allows to edit it (ripped
out of libegg and modified).
* app/widgets/gimpactionview.c: use the new renderer and connect
to its "accel-edited" signal (its callback is one huge mess that
needs to be cleaned up). Added ugly hack to work around GTK+ API
limitation that seems to prevent implementing a shortcut editor in
a sane way.
* app/actions/file-actions.c
* app/actions/image-actions.c
* app/actions/tools-actions.c: added ugly hacks here, too.
* app/gui/preferences-dialog.c: relaced Cancel/Ok in the shortcut
editor by Close.
2004-07-20 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpactionfactory.[ch]
* app/widgets/gimpactiongroup.[ch]: added "label" and "stock-id"
properties to GtkActionGroup and allow to register them in the
GimpActionFactory.
* app/actions/actions.c: register user visible labels and icons
with all action groups.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpactionview.[ch]: new widget which shows a
treeview of action groups and their actions & shortcuts.
* app/widgets/gimpaction.[ch]: added gimp_action_name_compare()
utility function.
* app/widgets/gimpwidgets-utils.[ch]: added
gimp_get_accel_string() utility function.
* app/widgets/gimpcontrollers.[ch]: added
gimp_controllers_get_ui_manager() which will be used for setting
up the controller mapping dialog.
* app/gui/preferences-dialog.c: added a "Configure Keyboard
Shortcuts" button which pops up a GimpControllerView. Work in
progress...
2004-07-17 Michael Natterer <mitch@gimp.org>
* app/widgets/gimphelp-ids.h: added the removed help IDs back.
* app/widgets/gimpfileprocview.[ch]: cache all file_procs' help
IDs and added gimp_file_proc_view_get_help_id() which returns the
selected item's help ID.
* app/widgets/gimpfiledialog.c: added a custom help func which
shows the help for the selected file_proc if the proc_view has the
focus.
2004-07-17 Sven Neumann <sven@gimp.org>
* app/actions/file-actions.c (file_actions): use GIMP_STOCK_WEB
for "file-open-location".
* app/widgets/gimpfiledialog.c: create the scrolled window with
shadow_type GTK_SHADOW_IN.
* app/widgets/gimpfileprocview.c (gimp_file_proc_view_new): skip
procedures that register a prefix (the URL loader).
* app/widgets/gimphelp-ids.h: removed help IDs that used to be
used from the file-open and file-save menus.
* plug-ins/common/xwd.c (query): "X window dump" seems to be more
appropriate than "X window image".
2004-07-16 Sven Neumann <sven@gimp.org>
* app/plug-in/plug-ins.c (plug_ins_init): sort the file procedures
by their menu labels.
* app/widgets/gimpfileprocview.c: removed the sort function here.
2004-07-16 Sven Neumann <sven@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpfileprocview.[ch]: added new widget that offers
a treeview on file procedures.
* app/widgets/gimpfiledialog.[ch]: replaced the file type option
menu with the new GimpFileProcView widget.
(gimp_file_dialog_set_image): reset the file type to Automatic
(fixes bug #141535).
* app/actions/file-commands.c
* app/gui/file-open-dialog.[ch]
* app/gui/file-save-dialog.[ch]: changed accordingly.
* plug-ins/common/bz2.c
* plug-ins/common/gz.c: don't register "xcf.gz" and "xcf.bz2"
extension. It's redundant and breaks the code that sets the
extension from the selected file-type.
* plug-ins/common/dicom.c: register a shorter menu label.
* plug-ins/common/gbr.c
* plug-ins/common/gih.c
* plug-ins/common/pat.c
* plug-ins/common/url.c: register stock icons.
2004-07-14 Michael Natterer <mitch@gimp.org>
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimppickable.[ch]: new interface which has
get_image_type(), get_tiles() and get_color_at() methods.
* app/core/gimpdrawable.[ch]
* app/core/gimpimagemap.[ch]
* app/core/gimpprojection.[ch]: implement GimpPickableInterface
and removed public get_colot_at() functions.
* app/core/gimpimage-pick-color.[ch]: removed typedef
GimpImagePickColorFunc and gimp_image_pick_color_by_func(). Use
gimp_pickable_pick_color() instead.
* app/core/gimpimage-contiguous-region.c
* app/core/gimpimage-crop.c
* app/gui/info-window.c
* app/paint/gimpconvolve.c
* app/paint/gimpsmudge.c
* app/tools/gimpbycolorselecttool.c
* app/tools/gimpimagemaptool.c
* app/widgets/gimpselectioneditor.c: use GimpPickable functions
instead of the various get_color_at() functions. Simplifies code
which has a "sample_merged" boolean. Various cleanups.
2004-07-12 Michael Natterer <mitch@gimp.org>
* app/core/gimpundo.[ch]
* app/core/gimpitemundo.[ch]
* app/text/gimptextundo.[ch]: removed all _new() functions and
added properties and GObject::constructor() implementations
instead.
* app/core/gimpimage-undo.[ch] (gimp_image_undo_push): added
"GType undo_gtype" parameter and allow to pass name-value pairs as
"...". Une the new GParameter utility functions to construct the
appropriate undo step with g_object_newv().
(gimp_image_undo_push_item): removed.
(gimp_image_undo_push_undo): removed. Merged its code back into
gimp_image_undo_push(), where it originally came from.
* app/core/gimpimage-undo-push.c
* app/core/gimpundostack.c
* app/paint/gimppaintcore-undo.c
* app/tools/gimptransformtool-undo.c
* app/widgets/gimpundoeditor.c: changed accordingly.
2004-07-12 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdialogfactory.c
(gimp_dialog_factories_set_busy_foreach)
(gimp_dialog_factories_unset_busy_foreach): set/unset the busy
cursor on all windows which have widget->window, not only for
those which are GTK_WIDGET_VISIBLE. Fixes stale busy cursors when
dialogs are hidden while the busy cursor is active and later shown
again.
2004-07-11 Hans Breuer <hans@breuer.org>
* **/makefile.msc : updated
app/actions/makefile.msc app/menus/makefile.msc : (new files)
app/actions/Makefile.msc app/menus/Makefile.am : added to EXTRA_DIST
* libgimpbase/gimputils.c libgimpwidgets/gimpmemsizeentry.c
app/widgets/gimppropwidgets.c : bumped compiler version check,
msvc6 still can't cast from unsigned __int64 to double
* app/actions/debug-actions.c : only use debug_*_callback
and thus debug_action if ENABLE_DEBUG_MENU
* app/core/gimpalette-import.c : added gimpwin32-io.h
* plug-ins/common/convmatrix.c : s/snprintf/g_snprintf/
* plug-ins/common/screenshot.c : make it compile with msvc,
but still no win32 specific implementation ...
2004-07-11 Philip Lafleur <plafleur@cvs.gnome.org>
* app/widgets/gimpdevices.c (gimp_devices_check_change): Applied
a patch from Robert Robert Ögren, moved here from
toolbox_check_device() - Only change devices if the event came from
a widget that accepts extension events. Fixes bug #115774.
2004-07-10 Michael Natterer <mitch@gimp.org>
Removed any remaining GUI dependency from the PDB wrappers:
* app/core/gimp.[ch]: added vtable entries for the display and
help stuff.
* app/widgets/gimphelp.[ch]: renamed gimp_help() to
gimp_help_show().
* app/gui/gui-vtable.c: implement the new display and help vtable
entries.
* tools/pdbgen/pdb.pl
* tools/pdbgen/pdb/display.pdb
* tools/pdbgen/pdb/help.pdb: use the new functions of the Gimp
object instead of using stuff from display/ and widgets/.
* tools/pdbgen/app.pl: removed bad hacks which enabled including
stuff from gui/, display/ and widgets/.
* app/Makefile.am: link widgets-enums.o, display-enums.o and
gimpdisplayoptions.o into the gimp-console binary because they are
needed for the config system and don't depend on any GUI stuff.
* app/pdb/Makefile.am: s/GTK_CFLAGS/GDK_PIXBUF_CFLAGS/
* app/pdb/display_cmds.c
* app/pdb/help_cmds.c: regenerated.
2004-07-09 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogrameditor.c
(gimp_histogram_editor_menu_update): reverted my last change.
(gimp_histogram_editor_item_visible): fix the problem here instead.
2004-07-08 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpdialog.c: removed "role" property because
GtkWindow has an equivalent property now. Added "help-func" and
"help-id" construct properties.
* app/widgets/gimptexteditor.c
* app/widgets/gimptooldialog.c
* app/widgets/gimpviewabledialog.c: removed calls to
gimp_help_connect() and pass help_func and help_id to
g_object_new().
2004-07-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogrameditor.c
(gimp_histogram_editor_menu_update): set the active item of the
combo-box after changing the visibility filter.
2004-07-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimppropwidgets.c (gimp_prop_enum_combo_box_notify):
block gimp_prop_enum_combo_box_callback() before changing the
combo-box.
2004-07-08 Sven Neumann <sven@gimp.org>
* app/widgets/gimpsessioninfo.c: only write aux-info for properties
that have been changed from their default values.
* app/widgets/gimphistogrameditor.c: some code cleanup.
2004-07-08 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpselectiondata.[ch]: added a "const gchar *format"
parameter to gimp_selection_data_set_pixbuf() which selects the
format in which to encode the pixbuf (was defaulting to "png"
before).
* app/widgets/gimpclipboard.c: when copying, offer all formats which
are savable with GdkPixbuf. Added a GimpClipboard struct which is
attached to the Gimp and which stores all the persistent data
needed by the clipboard. Renamed some private functions.
(unfortunately this change breaks pasting to AbiWord:
http://bugzilla.abisource.com/show_bug.cgi?id=7068)
2004-07-08 Sven Neumann <sven@gimp.org>
* app/config/gimpconfig-deserialize.c
* app/config/gimpconfig-serialize.c: removed redundant casts.
* app/widgets/gimpsessioninfo.[ch]: added convenience functions to
get and set aux-info based on object properties.
* app/widgets/gimphistogrameditor.c: use the new functions to save
a histogram's channel and scale in the sessionrc.
2004-07-07 Sven Neumann <sven@gimp.org>
* app/widgets/gimpclipboard.c: sort the list of pixbuf formats so
that PNG is the preferred format and GIF and JPEG come last.
2004-07-07 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpclipboard.[ch]: changed to allow pasting any
GdkPixbuf supported format (makes pasting from OpenOffice
work). Cleaned up a bit to perpare pasting of SVG data.
2004-07-07 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogramview.c (gimp_histogram_view_expose):
fixed a drawing bug I introduced earlier today.
2004-07-06 Sven Neumann <sven@gimp.org>
Added an RGB histogram based on a patch by Tor Lillqvist. Fixes
bug #145401.
* app/base/base-enums.[ch]: added GIMP_HISTOGRAM_RGB, don't export
it to the PDB.
* app/base/gimphistogram.c: implemented histogram functions for
the RGB mode.
* app/base/levels.c
* app/tools/gimpcurvestool.c
* app/tools/gimplevelstool.c
* app/widgets/gimpcolorbar.c
* app/widgets/gimphistogrameditor.c: handle the new enum value.
* app/widgets/gimphistogramview.c: for GIMP_HISTOGRAM_RGB mode,
draw a histogram that shows the RGB channels simultaneously
2004-07-06 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpwidgets-utils.c (gimp_menu_position)
(gimp_button_menu_position): call gtk_menu_set_monitor() only
for GTK+ < 2.4.4 and added a #warning about it.
2004-07-06 Michael Natterer <mitch@gimp.org>
* app/widgets/gimppreviewrenderer.c
(gimp_preview_renderer_set_viewable): queue an idle update when
setting the viewable to NULL so the view gets cleared correctly.
(gimp_preview_renderer_idle_update): call
gimp_preview_renderer_update() even if renderer->viewable is NULL
so clearing the viewable gets propagated to the GUI.
Moved clearing the viewable and removing the idle from
GObject::finalize() to GObject::dispose() because calling
set_viewable() with a NULL viewable triggers typechecking casts
and queuing idle functions, which is not nice in finalize().
2004-07-06 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview.c: connect to
"editing-canceled" of the name cell renderer and restore the
original text in the callback. Doesn't work reliably until GTK+
bug #145463 is fixed.
2004-07-04 Simon Budig <simon@gimp.org>
* app/actions/dialogs-commands.c
* app/display/gimpdisplayshell-dnd.c
* app/gui/preferences-dialog.c
* app/tools/gimppainttool.c
* app/widgets/gimpdeviceinfo.c
* app/widgets/gimpitemtreeview.c
* plug-ins/imagemap/imap_selection.c
* tools/pdbgen/pdb/gradients.pdb: Small changes to make GIMP
CVS compile with gcc 2.95 again. Mostly double semicolons and
variable declarations after other stuff. Spotted by Martin
Renold.
* app/pdb/gradients_cmds.c: regenerated.
(there is one issue left, see his patch at
http://old.homeip.net/martin/gcc-2.95.diff, I did not
copy the #define va_copy __va_copy, since I don't know
what happens here.)
2004-07-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontext.[ch]: added context->serialize_props mask
which enables specifying exactly which properties will be
serialized. Also fixes a bug that prevented undefined properties
from being serialized, breaking tool_options and device status
serialization.
* app/core/gimptoolinfo.c (gimp_tool_info_new): make only the
properties in the tool_info->context_props mask serializable, also
configure/initialize tool_info->tool_options.
* app/tools/gimp-tools.c (gimp_tools_register): removed
tool_options initialization that is now done in
gimp_tool_info_new().
* app/widgets/gimpdeviceinfo.c: make only the properties in
GIMP_DEVICE_INFO_CONTEXT_MASK serializable.
* app/widgets/gimpdevicestatus.c: add the device table to its
parent container again. Fixes "missing" devices.
* app/core/gimptooloptions.c
* app/widgets/gimpdevices.c: cleanup / code review.
2004-07-02 Sven Neumann <sven@gimp.org>
* app/gui/Makefile.am
* app/gui/clipboard.[ch]: new files implementing a clipboard for
image data based on GDK_SELECTION_CLIPBOARD (bug #133247).
* app/actions/edit-actions.c
* app/actions/edit-commands.c: use the new clipboard API.
* app/gui/gui.c: initialize and shutdown the clipboard.
* app/core/gimpbuffer.c: cosmetics.
* app/actions/actions.c
* app/menus/menus.c: added sanity checks to exit functions.
* app/display/gimpdisplayshell-dnd.[ch]: let
gimp_display_shell_drop_svg() take a guchar * buffer.
* app/widgets/gimpselectiondata.c (gimp_selection_data_get_pixbuf):
fixed the implementation.
2004-07-01 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpfgbgarea.[ch]: implement GtkWidget::drag_motion()
and set the FG/BG depending on where the color was dropped. Also
set the drag status accordingly so the cursor indicates whether
dropping will have an effect or not. Fixes bug #145219.
2004-06-30 Michael Natterer <mitch@gimp.org>
Fixed a 1.2 -> 2.0 regression that was forgotten:
* app/widgets/widgets-enums.[ch]: added enum GimpColorPickState
which can be one of { NEW, UPDATE }.
* app/widgets/gimppaletteeditor.[ch]: changed #if 0'ed function
gimp_palette_editor_update_color() to
gimp_palette_editor_pick_color() and restored the functionality of
creating/updating colors via this API
Changed button_press handler to only edit the color on double
click if it's really a double click on the same color.
Fixes bug #141381.
* app/tools/gimpcolorpickeroptions.[ch]: added boolean property
"add-to-palette" and a GUI for it.
* app/core/gimpmarshal.list
* app/tools/gimpcolortool.[ch]: added a GimpColorPickState
parameter to the "color_picked" signal. Pass NEW on button_press
and UPDATE on motion.
* app/tools/gimpcurvestool.c (gimp_curves_tool_color_picked)
* app/tools/gimplevelstool.c (gimp_levels_tool_color_picked)
* app/tools/gimppainttool.c (gimp_paint_tool_color_picked):
changed accordingly
* app/tools/gimpcolorpickertool.c (gimp_color_picker_tool_picked):
If "add-to-palette" is TRUE, get the palette editor and call
gimp_palette_editor_pick_color().
2004-06-30 Sven Neumann <sven@gimp.org>
* app/widgets/gimpselectiondata.[ch]: renamed the SVG related
functions so that they deal with an anonymous data stream that
could as well be a PNG image.
* app/widgets/gimpdnd.[ch]
* app/widgets/gimpcontainertreeview-dnd.c: changed accordingly.
* app/display/gimpdisplayshell-dnd.[ch]
* app/vectors/gimpvectors-import.[ch]
* app/widgets/gimpcontainertreeview-dnd.c
* app/widgets/gimpvectorstreeview.c: use gsize for the length of
the buffer.
* app/widgets/gimpdnd.[ch]
* app/widgets/widgets-enums.[ch]: added GIMP_DND_TYPE_PNG which isn't
used yet.
2004-06-30 Michael Natterer <mitch@gimp.org>
* widgets/gimpselectiondata.[ch] (gimp_selection_data_get_svg):
changed return value from gchar* to const gchar*. Renamed
parameters to be consistent with other SVG functions.
* widgets/gimpcontainertreeview-dnd.c
* widgets/gimpdnd.c: changed accordingly.
2004-06-30 Michael Natterer <mitch@gimp.org>
* app/widgets/gimptoolbox.c (gimp_toolbox_button_accel_changed):
do like GtkAccelLabel does and turn underscores in accels into
spaces so e.g. "Page_Up" becomes "Page Up".
2004-06-29 Michael Natterer <mitch@gimp.org>
* app/display/gimpdisplayshell.c: reordered drop destinations
so vectors are preferred over SVG.
* app/vectors/gimpvectors-import.[ch]: added "gint position"
parameter to all import functions so the imported vectors can be
added at any position in the vectors stack.
* app/actions/vectors-commands.c
* app/display/gimpdisplayshell-dnd.c
* tools/pdbgen/pdb/paths.pdb: changed accordingly (pass -1 as
position).
* app/pdb/paths_cmds.c: regenerated.
* app/widgets/gimpvectorstreeview.c: implemented SVG DND from and
to the paths dialog.
2004-06-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontainertreeview-dnd.c: don't free the SVG data
after dropping, it's owned by GtkSelectionData.
2004-06-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpdnd.c: use gtk_target_list_add() instead of
gtk_target_list_add_table() because the latter prepends the
targets to the internal list which screws the order (== priority)
of DND targets.
* app/widgets/gimpselectiondata.c: added some more checks for
failed drops (selection_data->length < 0).
2004-06-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpwidgets-utils.[ch]: added new function
gimp_get_mod_string() which takes a GdkModifierType and returns
correctly formated strings for all shift,control,alt combinations.
* app/tools/gimpbucketfilloptions.c
* app/tools/gimpcolorpickeroptions.c
* app/tools/gimpconvolvetool.c
* app/tools/gimpcropoptions.c
* app/tools/gimpdodgeburntool.c
* app/tools/gimperasertool.c
* app/tools/gimpflipoptions.c
* app/tools/gimpmagnifyoptions.c
* app/tools/gimpmoveoptions.c
* app/tools/gimptransformoptions.c
* app/tools/gimpvectoroptions.c
* app/widgets/gimpchanneltreeview.c
* app/widgets/gimpcolormapeditor.c
* app/widgets/gimpdocumentview.c
* app/widgets/gimperrorconsole.c
* app/widgets/gimpgradienteditor.c
* app/widgets/gimpitemtreeview.c
* app/widgets/gimppaletteeditor.c
* app/widgets/gimpselectioneditor.c
* app/widgets/gimpthumbbox.c
* app/widgets/gimptooloptionseditor.c
* app/widgets/gimpvectorstreeview.c: use the new function instead
of gimp_get_mod_name_shift(),control(),alt(),separator(). This
kindof addresses the issue of configurable modifier keys but is
actually indended to ease translation of format strings ("%s" is
easier to get right than "%s%s%s").
2004-06-28 Michael Natterer <mitch@gimp.org>
Allow all sorts of things to be dropped on or in between the
items of a GimpContainerTreeView:
* app/widgets/gimpcontainertreeview.[ch]: added more parameters to
GimpContainerTreeView::drop_possible() to specify where ecactly
the drop should take place (between or into items) and to support
dropping all sorts of things.
Renamed ::drop() to ::drop_viewable() and added ::drop_color(),
::drop_files() and ::drop_svg(), which cover all possible drop
types.
* app/widgets/gimpcontainertreeview-dnd.[ch]: changed accordingly.
Dispatch all kinds of drops to the resp. virtual functions.
* app/widgets/gimpitemtreeview.c: changed accordingly.
* app/widgets/gimplayertreeview.c: allow to drop URIs, colors
and patterns to the layers dialog. Fixes bugs #119506 and #139246.
2004-06-28 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/gimpselectiondata.[ch]: new files containing the
code which encodes/decodes all sorts of stuff to/from its
GtkSelectionData representation. Used to live in gimpdnd.c
* app/widgets/gimpdnd.c: use the new functions (unclutters the
file quite a bit), converted tabs to spaces.
2004-06-25 Michael Natterer <mitch@gimp.org>
* app/core/gimpbrushgenerated.c: added properties for all brush
parameters.
* app/widgets/gimpbrusheditor.c: listen to property changes of the
edited brush and update the scales accordingly.
2004-06-25 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollerinfo.[ch]: added a boolean property
"debug-events" and honor it when printing debugging output.
Should add an event console window so the user doesn't need to
have a terminal to inspect input module output.
* app/gui/prefereces-dialog.c: HIGified some forgotten labels.
Renamed the "Pointer Movement Feedback" frame to "Mouse Cursors".
Replaced some forgotten "Dir" with "Folder".
Made more GimpControllerInfo and GimpController properties
editable and cleaned up the controller page.
2004-06-24 Michael Natterer <mitch@gimp.org>
* app/tools/gimptool.[ch]
* app/tools/tool_manager.[ch]: added boolean return value to
GimpTool::key_press() which indicates if the event was handled.
* app/tools/gimpcroptool.c
* app/tools/gimpeditselectiontool.[ch]
* app/tools/gimptransformtool.c
* app/tools/gimpvectortool.c: return TRUE if the key event was handled.
* app/tools/gimppainttool.c: removed key_press() implementation.
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcontrollerkeyboard.[ch]: new controller class
which takes GdkEventKey and emits controller events for all
combinations of modifiers and cursor keys.
* app/widgets/gimpcontrollers.[ch]: added new function
gimp_controllers_get_keyboard().
* app/display/gimpdisplayshell-callbacks.c: if a key event was not
handled by the active tool, dispatch it to the keyboard controller.
* etc/controllerrc: add a keyboard controller which is configured
to do the same as the removed gimp_paint_tool_key_press().
2004-06-23 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpenumaction.[ch]
* app/widgets/gimppluginaction.[ch]
* app/widgets/gimpstringaction.[ch]: added parameters to the
gimp_*_action_selected() function so the "selected" signal can be
emitted with value != action->value. Changed GtkAction::activate()
implementations accordingly (pass action->value).
* app/widgets/gimpcontrollers.c: call gimp_enum_action_selected()
and pass the value of the GimpControllerEventValue instead of
temporarily replacing action->value and calling
gtk_action_activate().
* app/widgets/gimpcontrollerinfo.c: fixed debugging output.
2004-06-22 Michael Natterer <mitch@gimp.org>
* app/actions/view-actions.c
* app/actions/view-commands.[ch]: added actions & callbacks to
configure the canvas padding color.
* app/widgets/gimphelp-ids.h
* menus/image-menu.xml.in: added the actions' help IDs and menu entries.
* app/display/display-enums.h: added /*< skip >*/'ed enum value
GIMP_CANVAS_PADDING_MODE_RESET.
* app/display/gimpdisplayshell-appearance.c
* app/display/gimpdisplayshell-callbacks.[ch]
* app/display/gimpdisplayshell-handlers.c
* app/display/gimpdisplayshell.[ch]: removed the canvas padding
button and its popup menu (fixes bug #142996). Instead, added a
toggle button which allows to zoom the image when the window is
resized (as known from sodipodi, except it doesn't work as nice
yet :-) improvements to the algorithm are welcome).
Cleaned up the GimpDisplayShell struct a bit and renamed some
of its members.
* libgimpwidgets/gimpstock.[ch]
* themes/Default/images/Makefile.am
* themes/Default/images/stock-zoom-follow-window-12.png: added new
icon for the new display toggle button.
2004-06-22 Sven Neumann <sven@gimp.org>
* app/widgets/gimpfiledialog.c (gimp_file_dialog_set_image): unset
the filename if the image is unnamed.
* configure.in
* app/sanity.c: depend on gtk+ >= 2.4.1.
* app/widgets/gimpthumbbox.[ch]: changed gimp_thumb_box_set_uris()
to gimp_thumb_box_take_uris() since the function takes ownership
of the list,
* app/widgets/gimpfiledialog.c: changed accordingly. Removed code
that worked around a problem in gtk+ < 2.4.1.
2004-06-21 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-enums.[ch] (enum GimpCursorFormat): removed
value GIMP_CURSOR_FORMAT_PIXBUF_PREMULTIPLY because it's the job
of GDK to do that (it was GDK that was broken, not some of the X
servers).
* app/widgets/gimpcursor.c (gimp_cursor_new): premultiply the
cursor's pixels for GTK+ < 2.4.4.
2004-06-21 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimpwidgets.[ch]
* libgimpwidgets/gimpwidgets.def: added new utility function
gimp_label_set_attributes().
* app/display/gimpdisplayshell.c
* app/gui/preferences-dialog.c
* app/gui/resolution-calibrate-dialog.c
* app/widgets/gimpviewabledialog.c
* app/widgets/gimpwidgets-utils.c: use the new function.
* app/widgets/gimpcontainergridview.c
* app/widgets/gimphistogrameditor.c: display the name in italic.
* plug-ins/common/jpeg.c: display the file size in italic.
2004-06-20 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogrambox.[ch]: removed the label between the
spinbuttons, it looks silly. Converted tabs to spaces, removed
trailing whitespace.
* app/widgets/gimphistogrameditor.c
* app/tools/gimpthresholdtool.c: changed accordingly.
* app/widgets/gimphistogrambox.[ch]:
* app/tools/gimpthresholdtool.c: Changed the threshold tool dialog
so that it uses a two-triangle-slider scale of the sort used in the
levels tool. Almost all of the changes are actually in the
histogram-box widget code, which is only used by the threshold
tool. Fixes bug #137521.
2004-06-20 Philip Lafleur <plafleur@cvs.gnome.org>
* app/display/gimpdisplayshell-scale.[ch]:
* app/display/gimpnavigationview.[ch]:
* app/actions/view-actions.c:
* app/actions/view-commands.[ch]:
* app/widgets/gimphelp-ids.h:
* menus/image-menu.xml.in: Changed "Zoom to Fit Window" command
to "Fit Image in Window" and added another command, "Fit Image
to Window", that zooms according to the opposite dimension. Fixes
bug #144597.
2004-06-19 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollers.c (gimp_controllers_event_mapped):
start supporting GIMP_CONTROLLER_EVENT_VALUE of type gdouble.
Assume the double value is in a [0.0..1.0] range and temporarily
change the value of the called GimpEnumAction to a range of
[0..1000] when invoking it. All still very hackish...
2004-06-17 Michael Natterer <mitch@gimp.org>
* app/core/gimp-utils.[ch]: added gimp_boolean_handled_accum().
* app/core/gimp.c
* app/widgets/gimpcontrollerinfo.c: use it.
2004-06-17 Michael Natterer <mitch@gimp.org>
* app/core/gimpcontainer.c (gimp_container_deserialize): add newly
created children to the container *after* deserializing them so
GimpContainer::add() callbacks get the already deserialized
object.
* app/widgets/gimpcontrollers.c: connect to "add" and "remove" of
the controller list and remember / clear the wheel controller when
it appears / disappears.
2004-06-17 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcontroller.[ch]: removed "enabled"
property. Removed GIMP_CONTROLLER_PARAM_RERIALIZE from the "name"
property because it's the hardware-determined name of this
controller instance.
* app/widgets/gimpcontrollerwheel.c
* modules/controller_linux_input.c: set the name.
* libgimpwidgets/gimpwidgets.h: #include gimpcontroller.h.
* app/widgets/gimpcontrollerinfo.[ch]: added "enabled" here
instead. Don't dispatch events if the controller is
disabled. Made everything work (not crash) with info->mapping
being NULL.
* etc/controllerrc: updated again with the changed format.
* app/widgets/gimpcontrollers.[ch]: added
gimp_controllers_get_list() which returns the container of
controllers.
* app/widgets/gimphelp-ids.h
* app/gui/preferences-dialog.c: added controller configuration
(can't change anything yet, just view the current settings).
Resurrected the "Input Devices" page and removed the "Session"
page by moving its widgets to other pages. Pack the various
"Save now"/"Clear now" buttons vertically, not horizontally.
Fixes bug #139069.
* themes/Default/images/preferences/Makefile.am
* themes/Default/images/preferences/controllers.png
* themes/Default/images/preferences/theme.png: new icons for new
prefs pages. Someone needs to make them nice...
2004-06-16 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcontroller.[ch]: added #define
GIMP_CONTROLLER_PARAM_SERIALIZE. Made all properties serializable.
* modules/controller_linux_input.c: made "device-name"
serializable.
* app/config/gimpconfig-params.h: added macro
GIMP_CONFIG_INSTALL_PROP_POINTER() which needs to be handled
by custom (de)serialize_property() implementations.
* app/config/gimpconfig-deserialize.c
* app/config/gimpconfig-serialize.c: made object (de)serialization
work for object properties which are *not* GIMP_PARAM_AGGREGATE.
Write/parse the exact type of the object to create to enable this.
* app/core/gimpmarshal.list: new marshaller for GimpControllerInfo.
* app/widgets/gimpcontrollerinfo.[ch]: implement GimpConfigInterface
and add "controller" and "mapping" properties. Add "event-mapped"
signal which carries the action_name.
* app/widgets/gimpcontrollers.c: removed all deserialization code
and simply (de)serialize the controller container. Install a
container handler for "event-mapped" and do the action_name ->
action mapping in the callback.
* etc/controllerrc: regenerated with new syntax. Delete your old one!
2004-06-16 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontrollerwheel.c
(gimp_controller_wheel_get_event_name): don't use gettext() here.
* modules/controller_linux_input.c: added more button events, set
the device name, some cleanup.
2004-06-16 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcontroller.[ch]: added
GimpController::get_event_blurb() which returns the strings that
were returned by get_event_name(). The latter returns
untranslatable event identifiers now.
* app/widgets/gimpcontrollerwheel.c
* modules/controller_linux_input.c: changed accordingly.
* app/widgets/gimpcontrollerinfo.c
* app/widgets/gimpcontrollers.c: changed the event mapping from
event-id -> action-name to event-name -> action-name.
* etc/controllerrc: changed accordingly (finally readable now).
2004-06-16 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcontrollerinfo.[ch]: made an object out of
the GimpControllerInfo struct.
* app/widgets/gimpcontrollers.c: changed accordingly.
2004-06-16 Sven Neumann <sven@gimp.org>
* app/widgets/gimpcontrollers.c: bug fix.
* configure.in: check for linux/input.h.
* modules/Makefile.am
* modules/controller_linux_input.c: added a prototype controller
module using the linux input event interface.
* etc/controllerrc: added example config for linux input device.
2004-06-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollers.c: load the controller's
properties from the controllerrc file.
* etc/controllerrc: set the wheel's properties.
2004-06-16 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcontrollers.c: ref the actions when putting
them in the mapping table.
* app/actions/context-actions.c: added actions to change the
opacity in 10% steps.
2004-06-16 Michael Natterer <mitch@gimp.org>
* libgimpwidgets/gimpcontroller.[ch]: added a "name" property.
Dispatch events only if the controller is enabled.
* app/widgets/gimpcontrollerwheel.c: added controller events for
all possible modifier combinations.
* etc/Makefile.am
* etc/controllerrc: default controllerrc which maps all unused
wheel+modifier combinations to more-or-less usefull stuff.
2004-06-16 Michael Natterer <mitch@gimp.org>
Started to fix bug #106920 in a more genreral way:
* libgimpwidgets/Makefile.am
* libgimpwidgets/gimpwidgetstypes.h
* libgimpwidgets/gimpwidgetsmarshal.list
* libgimpwidgets/gimpcontroller.[ch]: new abstract base class
which provides an API for pluggable input controller modules
(mouse wheel, usb/midi stuff etc.).
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpcontrollerwheel.[ch]: subclass of the above
which maps wheel mouse scroll events to controller events.
* app/widgets/gimpcontrollers.[ch]: manager for controllers.
reads $(gimpdir)/controllerrc and keeps a mapping of controller
events to GtkActions.
* app/gui/gui.c: initialize and shut down the controller stuff.
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): if a wheel controller
exists, dispatch GdkEventScroll to it first and return if it was
handled.
2004-06-14 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpactiongroup.c (gimp_action_group_add_*_actions):
do the workaround for "" accelerators only if the GTK+ version
is smaller than 2.4.3. Fixes bug #144342 for GTK+ >= 2.4.3.
2004-06-13 Michael Natterer <mitch@gimp.org>
* app/widgets/widgets-enums.[ch]: added enum GimpCursorFormat
which can be one of { BITMAP, PIXBUF, PIXBUF-PREMULTIPLY } to
work around broken X servers.
* app/config/gimpguiconfig.[ch]
* app/config/gimprc-blurbs.h: added GimpGuiConfig::cursor-format.
* app/gui/preferences-dialog.c: added a GUI for the new option.
* app/widgets/gimpcursor.[ch]: added cursor_format parameter
to gimp_cursor_new() and _set().
* app/display/gimpdisplayshell-cursor.c
* app/tools/gimpcurvestool.c
* app/widgets/gimpdialogfactory.c: pass an appropriate cursor_mode.
2004-06-13 Michael Natterer <mitch@gimp.org>
* app/core/gimpdata.[ch]: added "gint freeze_count" and
gimp_data_freeze()/thaw() functions. Emit "dirty" only if
freeze_count either is 0 or drops to 0.
* app/core/gimpbrushgenerated.[ch]
* app/core/gimpgradient.[ch]: removed freeze/thaw stuff that
was duplicated in these two subclasses and use the new
GimpData API instead.
* app/widgets/gimpbrusheditor.c
* app/widgets/gimpgradienteditor.c: changed accordingly.
2004-06-12 Sven Neumann <sven@gimp.org>
* app/widgets/gimphistogrameditor.c (gimp_histogram_editor_init):
set the initially selected channel on the histogram combobox.
Fixes bug #144225.
2004-06-10 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpthumbbox.c (gimp_thumb_box_new): line-wrap the
filename label if it's too long instead of cutting it off.
2004-06-10 Sven Neumann <sven@gimp.org>
* app/widgets/gimptemplateeditor.[ch]: added an API to
expand/collapse the "Advanced Options" frame.
* app/gui/preferences-dialog.c
* app/widgets/gimphelp-ids.h: applied a patch done by William
Skaggs that cleans up and reorganizes the Preferences dialog
(bug #144060).
2004-06-05 Sven Neumann <sven@gimp.org>
* app/widgets/gimpgradienteditor.c: applied a patch from David
Gowers that makes the gradient editor display the perceptual
intensity of the color under the cursor (bug #135037).
2004-06-05 Michael Natterer <mitch@gimp.org>
* cursors/Makefile.am
* cursors/cursor-none.png
* cursors/xbm/cursor-none.xbm: new empty cursor images.
* app/config/gimpdisplayconfig.[ch]
* app/config/gimprc-blurbs.h
* app/widgets/widgets-enums.h
* app/widgets/gimpcursor.c
* app/display/gimpdisplayshell-cursor.c
* app/tools/gimppainttool.[ch]
* app/tools/gimpinktool.c
* app/gui/preferences-dialog.c: applied patches from Philip
Lafleur which implement hiding the cursor completely for paint
tools. Changed the name of the config option from
"hide-paint-tool-cursor" to "show-paint-tool-cursor" and default
to TRUE because this needs the brush outline being visible while
painting to be really usable. Fixes bug #132163.
* app/widgets/widgets-enums.h: renamed all GimpCursorType and
GimpToolCursorType enum values to GIMP_CURSOR_* and
GIMP_TOOL_CURSOR_*.
* app/widgets/gimpcursor.c
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-cursor.c
* app/tools/gimp*tool.c; changed accordingly.
2004-06-04 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpcursor.c: changed create_cursor_foo() utility
functions to get_cursor_foo() and use them as accessors instead of
using cursor->member. Use gdk_pixbuf_copy() instead of compositing
the initial image onto an empty pixbuf.