| 66 | class DirectoryMergeWindow; |
| 67 | |
| 68 | class MergeFileInfos |
| 69 | { |
| 70 | public: |
| 71 | MergeFileInfos(); |
| 72 | ~MergeFileInfos(); |
| 73 | |
| 74 | [[nodiscard]] QString subPath() const; |
| 75 | [[nodiscard]] QString fileName() const; |
| 76 | |
| 77 | [[nodiscard]] bool isDirA() const { return m_pFileInfoA != nullptr ? m_pFileInfoA->isDir() : false; } |
| 78 | [[nodiscard]] bool isDirB() const { return m_pFileInfoB != nullptr ? m_pFileInfoB->isDir() : false; } |
| 79 | [[nodiscard]] bool isDirC() const { return m_pFileInfoC != nullptr ? m_pFileInfoC->isDir() : false; } |
| 80 | [[nodiscard]] bool hasDir() const { return isDirA() || isDirB() || isDirC(); } |
| 81 | |
| 82 | [[nodiscard]] bool isLinkA() const { return m_pFileInfoA != nullptr ? m_pFileInfoA->isSymLink() : false; } |
| 83 | [[nodiscard]] bool isLinkB() const { return m_pFileInfoB != nullptr ? m_pFileInfoB->isSymLink() : false; } |
| 84 | [[nodiscard]] bool isLinkC() const { return m_pFileInfoC != nullptr ? m_pFileInfoC->isSymLink() : false; } |
| 85 | [[nodiscard]] bool hasLink() const { return isLinkA() || isLinkB() || isLinkC(); } |
| 86 | |
| 87 | [[nodiscard]] bool existsInA() const { return m_pFileInfoA != nullptr; } |
| 88 | [[nodiscard]] bool existsInB() const { return m_pFileInfoB != nullptr; } |
| 89 | [[nodiscard]] bool existsInC() const { return m_pFileInfoC != nullptr; } |
| 90 | |
| 91 | [[nodiscard]] bool conflictingFileTypes() const; |
| 92 | |
| 93 | void sort(Qt::SortOrder order); |
| 94 | [[nodiscard]] inline MergeFileInfos* parent() const { return m_pParent; } |
| 95 | inline void setParent(MergeFileInfos* inParent) { m_pParent = inParent; } |
| 96 | [[nodiscard]] inline const QList<MergeFileInfos*>& children() const { return m_children; } |
| 97 | inline void addChild(MergeFileInfos* child) { m_children.push_back(child); } |
| 98 | inline void clear() { m_children.clear(); } |
| 99 | |
| 100 | [[nodiscard]] FileAccess* getFileInfoA() const { return m_pFileInfoA; } |
| 101 | [[nodiscard]] FileAccess* getFileInfoB() const { return m_pFileInfoB; } |
| 102 | [[nodiscard]] FileAccess* getFileInfoC() const { return m_pFileInfoC; } |
| 103 | |
| 104 | void setFileInfoA(FileAccess* newInfo) { m_pFileInfoA = newInfo; } |
| 105 | void setFileInfoB(FileAccess* newInfo) { m_pFileInfoB = newInfo; } |
| 106 | void setFileInfoC(FileAccess* newInfo) { m_pFileInfoC = newInfo; } |
| 107 | |
| 108 | [[nodiscard]] QString fullNameA() const; |
| 109 | [[nodiscard]] QString fullNameB() const; |
| 110 | [[nodiscard]] QString fullNameC() const; |
| 111 | [[nodiscard]] QString fullNameDest() const; |
| 112 | |
| 113 | [[nodiscard]] inline QString getDirNameA() const { return gDirInfo->dirA().prettyAbsPath(); } |
| 114 | [[nodiscard]] inline QString getDirNameB() const { return gDirInfo->dirB().prettyAbsPath(); } |
| 115 | [[nodiscard]] inline QString getDirNameC() const { return gDirInfo->dirC().prettyAbsPath(); } |
| 116 | [[nodiscard]] inline QString getDirNameDest() const { return gDirInfo->destDir().prettyAbsPath(); } |
| 117 | |
| 118 | [[nodiscard]] inline TotalDiffStatus& diffStatus() { return m_totalDiffStatus; } |
| 119 | |
| 120 | [[nodiscard]] inline e_MergeOperation getOperation() const { return m_eMergeOperation; } |
| 121 | inline void setOperation(const e_MergeOperation op) { m_eMergeOperation = op; } |
| 122 | |
| 123 | [[nodiscard]] inline e_OperationStatus getOpStatus() const { return m_eOpStatus; } |
| 124 | inline void setOpStatus(const e_OperationStatus eOpStatus) { m_eOpStatus = eOpStatus; } |
| 125 | |