/** * @brief Reloads changed filter files * * Checks if filter file has been modified since it was last time * loaded/reloaded. If file has been modified we reload it. * @todo How to handle an error in reloading filter? */ void FileFilterHelper::ReloadUpdatedFilters() { vector<FileFilterInfo> filters; DirItem fileInfo; String selected; GetFileFilters(&filters, selected); vector<FileFilterInfo>::const_iterator iter = filters.begin(); while (iter != filters.end()) { String path = (*iter).fullpath; fileInfo.Update(path); if (fileInfo.mtime != (*iter).fileinfo.mtime || fileInfo.size != (*iter).fileinfo.size) { // Reload filter after changing it int retval = m_fileFilterMgr->ReloadFilterFromDisk(path); if (retval == FILTER_OK) { // If it was active filter we have to re-set it if (path == selected) SetFileFilterPath(path); } } ++iter; } }
/** * @brief Reloads changed filter files * * Checks if filter file has been modified since it was last time * loaded/reloaded. If file has been modified we reload it. * @todo How to handle an error in reloading filter? */ void FileFilterHelper::ReloadUpdatedFilters() { FILEFILTER_INFOLIST filters; DirItem fileInfo; DirItem *fileInfoStored = NULL; FileFilterInfo filter; CString selected; GetFileFilters(&filters, selected); for (int i = 0; i < filters.GetSize(); i++) { filter = filters.GetAt(i); CString path = filter.fullpath; fileInfoStored = &filter.fileinfo; fileInfo.Update((LPCTSTR)path); if (fileInfo.mtime != fileInfoStored->mtime || fileInfo.size != fileInfoStored->size) { // Reload filter after changing it int retval = m_fileFilterMgr->ReloadFilterFromDisk(path); if (retval == FILTER_OK) { // If it was active filter we have to re-set it if (path == selected) SetFileFilterPath(path); } } } }