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