void xLightsFrame::LoadEffectsFile() { wxStopWatch sw; // start a stopwatch timer wxString filename=LoadEffectsFileNoCheck(); // check version, do we need to convert? wxString version=EffectsNode->GetAttribute("version", "0000"); if (version < XLIGHTS_RGBEFFECTS_VERSION) { // fix tags xLightsXmlFile::FixVersionDifferences(filename); // load converted file LoadEffectsFileNoCheck(); // fix effect presets xLightsXmlFile::FixEffectPresets(EffectsNode); // update version EffectsNode->DeleteAttribute("version"); EffectsNode->AddAttribute("version", XLIGHTS_RGBEFFECTS_VERSION); UnsavedRgbEffectsChanges = true; } UpdateModelsList(); displayElementsPanel->SetSequenceElementsModelsViews(&SeqData, &mSequenceElements,ModelsNode, ModelGroupsNode, ViewsNode); CheckForAndCreateDefaultPerpective(); perspectivePanel->SetPerspectives(PerspectivesNode); float elapsedTime = sw.Time()/1000.0; //msec => sec StatusBar1->SetStatusText(wxString::Format(_("'%s' loaded in %4.3f sec."), filename, elapsedTime)); }
void xLightsFrame::ShowModelsDialog() { ModelListDialog dialog(this); wxString name; wxXmlNode* e; for(e=ModelsNode->GetChildren(); e!=NULL; e=e->GetNext() ) { if (e->GetName() == "model") { name=e->GetAttribute("name"); if (!name.IsEmpty()) { dialog.AddModel(name, e); } } } dialog.HtmlEasyPrint=HtmlEasyPrint; dialog.SetSequenceElements(&mSequenceElements); dialog.SetNetInfo(&NetInfo); dialog.SetModelGroupsNode(ModelGroupsNode); dialog.ShowModal(); // append any new models to the main xml structure for(size_t i=0; i<dialog.ListBox1->GetCount(); i++) { e=(wxXmlNode*)dialog.GetXMLForModel(dialog.ListBox1->GetString(i)); if (e == nullptr) { wxMessageBox("Could not find XML for " + dialog.ListBox1->GetString(i), _("ERROR")); } else if (!e->GetParent()) { ModelsNode->AddChild(e); } } UnsavedRgbEffectsChanges=true; UpdateModelsList(); EnableSequenceControls(true); }
ModelsDataSource::ModelsDataSource( void ) : Rocket::Controls::DataSource( MODELS_SOURCE ) { UpdateModelsList(); }