TemplateOrganizer::TemplateOrganizer(const ScreenieScene &screenieScene) : d(new TemplateOrganizerPrivate(screenieScene)) { for (ScreenieModelInterface *screenieModel : screenieScene.getModels()) { handleModelAdded(*screenieModel); } frenchConnection(); }
void ScreenieControl::convertItemsToTemplate(ScreenieScene &screenieScene) { QList<ScreenieModelInterface *> templateItems; QList<ScreenieModelInterface *> nonTemplateItems; for (ScreenieModelInterface *screenieModel : screenieScene.getModels()) { if (!qobject_cast<ScreenieTemplateModel *>(screenieModel)) { ScreenieTemplateModel *templateModel = new ScreenieTemplateModel(); templateModel->convert(*screenieModel); templateItems.append(templateModel); nonTemplateItems.append(screenieModel); } } for (ScreenieModelInterface *screenieModel : nonTemplateItems) { screenieScene.removeModel(screenieModel); } for (ScreenieModelInterface *screenieModel : templateItems) { screenieScene.addModel(screenieModel); } }
bool XmlScreenieSceneDao::writeScreenieModels(const ScreenieScene &screenieScene, ScreenieSceneSerializer::Mode mode) { bool result = true; QList<ScreenieModelInterface *> screenieModels; switch (mode) { case ScreenieSceneSerializer::FullScene: screenieModels = screenieScene.getModels(); break; case ScreenieSceneSerializer::SelectedItems: screenieModels = screenieScene.getSelectedModels(); break; default: #ifdef DEBUG qCritical("XmlScreenieSceneDao::writeScreenieModels: UNSUPPORTED mode: %d", mode); #endif break; } foreach (ScreenieModelInterface *screenieModel, screenieModels) { ScreenieFilePathModel *screenieFilePathModel = qobject_cast<ScreenieFilePathModel *>(screenieModel); if (screenieFilePathModel != 0) { result = writeFilePathModel(*screenieFilePathModel); } else { ScreenieImageModel *screenieImageModel = qobject_cast<ScreenieImageModel *>(screenieModel); if (screenieImageModel != 0) { result = writePixmapModel(*screenieImageModel); } else { ScreenieTemplateModel *screenieTemplateModel = qobject_cast<ScreenieTemplateModel *>(screenieModel); if (screenieTemplateModel != 0) { result = writeTemplateModel(*screenieTemplateModel); } #ifdef DEBUG else { qCritical("XmlScreenieSceneDao::writeScreenieModels: UNSUPPORTED: %s", screenieModel->metaObject()->className()); } #endif } } }