//--------------------------------------------------------- bool CWKSP_Module_Manager::_Update(bool bSyncToCtrl) { if( !bSyncToCtrl ) { // Get_Control()->Freeze(); for(int i=SG_Get_Module_Library_Manager().Get_Count()-1; i>=0; i--) { CSG_Module_Library *pLibrary = SG_Get_Module_Library_Manager().Get_Library(i); CWKSP_Module_Library *pItem = Get_Library(pLibrary); if( !pItem ) { CWKSP_Module_Group *pGroup = Get_Group(pLibrary->Get_Category().c_str()); if( !pGroup ) { Add_Item(pGroup = new CWKSP_Module_Group(pLibrary->Get_Category().c_str())); } pGroup->Add_Library(pLibrary); } else if( pItem->Get_Library()->Get_Type() == MODULE_CHAINS ) { pItem->Update(); } } // Get_Control()->Thaw(); } m_pMenu_Modules->Update(); return( true ); }
BOOL Add_Item_Validate ( LNK_LST *lst, tlst_val val) { BOOL added = Add_Item ( lst, val ); (void) Validate_List ( lst ); return added; }
bool CWKSP_Map_Manager::Add(CWKSP_Layer *pLayer, CWKSP_Map *pMap) { if( pLayer ) { if( pMap == NULL ) { Add_Item(pMap = new CWKSP_Map); } else if( !Exists(pMap) ) { Add_Item(pMap); } pMap->Add_Layer(pLayer); return( true ); } return( false ); }
//--------------------------------------------------------- CWKSP_Grid * CWKSP_Grid_System::Add(CSG_Grid *pGrid) { CWKSP_Grid *pItem; if( pGrid && pGrid->Get_System() == m_System && !Exists(pGrid) && Add_Item(pItem = new CWKSP_Grid(pGrid)) ) { return( pItem ); } return( NULL ); }
//--------------------------------------------------------- CWKSP_TIN * CWKSP_TIN_Manager::Add(CSG_TIN *pTIN) { CWKSP_TIN *pItem; if( pTIN && pTIN->is_Valid() && !Exists(pTIN) && Add_Item(pItem = new CWKSP_TIN(pTIN)) ) { return( pItem ); } return( NULL ); }
//--------------------------------------------------------- CWKSP_Grid_System * CWKSP_Grid_Manager::_Get_System(const CSG_Grid_System &System) { CWKSP_Grid_System *pItem = NULL; if( (pItem = Get_System(System)) == NULL ) { Add_Item(pItem = new CWKSP_Grid_System(System)); } return( pItem ); }
//--------------------------------------------------------- CWKSP_Table * CWKSP_Table_Manager::Add_Data(CSG_Table *pObject) { CWKSP_Table *pItem = Get_Data(pObject); if( pItem == NULL && pObject != NULL ) { Add_Item(pItem = new CWKSP_Table(pObject)); } return( pItem ); }
//--------------------------------------------------------- CWKSP_PointCloud * CWKSP_PointCloud_Manager::Add_Data(CSG_PointCloud *pObject) { CWKSP_PointCloud *pItem = Get_Data(pObject); if( pItem == NULL && pObject != NULL ) { Add_Item(pItem = new CWKSP_PointCloud(pObject)); } return( pItem ); }
//--------------------------------------------------------- void CWKSP_Tool_Library::_Add_Tools(void) { for(int i=0; i<m_pLibrary->Get_Count(); i++) { CSG_Tool *pTool = m_pLibrary->Get_Tool(i); if( pTool != NULL && pTool != TLB_INTERFACE_SKIP_TOOL ) { CWKSP_Tool *pItem = new CWKSP_Tool(pTool, m_pLibrary->Get_Menu().w_str()); Add_Item(pItem); } } }
//--------------------------------------------------------- bool CWKSP_Map_Manager::Add(CWKSP_Map *pMap) { if( pMap ) { if( !Exists(pMap) ) { Add_Item(pMap); } return( true ); } return( false ); }
//--------------------------------------------------------- CWKSP_Shapes_Type * CWKSP_Shapes_Manager::_Get_Shapes_Type(TSG_Shape_Type Type) { CWKSP_Shapes_Type *pItem = NULL; if( Type != SHAPE_TYPE_Undefined ) { if( (pItem = Get_Shapes_Type(Type)) == NULL ) { Add_Item(pItem = new CWKSP_Shapes_Type(Type)); } } return( pItem ); }
//--------------------------------------------------------- void CWKSP_Tool_Library::Update(void) { int i; for(i=Get_Count()-1; i>=0; i--) // first remove tools that are not available anymore { CWKSP_Tool *pItem = Get_Tool(i); if( !m_pLibrary->Get_Tool(pItem->Get_Tool()->Get_Name()) ) { Del_Item(pItem); Get_Control()->Delete(pItem->GetId()); } } for(i=0; i<m_pLibrary->Get_Count(); i++) // then add tools that are not yet present in the list { CSG_Tool *pTool = m_pLibrary->Get_Tool(i); if( pTool != NULL && pTool != TLB_INTERFACE_SKIP_TOOL ) { for(int j=0; j<Get_Count() && pTool; j++) { if( pTool == Get_Tool(j)->Get_Tool() ) { Get_Control()->SetItemText(Get_Tool(j)->GetId(), Get_Tool(j)->Get_Name()); // just in case name has changed pTool = NULL; } } if( pTool ) { CWKSP_Tool *pItem = new CWKSP_Tool(pTool, m_pLibrary->Get_Menu().w_str()); Add_Item(pItem); g_pTool_Ctrl->Add_Tool(GetId(), pItem); } } } Get_Control()->SortChildren(GetId()); }
//--------------------------------------------------------- bool CWKSP_Module_Manager::Open(const wxChar *File_Name) { CWKSP_Module_Library *pLibrary; //----------------------------------------------------- if( SG_File_Cmp_Extension(File_Name, wxT("mlb")) || SG_File_Cmp_Extension(File_Name, wxT("dll")) || SG_File_Cmp_Extension(File_Name, wxT("so" )) ) { MSG_General_Add(wxString::Format(wxT("%s: %s..."), LNG("[MSG] Load library"), File_Name), true, true); //------------------------------------------------- for(int i=0; i<Get_Count(); i++) { if( SG_STR_CMP(File_Name, Get_Library(i)->Get_File_Name()) == 0 ) { MSG_Error_Add(wxString::Format(wxT("%s\n%s"), File_Name, LNG("[ERR] Library has already been loaded")), true); MSG_General_Add(LNG("[MSG] has already been loaded"), false); return( false ); } } //------------------------------------------------- pLibrary = new CWKSP_Module_Library(File_Name); if( pLibrary->is_Valid() ) { Add_Item(pLibrary); MSG_General_Add(LNG("[MSG] okay"), false, false, SG_UI_MSG_STYLE_SUCCESS); return( true ); } delete(pLibrary); MSG_General_Add(LNG("[MSG] failed"), false, false, SG_UI_MSG_STYLE_FAILURE); } return( false ); }
//--------------------------------------------------------- bool CWKSP_Module_Group::Add_Library(CSG_Module_Library *pLibrary) { return( pLibrary && Add_Item(new CWKSP_Module_Library(pLibrary)) ); }
//--------------------------------------------------------- bool CWKSP_Tool_Group::Add_Library(CSG_Tool_Library *pLibrary) { return( pLibrary && Add_Item(new CWKSP_Tool_Library(pLibrary)) ); }
int Generate_File_Lists(const char* Path) { DIR* d; struct dirent* de; struct stat st; char FileName[PATH_MAX]; // Skip /data/media if (is_data_media() && strlen(Path) >= 11 && strncmp(Path, "/data/media", 11) == 0) return 0; // Skip google cached music if (strstr(Path, "data/data/com.google.android.music/files") != NULL) return 0; d = opendir(Path); if (d == NULL) { LOGE("error opening '%s'\n", Path); return -1; } while ((de = readdir(d)) != NULL) { sprintf(FileName, "%s/", Path); strcat(FileName, de->d_name); if (is_data_media() && strlen(FileName) >= 11 && strncmp(FileName, "/data/media", 11) == 0) continue; // Skip /data/media if (de->d_type == DT_DIR && strcmp(de->d_name, ".") != 0 && strcmp(de->d_name, "..") != 0) { unsigned long long folder_size = Get_Folder_Size(FileName); if (Makelist_Current_Size + folder_size > MAX_ARCHIVE_SIZE) { if (Generate_File_Lists(FileName) < 0) return -1; } else { strcat(FileName, "/"); if (Add_Item(FileName) < 0) return -1; Makelist_Current_Size += folder_size; } } else if (de->d_type == DT_REG || de->d_type == DT_LNK) { stat(FileName, &st); if (Makelist_Current_Size != 0 && Makelist_Current_Size + st.st_size > MAX_ARCHIVE_SIZE) { Makelist_File_Count++; Makelist_Current_Size = 0; } if (Add_Item(FileName) < 0) return -1; Makelist_Current_Size += st.st_size; if (st.st_size > 2147483648LL) LOGE("There is a file that is larger than 2GB in the file system\n'%s'\nThis file may not restore properly\n", FileName); } } closedir(d); return 0; }