Commit graph

5195 commits

Author SHA1 Message Date
Kristian Rietveld
dd7d332fb8 Bug 736746 - Alt+Number only switches to lower-numbered windows
Add "action-group" signal to GimpActionGroup, such that we can
properly set the accel group and connect the accelerator on actions
that are created after the initial setup of the menus.
2015-01-09 23:02:24 +01:00
Michael Natterer
47595b5615 app: use GimpFrames in _gimp_prop_gui_new_channel_mixer() 2014-12-07 20:12:29 +01:00
Alexia Death
44be17a8c1 app: Custom gui for channel mixer 2014-12-07 19:57:28 +02:00
Michael Natterer
16d2031136 Bug 739369 - Rendering artifacts in the tool in-canvas UI with opacity
Don't disable double buffering in GimpOverlayBox, we don't do it for
the canvas any longer, and removing that code fixes the artifacts.
2014-12-01 21:50:57 +01:00
Michael Natterer
73e4828556 app: use g_signal_connect_object() to connect the history to the color dialog
It crashed when the history changed after a dialog way destroyed.
2014-11-29 13:48:00 +01:00
Michael Natterer
c0365c04e7 app: connect GimpColorDialog to the history palette's "dirty" signal
instead of having a ton of convoluted legacy code doing the same
manually. Simpler and more obvious code.
2014-11-29 13:33:56 +01:00
Michael Natterer
bebdcbe0bf app: change enum GimpColorPickState to { START, UPDATE, END }
It used to be { NEW, UPDATE } but that didn't allow to distinguish the
final END update, which we will soon need for automatic color history
updating. Make sure all places that handle motion events on colors
(pick from canvas, gradient editor) correctly send and handle END
events.
2014-11-28 12:00:53 +01:00
Michael Natterer
09628cfa4c Bug 739489 - Add palette of recently used colors
Add a generated palette which contains the color history. For now it's
only updated when the color dialog's color history gets updated, but
should be updated whenever a color is chosen in any way.
2014-11-26 23:48:19 +01:00
Michael Natterer
6f3ee00963 Bug 735424 - Save Tag Filter Options
Save the active tag filter in sessionrc.
2014-11-05 21:14:31 +01:00
Michael Natterer
950f753ede Bug 736907 - Compat mode for XCF
- add gimp_image_get,get_xcf_compat_mode()
- add a compat toggle to GimpFileDialog which is shown and sensitive
  only for a save (not export), and if the image structure allows
  to save an old version at all. The button also has a tooltip
  which explains why it is sensitive and what it does
- add "gboolean xcf_compat" to file_save_dialog_save_image()
- in file_save_dialog_save_image(), call image_set_xcf_compat_mode(TRUE)
  only around the call to file_save() and set it to FALSE after saving
- in xcf_save_invoker(), honor the image's XCF compat flag and save an
  RLE-compressed XCF if possible

The above is very convoluted and doesn't pass the "xcf_compat" boolean
directly because we can't change the parameters of gimp-xcf-save, and
because the gimp-xcf-save might be called indirectly.
2014-10-20 22:54:11 +02:00
Michael Natterer
5d8824f42e app: move all GimpBrush members to a private struct
Add and use accessors for width, height, x_axis and y_axis.
2014-10-12 01:16:32 +02:00
Michael Natterer
69f6d7fc8a app: don't ref the tool options GUI in gimp_tool_options_editor_dispose()
They are kept alive by a ref owned by GimpToolOptions, refing them
here made them all being leaked on exit.
2014-10-09 00:35:57 +02:00
Michael Natterer
88e8fbce17 app: remove unclear fix from gimp_tool_options_editor_tool_changed()
It was introduced in e7ade3f8ec. The
g_return_if_fail() is IMO useless, the actual fix (which I kept) was
pulling the call to gimp_tool_options_editor_presets_update() inside
the if().
2014-10-09 00:33:33 +02:00
Michael Natterer
aa6024dc93 app: don't leak all results from separate_uline_pattern() in GimpSpinScale 2014-10-06 20:34:22 +02:00
Michael Natterer
849481a861 Clean up code around calls to g_file_replace()
- use G_FILE_CREATE_NONE instead of 0
- don't put "Could not open <file> for writing: <error>" around the
  returned error, the returned message is already verbose
2014-10-04 02:44:54 +02:00
Michael Natterer
90c967a39f Bug 737008 - Curve color always black
Don't hardcode "black" for the "Value" curve in GimpCurvesTool.
Instead, pass a NULL color to GimpCurveView, which is then interpreted
as the theme's text color (the curve's background is the theme's text
background color). We still hardcode pure red, green and blue for the
other curves.
2014-09-21 12:32:23 +02:00
Michael Natterer
0cceaff828 Bug 721482 - Make language codes relocatable
Manually picked one line of ef0ef921b8
that makes parse_iso_codes() find the iso-codes package in the bundle
on OS X.
2014-09-17 12:47:21 +02:00
Michael Natterer
7b69b3b60e Bug 733390 - Picking a color should also change the active color...
...in the opened Color Modify window

Connect to the toolbox' context's foreground-changed and
background-changed signals and update the color dialog.
2014-09-16 23:56:50 +02:00
Jehan
b9a9169656 app: update action search to use glib API.
I now normalize with g_str_tokenize_and_fold() which uses standard
Unicode normalization.
I don't use g_str_match_string() directly though, because I want to
run additional checks to order the results by relevance. For instance
I still want actions whose labels starts with the search string to be
at the top, and results with same order as search token before those
with a different order. Then results with match in the tooltip. Finally
I also returns results with partial match in the label, and the rest in
the tooltip, though at the bottom of the list.
Other than that, this returns the same results as g_str_match_string()
with a similar algorithm. In particular now we only match the start of
tokens (a substring in the middle of a token won't match anymore).
I kept the small 2-character trick matching the first letters of the
first 2 words of the label, but I got rid of the fuzzy search (that none
really found ever relevant anyway).
2014-09-16 04:03:43 +02:00
Michael Natterer
14978bfe5d Simplify calls to g_output_stream_write_all()
It returns TRUE only if all bytes were written, so there is no need to
get and check the bytes_written return value.
2014-09-07 20:30:14 +02:00
Jehan
cd0b2f61c0 app: g_file_new_for_uri() return object not freed with g_object_unref().
Non-freed GFile object when saving or exporting the first time, i.e.
with default extensions.
2014-08-19 01:38:13 +02:00
Mikael Magnusson
16637900b6 app: initialize variable 2014-08-16 02:54:57 +02:00
Michael Natterer
dae366bb6e configure.ac, *: require GLib 2.40.0
Remove gimp_output_stream_[v]printf() and use the new functions from
GLib instead. Use memmove() instead of the deprecated g_memmove().
2014-08-12 15:30:19 +02:00
Michael Natterer
c077fb8dad app: add --verbose output when parsing and writing the action history 2014-07-29 18:13:57 +02:00
Michael Natterer
85668c8e69 app: filename -> GFile in parse_iso_codes() 2014-07-29 16:32:29 +02:00
Michael Natterer
e84ef0d7cc app: use GIO to find the locally installed user manual 2014-07-29 13:04:16 +02:00
Michael Natterer
50ca9068da app: more cleanup in the action history code, mostly general consistency 2014-07-29 12:28:18 +02:00
Michael Natterer
b200345a98 app: change GimpImageMapTool::get_settings_ui()'s "default_folder" to GFile 2014-07-29 11:56:49 +02:00
Michael Natterer
b81f46185e app: port the action history to GimpConfigWriter, GimpScanner and to GIO
which means the file format has changed, but it will silently ignore
the parse error when encountering the old format.
2014-07-28 16:44:44 +02:00
Michael Natterer
57cecb54fb app: some serious cleanup in gimpaction-history.c, still a lot to do 2014-07-28 11:22:20 +02:00
Michael Natterer
b03d69dd40 libgimpbase, app: add variants of gimp_$foo_directory() which return GFiles
gimp_directory_file(), gimp_data_directory_file() etc. The new
functions take a variable list of path elements to the file,
the list has to be NULL-terminated. Remove the newly added
gimp_personal_rc_gfile(). Start using the new functions in app/.
2014-07-28 02:04:01 +02:00
Michael Natterer
57e6b22b9d app, plug-ins: remove file-uri completely
and enable the new file-remote code in app unconditionally.
2014-07-23 21:37:13 +02:00
Michael Natterer
cf159ac68a app: get rid of some GtkObject variables, makes the gtk3-port diff smaller 2014-07-21 02:34:39 +02:00
Michael Natterer
328e4eff18 app: add gimp_progress_set_text_literal()
and use it instead of set_text (progress, "%s", literal_message);
2014-07-20 23:32:19 +02:00
Michael Natterer
a6601d563b app: some GimpProgress cleanup
- change start() and set_text() to use "format" and "..." instead of
  "message", allowing to format progress messages in place
- s/cancelable/cancellable/
- move "cancellable" to be the second argument of start()
2014-07-12 23:45:20 +02:00
Michael Natterer
944ba8131b app: honor GIMP_HANDLE_REMOTE_FILES when setting local-only in GimpFileDialog 2014-07-11 09:11:14 +02:00
Michael Natterer
dc842d481b app: use gimp_widget_flush_expose() in GimpProgressBox
instead of flushing the widget manually.
2014-07-11 00:40:56 +02:00
Michael Natterer
39f7401703 app: change Gimp->default_folder from being a path to a GFile
Also fix GimpFileDialog to actually start with that folder, and not in
its parent folder.
2014-07-09 20:12:05 +02:00
Michael Natterer
43e9a79ef9 app: gimp_thumb_box_take_file() must accept a NULL file 2014-07-08 21:40:17 +02:00
Michael Natterer
d4b35785b5 app: more URI -> GFile in GimpFileDialog 2014-07-08 01:41:45 +02:00
Michael Natterer
69686fe446 app: port GimpThumbBox from URI to GFile 2014-07-08 00:58:42 +02:00
Michael Natterer
c656c41d88 app: more URI -> GFile in gimpdnd-xds.c 2014-07-08 00:31:22 +02:00
Michael Natterer
d0a6d95dad app: remove a bunch of file-utils.h includes 2014-07-08 00:23:34 +02:00
Michael Natterer
7f966cad39 app: keep the image's "Untitled" string around as GFile too 2014-07-08 00:15:41 +02:00
Michael Natterer
ff6ea69569 app: change the image's various URIs to GFiles
which gets rid of a lot of temporarily added GFile code again because
we don't need to convert between URI and GFile any longer.
2014-07-07 23:58:11 +02:00
Michael Natterer
0f8d84d5e9 app: port all file_open() and file_save() functions to GFile 2014-07-07 23:58:11 +02:00
Michael Natterer
0753b5a137 app: port gimp_text_buffer_load() and _save() to GIO 2014-07-03 12:57:18 +02:00
Michael Natterer
9f0e27307e app: change filename in gimp_text_buffer_load() and _save() to GFile 2014-07-02 15:10:53 +02:00
Michael Natterer
c88800e840 app: add gimp-priorities.h and keep the most important priorities there
also add comments with all predefined priorities as documentation.
2014-07-02 04:47:24 +02:00
Michael Natterer
98e7ec090b app: use the new gimp_personal_rc_gfile() in lots of places
and pass the GFile to the newly added GFile-based GimpConfig,
GimpScanner etc. functions. This is starting to make sense now...
2014-07-01 20:02:45 +02:00
Michael Natterer
8c8135a881 app: port GimpImageMapTool's settings API from filename to GFile 2014-07-01 15:13:02 +02:00
Michael Natterer
6fd8a362df app: s/gimp_hsv_to_rgb4/gimp_hsv_to_rgb/ in GimpCircle 2014-06-30 17:30:05 +02:00
Michael Natterer
a665c30823 app: gimp_spin_button_new() -> gtk_spin_button_new() 2014-06-21 22:39:37 +02:00
Michael Natterer
5e2d91dc0a app: don't leak the GtkTextBuffers of Gegl multiline text properties 2014-06-20 08:59:42 +02:00
Michael Natterer
40cbbf8faf app: argh, so much for less stupid 2014-06-19 19:00:23 +02:00
Michael Natterer
5a4e9d0e03 app: make the new rounding code in GimpSpinScale less totally stupid 2014-06-19 18:56:43 +02:00
Michael Natterer
be80f49018 app: round mouse-entered GimpSpinScale values to the spinbutton's precision
So the adjustment's value is always what is shown (and can be entered
manually) in the widget. This way a GimpSpinScale will never change
its adjustment on focus-out, and not cause whatever unexpected updates
of its model and whatever is connected to it (like changing the
properties and thus unvalidating the caches of a Gegl graph).
2014-06-19 15:49:27 +02:00
Michael Natterer
77a515dd0f app, libgimpwidgets: don't set unchanged object properties again
gimp_prop_adjustment_callback(): compare the property's current value
before setting it.
2014-06-19 02:01:10 +02:00
Michael Natterer
b6052dc568 app: fix some glitches in GimpPickablePopup
- connect double click on the list of channels
- actually allow channels to be picked
- repopulate the channel view when the image changes

This must have been a late night hack...
2014-06-15 18:30:47 +02:00
Michael Natterer
c071959eb1 app: remove ", 0" left over from removing a MAX (foo, 0) 2014-06-09 03:33:48 +02:00
Michael Natterer
17bd4d2c28 app: make GimpOverlayDialog's title and icon-name settable after construction 2014-06-09 01:42:09 +02:00
Michael Natterer
f348d1d321 app: add a title bar and close button to GimpOverlayDialog
as first step in a bigger tool dialog cleanup.
2014-06-09 00:19:23 +02:00
Michael Natterer
f904088caf app: allow to select channels in GimpPickablePopup 2014-06-07 00:25:51 +02:00
Michael Natterer
2ef565b58f app: implement picking any image or layer in GimpPickableButton/Popup 2014-06-06 22:48:36 +02:00
Michael Natterer
c9fc83a932 app: make gimp_container_view_remove_container() more robust
Don't special case on view_iface->model_is_tree and always run
gimp_container_view_remove_foreach(), also on the view's toplevel
container.  Run gimp_container_view_clear_items() anyway on the
toplevel as an optimization, but with a big comment. This makes all
views (on list *and* tree models) behave the same way, and makes
view_iface->model_is_tree practically obsolete, will remove it later.
2014-06-06 22:48:35 +02:00
Michael Natterer
55e8528eff app: GimpContainerTreeView: keep a reference on tree_view->model
during the lifetime of the widget. Leaving that up to the GtkTreeView
was working for mysterious reasons even during destruction of the
widget. It's safer and cleaner this way.
2014-06-06 22:48:35 +02:00
Michael Natterer
35b3b2bfcf app: chain up unconditionally gimp_container_entry_clear_items()
so the parent implementation can clear the item hash table.
2014-06-06 22:48:35 +02:00
Michael Natterer
ce1c86b71b app: activate GimpPopup's binding set in key_press()
not that of its subclass. Fixes selecting items with return/enter.
2014-06-06 09:22:51 +02:00
Michael Natterer
52aa22f6aa app: add GimpPickablePopup which will allow picking any image/layer's
For now contains a dysfunctional image list.
2014-06-06 01:47:12 +02:00
Michael Natterer
b0b8fda94c app: factor out a generic GimpPopup widget out of GimpContainerPopup 2014-06-06 00:57:20 +02:00
Michael Natterer
3f18d5b26d app: always return a widget from gimp_prop_gui_new()
As a fallback, return a label saying "This operation has no editable
properties".
2014-06-05 23:14:00 +02:00
Michael Natterer
425748dab0 libgimpbase, *: rename GimpFillType values: GIMP_FOO_FILL -> GIMP_FILL_FOO
Change all users accordingly and add compat enum values and compat
constants to script-fu and pygimp.
2014-06-03 01:11:32 +02:00
Michael Natterer
660854f53c app: clean up the generated and custom GEGL GUI code a bit
Still slightly horrible but getting better...
2014-06-02 20:27:59 +02:00
Michael Natterer
8836127efb app: call gdk_display_flush() in gimp_cursor_set()
Cursor change feedback should be immediate even under heavy load.
2014-06-02 20:16:04 +02:00
Michael Natterer
1464bee257 app: use the GParamSpec's nick as label in gimp_prop_spin_scale_new()
if a NULL label was passed. Override this with explicit calls to
gimp_spin_scale_set_label() in the two cases where we really don't
want a label.
2014-06-01 23:39:19 +02:00
Michael Natterer
65b46244c7 app: add a menu of kelvin presets to GEGL properties with unit "kelvin"
Values taken from http://en.wikipedia.org/wiki/Color_temperature
2014-06-01 20:59:57 +02:00
Michael Natterer
0df36e9dcf app: move lots of state handling from sunclasses to GimpCircle 2014-05-30 03:25:02 +02:00
Michael Natterer
f963f55fa4 app: add a "Select All" button to color-rotate's angle range controls 2014-05-30 01:23:15 +02:00
Michael Natterer
45da2c8abb app: use the new GimpPolar in the custom color-rotate GUI 2014-05-30 00:36:43 +02:00
Michael Natterer
71f3895597 app: GimpPolar: add () around && within a || 2014-05-30 00:36:43 +02:00
Michael Natterer
fe7aa1384d app: add gimp_prop_polar_new() 2014-05-30 00:36:43 +02:00
Michael Natterer
ca818d7c88 app: add new GimpCircle subblass GimpPolar to select polar coordinates 2014-05-30 00:36:42 +02:00
Michael Natterer
38e2983c24 app: improve button label in color-rotate's custom GUI 2014-05-29 18:35:25 +02:00
Michael Natterer
31e07a13d1 app: convolution-matrix' matrix was flipped 2014-05-29 00:43:44 +02:00
Michael Natterer
fd3c4ac836 app: improce custom gegl:color-rotate GUI 2014-05-28 14:49:22 +02:00
Michael Natterer
5d1f6806c0 app: add a bad custom GUI for gegl:color-rotate 2014-05-28 01:00:50 +02:00
Michael Natterer
907939edc9 app: add gimp_prop_angle_range_dial_new()
which is by no means general and needs to be improved if ever widely
used.
2014-05-28 00:59:44 +02:00
Michael Natterer
7261c6b3a8 app: experimentally add a custom GUI for gegl:convolution-matrix 2014-05-27 22:09:40 +02:00
Michael Natterer
774e457faf app: add gimppropgui-constructors.[ch]
for operation-specific GUI constructors. Factor a generic fallback
constructor out of gimp_prop_gui_new() and move it there.
2014-05-27 11:19:32 +02:00
Michael Natterer
075cd5f098 app: restore random seed GUI for GEGL ops, broke that with the refactoring
and add a size group for the labels.
2014-05-27 10:47:41 +02:00
Michael Natterer
254a2b744d app: remove the table from gimp_prop_gui_new()
and pack everything into boxes. There are a few size groups missing
to make everything look nicely aligned again.
2014-05-27 03:06:12 +02:00
Michael Natterer
a06d570748 app: rename gimpproptable.[ch] to gimppropgui.[ch] 2014-05-27 02:15:48 +02:00
Michael Natterer
5ffa278da5 app: factor gimp_prop_widget_new() out of gimp_prop_table_new()
The new function generically returns a widget for one property and is
used in gimp_prop_table_new().
2014-05-27 02:08:44 +02:00
Michael Natterer
21d97b02ce app: add private function gimp_dial_set_target()
which avoids invalidating the widget if the target didn't change.
2014-05-27 02:08:43 +02:00
Michael Natterer
6b46dfdb71 app: clean up angle calculations in GimpCicrle and GimpDial 2014-05-27 02:08:43 +02:00
Michael Natterer
d36bc86292 app: fix off-by-0.5 drawing in GimpDial caused by ROUND() and a wrong offset 2014-05-26 19:09:30 +02:00
Michael Natterer
0a49755712 app: highlight the angles of GimpDial that are currently moved 2014-05-26 18:51:12 +02:00
Michael Natterer
d20b576814 app: don't create and fill the background surface on each expose()
Instead, keep it around and only recreate it when widget size or
background type change.
2014-05-26 11:03:39 +02:00
Michael Natterer
5c37ef213d app: restore ungrab on unmap in GimpDial
which I broke when splitting classes.
2014-05-26 10:56:18 +02:00
Michael Natterer
98d6f44231 app: move GimpDial's background drawing to a new parent class, GimpCircle
so we can use that as a parent class for other circle/wheer interactions
in other subclasses.
2014-05-26 09:23:55 +02:00
Michael Henning
6923f49b0d app: Fix broken header guards. 2014-05-25 20:50:56 -04:00
Michael Natterer
b087705c82 app: show an angle dial next to all GEGL angle properties 2014-05-25 21:53:14 +02:00
Michael Natterer
4ec888a771 app: add gimp_prop_angle_dial_new() which handles deg and rad 2014-05-25 21:52:39 +02:00
Michael Natterer
624b0453df app: make GimpDial's size configurable via a property 2014-05-25 20:48:47 +02:00
Michael Natterer
5fbcc70c0c app: add boolean draw_beta property to GimpDial
so it can be used to pick just one angle.
2014-05-25 20:24:47 +02:00
Michael Natterer
06f5e47a0e app: use gimp_cairo_add_arc() in GimpDial 2014-05-25 20:11:51 +02:00
Michael Natterer
b9c7f4fe1e app: make GimpDial's backgrond configurable and add a plain version
which does not show any background color wheel.
2014-05-25 18:22:44 +02:00
Michael Natterer
e3e743bd6b app: rename angle_mod_2PI() to normalize_angle(), there is no mod involved 2014-05-25 17:42:56 +02:00
Michael Natterer
804f3e4bbe app: even more cleanup in GimpDial 2014-05-25 17:41:14 +02:00
Michael Natterer
db7b87e8cf app: credit the color-rotate authors in the GimpDial copyrights 2014-05-25 17:25:39 +02:00
Michael Natterer
e9e4791344 app: simplify and clean up angle utility functions in GimpDial 2014-05-25 17:22:50 +02:00
Michael Natterer
04c36b80c1 app: clean up and simplify code and math in GimpDial 2014-05-25 17:05:59 +02:00
Michael Natterer
5571ad5400 app: turn GimpDial's border_width into a property and default to 0 2014-05-25 16:30:12 +02:00
Michael Natterer
41b15c709d app: move all GimpDial members to a private struct 2014-05-25 16:21:32 +02:00
Michael Natterer
8f07ea37f0 app: prepare GimpDial background drawing to be generic (not only HSV) 2014-05-25 16:12:07 +02:00
Michael Natterer
710281ed54 app: add a boolean "clockwise" property to the new GimpDial widget 2014-05-25 15:45:55 +02:00
Michael Natterer
b2ac41b961 app: add initial version of GimpDial, a widget to select a range of angles
Ported from the color-rotate plug-in.
2014-05-25 03:21:13 +02:00
Michael Natterer
3550132ac7 app: add support for picking GEGL relative-coordinate values
Also, don't link relative coordinates by default, and remove some crap
heuristics that predate property keys.
2014-05-24 01:38:15 +02:00
Michael Natterer
7d89de708e app: GimpViewableDialog:icon-name doesn't need to be CONSTRUCT_ONLY
It works fine to set it after construction.
2014-05-22 23:28:19 +02:00
Michael Natterer
f3092ebfa4 app: minor cosmetic cleanup in the GEGL property code 2014-05-20 20:47:31 +02:00
Øyvind Kolås
b919d7a82f app: use step, page and digits as provided by gegl pspecs 2014-05-20 16:16:48 +02:00
Michael Natterer
bbf01ebabf libgimpwidgets, app: add gdk_screen_get_monitor_workarea()
to the gimp3migration hack and use it where appropriate, so in the
gtk3-port branch windows will not overlap with docks, panels etc.
2014-05-19 14:37:32 +02:00
Michael Natterer
35f8355af4 Bug 729068 - Gimp windows state is lost when closed from the window manager
Set gtk_window_set_skip_taskbar_hint() to FALSE for all dock windows.
2014-05-19 03:28:26 +02:00
Michael Natterer
31f4c5bc67 app: use plain spinbuttons for random seed GEGL properties 2014-05-19 01:32:22 +02:00
Michael Natterer
05db5400f2 app: put the chain on all adjacent "x" and "y" GEGL properties
regardless of their unit. This heuristic works surprisingly well.
2014-05-18 23:21:13 +02:00
Michael Natterer
eeb8c31232 app: only auto-link GEGL properties of unit "pixel-distance" 2014-05-18 23:11:28 +02:00
Michael Natterer
b5e37f46a4 app: let GEGL properties with unit "degree" wrap around
if their total range spans 360 degrees.
2014-05-18 23:04:49 +02:00
Michael Natterer
4900da3183 app: use 1 and 15 increments for GEGL properties with the unit "degree" 2014-05-18 22:58:51 +02:00
Michael Natterer
981abdffe1 app: the icon's name is format-text-strikethrough not format-edit-strikethrough 2014-05-16 20:47:41 +02:00
Michael Natterer
dac7201ead app: follow GEGL propertiy keys convention change
and clean up the magic a bit.
2014-05-16 03:10:01 +02:00
Michael Natterer
c15f319de0 app: make the chain and coordinate picking depend on GEGL property keys 2014-05-16 02:34:10 +02:00
Michael Natterer
8be52f6aa7 app, libgimp*: pass translated blurbs to GIMP_CONFIG_INSTALL_PROP_FOO()
instead of passing N_()-strings; and remove gettext() calls on these
strings when using them. Reduces complexitx, and fixes double- and
untranslated strings. Also enables to treat properties of GIMP and
GEGL objects the same way, which was totally broken before.
2014-05-14 23:34:01 +02:00
Michael Natterer
65a65947d9 app, libgimp: replace GTK_STOCK_FOO by icon names
unless it's a stock ID used for an action button, will address that
later.
2014-05-11 22:49:22 +02:00
Michael Natterer
4b629e984b libgimpwidgets: add GimpColorDisplayClass::icon_name
and deprecate its stock_id.
2014-05-10 11:53:07 +02:00
Michael Natterer
1ec64abb8b libgimpwidgets: add GimpColorSelectorClass::icon_name
and deprecate its stock_id.
2014-05-10 08:34:42 +02:00
Michael Natterer
9331ef2456 libgimpwidgets: change GimpController's stock_id to icon_name
This API change is OK since the entire controller API is marked as
unstable and needs a special #define to be visible at all.
2014-05-09 09:19:06 +02:00
Michael Natterer
ab6a0fe9cb app: port GimpIconPicker to named icons 2014-05-09 02:24:42 +02:00
Michael Natterer
9cb81db026 app: actually use named icons for the toolbox icons 2014-05-08 19:00:18 +02:00
Michael Natterer
b2e792eceb app: add missing include in gimpviewrenderer-frame.c 2014-05-08 12:40:02 +02:00
Michael Natterer
88f29d468c app: fix formatting of two console error messages 2014-05-08 12:12:19 +02:00
Michael Natterer
7d0b326359 app: add gimp_widget_load_icon() as replacement for gtk_widget_render_icon()
...and use it instead.
2014-05-08 09:11:31 +02:00
Michael Natterer
17167594ea app: use the newly added libgimpwidgets icon name APIs 2014-05-07 21:32:09 +02:00
Michael Natterer
0d2d1c3752 app: port most of app's GUI from stock IDs to icon names
There is still quite some stock ID rendering around, stay tuned...
2014-05-07 15:30:38 +02:00
Michael Natterer
23037b5230 app: convert all stock IDs kept around by the core by icon names
Particularly GimpViewable's stock_id. Make sure old config files
containing stock IDs are still properly parsed.
2014-05-07 01:01:56 +02:00
Michael Natterer
9ed5b3f45e app: port GimpAction and friends to icon names 2014-05-06 23:47:38 +02:00
Rickard
5ec413a5e8 Bug 729326 - Errors found using a static code analysis program cppcheck
Fixed some memory and file leaks. And removed some code and variables
that are not used.
2014-05-05 10:34:08 +02:00
Michael Natterer
a1a70a4d1f app: don't session-restore windows partially offscreen or on 2 monitors 2014-05-03 23:59:15 +02:00
Michael Natterer
4da50a64ea app: blacklist the tools-warp-effect-size action for the GUI 2014-05-03 22:56:46 +02:00
Michael Natterer
242ccacdcc app: s/paint_brush/paintbrush/ in the paintbrush action code 2014-05-03 22:55:05 +02:00
Michael Natterer
ff74c76aac app: pushed the wrong version of the last commit 2014-05-03 21:46:19 +02:00
Michael Natterer
bb3ab4c506 app: fix gimp_widget_get_monitor()
Do the right thing for widgets that have a window when the widget is
realized, and simply call gimp_get_monitor_at_pointer() if it's not
realized.
2014-05-03 21:40:59 +02:00
Michael Natterer
b14d386e0c app: remove includes in gimpsessioninfo-dock.c and -book.c 2014-05-03 17:19:10 +02:00
Michael Natterer
a07f2301bb app: s/g_warning/g_printerr/ when GDK returns a bogus resolution
This is not a programming error, so no g_warning() must be used.
2014-05-03 17:19:10 +02:00
Michael Natterer
7cdede6dec app: rename gimp_get_screen_resolution() to get_monitor_resolution()
Add a "monitor" parameter and return something reasonable, instead
of a useless resolution average of all the screen's monitors. Also
require a screen to be passed now.
2014-05-02 23:58:14 +02:00
Michael Natterer
7f23fbec34 app: add screen and monitor to all display and image window constructors
so they appear on the proper monitor as well.
2014-05-02 20:21:41 +02:00
Mukund Sivaraman
d79b7e1329 app: Remove unused variable 2014-05-02 23:27:55 +05:30
Mukund Sivaraman
8adb3090c8 app: Fix format specifier 2014-05-02 23:26:09 +05:30
Michael Natterer
051374a1b6 app: add gimp_get_monitor_at_pointer()
and use it instead of duplicating that code several times.
2014-05-02 13:23:25 +02:00
Michael Natterer
843866e7e7 app: make things behave more reasonable with multiple monitors
There is now a preference option that determines whether windows
should be opened on the same monitor as before. It should be disabled
when the machine gets monitors plugged/unplugged dynamically ("laptop")
and enabled when there is a static multi-monitor setup ("wokstation").
This is merely the current simplistic policy on top of the newly added
underlying infrastructure:

- pass integer monitor numbers around in all places where we already
  pass around a GdkScreen. Pass the "current" monitor to these changed
  APIs, where "current" is either the monitor where the action-triggering
  widget is, or if that is unavailable the monitor where the mouse is.

- add gimp_widget_get_monitor() in order to easily get to the monitor,
  just like gtk_widget_get_screen().

- add screen and monitor parameters in some places that were missed
  before.

- in sessionrc, save all window positions relative to the window's
  monitor, and save the monitor separately, if it's not the screen's
  primary monitor.

- when restoring window positions, use the stored monitor when the new
  prefs options says so (use the screen's primary monitor if there is
  no stored monitor), otherwise use current monitor that is now passed
  around.
2014-05-02 03:01:23 +02:00
Michael Natterer
dcad833d1c app: add gimp_action_is_gui_blacklisted()
which filters out some implementation details but mainly all the
tool-specific options actions which only exist as redirect targets for
the generic tool opaticy, size, aspect and angle actions. Use the new
function from the shortcut editor and from action search so stuff is
consistently hidden.
2014-04-20 15:57:57 +02:00
Michael Natterer
b4ba791381 app: implement the gimp_overlay_dialog_set_response_sensitive() stub 2014-04-18 21:38:15 +02:00
Michael Natterer
be8f43ff06 app: enable scale image's resolution chain button only if xres == yres
(the edit_resolution feature of GimpSizeBox is currently used
only by the scale image dialog)
2014-04-18 19:17:56 +02:00
Michael Natterer
3abb84022a app: enable image new's resolution chain button only if xres == yres 2014-04-18 18:43:32 +02:00
Michael Natterer
f5a1bbb07b app: integrate the layer dialog's "Mode" label into the combo box 2014-04-14 13:04:42 +02:00
Michael Natterer
614c61a3dd Don't #include <glib.h> before <lcms.h>
The include claimed to be because of "inline" in the lcms header, but
that was probably lcms1, since there is no trace of inline in the
lcms2 header.
2014-04-10 20:48:22 +02:00
Michael Natterer
32e47cf70d libgimpcolor: add gimp_lcms_profile_is_equal()
and remove all of our own MD5 digest code and API. is_equal() uses
lcms' own MD5 API which I missed before. Thanks Elle for pointing that
out :)
2014-03-29 10:40:47 +01:00
Michael Natterer
b3395d989e libgimpcolor: return an optional MD5 digest from gimp_lcms_create_srgb_profile()
pass NULL in most places, use the feature in the lcms.c plu-gin.
2014-03-23 23:34:47 +01:00
Michael Natterer
e69ea05102 app: remove some <unistd.h> and other includes
that were needed before we switched to using GLib APIs in these files.
2014-03-22 20:26:20 +01:00
Michael Natterer
89e0c04d13 app: add gimp_image_get_profile() which returns a cmsHPROFILE 2014-03-17 02:29:46 +01:00
Michael Natterer
e80eaf2524 app: start an image profile API in core/gimpimage-profile.[ch]
add lowlevel functions gimp_image_get,set_icc_profile() which deal
with ICC profiles in a GimpParasite.
2014-03-16 23:50:41 +01:00
Michael Natterer
ed13993aff app: use a GimpColorProfileView in GimpImageProfileView
and parse the profile in gimpimageprofileview.c instead of calling the
lcms plug-in. Make the app link against lcms. This is WIP because the
widget is of course the wrong place for such profile parsing code.
2014-03-16 18:36:12 +01:00
Michael Natterer
9c7cd2508f app, libgimpwidgets: move GimpProfileChooserDialog to libgimpwidgets
and call it GimpColorProfileChooserDialog. Make libgimpwidgets
depend on lcms and make it query the profile directly.
2014-03-14 22:03:08 +01:00
Michael Natterer
86e002da33 app: move all GimpProfileChooserDialog to a private struct
and make the preview widget look the same as the profile tab
in the image properties dialg.
2014-03-14 20:26:15 +01:00
Michael Natterer
35606094e6 app: be more robust about possible profile info return values 2014-03-14 20:26:15 +01:00
Michael Natterer
e72388ddf4 app: add signal GimpWindow::monitor_changed()
and emit it when the window moves between monitors or screens.
2014-03-13 22:39:03 +01:00
Michael Natterer
4267ea5d12 app: set the idle_id to 0 in gimp_image_profile_view_query()
fixes warnings from dispose() about removing a source that doesn't
exist.
2014-03-10 01:25:16 +01:00
Michael Natterer
3c918353fb app: add double precision support, for completeness
and because it makes us look utterly cool.
2014-03-09 00:43:55 +01:00
Michael Natterer
87df804f8a app: exclude generated submenu actions for plug-ins from the search 2014-02-19 01:24:27 +01:00
Michael Natterer
0d16c328c8 app: use gimp_personal_rc_file() not g_build_filename()
for saving the action history.
2014-02-18 23:31:25 +01:00
Michael Natterer
00348ffc0c app: more action search cleanup
- standard copyright headers
- use gtk_action_is_sensitive() not get_sensitive()
- formatting
2014-02-18 23:24:48 +01:00
Michael Natterer
36f87b5b2b app: clean up the new action search a bit
- order some stuff alphabetically and consistently
- move action from help-actions to dialogs-actions
- fix OS/X menu item fiddling (untested)
2014-02-18 20:10:24 +01:00
Jehan
5903e53d51 Bug 708174 - Improve the original search dialog patch.
Fix various bugs, improve code design and efficiency, change feature
name, update the feature up to our standards (now uses GIMP preferences,
session management, less overwhelming settings...).
Also now action history is tightly tied to GimpAction and logs all
action activation (however it activates, and the show_unavailable
parameter also applies to history).
Search algorithm greatly improved with basic tokenization, better
ordering, filtering, etc.
2014-02-18 19:13:03 +01:00
Srihari
fc8f6c127f Bug 708174 - A text based intent driving tool for GIMP (Tito) 2014-02-18 19:13:03 +01:00
Michael Natterer
16938bb667 Bug 676522 - Make DND work between images in *one* dockable...
...after in-DND image switching

This was actually two issues:

First, DND data is normally transferred on drop. In this situation the
contents of the source widget change in the middle of DND, so when the
drop happens there is nothing to transfer. Fixed this by attaching the
thing to transfer (image, item, color etc) to the GdkDragContext when
the DND operation starts, and trying to retrieve it on drop. Only when
nothing is attached we fall back to the traditional way of asking the
source widget. This is expected and an obvious fix.

Second, and not so obvious, the source part of the GTK+-internal state
of the DND operation (GtkDragSourceInfo) contains a *reference* (not a
copy) of the source widget's target list. When we change images in the
middle of DND, the source layer view's target list gets modified, and
because GtkDragSourceInfo only references it, the state of the ongoing
DND operation gets destroyed with it. Fixed this by changing
gimp_dnd_data_source_remove() to never change a source widget's target
list but instead create a new list without the removed target and
replace the source widget's list, keeping the ongoing drag's list
unaffected.

Also kept all the GIMP_LOG() stuff I added during debugging there, it
turned out to be quite useful.
2014-02-15 21:29:36 +01:00
Michael Natterer
aabd64e070 Bug 722400 - GIMP segfaults when trying to save a modified, newly created image
If for whatever reason making an uri from the documents folder fails,
return the uri of the home directory.
2014-02-08 10:18:29 +01:00
Michael Natterer
7385e030dd app, libgimp: add increment parameters to gimp_prop_widget_set_factor()
Step and page increments can't be reasonable calculated or guessed
based on the GUI widget's factor, so pass them each time we call
set_factor(). This change reintroduces sane ranges for the levels tool
for != u8 images again.
2014-02-03 22:57:51 +01:00
Michael Natterer
7fca15c27d Bug 722975 - crash when removing tag from palette while filtering by same tag
Each of the following cleans up tag refcounting, fixes access to
released memory, or other small glitches. Not sure which change
actually fixed the bug:

gimp_data_remove_tag(): remove the found tag, not the passed in tag
(which is to be treated only as a value for comparison).

gimp_tagged_remove_tag(): don't continue the loop after the tag to
remove has been found, there can only be one matching tag, and the
list element has become invalid.

gimptagentry.c: keep references around for the members of
entry->common_tags, and make sure the references are always dropped
properly. In assign_tags(), reference the "add" and "remove" lists for
paranoia and safety reasons.
2014-01-26 21:03:28 +01:00
Michael Natterer
84c132addc Bug 721553 - License text contains obsolete FSF postal address
These files were forgotten when changing license from GPL2 to GPL3.
2014-01-05 14:25:46 +01:00
Michael Natterer
262d312dfc app: make GimpCurveView's cursor label look pretty for 0..100 ranges
and generally clean up the cursor label code a bit.
2013-12-26 16:33:59 +01:00
Michael Natterer
0e1978d273 Bug 719634 - Palette editor not working for New Palettes (cannot drop colors)
Allow to drop colors also on the palette view's parent viewport, so
colors can be dropped everywhere inside the scrolled window, also when
the palette view is invisible because it has zero colors. Also allow
dropping of palettes on the viewport to change the editor's active
palette.
2013-12-01 18:04:51 +01:00
Michael Natterer
2eb74becb8 app: add G_GNUC_PRINTF() to places where the args are a va_list
The trick is to use G_GNUC_PRINTF (n, 0).
2013-11-29 00:33:05 +01:00
Michael Natterer
174dee3427 Bug 525705 - skip thumbnailing entirely on files with insufficient...
...read permissions

Apply modified patch from Sven Neumann which implements just that.
2013-11-23 18:05:55 +01:00
Jehan
4b14ed2e5e file-export* labels and actions renamed.
Follows updated save+export specification.
For renamed actions (file-export and file-export-to respectively to
file-export-as and file-export to mimick file-save*), menurc from
GIMP 2.8 will be correctly migrated.
2013-11-18 09:07:32 +13:00
Michael Natterer
65066ff46b app: add gimp_get_primary_accelerator_mask() to gimpwidgets-utils 2013-11-08 10:00:20 +01:00
Nils Philippsen
391de600f1 app: don't ignore return value
...of gtk_widget_translate_coordinates()
2013-11-07 12:28:28 +01:00
Michael Natterer
78ad0327da app: add new accessor gimp_container_tree_view_get_name_cell() 2013-11-07 11:32:23 +01:00
Michael Natterer
fbfaa960e1 Bug 705797 - Empty right panel cannot be completely closed
Reduce the minimum width of the "You can drop foo here" label to one
pixel, so it can be hidden as completely as possible while keeping the
label visible.
2013-11-03 16:04:58 +01:00
Michael Natterer
aea161c9a5 app: also include <gegl.h> when we include "libgimpwidgets/gimpwidgets.h" 2013-11-01 22:28:18 +01:00
Jehan
c15f9799c1 app: tabs position saved in sessionrc and only 1 HELP-ID is enough.
The settings was saved both in sessionrc and gimprc!
2013-10-12 04:30:30 +13:00
Jehan
b2e40c4ca7 Bug 667169 - Single window mode: allow tabs position setting. 2013-10-11 23:16:29 +13:00
Alexandre Prokoudine
7be0e1c747 Fix syntaxis in user-visible messages
Phrases starting with "When enabled" should have a comma.
2013-10-11 06:32:04 +04:00
Jehan
3e082b356c Bug 681709 - GimpContainer continuously scrolls on dnd failure on Windows.
The scroll timeout is looping forever if the drag ends by a failure
event. For instance when hitting the Esc button during scrolling.
2013-10-02 21:18:10 +13:00
Michael Natterer
462f61794e app: fix drawing of the empty canvas wilber 2013-09-28 18:00:31 +02:00
Michael Natterer
86b13ae8c4 app: handle changing buffers in GimpPickableButton
by emitting "notify::pickable" when the pickable's buffer changes, or
setting the pickable to NULL when its buffer disappears.
2013-09-15 20:03:31 +02:00
Michael Natterer
4e2868986a app: add new widget GimpPickableButton
Totally WIP and later supposed to give simple access to all sorts of
things that can provide a GeglBuffer via the GimpPickable
interface. Currently only dropping of drawables and images is
supported.
2013-09-15 00:30:14 +02:00
Jehan
c7aa623a55 app: clean out a big bunch of leading tabs.
For some unknown reason, most calls to gimp_message_literal() were
indented with tabs.
2013-09-15 04:59:20 +12:00
Jehan
338e0ddf8d Bug 707255 - Open preferences when quitting causes assertion failure
When removing the container of a GimpContainerView,
gimp_container_view_remove_container() must be the last call. It was
causing a `GIMP_IS_CONTAINER (container)' failure in subsequent
gimp_container_get_children_type().
For good practice, unsetting a container works now the exact reversed
order as the setting of a container.
2013-09-05 23:41:23 +12:00
Jehan
04a3c65aa1 Bug 707255 - Open preferences when quitting causes assertion failure.
Wrong order of destruction functions were causing critical warnings on
g_signal_handlers_disconnect_by_func() calls.
Also g_object_ref/unref() the container because the tree handler might
hold the last ref to the container, once it's disconnected the container
could be gone.
2013-09-05 23:23:24 +12:00
Michael Natterer
55a70729ae app: add some function stubs to GimpOverlayDialog
and move the TODO comments from GimpToolGui to the stubs.
2013-08-03 02:32:02 +02:00
Jehan
f0b3c76c9d app - fix crash of the language parser on OSX.
Stupid bug. I misused the GINT_TO_POINTER macro.
2013-07-29 02:12:17 +12:00
Michael Natterer
013c9d337b Bug 704896 - pop ups are annoying when opening multiple files from...
the command line on some platforms/window managers

Don't let the progress windows steal the focus, and always center
them.
2013-07-28 02:50:33 +02:00
Jehan
a129f84c68 Bug 704592 - only load language lists once at gui startup.
Improvements:
- setenv/getenv() are not thread-safe, hence they should be run only at
startup before any threading occurs.
- it is counter-productive to load the huge ISO-639 XML file each time
the user opens the Preferences dialog or the text tool options.
2013-07-28 04:46:52 +12:00
Michael Henning
175835fa2f app: #include <locale.h> where setlocale () is used. 2013-07-21 21:12:41 -04:00
Jehan
0e93e181a2 app: locales without ISO-639-1 codes should not be ignored
Some languages have no 2-letter ISO-639-1. This is the case in particular
for 3 languages we have translations for: ast (Asturian), csb (Kashubian)
and nds (Low German), which have only 3-letter ISO-639-2/3 codes.
They were not visible in the list of languages in the Preferences dialog
until now.
2013-07-20 15:08:49 +09:00
Jehan
2370670396 Bug 704510 - GIMP segfaults on OSX.
Forgot a setenv() with possible a NULL value.
2013-07-19 20:49:40 +09:00
Jehan
aa67bec9f0 Bug 704510 - GIMP segfaults on OSX.
setenv() does not behave well on some systems, in particular OSX (and
probably some BSDs), when the set value is NULL. In this case, let's
unsetenv() the environment variable instead.
2013-07-19 11:39:50 +09:00
Michael Natterer
37372555e5 Bug 704118 - crash on invalid number of PLTE entries
Make sure an indexed image always has a colormap. This was the case
before, except one could set a NULL colormap via the PDB.

Add gimp_image_unset_colormap(), and make gimp_image_set_colormap()
never set the colormap to NULL, even if NULL is passed. Change the
only places where actual unsetting makes sense to use unset().

Make some GUI places deal gracefully with palettes/colormaps with zero
entries.
2013-07-14 22:25:44 +02:00
Michael Natterer
a2334b0b15 Bug 703692 - Unable to Resize Large Left Dock Area
Small fix for the last commit: set a silly small initial size request
on the wrap_box so it doesn't initially request too much and breaks
dock layout deserialization.
2013-07-14 13:27:57 +02:00
Michael Natterer
6a5e37b68d Bug 703692 - Unable to Resize Large Left Dock Area
gimp_container_grid_view_viewport_resized(): set the wrap_box'
required width to just one cell_width, not cell_width * columns. This
way it can shrink also when attached to a toolbox dock. It remains
unclear why it could nicely shrink in all other dock columns.
2013-07-13 18:50:55 +02:00
Jehan
fc873cd6c3 Bug 576910: Show 'Language' setting languages in native language
Showing the current system locale between square brackets in the
"System Language" item was causing some issues on some systems (showing
some very weird and long value).
This was mostly a cosmetic change anyway with limited gain. Let's
just get rid of it. The main part of the feature (each language
displayed in itself) is still there.
2013-07-05 23:38:10 +09:00
Jehan
4eecd9b4ac Bug 576910: small fix on "Show 'Language' setting languages in native language"
glib's g_getenv() doc says: "The returned string may be overwritten by
the next call to g_getenv(), g_setenv() or g_unsetenv()". And I do
g_setenv() calls just after, while I wish to keep the value intact.

As a consequence, even though the previous commit seemed to work just fine,
I duplicate the return value of g_getenv(), just to be on the safe side.
2013-07-03 20:38:42 +09:00
Jehan
f6dcde1ee6 Bug 576910: Show 'Language' setting languages in native language
The trick works by temporarily resetting the current locale to localize
each language label in its own lang.
One exception is English that is equivalent to the "C" code, and we make
also some special exception for Chinese where there are very different
variant depending on the region.
I also ensure the "System Language" string is translated in whatever
language is the system actually set to.
2013-07-03 20:02:45 +09:00
Michael Natterer
b52beecc87 app: port GimpImagePropView's file size querying to GIO 2013-06-25 19:08:12 +02:00
Michael Natterer
caf73f5f35 Add support for both gamma-corrected and linear for all bit depths
- Add new enum GimpComponentType which contains u8, u16, u32 etc.
- Change GimpPrecision to be u8-linear, u8-gamma, u16-linear etc.
- Add all the needed formats to gimp-babl.c
- Bump the XCF version to 5 and make sure version 4 with the old
  GimpPrecision enum values is loaded correctly

This change blows up the precision enums in "New Image" and
Image->Precision so we can test all this stuff. It is undecided what
format will be user-visible options in 2.10.
2013-06-23 16:51:24 +02:00
Michael Natterer
94ec249e1e app: initialize variable in gimp_histogram_view_update_bins() 2013-06-18 00:10:57 +02:00
Michael Natterer
6280e4933a app: add gimp_handle_bar_connect_events()
to replace 3 completely ugly signal connections, repeated in 4 places.
2013-06-17 22:13:48 +02:00
Mikael Magnusson
cfd360aa03 app: g_return_if_fail (shell_selection) on the public API in gimpdisplayshell-selection.c, move free null check to gimpdisplayshell's dispose() 2013-06-16 20:21:32 +02:00
Mikael Magnusson
8115467b65 app: ! has higher precedence than ==, use != instead
Found by coverity
2013-06-16 01:34:23 +02:00
Mikael Magnusson
0091645129 app: remove pointless NULL checks 2013-06-16 01:31:13 +02:00
Michael Natterer
0a73a787ba app: remove GimpSpinScale's "factor" API again
The method of replacing the spinbutton's adjustment was just waiting
for some future bugs to appear.
2013-06-15 20:53:37 +02:00
Michael Natterer
3fb16c8849 app: GimpHistogramView: fix display when the number of bins changes
Also look at "bg_histogram", but only if "histogram" is not set. Fixes
curves tool display after changing image precision.
2013-06-15 20:29:42 +02:00
Michael Natterer
731360a8f7 app: add gimp_prop_widget_set_factor()
which allows adjustment-based prop widgets to display the property
value multiplied by factor. Remove gimp_prop_opacity_spin_scale_new()
because that's simply a factor of 100.0.
2013-06-15 01:28:54 +02:00
Michael Natterer
0046f0eed6 app: fix gimp_spin_scale_set_factor() to not break if called more than once 2013-06-14 02:22:57 +02:00
Michael Natterer
edca08e1c2 app: fix rendering glitches on changing the axis ranges in GimpCurveView
and honor the x-axis range when displaying the set "xpos".
2013-06-13 00:22:20 +02:00
Michael Natterer
945e57af1d app: GimpHistogramBox: map the range to 0..1 for != 8 bit histograms 2013-06-12 11:18:07 +02:00
Michael Natterer
9ba866dc38 app: a drawing off-by-one was corrected wrongly in GimpHandleBar
Wasn't noticable before because we didn't have handle bars
in the range of 0..1.
2013-06-12 11:16:33 +02:00
Michael Natterer
571350270b app: return 0.0..1.0 from gimp_histogram_get_mean(), median(), std_dev()
Display the float values in the histogram dockable and add a compat
hack to the gimp_histogram() PDB wrapper.
2013-06-12 02:01:24 +02:00
Michael Natterer
6c97908a9e app: add "gboolean gamma_corrected" to gimp_histogram_new()
so we can make histograms of the gamma-corrected image data. Pass
TRUE all over the place so the histogram works perceptually. This
needs more thinking...
2013-06-12 01:02:25 +02:00
Michael Natterer
96d1a9392e app: gimp_histogram_editor_info_update(): use the real number of bins
for displaying histogram info, not always 255.
2013-06-12 01:01:39 +02:00
Michael Natterer
d26cd268ba app: start using the new histogram property notifications in the widgets
This is only WIP, but it at least updates the selected range correctly
when the image precision changes.
2013-06-11 22:36:33 +02:00
Michael Natterer
a7f42de4c0 app: turn GimpHistorgram into a GimpObject, no other changes 2013-06-11 21:23:32 +02:00
Michael Natterer
88a971f6c9 app: port GimpHistogramView drawing to a flexible amount of bins 2013-06-11 08:48:25 +02:00
Michael Natterer
48d611b5c2 app: don't overallocate, a double is 64 bits not 64 bytes :) 2013-06-10 01:12:06 +02:00
Michael Natterer
a1e7591351 app: show the real pixel values in GimpColorFrame's "Pixel" mode
Rewrite gimp_color_frame_update() to use gimp_babl_print_pixel()
2013-06-10 00:30:18 +02:00
Michael Natterer
d2b254c4dc app: use GimpIntComboBox' label in generated GEGL op GUIs
Makes the property widget table less noisy.
2013-06-08 22:01:24 +02:00
Michael Natterer
ec786816bb */Makefile.am: merge INCLUDES into AM_CPPFLAGS
automake-1.13 finally warns about this anachronism.
2013-06-05 20:48:37 +02:00
Michael Natterer
7dcf5e9b04 app: make viewable boxes (preview+entry in tool options) more shrinkable
Additionally, change gradient viewable boxes to be narrower by
default.
2013-06-04 10:19:54 +02:00
Michael Natterer
38e9c79d1e app: experimental: use the new coordinate picking in property tables
If we add a chain button to link x/y or width/height properties, also
add a coordinate pick button for these properties. This looks totally
ugly and is broken for most cases where it happens, but it works
nicely for e.g. gegl:fractal-explorer or gegl:grid. This clearly needs
some metadata for operation properties to be useful.
2013-05-30 23:36:39 +02:00
Michael Natterer
033d4ad58a app: typo in gimp_prop_table_new()'s prototype: fnc -> func 2013-05-30 23:31:17 +02:00
Michael Natterer
73d7c28f76 app: add dedicated source files for gimp_prop_table_new() 2013-05-30 16:33:30 +02:00
Michael Natterer
766c4a026c app: add an optional "factor" to GimpSpinScale
which allows to display a value different from the original
adjustment's value.

This is sortof a hack but insanely useful to map normalized config
values to a nicer range (e.g. 0.0 -> 1.0 to 0 ->100).
2013-05-28 23:45:45 +02:00
Michael Natterer
bf3a1c89ef app: GimpSpinScale: the "none" keyval is GDK_KEY_VoidSymbol. not 0 2013-05-28 23:13:13 +02:00
Michael Natterer
4c0169aaaf app: add mnemonic support for GimpSpinScale's label 2013-05-28 22:46:22 +02:00
Michael Natterer
6940c00774 app: add gimp_spin_scale_set_label() and get_label() 2013-05-28 15:29:44 +02:00
Michael Natterer
fb6239320e app: reorder functions in GimpSpinScale so getter and setter are together 2013-05-28 15:19:04 +02:00
Michael Natterer
308431f7b6 Bug 701053 - Opening jpg files from Canon camera displays...
...PNG Description encoding error.

Don't unconditionally display all error messages from thumbnail saving.
Instead, return the error from gimp_imagefile_create_thumbnai()
and gimp_imagefile_save_thumbnail() and display it only if thumbnail
creation was the actual user-intended action (like clicking the preview
in a file dialog). Do not display the error when thumbnailing is just
a side effect of loading/saving an image.
2013-05-26 21:31:06 +02:00
Michael Muré
d6ed13ef6c GimpWarpTool: skeleton of the tool, with options 2013-05-21 23:28:40 +02:00
Michael Natterer
74b134d75b app: use the GEGL properties' ui_min and ui_max for step calculation 2013-05-19 23:23:32 +02:00
Michael Natterer
acf917fbb8 Bug 699278 - "GEGL Operation" parameter arrows should be more adapted
to the span of the parameter

Set step_size to 0.1 and page_size to 1.0 for floating point sliders
with a value range of < 10.0.
2013-05-19 19:05:25 +02:00
Michael Natterer
e1bfc0a362 Bug 688537 - Toolbox occasionally has spaces or tool names after the icons
Explicitly set the toolbox' style to GTK_TOOLBAR_ICONS to protect it
from user toolbar preferences.
2013-05-17 14:42:43 +02:00
Jehan
53d2059bd8 Bug 417704: font name for missing font is given in the font entry's help message.
When a font is missing, the name of the expected font will be displayed in the
help message through the text style editor with an explanatory message.
2013-05-17 20:59:46 +09:00
Barak Itkin
5fa0df17dd Add a skeleton for the seamless clone tool, based on the cage tool 2013-05-15 00:25:30 +02:00
Michael Natterer
ce8ae69440 Bug 695687 - GimpSpinScale's label is unreadable on dark themes
Draw the label like GtkEntry draws its text: with different colors
inside and outside the progress bar.
2013-05-14 02:00:20 +02:00
Jehan
64fe3af1a9 app: GimpContainerEntry's text is red when not a valid item.
If the selected item in a GimpContainerEntry is invalid, or else when the entry
is being updated, the text shows in red.
2013-04-29 08:45:41 +09:00
Michael Natterer
e19c7eb36c app: fix various artifacts of the cancas' overlay children
gimp_overlay_child_size_allocate(): invalidate the old and new
position of the child, and simplify the code by calling our own
invalidate() function instead of duplicating its code.

gimp_overlay_child_expose(): process pending updates on the overlay
child's offscreen window before getting its pixmap.
2013-04-28 04:05:52 +02:00
Michael Natterer
244439f35e app: some more precondition checks in gimpoverlaychild.c 2013-04-27 00:23:04 +02:00
Michael Natterer
24d150f537 app: handle canvas overlays better in gimp_window_key_press_event()
forward events first not only if a GimpCanvas has the focus, but also
it one of its children has.
2013-04-25 23:53:39 +02:00
Michael Natterer
bacc9c9635 Bug 688348 - Layer tab and Images tab: not updated on dropping...
...one image onto another

gimp_dock_window_display_changed(): make sure the "auto-follow-active"
logic works both ways: when the active image or display is changed in
a dockable, update the global context. Fixes multi-window mode.

gimp_context_real_set_display(): make sure a context's display and
image are always in a consistent state and never have a display that
is not display->image: when display is the same as context->display,
check that the context's image matches display->image, so that after a
gimp_context_set_display(), the context is consistent in all
cases. Fixes single-window mode.
2013-04-23 21:05:33 +02:00
Michael Natterer
076f375e78 app: make gimp_dock_window_constructed() more readable
by adding a local "factory_context" variable instead of calling
gimp_dialog_factory_get_context (dock_window->p->dialog_factory)
multiple times.
2013-04-23 21:05:33 +02:00
Massimo Valentini
65800af41d Bug 698426: ALL text disappears when changing font ...
of selected text in on-canvas editor

It is necessary to escape font names containing '&'
2013-04-21 18:00:12 +02:00
Michael Natterer
804313bbec Bug 694417 - GIMP Segmentation Faults (Segfault, Crash) after Changing Color...
Don't pass a NULL pointer to gimp_text_buffer_get_font_tag() because
it is dereferenced in a call to strcmp().

gimp_context_get_font_name() returns NULL when the selected text
includes spans with different fonts. Add the same special handling for
spans with inconsistent sizes too, and add comments that we should
have the same for the color.

Original patch from Massimo Valentini.
2013-04-21 17:51:08 +02:00
Michael Natterer
977a194923 app: add a rotate dialog to rotate to exact degrees 2013-04-20 23:22:14 +02:00
Michael Natterer
1a755b2dbe app: add a View -> Rotate menu
Which so far has "Reset", "90°", "-90°" and "180°" entries.
2013-04-20 22:16:50 +02:00
Michael Natterer
296284fe38 app: rotate cursors that indicate a direction with the view
- reorder enum GimpCursorType to be in angular order
- add gimp_cursor_rotate(cursor_type, angle)
- rotate the shell's cursors automatically in the setter
2013-04-20 17:21:01 +02:00
Nils Philippsen
b109e05806 app: let the tag popup own its tag objects
This should fix crashes in which tag objects got accessed after they
were disposed, because they still were stored with the popup object.
2013-04-16 11:16:41 +02:00
Michael Natterer
754e4eb919 app: allow to pass NULL to gimp_window_set_primary_focus_widget() 2013-04-10 19:28:49 +02:00
Michael Natterer
5880685472 Bug 675549 - image region does not have focus unless clicked on
We cannot simply randomy move the focus from e.g. a text entry back to
the canvas. Instead introduce global handling of "Escape" and a
"primary_focus_widget" that is always set the the image window's
active canvas. When Escape is pressed, move the focus to that primary
focus widget, or beep if it is already there. Text widgets still get
the key events before that logic and can consume the Escape.
2013-04-09 15:41:20 +02:00
Michael Natterer
236f9f91f9 Fix two warnings about possibly missing printf format attributes 2013-04-07 16:47:26 +02:00
Michael Natterer
ed2849cd52 Bug 696240 - Changing Gradient From Script-Fu Drop Down Causes GIMP to Crash
gimp_gradient_select_run_callback(): Don't free the color values array
twice.
2013-03-21 01:50:32 +01:00
Michael Natterer
b941986bbb app: GimpBrushEditor: fix display of spacing for normal brushes
it was doing *all* the UI settings only for generated brushes.
2013-03-14 22:52:34 +01:00
Michael Natterer
d837a6d7df app: fixed paned packing in GimpDeviceEditor
so the widgets don't become smaller than their requisition.
2013-03-13 22:06:42 +01:00
Michael Natterer
bc190a6bab Bug 397359 - Can't access color management parameters
Create all display filters with "color-config" and "color-managed"
parameters set, not only the automatically added color management
display filter. This way we don't only support removing and adding the
filter again, but also support potential other color management
modules.
2013-03-13 10:37:25 +01:00
Michael Natterer
792f85461b app: use gimp_button_menu_position() in GimpIconPicker
and some small cleanup.
2013-03-10 22:33:45 +01:00
Michael Natterer
49fdaac07f app: add GimpPrefsBox, a helper widget for preferences and similar dialogs
and use it in the preferences dialog. Removes quite some code from
that insane file.
2013-03-10 19:49:59 +01:00
Michael Natterer
c0c813d9f1 app: minor formatting cleanup in gimppropwidgets 2013-03-10 19:48:32 +01:00
Michael Natterer
e17971cc38 app: some formatting and translatable strings cleanup in GimpIconPicker 2013-03-10 19:46:20 +01:00
Daniel Sabo
2614404764 Add support for custom icons for tool presets
Adds an icon-pixbuf property to GimpViewable that is used for a default
implementation of new_pixbuf.

Extend gimp_icon_picker to allow the user to pick non-stock icons for tool
presets (or any other class derived from GimpViewable). Icons can come
from any file GdkPixbuf can load or from image data on the clipboard.
2013-03-08 08:19:54 -08:00
Michael Natterer
6f5b4ad1f4 Bug 694026 - "Button Bar" state not retained on brushes and dynamics editor
gimp_docked_iface_get_aux_info(): always save the button bar state,
not only if it is "false" because we cannot know the default value any
longer (the button bar visibility used to always default to "true", so
saving only a non-default "false" was fine).
2013-02-17 16:46:40 +01:00
Ville Skyttä
6b0d1038cc Bug 692641 - Various spelling fixes 2013-01-27 18:59:02 +01:00
Michael Natterer
7e273bc6d0 Bug 686929 - Newly created toolbox is too tall and too narrow
Set the dock window's geometry hints after the tool palette's style is
known, not after the toolbox' style is known, so we get the right tool
button dimensions for minimum size and size increments.
2013-01-17 19:37:03 +01:00
Michael Natterer
2fc0c768f1 app: don't leak references in gimp_session_info_restore_docks()
This should fix quite a bunch of memory leaks.
2013-01-14 01:36:08 +01:00
Michael Henning
4d36a1fdf8 app: fix memory leak in widgets/gimpgradientselect.c
Found using clang's scan-build.
2013-01-10 17:22:27 -05:00
Michael Natterer
454639f9d9 Bug 689087 - Drag-and-drop foo.jpg behaves different from 'gimp foo.jpg'...
Prefer text/uri-list over image/* to make dropping from file managers
always behave like opening the image directly.
2013-01-09 00:28:30 +01:00
Michael Natterer
af7916b3e6 Bug 689403 - GIMP saves files in strange directories when started from an...
If one single directory is passed on the command line, use it
as default folder for the open/save dialogs.
2012-12-15 00:36:19 +01:00
Michael Natterer
99ed568543 app: add parentheses to clarify things 2012-12-14 09:40:52 +01:00
Jehan
20c86f821d Bug 689523: data bootstrap initial values in the text style editor at construction.
This was causing first a visual issue where the style editor UI would
show no default font/size/style at instanciation, but even a crash
when the user would change the font size or style (bold, italic...)
from this UI before selecting a font or writing a text.
2012-12-12 12:36:24 +09:00
Michael Natterer
54618228e3 Bug 689572 - F1 appears remappable but isn't
Make any shortcut involving F1 unchangable in the shortcut editor.
2012-12-06 01:20:07 +01:00
Michael Natterer
d8a9804702 app: support GeglParamSpecSeed in generated operation UI
and add a "New Seed" button next to the random seed entry.
2012-11-30 02:58:48 +01:00
Jehan
5c6c55e50a Bug 685557 - fix closing and saving a new image.
Current implementation had 2 issues, fixed by this commit:
1/ after the file save dialog is closed, the image would not close.
2/ if you switched the visible tab before saving the new image, it
would save and close the visible tab, instead of the expected one.
2012-11-27 23:57:24 +09:00
Michael Natterer
4e340b613b Bug 688715 - Unconfigured eraser should be set to eraser tool
I don't know what I tested before, but it didn't work. This patch does
the magic in two places, one of which I missed.
2012-11-23 01:17:52 +01:00
Michael Natterer
512fbcbbb2 Bug 688715 - Unconfigured eraser should be set to eraser tool
If a device has no saved settings, and it is a GDK_SOURCE_ERASER, set
it to the eraser tool.
2012-11-22 23:43:41 +01:00
Michael Natterer
85a099f988 Bug 688305 - drag and drop for guides broken if 'gtk-enable-tooltips = 0' is set
Fix GimpSpinScale too: add the needed events ourselves, and handle
motion hints (which the parent classes add) in motion().
2012-11-18 20:02:51 +01:00
Michael Natterer
908f727f0a Chain up unconditionally in GObject::constructed()
It's supported since GLib 2.28.
2012-11-12 21:51:22 +01:00
Michael Natterer
3ef2baea67 Bug 676940 - Group children prevent droping layer at bottom of stack
...and don't forget to return the drop_path from
gimp_container_tree_view_drop_status().
2012-11-12 01:29:22 +01:00
Michael Natterer
05e12b88bc Bug 676940 - Group children prevent droping layer at bottom of stack
Treat dropping on the empty space at the bottom like dropping after
the last toplevel item.
2012-11-12 01:24:58 +01:00
Michael Natterer
f71afd245f app: remove redundant code from the last commit 2012-11-10 00:07:23 +01:00
Michael Natterer
abd2e78bdf Bug 683011 - Text tool discards text attributes in the on-canvas dialog...
When font, size or color were changed, set the text buffer's current
insert_tags just as we already do for the bold, italic etc. toggle
buttons.  Changed gimp_text_style_editor_list_tags() to also return
the tags for font, size or color.
2012-11-09 23:06:45 +01:00
Michael Natterer
d4933b3052 Bug 674160 - Redesign of "Lock panel"
Apply and heavily modify patch from remyDev which adds "lock position"
to GimpItem, similar to "lock content". Lock position disables all
sorts of translation and transform, from the GUI and the PDB.

Cleaned up some aspects of the lock content code as well because a
second instance of similar code always shows what went wrong the first
time.
2012-11-09 11:17:25 +01:00
Michael Natterer
e746fa51da app: make GimpContainerEntry robust against reordered parent class destruction
So it will not warn on GTK+ 3.x. One less patch to do in gtk3-port.
2012-11-05 19:56:40 +01:00
Michael Natterer
819ad3b4d9 app: use g_object_bind_property() to set widget visibility
instead of connecting to "notify::boolean-property" of something just
to set "widget::visible" in the callback.
2012-10-31 23:17:47 +01:00
Michael Natterer
90608d3a22 Bug 687256 - Please explain the terms wheel, curve, axis
Add translator comments to GimpDeviceInfoEditor.
2012-10-31 21:14:26 +01:00
Michael Natterer
9efda84818 app: add a translator comment for _("%s Message") 2012-10-31 16:07:33 +01:00
Michael Natterer
99dfc5930f Bug 687070 - Modifier+Space doesn't work as shortcut
Don't allow to assign Modifier+Space shortcuts, there is so much code
dealing with Space in canvas event handling, we can't have it invoke
arbitrary actions at the same time.
2012-10-28 23:33:31 +01:00
Michael Natterer
74bc070147 Bug 635303 - Can't attach a dialog at the bottom of a minimized toolbox
Ensure a minimum size of the drop area and make sure it stays visible
at the bottom of a minimized toolbox. This wastes a few pixels at the
bottom of a toolbox that contains no dockables.
2012-10-07 19:49:33 +02:00
Michael Natterer
2231f189fe app: use gimp_data_factory_get_data_type() in the data widgets
and make gimp_data_factory_view_constructed() more readable.
2012-10-07 00:17:48 +02:00
Michael Natterer
aa6151d1af Bug 684945 - Export can incorrectly default to changing format...
Fix default export extension to be as specified:

1. last export of this image
2. imported extension
3. last export of any image
4. png

2 and 3 were reversed in the code.
2012-10-02 23:07:11 +02:00
Michael Natterer
9d42df5fa2 app: don't crash when a color profile has no information 2012-09-25 20:56:54 +02:00
Michael Natterer
0ca03e8827 app: add a "Convert Precision" dialog for choosing dithering options
Does absolutely nothing yet.
2012-09-23 23:47:28 +02:00
Kevin Cozens
a2e037fb00 Corrected spelling errors spotted by Ari Pollak (Mostly fixes bug #683694)
Still need to address the "allows to" grammatical error.
2012-09-10 12:22:12 -04:00
Michael Natterer
c7b9728cc8 app: make handling of coordinates more robust against broken input drivers
Initialize the axes[] array with zeros and change pressure curve
mapping to not try to "interpolate" shit like NaN and crash.
2012-09-05 11:36:44 +02:00
Michael Natterer
14f6d5ee44 Bug 681699 - Inapplicable files are listed with 'All images' filter...
In order the fix the obvious confusion, add another file filter which
contains all the types that are savable with the dialog, name it
either "All XCF images" or "All export images", and make it the
default filter.
2012-09-02 23:22:21 +02:00
Michael Natterer
2fb7771035 app: simplify and clean up gimpcursor.c 2012-08-27 13:29:18 +02:00
Michael Natterer
85b1f16004 app,cursors: add side and corner cursors in 45° steps
So sides also for corners and corners also for sides, just to
confuse the reader.
2012-08-26 23:59:05 +02:00
Michael Natterer
c6ba0ffbdf app/cursors/libgimpwidgets: bye bye stone age B&W bitmap cursors 2012-08-26 22:53:04 +02:00
Mikael Magnusson
3e4f66c968 app: remove GIMP_TOOL_CURSOR_UNIFIED_TRANSFORM from GimpToolCursorType
It just made all tool cursors after it wrong since i never made an icon
2012-08-20 20:28:23 +02:00
Mikael Magnusson
99f9d4d219 transformtool: add old "new" unified transformation tool
This is the proof of concept code I wrote before gsoc, with very naive
behaviour and simple interface.
2012-08-20 15:22:21 +02:00
Michael Natterer
573faa39b0 Bug 669795 - Toolbox can't be shrinked to 1 or 2 columns
Reduce the requested width of the "You can drop foo here" label to 16
pixels, which makes is look a bit crappy, but at least the toolbox
becomes shrinkable to < 3 columns. Whoever keeps this empty space
around without using it shall henceforth be punished by having to see
that distorted and misplaced label.
2012-07-30 18:04:27 +02:00
Michael Henning
e060da8278 Bug 680795 - GIMP segfaults in gimp_clipboard_set_buffer when...
Fix segfault in gimp_clipboard_set_buffer when n_target_entries is 0.
2012-07-30 16:43:37 +02:00
Michael Natterer
decc03ae04 Bug 677987 - Don't allow to assign keybindings with arrow keys...
Disable assigning arrow-key bindings in gimpactionview.c
2012-07-26 18:33:05 +02:00
Michael Natterer
4fbf01baef app: get the help_id from the right action in gimp_editor_add_action_button() 2012-06-12 22:51:32 +02:00
Michael Natterer
67b5a509b6 Bug 677823 - Shift + mouse click to link all layers does not work
This got lost during layer group porting, reimplement it, but restrict
"all layers" to the clicked layer's branch in the tree.
2012-06-12 21:39:40 +02:00
Michael Natterer
63ff0fc77b app: set GimpHandleBar's lower and upper bounds in the adjustment callback
so it keeps working correctly when the adjustments get reconfigured.
2012-06-07 21:41:40 +02:00
Massimo Valentini
2667c2a34d app: remove a weak ptr when the object lives longer than the ptr
Closing the display filter editor with a filter selected
in the listview on the right, used to produce (quitting GIMP):

==32359== Invalid write of size 8
==32359==    at 0x8808DF5: g_nullify_pointer (glib/glib/gutils.c:2099)
==32359==    by 0x8358781: weak_refs_notify (glib/gobject/gobject.c:2469)
==32359==    by 0x4C3730A: gimp_color_display_dispose (gimp-2-8/libgimpwidgets/gimpcolordisplay.c:197)
==32359==    by 0x83596A7: g_object_unref (glib/gobject/gobject.c:2986)
==32359==    by 0x4C37EFA: gimp_color_display_stack_dispose (gimp-2-8/libgimpwidgets/gimpcolordisplaystack.c:150)
==32359==    by 0x83596A7: g_object_unref (glib/gobject/gobject.c:2986)
==32359==    by 0x53F1C3: gimp_display_shell_filter_set (gimp-2-8/app/display/gimpdisplayshell-filter.c:58)
==32359==    by 0x536A50: gimp_display_shell_dispose (gimp-2-8/app/display/gimpdisplayshell.c:765)
2012-06-04 19:32:31 +02:00
Michael Natterer
92a3944442 Bug 676821 - No drag layers in "window layers", after commit...
Remove the button_release handler again, setting dnd_widget to NULL on
container change is enough to fix the crash I've seen, I added the
other handler just out of paranoia and apparently didn't test it.
2012-05-25 21:25:29 +02:00
Michael Natterer
27a767ee54 app: set GimpContainerTreeView->dnd_renderer to NULL more reliably
specifically in button_release() and when the container changes, we
can badly crash in some situations otherwise.
2012-05-22 12:58:10 +02:00
Michael Natterer
076b5fa93a app: changed include guards to not clash with libgimpcolor/gimppixbuf.h 2012-05-22 02:17:11 +02:00
Michael Natterer
c0351f0706 app: connect x/y and width/height properties of GEGL ops with chain buttons
Add (too) simple heuristic that connects to subsequent numeric property
widgets with a chain button if their property names have the suffixes
"x" and "y", or "width" and "height".
2012-05-19 02:30:32 +02:00
Michael Natterer
39c18e9a48 app: make file_save() aware of the difference between overwrite and export
by having two booleans "export_backward" and "export_forward" in the
api instead of just an "export" one that would destroy the "imported
from" state. This change fixes the state of the "Overwrite" menu item,
so it stays visible until the file got either saved or exported to
another filename.

This also reverts commit a4beeecf2b, so
Ctrl-S is always invokable even if invisible.
2012-05-18 18:57:58 +02:00
Michael Natterer
ede421bd45 app: rename GimpBaseConfig to GimpGeglConfig
because that's its future purpose.
2012-05-14 22:57:58 +02:00
Michael Natterer
ab4c613a70 Bug 675994 - Opening image with a saved selection breaks histogram updating
In fact, it broke much more than that because the way XCF loading
replaced the image's mask prevented the image's "mask-changed" signal
from ever being emitted. Add private API gimp_image_take_mask() which
properly sets the mask and use it for image construction and the XCF
selection loading hack.
2012-05-14 01:44:41 +02:00
Michael Natterer
ffb559547c app: make the popup previews transient to their parent's toplevel
so they don't appear below the dock. Seems to happen on OSX only,
but is the right things to do on all platforms.
2012-05-10 19:43:48 +02:00
Michael Natterer
bd3f892f79 Bug 630173 - a dockable open from an existing one appears under it
Show the new dock with gtk_widget_show_now(), which waits until it's
mapped, then call gdk_window_raise() explicitly. How sick...
2012-05-09 00:21:22 +02:00
Michael Natterer
3545140ad8 app: make GimpContainerPopup transient to its parent toplevel
so it doesn't appear under the dock it's invoked from. Only
needed on OSX, but the right thing to do on all platforms.
2012-05-08 21:32:09 +02:00
Michael Natterer
20f3cba2b6 app: rename gimp_image_base_type() to gimp_image_get_base_type() 2012-05-07 21:57:33 +02:00
Øyvind Kolås
1319ad65ce update translations 2012-05-06 03:46:09 +02:00
Michael Natterer
30b4fe8510 app: fix UI tag matching to always work case-insensitively
Add gimp_tag_has_prefix() and use it in GimpTagEntry when completing
patrially entered tag names, and fix two uses of strcmp() in
GimpTagPopup to use gimp_tag_compare_with_string().
2012-05-05 18:58:04 +02:00
Michael Natterer
7610e299ae Use GimpValueArray and GimpParamSpecValueArray
instead of the deprecated stuff from GLib.
2012-05-04 00:51:50 +02:00
Michael Natterer
00b3a9c745 libgimpcolor: add Cairo <-> GEGL utility functions from app/ 2012-05-03 04:07:16 +02:00
Michael Natterer
3db9deed1c app: add color pickers to all GEGL tool color properties
The way to make gimp_prop_table_new() create tool pickers is
disgusting, but works.
2012-05-02 17:51:22 +02:00
Michael Natterer
ce33d2ed33 app: display the precision in the image properties dialog 2012-05-02 17:51:19 +02:00
Michael Natterer
1badcb7ce9 app: add GIMP_PRECISION_U32 and all its formats 2012-05-02 17:51:19 +02:00
Michael Natterer
2e7944cad0 app: add GIMP_PRECISION_HALF for 16 bit floating point
and use babl_format_get_palette() to simplify some code.
2012-05-02 17:51:18 +02:00
Michael Natterer
b4580e74e6 app: implement converting images between precisions, including menu items 2012-05-02 17:51:16 +02:00
Michael Natterer
2de801e1de app: enable the precision combo in GimpTemplateEditor 2012-05-02 17:51:14 +02:00
Michael Natterer
5e18004bff app: get rid of base-utils.[ch] and move its functions to gimp-utils.[ch] 2012-05-02 17:51:13 +02:00
Michael Natterer
1bbd3d40a8 app: make the GimpTempBuf struct private and add accessors 2012-05-02 17:51:12 +02:00
Michael Natterer
e285eb5daa app: hide GimpTemplateEditor's precision combo 2012-05-02 17:51:10 +02:00
Michael Natterer
d724aca1a3 app: add a precision combo to GimpTemplateEditor 2012-05-02 17:51:10 +02:00
Michael Natterer
4dee9fa672 app: rename GimpTemplate::image-type to ::base-type
but keep the "image-type" property name, it's stored in template files.
2012-05-02 17:51:09 +02:00
Michael Natterer
678255604d app: add a GimpPrecision enum that for now contains GIMP_PRECISION_U8
Add gimp_image_get_precision(), and a "precision" argument to
gimp_babl_format(). Change code accordingly and do some more format
related cleanups.
2012-05-02 17:51:09 +02:00
Michael Natterer
16635e5f0a app: gimp_drawable_preview_bytes() -> gimp_drawable_get_preview_format() 2012-05-02 17:51:08 +02:00
Michael Natterer
85bd6b0dd9 app: pass a format, not bpp, to gimp_viewable_get_dummy_pixbuf()
and add tons of <gegl.h> includes.
2012-05-02 17:51:08 +02:00
Michael Natterer
03da4fb280 app: make masks use linear, not gamma corrected formats 2012-05-02 17:51:08 +02:00
Michael Natterer
844a8a5ab7 app: more <gegl.h> includes 2012-05-02 17:51:04 +02:00
Michael Natterer
df5ab0f551 app: add gimp_histogram_clear_values() and use it
instead of abusing gimp_histogram_calculate() with a NULL region for
that purpose; calculate() is about to go away.
2012-05-02 17:51:04 +02:00
Michael Natterer
1bcab234ab app: explicitly pass around the offsets of the view renderer's temp_bufs
and don't use temp_buf->x and ->y.
2012-05-02 17:51:02 +02:00
Michael Natterer
b78d6c1d5d app: port preview rendering to GEGL/cairo
which gets rid of the render blend arrays in gimprender.[ch], and of
image preview demultiplication.
2012-05-02 17:51:02 +02:00
Michael Natterer
53cf2c657b app: move the GTK-free cairo utility functions to core/gimp-cairo.[ch] 2012-05-02 17:51:02 +02:00
Michael Natterer
bdf6b48138 app: move GimpTempBuf from base/ to core/
and forget about include policy in base/, it's scheduled for removal
anyway.
2012-05-02 17:51:01 +02:00
Michael Natterer
dccb909009 app: make GimpTempBuf reference counted
and remove the "take_ownership" parameter from
gimp_temp_buf_create_buffer(), simply always ref the buf.
2012-05-02 17:51:00 +02:00
Michael Natterer
d5d8e36d21 app: gimp_-namespace all GimpTempBuf functions 2012-05-02 17:51:00 +02:00
Michael Natterer
42a5f01be3 app: rename TempBuf to GimpTempBuf 2012-05-02 17:51:00 +02:00
Michael Natterer
7441a1f6f7 app: turn the TempBuf's "bytes" into "format" and port everything to it 2012-05-02 17:50:59 +02:00
Michael Natterer
ff86f85744 app: remove x, y and color parameters from temp_buf_new()
Fix the places that passed the color by either temp_buf_data_clear()
or memset(), and assign x and y manually, they are going to vanish
completely soon.
2012-05-02 17:50:58 +02:00
Michael Natterer
c14738806e app: use gimp_image_get_layer_format() instead of dealing with image_type 2012-05-02 17:50:57 +02:00
Michael Natterer
aa8e580381 app: make color buttons generated for GEGL tools continuously update the caller 2012-05-02 17:50:49 +02:00
Michael Natterer
96dbfc54b4 app: fix/enable continuous color updates in GimpColorPanel 2012-05-02 17:50:49 +02:00
Michael Natterer
f80b6a067a app: anal 2012-05-02 17:50:47 +02:00
Øyvind Kolås
8994acc6a8 app: handle negative fractions correctly in spinscale 2012-05-02 17:50:45 +02:00
Øyvind Kolås
d7e9c6b7fe app: git_spin_scale invoke value_changed when setting gamma 2012-05-02 17:50:44 +02:00
Øyvind Kolås
5666697362 app: initialize gamma of spin scale to 1.0 2012-05-02 17:50:44 +02:00
Øyvind Kolås
7181402a62 app: clean up warning in spinscale 2012-05-02 17:50:44 +02:00
Øyvind Kolås
b8e340b5bc app: update paramspec duplication with changes in gegl paramspecs 2012-05-02 17:50:44 +02:00
Øyvind Kolås
553b7c7c03 app: add configurable nonlinear mapping (gamma) to spinscale widget
The default value is 1.0 which is linear and the old behavior, values above
1.0 gives finer control in the lower portions of the range, the lower half of
the widget behaves like before doing small relative adjustments.
2012-05-02 17:50:44 +02:00
Øyvind Kolås
1cee8d79bf app: respect GEGLs ui-range hints for properties 2012-05-02 17:50:44 +02:00
Michael Natterer
3e119c5af7 libgimpcolor: add gimp_rgb[a]_set,get_pixel()
which converts from/to any pixel format using Babl. Added tons of
includes and CFLAGS now that libgimpcolor publically uses Babl.
2012-05-02 17:50:43 +02:00
Michael Natterer
28913496bb app: use a GimpSpinScale instead of a scale entry in the prop_table 2012-05-02 17:50:43 +02:00
Michael Natterer
867da8f293 app: add gimp_context_get_foreground,background_pixel()
which takes a Babl format to convert from/to.
Include <gegl.h> in a million places.
2012-05-02 17:50:41 +02:00
Michael Natterer
36e982e2ed app: port gimp_image_pick_color() to return a Babl format
instead of a GimpImageType.
2012-05-02 17:50:39 +02:00
Michael Natterer
8d5471502e app: move GimpHistogram from base/ to core/ 2012-05-02 17:46:13 +02:00
Michael Natterer
5a7b7d9a4b app: add gimp_gegl_buffer_get_tile_manager()
and ust it in some get_memsize() functions instead of having a
FIXME. So many files changed because they need to inlcude <gegl.h>
now.
2012-05-02 17:46:07 +02:00
Michael Natterer
765c2cfea2 app: replace GimpDraable's type by a Babl format
and change gimp_drawable_new() and all gimp_layer_new() variants to
take formats instead of types.
2012-05-02 17:46:06 +02:00
Michael Natterer
3ec245a991 app: add opacity and paint_mode to gimp_edit_fill[_full]()
and use it instead of bucket-fill in the non-seed-fill case.
2012-05-02 17:46:01 +02:00
Michael Natterer
ffeb3515db app: add gimp_edit_fill_full() which takes color and pattern
and use it for dropping colors and patterns on the display
and on the layers dialog, instead of using the overkill
gimp_drawable_bucket_fill_full().
2012-05-02 17:46:01 +02:00
Michael Natterer
fbf11ba84f app: don't call gimp_layer_get_edit_mask() when the layer has no mask 2012-05-02 17:45:57 +02:00
Michael Natterer
69b2aa880f app: add gimp_pattern_create_buffer() and use it in gimp_edit_fill_internal() 2012-05-02 17:45:56 +02:00
Michael Natterer
88388467cc app: move the layer mask show, edit, apply API from GimpLayerMask to GimpLayer
because it would require really evil hacks to honor these properties
in the gegl projection if they were on the mask, and because they
actually belong to the layer.
2012-05-02 17:45:56 +02:00
Michael Natterer
169221bc51 app: replace some color_region() and pattern_region() by GEGL code 2012-05-02 17:45:52 +02:00
Michael Natterer
d771249466 app: completely port GimpBuffer to using GeglBuffer not TileManager 2012-05-02 17:45:47 +02:00
Michael Natterer
90706f8427 app: make sure explicitly saved color tool settings don't end up in "recent"
reset the "time" property after applying the stored setting, otherwise
explicitly storing the config as setting will also copy the time, and
the stored object will be considered to be among the automatically
stored recently used settings
2012-04-02 11:50:47 +02:00
Michael Natterer
7cbd1c5739 app: don't dereference a NULL session_info->p->factory_entry 2012-03-30 09:55:45 +02:00
Massimo Valentini
a29c096614 app: initialize also GimpRGB's alpha component
Conditional jump or move depends on uninitialised value(s)
==29000==    at 0x4C33CBC: gimp_color_area_set_color (gimp/libgimpwidgets/gimpcolorarea.c:425)
==29000==    by 0x4C3505B: gimp_color_button_set_color (gimp/libgimpwidgets/gimpcolorbutton.c:642)
==29000==    by 0x5DA5BE: gimp_text_style_editor_set_color (gimp/app/widgets/gimptextstyleeditor.c:700)
==29000==    by 0x5DB0D4: gimp_text_style_editor_update_idle (gimp/app/widgets/gimptextstyleeditor.c:1090)
==29000==    by 0x57E9E95: gdk_threads_dispatch (gtk-2-24/gdk/gdk.c:512)

Steps to reproduce:

<Ctrl>N <Enter> T
click on canvas
type something

select the text entered and change its color using
the color button from the text style editor
2012-03-13 20:44:47 +01:00
Massimo Valentini
a80a63443d app: initialize a GtkTreeIter
Conditional jump or move depends on uninitialised value(s)
==28871==    at 0x4A09863: bcmp (/builddir/build/BUILD/valgrind-3.6.1/memcheck/mc_replace_strmem.c:692)
==28871==    by 0x4C487C7: gimp_int_store_row_inserted (gimp/libgimpwidgets/gimpintstore.c:220)
==28871==    by 0x8342B03: g_closure_invoke (glib/gobject/gclosure.c:774)
==28871==    by 0x8353129: signal_emit_unlocked_R (glib/gobject/gsignal.c:3232)
==28871==    by 0x835A72A: g_signal_emit_valist (glib/gobject/gsignal.c:3033)
==28871==    by 0x835A8F1: g_signal_emit (glib/gobject/gsignal.c:3090)
==28871==    by 0x529EF63: gtk_list_store_insert (gtk-2-24/gtk/gtkliststore.c:1039)
==28871==    by 0x5CEB6B: gimp_stroke_editor_constructed (gimp/app/widgets/gimpstrokeeditor.c:229)
==28871==    by 0x8348222: g_object_newv (glib/gobject/gobject.c:1731)
==28871==    by 0x8348565: g_object_new_valist (glib/gobject/gobject.c:1820)
==28871==    by 0x8348873: g_object_new (glib/gobject/gobject.c:1535)
==28871==    by 0x5CEE74: gimp_stroke_editor_new (gimp/app/widgets/gimpstrokeeditor.c:320)
==28871==    by 0x4C3842: stroke_dialog_new (gimp/app/dialogs/stroke-dialog.c:176)
==28871==    by 0x4A3B5C: select_stroke_cmd_callback (gimp/app/actions/select-commands.c:349)

Steps to reproduce:

On a 64 bits machine run gimp-2.7

<Ctrl>N <Enter> <Ctrl>A
and activate <Edit>/Stroke Selection... (<Alt>E S)
2012-03-13 20:44:47 +01:00
Michael Natterer
b1483144cf app: remove unused variable in GimpSpinScale 2012-02-22 23:38:35 +01:00
Michael Natterer
aadfc82f11 app: various GimpSpinScale fixes
- make it respect RTL mode better, something is still weird though
- don't fiddle with the entry's inner_border
- place label and number on the same line
- adjust size_request to respect the label's requisition
- set the label to ellipsize
2012-02-22 22:48:42 +01:00
Michael Natterer
fbd746f95a app: don't rely on gtk_container_remove() to always destroy the child
Instead, either destroy the child instead of removing it, or remove
*and* destroy it in cases where the remove() api on the "parent"
doesn't match GTK+'s parent/child relation (like with all our dock
widgets). We can't rely on remove() to implicitly detstroy, because
there might be arbitrary other code holding references, such as
accessibility modules and whatnot. Most likely fixes unclear crashes
in accessibility code and other crashes we blamed GTK+ for.
2012-02-21 00:36:18 +01:00
Christian Krippendorf
43b6d6922c Bug 615227 - Undo while scaling layer freezes GIMP
Don't run into an infinite loop when the undo editor is used
while we're in the middle of an undo group.
2012-02-13 08:17:47 +01:00
Michael Natterer
90065a517e app: try harder to show filename and file size in Image -> Properties
by using gimp_image_get_any_uri() instead of get_filename() or get_uri().
2012-02-11 22:54:06 +01:00
Michael Natterer
af6b840aaf Bug 666561 - Clicking on the expand icon next to a group expands the wrong group
gimp_item_tree_view_row_expanded(): only select the active item if its
immediate parent was expanded, not if *any* group was expanded.
2012-02-09 20:38:46 +01:00
Massimo Valentini
b994280473 Bug 668814: Cannot move cursor right in on canvas editor
One possible way to decrease the incompatibilities
between letter spacing in a tagged gtk_text_buffer
and in an equivalent pango_layout

Remove also a valgrind reported invalid write in
gimptextbuffer.c
2012-02-09 12:36:43 +01:00
Michael Natterer
2414301799 Review the last few commits and apply some style fanaticism
some completely unrelated,
2012-02-07 20:36:55 +01:00
Massimo Valentini
39368a410d plugged memory leaks 2012-02-07 17:32:02 +01:00
Michael Natterer
79d997457b app: set GimpToolPresetEditor insensitive for non-editable presets 2012-02-06 22:03:30 +01:00
Michael Natterer
f72806bbcd app: fix GimpContainerTreeView name editing so it always works the same
no matter how editing was started (double click, keyboard activate, F2).

Connect to "editing-started" of the name cell and set the object's
real name directly on the GtkCellEditable, instead of trying to hack
around in the tree store before the actual editing starts.
2012-02-06 19:28:37 +01:00
Michael Natterer
947ea55a07 app: chain up last in gimp_container_tree_view_set_context()
so all the view renderers already have the right context when the
parent interface code selects the right item, which in turn requires
the context to be already set on the renderers. Fixes warnings when
dragging dockables around.
2012-02-06 01:33:01 +01:00
Alexia Death
c585737f3a app: Add import type as third preference on Export 2012-02-02 21:17:35 +02:00
Michael Natterer
17f1f2a2fa app: use G_N_ELEMENTS() and remove GIMP_N_TAB_STYLE_CANDIDATES define 2012-02-01 20:38:10 +01:00
Michael Natterer
d11f9d7dbf Bug 664885 - Open 'Document History' --> always a additional history tab appears
Really find a *widget* in gimp_dialog_factory_find_widget(), don't
just return the first found session info's widget. It's perfectly fine
for a session info to have a NULL widget, if that dialog is not
currently open.
2012-01-31 22:00:17 +01:00
Michael Natterer
cac442c2df app: port dockable showing in widgets/ to GimpWindowStrategy 2012-01-30 23:52:59 +01:00
Michael Natterer
0a68527edc app: move the GimpWindowStrategy interface from display/ to widgets/ 2012-01-30 23:33:21 +01:00
Michael Natterer
92693f40b6 app: allow to pass an identifier list to gimp_dialog_factory_find_widget()
Which is right for all external users, GimpDialogFactory itself splits
the identifier list itself if needed before finding a specific dialog.
2012-01-30 22:51:51 +01:00
Michael Natterer
569b262e2d app: various tool options and tool preset fixes
- move the code that sets the tool options' "defined" and "serialize"
  properties from GimpToolInto to GimpToolOptions so they are always
  set correctly.
- make GimpToolOptions fix broken serialized NULL tools automatically.
- make sure a GimpToolPreset's tool options always has a tool set. If all
  fails, set a NULL tool explicitly and let the logic in GimpToolOptions
  find the right tool.
- set GimpToolPreset's "use" booleans to FALSE for context properties
  that have no effect on the tool.
- set GimpToolPresetEditor's toggle insensitive for these properties.
2012-01-23 22:40:49 +01:00
Michael Natterer
313430b738 app: move all GimpToolPresetEditor members to a private struct 2012-01-23 00:56:21 +01:00
Michael Natterer
f593175924 app: GimpCurveView: clean up code and better axis label positioning 2012-01-15 22:54:57 +01:00
Michael Natterer
c00457382e app: GimpColorFrame: no need to cairo_fill() after pango_cairo_show_layout() 2012-01-15 22:48:55 +01:00
Alexia Death
8d0016023b app: fix get/set mixup in curve view 2012-01-15 21:37:30 +02:00
Alexia Death
3f7ee00469 app: Add axis lables to dynamics curves and curveview 2012-01-15 02:56:35 +02:00
Martin Nordholts
4ac7bcc624 app: Add 'create_containers' to gimp_dialog_factory_dialog_new_internal()
Because to fix bug 664885 we will want to pass context = NULL while
still not having any containers created for us.
2012-01-10 21:13:08 +01:00
Martin Nordholts
40d98b79cb app: A '|' in identifiers is not a special case 2012-01-10 20:51:08 +01:00
Martin Nordholts
64d2dc122a app: Add and use gimp_dialog_factory_find_widget() 2012-01-10 19:47:52 +01:00
Michael Natterer
056e09a6cb Remove the makefile.msc build system, it is unmaintained since 2008 2011-12-16 15:53:56 +01:00
Michael Natterer
42a5f8f834 Bug 666065 - "you can drop dockable dialog" of the toolbox
Set the height request of the "You can drop dockable dialogs here"
label to 0, so the toolbox can be properly resized to its minimum
again.
2011-12-16 09:40:54 +01:00
Michael Natterer
a25bfabc43 app: properly memory manage GimpColorSelectorPalette's context
so we don't access garbage pointers when the widget is moved between
docks, like when toggling SWM.
2011-12-11 02:44:14 +01:00
Michael Natterer
180cb656ae Remove more gdk_pointer_grab() where they are not strictly needed
and replace them by gtk_grab_add()/remove().
2011-12-10 21:51:05 +01:00
Michael Natterer
01f92a3b48 app: get rid of server grabs for almost all canvas interaction
Because it's generally the right thing to do, and server grabs broke
badly with input devices / client side windows.

gimpdisplayshell-grab.c: change logic to only server-grab if an event
is passed to the pointer grab/ungrab functions, but always use
gtk_grab_add/remove() which is sufficient in most cases.

gimpdisplayshell-tool-events.c: have the grab functions grab the
server only for space-bar scrolling and do all tool interaction,
including ruler clicks, with gtk_grab_add/remove(). Refactor things
a bit to also use the grab API for button-2 scrolling.

gimpdeviceinfo-coords.c: transform the event's coords to the canvas'
coordinate system, they might come from a ruler now.

This fixes the following bugs:

Bug 645315 - gimp_display_shell_pointer_grab: gdk_pointer_grab failed...
Bug 644351 - Gimp misses some strokes especially when drawing fast
Bug 645747 - Gimp is now unusable on xfce4
2011-12-09 20:20:02 +01:00
Michael Natterer
dcf84f3910 app: set the correct resolution on the text style overlay's size entry 2011-12-03 23:56:51 +01:00
Michael Natterer
af0570372d app: GimpTagEntry formatting cleanup, no logic changes 2011-12-01 20:24:37 +01:00
Michael Natterer
1d9ca9cdca app: remove gtk_check_version(2,24,7) code from GimpActionGroup 2011-12-01 12:07:43 +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
9cd3e005aa app: fix the PDB GimpBrushSelect dialog
It was warning like crazy and not showing opacity and paint mode
widgets.
2011-11-25 13:57:28 +01:00
Massimo Valentini
c34348a2cd app: silence a harmless Gimp-Core-CRITICAL
Dragging a channel preview (not RGBA) over a layer preview
GIMP used to print:

Gimp-Core-CRITICAL **: gimp_container_get_child_index: ...
           assertion `GIMP_IS_CONTAINER (container)' failed
2011-11-18 18:36:20 +01:00
Michael Natterer
ca17c91d9e app: don't unparent the menu_button in gimp_dockbook_dispose()
because we don't own it. GTK+ failing to destroy it is no reason, this
needs to be fixed in GtkNotebook.
2011-11-17 00:17:46 +01:00
Michael Natterer
a547cc0940 app: don't leak GimpViewRendererImagefile's GtkIconInfo 2011-11-04 01:32:50 +01:00
Michael Natterer
c166e494ce Bug 662948 - Wilber is squeezed
Separate Wilber sizing from GimpDock::set_host_geometry_hints()
because that method is never called in single-window mode.
2011-11-02 00:31:23 +01:00
Michael Natterer
16aae588b9 app: no need to move that assignment
and no need to initialize the entire struct explicitly.
2011-10-13 11:30:02 +02:00
Mukund Sivaraman
d047b1ca41 app (widgets): Init child_allocation, or garbage is added to action_allocation.y 2011-10-13 10:32:12 +05:30
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
Michael Natterer
fffd1920e2 app: don't hardcode MOD2 in GimpContainerTreeView either
Add new utility function gimp_get_all_modifiers_mask() which returns
all modifiers used for "useful" things on the current platform, like
in the commit below.
2011-10-10 00:17:20 +02:00
Michael Natterer
6c660e7ad5 app: add property GimpDataFactoryView:action-group
and remove the public gimp_data_factory_view_construct().
2011-10-09 22:12:32 +02:00
Michael Natterer
b3db7e6c4e app: rename all tool-preset dialog related things to "tool presets"
not just "tool preset". It's also "brushes", "patterns" etc. and not
just "brush" or "pattern".
2011-10-09 21:55:58 +02:00
Michael Natterer
04e8ae8435 app: add menu-related properties to GimpContainerEditor
and remove the public gimp_container_editor_construct(), so this class
behaves like a proper object now.
2011-10-09 21:45:02 +02:00
Michael Natterer
4ba905052b app: remove most code from the public gimp_container_editor_construct()
and move it to GObject::constructed().
2011-10-09 21:19:14 +02:00
Michael Natterer
5f3b3dafb9 app: add view-size and view-border-width props to GimpContainerEditor
and remove them from the various public construct() functions.
2011-10-09 21:04:49 +02:00
Michael Natterer
bef55fbb66 app: add view-type, container and context props to GimpContainerEditor
and remove them from the various public construct() functions. Had to
change construction in GimpDataFactoryView slightly because of GObject
construct property constraints.
2011-10-09 20:40:56 +02:00
Michael Natterer
3bf3b55536 app: add property GimpDataFactoryView:data-factors
and remove it from the evil public construct() function.
2011-10-09 19:08:31 +02:00
Michael Natterer
11239c4b17 app: don't use g_list_length() to check if a list is empty 2011-10-09 00:27:53 +02:00
Michael Natterer
d310dacbb1 app: remove "foo && " from "foo && GTK_IS_FOO (foo)" 2011-10-09 00:18:56 +02:00
Michael Natterer
374f4e5628 app: let GimpContainerTreeView's parent class handle MOD2-click 2011-10-07 01:02:54 +02:00
Michael Natterer
e5edb1188d app: more s/GDK_CONTROL_MASK/gimp_get_toggle_behavior_mask()/ 2011-10-07 01:02:54 +02:00
Michael Natterer
e2feb0c16f app: use gtk_widget_get_modifier_mask() in GimpWindow
to figure the primary accel modifier, so this code is now generic.
2011-10-07 01:02:54 +02:00
Michael Natterer
efd9906e85 app: remove gimp_get_mod_separator(), it's unused now 2011-10-07 00:34:43 +02:00
Michael Natterer
a38faefba7 app: use toggle_behavior_mask not CONTROL to trigger zoom-on-scroll 2011-10-07 00:00:42 +02:00
Michael Natterer
1bff8224ad app: use the toggle_behavior_mask instead of CONTROL to pick BG
And don't use gimp_get_mod_separator().
2011-10-07 00:00:42 +02:00
Michael Natterer
2ee5dbb98c app: use toggle_behavior_mask instead of CONTROL in GimpThumbBox
Also, don't use gimp_get_mod_separator() but a translatable "-"
because the separator is empty on OSX.
2011-10-07 00:00:42 +02:00
Michael Natterer
c7d9988a7f app: make gimp_suggest_modifiers() work on OSX
by checking for gimp_get_toggle_behavior_mask() instead of
GDK_CONTROL_MASK. This is a total hack but happens to simply
do the right thing on all platforms.
2011-10-06 22:56:05 +02:00
Michael Natterer
6d1b5c4241 app: pull virtual modifier replacement into gimp_get_mod_string()
and remove it from all other places. We only want to have the virtual
modifiers when displaying a modifier string (and in some other cases,
but these are all handled internally by GTK+).
2011-10-06 22:56:05 +02:00
Michael Natterer
f4141d6942 app: add a utility function that returns the "constrain" modifier 2011-10-06 16:42:42 +02:00
Michael Natterer
c0610697cb app: remove widget parameter from gimp_modifiers_to_channel_op()
and simply use the default keymap.
2011-10-06 16:33:05 +02:00
Michael Natterer
10a9c660f8 app: add utility functions which return modifier masks
Simply get the masks from the default display's keymap, since
the widget makes absolutely no difference here.
2011-10-06 16:33:05 +02:00
Michael Natterer
4b3d3fe431 app: port the channels and paths dialog to portable selection modifiers
instead of hardcoding SHIFT and CONTROL.
2011-10-05 19:26:54 +02:00
Michael Natterer
f22d6b9d3b app: use the portable EXTEND_SELECTION modifier instead of SHIFT 2011-10-05 19:26:54 +02:00
Michael Natterer
16d4d6fa94 app: replace virtual modifiers before displaying them as GimpEditor tooltip 2011-10-05 19:26:53 +02:00
Michael Natterer
9e44a199e5 app: use gimp_modifiers_to_channel_op()
instead of replicating its logic in a non-portable way.
2011-10-05 19:26:53 +02:00
Michael Natterer
fdf103ce08 app: add more modifier utility functions to gimpwidgets-utils.[ch]
- gimp_modifiers_to_channel_op() translates a modifier state to REPLACE,
  ADD, SUBTRACT or INTERSECT.

- gimp_replace_virtual_modifiers() uses gdk_keymap_add_virtual_modifiers()
  to replace the physical bits in a modifier state to their virtual
  counterparts (and not just adds the virtual ones like the GDK
  function).
2011-10-05 19:26:53 +02:00
Michael Natterer
f45cccbc82 app: make gimp_get_mod_string() a bit nicer 2011-10-05 18:47:37 +02:00
Michael Natterer
3982ddc39b app: implement gimp_get_mod_string() using gtk_accelerator_get_label()
so it can handle all modifiers (also Mac ones).
Remove gimp_get_mod_name_shift,control,alt().
2011-10-05 01:30:59 +02:00
Michael Natterer
1459f5bb61 app: unparent GimpDockBook's menu button in dispose() not finalize()
because unparenting requires a fully functional object that can
be used as signal parameter. I have no clue why this doesn't
trigger criticals on X11.
2011-10-04 23:54:42 +02:00
Michael Natterer
f1d4dde36a libgimpwidgets: add gdk_event_triggers_context_menu() to gimp3migration.[ch]
and remove gimp_button_event_triggers_context_menu() again. Update
all callers to use the new function.
2011-10-02 16:23:59 +02:00
Michael Natterer
2c175b068d libgimpwidgets: add gtk_paned_new() to gimp3migration.[ch]
and use it all over the place.
2011-10-02 14:36:42 +02:00
Michael Natterer
16817c666f libgimpwidgets: add gtk_scrollbar_new() to gimp3migration.[ch]
and use it all over the place.
2011-10-02 14:36:41 +02:00
Michael Natterer
f342b50483 libgimpwidgets: add gtk_button_box_new() to gimp3migration.[ch]
and use it all over the place.
2011-09-30 15:44:33 +02:00
Michael Natterer
3e336199b9 app: use gtk_box_new() 2011-09-30 11:29:11 +02:00
Alexia Death
cd2a1a92fc app: Add configurable path for tool presets in preferences 2011-09-29 20:29:49 +03:00
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
c3c40fd45f Bug 545910 - crash when selecting a font after a search
Add an explicit search entry, so the treeview's automatic search
popup doesn't break our grab and closes the dialog in the middle
of setting up the serach popup.
2011-09-24 10:58:48 +02:00
Michael Natterer
69f55d0fb0 Bug 152259 - Revert button in GimpDataEditor is not implemented
Hide the button instead of only setting it insensitive.
2011-09-24 00:55:37 +02:00
Mikael Magnusson
fdb69d20d5 Revert accidental usage of gtk_box 2011-09-24 00:44:14 +02:00
Michael Natterer
4e3c308931 Bug 658902 - Show different icon for visible layer group members of...
Set the "eye" renderer to inconsistent state if the item is visible,
but not effectively viewable because one of its parents is invisible.
2011-09-23 23:45:10 +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
d92cd2f6c8 Add gimp_button_event_triggers_context_menu() and use it
instead of checking for event->button == 3, so context menus
work correctly on the Mac. Didn't change the image menu yet
because thet requires some more refactoring.
2011-09-19 00:47:23 +02:00
Michael Natterer
f8a2644b13 app: sanitize event->button checking in GimpNavigationView
Use if() instead of switch() with one case:, and ignore
double and triple clicks.
2011-09-18 19:49:05 +02:00
Michael Natterer
7656e2bda1 app: make gimp_window_key_press_event() do the right thing on a Mac
which is look at the right modifier when checking if a key event
can invoke an accelerator. Also get the mnemonic modifier from
GTK instead of hardcoding it, and don't check for it if mnemonics
are disabled, which is the right thing to do on all platforms.
2011-09-17 23:26:58 +02:00
Michael Natterer
3066a8228a app: use <primary> instead of <control> in accelerator strings
but generically change it back to <control> for GTK+ < 2.24.7.
This enables using the Command modifier on OSX,
2011-09-16 22:59:58 +02:00
Mukund Sivaraman
6080c11161 Revert "Bug #658816 - Add a spellchecker to the comment editor"
This reverts commit 978c96bbc6, which is
probably not such a great idea.
2011-09-13 00:33:33 +05:30
Mukund Sivaraman
978c96bbc6 Bug #658816 - Add a spellchecker to the comment editor
This is an initial version and can be improved. Something is better
than nothing.  :)
2011-09-12 19:36:35 +05:30
Massimo Valentini
779756bc51 app: draw Wilber as in gimp-2.6
Apparently wilber_get_extents is called the first time
with a cairo_t with device_offset different than the other
times, since the path is copied the first time, afterwards
it appears offset.
2011-09-02 18:07:34 +02:00
Michael Natterer
4c9a2f1729 app: remove trailing whitespace in GimpToolPalette 2011-08-21 17:43:39 +02:00
Martin Nordholts
c0208e70c0 app: Resurrect "You can drop dockable dialogs here"
Resurrect the help string "You can drop dockable dialogs here" inside
GimpPanedBox. It got killed when we removed GimpDockSeparator.
2011-08-16 22:33:39 +02:00
Martin Nordholts
a5ef51137d Revert "app: #include "gimptoolpalette.h" in gimptoolpalette.c"
This reverts commit c19560b08c.
It was already included, don't know how I could miss that.
2011-08-09 19:52:35 +02:00
Martin Nordholts
2fd159ae06 app: Only initialize tools once 2011-08-07 20:49:49 +02:00
Martin Nordholts
1a8a806d43 app: Make GimpToolbox use parent UI manager
Make GimpToolbox and GimpToolPalette use the GimpUIManager and
GimpDialogFactory of the top container instead of holding references
on their own. If they hold references on their own, we need to update
these when we move e.g. GimpToolbox between different top level
containers such as GimpDockWindow and GimpImageWindow. Failure to do
this cased problems talked about in bug 646794 (case 2).
2011-08-07 20:00:28 +02:00
Martin Nordholts
77ac7ffa90 app: Add gimp_tool_palette_initialize_tools() 2011-08-07 20:00:05 +02:00
Martin Nordholts
c19560b08c app: #include "gimptoolpalette.h" in gimptoolpalette.c
It's just weird not to.
2011-08-07 20:00:05 +02:00
Martin Nordholts
a5029b8c4c app: Remove dead GimpToolPalette code 2011-08-07 18:02:55 +02:00
Martin Nordholts
f8e840d85b app: Document GimpUIManager a bit 2011-08-07 17:04:36 +02:00
Martin Nordholts
537dae8de7 app: Remove more gimp-remote stuff
It's enough to setup gimp_toolbox_drop_uri_list() on the vbox.
2011-08-04 21:09:50 +02:00
Michael Natterer
97c5a2817d app: s/GTK_IS_VBOX/GTK_IS_BOX/ to simplify the gtk3-port branch 2011-07-27 20:21:58 +02:00
Alexander Hämmerle
421ca4114e Bug 641187 - GIMP needs a left-handed cursor option
Add a cursor-handedness setting and flip the cursor when it's set to
left-handed.
2011-07-24 22:09:21 +02:00
Martin Nordholts
682eabfd5b app: Add gimp_dock_columns_create_dock_and_dockbook() 2011-07-03 21:20:34 +02:00
Martin Nordholts
91b7043aef app: Add gimp_dockbook_add_from_dialog_factory() 2011-07-03 21:20:20 +02:00
Alexia Death
e7ade3f8ec app: add an assert and dirty fix a segfault when starting with SWM
Somebody smarter than me needs to take  look why for some reason tool is
changed to null during SWM init.
2011-06-29 23:51:27 +03: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
276ceddec9 app: GimpViewRendererImagefile: don't call g_file_query_info ("standard::icon")
This is a quick fix because the call can block and needs to be ported
to the async API. I simply disabled the entire block that gets the
icon from GIO.
2011-06-19 22:20:50 +02:00
Martin Nordholts
e74d220930 app: Restore docks in an idle handler
In single-window mode, gimp_session_managed_set_aux_info() will set
the size of the dock areas at the sides. If we don't wait for those
areas to get their size-allocation, we can't properly restore the
docks inside them, so do that in an idle callback.

Also add a required call to gimp_test_run_mainloop_until_idle()
because of this in the 'automatic_tab_style' test.
2011-06-14 23:34:12 +02:00
Martin Nordholts
00d6f8e655 Move gimp_session_info_clear_info() into gimp_session_info_restore()
All callers of gimp_session_info_restore() call
gimp_session_info_clear_info() afterwards, so move that into the
function instead.
2011-06-14 23:34:12 +02:00
Michael Natterer
86e09e03d6 app: make sure GimpToolPresetEditor is in a sane state initially
even if an object got set on it at construction time.
2011-06-06 22:38:51 +02:00
Alexia Death
6b3c398f09 app: prevent segfault on startup when in swm and preset editor is active 2011-06-05 15:12:57 +03: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
1bff2c8df2 app: sprinkle const qualifiers in the tool event callback functions 2011-05-31 23:18:11 +02:00
Martin Nordholts
bed298be13 app: Remember column width in multi-column dock windows 2011-05-31 23:15:39 +02:00
Martin Nordholts
b4ed281f9a app: Call gimp_session_info_aux_set_list() generically
gimp_session_info_aux_set_list() is not a per-GimpDialogRestoreFunc
thing.
2011-05-31 23:15:38 +02:00
Martin Nordholts
6fc587c643 app: Add GimpSessionManaged
Add a GimpSessionManaged interface to generalize
gimp_session_info_aux_get_list() and gimp_session_info_aux_set_list().
2011-05-31 23:15:14 +02:00
Michael Natterer
edad544e73 app: don't redundantly check for (foo && GIMP_IS_FOO (foo)) in GimpSessionInfo 2011-05-30 23:39:39 +02:00
Martin Nordholts
10aa3921a0 app: Rememeber if image windows are opened
Rememeber if image windows are opened because we want the
gimp_session_info_restore() code to run for the single-image window
once that code is in place.
2011-05-28 16:18:34 +02:00
Martin Nordholts
93fd257c52 app: Give configure event info to gimp_session_info_read_geometry()
When we get to gimp_dialog_factory_dialog_configure() and do
gimp_session_info_read_geometry(), the window geometry has not yet
been updated, i.e. gimp_session_info_read_geometry() gives the session
info the size of the *previous* configure event.

Solve this by giving gimp_session_info_read_geometry() the configure
event so it can use that size when availble.

If we don't do this change, then we get bogus values of the size of
image window when repeatedly switching between single- and
multi-window mode.
2011-05-27 22:33:55 +02:00
Martin Nordholts
396d5fd5e8 app: Add a 'restore_func' to GimpDialogFactoryEntry
In gimp_session_info_restore() there is code to create a dialog from a
session info. GimpSessionInfo lives in the widgets module. Thus we
can't add restoration code that depends on a higher level module. In
particular, we can't add code to restore docks in an GimpImageWindow
since GimpImageWindow lives in the display module. And we need such
code to be able to restore a single-window mode session.

Since dialogs are defined in the dialogs module, it makes sense to
also have the code that restores a dialog in that module.

So, add a 'restore_func' member to GimpRestoreDialogFunc of type
GimpRestoreDialogFunc and move the code there.
2011-05-27 21:55:41 +02:00
Massimo Valentini
71bedb0ccd app: clear current path from the context after copying it
otherwise the first time it is drawn twice.
2011-05-26 20:17:21 +02:00
Martin Nordholts
2d5ffd4f2e app: Add the concept of 'side' of a dock
Add GimpDockContainer::get_dock_side() and write that info in the
sessionrc file. In single-window mode, a dock can be either on the
left or right side of the image window. In a dock window however, the
side concept doesn't apply ('side' has nothing to do with what column
a dock is in in a GimpDockColumns)
2011-05-19 20:57:40 +02:00
Michael Natterer
ab0b88b5db app: replace the last GtkObject members by GtkAdjustment
Also get rid of some unneeded GTK_ADJUSTMENT() casts and replace some
local GtkObject veriables by GtkAdjustment.
2011-05-15 17:00:41 +02:00
Martin Nordholts
cf4a4bf5a6 app: Make gimp_session_info_dock_restore() take a GimpDockContainer 2011-05-13 21:25:39 +02:00
Martin Nordholts
7edf717bae app: Add image_window boolean to GimpDialogFactoryEntry
Add image_window boolean to GimpDialogFactoryEntry and rename
FOREIGN_NOT_HIDEABLE() to IMAGE_WINDOW(). We need to treat image
windows a bit special when we restore a single-window mode session.
2011-05-13 21:25:39 +02:00
Martin Nordholts
0f19471e22 app: Make GimpDockContainer::get_docks() return a new list
Make GimpDockContainer::get_docks() return a new list and not just a
pointer to a list so that GimpImageWindow can implement it (who needs
to merge its two GimpDockColumns lists).
2011-05-13 21:04:23 +02:00
Martin Nordholts
00c2d15a3a app: Add GimpDockContainer::add_dock()
Add GimpDockContainer::add_dock() and use it in
gimp_session_info_dock_restore().
2011-05-13 21:04:23 +02:00
Martin Nordholts
ab1b50ad4a app: Add GimpDockContainer::get_ui_manager()
Add GimpDockContainer::get_ui_manager() and make GimpDockWindow
implement it. Primary client is session restoration code.
2011-05-13 18:56:41 +02:00
Michael Natterer
896e29c5f1 app: gimp_session_info_dock_restore(): remove empty dockbooks after restoring
so we don't end up with empty windows if restoring all dockables in
the dock failed.
2011-05-12 21:23:07 +02:00
Michael Natterer
6bf7f7e429 app: ref the session info in gimp_dialog_factory_add_session_info()
and unref it in the callers after adding it. That's the proper way of
doing it and fixes another warning when restoring a dock fails.
2011-05-12 21:23:07 +02:00
Michael Natterer
9e60dd547d app: keep a ref to the session info in gimp_session_info_restore()
because failing to restore a dock can destroy the newly created dock
and implicitly unref the session info.
2011-05-12 21:23:06 +02:00
Michael Natterer
68a56a861e app: gimp_session_info_book_restore(): don't set a non-existing current page
Don't set the first page of the restored dockbook active if there are
less than two pages. Also add a comment that explains why we return
the dockbook even though we know that all its dockables failed to
restore.
2011-05-12 21:23:06 +02:00
Michael Natterer
80cf95319e app: gimp_session_info_dockable_restore(): don't return existing singletons
Instead, return NULL. The singleton dockable can't be restored in this
dock because it's already open in another dock.
2011-05-12 21:23:06 +02:00
Martin Nordholts
c70dc8f86d app: Add NULL check in gimp_dock_container_get_docks() 2011-05-12 06:51:40 +02:00
Michael Natterer
3184c0f339 app: use g_object_bind_property() to set sensitivity here too 2011-05-11 11:43:19 +02:00
Martin Nordholts
6d421f9d4d app: Add and use gimp_session_info_get_info_with_widget()
Add and use helper function
gimp_session_info_get_info_with_widget(). Might need it for
GimpImageWindow later...
2011-05-09 19:55:51 +02:00
Martin Nordholts
4b9243fc60 app: Make GimpDockWindow implement GimpDockContainer
Make GimpDockWindow implement the GimpDockContainer interface. The
plan is to make GimpImageWindow also implement the GimpDockContainer
interface when we start to session manage docks in single-window mode.
2011-05-09 19:55:51 +02:00
Martin Nordholts
2287b6e008 app: Add a GimpDockContainer interface
We now have to classes that contain docks, GimpDockWindow and
GimpImageWindow (in single-window mode). Introduce a GimpDockContainer
interface so we can cope with these in an abstract way.
2011-05-09 19:43:28 +02:00
Martin Nordholts
1d12dc8e86 app: Sort widgets/widgets-types.h 2011-05-09 18:37:40 +02:00
Michael Natterer
85c0fd1166 app: replace gimp_dock_get_dock_columns() by gtk_widget_get_ancestor() 2011-05-04 22:41:40 +02:00
Michael Natterer
909e7833a3 app: remove some more -Wunused-but-set-variable 2011-05-02 13:53:58 +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
Martin Nordholts
4988a97257 app: Add gimp_dock_set_id() 2011-04-21 19:57:14 +02:00
Martin Nordholts
c84d26667b app: Add missing gimp_dock_get_id() implementation 2011-04-21 18:59:12 +02:00
Martin Nordholts
f75f61779c app: GimpSessionInfoDock::identifier -> dock_type
Rename GimpSessionInfoDock::identifier to dock_type, because it isn't
really an identifier; there might be several instance with dock_type
being "gimp-dock". This is a preparation for adding an actual
'identifier' member.
2011-04-21 18:59:12 +02:00
Michael Natterer
4a8fa1ab2a app: make GimpSpinScale RTL aware 2011-04-20 20:12:21 +02:00
Alexandre Prokoudine
ae2ab1ff3b Fixed a typo
The brush editor used to say "Spahe" instead of "Shape".
2011-04-20 13:20:42 +04:00
Michael Natterer
3edf0cb531 app: GimpSpinScale: don't create two cairo_t in expose() 2011-04-20 00:43:30 +02:00
Michael Natterer
3bf15d32e6 app: use GimpSpinScales in GimpBrushEditor 2011-04-18 22:27:43 +02:00
Michael Natterer
6dd463fb02 app: gimp_spin_scale_change_value(): remove "+ lower" from step calculation
It was never noticed because lower is 0.0 or 1.0 in all use cases.
2011-04-18 21:21:45 +02:00
Michael Natterer
bfcecd2ef0 app: GimpBrushFactoryView: use a GimpSpinScale for spacing
and use the new scale_limits API to restrict the scale to 1..200 while
the actual range is 1..5000.
2011-04-18 21:04:05 +02:00
Michael Natterer
d300ec6556 app: add a "scale_limit" API to GimpSpinScale
which allows to restrict the scale to a range that is smaller than
that of the model GtkAdjustment. This way we can enter large values in
the entry or by dragging beyond the end of the scale, but keep a
reasonably usable scale range for "normal" values.
2011-04-18 21:01:48 +02:00
Michael Natterer
bc56060148 app: GimpLayerTreeView: use a GimpSpinScale for opacity 2011-04-18 20:41:02 +02:00
Michael Natterer
26d50b533b app: gimp_item_tree_view_add_options(): allow NULL labels
and pack the options widget into the vbox directly.
2011-04-18 20:40:10 +02:00
Mikael Magnusson
854dd5b6ad app: correct cast for spinbutton 2011-04-16 11:52:49 +02:00
Michael Natterer
924d647284 app: set GimpSpinScale to numeric-only input
It's the right thing to do, but also works around focus issues in SWM,
at least while the widget has the focus.
2011-04-16 02:09:37 +02:00
Michael Natterer
7e6c026790 Globally use GDK_KEY_foo, remove the compat defines from widgets-enums.h 2011-04-11 23:43:03 +02:00
Martin Nordholts
27ac2a3c38 app: Make GimpEditor instance members private 2011-04-10 12:12:01 +02:00
Michael Natterer
d52157b565 Bug 647235 - app/widgets/gimpcairo-wilber.c parses path data every time
Applied patch from Juan Pablo Ugarte which keeps Wilber's cairo_path_t
around instead of parsing the SVG data each time.
2011-04-09 08:30:23 +02:00
Michael Natterer
5562f840b6 Bug 646718 - gimp_curve_set_curve: assertion `y >= 0 && y <= 1.0' failed
CLAMP(value, 0.0, 1.0) in one more place. The calculation does
look correct, but we are probably running into floating point
inaccuracies.
2011-04-08 20:53:17 +02:00
Michael Natterer
fcbc5eebeb app: add an edit button the the tool options' brush etc. selectors
which makes getting to the editor dialogs much easier.
2011-04-07 23:48:08 +02:00
Mikael Magnusson
b00cb3be79 Remove stray semicolon 2011-04-06 23:40:56 +02:00
Mikael Magnusson
ac403ce11d Add a controller for binding mouse buttons 2011-04-06 23:35:14 +02:00
Michael Natterer
24ee3370b8 Depend on GTK+ >= 2.24.3, cairo >= 1.20.1, gdk-pixbuf >= 2.22.1
and completely separate configure and sanity checks for gdk-pixbuf
from GTK+, because it's now distributed as a separate package. Remove
all sorts of conditional compiling based on GDK_CHECK_VERSION() and
CAIRO_VERSION.
2011-04-06 19:58:24 +02:00
Michael Natterer
054957a1ee app: s/nbrushes/n_brushes/ in GimpBrushPipe 2011-04-05 15:16:06 +02:00
Michael Natterer
39fa147c17 app: unset GimpSpinScale's context sensitive cursor when the pointer leaves 2011-04-04 01:10:44 +02:00
Michael Natterer
61025c6023 Bug 624824 - use gtk-image-menu-item-set-always-show-image on some menu items
Always show icons for:

- Fill FG/BG/Pattern
- Rotate
- Recently opened
- Open images
2011-04-02 15:38:55 +02:00
Michael Natterer
d92b22c567 app: #include "widgets-types.h" so the GDK_KEY_foo defines are there 2011-03-29 22:39:34 +02:00
Michael Natterer
1cdaa2846f app: some forgotten s/GDK_foo/GDK_KEY_foo/ 2011-03-29 18:53:02 +02:00
Michael Natterer
7c60bb5181 app: use more of the new GDK_KEY_foo key names
and move the compat defines from display-enums.h to widgets-enums.h
2011-03-29 17:24:08 +02:00
Michael Natterer
6c524ea1db app: GimpSessionInfo: use brute force to position dialogs
Window managers are such a crap. So on top of all friendly hinting and
geometry setting, simply use gtk_window_move() whenever a session
managed GtkDialog is shown. It should be very hard to ignore that, but
of course the WM has the last word no matter how hard we try.

Note: this code should be more complex and the signal connection
should happen in GimpDialogFactory. Left it in GimpSessionInfo for now
until it got a bit of testing.
2011-03-26 19:47:44 +01:00
Michael Natterer
c629cbeb89 app: some formatting cleanup in GimpDialogFactory 2011-03-26 19:32:59 +01:00
Michael Natterer
bc8d5f84d6 app: remove the "offset" API from TileManager
It made the transform code hard to read and never belonged into the
tile manager anyway. It's a simple pixel buffer that should not know
about any position in an image. Instead, pass around the offsets of
tile managers explicitly, so everything is less obscure for the price
of having more parameters. This will also help replacing TileManagers
with GeglBuffers.
2011-03-26 08:30:15 +01:00
Michael Natterer
aec66d0c26 app: make GimpTaggedContainer properly memory manage the filter list
instead of leaking it. Also make the fact that tags in the list can
validly be NULL obvious by adding utility functions
gimp_tag_or_null_ref/unref().
2011-03-24 12:28:45 +01:00
Michael Natterer
7eda388fec app: fix possible GimpTagEntry crash by keeping the query idle ID around
Remove it in gimp_tag_query_dispose().
2011-03-24 09:55:32 +01:00
Michael Natterer
014a333d27 app: fix GimpTaggedContainer's base class
And make it use the sort_func from the src_container which must
now be a GimpList (which is likely temporary).
2011-03-23 21:51:56 +01:00
Michael Natterer
91195e8593 app: remove the old tool presets system
Instead, keep around a GimpFilteredContainer in GimpToolInfo that
maintains a per-tool list of presets from the global preset factory.
Turn the tool options dialog's preset Save/Restore/Edit/Delete menus
and buttons into shortcuts for managing the active tool's presets.
2011-03-23 09:27:29 +01:00
Michael Natterer
051ef0ebcb app: add GimpTaggedContainer
which is a copy of GimpFilteredContainer with s/Filtered/Tagged/ and
no other change. #if 0 GimpFilteredContainer for now and use
GimpTaggedContainer instead all over the place.
2011-03-22 23:11:46 +01:00
Michael Natterer
7cf14bd390 app: allow to change GimpToolPreset's icon
Also add an image and label that show what tool the preset is for.
This clearly needs more work...
2011-03-22 22:09:03 +01:00
Michael Natterer
fa9453eea1 app: add gimp_prop_icon_picker_new()
and use it in GimpTemplateEditor instead of handling the icon picker
manually.
2011-03-22 15:20:03 +01:00
Michael Natterer
a90961ef4a app: make GimpTextStyleEditor look a bit nicer
Add some spacing and move the color button to the bottom.
2011-03-21 01:00:37 +01:00
Michael Natterer
1f5e180334 app: move GimpToolDialog from app/widgets/ to app/display/
Zero logic changes yet, just a rename.
2011-03-20 13:34:03 +01:00
Michael Natterer
c469dbb206 libgimpwidgets: turn GimpDialog's "parent" into a property
and remove the parent peoperty from GimpViewableDialog.
2011-03-20 12:44:03 +01:00
Michael Natterer
6d97fd3887 app: use a size entry instead of a spinbutton in GimpTextStyleEditor
so it's finally clear what unit the text size has.
2011-03-20 12:37:01 +01:00
Michael Natterer
0789ee2669 app: add a 1px FG border around overlay frames
so they work on any background. Also remove disabled bling code.
2011-03-18 22:57:13 +01:00
Michael Natterer
140c9aae91 Bug 625273 - Insert Font and font-size into the Texteditor's Menubar
If the cursor position (or the current selection), doesn't contain any
font, font-size or color tags, display the default values from the
GimpText object instead of "nothing". Still display nothing if the
selection contains different fonts, sizes or colors.
2011-03-18 22:13:34 +01:00
Michael Natterer
ecbfb4a9e8 app: add a GimpText property and construct param to GimpTextStyleEditor
which will be used to get default values from.
2011-03-18 21:16:53 +01:00
Michael Natterer
61aa1854fd app: make GimpSpinScale's slow part change the value 10x slower than the fast part 2011-03-18 15:42:50 +01:00
Michael Natterer
f1d1bb610d app: experimentally add fine-tuning to GimpSpinScale
by making the lower part change things in small steps.
2011-03-18 15:07:44 +01:00
Michael Natterer
df731912a5 app: add a GimpTextStyleEditor to the text tool's editor dialog
so it's an alternative to on-screen editing for esoteric use cases
that can do everything on-screen editing is capable of.
2011-03-18 12:58:32 +01:00
Michael Natterer
d7c66c66d0 Bug 142697 - Dock separators move between sessions
Removing my old and evil "fix" for the issue from 2004-06-01 seems
to make things work as they should.
2011-03-17 21:03:20 +01:00
Michael Natterer
075c7d4a4d app: avoid the deprecated gdk_drawable_get_size() on GTK+ >= 2.24
Use gdk_window_get_width/height() instead.
2011-03-17 15:10:17 +01:00
Michael Natterer
fdde231869 app: use gtk_widget_get_allocation() instead of gdk_drawable_get_size() 2011-03-17 15:09:19 +01:00
Michael Natterer
42b2498a06 app: add a cast when comparing GdkCursorType with GimpCursorType 2011-03-17 14:42:44 +01:00
Michael Natterer
90058cded7 app: add missing tooltips in the text style overlay widget 2011-03-14 13:05:30 +01:00
Michael Natterer
8184296b3c app: add gimp_container_get_neighbor_of() to GimpContainer
instead of gimp_container_get_neighbor_of_active() in gimp-utils.c.
Move the additional GimpContext logic of the old function into the
callers, but use the new function in more places.
2011-03-13 02:14:44 +01:00
Michael Natterer
b1d6f1b0fd app: lose "default" from protected GimpViewRenderer rendering API
and rename render_surface() to render_temp_buf().
2011-03-08 17:12:39 +01:00
Michael Natterer
a2d27983d6 app: remove widget parameter from gimp_view_renderer_default_render_surface() 2011-03-08 17:03:30 +01:00
Michael Natterer
e69ecba237 app: move all GimpSettingsBox members to private 2011-03-08 11:32:49 +01:00
Michael Natterer
b8d148283b app: move all GimpSettingsEditor members to private 2011-03-08 02:32:14 +01:00
Michael Natterer
fcfb7cf160 Use the new g_[s]list_free_full() instead of foreach() and free() 2011-03-07 17:11:28 +01:00
Michael Natterer
fc7bd98d92 app: move all GimpStrokeOptions members to private 2011-03-05 21:00:28 +01:00
Michael Natterer
c550eae5e1 app: move all GimpImagefile members to private 2011-03-02 12:26:04 +01:00
Michael Natterer
5b09e61c46 app: move all GimpTemplate members to private 2011-03-02 10:16:43 +01:00
Michael Natterer
0bb5a76405 app: fix wilber dawing offset on widgets that don't have a window 2011-03-01 17:11:22 +01:00
Michael Natterer
30e847c921 app: forgot to implement dragging from GimpContainerIconView 2011-03-01 15:32:08 +01:00
Michael Natterer
f45e171f09 app: place the gimpview-popup at the button event's root coordinates
instead of fiddling with the widget's and its window's positions.
2011-03-01 14:53:54 +01:00
Michael Natterer
f82daa557a app: pack stuff in boxes instead of tables in GimpDeviceStatus
Makes the widget work correctly in all allocation situations.
2011-03-01 13:28:58 +01:00
Michael Natterer
30100cf613 app: add new widget GimpIconPicker, ripped out of GimpTemplateEditor 2011-03-01 12:31:17 +01:00
Michael Natterer
f0f94ba6a1 app: move all GimpTemplateEditor members to private 2011-03-01 11:50:16 +01:00
Michael Natterer
d3a83c9940 app: fix export and delete sensitivity in GimpSettingsEditor
and make sure "select-item" is emitted also when NULL is selected,
so the sensitivity is set correctly.
2011-03-01 01:29:35 +01:00
Michael Natterer
9cac8e7b42 app: GimpDeviceStatus: don't call gdk_display_get_name() on a NULL display 2011-02-28 17:36:53 +01:00
Michael Natterer
3a767c0c15 app: get rid of the arrow in GimpDeviceStatus
Instead, use an event box and set its state to SELECTED when the
device is active. Also cleaned up spacings and general appearance a
bit. Still a mess.
2011-02-28 16:43:21 +01:00
Michael Natterer
a1712a0ec7 app: emit "changed" when GimpDeviceInfo's device gets (un)set 2011-02-28 16:08:12 +01:00
Michael Natterer
b21f5be73f app: use GimpDeviceInfo's accessors 2011-02-28 15:55:02 +01:00
Michael Natterer
c49a7113e5 app: set the device manager's sort_func via g_object_new()
Setting it in init() had it overwritten by NULL because it's a
construct property.
2011-02-28 15:48:13 +01:00
Michael Natterer
ee844c6395 app: GimpDeviceManager refactoring part two
- change gimp_devices_get_list() to gimp_devices_get_manager()
- remove gimp_devices_get_current()
- let GimpDeviceStatus connect to the manager's "notify::current-device"
  directly and remove device status updating code from gui.c
- cleanup in gimpdevices.c
2011-02-28 14:37:00 +01:00
Michael Natterer
21a0e55005 app: device manager refactoring part one
Add a GimpDeviceManager object and take over most code from
gimpdevices.c, but leave all functions in gimpdevices.c there as
wrappers in order to make rebasing in gtk3-port simpler.
2011-02-28 12:57:15 +01:00
Michael Natterer
c11b0d2a79 app: move tool event debug output to a utility function
to reduce clutter in gimp_display_shell_canvas_tool_events().
2011-02-24 12:34:57 +01:00
Michael Natterer
ac9ffde880 app: formatting and other minor cleanups 2011-02-22 16:27:18 +01:00
Michael Natterer
7a8600e6bd app: use gdk_flush() in gimp_widget_flush_expose()
instead of a completely bogus event processing loop which had no
effect but flushing the event queue implicitly.
2011-02-22 15:07:17 +01:00
Michael Natterer
8333dfde7b Add some #if GTK_CHECK_VERSION (2, 24, 0) for creating foreign window
so we don't use deprecated API and make the gtk3 port simpler.
2011-02-16 22:51:02 +01:00
Michael Natterer
31b4d3801e libgimpwidgets: add properties GimpColorButton:area-width and :area-height 2011-02-15 20:55:32 +01:00
Michael Natterer
95f14f5de8 app: add an "edit-name" binding signal and default to F2 2011-02-14 20:01:08 +01:00
Mikael Magnusson
8e49a5fafb app: fix a typo 2011-02-12 18:16:05 +01:00
Michael Natterer
ec196a8ac4 app: allow to set a color for GimpCurveView's primary curve
and redo how the curves tool sets its curves in order to support this
without code duplication. Also change the color of the yellow curve in
the dynamics output editor to orange because yellow is hardly visible.
2011-02-10 20:05:50 +01:00
Michael Natterer
3ba0554628 app: use proper vivid colors for the background curves
instead of dull ones. The curve view already displays them with 0.5
opacity, so there is no reason to make them even harder to distinguish.
2011-02-09 09:26:06 +01:00
Michael Natterer
aaee95d545 app: experimentally color the background curves 2011-02-09 01:07:48 +01:00
Michael Natterer
6c252921af app: handle the inputs generically in GimpDynamicsOutputEditor
instead of having explicit code for each input in all functions.
2011-02-09 00:27:25 +01:00
Michael Natterer
5a28791cfb app: connect to the background curves' "dirty" signal in GimpCurveView
and make sure curves are not added twice to the background list.
Also warn when trying to remove a non-existent background curve.
2011-02-09 00:24:43 +01:00
Michael Natterer
2ed861fb8d Bug 638795 - Brush Dynamics Curve editor stutters
Update the toggles in the treeview only if a boolean property of the
output changes, and not on *each* output change which includes each
tiny curve editing.

Also fix formatting in the whole file.
2011-02-08 22:09:52 +01:00
Michael Natterer
e3b5c55ca2 Bug 597117 - impossible to drop a group as a sibling inside a group
Properly distinguish between dropping after a group and into it, by
having three drop areas on a collapsed row. Still handle expanded rows
as before, but indicate dropping into visually just as on a collapsed
row.
2011-02-08 09:35:38 +01:00
Michael Natterer
92f130fbc3 app: also run device history coords through the axis mapping curve function 2011-02-06 13:26:25 +01:00
Michael Natterer
f4af9b549e Globally switch to saying "window_id" instead of just "window"
when dealing with native window handles. Also get rid of using
GdkNativeWindow and simply consistently use guint32 all over the
place. This is more obvious and consistent and keeps the diff to the
gtk3-port branch smaller.
2011-02-06 12:07:55 +01:00
Michael Natterer
012eb1dd93 app: zero the reallocated keys and axes arrays in GimpDeviceInfo 2011-02-06 11:20:07 +01:00
Michael Natterer
e309d3cdf8 app: check that the model is not NULL before using it in GimpContainerComboBox
to be safe against GimpContainerView API being called during widget
destruction.
2011-02-06 11:20:07 +01:00
Michael Natterer
11ac0296b9 app: ref/unref the context in gimp_image_editor_set_context() 2011-02-06 11:20:07 +01:00
Martin Nordholts
366cddc856 app: gimp_image_get/set_imported/exported/save_a_copy_uri()
Add more proper core API for GimpImage URI management.
2011-02-02 22:28:46 +01:00
Martin Nordholts
d449317501 app: Add and use gimp_image_get_string_untitled() 2011-02-02 22:28:46 +01:00
Alexia Death
60a77f6db2 app: Fix and enable duplicate for dynamics 2011-02-02 21:48:10 +02:00
Martin Nordholts
480d6e0cf2 app: Add and use gimp_image_get_uri() 2011-01-26 08:19:39 +01:00
Martin Nordholts
ac773489e4 app: gimp_image_get_uri() -> gimp_image_get_uri_or_untitled() 2011-01-26 07:55:14 +01:00
Michael Natterer
27179d6219 app: don't duplicate code when setting GimpSpinScale's cursor 2011-01-22 23:23:02 +01:00
Michael Natterer
e27b5f6da2 app: remove unused variable in gimp_channel_tree_view_constructed() 2011-01-20 20:26:35 +01:00
Michael Natterer
4186d0114f app: add comment to improve readability 2011-01-20 20:26:34 +01:00
Michael Natterer
550669962b 622863 - Input Devices list is not resizeable
Derive from GtkPaned instead of GtkBox, and change the handle size to
12px via gtkrc so spacing rules are followed.
2011-01-20 20:26:34 +01:00
Michael Natterer
202124c438 app: implement GObject::constructed() instead of ::constructor() 2011-01-14 09:38:46 +01:00
Michael Natterer
229007106e app: don't pass the GtkStyle to gimp_curve_view_draw_grid()
Instead, set the cairo color in expose() before calling
draw_grid(). Also move a few lines of code around to make
the GTK3 port simpler.
2011-01-11 15:38:23 +01:00
Michael Natterer
0f0da4c712 app: various gradient editor changes and fixes
- return TRUE from event handlers if we handled the event
- remove the "instant update" toggle and feature
- move the color area left of the labels now that the toggle is gone
2011-01-07 15:09:17 +01:00
Michael Natterer
5caee48645 app: run all input axes through gimp_device_info_map_axis()
and let that function alone worry about whether there actually is a
curve for that axis.
2010-12-20 20:00:47 +01:00
Michael Natterer
62b0e96609 app: add gimp_devices_add_widget()
which is supposed to set up a widget for tablet events and make sure
the context changes on device changes. "supposed" because everything
is currently horribly broken on GTK+ 2.x. Use the function for all
affected widgets except for the canvas.
2010-12-19 21:23:54 +01:00
Michael Natterer
1e013e774c app: some cleanup in gimp_paned_box_position_drop_indicator() 2010-12-18 23:28:20 +01:00
Michael Natterer
4609bab1dd app: use gtk_entry_set_width_chars() to override GtkEntry's default width 2010-12-09 23:45:00 +01:00
Michael Natterer
bb91ba9d01 app: update the device name's style when devices get added/removed
This can't happen on GTK+ 2.x but why should I keep this generic code
on a branch.
2010-12-09 22:56:58 +01:00
Michael Natterer
9c98b0b804 app: sort present devices to the beginning of the device list
and make sure the core pointer is always first in the list.
2010-12-09 22:02:24 +01:00
Michael Natterer
6e2d56a9b8 app: don't reverse the device list after loading, it's sorted by name 2010-12-09 21:46:01 +01:00
Michael Natterer
8bc0e569ec app: use gimp_object_name_collate() when sorting device names 2010-12-09 21:45:04 +01:00
Michael Natterer
d91a1d5b6c app: don't call g_object_set_data() on a NULL object 2010-12-09 20:55:53 +01:00
Mikael Magnusson
60242667be app: don't use -1 for geometry hints where not allowed 2010-12-08 10:18:09 +01:00
Michael Natterer
0ba0b637f2 app: add gimp_devices_check_callback() with the signature of an event callback
and use it in the toolbox. Will soon be used in more places.
2010-12-06 10:23:15 +01:00
Michael Natterer
e50f6aaf0f app: make gimp_devices_select_device() private 2010-12-06 10:18:32 +01:00
Michael Natterer
d6f28f2274 Bug 550662 - DND prefers text/plain over text/svg+xml, should be other way around
Move the call to gimp_dnd_uri_list_dest_add() to the end of the DND
setup code because it adds text/plain for legacy URI DND support,
which is way too generic to be handled first.
2010-11-29 22:04:56 +01:00
Michael Natterer
4b729086a9 app: cast GtkTargetEntry.target to gchar* when freeing it
because it was made const in GTK+.
2010-11-29 15:41:38 +01:00
Michael Natterer
c4ec18790c Bug 598253 - Bug when copying path from a document to another document
Don't scale the SVG to image size when pasting or importing. SVGs have
a size just as pixel images, and there is no reason not to use that
size as-is.
2010-11-27 22:28:34 +01:00
Michael Natterer
b1106845d4 app: the tool-list and tool-grid views are gone, don't try to open them 2010-11-26 10:44:46 +01:00
Michael Natterer
88f2af98aa app: clean up the dynamics editor
Also fix its sensitivity when a read-only data is set. Fixes bug
curves).
2010-11-24 23:01:50 +01:00
Michael Natterer
ef87b83ff0 app: change toolbox geometry hints to something that's closer to the docs
Feels more correct now when resizing, but not really.
2010-11-20 20:44:16 +01:00
Michael Natterer
a598b2d1be app: I don't know what I was thinking when changing these function names... 2010-11-20 20:37:15 +01:00
Michael Natterer
74a09704ba app: some toolbox cleanup
Add precondition checks and assertions for needed members and remove
unused API.
2010-11-20 15:19:48 +01:00
Michael Natterer
e4a96c738e app: factor out duplicated code to gimp_tool_palette_get_button_size()
and use that function in GimpToolPalette and GimpToolbox.
2010-11-20 10:20:52 +01:00
Michael Natterer
281969b45d app: add GimpToolPalette which derives from GtkToolPalette
and move all of GimpToolbox' tool button code there.
2010-11-19 23:52:09 +01:00
Michael Natterer
6960dda6f2 app: draw GimpSpinScale's label with style->text, not style->fg 2010-11-19 14:08:37 +01:00
Michael Natterer
dc564954d5 app: namespace the ink blob
Blob -> GimpBlob, blob_foo() -> gimp_blob_foo() etc.
2010-11-14 16:43:21 +01:00
Michael Natterer
c4cd420ef8 app: rename GIMP_INK_BLOB_TYPE_ELLIPSE to GIMP_INK_BLOB_TYPE_CIRCLE
- TYPE_SQUARE is also named SQUARE and not RECTANGLE
- serialization doesn't suffer from the changed name because it's the
  default value that never gets serialized
- a lot of messy code in the ink options can be replaced by a one-liner
  because the enum names now match their resp. stock items
2010-11-14 16:29:42 +01:00
Michael Natterer
1741d39d8b app: gimp_widget_flush_expose() return if the widget is not drawable 2010-11-10 00:13:07 +01:00
Michael Natterer
cacf8b550f app: add gimp_widget_flush_expose() utility function
which flushes all pending exposes for a widget without running the
main loop. Useful for updating progress bars without returning to the
main loop.
2010-11-09 19:33:15 +01:00
Michael Natterer
71de3d7bdf app: use "pixels/unit" as label for the resolution menu
instead of "pixels/abbreviated unit". This is soon going to be
supported generically by GimpUnitComboBox just as with the old unit
menu.
2010-11-05 16:24:37 +01:00
Alexia Death
dfd5470a2e Merge remote branch 'origin/master' into soc-2010-cage-2 2010-11-04 20:00:36 +02:00
Alexia Death
27c77e6a5e Merge branch 'master' into soc-2010-cage-2 2010-11-04 00:41:45 +02:00
Mikael Magnusson
90e525ca09 app: use a spin scale for the brush size (have to limit size to 1000 temporarily) 2010-11-02 14:41:21 +01:00
Michael Natterer
8f991c5950 app: make the brush, pattern etc selecing boxes more compact
by integrating their label instead of requiring one externally. This
way we get rid of some more labels in the tool options. Also clean up
tool options further (add more spin scales, and some general
reordering and spacing cleanup).
2010-11-02 14:05:47 +01:00
Michael Natterer
37038ab77f app: add an opacity prop scale 2010-11-01 22:07:39 +01:00
Michael Natterer
8bf497294e app: enable adjustment based prop widgets for all numeric param types 2010-11-01 21:48:19 +01:00
Michael Natterer
e84a0eebf9 app: fix gimp_prop_spin_scale_new() by setting the pspec on the right object 2010-11-01 20:54:43 +01:00
Michael Natterer
864e6bdfc0 app: don't show a text cursor when not over the editable text 2010-11-01 20:51:13 +01:00
Michael Natterer
01f4bad1f6 app: add gimp_prop_spin_scale_new() 2010-11-01 20:04:35 +01:00
Michael Natterer
ae3afca697 app: add new widget GimpSpinScale which is a combined spinbutton and scale 2010-11-01 20:03:39 +01:00
Martin Nordholts
48690d60e1 app: Add gimp_tools_get/set_tool_options_gui()
Add gimp_tools_get_tool_options_gui() and
gimp_tools_set_tool_options_gui() widgets utility functions.
2010-10-31 13:05:15 +01:00
Michael Natterer
b9a7c121a4 app: don't inherit from GtkHBox or GtkVBox
Instead, inherit from GtkBox directly and set the orientation in
init().  Replace more gtk_container_add() by gtk_box_pack_start() in
the reparented classes.
2010-10-30 15:44:46 +02:00
Michael Natterer
060a08da5a app: +1 2010-10-30 15:43:56 +02:00
Michael Natterer
56dee7245a app: and one more 2010-10-30 15:43:17 +02:00
Michael Natterer
ebc92dc5b4 app: more gtk_container_add -> gtk_box_pack_start 2010-10-30 15:42:25 +02:00
Michael Natterer
0829e5b028 app: simplify how the colormap editor sets FG/BG colors
Set the FG/BG on the widget's own context and remove the "selected"
signal and its callback in dialogs-constructors.c
2010-10-28 03:09:53 +02:00
Michael Natterer
112ca01064 app: bye bye deprecated GtkPreview
Use a GimpPaletteView for the colormap editor.
2010-10-28 02:16:52 +02:00
Michael Natterer
32d5d1681b app: don't crash if the palette is NULL 2010-10-28 02:16:52 +02:00
Michael Natterer
9dee789cfd app: emit "update" when the viewable goes away via the weak notify 2010-10-28 02:16:51 +02:00
Alexia Death
e8df164366 app: Add dynamics selector to the tool options 2010-10-27 21:49:24 +03:00
Michael Natterer
d1307a84a4 app: return TRUE from button_press() so the event doesn't get to the notebook 2010-10-27 15:39:52 +02:00
Michael Natterer
f46122b862 app: add lots of accessors to GimpPalette
and use them all over the place instead of directly accessing the struct.
2010-10-27 14:36:44 +02:00
Michael Natterer
6fc4c42298 Bug 348183 - palette editor doesn't show all palette colors
Remove a crack eventbox and a double crack alignment and suddenly the
widget behaves properly. I have no idea what "important" feature I
killed with that removal, but the whole palette editing code needs
some serious chopping soon.
2010-10-25 22:54:55 +02:00
Michael Natterer
71ab7f4291 app: cairo_translate() by allocation.x,y 2010-10-22 18:46:57 +02:00
Michael Natterer
8f8ea74d1f app: return TRUE from button and motion callbacks because we handled the events 2010-10-21 13:19:51 +02:00
Michael Natterer
199804bce5 app: fix alphabetic order 2010-10-21 12:02:49 +02:00
Michael Natterer
8a1517f18b app: properly select icon view items
so that they are visually selected also when the widget never got
focus.
2010-10-21 11:53:41 +02:00
Michael Natterer
c60e29254b app: don't try to set properties of a NULL icon view 2010-10-21 11:38:58 +02:00
Michael Natterer
7cfda8cc33 app: use pango_cairo_show_layout() instead of a GdkPangoRenderer 2010-10-20 19:25:03 +02:00
Michael Natterer
83407d230c app: build with GSEAL_ENABLE (don't access widget->requisition) 2010-10-20 19:09:54 +02:00
Michael Natterer
c8bef14682 app: fix Makefile.am formatting 2010-10-20 19:04:32 +02:00
Michael Natterer
090a465362 app: don't pass "GdkRectangle *draw_area" to gimp_view_renderer_draw()
Instead, handle the drawing offset generically by offsetting the
cairo_t in two places in the callers, and only pass the width and
height available for drawing.
2010-10-20 18:04:18 +02:00
Michael Natterer
7ab96f6b5c app: don't chain up in GtkWidget::size-request()
It's useless with GTK+ 2.x and entirely breaks the widget with GTK+ 3.x
2010-10-20 17:32:54 +02:00
Sven Neumann
1130e8c890 Bug 631728 - Crash or Gtk-CRITICAL on File->Open
Check return value of gtk_icon_theme_lookup_by_gicon() before using it.
2010-10-18 18:28:57 +02:00
Michael Natterer
0e9442b7c0 app: fix typo in comment 2010-10-18 12:44:58 +02:00
Michael Natterer
628439bc31 app: simplify toolbox wilber drawing a lot 2010-10-15 16:03:36 +02:00
Michael Natterer
37effb99a4 app: use the window's allocation instead of gdk_drawable_get_size() 2010-10-15 15:17:12 +02:00
Michael Natterer
5af8cc1d40 app: translate the cr by allocation.x,y instead of doing this while drawing 2010-10-15 15:06:43 +02:00
Michael Natterer
b69eea8cd6 app: implement GObject::dispose() instead of GtkObject::destroy() 2010-10-15 14:08:36 +02:00
Michael Natterer
3c18ba3497 app: implement GObject::dispose() instead of GtkWidget::destroy() 2010-10-15 13:48:36 +02:00
Michael Natterer
756b7310e7 app: cairo_translate() by allocation.x,y instead of doing that when drawing 2010-10-15 13:02:05 +02:00
Michael Natterer
1cc27bcef7 app: port gimp_view_renderer_draw() to take a cairo_t* instead of GdkWindow*
and pass in the cr with clipping set up from the callers instead.
2010-10-15 12:53:58 +02:00
Michael Natterer
dc39857238 app: add GimpSegment as replacement for GdkSegment 2010-10-15 12:37:36 +02:00
Michael Natterer
74458f46ee app/libgimpwidgets: move GimpUnitStore and GimpUnitComboBox to libgimpwidgets 2010-10-14 22:15:25 +02:00
Michael Natterer
b24c25d317 app: don't use GET_PRIVATE() before the precondition check 2010-10-14 17:33:07 +02:00
Christian Krippendorf
ff03681bdf Bug 627328 - GIMP 2.6.10 segfaults when CTRL-left click on a layer mask
Move the g_signal_emit() to the end, because the cell->renderer could
be changed and cause a segfault. Also check cell->renderer before
dereferencing it.
2010-10-10 22:32:22 +02:00
Martin Nordholts
cc7755f876 Port stuff to gimp_item_is_text_layer()
Port stuff to gimp_item_is_text_layer() instead of
gimp_drawable_is_text_layer(). Nevermind the previous commit, it
should never have been pushed...
2010-10-05 07:39:00 +02:00
Martin Nordholts
49a0be731e app: s/gimp_drawable_is_text_layer/gimp_item_is_text_layer/g 2010-10-05 07:12:30 +02:00
Michael Natterer
7dbaf348c5 app: fix gimp_text_buffer_get_color_tag()
Change the generated tag names to use #rrggbb notation and compare the
colors on an 8 bit basis to make sure the comparison and the tag names
exist in the same set of values (otherwise the text buffer gets into
an inconsistent state that can even lead to crashes).
2010-10-02 19:53:39 +02:00
Michael Natterer
68b380fa4e app: forgot to check for "color_differs" for breaking out of a loop
Shouldn't change anything, just be slightly faster in some cases.
2010-10-02 19:51:49 +02:00
Michael Natterer
6a2785173d app: port GimpSamplePointEditor to the "sample-point-moved" signal 2010-10-01 09:27:57 +02:00
Michael Natterer
81cfb44047 app: use a GimpColorPanel not a GimpColorButton in the text style editor
so we get proper color previews in the popup menu.
2010-09-29 21:14:51 +02:00
Michael Natterer
7ed79e9fe1 app: fix off-by-0.5 in boundary drawing
which doesn't seem to have any visual effect...
2010-09-26 23:00:23 +02:00
Michael Natterer
8f9ec0650f app: move code from GtkObject::destroy() to GObject::dispose() 2010-09-26 22:38:01 +02:00
Alexia Death
74e5864fa6 Merge branch 'master' into soc-2010-cage-2 2010-09-26 23:08:15 +03:00
Michael Natterer
74fe162f93 app: move adding an arc path out to a utility function 2010-09-24 13:12:34 +02:00
Michael Natterer
612aee9f33 app: change segment drawing to using pixel centers and CAP_SQUARE line ends
This looks exactly the same for the selection, but is needed like that
for segment drawing in tools.
2010-09-23 19:24:10 +02:00
Sven Neumann
5abae32923 app: cache bezier representation in GimpVectors object
Introduce gimp_vectors_get_bezier() which creates the bezier
representation on demand and then caches it for subsequent calls
until the vectors object is frozen.

At some point we should introduce GimpVectors::changed instead
of relying on the fact that a vectors object is always frozen
and thawn whenever it is changed...
2010-09-16 21:36:51 +02:00
Sven Neumann
81182d93f7 app: use gimp_label_set_attributes() instead of markup
Use our convenient label utility function for styling. Also correct
box packing (passing FALSE, TRUE to gtk_box_pack_start() is pointless).
2010-09-16 21:12:07 +02:00
Martin Nordholts
ec7fc273d8 Bug 629436 - the current tool is not shown in the tool options dialog 2010-09-16 17:46:10 +02:00
Michael Natterer
7f9a4d51f7 app: get rid of using gdk_draw to construct bitmap cursors
At the same time, get rid of bitmap cursors alltogether. Instead
(because it looks ugly to have GDK convert RGBA cursors into bitmaps
for old X servers), add the bitmaps as proper PNGs and simply use them
as RGBA cursors.
2010-09-10 19:12:52 +02:00
Michael Natterer
3b0c4e2e5e app: port a gdk_draw_rectangle() in GimpComboTagEntry to cairo 2010-09-10 13:47:04 +02:00
Alexia Death
6a22f17ab3 Merge branch 'master' into soc-2010-cage-2 2010-09-02 18:49:35 +03:00