/** * @brief Read paths and filter from project file. * Reads the given project file. After the file is read, found paths and * filter is updated to dialog GUI. Other possible settings found in the * project file are kept in memory and used later when loading paths * selected. * @param [in] path Path to the project file. * @return TRUE if the project file was successfully loaded, FALSE otherwise. */ BOOL COpenView::LoadProjectFile(const String &path) { String filterPrefix = _("[F] "); ProjectFile prj; if (!theApp.LoadProjectFile(path, prj)) return FALSE; bool recurse; prj.GetPaths(m_files, recurse); m_bRecurse = recurse; m_dwFlags[0] &= ~FFILEOPEN_READONLY; m_dwFlags[0] |= prj.GetLeftReadOnly() ? FFILEOPEN_READONLY : 0; if (m_files.GetSize() < 3) { m_dwFlags[1] &= ~FFILEOPEN_READONLY; m_dwFlags[1] |= prj.GetRightReadOnly() ? FFILEOPEN_READONLY : 0; } else { m_dwFlags[1] &= ~FFILEOPEN_READONLY; m_dwFlags[1] |= prj.GetMiddleReadOnly() ? FFILEOPEN_READONLY : 0; m_dwFlags[2] &= ~FFILEOPEN_READONLY; m_dwFlags[2] |= prj.GetRightReadOnly() ? FFILEOPEN_READONLY : 0; } if (prj.HasFilter()) { m_strExt = string_trim_ws(prj.GetFilter()); if (m_strExt[0] != '*') m_strExt.insert(0, filterPrefix); } return TRUE; }