summaryrefslogtreecommitdiffstats
path: root/src/gui/graphicsview/qgraphicsitem_p.h
diff options
context:
space:
mode:
authorBradley T. Hughes <bradley.hughes@nokia.com>2009-05-26 07:41:06 (GMT)
committerBradley T. Hughes <bradley.hughes@nokia.com>2009-05-26 07:41:06 (GMT)
commit12ebfedc3de64e99082ca573351bdd24b1d42370 (patch)
tree0290b22723ae07fb4b11e6f5008e5bae2050a12b /src/gui/graphicsview/qgraphicsitem_p.h
parent7ffe42d376b574239480b38b8f6430339b806daa (diff)
parentbaec0ecd314c6e9563bd56cf19571ca71d7d11cd (diff)
downloadQt-12ebfedc3de64e99082ca573351bdd24b1d42370.zip
Qt-12ebfedc3de64e99082ca573351bdd24b1d42370.tar.gz
Qt-12ebfedc3de64e99082ca573351bdd24b1d42370.tar.bz2
Merge branch 'master' of git@scm.dev.nokia.troll.no:qt/qt
Conflicts: src/corelib/kernel/qcoreevent.h src/gui/graphicsview/qgraphicsitem_p.h
Diffstat (limited to 'src/gui/graphicsview/qgraphicsitem_p.h')
-rw-r--r--src/gui/graphicsview/qgraphicsitem_p.h89
1 files changed, 87 insertions, 2 deletions
diff --git a/src/gui/graphicsview/qgraphicsitem_p.h b/src/gui/graphicsview/qgraphicsitem_p.h
index 7642b98..4a12bcb 100644
--- a/src/gui/graphicsview/qgraphicsitem_p.h
+++ b/src/gui/graphicsview/qgraphicsitem_p.h
@@ -57,6 +57,8 @@
#include "qset.h"
#include "qpixmapcache.h"
+#include <QtCore/qpoint.h>
+
#if !defined(QT_NO_GRAPHICSVIEW) || (QT_EDITION & QT_MODULE_GRAPHICSVIEW) != QT_MODULE_GRAPHICSVIEW
QT_BEGIN_NAMESPACE
@@ -100,6 +102,15 @@ class Q_AUTOTEST_EXPORT QGraphicsItemPrivate
{
Q_DECLARE_PUBLIC(QGraphicsItem)
public:
+ struct TransformData
+ {
+ TransformData() : rotationX(0),rotationY(0),rotationZ(0),scaleX(1),scaleY(1), dirty(true) {}
+ QTransform baseTransform;
+ QTransform transform;
+ QPointF transformCenter;
+ qreal rotationX,rotationY,rotationZ,scaleX,scaleY;
+ bool dirty;
+ };
enum Extra {
ExtraTransform,
ExtraToolTip,
@@ -109,6 +120,7 @@ public:
ExtraBoundingRegionGranularity,
ExtraOpacity,
ExtraEffectiveOpacity,
+ ExtraDecomposedTransform
ExtraGestures
};
@@ -153,6 +165,9 @@ public:
inSetPosHelper(0),
flags(0),
allChildrenCombineOpacity(1),
+ hasDecomposedTransform(0),
+ dirtyTransform(0),
+ dirtyTransformComponents(0),
acceptTouchEvents(0),
acceptedTouchBeginEvent(0),
globalStackingOrder(-1),
@@ -243,7 +258,7 @@ public:
}
}
}
-
+
struct ExtraStruct {
ExtraStruct(Extra type, QVariant value)
: type(type), value(value)
@@ -255,6 +270,7 @@ public:
bool operator<(Extra extra) const
{ return type < extra; }
};
+
QList<ExtraStruct> extras;
QGraphicsItemCache *maybeExtraItemCache() const;
@@ -365,17 +381,86 @@ public:
// New 32 bits
quint32 flags : 10;
quint32 allChildrenCombineOpacity : 1;
+ quint32 hasDecomposedTransform : 1;
+ quint32 dirtyTransform : 1;
+ quint32 dirtyTransformComponents : 1;
quint32 acceptTouchEvents : 1;
quint32 acceptedTouchBeginEvent : 1;
- quint32 padding : 19; // feel free to use
+ quint32 padding : 16; // feel free to use
// Optional stacking order
int globalStackingOrder;
int sceneTransformIndex;
+ struct DecomposedTransform;
+ DecomposedTransform *decomposedTransform() const
+ {
+ QGraphicsItemPrivate *that = const_cast<QGraphicsItemPrivate *>(this);
+ DecomposedTransform *decomposed;
+ if (hasDecomposedTransform) {
+ decomposed = qVariantValue<DecomposedTransform *>(extra(ExtraDecomposedTransform));
+ } else {
+ decomposed = new DecomposedTransform;
+ that->setExtra(ExtraDecomposedTransform, qVariantFromValue<DecomposedTransform *>(decomposed));
+ that->hasDecomposedTransform = 1;
+ if (!dirtyTransformComponents)
+ decomposed->reset();
+ }
+ if (dirtyTransformComponents) {
+ decomposed->initFrom(q_ptr->transform());
+ that->dirtyTransformComponents = 0;
+ }
+ return decomposed;
+ }
+
+ struct DecomposedTransform {
+ qreal xScale;
+ qreal yScale;
+ qreal xRotation;
+ qreal yRotation;
+ qreal zRotation;
+ qreal horizontalShear;
+ qreal verticalShear;
+ qreal xOrigin;
+ qreal yOrigin;
+
+ inline void reset()
+ {
+ xScale = 1.0;
+ yScale = 1.0;
+ xRotation = 0.0;
+ yRotation = 0.0;
+ zRotation = 0.0;
+ horizontalShear = 0.0;
+ verticalShear = 0.0;
+ xOrigin = 0.0;
+ yOrigin = 0.0;
+ }
+
+ inline void initFrom(const QTransform &x)
+ {
+ reset();
+ // ### decompose transform
+ Q_UNUSED(x);
+ }
+
+ inline void generateTransform(QTransform *x) const
+ {
+ x->translate(xOrigin, yOrigin);
+ x->rotate(xRotation, Qt::XAxis);
+ x->rotate(yRotation, Qt::YAxis);
+ x->rotate(zRotation, Qt::ZAxis);
+ x->shear(horizontalShear, verticalShear);
+ x->scale(xScale, yScale);
+ x->translate(-xOrigin, -yOrigin);
+ }
+ };
+
QGraphicsItem *q_ptr;
};
+Q_DECLARE_METATYPE(QGraphicsItemPrivate::DecomposedTransform *)
+
QT_END_NAMESPACE
#endif // QT_NO_GRAPHICSVIEW
01704'>dgp_3401704 Tcl is a high-level, general-purpose, interpreted, dynamic programming language. It was designed with the goal of being very simple but powerful.
summaryrefslogtreecommitdiffstats
path: root/doc
ModeNameSize
-rw-r--r--Access.32979logstatsplain
-rw-r--r--AddErrInfo.313748logstatsplain
-rw-r--r--Alloc.33050logstatsplain
-rw-r--r--AllowExc.31612logstatsplain
-rw-r--r--AppInit.33002logstatsplain
-rw-r--r--AssocData.33542logstatsplain
-rw-r--r--Async.36734logstatsplain
-rw-r--r--BackgdErr.33165logstatsplain
-rw-r--r--Backslash.31448logstatsplain
-rw-r--r--BoolObj.33726logstatsplain
-rw-r--r--ByteArrObj.34147logstatsplain
-rw-r--r--CallDel.32507logstatsplain
-rw-r--r--Cancel.32576logstatsplain
-rw-r--r--ChnlStack.33889logstatsplain
-rw-r--r--Class.310346logstatsplain
-rw-r--r--CmdCmplt.3971logstatsplain
-rw-r--r--Concat.31739logstatsplain
-rw-r--r--CrtChannel.339433logstatsplain
-rw-r--r--CrtChnlHdlr.33743logstatsplain
-rw-r--r--CrtCloseHdlr.31790logstatsplain
-rw-r--r--CrtCommand.36324logstatsplain
-rw-r--r--CrtFileHdlr.33603logstatsplain
-rw-r--r--CrtInterp.36993logstatsplain
-rw-r--r--CrtMathFnc.36680logstatsplain
-rw-r--r--CrtObjCmd.313206logstatsplain
-rw-r--r--CrtSlave.310178logstatsplain
-rw-r--r--CrtTimerHdlr.32879logstatsplain
-rw-r--r--CrtTrace.38531logstatsplain
-rw-r--r--DString.36077logstatsplain
-rw-r--r--DetachPids.33081logstatsplain
-rw-r--r--DictObj.310614logstatsplain
-rw-r--r--DoOneEvent.34139logstatsplain
-rw-r--r--DoWhenIdle.33420logstatsplain
-rw-r--r--DoubleObj.32650logstatsplain
-rw-r--r--DumpActiveMemory.32263logstatsplain
-rw-r--r--Encoding.328193logstatsplain
-rw-r--r--Ensemble.39386logstatsplain
-rw-r--r--Environment.31067logstatsplain
-rw-r--r--Eval.38779logstatsplain
-rw-r--r--Exit.35978logstatsplain
-rw-r--r--ExprLong.33696logstatsplain
-rw-r--r--ExprLongObj.33703logstatsplain
-rw-r--r--FileSystem.368616logstatsplain
-rw-r--r--FindExec.32380logstatsplain
-rwxr-xr-xGetCwd.31723logstatsplain
-rw-r--r--GetHostName.3645logstatsplain
-rw-r--r--GetIndex.34301logstatsplain
-rw-r--r--GetInt.33124logstatsplain
-rw-r--r--GetOpnFl.32106logstatsplain
-rw-r--r--GetStdChan.33603logstatsplain
-rw-r--r--GetTime.34375logstatsplain
-rwxr-xr-xGetVersion.31632logstatsplain
-rw-r--r--Hash.313580logstatsplain
-rw-r--r--Init.3720logstatsplain
-rw-r--r--InitStubs.33505logstatsplain
-rw-r--r--IntObj.36387logstatsplain
-rw-r--r--Interp.36059logstatsplain
-rw-r--r--Limit.37858logstatsplain
-rw-r--r--LinkVar.38781logstatsplain
-rw-r--r--ListObj.310449logstatsplain
-rw-r--r--Load.32792logstatsplain
-rw-r--r--Method.310486logstatsplain
-rw-r--r--NRE.312959logstatsplain
-rw-r--r--Namespace.36385logstatsplain
-rw-r--r--Notifier.329837logstatsplain
-rw-r--r--Object.314212logstatsplain
-rw-r--r--ObjectType.310399logstatsplain
-rw-r--r--OpenFileChnl.331293logstatsplain
-rw-r--r--OpenTcp.37497logstatsplain
-rw-r--r--Panic.33401logstatsplain
-rw-r--r--ParseArgs.37241logstatsplain
-rw-r--r--ParseCmd.321105logstatsplain