Difference between revisions of "Clipboard"

From Inkscape Wiki
Jump to: navigation, search
(How can I add a new SVG mimetype?: Creation)
m (Refactoring)
Line 1: Line 1:
== Copying ==
+
== What can I copy? ==
 
+
=== What can I copy? ===
+
  
 
When copying, different scenari could appear (cf. [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/files/head%3A/src/ui/clipboard.cpp void ClipboardManagerImpl::copy(SPDesktop *desktop)]):
 
When copying, different scenari could appear (cf. [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/files/head%3A/src/ui/clipboard.cpp void ClipboardManagerImpl::copy(SPDesktop *desktop)]):
Line 10: Line 8:
 
* In all other cases, the objects selected are copied
 
* In all other cases, the objects selected are copied
  
== Pasting ==
+
== What can I paste? ==
  
=== What can I paste? ===
+
=== Default behaviour ===
 
+
==== Default behaviour ====
+
  
 
When pasting, the clipboard items will be scaned at a predefined order (cf. [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/files/head%3A/src/ui/clipboard.cpp ClipboardManagerImpl::ClipboardManagerImpl()]) but the idea is to search data in the clipboard following this order:
 
When pasting, the clipboard items will be scaned at a predefined order (cf. [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/files/head%3A/src/ui/clipboard.cpp ClipboardManagerImpl::ClipboardManagerImpl()]) but the idea is to search data in the clipboard following this order:
Line 33: Line 29:
 
* Text string
 
* Text string
  
==== Special behaviour ====
+
=== Special behaviour ===
  
 
Those behaviours are accessible via keyboard shortcuts and/or menus:
 
Those behaviours are accessible via keyboard shortcuts and/or menus:
Line 41: Line 37:
 
* Paste style ([[Edit menu]]) (cf. [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/files/head%3A/src/ui/clipboard.cpp bool ClipboardManagerImpl::pasteStyle(SPDesktop *desktop)])
 
* Paste style ([[Edit menu]]) (cf. [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/files/head%3A/src/ui/clipboard.cpp bool ClipboardManagerImpl::pasteStyle(SPDesktop *desktop)])
  
=== How can I add a new SVG mimetype? ===
+
== Developpers informations ==
 +
 
 +
=== How can I allow pasting a new SVG mimetype? ===
  
 
Nota: this section is underwriting and should be used with caution.
 
Nota: this section is underwriting and should be used with caution.
Line 54: Line 52:
 
## Add a new case in the ''if'' with your mimetype
 
## Add a new case in the ''if'' with your mimetype
  
== Source files ==
+
=== Source files ===
  
 
* [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/files/head%3A/src/ui/clipboard.cpp /src/ui/clipboard.cpp]
 
* [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/files/head%3A/src/ui/clipboard.cpp /src/ui/clipboard.cpp]
 
* [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/files/head%3A/src/ui/clipboard.h /src/ui/clipboard.h]
 
* [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/files/head%3A/src/ui/clipboard.h /src/ui/clipboard.h]

Revision as of 21:52, 28 March 2012

What can I copy?

When copying, different scenari could appear (cf. void ClipboardManagerImpl::copy(SPDesktop *desktop)):

  • If Inkscape is in Gradient mode and a gradient is selected, the selected gradient is copied
  • If Inkscape is in Color picker mode, the color under the cursor is copied
  • If Inkscape is in Text mode and if a text is selected, the selected text is copied
  • In all other cases, the objects selected are copied

What can I paste?

Default behaviour

When pasting, the clipboard items will be scaned at a predefined order (cf. ClipboardManagerImpl::ClipboardManagerImpl()) but the idea is to search data in the clipboard following this order:

  • Inkscape SVG ressource
    • image/x-inkscape-svg
  • SVG ressource
    • image/svg+xml
    • image/svg+xml-compressed
  • Others vector formats:
    • PDF ressource
    • Adobe Illustrator ressource

If no ressource is found, other formats are searched (cf. bool ClipboardManagerImpl::paste(SPDesktop *desktop, bool in_place)):

  • Windows users only: EMF ressource
  • Image ressource
  • Text string

Special behaviour

Those behaviours are accessible via keyboard shortcuts and/or menus:

Developpers informations

How can I allow pasting a new SVG mimetype?

Nota: this section is underwriting and should be used with caution.

Default non-Inkscape SVG mimetype is image/svg+xml. In order to deal with others non-Inkscape SVG mimetypes, do the following:

  1. In src/ui/clipboard.cpp
    1. Locate ClipboardManagerImpl::ClipboardManagerImpl()
    2. Just after the image/svg+xml mimetype, add a new line with your mimetype
    3. Locate ClipboardManagerimpl::_retrieveClipboard()
    4. The goal here is to change the mimetype from yours to the default non-Inkscape SVG mimetype. Locate the if test which set the target to the default non-Inkscape SVG mimetype
    5. Add a new case in the if with your mimetype

Source files