Commit graph

3589 commits

Author SHA1 Message Date
Michael Natterer
056e09a6cb Remove the makefile.msc build system, it is unmaintained since 2008 2011-12-16 15:53:56 +01:00
Alexia Death
aa9806c687 app: Make resource subfolders elements in the tag cloud
This patch does following things for this purpose:
* Adds intrernal flag to GimpTag api
* Modifies GimpData gimp_data_set_filename to use the last element
  of the path, unless blacklisted, as internal tag for the resource.
* Modify tag cache to not save internal tags
* Removes a check for existing tags when objects are added to tag cache
2011-12-04 20:36:05 +02:00
Michael Natterer
ed1ed0e6bc app: make destroying a GimpFilteredContainer not crash
It was never disconnecting from any of the src_container objects'
signals.

GimpFilteredContainer: unref the src_container in finalize() instead
of dispose() because the parent dispose() impl now needs it via
calling gimp_container_clear().

GimpTaggedContainer: implement GimpContainer::clear() and disconnect
from all the src_container objects' signals.
2011-12-01 21:12:55 +01:00
Michael Natterer
70376b7528 app: GimpTagCache: move variable to local scope 2011-12-01 20:34:18 +01:00
Michael Natterer
9781aa65ea Bug 658467 - Replace g_format_size_for_display() by g_format_size()
Use g_format_size() instead of g_format_size_for_display() because
the latter is deprecated.
2011-11-30 23:37:55 +01:00
Michael Natterer
88befd3082 Bug 664591 - Spyrogimp script crashes GIMP
Don't let resetting the tool options reset away their name to NULL.
Found by massimo.
2011-11-23 20:55:55 +01:00
Michael Natterer
3669acf0be Bug 658904 - Wrong behaviour in hidding layers with shift + left mouse click
Fix "exclusive visible" for layer trees. Doesn't touch the visibility
of any non-toplevel items that is not in the exclusive item's ancestry.
2011-11-16 22:38:39 +01:00
Massimo Valentini
834225803a Bug 662219 Rotate does not rotate; the image is ...
gone except for a small rectangle

atan2 returns an angle between -pi, pi. Here it is needed
between 0, 2pi. Simpler to invert both axes.
2011-11-02 17:55:57 +01:00
Michael Natterer
30f638516e app: add gimp_get_paint_info_iter(), I need it later for PDB context fixing 2011-10-29 19:37:58 +02:00
Michael Natterer
846392b66c app: move the "exclusive visible" logic to the core
but don't fix it for item trees yet (refactoring only). Kill the
"exclusive liked" function which only existed because it was so easy
to have, but was always utterly useless. Prove me wrong and I will
revive it.
2011-10-12 16:05:57 +02:00
Mukund Sivaraman
e922a7bfda app: Update Jarvis march implementation
The output of transforms can result in the transformed points being
passed out of order to gimp_transform_resize_crop().  The Jarvis march
method is used to find the convex hull of the points to get them in a
known order, before performing the crop operation.

Static analysis found a bug in the Jarvis march algorithm, but when we
looked at the code, we could no longer follow it. So a slightly
rewritten version is committed here without the static analysis bug.
2011-10-10 09:19:49 +05:30
Mukund Sivaraman
9a39d84e96 app: Remove dead assignment 2011-10-03 19:13:22 +05:30
Mukund Sivaraman
f33dcf2df2 app: Don't care about return value of g_string_append() 2011-10-03 19:06:37 +05:30
Mukund Sivaraman
9dd857d996 app: Remove dead assignments (and variable) 2011-10-03 13:11:09 +05:30
Massimo Valentini
0f03ed9e05 Bug 616416: hidden layer groups appear again after an image change
Introduced two virtual functions to a GimpViewable

'set_expanded' and 'get_expanded'

and a PROP_GROUP_ITEM_FLAGS to load/save the expanded state
of layer_groups and use them.
2011-09-25 21:57:20 +02:00
Massimo Valentini
a67bb11cf5 Revert "Bug 616416: hidden layer groups appear again after an image change"
This reverts commit 359c9c22d9.
2011-09-25 21:49:36 +02:00
Massimo Valentini
359c9c22d9 Bug 616416: hidden layer groups appear again after an image change 2011-09-25 21:38:50 +02:00
Michael Natterer
d995fefb7c app: add gimp_item_is_visible()
which returns TRUE if an item is effectively visible (it is visible
and all its parents are visible).
2011-09-23 23:43:42 +02:00
Michael Natterer
0e1d07d129 Bug 659446 - Missing plural handling for...
Use ngettext() instead of simply _().
2011-09-23 23:09:26 +02:00
Michael Natterer
944f6a529d Bug 656512 - Moving a floating selection - objects disappear
Fix typo in gimp_drawable_fs_update(): use the drawable's x and y
offsets to calculate the intersection with the fs' update area, and
not the y offset for both axes.
2011-09-23 22:34:25 +02:00
Michael Natterer
578e6402b8 app: don't detach the floating selection if it's not attached
Fix the commit two down in the log: a layer can be a floating
selection even if it's not attached to anything (when it is on the
undo stack).  Don't detach it if it is not the underlying drawable's
current fs.
2011-09-23 22:24:23 +02:00
Michael Natterer
208fedd7ea app: don't add GimpLayer's source node to two different parents
When the layer is a floating selection, its source node is being
hijacked by the underlying drawable to be composited on top of it.
This can happen before the layer's own layer node is being created; in
this case we must not add the source node to the layer node. Detaching
the floating selection in any way will fix up things later.
2011-09-23 21:58:00 +02:00
Michael Natterer
e8f64664c9 app: properly detach floating selection in dispose()
We crash when closing an image that has a floating selection and the
GEGL projection is being used. Detach the floating selection when
either the FS or the drawable it's attached to are disposed. This fix
only makes it crash later, but makes sense as separate commit.
2011-09-23 19:55:24 +02:00
Michael Natterer
5c8ded8960 app: let the drawable keep around a pointer to its floating selection
Instead of getting the floating selection from the image. Change
gimp_drawable_has_floating_sel() to get_floating_sel() and remove the
"floating_sel" parameter from gimp_drawable_deatch_floating_sel().
This cleanup is one more step towards sanitizing floating selections,
and makes the crash fix in the next commit much much simpler.
2011-09-23 19:31:50 +02:00
Massimo Valentini
9199432eda Bug 659376: wrong behavior of the channel visibility button 2011-09-18 15:46:19 +02:00
Alexia Death
2528f656b5 app: remove call to possibly buggy and un-needed scale clamp
It's likely that the removed call and function were causing
random drawing artefacts, but as this was once in a blue
moon bug, I have just a guess to go by however, testing
revealed no regressions, so pushing.
2011-09-10 21:47:52 +03:00
Martin Nordholts
9f1187f6a5 app: Prefix TileManager functions
read_pixel_data() -> tile_manager_read_pixel_data()
write_pixel_data() -> tile_manager_write_pixel_data()
read_pixel_data_1() -> tile_manager_read_pixel_data_1()
write_pixel_data_1() -> tile_manager_write_pixel_data_1()

for consistency.
2011-09-07 12:08:43 +02:00
Martin Nordholts
80beaa6b5a Bug 612931 - Moving individual layer in layer group not possible with Move Tool in 'pick a layer' mode
When using GimpPickable::get_opacity_at(), don't consider group layers
as having content.
2011-08-20 17:57:12 +02:00
Eric Grivel
da37e9ff3e Bug 596410 - gimp-image-get-filename returns NULL for imported files
Make gimp_image_get_uri() and gimp_image_get_filename() behave as in
the GIMP 2.6 days. Add new functions gimp_image_get_xcf_uri(),
gimp_image_get_exported_uri() and gimp_image_get_imported_uri().
2011-08-12 21:15:16 +02:00
Alexia Death
c6f0a66de8 app: fix wheel input weirdness hack - corrected in driver 2011-08-11 17:21:44 +03:00
Massimo Valentini
d697c0bdb9 app/core: do not offset cairo_path_data_t's headers
Stroking a rectangular selection doesn't work, for example.
2011-07-19 13:00:07 +02:00
Martin Nordholts
07556242b0 app: Make positioning of new dockables depend on window mode
Add GimpWindowingStrategy with create_dockable_dialog() and use it in
dialogs_create_dockable_cmd_callback(). There are two implementations:
GimpSingleWindowStrategy and GimpMultiWindowStrategy. Depending on the
window mode, we want new dockables to appear in different places when
created. In single-window mode, they should appear inside the single
image window. In multi-window mode, a new dock window is created.
2011-07-03 21:20:36 +02:00
Michael Natterer
e0e2befd17 Bug 651462 - On first attempt to save tool preset, stops with an error
Create the "tool-presets" directory in gimp-user-install.
2011-06-23 19:21:08 +02:00
Michael Natterer
dd0042f76b app: implement error handling in gimp_imagefile_icon_callback()
Particularly, don't crash if the async operation got cancelled in
dispose().
2011-06-19 23:31:29 +02:00
Michael Natterer
ab607a0adc app: add gimp_imagegile_get_gicon() which uses async API and can't block
and use it in gimp_view_renderer_imagefile_get_icon().
2011-06-19 23:06:33 +02:00
Michael Natterer
3c28ed4303 app: speed up GimpTagCache saving
Use g_list_prepend() and g_list_reverse() instead of g_list_append().
2011-06-16 20:22:36 +02:00
Michael Natterer
ea27c7bc83 app: add the MIN4() and MAX4() macros to gimp-utils.h
instead of having them in 5 .c files.
2011-06-04 17:16:21 +02:00
Michael Natterer
cebd34293c app: don't populate the tool preset factory with data in no-interface mode
but keep the factory around anyway so the code stays simple.
2011-05-17 14:54:40 +02:00
Martin Nordholts
c4097d4ff4 app: void * -> gpointer in GimpIdTable 2011-05-04 23:14:21 +02:00
Martin Nordholts
0d529f7956 app: Use GimpIdTable 2011-05-04 22:54:35 +02:00
Martin Nordholts
9fefa22efe app: Add GimpIdTable utility class
Not written in Vala... ;)
2011-05-04 22:54:35 +02:00
Michael Natterer
c35ff719a7 app/libgimp*: remove stuff found by -Wunused-but-set-variable 2011-05-01 23:23:19 +02:00
Michael Natterer
cc47b2a600 libgimpwidgets/color: move the cairo color utility functions to libgimpcolor
Add CAIRO_CFLAGS to a lot of Makefiles to make this possible, and
because they pull in cairo via the libgimp headers.
2011-04-28 15:50:39 +02:00
Michael Natterer
2af539020b app: don't include individual files from libgimp* 2011-04-28 14:23:33 +02:00
Michael Natterer
92ce59e1c1 app: gimp_layer_new_from_pixbuf(): refuse to create layers of wrong type 2011-04-28 01:27:04 +02:00
Martin Nordholts
e75cfd044a app: Sort core/.gitignore 2011-04-25 16:08:15 +02:00
Michael Natterer
3fbbb9b333 app: GimpMotionBuffer API cleanup and refactoring
- start_stroke()/finih_stroke() -> begin_stroke()/end_stroke()
- process_event_queue() -> process_stroke()
- GimpMotionBuffer::motion() -> GimpMotionBuffer::stroke()
- add GimpMotionBuffer::hover() and process_hover()
- remove push_event_history() and pop_event_queue() from API

The thing works like this:

- Motion events are continuously fed into the buffer using motion_event()
- begin_stroke()/end_stroke() correspond to BUTTON_PRESS/BUTTON_RELEASE,
  the period between them is a "stroke"
- If motion_event() returns TRUE, we request "stroke" signals by calling
  process_stroke() and "hover" signals by calling process_hover()
2011-04-18 11:08:24 +02:00
Michael Natterer
99f5dc9f18 app: move GimpCagePoint from core-types.h to gegl/
and remove the orphaned GimpCagePreview typedef from gimp-gegl-types.h.
2011-04-18 00:09:06 +02:00
Michael Natterer
6a1b93be1c app: don't include "libgimpmath/gimpvectors.h" in any header
It's types are generally known because it's already included
in core-types.h.
2011-04-17 23:44:45 +02:00
Michael Natterer
334e4c5d71 app: move process_event_queue() and flush_event_queue() to GimpMotionBuffer
and emit the buffer's "motion" signal when a motion is supposed
to happen. In GimpDisplayShell, connect to GimpMotionBuffer::motion()
and call the tool.
2011-04-17 21:46:29 +02:00