int DLG_Message_YesNoCancel(int ID_DLG) { return( DLG_Message_YesNoCancel(DLG_Get_Text(ID_DLG), DLG_Get_Caption(ID_DLG)) ); }
//--------------------------------------------------------- bool CWKSP_Project::_Load(const wxString &FileName, bool bAdd, bool bUpdateMenu) { if( wxFileExists(FileName) && !bAdd && g_pData->Get_Count() > 0 ) { switch( DLG_Message_YesNoCancel(_TL("Close all data sets"), _TL("Load Project")) ) { case 0: if( !g_pData->Close(true) ) return( false ); break; case 2: return( false ); } } //------------------------------------------------- MSG_General_Add_Line(); MSG_General_Add(wxString::Format("%s: %s", _TL("Load project"), FileName), true, true); //------------------------------------------------- bool bSuccess = false; CSG_MetaData Project, *pNode; if( _Compatibility_Load_Data(FileName) ) { bSuccess = true; } else if( !wxFileExists(FileName) ) { MSG_Error_Add(_TL("file does not exist." ), true, true, SG_UI_MSG_STYLE_FAILURE); } else if( !Project.Load(&FileName) ) { MSG_Error_Add(_TL("could not read project file." ), true, true, SG_UI_MSG_STYLE_FAILURE); } else if( Project.Get_Name().CmpNoCase("SAGA_PROJECT") ) { MSG_Error_Add(_TL("invalid project file." ), true, true, SG_UI_MSG_STYLE_FAILURE); } else if( (pNode = Project.Get_Child("DATA")) == NULL || pNode->Get_Children_Count() <= 0 ) { MSG_Error_Add(_TL("no data entries in project file."), true, true, SG_UI_MSG_STYLE_FAILURE); } else if( !_Load_DBConnections(*pNode) ) { MSG_Error_Add(_TL("could not connect to database." ), true, true, SG_UI_MSG_STYLE_FAILURE); } else { int i; CSG_String Version(Project.Get_Property("VERSION")); bSuccess = true; //------------------------------------------------- g_pData->Get_Menu_Files()->Set_Update(false); for(i=0; i<pNode->Get_Children_Count(); i++) { _Load_Data(*pNode->Get_Child(i), SG_File_Get_Path(&FileName).w_str(), true , Version); } for(i=0; i<pNode->Get_Children_Count(); i++) { _Load_Data(*pNode->Get_Child(i), SG_File_Get_Path(&FileName).w_str(), false, Version); } g_pData->Get_Menu_Files()->Set_Update(true); //------------------------------------------------- g_pSAGA_Frame->Freeze(); if( (pNode = Project.Get_Child("MAPS")) != NULL && pNode->Get_Children_Count() > 0 ) { for(int j=0; j<pNode->Get_Children_Count(); j++) { _Load_Map(*pNode->Get_Child(j), SG_File_Get_Path(&FileName).w_str()); } } switch( g_pData->Get_Parameter("PROJECT_MAP_ARRANGE")->asInt() ) { case 1: g_pSAGA_Frame->Tile(wxHORIZONTAL); break; case 2: g_pSAGA_Frame->Tile(wxVERTICAL ); break; } g_pSAGA_Frame->Thaw(); } //----------------------------------------------------- if( bSuccess ) { if( bUpdateMenu ) { g_pData->Get_Menu_Files()->Recent_Add(SG_DATAOBJECT_TYPE_Undefined, FileName); } MSG_General_Add(_TL("Project has been successfully loaded."), true, true, SG_UI_MSG_STYLE_SUCCESS); m_File_Name = FileName; _Set_Project_Name(); return( true ); } if( bUpdateMenu ) { g_pData->Get_Menu_Files()->Recent_Del(SG_DATAOBJECT_TYPE_Undefined, FileName); } MSG_General_Add(_TL("Could not load project."), true, true, SG_UI_MSG_STYLE_FAILURE); return( false ); }