void SaveProjectAsCommand::execute(void) { std::vector<WindowEventProducer::FileDialogFilter> KEProjectFileFilters; KEProjectFileFilters.push_back(WindowEventProducer::FileDialogFilter("Project File","xml")); KEProjectFileFilters.push_back(WindowEventProducer::FileDialogFilter("All Files","*")); //Project File BoostPath InitialProjectFilePath(MainApplication::the()->getProject()->getFilePath()); if(!boost::filesystem::exists(InitialProjectFilePath)) { const Char8* ProjectName(getName(MainApplication::the()->getProject())); InitialProjectFilePath = BoostPath(std::string("./") + ( ProjectName ? ProjectName : "Project") + ".xml"); } BoostPath ProjectFilePath; ProjectFilePath = MainApplication::the()->getMainWindow()->saveFileDialog("Save Project As ...",KEProjectFileFilters,InitialProjectFilePath.filename(),InitialProjectFilePath.parent_path(), true); if(!ProjectFilePath.empty()) { if(ProjectFilePath.extension().empty()) { ProjectFilePath = ProjectFilePath.string() + ".xml"; } MainApplication::the()->saveProject(ProjectFilePath); } }
boost::any LuaGraphTreeModel::getChild(const boost::any& parent, const UInt32& index) const { try { BoostPath ThePath = boost::any_cast<BoostPath>(parent); if(!ThePath.empty() && boost::filesystem::exists(ThePath)) { boost::filesystem::directory_iterator end_iter; UInt32 Count(0); for ( boost::filesystem::directory_iterator dir_itr(ThePath); dir_itr != end_iter; ++dir_itr ) { if( isValidFile(dir_itr->path()) ) { if(Count == index) { return boost::any(dir_itr->path()); } ++Count; } } } return boost::any(); } catch(boost::bad_any_cast &) { return boost::any(); } }
void handleTreeNodeExport(ActionEventDetails* const details, Tree* const editorTree) { boost::any SelectedComp(editorTree->getLastSelectedPathComponent()); //Get the tree selection try { FieldContainerTreeModel::ContainerFieldIdPair ThePair(boost::any_cast<FieldContainerTreeModel::ContainerFieldIdPair>(SelectedComp)); if(ThePair._FieldID == 0 && ThePair._Container != NULL) { std::vector<WindowEventProducer::FileDialogFilter> ExportFileFilters; ExportFileFilters.push_back(WindowEventProducer::FileDialogFilter("Field Container File","xml")); ExportFileFilters.push_back(WindowEventProducer::FileDialogFilter("All Files","*")); //Export File BoostPath InitialFilePath("./Export.xml"); WindowEventProducer* MainWindow(editorTree->getParentWindow()->getParentDrawingSurface()->getEventProducer()); BoostPath ExportFilePath; ExportFilePath =MainWindow->saveFileDialog("Save Field Container", ExportFileFilters, InitialFilePath.filename(), InitialFilePath.parent_path(), true); if(!ExportFilePath.empty()) { if(ExportFilePath.extension().empty()) { ExportFilePath = ExportFilePath.string() + ".xml"; } FCFileType::FCPtrStore Containers; Containers.insert(ThePair._Container); FCFileType::FCTypeVector IgnoreTypes; FCFileHandler::the()->write(Containers,ExportFilePath,IgnoreTypes); } } } catch(boost::bad_any_cast &ex) { SWARNING << ex.what() << std::endl; } }
boost::any LuaGraphTreeModel::getParent(const boost::any& node) const { try { BoostPath ThePath = boost::any_cast<BoostPath>(node); if((!ThePath.empty() || ThePath == getInternalRoot() || boost::filesystem::equivalent(ThePath, getInternalRoot())) && (boost::filesystem::exists(ThePath) && boost::filesystem::exists(getInternalRoot()))) { return boost::any(ThePath.parent_path()); } } catch(boost::bad_any_cast &) { } return boost::any(); }
UInt32 LuaGraphTreeModel::getIndexOfChild(const boost::any& parent, const boost::any& child) const { try { BoostPath ParentPath = boost::any_cast<BoostPath>(parent); BoostPath ChildPath = boost::any_cast<BoostPath>(child); if(!ParentPath.empty() && boost::filesystem::exists(ParentPath)) { boost::filesystem::directory_iterator end_iter; UInt32 Count(0); for ( boost::filesystem::directory_iterator dir_itr( ParentPath ); dir_itr != end_iter; ++dir_itr ) { try { if(ChildPath == dir_itr->path() || boost::filesystem::equivalent(dir_itr->path(), ChildPath)) { return Count; } } catch(boost::filesystem::filesystem_error &) { return Count; } if(isValidFile(dir_itr->path())) { ++Count; } } } return 0; } catch(boost::bad_any_cast &) { return 0; } }