| 1138 | } |
| 1139 | |
| 1140 | void TOPPASScene::include(TOPPASScene* tmp_scene, QPointF pos) |
| 1141 | { |
| 1142 | qreal x_offset, y_offset; |
| 1143 | if (pos == QPointF()) // pasted via Ctrl-V (no mouse position given) |
| 1144 | { |
| 1145 | x_offset = 30.0; // move just a tad (in relation to old content) |
| 1146 | y_offset = 30.0; |
| 1147 | } |
| 1148 | else |
| 1149 | { |
| 1150 | QRectF new_bounding_rect = tmp_scene->itemsBoundingRect(); |
| 1151 | x_offset = pos.x() - new_bounding_rect.left(); |
| 1152 | y_offset = pos.y() - new_bounding_rect.top(); |
| 1153 | } |
| 1154 | std::map<TOPPASVertex*, TOPPASVertex*> vertex_map; |
| 1155 | |
| 1156 | for (VertexIterator it = tmp_scene->verticesBegin(); it != tmp_scene->verticesEnd(); ++it) |
| 1157 | { |
| 1158 | TOPPASVertex* v = *it; |
| 1159 | TOPPASVertex* new_v = nullptr; |
| 1160 | |
| 1161 | TOPPASInputFileListVertex* iflv = qobject_cast<TOPPASInputFileListVertex*>(v); |
| 1162 | if (iflv) |
| 1163 | { |
| 1164 | TOPPASInputFileListVertex* new_iflv = new TOPPASInputFileListVertex(*iflv); |
| 1165 | new_v = new_iflv; |
| 1166 | } |
| 1167 | |
| 1168 | TOPPASOutputFileListVertex* oflv = qobject_cast<TOPPASOutputFileListVertex*>(v); |
| 1169 | if (oflv) |
| 1170 | { |
| 1171 | TOPPASOutputFileListVertex* new_oflv = new TOPPASOutputFileListVertex(*oflv); |
| 1172 | new_v = new_oflv; |
| 1173 | |
| 1174 | connectOutputVertexSignals(new_oflv); |
| 1175 | } |
| 1176 | |
| 1177 | TOPPASToolVertex* tv = qobject_cast<TOPPASToolVertex*>(v); |
| 1178 | if (tv) |
| 1179 | { |
| 1180 | TOPPASToolVertex* new_tv = new TOPPASToolVertex(*tv); |
| 1181 | new_v = new_tv; |
| 1182 | |
| 1183 | connectToolVertexSignals(new_tv); |
| 1184 | } |
| 1185 | |
| 1186 | TOPPASMergerVertex* mv = qobject_cast<TOPPASMergerVertex*>(v); |
| 1187 | if (mv) |
| 1188 | { |
| 1189 | TOPPASMergerVertex* new_mv = new TOPPASMergerVertex(*mv); |
| 1190 | new_v = new_mv; |
| 1191 | |
| 1192 | connectMergerVertexSignals(new_mv); |
| 1193 | } |
| 1194 | |
| 1195 | TOPPASSplitterVertex* sv = qobject_cast<TOPPASSplitterVertex*>(v); |
| 1196 | if (sv) |
| 1197 | { |
no test coverage detected