<p>I have a QGraphicsScene that I want to copy and append to the start of a list.  What is the best method of doing this?</p>

<pre><code>QGraphicsScene* m_scene = new QGraphicsScene();
QGraphicsScene* m_DuplicateScene;

QList&lt;QGraphicsScene *&gt;m_list;
</code></pre>

Doing this would be very complicated because you don't know anything about the children of
```
m_scene
```
.  Even if you
```
dynamic_cast
```
and create a
```
clone()
```
function for each type of
```
QGraphicsItem
```
, you still need to remember that other people can subclass
```
QGraphicsItem
```
and create their own type of graphics item, making them unclonable by you.
Basically, no, you can't duplicate a
```
QGraphicsScene
```
(cloning all items in the process).  You can't even make references to the children of the original scene's children because a
```
QGraphicsItem
```
can only have one scene.
Unless I'm missing a method call, of course.  Searches for "clone," "copy," and "duplicate" produced no results, though.
On your second question, use
```
QList<T *>::push_front
```
.  Thus,
```
m_list.push_front
```
(
```
m_DuplicateScene
```
);
(Side note: you prepend to the start of a list, and append to the end of a list.)