<?xml version="1.0" encoding="UTF-8"?>
<XMI xmlns:UML="http://schema.omg.org/spec/UML/1.3" verified="false" timestamp="2006-09-26T21:24:26" xmi.version="1.2" >
 <XMI.header>
  <XMI.documentation>
   <XMI.exporter>umbrello uml modeller http://uml.sf.net</XMI.exporter>
   <XMI.exporterVersion>1.5.4</XMI.exporterVersion>
   <XMI.exporterEncoding>UnicodeUTF8</XMI.exporterEncoding>
  </XMI.documentation>
  <XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" />
 </XMI.header>
 <XMI.content>
  <UML:Model isSpecification="false" isLeaf="false" isRoot="false" xmi.id="m1" isAbstract="false" name="UML Model" >
   <UML:Namespace.ownedElement>
    <UML:Stereotype isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15470" isRoot="false" isAbstract="false" name="datatype" />
    <UML:Stereotype isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15488" isRoot="false" isAbstract="false" name="constructor" />
    <UML:Stereotype isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21962" isRoot="false" isAbstract="false" name="typedef" />
    <UML:Stereotype isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23204" isRoot="false" isAbstract="false" name="enum" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15469" isRoot="false" isAbstract="false" name="int" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15471" isRoot="false" isAbstract="false" name="char" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15472" isRoot="false" isAbstract="false" name="bool" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15473" isRoot="false" isAbstract="false" name="float" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15474" isRoot="false" isAbstract="false" name="double" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15475" isRoot="false" isAbstract="false" name="short" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15476" isRoot="false" isAbstract="false" name="long" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15477" isRoot="false" isAbstract="false" name="unsigned int" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15478" isRoot="false" isAbstract="false" name="unsigned short" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15479" isRoot="false" isAbstract="false" name="unsigned long" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15480" isRoot="false" isAbstract="false" name="string" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15491" isRoot="false" isAbstract="false" name="double*" elementReference="15474" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15496" isRoot="false" isAbstract="false" name="K3Command*" elementReference="15482" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15500" isRoot="false" isAbstract="false" name="KoShapeManager*" elementReference="15483" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15503" isRoot="false" isAbstract="false" name="const QRectF&amp;" elementReference="15502" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15506" isRoot="false" isAbstract="false" name="KoTool*" elementReference="15484" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15510" isRoot="false" isAbstract="false" name="KoViewConverter*" elementReference="15485" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15513" isRoot="false" isAbstract="false" name="QWidget*" elementReference="15512" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15529" isRoot="false" isAbstract="false" name="KoCanvasBase*" elementReference="15486" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15541" isRoot="false" isAbstract="false" name="QObject*" elementReference="15540" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15543" isRoot="false" isAbstract="false" name="QEvent*" elementReference="15519" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15546" isRoot="false" isAbstract="false" name="KoCanvasController*" elementReference="15520" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15568" isRoot="false" isAbstract="false" name="QGridLayout*" elementReference="15517" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15572" isRoot="false" isAbstract="false" name="Viewport*" elementReference="15556" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15579" isRoot="false" isAbstract="false" name="const QPointF&amp;" elementReference="15578" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21938" isRoot="false" isAbstract="false" name="QValueVector&lt; KSharedPtr &lt; T > >" elementReference="21937" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21958" isRoot="false" isAbstract="false" name="KSharedPtr&lt; T >" elementReference="21957" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22007" isRoot="false" isAbstract="false" name="const KisCommandHistoryListener*" elementReference="21997" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22018" isRoot="false" isAbstract="false" name="const QString&amp;" elementReference="21996" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22022" isRoot="false" isAbstract="false" name="const KisUndoAdapter&amp;" elementReference="22003" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22026" isRoot="false" isAbstract="false" name="KisUndoAdapter&amp;" elementReference="22003" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22052" isRoot="false" isAbstract="false" name="KoStore*" elementReference="22051" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22058" isRoot="false" isAbstract="false" name="const QDomDocument&amp;" elementReference="22057" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22061" isRoot="false" isAbstract="false" name="KoOdfStylesReader&amp;" elementReference="22060" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22068" isRoot="false" isAbstract="false" name="KoXmlWriter*" elementReference="22067" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22074" isRoot="false" isAbstract="false" name="QIODevice*" elementReference="22073" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22083" isRoot="false" isAbstract="false" name="const QPoint&amp;" elementReference="22082" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22086" isRoot="false" isAbstract="false" name="KoView*" elementReference="22085" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22089" isRoot="false" isAbstract="false" name="const QMatrix&amp;" elementReference="22088" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22091" isRoot="false" isAbstract="false" name="KoDocument*" elementReference="22036" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22094" isRoot="false" isAbstract="false" name="QPainter&amp;" elementReference="22093" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22097" isRoot="false" isAbstract="false" name="const QRect&amp;" elementReference="22096" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22126" isRoot="false" isAbstract="false" name="KoColorSpace*" elementReference="22033" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22128" isRoot="false" isAbstract="false" name="const KoColor&amp;" elementReference="22034" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22131" isRoot="false" isAbstract="false" name="const double" elementReference="15474" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22144" isRoot="false" isAbstract="false" name="KisChildDoc*" elementReference="22032" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22150" isRoot="false" isAbstract="false" name="KisUndoAdapter*" elementReference="22003" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22166" isRoot="false" isAbstract="false" name="const KUrl&amp;" elementReference="22165" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22181" isRoot="false" isAbstract="false" name="QDomDocument&amp;" elementReference="22057" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22186" isRoot="false" isAbstract="false" name="const QDomElement&amp;" elementReference="22184" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22241" isRoot="false" isAbstract="false" name="K3CommandHistory*" elementReference="22028" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22244" isRoot="false" isAbstract="false" name="Q3PtrList&lt; KisCommandHistoryListener >" elementReference="22243" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22247" isRoot="false" isAbstract="false" name="KisNameServer*" elementReference="22031" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22249" isRoot="false" isAbstract="false" name="K3MacroCommand*" elementReference="22029" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22256" isRoot="false" isAbstract="false" name="QMap&lt; KisLayer *, QString >" elementReference="22255" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23046" isRoot="false" isAbstract="false" name="const KoSelectionSet&amp;" elementReference="23045" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23049" isRoot="false" isAbstract="false" name="QList&lt; QPointF >&amp;" elementReference="23048" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23053" isRoot="false" isAbstract="false" name="const QList&lt; KoShape * >&amp;" elementReference="23048" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23061" isRoot="false" isAbstract="false" name="QList&lt; QPointF >" elementReference="23048" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23063" isRoot="false" isAbstract="false" name="QList&lt; KoShape * >" elementReference="23048" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23073" isRoot="false" isAbstract="false" name="QList&lt; double >&amp;" elementReference="23048" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23080" isRoot="false" isAbstract="false" name="QList&lt; double >" elementReference="23048" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23107" isRoot="false" isAbstract="false" name="QList&lt; QSizeF >&amp;" elementReference="23048" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23114" isRoot="false" isAbstract="false" name="QList&lt; QSizeF >" elementReference="23048" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23122" isRoot="false" isAbstract="false" name="KoShapeContainer*" elementReference="23033" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23125" isRoot="false" isAbstract="false" name="QList&lt; bool >" elementReference="23048" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23128" isRoot="false" isAbstract="false" name="KoShapeGroup*" elementReference="23032" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23154" isRoot="false" isAbstract="false" name="KoShapeControllerBase*" elementReference="23034" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23156" isRoot="false" isAbstract="false" name="KoShape*" elementReference="23031" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23189" isRoot="false" isAbstract="false" name="const QBrush&amp;" elementReference="23188" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23196" isRoot="false" isAbstract="false" name="QList&lt; QBrush >" elementReference="23048" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23219" isRoot="false" isAbstract="false" name="KoShapeMoveCommand*" elementReference="23035" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23266" isRoot="false" isAbstract="false" name="KoSelection*" elementReference="15481" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23269" isRoot="false" isAbstract="false" name="const KoViewConverter&amp;" elementReference="15485" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23285" isRoot="false" isAbstract="false" name="QRectF&amp;" elementReference="15502" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23287" isRoot="false" isAbstract="false" name="const KoShape*" elementReference="23031" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23298" isRoot="false" isAbstract="false" name="KoRTree&lt; KoShape * >" elementReference="23297" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23301" isRoot="false" isAbstract="false" name="QSet&lt; KoShape * >" elementReference="23300" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23366" isRoot="false" isAbstract="false" name="const QPointF&amp;" elementReference="23365" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23370" isRoot="false" isAbstract="false" name="const QRectF&amp;" elementReference="23369" />
    <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23374" isRoot="false" isAbstract="false" name="const KoSize&amp;" elementReference="23373" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15481" isRoot="false" isAbstract="false" name="KoSelection" />
    <UML:Class comment="The shape manager hold a list of all shape which are in scope.
There is one shape manager per view.

The selection in the different views can be different." isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15483" isRoot="false" isAbstract="false" name="KoShapeManager" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="23249" />
     </UML:GeneralizableElement.generalization>
     <UML:Classifier.feature>
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23294" type="23063" name="m_shapes" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23295" type="23266" name="m_selection" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23296" type="15529" name="m_canvas" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23299" type="23298" name="m_tree" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23302" type="23301" name="m_aggregate4update" />
      <UML:Operation stereotype="15488" comment="Empty constructor." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23252" isRoot="false" isAbstract="false" isQuery="false" name="KoShapeManager" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23253" value="" type="15529" name="canvas" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation stereotype="15488" comment="Constructor that takes a list of shapes, convenience version.
@param shapes the shapes to start out with, see also setShapes()
@param canvas the canvas this shape manager is working on." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23254" isRoot="false" isAbstract="false" isQuery="false" name="KoShapeManager" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23255" value="" type="15529" name="canvas" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23256" value="" type="23053" name="shapes" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23257" isRoot="false" isAbstract="false" isQuery="false" name="~ KoShapeManager" />
      <UML:Operation comment="Remove all previously owned shapes and make the argument list the new shapes
to be managed by this manager.
@param shapes the new shapes to manage." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23258" isRoot="false" isAbstract="false" isQuery="false" name="setShapes" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23259" value="" type="23053" name="shapes" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23260" isRoot="false" isAbstract="false" isQuery="false" name="shapes" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28780" type="23053" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Add a KoShape to be displayed and managed by this manager.
@param shape the shape to add" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23261" isRoot="false" isAbstract="false" isQuery="false" name="add" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23262" value="" type="23156" name="shape" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Remove a KoShape from this manager
@param shape the shape to remove" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23263" isRoot="false" isAbstract="false" isQuery="false" name="remove" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23264" value="" type="23156" name="shape" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23265" isRoot="false" isAbstract="false" isQuery="false" name="selection" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28781" type="23266" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Paint all shapes and their selection handles etc.
@param painter the painter to paint to.
@param forPrint if true, make sure only actual content is drawn and no decorations.
@param converter to convert between document and view coordinates." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23267" isRoot="false" isAbstract="false" isQuery="false" name="paint" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23268" value="" type="22094" name="painter" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23270" value="" type="23269" name="converter" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23271" value="" type="15472" name="forPrint" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Returns the shape located at a specific point in the document.
If more than one shape is located at the specific point, the given selection type
controls which of them is returned.
@param position the position in the document coordinate system.
@param selection controls which shape is returned when more than one shape is at the specific point
@param omitHiddenShapes if true, only visible shapes are considered" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23277" isRoot="false" isAbstract="false" isQuery="false" name="shapeAt" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28782" type="23156" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23278" value="" type="15579" name="position" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23279" value="" type="23272" name="selection" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23280" value="" type="15472" name="omitHiddenShapes" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Returns the shapes which intersects the specific rect in the document.
@param rect the rectangle in the document coordinate system.
@param omitHiddenShapes if true, only visible shapes are considered" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23281" isRoot="false" isAbstract="false" isQuery="false" name="shapesAt" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28783" type="23063" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23282" value="" type="15503" name="rect" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23283" value="" type="15472" name="omitHiddenShapes" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Request a repaint to be queued.
The repaint will be restricted to the parameters rectangle, which is expected to be
in points (the document coordinates system of KoShape) and it is expected to be
normalized and based in the global coordinates, not any local coordinates.
&lt;p>This method will return immediately and only request a repaint. Successive calls
will be merged into an appropriate repaint action.
@param rect the rectangle (in pt) to queue for repaint.
@param shape the shape that is going to be redrawn; only needed when selectionHandles=true
@param selectionHandles if true; find out if the shape is selected and repaint its
  selection handles at the same time." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23284" isRoot="false" isAbstract="false" isQuery="false" name="repaint" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23286" value="" type="23285" name="rect" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23288" value="" type="23287" name="shape" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23289" value="" type="15472" name="selectionHandles" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Update the tree for finding the shapes.
This will remove the shape form the tree and will reinsert it again. 
The update to the tree will be posponed until it is needed so that successive calles
will be merged into one.
@param shape the shape to updated its position in the tree." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23290" isRoot="false" isAbstract="false" isQuery="false" name="updateTree" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23291" value="" type="23156" name="shape" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Update the tree when there are shapes in m_aggregate4update. This is done so not all 
updates to the tree are done when they are asked for but when they are needed. " isSpecification="false" isLeaf="false" visibility="protected" xmi.id="23292" isRoot="false" isAbstract="false" isQuery="false" name="updateTree" />
      <UML:Operation comment="/// emitted when the selection is changed" isSpecification="false" isLeaf="false" visibility="protected" xmi.id="23293" isRoot="false" isAbstract="false" isQuery="false" name="selectionChanged" />
     </UML:Classifier.feature>
     <UML:Namespace.ownedElement>
      <UML:Enumeration stereotype="23204" comment="Used to change the behavior of shapeAt()" isSpecification="false" isLeaf="false" visibility="public" namespace="15483" xmi.id="23272" isRoot="false" isAbstract="false" name="SelectionType" >
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23272" xmi.id="23273" isRoot="false" isAbstract="false" name="selected" />
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23272" xmi.id="23274" isRoot="false" isAbstract="false" name="unselected" />
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23272" xmi.id="23275" isRoot="false" isAbstract="false" name="nextUnselected" />
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23272" xmi.id="23276" isRoot="false" isAbstract="false" name="shapeOnTop" />
      </UML:Enumeration>
     </UML:Namespace.ownedElement>
    </UML:Class>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15484" isRoot="false" isAbstract="false" name="KoTool" />
    <UML:Class comment="This file is part of the KDE project
Copyright (C) 2006 Thomas Zander &lt;zander@kde.org>

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Library General Public License for more details.

You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB.  If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
//**
The interface for view conversions.
All KoShape based objects are using a postscript-point (pt) based measurement system
which requires a conversion to view coordinates (in pixel sizes) at the moment
we are painting, and a conversion to the normalized coordinate system if we
receive mouse events so we can figure out which KoShape object was touched." isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15485" isRoot="false" isAbstract="false" name="KoViewConverter" >
     <UML:Classifier.feature>
      <UML:Operation stereotype="15488" isSpecification="false" isLeaf="false" visibility="public" xmi.id="15575" isRoot="false" isAbstract="false" isQuery="false" name="KoViewConverter" />
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="15576" isRoot="false" isAbstract="false" isQuery="false" name="~ KoViewConverter" />
      <UML:Operation comment="Convert a coordinate in pt to pixels.
@param documentPoint the point in the document coordinate system of a KoShape." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15577" isRoot="false" isAbstract="true" isQuery="false" name="documentToView" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28784" type="15578" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15580" value="" type="15579" name="documentPoint" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Convert a coordinate in pixels to pt.
@param viewPoint the point in the coordinate system of the widget, or window." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15581" isRoot="false" isAbstract="true" isQuery="false" name="viewToDocument" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28785" type="15578" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15582" value="" type="15579" name="viewPoint" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Convert a rectangle in pt to pixels.
@param documentRect the rect in the document coordinate system of a KoShape." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15583" isRoot="false" isAbstract="true" isQuery="false" name="documentToView" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28786" type="15502" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15584" value="" type="15503" name="documentRect" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Convert a rectangle in pixels to pt.
@param viewRect the rect in the coordinate system of the widget, or window." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15585" isRoot="false" isAbstract="true" isQuery="false" name="viewToDocument" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28787" type="15502" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15586" value="" type="15503" name="viewRect" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Convert a single x coordinate in pt to pixels.
@param documentX the x coordinate in pt.
@return the x coordinate in pixels." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15587" isRoot="false" isAbstract="true" isQuery="false" name="documentToViewX" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28788" type="15474" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15588" value="" type="15474" name="documentX" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Convert a single y coordinate in pt to pixels.
@param documentY the y coordinate in pt.
@return the y coordinate in pixels." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15589" isRoot="false" isAbstract="true" isQuery="false" name="documentToViewY" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28789" type="15474" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15590" value="" type="15474" name="documentY" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Convert a single x coordinate in pixels to pt.
@param viewX the x coordinate in pixels.
@return the x coordinate in pt." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15591" isRoot="false" isAbstract="true" isQuery="false" name="viewToDocumentX" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28790" type="15474" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15592" value="" type="15474" name="viewX" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Convert a single y coordinate in pixels to pt.
@param viewY the y coordinate in pixels.
@return the y coordinate in pt." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15593" isRoot="false" isAbstract="true" isQuery="false" name="viewToDocumentY" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28791" type="15474" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15594" value="" type="15474" name="viewY" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="set the zoom levels of the individual x and y axis to the pointer paramets.
@param zoomX a pointer to a double which will be modified to set the horizontal zoom.
@param zoomY a pointer to a double which will be modified to set the vertical zoom." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15595" isRoot="false" isAbstract="true" isQuery="false" name="zoom" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15596" value="" type="15491" name="zoomX" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15597" value="" type="15491" name="zoomY" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
     </UML:Classifier.feature>
    </UML:Class>
    <UML:Class comment="KoCanvasBase is the interface actual application canvas classes
should implement. Flake tools know about the canvas, so they can
do things like scroll, redraw, set a cursor etc." isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15486" isRoot="false" isAbstract="false" name="KoCanvasBase" >
     <UML:Classifier.feature>
      <UML:Operation stereotype="15488" isSpecification="false" isLeaf="false" visibility="public" xmi.id="15487" isRoot="false" isAbstract="false" isQuery="false" name="KoCanvasBase" />
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="15489" isRoot="false" isAbstract="false" isQuery="false" name="~ KoCanvasBase" />
      <UML:Operation comment="retrieve the grid size setting.
The grid spacing will be provided in pt.
@param horizontal a pointer to a double that will be filled with the horizontal grid-spacing
@param vertical a pointer to a double that will be filled with the vertical grid-spacing" isSpecification="false" isLeaf="false" visibility="public" xmi.id="15490" isRoot="false" isAbstract="true" isQuery="false" name="gridSize" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15492" value="" type="15491" name="horizontal" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15493" value="" type="15491" name="vertical" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="return if snap to grid is enabled.
@return if snap to grid is enabled." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15494" isRoot="false" isAbstract="true" isQuery="false" name="snapToGrid" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28792" type="15472" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Adds a command to the history. Call this for each @p command you create.
Unless you set @p execute to false, this will also execute the command.
This means, most of the application's code will look like
   MyCommand * cmd = new MyCommand( parameters );
   canvas.addCommand( cmd );

Note that the command history takes ownership of the command, it will delete
it when the undo limit is reached, or when deleting the command history itself.
@param command the command to add
@param execute if true, the commands execute method will be called" isSpecification="false" isLeaf="false" visibility="public" xmi.id="15495" isRoot="false" isAbstract="true" isQuery="false" name="addCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15497" value="" type="15496" name="command" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15498" value="" type="15472" name="execute" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="return the current shapeManager
@return the current shapeManager" isSpecification="false" isLeaf="false" visibility="public" xmi.id="15499" isRoot="false" isAbstract="true" isQuery="false" name="shapeManager" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28793" type="15500" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Tell the canvas repaint the specified rectangle. The coordinates
are document coordinates, not view coordinates." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15501" isRoot="false" isAbstract="true" isQuery="false" name="updateCanvas" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15504" value="" type="15503" name="rc" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Return the curently active tool, or 0 if non active.
@return the curently active tool, or 0 if non active." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15505" isRoot="false" isAbstract="true" isQuery="false" name="tool" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28794" type="15506" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Set the new ative tool.
@param tool the new tool to be used on the canvas." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15507" isRoot="false" isAbstract="true" isQuery="false" name="setTool" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15508" value="" type="15506" name="tool" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Return the viewConverter for this view.
@return the viewConverter for this view." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15509" isRoot="false" isAbstract="true" isQuery="false" name="viewConverter" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28795" type="15510" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Return the widget that will be added to the scrollArea." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15511" isRoot="false" isAbstract="true" isQuery="false" name="canvasWidget" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28796" type="15513" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Return the unit of the current document for initialization of the widgets created
by the flake framework.
@see KoDocument::unit()" isSpecification="false" isLeaf="false" visibility="public" xmi.id="15514" isRoot="false" isAbstract="true" isQuery="false" name="unit" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28797" type="15516" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
     </UML:Classifier.feature>
    </UML:Class>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15502" isRoot="false" isAbstract="false" name="QRectF" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15512" isRoot="false" isAbstract="false" name="QWidget" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15515" isRoot="false" isAbstract="false" name="KoUnit" >
     <UML:Namespace.ownedElement>
      <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="15515" xmi.id="15516" isRoot="false" isAbstract="false" name="Unit" />
     </UML:Namespace.ownedElement>
    </UML:Class>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15517" isRoot="false" isAbstract="false" name="QGridLayout" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15518" isRoot="false" isAbstract="false" name="QPaintEvent" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15519" isRoot="false" isAbstract="false" name="QEvent" />
    <UML:Class comment="This widget is a wrapper around your canvas providing scrollbars.
Flake does not provide a canvas, the application will have to extend a QWidget
and implement that themselves; but Flake does make it a lot easier to do so.
One of those things is this widget that acts as a decorator around the canvas
widget and provides scrollbars and allows the canvas to be centered in the viewArea
&lt;p>The using application can intantiate this class and add its canvas using the
setCanvas() call. Which is designed so it can be called multiple times for those
that wish to exchange one canvas widget for another." isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15520" isRoot="false" isAbstract="false" name="KoCanvasController" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="15522" />
     </UML:GeneralizableElement.generalization>
     <UML:Classifier.feature>
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="15570" type="15529" name="m_canvas" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="15571" type="15513" name="m_canvasWidget" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="15573" type="15572" name="m_viewport" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="15574" type="15472" name="m_centerCanvas" />
      <UML:Operation stereotype="15488" comment="Constructor.
@param parent the parent this widget will belong to" isSpecification="false" isLeaf="false" visibility="public" xmi.id="15525" isRoot="false" isAbstract="false" isQuery="false" name="KoCanvasController" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15526" value="" type="15513" name="parent" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="15527" isRoot="false" isAbstract="false" isQuery="false" name="~ KoCanvasController" />
      <UML:Operation comment="Set the new canvas to be shown as a child
Calling this will emit canvasRemoved() if there was a canvas before, and will emit
canvasSet() with the new canvas.
@param canvas the new canvas. The KoCanvasBase::canvas() will be called to retrieve the
       actual widget which will then be added as child of this one." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15528" isRoot="false" isAbstract="false" isQuery="false" name="setCanvas" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15530" value="" type="15529" name="canvas" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Return the curently set canvas
@return the curently set canvas" isSpecification="false" isLeaf="false" visibility="public" xmi.id="15531" isRoot="false" isAbstract="false" isQuery="false" name="canvas" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28798" type="15529" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="return the amount of pixels vertically visible of the child canvas.
@return the amount of pixels vertically visible of the child canvas." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15532" isRoot="false" isAbstract="false" isQuery="false" name="visibleHeight" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28799" type="15469" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="return the amount of pixels horizontally visible of the child canvas.
@return the amount of pixels horizontally visible of the child canvas." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15533" isRoot="false" isAbstract="false" isQuery="false" name="visibleWidth" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28800" type="15469" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="return the amount of pixels that are not visible on the left side of the canvas.
The leftmost pixel that is shown is returned." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15534" isRoot="false" isAbstract="false" isQuery="false" name="canvasOffsetX" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28801" type="15469" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="return the amount of pixels that are not visible on the top side of the canvas.
The topmost pixel that is shown is returned." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15535" isRoot="false" isAbstract="false" isQuery="false" name="canvasOffsetY" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28802" type="15469" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Set the canvas to be displayed centered in this widget.
In the case that the canvas widget is smaller then this one the canvas will be centered
and a contrasting color used for the background.
@param centered center canvas if true, or aligned to the left (LTR) if false.
       Centered is the default value." isSpecification="false" isLeaf="false" visibility="public" xmi.id="15536" isRoot="false" isAbstract="false" isQuery="false" name="centerCanvas" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15537" value="" type="15472" name="centered" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="return the canvas centering value.
@return the canvas centering value" isSpecification="false" isLeaf="false" visibility="public" xmi.id="15538" isRoot="false" isAbstract="false" isQuery="false" name="isCanvasCentered" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28803" type="15472" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="15539" isRoot="false" isAbstract="false" isQuery="false" name="eventFilter" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28804" type="15472" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15542" value="" type="15541" name="watched" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15544" value="" type="15543" name="event" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Emitted when a previously added canvas is about to be removed.
@param cv this object" isSpecification="false" isLeaf="false" visibility="protected" xmi.id="15545" isRoot="false" isAbstract="false" isQuery="false" name="canvasRemoved" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15547" value="" type="15546" name="cv" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Emitted when a canvas is set on this widget
@param cv this object" isSpecification="false" isLeaf="false" visibility="protected" xmi.id="15548" isRoot="false" isAbstract="false" isQuery="false" name="canvasSet" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15549" value="" type="15546" name="cv" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Emited when canvasOffsetX() changes
@param offset the new canvas offset" isSpecification="false" isLeaf="false" visibility="protected" xmi.id="15550" isRoot="false" isAbstract="false" isQuery="false" name="canvasOffsetXChanged" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15551" value="" type="15469" name="offset" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Emited when canvasOffsetY() changes
@param offset the new canvas offset" isSpecification="false" isLeaf="false" visibility="protected" xmi.id="15552" isRoot="false" isAbstract="false" isQuery="false" name="canvasOffsetYChanged" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="15553" value="" type="15469" name="offset" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="15554" isRoot="false" isAbstract="false" isQuery="false" name="updateCanvasOffsetX" />
      <UML:Operation comment="/// Called by the vertical scrollbar when it's value changes" isSpecification="false" isLeaf="false" visibility="protected" xmi.id="15555" isRoot="false" isAbstract="false" isQuery="false" name="updateCanvasOffsetY" />
     </UML:Classifier.feature>
     <UML:Namespace.ownedElement>
      <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="15520" xmi.id="15556" isRoot="false" isAbstract="false" name="Viewport" >
       <UML:Classifier.feature>
        <UML:Attribute isSpecification="false" visibility="private" xmi.id="15569" type="15568" name="m_layout" />
        <UML:Operation stereotype="15488" isSpecification="false" isLeaf="false" visibility="public" xmi.id="15560" isRoot="false" isAbstract="false" isQuery="false" name="Viewport" />
        <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="15561" isRoot="false" isAbstract="false" isQuery="false" name="~ Viewport" />
        <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="15562" isRoot="false" isAbstract="false" isQuery="false" name="setCanvas" >
         <UML:BehavioralFeature.parameter>
          <UML:Parameter isSpecification="false" visibility="private" xmi.id="15563" value="" type="15513" name="canvas" />
         </UML:BehavioralFeature.parameter>
        </UML:Operation>
        <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="15564" isRoot="false" isAbstract="false" isQuery="false" name="removeCanvas" >
         <UML:BehavioralFeature.parameter>
          <UML:Parameter isSpecification="false" visibility="private" xmi.id="15565" value="" type="15513" name="canvas" />
         </UML:BehavioralFeature.parameter>
        </UML:Operation>
        <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="15566" isRoot="false" isAbstract="false" isQuery="false" name="centerCanvas" >
         <UML:BehavioralFeature.parameter>
          <UML:Parameter isSpecification="false" visibility="private" xmi.id="15567" value="" type="15472" name="centered" />
         </UML:BehavioralFeature.parameter>
        </UML:Operation>
       </UML:Classifier.feature>
      </UML:Class>
     </UML:Namespace.ownedElement>
    </UML:Class>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15521" isRoot="false" isAbstract="false" name="QScrollArea" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15540" isRoot="false" isAbstract="false" name="QObject" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15578" isRoot="false" isAbstract="false" name="QPointF" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15647" isRoot="false" isAbstract="false" name="KisView" >
     <UML:Classifier.feature>
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="16005" type="15520" name="m_canvasController" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="20732" type="15669" name="m_QCanvas" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="20780" type="15669" name="m_openGLCanvas" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="21831" type="21609" name="m_viewConverter" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="22320" type="22035" name="m_doc" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="22678" type="21960" name="m_image" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="24367" type="23843" name="m_zoomHandler" />
     </UML:Classifier.feature>
    </UML:Class>
    <UML:Class comment="KisCanvas is the base class for canvases that show a Krita image." isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15669" isRoot="false" isAbstract="false" name="KisCanvas" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="15712" />
     </UML:GeneralizableElement.generalization>
     <UML:Classifier.feature>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="implementation" xmi.id="21080" isRoot="false" isAbstract="false" isQuery="false" name="shapeManager()" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28805" type="15483" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
     </UML:Classifier.feature>
     <UML:Namespace.ownedElement>
      <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="15669" xmi.id="15482" isRoot="false" isAbstract="false" name="K3Command" />
     </UML:Namespace.ownedElement>
    </UML:Class>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15739" isRoot="false" isAbstract="false" name="KisQPainterCanvas" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="15825" />
      <UML:Generalization xmi.idref="16943" />
      <UML:Generalization xmi.idref="18760" />
     </UML:GeneralizableElement.generalization>
    </UML:Class>
    <UML:Class comment="OpenGL implementation of KisCanvas" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="15761" isRoot="false" isAbstract="false" name="KisOpenGLCanvas" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="15870" />
      <UML:Generalization xmi.idref="16988" />
      <UML:Generalization xmi.idref="18715" />
     </UML:GeneralizableElement.generalization>
    </UML:Class>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="17986" isRoot="false" isAbstract="false" name="KisFlakeCanvas" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="18008" />
     </UML:GeneralizableElement.generalization>
    </UML:Class>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21174" isRoot="false" isAbstract="false" name="KirCanvas" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21609" isRoot="false" isAbstract="false" name="KisViewConverter" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="21730" />
     </UML:GeneralizableElement.generalization>
    </UML:Class>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21935" isRoot="false" isAbstract="false" name="KisSharedPtrVector" >
     <UML:ModelElement.templateParameter>
      <UML:TemplateParameter isSpecification="false" isLeaf="false" visibility="public" namespace="21935" xmi.id="21936" isRoot="false" isAbstract="false" name="T" />
     </UML:ModelElement.templateParameter>
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="21939" />
     </UML:GeneralizableElement.generalization>
     <UML:Classifier.feature>
      <UML:Operation stereotype="15488" isSpecification="false" isLeaf="false" visibility="public" xmi.id="21943" isRoot="false" isAbstract="false" isQuery="false" name="KisSharedPtrVector" />
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="21944" isRoot="false" isAbstract="false" isQuery="false" name="pop_back" />
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="21945" isRoot="false" isAbstract="false" isQuery="false" name="erase" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28806" type="21949" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="21948" value="" type="21947" name="it" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="21950" isRoot="false" isAbstract="false" isQuery="false" name="erase" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28807" type="21955" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="21952" value="" type="21951" name="first" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="21954" value="" type="21953" name="last" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="21956" isRoot="false" isAbstract="false" isQuery="false" name="contains" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28808" type="15472" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="21959" value="" type="21958" name="ptr" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
     </UML:Classifier.feature>
     <UML:Namespace.ownedElement>
      <UML:TemplateParameter isSpecification="false" isLeaf="false" visibility="public" namespace="21935" xmi.id="21936" isRoot="false" isAbstract="false" name="T" />
      <UML:TemplateParameter isSpecification="false" isLeaf="false" visibility="public" namespace="21935" xmi.id="21936" isRoot="false" isAbstract="false" name="T" />
      <UML:DataType stereotype="15470" isSpecification="false" isLeaf="false" visibility="public" namespace="21935" xmi.id="21942" isRoot="false" isAbstract="false" name="super" elementReference="21938" />
     </UML:Namespace.ownedElement>
    </UML:Class>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21937" isRoot="false" isAbstract="false" name="QValueVector" />
    <UML:Package isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21946" isRoot="false" isAbstract="false" name="typename super" >
     <UML:Namespace.ownedElement>
      <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="21946" xmi.id="21947" isRoot="false" isAbstract="false" name="iterator" />
      <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="21946" xmi.id="21949" isRoot="false" isAbstract="false" name="iterator_1" />
      <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="21946" xmi.id="21951" isRoot="false" isAbstract="false" name="iterator_2" />
      <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="21946" xmi.id="21953" isRoot="false" isAbstract="false" name="iterator_3" />
      <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="21946" xmi.id="21955" isRoot="false" isAbstract="false" name="iterator_4" />
     </UML:Namespace.ownedElement>
    </UML:Package>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21957" isRoot="false" isAbstract="false" name="KSharedPtr" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21960" isRoot="false" isAbstract="false" name="KisImage" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21961" isRoot="false" isAbstract="false" name="KisImageSP" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21963" isRoot="false" isAbstract="false" name="KisPaintDevice" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21964" isRoot="false" isAbstract="false" name="KisPaintDeviceSP" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21965" isRoot="false" isAbstract="false" name="vKisPaintDeviceSP" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21966" isRoot="false" isAbstract="false" name="vKisPaintDeviceSP_it" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21967" isRoot="false" isAbstract="false" name="vKisPaintDeviceSP_cit" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21968" isRoot="false" isAbstract="false" name="KisLayer" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21969" isRoot="false" isAbstract="false" name="KisLayerSP" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21970" isRoot="false" isAbstract="false" name="vKisLayerSP" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21971" isRoot="false" isAbstract="false" name="vKisLayerSP_it" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21972" isRoot="false" isAbstract="false" name="vKisLayerSP_cit" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21973" isRoot="false" isAbstract="false" name="KisPartLayer" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21974" isRoot="false" isAbstract="false" name="KisPartLayerSP" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21975" isRoot="false" isAbstract="false" name="KisPaintLayer" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21976" isRoot="false" isAbstract="false" name="KisPaintLayerSP" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21977" isRoot="false" isAbstract="false" name="KisAdjustmentLayer" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21978" isRoot="false" isAbstract="false" name="KisAdjustmentLayerSP" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21979" isRoot="false" isAbstract="false" name="KisGroupLayer" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21980" isRoot="false" isAbstract="false" name="KisGroupLayerSP" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21981" isRoot="false" isAbstract="false" name="KisSelection" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21982" isRoot="false" isAbstract="false" name="KisSelectionSP" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21983" isRoot="false" isAbstract="false" name="KisBackground" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21984" isRoot="false" isAbstract="false" name="KisBackgroundSP" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21985" isRoot="false" isAbstract="false" name="KisSubstrate" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21986" isRoot="false" isAbstract="false" name="KisSubstrateSP" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21987" isRoot="false" isAbstract="false" name="KisHistogram" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21988" isRoot="false" isAbstract="false" name="KisHistogramSP" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21989" isRoot="false" isAbstract="false" name="KisPaintOpFactory" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21990" isRoot="false" isAbstract="false" name="KisPaintOpFactorySP" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21991" isRoot="false" isAbstract="false" name="vKisSegments" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21992" isRoot="false" isAbstract="false" name="KisAlphaMask" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21993" isRoot="false" isAbstract="false" name="KisAlphaMaskSP" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21994" isRoot="false" isAbstract="false" name="KisFilter" />
    <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21995" isRoot="false" isAbstract="false" name="KisFilterSP" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21996" isRoot="false" isAbstract="false" name="QString" />
    <UML:Class comment="Undo listeners want to be notified of undo and redo actions.
add notification is given _before_ the command is added to the
stack.
execute notification is given on undo and redo" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="21997" isRoot="false" isAbstract="false" name="KisCommandHistoryListener" >
     <UML:Classifier.feature>
      <UML:Operation stereotype="15488" isSpecification="false" isLeaf="false" visibility="public" xmi.id="21998" isRoot="false" isAbstract="false" isQuery="false" name="KisCommandHistoryListener" />
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="21999" isRoot="false" isAbstract="true" isQuery="false" name="notifyCommandAdded" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22000" value="" type="15496" name="cmd" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22001" isRoot="false" isAbstract="true" isQuery="false" name="notifyCommandExecuted" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22002" value="" type="15496" name="cmd" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
     </UML:Classifier.feature>
    </UML:Class>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22003" isRoot="false" isAbstract="false" name="KisUndoAdapter" >
     <UML:Classifier.feature>
      <UML:Operation stereotype="15488" isSpecification="false" isLeaf="false" visibility="public" xmi.id="22004" isRoot="false" isAbstract="false" isQuery="false" name="KisUndoAdapter" />
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22005" isRoot="false" isAbstract="false" isQuery="false" name="~ KisUndoAdapter" />
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22006" isRoot="false" isAbstract="true" isQuery="false" name="setCommandHistoryListener" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22008" value="" type="22007" name="" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22009" isRoot="false" isAbstract="true" isQuery="false" name="removeCommandHistoryListener" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22010" value="" type="22007" name="" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22011" isRoot="false" isAbstract="true" isQuery="false" name="presentCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28809" type="15496" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22012" isRoot="false" isAbstract="true" isQuery="false" name="addCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22013" value="" type="15496" name="cmd" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22014" isRoot="false" isAbstract="true" isQuery="false" name="setUndo" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22015" value="" type="15472" name="undo" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22016" isRoot="false" isAbstract="true" isQuery="false" name="undo" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28810" type="15472" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22017" isRoot="false" isAbstract="true" isQuery="false" name="beginMacro" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22019" value="" type="22018" name="macroName" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22020" isRoot="false" isAbstract="true" isQuery="false" name="endMacro" />
      <UML:Operation stereotype="15488" isSpecification="false" isLeaf="false" visibility="private" xmi.id="22021" isRoot="false" isAbstract="false" isQuery="false" name="KisUndoAdapter" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22023" value="" type="22022" name="" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22024" isRoot="false" isAbstract="false" isQuery="false" name="operator =" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28811" type="22026" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22025" value="" type="22022" name="" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
     </UML:Classifier.feature>
    </UML:Class>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22027" isRoot="false" isAbstract="false" name="QImage" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22028" isRoot="false" isAbstract="false" name="K3CommandHistory" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22029" isRoot="false" isAbstract="false" name="K3MacroCommand" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22030" isRoot="false" isAbstract="false" name="KoColorProfile" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22031" isRoot="false" isAbstract="false" name="KisNameServer" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22032" isRoot="false" isAbstract="false" name="KisChildDoc" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22033" isRoot="false" isAbstract="false" name="KoColorSpace" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22034" isRoot="false" isAbstract="false" name="KoColor" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22035" isRoot="false" isAbstract="false" name="KisDoc" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="22037" />
      <UML:Generalization xmi.idref="22040" />
     </UML:GeneralizableElement.generalization>
     <UML:Classifier.feature>
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="22240" type="15472" name="m_undo" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="22242" type="22241" name="m_cmdHistory" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="22245" type="22244" name="m_undoListeners" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="22246" type="21961" name="m_currentImage" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="22248" type="22247" name="m_nserver" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="22250" type="22249" name="m_currentMacro" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="22251" type="22116" name="m_macroNestDepth" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="22252" type="22116" name="m_conversionDepth" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="22253" type="15469" name="m_ioProgressTotalSteps" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="22254" type="15469" name="m_ioProgressBase" />
      <UML:Attribute comment="// temp storage during load" isSpecification="false" visibility="private" xmi.id="22257" type="22256" name="m_layerFilenames" />
      <UML:Operation stereotype="15488" isSpecification="false" isLeaf="false" visibility="public" xmi.id="22044" isRoot="false" isAbstract="false" isQuery="false" name="KisDoc" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22045" value="" type="15513" name="parentWidget" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22046" value="" type="15541" name="parent" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22047" value="" type="15472" name="singleViewMode" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22048" isRoot="false" isAbstract="false" isQuery="false" name="~ KisDoc" />
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22049" isRoot="false" isAbstract="false" isQuery="false" name="wantExportConfirmation" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28812" type="15472" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22050" isRoot="false" isAbstract="false" isQuery="false" name="completeLoading" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28813" type="15472" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22053" value="" type="22052" name="store" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22054" isRoot="false" isAbstract="false" isQuery="false" name="completeSaving" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28814" type="15472" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22055" value="" type="22052" name="" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22056" isRoot="false" isAbstract="false" isQuery="false" name="loadOasis" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28815" type="15472" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22059" value="" type="22058" name="" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22062" value="" type="22061" name="" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22063" value="" type="22058" name="" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22064" value="" type="22052" name="" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22065" isRoot="false" isAbstract="false" isQuery="false" name="saveOasis" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28816" type="15472" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22066" value="" type="22052" name="" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22069" value="" type="22068" name="" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22070" isRoot="false" isAbstract="false" isQuery="false" name="loadChildren" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28817" type="15472" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22071" value="" type="22052" name="store" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22072" isRoot="false" isAbstract="false" isQuery="false" name="loadXML" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28818" type="15472" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22075" value="" type="22074" name="" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22076" value="" type="22058" name="doc" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22077" isRoot="false" isAbstract="false" isQuery="false" name="mimeType" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28819" type="22078" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22079" isRoot="false" isAbstract="false" isQuery="false" name="createCustomDocumentWidget" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28820" type="15513" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22080" value="" type="15513" name="parent" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22081" isRoot="false" isAbstract="false" isQuery="false" name="hitTest" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28821" type="22091" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22084" value="" type="22083" name="pos" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22087" value="" type="22086" name="view" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22090" value="" type="22089" name="matrix" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Draw the image embedded in another KOffice document

XXX: Use of transparent, zoomX and zoomY is not supported
     by Krita because we appear to be doing our zooming
     elsewhere. This may affect KOffice compatibility." isSpecification="false" isLeaf="false" visibility="public" xmi.id="22092" isRoot="false" isAbstract="false" isQuery="false" name="paintContent" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22095" value="" type="22094" name="painter" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22098" value="" type="22097" name="rect" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22099" value="" type="15472" name="" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22100" isRoot="false" isAbstract="false" isQuery="false" name="saveXML" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28822" type="22057" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Initialize an empty document using default values
@since 1.5" isSpecification="false" isLeaf="false" visibility="public" xmi.id="22101" isRoot="false" isAbstract="false" isQuery="false" name="initEmpty" />
      <UML:Operation comment="// Undo adapter" isSpecification="false" isLeaf="false" visibility="private" xmi.id="22102" isRoot="false" isAbstract="false" isQuery="false" name="setCommandHistoryListener" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22103" value="" type="22007" name="" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22104" isRoot="false" isAbstract="false" isQuery="false" name="removeCommandHistoryListener" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22105" value="" type="22007" name="" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22106" isRoot="false" isAbstract="false" isQuery="false" name="presentCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28823" type="15496" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22107" isRoot="false" isAbstract="false" isQuery="false" name="addCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22108" value="" type="15496" name="cmd" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22109" isRoot="false" isAbstract="false" isQuery="false" name="setUndo" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22110" value="" type="15472" name="undo" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22111" isRoot="false" isAbstract="false" isQuery="false" name="undo" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28824" type="15472" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22112" isRoot="false" isAbstract="false" isQuery="false" name="beginMacro" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22113" value="" type="22018" name="macroName" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22114" isRoot="false" isAbstract="false" isQuery="false" name="endMacro" />
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22115" isRoot="false" isAbstract="false" isQuery="false" name="undoLimit" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28825" type="22116" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22117" isRoot="false" isAbstract="false" isQuery="false" name="setUndoLimit" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22118" value="" type="22116" name="limit" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22119" isRoot="false" isAbstract="false" isQuery="false" name="redoLimit" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28826" type="22116" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22120" isRoot="false" isAbstract="false" isQuery="false" name="setRedoLimit" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22121" value="" type="22116" name="limit" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Create a new image that has this document as a parent and
replace the current image with this image." isSpecification="false" isLeaf="false" visibility="public" xmi.id="22122" isRoot="false" isAbstract="false" isQuery="false" name="newImage" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28827" type="15472" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22123" value="" type="22018" name="name" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22124" value="" type="22116" name="width" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22125" value="" type="22116" name="height" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22127" value="" type="22126" name="cs" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22129" value="" type="22128" name="bgColor" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22130" value="" type="22018" name="imgDescription" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22132" value="" type="22131" name="imgResolution" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Create a new image that has this document as a parent and
replace the current image with this image." isSpecification="false" isLeaf="false" visibility="public" xmi.id="22133" isRoot="false" isAbstract="false" isQuery="false" name="newImage" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28828" type="21961" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22134" value="" type="22018" name="name" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22135" value="" type="22116" name="width" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22136" value="" type="22116" name="height" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22137" value="" type="22126" name="colorstrategy" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22138" isRoot="false" isAbstract="false" isQuery="false" name="renameImage" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22139" value="" type="22018" name="oldName" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22140" value="" type="22018" name="newName" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Adds the specified child document to this document; this
is not done with KoDocument::insertChild() because that
is protected and cannot be called from KisView." isSpecification="false" isLeaf="false" visibility="public" xmi.id="22141" isRoot="false" isAbstract="false" isQuery="false" name="createChildDoc" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28829" type="22144" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22142" value="" type="22097" name="rect" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22143" value="" type="22091" name="childDoc" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Makes an otherwise empty document ready for import/export" isSpecification="false" isLeaf="false" visibility="public" xmi.id="22145" isRoot="false" isAbstract="false" isQuery="false" name="prepareForImport" />
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22146" isRoot="false" isAbstract="false" isQuery="false" name="currentImage" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28830" type="21961" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Set the current image to the specified image and turn undo on." isSpecification="false" isLeaf="false" visibility="public" xmi.id="22147" isRoot="false" isAbstract="false" isQuery="false" name="setCurrentImage" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22148" value="" type="21961" name="image" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22149" isRoot="false" isAbstract="false" isQuery="false" name="undoAdapter" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28831" type="22150" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22151" isRoot="false" isAbstract="false" isQuery="false" name="slotImageUpdated" />
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22152" isRoot="false" isAbstract="false" isQuery="false" name="slotImageUpdated" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22153" value="" type="22097" name="rect" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22154" isRoot="false" isAbstract="false" isQuery="false" name="slotDocumentRestored" />
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="22155" isRoot="false" isAbstract="false" isQuery="false" name="slotCommandExecuted" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22156" value="" type="15496" name="command" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="22157" isRoot="false" isAbstract="false" isQuery="false" name="docUpdated" />
      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="22158" isRoot="false" isAbstract="false" isQuery="false" name="docUpdated" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22159" value="" type="22096" name="rect" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="22160" isRoot="false" isAbstract="false" isQuery="false" name="loadingFinished" />
      <UML:Operation comment="Emitted every time a command is added to the undo history, or executed
due to an undo or redo action." isSpecification="false" isLeaf="false" visibility="protected" xmi.id="22161" isRoot="false" isAbstract="false" isQuery="false" name="sigCommandExecuted" />
      <UML:Operation comment="// Overide KoDocument" isSpecification="false" isLeaf="false" visibility="protected" xmi.id="22162" isRoot="false" isAbstract="false" isQuery="false" name="createViewInstance" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28832" type="22086" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22163" value="" type="15513" name="parent" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="// Overide KoDocument" isSpecification="false" isLeaf="false" visibility="protected" xmi.id="22164" isRoot="false" isAbstract="false" isQuery="false" name="openExistingFile" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22167" value="" type="22166" name="url" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="protected" xmi.id="22168" isRoot="false" isAbstract="false" isQuery="false" name="openTemplate" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22169" value="" type="22166" name="url" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22170" isRoot="false" isAbstract="false" isQuery="false" name="slotUpdate" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22171" value="" type="21961" name="img" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22173" value="" type="22172" name="x" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22174" value="" type="22172" name="y" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22175" value="" type="22172" name="w" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22176" value="" type="22172" name="h" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22177" isRoot="false" isAbstract="false" isQuery="false" name="slotIOProgress" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22179" value="" type="22178" name="percentage" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22180" isRoot="false" isAbstract="false" isQuery="false" name="saveImage" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28833" type="22184" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22182" value="" type="22181" name="doc" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22183" value="" type="21961" name="img" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22185" isRoot="false" isAbstract="false" isQuery="false" name="loadImage" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28834" type="21961" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22187" value="" type="22186" name="elem" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22188" isRoot="false" isAbstract="false" isQuery="false" name="loadLayers" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22189" value="" type="22186" name="element" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22190" value="" type="21961" name="img" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22191" value="" type="21980" name="parent" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22192" isRoot="false" isAbstract="false" isQuery="false" name="loadLayer" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28835" type="21969" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22193" value="" type="22186" name="elem" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22194" value="" type="21961" name="img" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22195" isRoot="false" isAbstract="false" isQuery="false" name="loadPaintLayer" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28836" type="21969" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22196" value="" type="22186" name="elem" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22197" value="" type="21961" name="img" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22198" value="" type="21996" name="name" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22199" value="" type="22116" name="x" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22200" value="" type="22116" name="y" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22201" value="" type="22116" name="opacity" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22202" value="" type="15472" name="visible" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22203" value="" type="15472" name="locked" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22204" value="" type="22018" name="compositeOp" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22205" isRoot="false" isAbstract="false" isQuery="false" name="loadGroupLayer" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28837" type="21980" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22206" value="" type="22186" name="elem" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22207" value="" type="21961" name="img" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22208" value="" type="21996" name="name" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22209" value="" type="22116" name="x" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22210" value="" type="22116" name="y" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22211" value="" type="22116" name="opacity" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22212" value="" type="15472" name="visible" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22213" value="" type="15472" name="locked" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22214" value="" type="22018" name="compositeOp" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22215" isRoot="false" isAbstract="false" isQuery="false" name="loadAdjustmentLayer" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28838" type="21978" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22216" value="" type="22186" name="elem" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22217" value="" type="21961" name="img" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22218" value="" type="21996" name="name" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22219" value="" type="22116" name="x" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22220" value="" type="22116" name="y" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22221" value="" type="22116" name="opacity" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22222" value="" type="15472" name="visible" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22223" value="" type="15472" name="locked" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22224" value="" type="22018" name="compositeOp" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22225" isRoot="false" isAbstract="false" isQuery="false" name="loadPartLayer" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28839" type="21974" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22226" value="" type="22186" name="elem" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22227" value="" type="21961" name="img" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22228" value="" type="21996" name="name" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22229" value="" type="22116" name="x" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22230" value="" type="22116" name="y" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22231" value="" type="22116" name="opacity" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22232" value="" type="15472" name="visible" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22233" value="" type="15472" name="locked" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22234" value="" type="22018" name="compositeOp" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22235" isRoot="false" isAbstract="false" isQuery="false" name="init" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28840" type="15472" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22236" isRoot="false" isAbstract="false" isQuery="false" name="setIOSteps" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="22237" value="" type="22116" name="nsteps" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22238" isRoot="false" isAbstract="false" isQuery="false" name="IOCompletedStep" />
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="22239" isRoot="false" isAbstract="false" isQuery="false" name="IODone" />
     </UML:Classifier.feature>
     <UML:Namespace.ownedElement>
      <UML:Class stereotype="21962" isSpecification="false" isLeaf="false" visibility="public" namespace="22035" xmi.id="22043" isRoot="false" isAbstract="false" name="super" />
     </UML:Namespace.ownedElement>
    </UML:Class>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22036" isRoot="false" isAbstract="false" name="KoDocument" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22051" isRoot="false" isAbstract="false" name="KoStore" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22057" isRoot="false" isAbstract="false" name="QDomDocument" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22060" isRoot="false" isAbstract="false" name="KoOdfStylesReader" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22067" isRoot="false" isAbstract="false" name="KoXmlWriter" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22073" isRoot="false" isAbstract="false" name="QIODevice" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22078" isRoot="false" isAbstract="false" name="QByteArray" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22082" isRoot="false" isAbstract="false" name="QPoint" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22085" isRoot="false" isAbstract="false" name="KoView" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22088" isRoot="false" isAbstract="false" name="QMatrix" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22093" isRoot="false" isAbstract="false" name="QPainter" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22096" isRoot="false" isAbstract="false" name="QRect" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22116" isRoot="false" isAbstract="false" name="qint32" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22165" isRoot="false" isAbstract="false" name="KUrl" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22172" isRoot="false" isAbstract="false" name="quint32" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22178" isRoot="false" isAbstract="false" name="qint8" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22184" isRoot="false" isAbstract="false" name="QDomElement" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22243" isRoot="false" isAbstract="false" name="Q3PtrList" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="22255" isRoot="false" isAbstract="false" name="QMap" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23031" isRoot="false" isAbstract="false" name="KoShape" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23032" isRoot="false" isAbstract="false" name="KoShapeGroup" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23033" isRoot="false" isAbstract="false" name="KoShapeContainer" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23034" isRoot="false" isAbstract="false" name="KoShapeControllerBase" />
    <UML:Class comment="/// The undo / redo command for shape moving." isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23035" isRoot="false" isAbstract="false" name="KoShapeMoveCommand" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="23041" />
     </UML:GeneralizableElement.generalization>
     <UML:Classifier.feature>
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23064" type="23063" name="m_shapes" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23065" type="23061" name="m_previousPositions" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23066" type="23061" name="m_newPositions" />
      <UML:Operation stereotype="15488" comment="Constructor.
@param shapes the set of objects that are moved.
@param previousPositions the known set of previous positions for each of the objects.
 this list naturally must have the same amount of items as the shapes set.
@param newPositions the new positions for the shapes.
 this list naturally must have the same amount of items as the shapes set." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23044" isRoot="false" isAbstract="false" isQuery="false" name="KoShapeMoveCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23047" value="" type="23046" name="shapes" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23050" value="" type="23049" name="previousPositions" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23051" value="" type="23049" name="newPositions" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation stereotype="15488" comment="Constructor.
@param shapes the set of objects that are moved.
@param previousPositions the known set of previous positions for each of the objects.
 this list naturally must have the same amount of items as the shapes set.
@param newPositions the new positions for the shapes.
 this list naturally must have the same amount of items as the shapes set." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23052" isRoot="false" isAbstract="false" isQuery="false" name="KoShapeMoveCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23054" value="" type="23053" name="shapes" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23055" value="" type="23049" name="previousPositions" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23056" value="" type="23049" name="newPositions" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="/// execute the command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23057" isRoot="false" isAbstract="false" isQuery="false" name="execute" />
      <UML:Operation comment="/// revert the actions done in execute" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23058" isRoot="false" isAbstract="false" isQuery="false" name="unexecute" />
      <UML:Operation comment="/// return the name of this command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23059" isRoot="false" isAbstract="false" isQuery="false" name="name" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28841" type="21996" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23060" isRoot="false" isAbstract="false" isQuery="false" name="setNewPositions" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23062" value="" type="23061" name="newPositions" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
     </UML:Classifier.feature>
    </UML:Class>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23045" isRoot="false" isAbstract="false" name="KoSelectionSet" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23048" isRoot="false" isAbstract="false" name="QList" />
    <UML:Class comment="/// The undo / redo command for shape rotating." isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23067" isRoot="false" isAbstract="false" name="KoShapeRotateCommand" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="23068" />
     </UML:GeneralizableElement.generalization>
     <UML:Classifier.feature>
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23079" type="23063" name="m_shapes" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23081" type="23080" name="m_previousAngles" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23082" type="23080" name="m_newAngles" />
      <UML:Operation stereotype="15488" comment="Comand to rotate a selection of shapes.  Note that it just alters the rotated
property of those shapes, and nothing more.
@param shapes all the shapes that should be rotated
@param previousAngles a list with the same amount of items as shapes with the
       old rotation angles
@param newAngles a list with the same amount of items as shapes with the new angles." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23071" isRoot="false" isAbstract="false" isQuery="false" name="KoShapeRotateCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23072" value="" type="23046" name="shapes" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23074" value="" type="23073" name="previousAngles" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23075" value="" type="23073" name="newAngles" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="/// execute the command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23076" isRoot="false" isAbstract="false" isQuery="false" name="execute" />
      <UML:Operation comment="/// revert the actions done in execute" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23077" isRoot="false" isAbstract="false" isQuery="false" name="unexecute" />
      <UML:Operation comment="/// return the name of this command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23078" isRoot="false" isAbstract="false" isQuery="false" name="name" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28842" type="21996" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
     </UML:Classifier.feature>
    </UML:Class>
    <UML:Class comment="/// The undo / redo command for shape shearing." isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23083" isRoot="false" isAbstract="false" name="KoShapeShearCommand" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="23084" />
     </UML:GeneralizableElement.generalization>
     <UML:Classifier.feature>
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23096" type="23063" name="m_shapes" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23097" type="23080" name="m_previousShearXs" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23098" type="23080" name="m_previousShearYs" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23099" type="23080" name="m_newShearXs" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23100" type="23080" name="m_newShearYs" />
      <UML:Operation stereotype="15488" comment="Comand to rotate a selection of shapes.  Note that it just alters the rotated
property of those shapes, and nothing more.
@param shapes all the shapes that should be rotated
@param previousShearXs a list with the same amount of items as shapes with the
       old shearX values
@param previousShearYs a list with the same amount of items as shapes with the
       old shearY values
@param newShearXs a list with the same amount of items as shapes with the new values.
@param newShearYs a list with the same amount of items as shapes with the new values." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23087" isRoot="false" isAbstract="false" isQuery="false" name="KoShapeShearCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23088" value="" type="23046" name="shapes" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23089" value="" type="23073" name="previousShearXs" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23090" value="" type="23073" name="previousShearYs" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23091" value="" type="23073" name="newShearXs" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23092" value="" type="23073" name="newShearYs" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="/// execute the command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23093" isRoot="false" isAbstract="false" isQuery="false" name="execute" />
      <UML:Operation comment="/// revert the actions done in execute" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23094" isRoot="false" isAbstract="false" isQuery="false" name="unexecute" />
      <UML:Operation comment="/// return the name of this command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23095" isRoot="false" isAbstract="false" isQuery="false" name="name" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28843" type="21996" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
     </UML:Classifier.feature>
    </UML:Class>
    <UML:Class comment="/// The undo / redo command for shape sizing." isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23101" isRoot="false" isAbstract="false" name="KoShapeSizeCommand" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="23102" />
     </UML:GeneralizableElement.generalization>
     <UML:Classifier.feature>
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23113" type="23063" name="m_shapes" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23115" type="23114" name="m_previousSizes" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23116" type="23114" name="m_newSizes" />
      <UML:Operation stereotype="15488" comment="The undo / redo command for shape sizing.
@param shapes all the shapes that will be rezised at the same time
@param previousSizes the old sizes; in a list with a member for each shape
@param newSizes the new sizes; in a list with a member for each shape" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23105" isRoot="false" isAbstract="false" isQuery="false" name="KoShapeSizeCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23106" value="" type="23046" name="shapes" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23108" value="" type="23107" name="previousSizes" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23109" value="" type="23107" name="newSizes" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="/// execute the command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23110" isRoot="false" isAbstract="false" isQuery="false" name="execute" />
      <UML:Operation comment="/// revert the actions done in execute" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23111" isRoot="false" isAbstract="false" isQuery="false" name="unexecute" />
      <UML:Operation comment="/// return the name of this command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23112" isRoot="false" isAbstract="false" isQuery="false" name="name" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28844" type="21996" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
     </UML:Classifier.feature>
    </UML:Class>
    <UML:Class comment="/// The undo / redo command for grouping shapes" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23117" isRoot="false" isAbstract="false" name="KoGroupShapesCommand" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="23118" />
     </UML:GeneralizableElement.generalization>
     <UML:Classifier.feature>
      <UML:Attribute comment="///&lt; protected constructor for child classes///&lt;list of shapes to be grouped" isSpecification="false" visibility="protected" xmi.id="23136" type="23063" name="m_shapes" />
      <UML:Attribute comment="///&lt; list of booleas to specify the shape of the same index to eb clipped" isSpecification="false" visibility="protected" xmi.id="23137" type="23125" name="m_clipped" />
      <UML:Attribute comment="///&lt; the container where the grouping should be for." isSpecification="false" visibility="protected" xmi.id="23138" type="23122" name="m_container" />
      <UML:Operation stereotype="15488" comment="Command to group a set of shapes into a predefined container.
@param container the container to group the shapes under.
@param shapes a list of all the shapes that should be grouped.
@param clipped a list of the same length as the shapes list with one bool for each shape.
     See KoShapeContainer::childClipped()" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23121" isRoot="false" isAbstract="false" isQuery="false" name="KoGroupShapesCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23123" value="" type="23122" name="container" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23124" value="" type="23063" name="shapes" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23126" value="" type="23125" name="clipped" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation stereotype="15488" comment="Command to group a set of shapes into a predefined container.
Convenience constructor since KoShapeGroup does not allow clipping.
@param container the group to group the shapes under.
@param shapes a list of all the shapes that should be grouped." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23127" isRoot="false" isAbstract="false" isQuery="false" name="KoGroupShapesCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23129" value="" type="23128" name="container" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23130" value="" type="23063" name="shapes" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23131" isRoot="false" isAbstract="false" isQuery="false" name="~ KoGroupShapesCommand" />
      <UML:Operation comment="/// execute the command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23132" isRoot="false" isAbstract="false" isQuery="false" name="execute" />
      <UML:Operation comment="/// revert the actions done in execute" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23133" isRoot="false" isAbstract="false" isQuery="false" name="unexecute" />
      <UML:Operation comment="/// return the name of this command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23134" isRoot="false" isAbstract="false" isQuery="false" name="name" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28845" type="21996" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation stereotype="15488" isSpecification="false" isLeaf="false" visibility="protected" xmi.id="23135" isRoot="false" isAbstract="false" isQuery="false" name="KoGroupShapesCommand" />
     </UML:Classifier.feature>
    </UML:Class>
    <UML:Class comment="/// The undo / redo command for ungrouping shapes" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23139" isRoot="false" isAbstract="false" name="KoUngroupShapesCommand" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="23140" />
     </UML:GeneralizableElement.generalization>
     <UML:Classifier.feature>
      <UML:Operation stereotype="15488" comment="Command to ungroup a set of shapes from one parent container.
@param container the group to ungroup the shapes from.
@param shapes a list of all the shapes that should be ungrouped." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23143" isRoot="false" isAbstract="false" isQuery="false" name="KoUngroupShapesCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23144" value="" type="23122" name="container" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23145" value="" type="23063" name="shapes" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="/// execute the command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23146" isRoot="false" isAbstract="false" isQuery="false" name="execute" />
      <UML:Operation comment="/// revert the actions done in execute" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23147" isRoot="false" isAbstract="false" isQuery="false" name="unexecute" />
      <UML:Operation comment="/// return the name of this command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23148" isRoot="false" isAbstract="false" isQuery="false" name="name" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28846" type="21996" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
     </UML:Classifier.feature>
    </UML:Class>
    <UML:Class comment="/// The undo / redo command for creating shapes" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23149" isRoot="false" isAbstract="false" name="KoShapeCreateCommand" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="23150" />
     </UML:GeneralizableElement.generalization>
     <UML:Classifier.feature>
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23162" type="23154" name="m_controller" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23163" type="23156" name="m_shape" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23164" type="15472" name="m_deleteShape" />
      <UML:Operation stereotype="15488" comment="Command used on creation of new shapes
@param controller the controller used to add/remove the shape from
@param shape the shape thats just been created." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23153" isRoot="false" isAbstract="false" isQuery="false" name="KoShapeCreateCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23155" value="" type="23154" name="controller" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23157" value="" type="23156" name="shape" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23158" isRoot="false" isAbstract="false" isQuery="false" name="~ KoShapeCreateCommand" />
      <UML:Operation comment="/// execute the command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23159" isRoot="false" isAbstract="false" isQuery="false" name="execute" />
      <UML:Operation comment="/// revert the actions done in execute" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23160" isRoot="false" isAbstract="false" isQuery="false" name="unexecute" />
      <UML:Operation comment="/// return the name of this command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23161" isRoot="false" isAbstract="false" isQuery="false" name="name" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28847" type="21996" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
     </UML:Classifier.feature>
    </UML:Class>
    <UML:Class comment="/// The undo / redo command for deleting shapes" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23165" isRoot="false" isAbstract="false" name="KoShapeDeleteCommand" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="23166" />
     </UML:GeneralizableElement.generalization>
     <UML:Classifier.feature>
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23179" type="23154" name="m_controller" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23180" type="23063" name="m_shapes" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23181" type="15472" name="m_deleteShapes" />
      <UML:Operation stereotype="15488" comment="Command to delete a single shape by means of a shape controller.
@param controller the controller to used for deleting.
@param shape a single shape that should be deleted." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23169" isRoot="false" isAbstract="false" isQuery="false" name="KoShapeDeleteCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23170" value="" type="23154" name="controller" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23171" value="" type="23156" name="shape" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation stereotype="15488" comment="Command to delete a set of shapes by means of a shape controller.
@param controller the controller to used for deleting.
@param shapes a set of all the shapes that should be deleted." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23172" isRoot="false" isAbstract="false" isQuery="false" name="KoShapeDeleteCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23173" value="" type="23154" name="controller" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23174" value="" type="23046" name="shapes" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23175" isRoot="false" isAbstract="false" isQuery="false" name="~ KoShapeDeleteCommand" />
      <UML:Operation comment="/// execute the command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23176" isRoot="false" isAbstract="false" isQuery="false" name="execute" />
      <UML:Operation comment="/// revert the actions done in execute" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23177" isRoot="false" isAbstract="false" isQuery="false" name="unexecute" />
      <UML:Operation comment="/// return the name of this command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23178" isRoot="false" isAbstract="false" isQuery="false" name="name" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28848" type="21996" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
     </UML:Classifier.feature>
    </UML:Class>
    <UML:Class comment="/// The undo / redo command for setting the shape background" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23182" isRoot="false" isAbstract="false" name="KoShapeBackgroundCommand" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="23183" />
     </UML:GeneralizableElement.generalization>
     <UML:Classifier.feature>
      <UML:Attribute comment="///&lt; the shapes to set background for" isSpecification="false" visibility="private" xmi.id="23195" type="23063" name="m_shapes" />
      <UML:Attribute comment="///&lt; the old background brushes, one for each shape" isSpecification="false" visibility="private" xmi.id="23197" type="23196" name="m_oldBrushes" />
      <UML:Attribute comment="///&lt; the new background brush to set" isSpecification="false" visibility="private" xmi.id="23198" type="23188" name="m_newBrush" />
      <UML:Operation stereotype="15488" comment="Command to set a new shape background.
@param shapes a set of all the shapes that should get the new background.
@param brush the new background brush" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23186" isRoot="false" isAbstract="false" isQuery="false" name="KoShapeBackgroundCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23187" value="" type="23046" name="shapes" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23190" value="" type="23189" name="brush" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23191" isRoot="false" isAbstract="false" isQuery="false" name="~ KoShapeBackgroundCommand" />
      <UML:Operation comment="/// execute the command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23192" isRoot="false" isAbstract="false" isQuery="false" name="execute" />
      <UML:Operation comment="/// revert the actions done in execute" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23193" isRoot="false" isAbstract="false" isQuery="false" name="unexecute" />
      <UML:Operation comment="/// return the name of this command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23194" isRoot="false" isAbstract="false" isQuery="false" name="name" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28849" type="21996" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
     </UML:Classifier.feature>
    </UML:Class>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23188" isRoot="false" isAbstract="false" name="QBrush" />
    <UML:Class comment="/// The undo / redo command for aligning shapes" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23199" isRoot="false" isAbstract="false" name="KoShapeAlignCommand" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="23200" />
     </UML:GeneralizableElement.generalization>
     <UML:Classifier.feature>
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23220" type="23219" name="m_command" />
      <UML:Operation stereotype="15488" comment="Command to align a set of shapes in a rect
@param shapes a set of all the shapes that should be aligned
@param align the aligment type
@param boundingRect the rect the shape will be aligned in" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23211" isRoot="false" isAbstract="false" isQuery="false" name="KoShapeAlignCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23212" value="" type="23046" name="shapes" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23213" value="" type="23203" name="align" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23214" value="" type="15502" name="boundingRect" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23215" isRoot="false" isAbstract="false" isQuery="false" name="~ KoShapeAlignCommand" />
      <UML:Operation comment="/// execute the command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23216" isRoot="false" isAbstract="false" isQuery="false" name="execute" />
      <UML:Operation comment="/// revert the actions done in execute" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23217" isRoot="false" isAbstract="false" isQuery="false" name="unexecute" />
      <UML:Operation comment="/// return the name of this command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23218" isRoot="false" isAbstract="false" isQuery="false" name="name" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28850" type="21996" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
     </UML:Classifier.feature>
     <UML:Namespace.ownedElement>
      <UML:Enumeration stereotype="23204" comment="/// The different alignment options for this command" isSpecification="false" isLeaf="false" visibility="public" namespace="23199" xmi.id="23203" isRoot="false" isAbstract="false" name="Align" >
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23203" xmi.id="23205" isRoot="false" isAbstract="false" name="HorizontalLeftAlignment" />
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23203" xmi.id="23206" isRoot="false" isAbstract="false" name="HorizontalCenterAlignment" />
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23203" xmi.id="23207" isRoot="false" isAbstract="false" name="HorizontalRightAlignment" />
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23203" xmi.id="23208" isRoot="false" isAbstract="false" name="VerticalBottomAlignment" />
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23203" xmi.id="23209" isRoot="false" isAbstract="false" name="VerticalCenterAlignment" />
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23203" xmi.id="23210" isRoot="false" isAbstract="false" name="VerticalTopAlignment" />
      </UML:Enumeration>
     </UML:Namespace.ownedElement>
    </UML:Class>
    <UML:Class comment="/// The undo / redo command for distributing shapes" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23221" isRoot="false" isAbstract="false" name="KoShapeDistributeCommand" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="23222" />
     </UML:GeneralizableElement.generalization>
     <UML:Classifier.feature>
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23247" type="23225" name="m_distribute" />
      <UML:Attribute isSpecification="false" visibility="private" xmi.id="23248" type="23219" name="m_command" />
      <UML:Operation stereotype="15488" comment="Command to align a set of shapes in a rect
@param shapes a set of all the shapes that should be distributed
@param distribute the distribution type
@param boundingRect the rect the shapes will be distributed in" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23234" isRoot="false" isAbstract="false" isQuery="false" name="KoShapeDistributeCommand" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23235" value="" type="23046" name="shapes" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23236" value="" type="23225" name="distribute" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23237" value="" type="15502" name="boundingRect" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23238" isRoot="false" isAbstract="false" isQuery="false" name="~ KoShapeDistributeCommand" />
      <UML:Operation comment="/// execute the command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23239" isRoot="false" isAbstract="false" isQuery="false" name="execute" />
      <UML:Operation comment="/// revert the actions done in execute" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23240" isRoot="false" isAbstract="false" isQuery="false" name="unexecute" />
      <UML:Operation comment="/// return the name of this command" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23241" isRoot="false" isAbstract="false" isQuery="false" name="name" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28851" type="21996" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="23242" isRoot="false" isAbstract="false" isQuery="false" name="getAvailableSpace" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28852" type="15474" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23243" value="" type="23156" name="first" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23244" value="" type="23156" name="last" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23245" value="" type="15474" name="extent" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23246" value="" type="15502" name="boundingRect" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
     </UML:Classifier.feature>
     <UML:Namespace.ownedElement>
      <UML:Enumeration stereotype="23204" comment="/// The different options to ditribute with this command" isSpecification="false" isLeaf="false" visibility="public" namespace="23221" xmi.id="23225" isRoot="false" isAbstract="false" name="Distribute" >
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23225" xmi.id="23226" isRoot="false" isAbstract="false" name="HorizontalCenterDistribution" />
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23225" xmi.id="23227" isRoot="false" isAbstract="false" name="HorizontalGapsDistribution" />
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23225" xmi.id="23228" isRoot="false" isAbstract="false" name="HorizontalLeftDistribution" />
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23225" xmi.id="23229" isRoot="false" isAbstract="false" name="HorizontalRightDistribution" />
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23225" xmi.id="23230" isRoot="false" isAbstract="false" name="VerticalCenterDistribution" />
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23225" xmi.id="23231" isRoot="false" isAbstract="false" name="VerticalGapsDistribution" />
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23225" xmi.id="23232" isRoot="false" isAbstract="false" name="VerticalBottomDistribution" />
       <UML:EnumerationLiteral isSpecification="false" isLeaf="false" visibility="public" namespace="23225" xmi.id="23233" isRoot="false" isAbstract="false" name="VerticalTopDistribution" />
      </UML:Enumeration>
     </UML:Namespace.ownedElement>
    </UML:Class>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23297" isRoot="false" isAbstract="false" name="KoRTree" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23300" isRoot="false" isAbstract="false" name="QSet" />
    <UML:Class comment="This file is part of the KDE project
Copyright (C) 2001-2005 David Faure &lt;faure@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB.  If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
//**
This class handles the zooming and DPI stuff (conversions between pt values and pixels).
An instance of KoZoomHandler operates at a given zoom (see setZoomAndResolution() and setZoom())
so there is usually one instance of KoZoomHandler per view." isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23324" isRoot="false" isAbstract="false" name="KoZoomHandler" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="23325" />
     </UML:GeneralizableElement.generalization>
     <UML:Classifier.feature>
      <UML:Attribute isSpecification="false" visibility="protected" xmi.id="23408" type="15474" name="m_zoom" />
      <UML:Attribute isSpecification="false" visibility="protected" xmi.id="23409" type="23352" name="m_zoomMode" />
      <UML:Attribute isSpecification="false" visibility="protected" xmi.id="23410" type="15474" name="m_resolutionX" />
      <UML:Attribute isSpecification="false" visibility="protected" xmi.id="23411" type="15474" name="m_resolutionY" />
      <UML:Attribute isSpecification="false" visibility="protected" xmi.id="23412" type="15474" name="m_zoomedResolutionX" />
      <UML:Attribute isSpecification="false" visibility="protected" xmi.id="23413" type="15474" name="m_zoomedResolutionY" />
      <UML:Operation stereotype="15488" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23328" isRoot="false" isAbstract="false" isQuery="false" name="KoZoomHandler" />
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23329" isRoot="false" isAbstract="false" isQuery="false" name="~ KoZoomHandler" />
      <UML:Operation comment="Change the zoom factor to @p z (e.g. 150 for 150%)
and/or change the resolution, given in DPI.
This is done on startup, when zooming, and when printing.
The same call combines both so that all the updating done behind
the scenes is done only once, even if both zoom and DPI must be changed." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23330" isRoot="false" isAbstract="false" isQuery="false" name="setZoomAndResolution" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23331" value="" type="15469" name="zoom" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23332" value="" type="15469" name="dpiX" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23333" value="" type="15469" name="dpiY" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23334" isRoot="false" isAbstract="false" isQuery="false" name="zoomedResolutionX" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28853" type="15474" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23335" isRoot="false" isAbstract="false" isQuery="false" name="zoomedResolutionY" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28854" type="15474" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23336" isRoot="false" isAbstract="false" isQuery="false" name="resolutionX" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28855" type="15474" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23337" isRoot="false" isAbstract="false" isQuery="false" name="resolutionY" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28856" type="15474" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23338" isRoot="false" isAbstract="false" isQuery="false" name="zoomFactorX" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28857" type="15474" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23339" isRoot="false" isAbstract="false" isQuery="false" name="zoomFactorY" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28858" type="15474" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Set a resolution for X and Y, when no zoom applies (e.g. when painting an
embedded document. This will set the zoom to 100, and it will set
zoomedResolution[XY] to the resolution[XY] parameters
Helper method, equivalent to setZoomAndResolution(100,...)." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23340" isRoot="false" isAbstract="false" isQuery="false" name="setResolution" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23341" value="" type="15474" name="resolutionX" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23342" value="" type="15474" name="resolutionY" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Set the zoomed resolution for X and Y.
Compared to the setZoom... methods, this allows to set a different
zoom factor for X and for Y." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23343" isRoot="false" isAbstract="false" isQuery="false" name="setZoomedResolution" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23344" value="" type="15474" name="zoomedResolutionX" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23345" value="" type="15474" name="zoomedResolutionY" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Change the zoom level, keeping the resolution unchanged.
@param zoom the zoom factor (e.g. 100 for 100%)
\deprecated" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23346" isRoot="false" isAbstract="false" isQuery="false" name="setZoom" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23347" value="" type="15469" name="zoom" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Change the zoom level, keeping the resolution unchanged.
@param zoom the zoom factor (e.g. 1.0 for 100%)" isSpecification="false" isLeaf="false" visibility="public" xmi.id="23348" isRoot="false" isAbstract="false" isQuery="false" name="setZoom" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23349" value="" type="15474" name="zoom" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23350" isRoot="false" isAbstract="false" isQuery="false" name="setZoomMode" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23353" value="" type="23352" name="zoomMode" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23354" isRoot="false" isAbstract="false" isQuery="false" name="zoomInPercent" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28859" type="15469" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23355" isRoot="false" isAbstract="false" isQuery="false" name="zoomMode" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28860" type="23352" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23356" isRoot="false" isAbstract="false" isQuery="false" name="zoomItXOld" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28861" type="15469" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23357" value="" type="15474" name="z" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23358" isRoot="false" isAbstract="false" isQuery="false" name="zoomItYOld" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28862" type="15469" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23359" value="" type="15474" name="z" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23360" isRoot="false" isAbstract="false" isQuery="false" name="zoomItX" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28863" type="15474" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23361" value="" type="15474" name="z" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23362" isRoot="false" isAbstract="false" isQuery="false" name="zoomItY" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28864" type="15474" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23363" value="" type="15474" name="z" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23364" isRoot="false" isAbstract="false" isQuery="false" name="zoomPointOld" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28865" type="22082" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23367" value="" type="23366" name="p" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23368" isRoot="false" isAbstract="false" isQuery="false" name="zoomRectOld" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28866" type="22096" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23371" value="" type="23370" name="r" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23372" isRoot="false" isAbstract="false" isQuery="false" name="zoomSizeOld" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28867" type="23376" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23375" value="" type="23374" name="s" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23377" isRoot="false" isAbstract="false" isQuery="false" name="unzoomItXOld" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28868" type="15474" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23378" value="" type="15469" name="x" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23379" isRoot="false" isAbstract="false" isQuery="false" name="unzoomItYOld" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28869" type="15474" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23380" value="" type="15469" name="y" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23381" isRoot="false" isAbstract="false" isQuery="false" name="unzoomItX" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28870" type="15474" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23382" value="" type="15474" name="x" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23383" isRoot="false" isAbstract="false" isQuery="false" name="unzoomItY" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28871" type="15474" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23384" value="" type="15474" name="y" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23385" isRoot="false" isAbstract="false" isQuery="false" name="unzoomPointOld" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28872" type="23365" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23386" value="" type="22083" name="p" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation isSpecification="false" isLeaf="false" visibility="public" xmi.id="23387" isRoot="false" isAbstract="false" isQuery="false" name="unzoomRectOld" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28873" type="23369" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23388" value="" type="22097" name="r" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="// KoViewConverter-interface methods/**
Convert a coordinate in pt to pixels.
@param documentPoint the point in the document coordinate system of a KoShape." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23389" isRoot="false" isAbstract="false" isQuery="false" name="documentToView" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28874" type="15578" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23390" value="" type="15579" name="documentPoint" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Convert a coordinate in pixels to pt.
@param viewPoint the point in the coordinate system of the widget, or window." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23391" isRoot="false" isAbstract="false" isQuery="false" name="viewToDocument" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28875" type="15578" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23392" value="" type="15579" name="viewPoint" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Convert a rectangle in pt to pixels.
@param documentRect the rect in the document coordinate system of a KoShape." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23393" isRoot="false" isAbstract="false" isQuery="false" name="documentToView" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28876" type="15502" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23394" value="" type="15503" name="documentRect" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Convert a rectangle in pixels to pt.
@param viewRect the rect in the coordinate system of the widget, or window." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23395" isRoot="false" isAbstract="false" isQuery="false" name="viewToDocument" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28877" type="15502" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23396" value="" type="15503" name="viewRect" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Convert a single x coordinate in pt to pixels.
@param documentX the x coordinate in pt.
@return the x coordinate in pixels." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23397" isRoot="false" isAbstract="false" isQuery="false" name="documentToViewX" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28878" type="15474" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23398" value="" type="15474" name="documentX" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Convert a single y coordinate in pt to pixels.
@param documentY the y coordinate in pt.
@return the y coordinate in pixels." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23399" isRoot="false" isAbstract="false" isQuery="false" name="documentToViewY" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28879" type="15474" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23400" value="" type="15474" name="documentY" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Convert a single x coordinate in pixels to pt.
@param viewX the x coordinate in pixels.
@return the x coordinate in pt." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23401" isRoot="false" isAbstract="false" isQuery="false" name="viewToDocumentX" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28880" type="15474" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23402" value="" type="15474" name="viewX" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="Convert a single y coordinate in pixels to pt.
@param viewY the y coordinate in pixels.
@return the y coordinate in pt." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23403" isRoot="false" isAbstract="false" isQuery="false" name="viewToDocumentY" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter kind="return" xmi.id="28881" type="15474" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23404" value="" type="15474" name="viewY" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
      <UML:Operation comment="set the zoom levels of the individual x and y axis to the pointer paramets.
@param zoomX a pointer to a double which will be modified to set the horizontal zoom.
@param zoomY a pointer to a double which will be modified to set the vertical zoom." isSpecification="false" isLeaf="false" visibility="public" xmi.id="23405" isRoot="false" isAbstract="false" isQuery="false" name="zoom" >
       <UML:BehavioralFeature.parameter>
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23406" value="" type="15491" name="zoomX" />
        <UML:Parameter isSpecification="false" visibility="private" xmi.id="23407" value="" type="15491" name="zoomY" />
       </UML:BehavioralFeature.parameter>
      </UML:Operation>
     </UML:Classifier.feature>
    </UML:Class>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23351" isRoot="false" isAbstract="false" name="KoZoomMode" >
     <UML:Namespace.ownedElement>
      <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="23351" xmi.id="23352" isRoot="false" isAbstract="false" name="Mode" />
     </UML:Namespace.ownedElement>
    </UML:Class>
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23365" isRoot="false" isAbstract="false" name="QPointF" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23369" isRoot="false" isAbstract="false" name="QRectF" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23373" isRoot="false" isAbstract="false" name="KoSize" />
    <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23376" isRoot="false" isAbstract="false" name="QSize" />
    <UML:Class comment="KisZoomHandler handles the zoom conversions for Krita. Krita is unique among KOffice applications that its internal coordinates are not in postscript points, but in pixels. 

However, a Krita image also has a resolution, like 300 dpi, or rather, 300 pixels-per-inch. 

Combined with the actual screen resolutions (say 100dpi) and the zoom level, a Krita canvas will show the image at a particular scale.

There is also a dot-for-dot mode, where one pixel of the image is one pixel on screen." isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="23843" isRoot="false" isAbstract="false" name="KisZoomHandler" >
     <UML:GeneralizableElement.generalization>
      <UML:Generalization xmi.idref="24053" />
     </UML:GeneralizableElement.generalization>
    </UML:Class>
    <UML:Generalization isSpecification="false" child="15520" visibility="public" namespace="m1" xmi.id="15522" parent="15521" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="15556" visibility="public" namespace="m1" xmi.id="15557" parent="15512" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="15669" visibility="public" namespace="m1" xmi.id="15712" parent="15486" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="15739" visibility="public" namespace="m1" xmi.id="15825" parent="15669" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="15761" visibility="public" namespace="m1" xmi.id="15870" parent="15669" discriminator="" name="" />
    <UML:Association isSpecification="false" visibility="public" namespace="m1" xmi.id="15960" name="" >
     <UML:Association.connection>
      <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="15961" aggregation="aggregate" type="15647" name="" />
      <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="15962" aggregation="none" type="15520" name="" />
     </UML:Association.connection>
    </UML:Association>
    <UML:Generalization isSpecification="false" child="15739" visibility="public" namespace="m1" xmi.id="16943" parent="15512" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="15761" visibility="public" namespace="m1" xmi.id="16988" parent="15512" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="17986" visibility="public" namespace="m1" xmi.id="18008" parent="15486" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="15761" visibility="public" namespace="m1" xmi.id="18715" parent="15486" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="15739" visibility="public" namespace="m1" xmi.id="18760" parent="15486" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="21609" visibility="public" namespace="m1" xmi.id="21730" parent="15485" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="21935" visibility="public" namespace="m1" xmi.id="21939" parent="21938" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="22035" visibility="public" namespace="m1" xmi.id="22037" parent="22036" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="22035" visibility="public" namespace="m1" xmi.id="22040" parent="22003" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="23035" visibility="public" namespace="m1" xmi.id="23041" parent="15482" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="23067" visibility="public" namespace="m1" xmi.id="23068" parent="15482" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="23083" visibility="public" namespace="m1" xmi.id="23084" parent="15482" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="23101" visibility="public" namespace="m1" xmi.id="23102" parent="15482" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="23117" visibility="public" namespace="m1" xmi.id="23118" parent="15482" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="23139" visibility="public" namespace="m1" xmi.id="23140" parent="23117" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="23149" visibility="public" namespace="m1" xmi.id="23150" parent="15482" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="23165" visibility="public" namespace="m1" xmi.id="23166" parent="15482" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="23182" visibility="public" namespace="m1" xmi.id="23183" parent="15482" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="23199" visibility="public" namespace="m1" xmi.id="23200" parent="15482" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="23221" visibility="public" namespace="m1" xmi.id="23222" parent="15482" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="15483" visibility="public" namespace="m1" xmi.id="23249" parent="15540" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="23324" visibility="public" namespace="m1" xmi.id="23325" parent="15485" discriminator="" name="" />
    <UML:Generalization isSpecification="false" child="23843" visibility="public" namespace="m1" xmi.id="24053" parent="23324" discriminator="" name="" />
   </UML:Namespace.ownedElement>
  </UML:Model>
 </XMI.content>
 <XMI.extensions xmi.extender="umbrello" >
  <docsettings viewid="15468" documentation="" uniqueid="28881" />
  <diagrams>
   <diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" linewidth="0" zoom="81" showgrid="0" showopsig="1" usefillcolor="1" snapx="10" canvaswidth="1379" snapy="10" showatts="1" xmi.id="15468" documentation="" type="402" showops="1" showpackage="0" name="class diagram" localid="900000" showstereotype="0" showscope="1" snapcsgrid="0" font="Bitstream Vera Sans,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" canvasheight="1631" >
    <widgets>
     <classwidget usesdiagramfillcolour="1" width="389" showattsigs="601" usesdiagramusefillcolour="1" x="199" y="88" showopsigs="601" linewidth="none" fillcolour="none" height="243" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="15486" showoperations="1" showpackage="0" showscope="1" font="Bitstream Vera Sans,10,-1,5,50,1,0,0,0,0" linecolor="none" />
     <classwidget usesdiagramfillcolour="1" width="384" showattsigs="601" usesdiagramusefillcolour="1" x="694" y="65" showopsigs="601" linewidth="none" fillcolour="none" height="396" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="15520" showoperations="1" showpackage="0" showscope="1" font="Bitstream Vera Sans,10,-1,5,75,0,0,0,0,0" linecolor="none" />
     <classwidget usesdiagramfillcolour="0" width="292" showattsigs="601" usesdiagramusefillcolour="0" x="610" y="564" showopsigs="601" linewidth="none" fillcolour="#ffffc0" height="153" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="15647" showoperations="1" showpackage="0" showscope="1" font="Bitstream Vera Sans,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" />
     <classwidget usesdiagramfillcolour="0" width="151" showattsigs="601" usesdiagramusefillcolour="0" x="239" y="621" showopsigs="601" linewidth="none" fillcolour="#ffffc0" height="36" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="15739" showoperations="1" showpackage="0" showscope="1" font="Bitstream Vera Sans,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" />
     <classwidget usesdiagramfillcolour="1" width="144" showattsigs="601" usesdiagramusefillcolour="1" x="18" y="622" showopsigs="601" linewidth="none" fillcolour="none" height="36" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="15761" showoperations="1" showpackage="0" showscope="1" font="Bitstream Vera Sans,10,-1,5,75,0,0,0,0,0" linecolor="none" />
     <classwidget usesdiagramfillcolour="1" width="74" showattsigs="601" usesdiagramusefillcolour="1" x="47" y="24" showopsigs="601" linewidth="none" fillcolour="none" height="36" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="15512" showoperations="1" showpackage="0" showscope="1" font="Bitstream Vera Sans,10,-1,5,75,0,0,0,0,0" linecolor="none" />
     <classwidget usesdiagramfillcolour="1" width="257" showattsigs="601" usesdiagramusefillcolour="1" x="243" y="402" showopsigs="601" linewidth="none" fillcolour="none" height="45" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="15669" showoperations="1" showpackage="0" showscope="1" font="Bitstream Vera Sans,10,-1,5,75,0,0,0,0,0" linecolor="none" />
     <classwidget usesdiagramfillcolour="1" width="422" showattsigs="601" usesdiagramusefillcolour="1" x="279" y="876" showopsigs="601" linewidth="none" fillcolour="none" height="225" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="15485" showoperations="1" showpackage="0" showscope="1" font="Bitstream Vera Sans,10,-1,5,50,1,0,0,0,0" linecolor="none" />
     <classwidget usesdiagramfillcolour="1" width="112" showattsigs="601" usesdiagramusefillcolour="1" x="916" y="880" showopsigs="601" linewidth="none" fillcolour="none" height="36" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="23351" showoperations="1" showpackage="0" showscope="1" font="Bitstream Vera Sans,10,-1,5,75,0,0,0,0,0" linecolor="none" />
     <classwidget usesdiagramfillcolour="1" width="559" showattsigs="601" usesdiagramusefillcolour="1" x="816" y="817" showopsigs="601" linewidth="none" fillcolour="none" height="810" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="23324" showoperations="1" showpackage="0" showscope="1" font="Bitstream Vera Sans,10,-1,5,75,0,0,0,0,0" linecolor="none" />
     <classwidget usesdiagramfillcolour="1" width="132" showattsigs="601" usesdiagramusefillcolour="1" x="1031" y="622" showopsigs="601" linewidth="none" fillcolour="none" height="36" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="23843" showoperations="1" showpackage="0" showscope="1" font="Bitstream Vera Sans,10,-1,5,75,0,0,0,0,0" linecolor="none" />
    </widgets>
    <messages/>
    <associations>
     <assocwidget totalcounta="3" indexa="1" totalcountb="3" indexb="1" linewidth="none" widgetbid="15512" widgetaid="15761" xmi.id="16988" linecolor="none" >
      <linepath>
       <startpoint startx="66" starty="622" />
       <endpoint endx="71" endy="60" />
      </linepath>
     </assocwidget>
     <assocwidget totalcounta="3" indexa="2" visibilityB="200" totalcountb="2" indexb="1" linewidth="none" widgetbid="15486" widgetaid="15520" xmi.id="15570" type="501" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" >
      <linepath>
       <startpoint startx="694" starty="329" />
       <endpoint endx="588" endy="209" />
      </linepath>
      <floatingtext usesdiagramfillcolour="1" width="32" usesdiagramusefillcolour="1" x="521" y="251" linewidth="none" posttext="" role="702" fillcolour="none" height="32" usefillcolor="1" pretext="" isinstance="0" xmi.id="27131" showstereotype="1" text="0..1" font="Bitstream Vera Sans,10,-1,5,50,0,0,0,0,0" linecolor="none" />
      <floatingtext usesdiagramfillcolour="1" width="85" usesdiagramusefillcolour="1" x="590" y="211" linewidth="none" posttext="" role="710" fillcolour="none" height="22" usefillcolor="1" pretext="+" isinstance="0" xmi.id="27130" showstereotype="1" text="m_canvas" font="Bitstream Vera Sans,10,-1,5,50,0,0,0,0,0" linecolor="none" />
     </assocwidget>
     <assocwidget totalcounta="3" indexa="1" totalcountb="3" indexb="2" linewidth="none" widgetbid="15512" widgetaid="15739" xmi.id="16943" linecolor="none" >
      <linepath>
       <startpoint startx="289" starty="621" />
       <endpoint endx="96" endy="60" />
      </linepath>
     </assocwidget>
     <assocwidget totalcounta="3" indexa="1" visibilityB="200" totalcountb="2" indexb="1" linewidth="none" widgetbid="15512" widgetaid="15520" xmi.id="15571" type="501" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" >
      <linepath>
       <startpoint startx="694" starty="197" />
       <endpoint endx="121" endy="42" />
      </linepath>
      <floatingtext usesdiagramfillcolour="1" width="32" usesdiagramusefillcolour="1" x="97" y="48" linewidth="none" posttext="" role="702" fillcolour="none" height="32" usefillcolor="1" pretext="" isinstance="0" xmi.id="27133" showstereotype="1" text="0..1" font="Bitstream Vera Sans,10,-1,5,50,0,0,0,0,0" linecolor="none" />
      <floatingtext usesdiagramfillcolour="1" width="131" usesdiagramusefillcolour="1" x="123" y="44" linewidth="none" posttext="" role="710" fillcolour="none" height="22" usefillcolor="1" pretext="+" isinstance="0" xmi.id="27132" text="m_canvasWidget" font="Bitstream Vera Sans,10,-1,5,50,0,0,0,0,0" linecolor="none" />
     </assocwidget>
     <assocwidget totalcounta="4" indexa="3" visibilityB="200" totalcountb="2" indexb="1" linewidth="none" widgetbid="15520" widgetaid="15647" xmi.id="16005" type="510" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" >
      <linepath>
       <startpoint startx="829" starty="564" />
       <endpoint endx="886" endy="461" />
      </linepath>
      <floatingtext usesdiagramfillcolour="1" width="149" usesdiagramusefillcolour="1" x="741" y="463" linewidth="none" posttext="" role="710" fillcolour="none" height="22" usefillcolor="1" pretext="+" isinstance="0" xmi.id="27134" showstereotype="1" text="m_canvasController" font="Bitstream Vera Sans,10,-1,5,50,0,0,0,0,0" linecolor="none" />
     </assocwidget>
     <assocwidget totalcounta="3" indexa="1" visibilityB="200" totalcountb="2" indexb="1" linewidth="none" widgetbid="15739" widgetaid="15647" xmi.id="20732" type="510" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" >
      <linepath>
       <startpoint startx="610" starty="615" />
       <endpoint endx="390" endy="639" />
      </linepath>
      <floatingtext usesdiagramfillcolour="1" width="97" usesdiagramusefillcolour="1" x="392" y="615" linewidth="none" posttext="" role="710" fillcolour="none" height="22" usefillcolor="1" pretext="+" isinstance="0" xmi.id="27135" showstereotype="1" text="m_QCanvas" font="Bitstream Vera Sans,10,-1,5,50,0,0,0,0,0" linecolor="none" />
     </assocwidget>
     <assocwidget totalcounta="3" indexa="2" visibilityB="200" totalcountb="2" indexb="1" linewidth="none" widgetbid="15761" widgetaid="15647" xmi.id="20780" type="510" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" >
      <linepath>
       <startpoint startx="610" starty="666" />
       <endpoint endx="162" endy="640" />
      </linepath>
      <floatingtext usesdiagramfillcolour="1" width="136" usesdiagramusefillcolour="1" x="164" y="642" linewidth="none" posttext="" role="710" fillcolour="none" height="22" usefillcolor="1" pretext="+" isinstance="0" xmi.id="27136" showstereotype="1" text="m_openGLCanvas" font="Bitstream Vera Sans,10,-1,5,50,0,0,0,0,0" linecolor="none" />
     </assocwidget>
     <assocwidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" linewidth="none" widgetbid="15486" widgetaid="15669" xmi.id="15712" linecolor="none" >
      <linepath>
       <startpoint startx="371" starty="402" />
       <endpoint endx="393" endy="331" />
      </linepath>
     </assocwidget>
     <assocwidget totalcounta="3" indexa="2" totalcountb="5" indexb="2" linewidth="none" widgetbid="15669" widgetaid="15739" xmi.id="15825" linecolor="none" >
      <linepath>
       <startpoint startx="339" starty="621" />
       <endpoint endx="345" endy="447" />
      </linepath>
     </assocwidget>
     <assocwidget totalcounta="3" indexa="2" totalcountb="5" indexb="1" linewidth="none" widgetbid="15669" widgetaid="15761" xmi.id="15870" linecolor="none" >
      <linepath>
       <startpoint startx="114" starty="622" />
       <endpoint endx="294" endy="447" />
      </linepath>
     </assocwidget>
     <assocwidget totalcounta="4" indexa="1" visibilityB="200" totalcountb="5" indexb="3" linewidth="none" widgetbid="15669" widgetaid="15647" xmi.id="20780" type="510" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" >
      <linepath>
       <startpoint startx="683" starty="564" />
       <endpoint endx="397" endy="447" />
      </linepath>
      <floatingtext usesdiagramfillcolour="1" width="136" usesdiagramusefillcolour="1" x="437" y="449" linewidth="none" posttext="" role="710" fillcolour="none" height="22" usefillcolor="1" pretext="+" isinstance="0" xmi.id="27137" showstereotype="1" text="m_openGLCanvas" font="Bitstream Vera Sans,10,-1,5,50,0,0,0,0,0" linecolor="none" />
     </assocwidget>
     <assocwidget totalcounta="4" indexa="2" visibilityB="200" totalcountb="5" indexb="4" linewidth="none" widgetbid="15669" widgetaid="15647" xmi.id="20732" type="510" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" >
      <linepath>
       <startpoint startx="756" starty="564" />
       <endpoint endx="448" endy="447" />
      </linepath>
      <floatingtext usesdiagramfillcolour="1" width="97" usesdiagramusefillcolour="1" x="458" y="499" linewidth="none" posttext="" role="710" fillcolour="none" height="22" usefillcolor="1" pretext="+" isinstance="0" xmi.id="27138" showstereotype="1" text="m_QCanvas" font="Bitstream Vera Sans,10,-1,5,50,0,0,0,0,0" linecolor="none" />
     </assocwidget>
     <assocwidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" linewidth="none" widgetbid="15485" widgetaid="23324" xmi.id="23325" linecolor="none" >
      <linepath>
       <startpoint startx="816" starty="1222" />
       <endpoint endx="701" endy="988" />
      </linepath>
     </assocwidget>
     <assocwidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" linewidth="none" widgetbid="23324" widgetaid="23843" xmi.id="24053" linecolor="none" >
      <linepath>
       <startpoint startx="1097" starty="658" />
       <endpoint endx="1095" endy="817" />
      </linepath>
     </assocwidget>
     <assocwidget totalcounta="2" indexa="1" visibilityB="200" totalcountb="2" indexb="1" linewidth="none" widgetbid="23843" widgetaid="15647" xmi.id="24367" type="510" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" >
      <linepath>
       <startpoint startx="902" starty="640" />
       <endpoint endx="1031" endy="640" />
      </linepath>
      <floatingtext usesdiagramfillcolour="1" width="126" usesdiagramusefillcolour="1" x="909" y="642" linewidth="none" posttext="" role="710" fillcolour="none" height="22" usefillcolor="1" pretext="+" isinstance="0" xmi.id="27141" showstereotype="1" text="m_zoomHandler" font="Bitstream Vera Sans,10,-1,5,50,0,0,0,0,0" linecolor="none" />
     </assocwidget>
    </associations>
   </diagram>
  </diagrams>
  <listview>
   <listitem open="1" type="800" label="Views" >
    <listitem open="1" type="801" label="Logical View" >
     <listitem open="0" type="813" id="22028" />
     <listitem open="0" type="813" id="22029" />
     <listitem open="0" type="813" id="21957" />
     <listitem open="0" type="813" id="22165" />
     <listitem open="1" type="813" id="21174" />
     <listitem open="0" type="813" id="21977" />
     <listitem open="0" type="813" id="21978" />
     <listitem open="0" type="813" id="21992" />
     <listitem open="0" type="813" id="21993" />
     <listitem open="0" type="813" id="21983" />
     <listitem open="0" type="813" id="21984" />
     <listitem open="1" type="813" id="15669" >
      <listitem open="0" type="813" id="15482" />
      <listitem open="0" type="815" id="21080" />
     </listitem>
     <listitem open="0" type="813" id="22032" />
     <listitem open="0" type="813" id="21997" >
      <listitem open="0" type="815" id="21998" />
      <listitem open="0" type="815" id="21999" />
      <listitem open="0" type="815" id="22001" />
     </listitem>
     <listitem open="0" type="813" id="22035" >
      <listitem open="0" type="813" id="22043" />
      <listitem open="0" type="814" id="22240" />
      <listitem open="0" type="814" id="22242" />
      <listitem open="0" type="814" id="22245" />
      <listitem open="0" type="814" id="22246" />
      <listitem open="0" type="814" id="22248" />
      <listitem open="0" type="814" id="22250" />
      <listitem open="0" type="814" id="22251" />
      <listitem open="0" type="814" id="22252" />
      <listitem open="0" type="814" id="22253" />
      <listitem open="0" type="814" id="22254" />
      <listitem open="0" type="814" id="22257" />
      <listitem open="0" type="815" id="22044" />
      <listitem open="0" type="815" id="22048" />
      <listitem open="0" type="815" id="22049" />
      <listitem open="0" type="815" id="22050" />
      <listitem open="0" type="815" id="22054" />
      <listitem open="0" type="815" id="22056" />
      <listitem open="0" type="815" id="22065" />
      <listitem open="0" type="815" id="22070" />
      <listitem open="0" type="815" id="22072" />
      <listitem open="0" type="815" id="22077" />
      <listitem open="0" type="815" id="22079" />
      <listitem open="0" type="815" id="22081" />
      <listitem open="0" type="815" id="22092" />
      <listitem open="0" type="815" id="22100" />
      <listitem open="0" type="815" id="22101" />
      <listitem open="0" type="815" id="22102" />
      <listitem open="0" type="815" id="22104" />
      <listitem open="0" type="815" id="22106" />
      <listitem open="0" type="815" id="22107" />
      <listitem open="0" type="815" id="22109" />
      <listitem open="0" type="815" id="22111" />
      <listitem open="0" type="815" id="22112" />
      <listitem open="0" type="815" id="22114" />
      <listitem open="0" type="815" id="22115" />
      <listitem open="0" type="815" id="22117" />
      <listitem open="0" type="815" id="22119" />
      <listitem open="0" type="815" id="22120" />
      <listitem open="0" type="815" id="22122" />
      <listitem open="0" type="815" id="22133" />
      <listitem open="0" type="815" id="22138" />
      <listitem open="0" type="815" id="22141" />
      <listitem open="0" type="815" id="22145" />
      <listitem open="0" type="815" id="22146" />
      <listitem open="0" type="815" id="22147" />
      <listitem open="0" type="815" id="22149" />
      <listitem open="0" type="815" id="22151" />
      <listitem open="0" type="815" id="22152" />
      <listitem open="0" type="815" id="22154" />
      <listitem open="0" type="815" id="22155" />
      <listitem open="0" type="815" id="22157" />
      <listitem open="0" type="815" id="22158" />
      <listitem open="0" type="815" id="22160" />
      <listitem open="0" type="815" id="22161" />
      <listitem open="0" type="815" id="22162" />
      <listitem open="0" type="815" id="22164" />
      <listitem open="0" type="815" id="22168" />
      <listitem open="0" type="815" id="22170" />
      <listitem open="0" type="815" id="22177" />
      <listitem open="0" type="815" id="22180" />
      <listitem open="0" type="815" id="22185" />
      <listitem open="0" type="815" id="22188" />
      <listitem open="0" type="815" id="22192" />
      <listitem open="0" type="815" id="22195" />
      <listitem open="0" type="815" id="22205" />
      <listitem open="0" type="815" id="22215" />
      <listitem open="0" type="815" id="22225" />
      <listitem open="0" type="815" id="22235" />
      <listitem open="0" type="815" id="22236" />
      <listitem open="0" type="815" id="22238" />
      <listitem open="0" type="815" id="22239" />
     </listitem>
     <listitem open="0" type="813" id="21994" />
     <listitem open="0" type="813" id="21995" />
     <listitem open="1" type="813" id="17986" />
     <listitem open="0" type="813" id="21979" />
     <listitem open="0" type="813" id="21980" />
     <listitem open="0" type="813" id="21987" />
     <listitem open="0" type="813" id="21988" />
     <listitem open="0" type="813" id="21960" />
     <listitem open="0" type="813" id="21961" />
     <listitem open="0" type="813" id="21968" />
     <listitem open="0" type="813" id="21969" />
     <listitem open="0" type="813" id="22031" />
     <listitem open="1" type="813" id="15761" />
     <listitem open="0" type="813" id="21963" />
     <listitem open="0" type="813" id="21964" />
     <listitem open="0" type="813" id="21975" />
     <listitem open="0" type="813" id="21976" />
     <listitem open="0" type="813" id="21989" />
     <listitem open="0" type="813" id="21990" />
     <listitem open="0" type="813" id="21973" />
     <listitem open="0" type="813" id="21974" />
     <listitem open="1" type="813" id="15739" />
     <listitem open="0" type="813" id="21981" />
     <listitem open="0" type="813" id="21982" />
     <listitem open="0" type="813" id="21935" >
      <listitem open="0" type="815" id="21943" />
      <listitem open="0" type="815" id="21944" />
      <listitem open="0" type="815" id="21945" />
      <listitem open="0" type="815" id="21950" />
      <listitem open="0" type="815" id="21956" />
      <listitem open="0" type="816" id="21936" />
      <listitem open="0" type="829" id="21942" />
     </listitem>
     <listitem open="0" type="813" id="21985" />
     <listitem open="0" type="813" id="21986" />
     <listitem open="0" type="813" id="22003" >
      <listitem open="0" type="815" id="22004" />
      <listitem open="0" type="815" id="22005" />
      <listitem open="0" type="815" id="22006" />
      <listitem open="0" type="815" id="22009" />
      <listitem open="0" type="815" id="22011" />
      <listitem open="0" type="815" id="22012" />
      <listitem open="0" type="815" id="22014" />
      <listitem open="0" type="815" id="22016" />
      <listitem open="0" type="815" id="22017" />
      <listitem open="0" type="815" id="22020" />
      <listitem open="0" type="815" id="22021" />
      <listitem open="0" type="815" id="22024" />
     </listitem>
     <listitem open="1" type="813" id="15647" >
      <listitem open="0" type="814" id="16005" />
      <listitem open="1" type="814" id="20732" />
      <listitem open="1" type="814" id="20780" />
      <listitem open="1" type="814" id="21831" />
      <listitem open="1" type="814" id="22320" />
      <listitem open="1" type="814" id="22678" />
      <listitem open="1" type="814" id="24367" />
     </listitem>
     <listitem open="1" type="813" id="21609" />
     <listitem open="1" type="813" id="23843" />
     <listitem open="0" type="813" id="15486" >
      <listitem open="0" type="815" id="15487" />
      <listitem open="0" type="815" id="15489" />
      <listitem open="0" type="815" id="15490" />
      <listitem open="0" type="815" id="15494" />
      <listitem open="0" type="815" id="15495" />
      <listitem open="0" type="815" id="15499" />
      <listitem open="0" type="815" id="15501" />
      <listitem open="0" type="815" id="15505" />
      <listitem open="0" type="815" id="15507" />
      <listitem open="0" type="815" id="15509" />
      <listitem open="0" type="815" id="15511" />
      <listitem open="0" type="815" id="15514" />
     </listitem>
     <listitem open="0" type="813" id="15520" >
      <listitem open="0" type="813" id="15556" >
       <listitem open="0" type="814" id="15569" />
       <listitem open="0" type="815" id="15560" />
       <listitem open="0" type="815" id="15561" />
       <listitem open="0" type="815" id="15562" />
       <listitem open="0" type="815" id="15564" />
       <listitem open="0" type="815" id="15566" />
      </listitem>
      <listitem open="0" type="814" id="15570" />
      <listitem open="0" type="814" id="15571" />
      <listitem open="0" type="814" id="15573" />
      <listitem open="0" type="814" id="15574" />
      <listitem open="0" type="815" id="15525" />
      <listitem open="0" type="815" id="15527" />
      <listitem open="0" type="815" id="15528" />
      <listitem open="0" type="815" id="15531" />
      <listitem open="0" type="815" id="15532" />
      <listitem open="0" type="815" id="15533" />
      <listitem open="0" type="815" id="15534" />
      <listitem open="0" type="815" id="15535" />
      <listitem open="0" type="815" id="15536" />
      <listitem open="0" type="815" id="15538" />
      <listitem open="0" type="815" id="15539" />
      <listitem open="0" type="815" id="15545" />
      <listitem open="0" type="815" id="15548" />
      <listitem open="0" type="815" id="15550" />
      <listitem open="0" type="815" id="15552" />
      <listitem open="0" type="815" id="15554" />
      <listitem open="0" type="815" id="15555" />
     </listitem>
     <listitem open="0" type="813" id="22034" />
     <listitem open="0" type="813" id="22030" />
     <listitem open="0" type="813" id="22033" />
     <listitem open="0" type="813" id="22036" />
     <listitem open="0" type="813" id="23117" >
      <listitem open="0" type="814" id="23136" />
      <listitem open="0" type="814" id="23137" />
      <listitem open="0" type="814" id="23138" />
      <listitem open="0" type="815" id="23121" />
      <listitem open="0" type="815" id="23127" />
      <listitem open="0" type="815" id="23131" />
      <listitem open="0" type="815" id="23132" />
      <listitem open="0" type="815" id="23133" />
      <listitem open="0" type="815" id="23134" />
      <listitem open="0" type="815" id="23135" />
     </listitem>
     <listitem open="0" type="813" id="22060" />
     <listitem open="0" type="813" id="23365" />
     <listitem open="0" type="813" id="23297" />
     <listitem open="0" type="813" id="23369" />
     <listitem open="0" type="813" id="15481" />
     <listitem open="0" type="813" id="23045" />
     <listitem open="0" type="813" id="23031" />
     <listitem open="0" type="813" id="23199" >
      <listitem open="0" type="814" id="23220" />
      <listitem open="0" type="815" id="23211" />
      <listitem open="0" type="815" id="23215" />
      <listitem open="0" type="815" id="23216" />
      <listitem open="0" type="815" id="23217" />
      <listitem open="0" type="815" id="23218" />
      <listitem open="0" type="831" id="23203" >
       <listitem open="0" type="839" id="23205" />
       <listitem open="0" type="839" id="23206" />
       <listitem open="0" type="839" id="23207" />
       <listitem open="0" type="839" id="23208" />
       <listitem open="0" type="839" id="23209" />
       <listitem open="0" type="839" id="23210" />
      </listitem>
     </listitem>
     <listitem open="0" type="813" id="23182" >
      <listitem open="0" type="814" id="23195" />
      <listitem open="0" type="814" id="23197" />
      <listitem open="0" type="814" id="23198" />
      <listitem open="0" type="815" id="23186" />
      <listitem open="0" type="815" id="23191" />
      <listitem open="0" type="815" id="23192" />
      <listitem open="0" type="815" id="23193" />
      <listitem open="0" type="815" id="23194" />
     </listitem>
     <listitem open="0" type="813" id="23033" />
     <listitem open="0" type="813" id="23034" />
     <listitem open="0" type="813" id="23149" >
      <listitem open="0" type="814" id="23162" />
      <listitem open="0" type="814" id="23163" />
      <listitem open="0" type="814" id="23164" />
      <listitem open="0" type="815" id="23153" />
      <listitem open="0" type="815" id="23158" />
      <listitem open="0" type="815" id="23159" />
      <listitem open="0" type="815" id="23160" />
      <listitem open="0" type="815" id="23161" />
     </listitem>
     <listitem open="0" type="813" id="23165" >
      <listitem open="0" type="814" id="23179" />
      <listitem open="0" type="814" id="23180" />
      <listitem open="0" type="814" id="23181" />
      <listitem open="0" type="815" id="23169" />
      <listitem open="0" type="815" id="23172" />
      <listitem open="0" type="815" id="23175" />
      <listitem open="0" type="815" id="23176" />
      <listitem open="0" type="815" id="23177" />
      <listitem open="0" type="815" id="23178" />
     </listitem>
     <listitem open="0" type="813" id="23221" >
      <listitem open="0" type="814" id="23247" />
      <listitem open="0" type="814" id="23248" />
      <listitem open="0" type="815" id="23234" />
      <listitem open="0" type="815" id="23238" />
      <listitem open="0" type="815" id="23239" />
      <listitem open="0" type="815" id="23240" />
      <listitem open="0" type="815" id="23241" />
      <listitem open="0" type="815" id="23242" />
      <listitem open="0" type="831" id="23225" >
       <listitem open="0" type="839" id="23226" />
       <listitem open="0" type="839" id="23227" />
       <listitem open="0" type="839" id="23228" />
       <listitem open="0" type="839" id="23229" />
       <listitem open="0" type="839" id="23230" />
       <listitem open="0" type="839" id="23231" />
       <listitem open="0" type="839" id="23232" />
       <listitem open="0" type="839" id="23233" />
      </listitem>
     </listitem>
     <listitem open="0" type="813" id="23032" />
     <listitem open="0" type="813" id="15483" >
      <listitem open="0" type="814" id="23294" />
      <listitem open="0" type="814" id="23295" />
      <listitem open="0" type="814" id="23296" />
      <listitem open="0" type="814" id="23299" />
      <listitem open="0" type="814" id="23302" />
      <listitem open="0" type="815" id="23252" />
      <listitem open="0" type="815" id="23254" />
      <listitem open="0" type="815" id="23257" />
      <listitem open="0" type="815" id="23258" />
      <listitem open="0" type="815" id="23260" />
      <listitem open="0" type="815" id="23261" />
      <listitem open="0" type="815" id="23263" />
      <listitem open="0" type="815" id="23265" />
      <listitem open="0" type="815" id="23267" />
      <listitem open="0" type="815" id="23277" />
      <listitem open="0" type="815" id="23281" />
      <listitem open="0" type="815" id="23284" />
      <listitem open="0" type="815" id="23290" />
      <listitem open="0" type="815" id="23292" />
      <listitem open="0" type="815" id="23293" />
      <listitem open="0" type="831" id="23272" >
       <listitem open="0" type="839" id="23273" />
       <listitem open="0" type="839" id="23274" />
       <listitem open="0" type="839" id="23275" />
       <listitem open="0" type="839" id="23276" />
      </listitem>
     </listitem>
     <listitem open="0" type="813" id="23035" >
      <listitem open="0" type="814" id="23064" />
      <listitem open="0" type="814" id="23065" />
      <listitem open="0" type="814" id="23066" />
      <listitem open="0" type="815" id="23044" />
      <listitem open="0" type="815" id="23052" />
      <listitem open="0" type="815" id="23057" />
      <listitem open="0" type="815" id="23058" />
      <listitem open="0" type="815" id="23059" />
      <listitem open="0" type="815" id="23060" />
     </listitem>
     <listitem open="0" type="813" id="23067" >
      <listitem open="0" type="814" id="23079" />
      <listitem open="0" type="814" id="23081" />
      <listitem open="0" type="814" id="23082" />
      <listitem open="0" type="815" id="23071" />
      <listitem open="0" type="815" id="23076" />
      <listitem open="0" type="815" id="23077" />
      <listitem open="0" type="815" id="23078" />
     </listitem>
     <listitem open="0" type="813" id="23083" >
      <listitem open="0" type="814" id="23096" />
      <listitem open="0" type="814" id="23097" />
      <listitem open="0" type="814" id="23098" />
      <listitem open="0" type="814" id="23099" />
      <listitem open="0" type="814" id="23100" />
      <listitem open="0" type="815" id="23087" />
      <listitem open="0" type="815" id="23093" />
      <listitem open="0" type="815" id="23094" />
      <listitem open="0" type="815" id="23095" />
     </listitem>
     <listitem open="0" type="813" id="23101" >
      <listitem open="0" type="814" id="23113" />
      <listitem open="0" type="814" id="23115" />
      <listitem open="0" type="814" id="23116" />
      <listitem open="0" type="815" id="23105" />
      <listitem open="0" type="815" id="23110" />
      <listitem open="0" type="815" id="23111" />
      <listitem open="0" type="815" id="23112" />
     </listitem>
     <listitem open="0" type="813" id="23373" />
     <listitem open="0" type="813" id="22051" />
     <listitem open="0" type="813" id="15484" />
     <listitem open="0" type="813" id="23139" >
      <listitem open="0" type="815" id="23143" />
      <listitem open="0" type="815" id="23146" />
      <listitem open="0" type="815" id="23147" />
      <listitem open="0" type="815" id="23148" />
     </listitem>
     <listitem open="0" type="813" id="15515" >
      <listitem open="0" type="813" id="15516" />
     </listitem>
     <listitem open="0" type="813" id="22085" />
     <listitem open="0" type="813" id="15485" >
      <listitem open="0" type="815" id="15575" />
      <listitem open="0" type="815" id="15576" />
      <listitem open="0" type="815" id="15577" />
      <listitem open="0" type="815" id="15581" />
      <listitem open="0" type="815" id="15583" />
      <listitem open="0" type="815" id="15585" />
      <listitem open="0" type="815" id="15587" />
      <listitem open="0" type="815" id="15589" />
      <listitem open="0" type="815" id="15591" />
      <listitem open="0" type="815" id="15593" />
      <listitem open="0" type="815" id="15595" />
     </listitem>
     <listitem open="0" type="813" id="22067" />
     <listitem open="0" type="813" id="23324" >
      <listitem open="0" type="814" id="23408" />
      <listitem open="0" type="814" id="23409" />
      <listitem open="0" type="814" id="23410" />
      <listitem open="0" type="814" id="23411" />
      <listitem open="0" type="814" id="23412" />
      <listitem open="0" type="814" id="23413" />
      <listitem open="0" type="815" id="23328" />
      <listitem open="0" type="815" id="23329" />
      <listitem open="0" type="815" id="23330" />
      <listitem open="0" type="815" id="23334" />
      <listitem open="0" type="815" id="23335" />
      <listitem open="0" type="815" id="23336" />
      <listitem open="0" type="815" id="23337" />
      <listitem open="0" type="815" id="23338" />
      <listitem open="0" type="815" id="23339" />
      <listitem open="0" type="815" id="23340" />
      <listitem open="0" type="815" id="23343" />
      <listitem open="0" type="815" id="23346" />
      <listitem open="0" type="815" id="23348" />
      <listitem open="0" type="815" id="23350" />
      <listitem open="0" type="815" id="23354" />
      <listitem open="0" type="815" id="23355" />
      <listitem open="0" type="815" id="23356" />
      <listitem open="0" type="815" id="23358" />
      <listitem open="0" type="815" id="23360" />
      <listitem open="0" type="815" id="23362" />
      <listitem open="0" type="815" id="23364" />
      <listitem open="0" type="815" id="23368" />
      <listitem open="0" type="815" id="23372" />
      <listitem open="0" type="815" id="23377" />
      <listitem open="0" type="815" id="23379" />
      <listitem open="0" type="815" id="23381" />
      <listitem open="0" type="815" id="23383" />
      <listitem open="0" type="815" id="23385" />
      <listitem open="0" type="815" id="23387" />
      <listitem open="0" type="815" id="23389" />
      <listitem open="0" type="815" id="23391" />
      <listitem open="0" type="815" id="23393" />
      <listitem open="0" type="815" id="23395" />
      <listitem open="0" type="815" id="23397" />
      <listitem open="0" type="815" id="23399" />
      <listitem open="0" type="815" id="23401" />
      <listitem open="0" type="815" id="23403" />
      <listitem open="0" type="815" id="23405" />
     </listitem>
     <listitem open="0" type="813" id="23351" >
      <listitem open="0" type="813" id="23352" />
     </listitem>
     <listitem open="0" type="813" id="22243" />
     <listitem open="0" type="813" id="23188" />
     <listitem open="0" type="813" id="22078" />
     <listitem open="0" type="813" id="22057" />
     <listitem open="0" type="813" id="22184" />
     <listitem open="0" type="813" id="15519" />
     <listitem open="0" type="813" id="15517" />
     <listitem open="0" type="813" id="22073" />
     <listitem open="0" type="813" id="22027" />
     <listitem open="0" type="813" id="23048" />
     <listitem open="0" type="813" id="22255" />
     <listitem open="0" type="813" id="22088" />
     <listitem open="0" type="813" id="15540" />
     <listitem open="0" type="813" id="15518" />
     <listitem open="0" type="813" id="22093" />
     <listitem open="0" type="813" id="22082" />
     <listitem open="0" type="813" id="15578" />
     <listitem open="0" type="813" id="22096" />
     <listitem open="0" type="813" id="15502" />
     <listitem open="0" type="813" id="15521" />
     <listitem open="0" type="813" id="23300" />
     <listitem open="0" type="813" id="23376" />
     <listitem open="0" type="813" id="21996" />
     <listitem open="0" type="813" id="21937" />
     <listitem open="0" type="813" id="15512" />
     <listitem open="0" type="813" id="22116" />
     <listitem open="0" type="813" id="22178" />
     <listitem open="0" type="813" id="22172" />
     <listitem open="0" type="813" id="21970" />
     <listitem open="0" type="813" id="21972" />
     <listitem open="0" type="813" id="21971" />
     <listitem open="0" type="813" id="21965" />
     <listitem open="0" type="813" id="21967" />
     <listitem open="0" type="813" id="21966" />
     <listitem open="0" type="813" id="21991" />
     <listitem open="0" type="818" id="21946" >
      <listitem open="0" type="813" id="21947" />
      <listitem open="0" type="813" id="21949" />
      <listitem open="0" type="813" id="21951" />
      <listitem open="0" type="813" id="21953" />
      <listitem open="0" type="813" id="21955" />
     </listitem>
     <listitem open="0" type="830" label="Datatypes" >
      <listitem open="0" type="829" id="15496" />
      <listitem open="0" type="829" id="22241" />
      <listitem open="0" type="829" id="22249" />
      <listitem open="0" type="829" id="21958" />
      <listitem open="0" type="829" id="22144" />
      <listitem open="0" type="829" id="22247" />
      <listitem open="0" type="829" id="22026" />
      <listitem open="0" type="829" id="22150" />
      <listitem open="0" type="829" id="15529" />
      <listitem open="0" type="829" id="15546" />
      <listitem open="0" type="829" id="22126" />
      <listitem open="0" type="829" id="22091" />
      <listitem open="0" type="829" id="22061" />
      <listitem open="0" type="829" id="23298" />
      <listitem open="0" type="829" id="23266" />
      <listitem open="0" type="829" id="23156" />
      <listitem open="0" type="829" id="23122" />
      <listitem open="0" type="829" id="23154" />
      <listitem open="0" type="829" id="23128" />
      <listitem open="0" type="829" id="15500" />
      <listitem open="0" type="829" id="23219" />
      <listitem open="0" type="829" id="22052" />
      <listitem open="0" type="829" id="15506" />
      <listitem open="0" type="829" id="22086" />
      <listitem open="0" type="829" id="15510" />
      <listitem open="0" type="829" id="22068" />
      <listitem open="0" type="829" id="22244" />
      <listitem open="0" type="829" id="22181" />
      <listitem open="0" type="829" id="15543" />
      <listitem open="0" type="829" id="15568" />
      <listitem open="0" type="829" id="22074" />
      <listitem open="0" type="829" id="23063" />
      <listitem open="0" type="829" id="23196" />
      <listitem open="0" type="829" id="23061" />
      <listitem open="0" type="829" id="23049" />
      <listitem open="0" type="829" id="23114" />
      <listitem open="0" type="829" id="23107" />
      <listitem open="0" type="829" id="23125" />
      <listitem open="0" type="829" id="23080" />
      <listitem open="0" type="829" id="23073" />
      <listitem open="0" type="829" id="22256" />
      <listitem open="0" type="829" id="15541" />
      <listitem open="0" type="829" id="22094" />
      <listitem open="0" type="829" id="23285" />
      <listitem open="0" type="829" id="23301" />
      <listitem open="0" type="829" id="21938" />
      <listitem open="0" type="829" id="15513" />
      <listitem open="0" type="829" id="15572" />
      <listitem open="1" type="829" id="15472" />
      <listitem open="1" type="829" id="15471" />
      <listitem open="0" type="829" id="22166" />
      <listitem open="0" type="829" id="22007" />
      <listitem open="0" type="829" id="22022" />
      <listitem open="0" type="829" id="22128" />
      <listitem open="0" type="829" id="23366" />
      <listitem open="0" type="829" id="23370" />
      <listitem open="0" type="829" id="23046" />
      <listitem open="0" type="829" id="23287" />
      <listitem open="0" type="829" id="23374" />
      <listitem open="0" type="829" id="23269" />
      <listitem open="0" type="829" id="23189" />
      <listitem open="0" type="829" id="22058" />
      <listitem open="0" type="829" id="22186" />
      <listitem open="0" type="829" id="23053" />
      <listitem open="0" type="829" id="22089" />
      <listitem open="0" type="829" id="22083" />
      <listitem open="0" type="829" id="15579" />
      <listitem open="0" type="829" id="22097" />
      <listitem open="0" type="829" id="15503" />
      <listitem open="0" type="829" id="22018" />
      <listitem open="0" type="829" id="22131" />
      <listitem open="1" type="829" id="15474" />
      <listitem open="0" type="829" id="15491" />
      <listitem open="1" type="829" id="15473" />
      <listitem open="1" type="829" id="15469" />
      <listitem open="1" type="829" id="15476" />
      <listitem open="1" type="829" id="15475" />
      <listitem open="1" type="829" id="15480" />
      <listitem open="1" type="829" id="15477" />
      <listitem open="1" type="829" id="15479" />
      <listitem open="1" type="829" id="15478" />
     </listitem>
    </listitem>
    <listitem open="1" type="802" label="Use Case View" />
    <listitem open="1" type="821" label="Component View" />
    <listitem open="1" type="827" label="Deployment View" />
    <listitem open="1" type="836" label="Entity Relationship Model" />
   </listitem>
  </listview>
  <codegeneration>
   <codegenerator language="C++" />
  </codegeneration>
 </XMI.extensions>
</XMI>
