Commit graph

38 commits

Author SHA1 Message Date
Michael Natterer
adbac2f680 Issue #2446 - DPI information is not stored in clipboard
Set the "x-dpi" and "y-dpi" options on the GdkPixbuf set on the
clipboard. There is not much more we can do, getting that value across
the clipboard is out of our control, but at least we set the vlaues
now.

(cherry picked from commit a0263f40d0)
2019-01-04 18:13:42 +01:00
Michael Natterer
a88c0ffb93 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:47:19 +02:00
Michael Natterer
9be8c0add3 app: cleanup in GimpClipboard
Mostly formatting and thortening variables. Only real change is adding
gimp_clipboard_new() and moving most init() code there.

(cherry picked from commit e0f46d1dc9)
2018-06-18 01:51:33 +02:00
Michael Natterer
22ae38d024 Issue #1441 - Copy paste issue, internal clipboard blocks global clipboard
Never return an internal image/buffer/svg/curve from any
gimp_clipboard function if we are not the owner of the display's
clipboard. The clipboard is supposed to be a global thing, and we must
only offer to ourselves what would be pasted in any other app.

(cherry picked from commit 7d3a129ddd)
2018-06-08 11:42:18 +02:00
Michael Natterer
0cb3e75f79 app: use a lot of g_clear_object() and g_clear_pointer()
More than 2000 lines of code less in app/, instead of

if (instance->member)
  {
    g_object_unref/g_free/g_whatever (instance->member);
    instance->member = NULL;
  }

we now simply use

g_clear_object/pointer (&instance->member);
2017-07-15 18:42:44 +02:00
Michael Natterer
35588d79c8 app: add utility functions to get a generic paste GimpObject
to Gimp and GimpClipboard. The object is either an image or a buffer
or NULL.
2016-09-21 00:11:15 +02:00
Michael Natterer
1f00b5e70f app: add setting/getting and sending/recieving images via GimpClipboard
The new functionality is not used yet.
2016-09-18 22:01:13 +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
d771249466 app: completely port GimpBuffer to using GeglBuffer not TileManager 2012-05-02 17:45:47 +02: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
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
fdde593fc5 app: enable copy and paste for curves
Add GimpCurve support to the clipboard and handle ctrl-x, ctrl-c and
ctrl-v in GimpCurveView.
2010-02-16 19:58:51 +01:00
Michael Natterer
d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
2009-01-17  Michael Natterer  <mitch@gimp.org>

	* all files with a GPL header and all COPYING files:

	Change licence to GPLv3 (and to LGPLv3 for libgimp).

	Cleaned up some copyright headers and regenerated the parsers in
	the ImageMap plugin.


svn path=/trunk/; revision=27913
2009-01-17 22:28:01 +00:00
Sven Neumann
17f8ab01e6 app/widgets/gimpclipboard.c app/widgets/gimpcontainerview.c allocate
2007-05-22  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpclipboard.c
	* app/widgets/gimpcontainerview.c
	* app/widgets/gimpdialogfactory.c: allocate structs using 
GSlice.


svn path=/trunk/; revision=22582
2007-05-22 18:08:42 +00:00
Sven Neumann
efb221acc7 app/widgets/gimpclipboard.c app/widgets/gimpdnd-xds.c use
2007-04-28  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpclipboard.c
	* app/widgets/gimpdnd-xds.c
	* plug-ins/helpbrowser/dialog.c: use 
gdk_atom_intern_static_string().


svn path=/trunk/; revision=22360
2007-04-28 10:11:37 +00:00
Sven Neumann
41237259c9 In all files, changed the standard copyright notice to say "GIMP - The GNU
2006-12-09  Sven Neumann  <sven@gimp.org>

        * In all files, changed the standard copyright notice to say
        "GIMP - The GNU Image Manipulation Program".
2006-12-09 21:33:38 +00:00
Michael Natterer
b53aa45a76 Changed GimpViewable preview rendering to have a context to get
2006-08-29  Michael Natterer  <mitch@gimp.org>

	Changed GimpViewable preview rendering to have a context to get
	FG/BG/whatever from. Use the context to enable dynamic FG/BG
	colors in gradients. Fixes bug #127676 and bug #352214. Addresses
	bug #128367 (doesn't fix it because there's no loading/saving and
	no GUI yet).

	* app/core/core-enums.[ch]: added enum GimpGradientColor to enable
	specifying gradient colors in terms of foreground and background.

	* app/core/gimpgradient.[ch]: added color_type members to the
	GimpGradientSegment struct and honor them in
	gimp_gradient_get_color_at(). Added GimpContext parameters to all
	functions which finally call get_color_at().

	* app/core/gimp-gradients.c: use the new method to implement the
	builtin gradients.

	* app/core/gimpviewable.[ch]: added GimpContext parameters to all
	get_preview() and get_pixbuf() functions.

	* app/core/gimpbrush.c
	* app/core/gimpbuffer.c
	* app/core/gimpdrawable-preview.[ch]
	* app/core/gimpgradient.c
	* app/core/gimpimage-preview.[ch]
	* app/core/gimpimagefile.c
	* app/core/gimppalette.c
	* app/core/gimppattern.c
	* app/core/gimpundo.[ch]
	* app/text/gimpfont.c
	* app/vectors/gimpvectors-preview.[ch]: changed ::get_preview()
	and ::get_pixbuf() implementations accordingly.

	* app/core/gimpdrawable-blend.c
	* app/core/gimppalette-import.[ch]
	* app/dialogs/dialogs-constructors.c
	* app/dialogs/palette-import-dialog.c
	* app/dialogs/resize-dialog.c
	* app/display/gimpdisplayshell-layer-select.c
	* app/display/gimpdisplayshell.c
	* app/display/gimpnavigationeditor.c
	* app/paint/gimppaintoptions.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimptexttool.c
	* app/actions/gradient-editor-commands.c
	* app/widgets/gimpaction.c
	* app/widgets/gimpbrusheditor.[ch]
	* app/widgets/gimpbufferview.c
	* app/widgets/gimpcellrendererviewable.c
	* app/widgets/gimpchanneltreeview.c
	* app/widgets/gimpclipboard.c
	* app/widgets/gimpcoloreditor.c
	* app/widgets/gimpcomponenteditor.c
	* app/widgets/gimpcontainerbox.c
	* app/widgets/gimpcontainercombobox.c
	* app/widgets/gimpcontainereditor.c
	* app/widgets/gimpcontainerentry.c
	* app/widgets/gimpcontainergridview.c
	* app/widgets/gimpcontainertreeview.[ch]
	* app/widgets/gimpdataeditor.[ch]
	* app/widgets/gimpdevicestatus.c
	* app/widgets/gimpdnd.[ch]
	* app/widgets/gimpdrawabletreeview.c
	* app/widgets/gimpfiledialog.c
	* app/widgets/gimpgradienteditor.[ch]
	* app/widgets/gimpgradientselect.c
	* app/widgets/gimpitemtreeview.c
	* app/widgets/gimplayertreeview.c
	* app/widgets/gimppaletteeditor.[ch]
	* app/widgets/gimppropwidgets.[ch]
	* app/widgets/gimpselectioneditor.c
	* app/widgets/gimpthumbbox.[ch]
	* app/widgets/gimptoolbox-image-area.c
	* app/widgets/gimptoolbox-indicator-area.c
	* app/widgets/gimptooloptionseditor.c
	* app/widgets/gimpundoeditor.c
	* app/widgets/gimpvectorstreeview.c
	* app/widgets/gimpview-popup.[ch]
	* app/widgets/gimpview.[ch]
	* app/widgets/gimpviewablebutton.c
	* app/widgets/gimpviewabledialog.c
	* app/widgets/gimpviewrenderer.[ch]
	* app/widgets/gimpviewrenderer-frame.c
	* app/widgets/gimpviewrendererbrush.c
	* app/widgets/gimpviewrendererbuffer.c
	* app/widgets/gimpviewrendererdrawable.c
	* app/widgets/gimpviewrenderergradient.c
	* app/widgets/gimpviewrendererimage.c
	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/gradient.pdb
	* tools/pdbgen/pdb/gradients.pdb
	* tools/pdbgen/pdb/image.pdb: added tons of GimpContext members
	and parameters, implement GimpDocked::set_context() in many
	widgets. Pass these locally remembered contexts to GimpViewable
	functions. Did some minor cleanups on the way. There are still
	some minor FIXMEs around where the code uses a NULL context (which
	is allowed by the APIs)

	* app/pdb/drawable_cmds.c
	* app/pdb/gradient_cmds.c
	* app/pdb/gradients_cmds.c
	* app/pdb/image_cmds.c: regenerated.
2006-08-29 21:44:51 +00:00
Michael Natterer
3fac0dd74f fix parameter name in API docs.
2006-04-15  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpclipboard.c (gimp_clipboard_set_buffer): fix
	parameter name in API docs.
2006-04-15 16:49:59 +00:00
Michael Natterer
82282ea86c added g_return_if_fail (GIMP_IS_GIMP (gimp)).
2005-11-02  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpclipboard.c (gimp_clipboard_set_text): added
	g_return_if_fail (GIMP_IS_GIMP (gimp)).
2005-11-02 19:52:47 +00:00
Sven Neumann
afde82bb8f clear the GIMP clipboard. Suppress debug output unless gimp is started
2005-11-02  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpclipboard.[ch] (gimp_clipboard_set_text): clear
	the GIMP clipboard. Suppress debug output unless gimp is started
	with the --verbose command-line option.

	* app/actions/data-commands.c
	* app/actions/documents-commands.c: adapt to clipboard API change.
2005-11-02 12:03:37 +00:00
Sven Neumann
6ad8c74080 app/actions/data-commands.c app/actions/documents-commands.c moved text
2005-11-01  Sven Neumann  <sven@gimp.org>

	* app/actions/data-commands.c
	* app/actions/documents-commands.c
	* app/widgets/gimpclipboard.[ch]: moved text clipboard handling to
	utility function to avoid code duplication.
2005-11-01 11:01:44 +00:00
Michael Natterer
ae4d65ac04 Separated the global buffer logic from the clipboard implementation:
2005-09-21  Michael Natterer  <mitch@gimp.org>

	Separated the global buffer logic from the clipboard
	implementation:

	* app/widgets/gimpclipboard.[ch]: removed all knowledge about
	gimp->global_buffer. Removed the Gimp::buffer-changed callback.
	Made gimp_clipboard_set_buffer() public and remember the set
	buffer in the GimpClipboard struct. Fixed the has_buffer() and
	has_svg() functions.

	* app/gui/gui.c: connect to Gimp::buffer-changed here and call
	gimp_clipboard_set_buffer() from the callback.
2005-09-21 14:35:51 +00:00
Michael Natterer
c7998a1855 added new public function gimp_clipboard_set_svg() and internal stuff to
2005-09-19  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpclipboard.[ch]: added new public function
	gimp_clipboard_set_svg() and internal stuff to offer and transfer
	the svg data to the clipboard.

	* app/actions/vectors-commands.c (vectors_copy_cmd_callback)
	(vectors_paste_cmd_callback): implement copy/paste of vectors as
	SVG. Fixes bug #316547.

	* app/widgets/gimpvectorstreeview.c
	(gimp_vectors_tree_view_drag_svg): don't add the terminating
	nul-byte of the svg string to svg_data_length, it confuses the XML
	parser.

	* app/actions/vectors-actions.c
	* app/actions/vectors-commands.[ch]
	* menus/vectors-menu.xml: reordered export/import so they are in
	the same order as copy/paste.
2005-09-19 21:33:03 +00:00
Sven Neumann
b8fc8e6050 themes/Default/images/Makefile.am
2005-07-29  Sven Neumann  <sven@gimp.org>

	* themes/Default/images/Makefile.am
	* themes/Default/images/tools/stock-tool-foreground-select-16.png
	* themes/Default/images/tools/stock-tool-foreground-select-22.png:
	added placeholder for yet-to-be-drawn tool icon.

	* libgimpwidgets/gimpstock.[ch]: register it.

	* app/tools/gimpforegroundselecttool.c: use it.

	* app/widgets/gimpclipboard.[ch] (gimp_clipboard_get_svg): return
	a signed char pointer.

	* app/actions/edit-commands.c
	* app/tools/gimpinkoptions-gui.c: fixed signedness issues.
2005-07-29 18:04:59 +00:00
Sven Neumann
93eab43eef Use the canonical form for signal names.
2005-05-27  Sven Neumann  <sven@gimp.org>

	* (lots of files): Use the canonical form for signal names.
2005-05-27 16:51:39 +00:00
Sven Neumann
e0b3fdfc3c fixed gtk-doc comments.
2005-05-25  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpclipboard.[ch]: fixed gtk-doc comments.
2005-05-25 11:23:06 +00:00
Michael Natterer
cd53b60701 added gimp_clipboard_has_svg() and gimp_clipboard_get_svg().
2005-05-16  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpclipboard.[ch]: added gimp_clipboard_has_svg()
	and gimp_clipboard_get_svg().

	* app/actions/edit-commands.c (edit_paste_cmd_callback): enabled
	pasting of SVG data using gimp_vectors_import_buffer().
2005-05-16 12:31:04 +00:00
Sven Neumann
55be97a021 free all memory allocated for GimpClipboard.
2005-04-27  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpclipboard.c (gimp_clipboard_free): free all
	memory allocated for GimpClipboard.

	* libgimpwidgets/gimppatheditor.c (gimp_path_editor_set_path):
	always free old_path.
2005-04-27 15:59:14 +00:00
Michael Natterer
1fe869bbfd don't include "core/gimpviewable.h"
2005-04-11  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpclipboard.c: don't include "core/gimpviewable.h"
2005-04-11 16:01:25 +00:00
Michael Natterer
9d439fe018 added gimp_buffer_new_from_pixbuf().
2005-04-09  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpbuffer.[ch]: added gimp_buffer_new_from_pixbuf().

	* app/widgets/gimpclipboard.c: removed
	tile_manager_new_from_pixbuf() and base/ dependency.
2005-04-09 21:52:21 +00:00
Michael Natterer
7609645970 Implement dragging and dropping in any GdkPixbuf supported format. Fixes
2005-04-09  Michael Natterer  <mitch@gimp.org>

	Implement dragging and dropping in any GdkPixbuf supported
	format. Fixes bug #172794 and bug #172795.

	* app/core/gimplayer.[ch] (gimp_layer_new_from_region): new
	function which contains all stuff that was in
	gimp_layer_new_from_tiles().

	(gimp_layer_new_from_tiles): use above function.
	(gimp_layer_new_from_pixbuf): new function.

	* app/widgets/Makefile.am
	* app/widgets/gimppixbuf.[ch]: new files containing GdkPixbuf
	utility functions for clipboard and DnD.

	* app/widgets/gimpselectiondata.[ch]: removed
	gimp_selection_data_set,get_pixbuf(), GTK+ provides the same API.
	Also removed GdkAtom parameters all over the place because it's
	always the same as selection_data->target.

	* app/widgets/gimpclipboard.c: use the new pixbuf utility
	functions and gtk_selection_data_set,get_pixbuf().

	* app/widgets/widgets-enums.h
	* app/widgets/gimpdnd.[ch]: removed never-implemented
	GIMP_DND_TYPE_PNG and added a generic GIMP_DND_TYPE_PIXBUF
	instead. Added API to drag and drop GdkPixbufs which transparently
	converts from/to and GdkPixbuf-supported image format. Removed
	passing around of GdkAtoms, since they were always the same
	as selection_data->target.

	* app/widgets/gimpdnd-xds.[ch]: follow GdkAtom parameter removal.

	* app/widgets/gimpcontainertreeview.[ch]: added virtual function
	GimpContainerTreeView::drop_pixbuf().

	* app/widgets/gimpcontainertreeview-dnd.c: dispatch drop_pixbuf().

	* app/widgets/gimplayertreeview.c: implement drop_pixbuf().

	* app/widgets/gimpdrawabletreeview.c: allow to drag all drawables
	as pixbufs.

	* app/display/gimpdisplayshell-dnd.c: allow dropping of pixbufs.
2005-04-09 17:56:04 +00:00
Tor Lillqvist
61ca231ce2 On Win32, move the "bmp" format to the front. Means less conversion in
2005-04-04  Tor Lillqvist  <tml@novell.com>

	* app/widgets/gimpclipboard.c (gimp_clipboard_format_compare): On
	Win32, move the "bmp" format to the front. Means less conversion
	in most cases, as other apps on Win32 typically provide/want the
	BMP format on the Clipboard. (Actually CF_DIB, but that's the
	same, just without the BMP file header.) See also bug #168173.
2005-04-04 00:33:35 +00:00
Sven Neumann
cf56c79553 allow to store the clipboard content in a clipboard manager when GIMP
2005-03-30  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpclipboard.c: allow to store the clipboard content
	in a clipboard manager when GIMP exits.
2005-03-29 22:05:50 +00:00
Sven Neumann
a27b0bff1c app/widgets/gimpuimanager.c (gimp_ui_manager_entry_load) only be verbose
2004-10-29  Sven Neumann  <sven@gimp.org>

        * app/widgets/gimpuimanager.c (gimp_ui_manager_entry_load)
        * app/widgets/gimpclipboard.c (gimp_clipboard_init): only be
        verbose on request.

        * app/plug-in/plug-in.c (plug_in_close): turned warnings into
        messages and respect gimp->be_verbose.
2004-10-29 21:54:32 +00:00
Michael Natterer
d18097028e added a "const gchar *format" parameter to
2004-07-08  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpselectiondata.[ch]: added a "const gchar *format"
	parameter to gimp_selection_data_set_pixbuf() which selects the
	format in which to encode the pixbuf (was defaulting to "png"
	before).

	* app/widgets/gimpclipboard.c: when copying, offer all formats which
	are savable with GdkPixbuf. Added a GimpClipboard struct which is
	attached to the Gimp and which stores all the persistent data
	needed by the clipboard. Renamed some private functions.

	(unfortunately this change breaks pasting to AbiWord:
	 http://bugzilla.abisource.com/show_bug.cgi?id=7068)
2004-07-08 11:27:48 +00:00
Sven Neumann
73b1182c80 sort the list of pixbuf formats so that PNG is the preferred format and
2004-07-07  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpclipboard.c: sort the list of pixbuf formats so
	that PNG is the preferred format and GIF and JPEG come last.
2004-07-07 18:09:14 +00:00
Michael Natterer
94163a8beb changed to allow pasting any GdkPixbuf supported format (makes pasting
2004-07-07  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpclipboard.[ch]: changed to allow pasting any
	GdkPixbuf supported format (makes pasting from OpenOffice
	work). Cleaned up a bit to perpare pasting of SVG data.
2004-07-07 16:02:23 +00:00
Michael Natterer
8fc8cb487c app/gui/Makefile.am removed...
2004-07-07  Michael Natterer  <mitch@gimp.org>

	* app/gui/Makefile.am
	* app/gui/clipboard.[ch]: removed...

	* app/widgets/Makefile.am
	* app/widgets/gimpclipboard.[ch]: ...and added here.

	* app/actions/edit-commands.c
	* app/gui/gui.c: changed accordingly.
2004-07-07 14:38:23 +00:00
Renamed from app/gui/clipboard.c (Browse further)