File indexing completed on 2024-09-08 05:08:06
0001 // clang-format off 0002 /* 0003 * KDiff3 - Text Diff And Merge Tool 0004 * 0005 * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com 0006 * SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 // clang-format on 0009 #ifndef DIRECTORYINFO_H 0010 #define DIRECTORYINFO_H 0011 0012 #include "fileaccess.h" 0013 #include "options.h" 0014 0015 class DirectoryInfo 0016 { 0017 public: 0018 explicit DirectoryInfo() = default; 0019 0020 DirectoryInfo(const FileAccess& dirA, const FileAccess& dirB, const FileAccess& dirC, const FileAccess& dirDest) 0021 { 0022 m_dirA = dirA; 0023 m_dirB = dirB; 0024 m_dirC = dirC; 0025 m_dirDest = dirDest; 0026 0027 m_dirListA.clear(); 0028 m_dirListB.clear(); 0029 m_dirListC.clear(); 0030 } 0031 0032 inline const FileAccess& dirA() const { return m_dirA; } 0033 inline const FileAccess& dirB() const { return m_dirB; } 0034 inline const FileAccess& dirC() const { return m_dirC; } 0035 inline const FileAccess& destDir() const 0036 { 0037 if(m_dirDest.isValid()) 0038 return m_dirDest; 0039 else 0040 return m_dirC.isValid() ? m_dirC : m_dirB; 0041 } 0042 0043 inline bool allowSyncMode() { return !m_dirC.isValid() && !m_dirDest.isValid(); } 0044 0045 bool listDirA(); 0046 bool listDirB(); 0047 bool listDirC(); 0048 DirectoryList& getDirListA() { return m_dirListA; } 0049 DirectoryList& getDirListB() { return m_dirListB; } 0050 DirectoryList& getDirListC() { return m_dirListC; } 0051 0052 private: 0053 bool listDir(FileAccess& fileAccess, DirectoryList& dirList); 0054 0055 FileAccess m_dirA, m_dirB, m_dirC; 0056 0057 DirectoryList m_dirListA; 0058 DirectoryList m_dirListB; 0059 DirectoryList m_dirListC; 0060 FileAccess m_dirDest; 0061 }; 0062 0063 extern QSharedPointer<DirectoryInfo> gDirInfo; 0064 0065 #endif