return !_path.isEmpty();
}
- enum class EncryptionStatus : int {
- NotEncrypted = 0,
- Encrypted = 1,
- EncryptedMigratedV1_2 = 2,
- };
+ using EncryptionStatus = EncryptionStatusEnums::JournalDbEncryptionStatus;
/** Returns the numeric part of the full id in _fileId.
*
[[nodiscard]] bool isVirtualFile() const { return _type == ItemTypeVirtualFile || _type == ItemTypeVirtualFileDownload; }
[[nodiscard]] QString path() const { return QString::fromUtf8(_path); }
[[nodiscard]] QString e2eMangledName() const { return QString::fromUtf8(_e2eMangledName); }
- [[nodiscard]] bool isE2eEncrypted() const { return _e2eEncryptionStatus != SyncJournalFileRecord::EncryptionStatus::NotEncrypted; }
+ [[nodiscard]] bool isE2eEncrypted() const { return _e2eEncryptionStatus != EncryptionStatus::NotEncrypted; }
QByteArray _path;
quint64 _inode = 0;
namespace OCC {
class SyncJournalFileRecord;
+
+namespace EncryptionStatusEnums {
+
+Q_NAMESPACE
+
+enum class ItemEncryptionStatus : int {
+ NotEncrypted = 0,
+ Encrypted = 1,
+ EncryptedMigratedV1_2 = 2,
+};
+
+Q_ENUM_NS(ItemEncryptionStatus)
+
+enum class JournalDbEncryptionStatus : int {
+ NotEncrypted = 0,
+ Encrypted = 1,
+ EncryptedMigratedV1_2Invalid = 2,
+ EncryptedMigratedV1_2 = 3,
+};
+
+Q_ENUM_NS(JournalDbEncryptionStatus)
+
+ItemEncryptionStatus fromDbEncryptionStatus(JournalDbEncryptionStatus encryptionStatus);
+
+JournalDbEncryptionStatus toDbEncryptionStatus(ItemEncryptionStatus encryptionStatus);
+
+}
+
}
#if defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && !defined(Q_CC_CLANG) && (__GNUC__ * 100 + __GNUC_MINOR__ < 408)
Q_LOGGING_CATEGORY(lcFileItem, "nextcloud.sync.fileitem", QtInfoMsg)
+namespace EncryptionStatusEnums {
+
+ItemEncryptionStatus fromDbEncryptionStatus(JournalDbEncryptionStatus encryptionStatus)
+{
+ auto result = ItemEncryptionStatus::NotEncrypted;
+
+ switch (encryptionStatus)
+ {
+ case JournalDbEncryptionStatus::Encrypted:
+ result = ItemEncryptionStatus::Encrypted;
+ break;
+ case JournalDbEncryptionStatus::EncryptedMigratedV1_2:
+ result = ItemEncryptionStatus::EncryptedMigratedV1_2;
+ break;
+ case JournalDbEncryptionStatus::EncryptedMigratedV1_2Invalid:
+ result = ItemEncryptionStatus::Encrypted;
+ break;
+ case JournalDbEncryptionStatus::NotEncrypted:
+ result = ItemEncryptionStatus::NotEncrypted;
+ break;
+ }
+
+ return result;
+}
+
+JournalDbEncryptionStatus toDbEncryptionStatus(ItemEncryptionStatus encryptionStatus)
+{
+ auto result = JournalDbEncryptionStatus::NotEncrypted;
+
+ switch (encryptionStatus)
+ {
+ case ItemEncryptionStatus::Encrypted:
+ result = JournalDbEncryptionStatus::Encrypted;
+ break;
+ case ItemEncryptionStatus::EncryptedMigratedV1_2:
+ result = JournalDbEncryptionStatus::EncryptedMigratedV1_2;
+ break;
+ case ItemEncryptionStatus::NotEncrypted:
+ result = JournalDbEncryptionStatus::NotEncrypted;
+ break;
+ }
+
+ return result;
+}
+
+}
+
SyncJournalFileRecord SyncFileItem::toSyncJournalFileRecordWithInode(const QString &localFileName) const
{
SyncJournalFileRecord rec;
rec._serverHasIgnoredFiles = _serverHasIgnoredFiles;
rec._checksumHeader = _checksumHeader;
rec._e2eMangledName = _encryptedFileName.toUtf8();
- rec._e2eEncryptionStatus = static_cast<SyncJournalFileRecord::EncryptionStatus>(_e2eEncryptionStatus);
+ rec._e2eEncryptionStatus = EncryptionStatusEnums::toDbEncryptionStatus(_e2eEncryptionStatus);
rec._lockstate._locked = _locked == LockStatus::LockedItem;
rec._lockstate._lockOwnerDisplayName = _lockOwnerDisplayName;
rec._lockstate._lockOwnerId = _lockOwnerId;
item->_serverHasIgnoredFiles = rec._serverHasIgnoredFiles;
item->_checksumHeader = rec._checksumHeader;
item->_encryptedFileName = rec.e2eMangledName();
- item->_e2eEncryptionStatus = static_cast<SyncFileItem::EncryptionStatus>(rec._e2eEncryptionStatus);
- qCInfo(lcFileItem) << "fromSyncJournalFileRecord" << item->_file << rec._e2eEncryptionStatus << item->_e2eEncryptionStatus;
+ item->_e2eEncryptionStatus = EncryptionStatusEnums::fromDbEncryptionStatus(rec._e2eEncryptionStatus);
item->_locked = rec._lockstate._locked ? LockStatus::LockedItem : LockStatus::UnlockedItem;
item->_lockOwnerDisplayName = rec._lockstate._lockOwnerDisplayName;
item->_lockOwnerId = rec._lockstate._lockOwnerId;
};
Q_ENUM(Direction)
- enum class EncryptionStatus : int {
- NotEncrypted = 0,
- Encrypted = 1,
- EncryptedMigratedV1_2 = 2,
- };
- Q_ENUM(EncryptionStatus)
+ using EncryptionStatus = EncryptionStatusEnums::ItemEncryptionStatus;
// Note: the order of these statuses is used for ordering in the SortedActivityListModel
enum Status { // stored in 4 bits
&& !(_instruction == CSYNC_INSTRUCTION_CONFLICT && _status == SyncFileItem::Success);
}
- [[nodiscard]] bool isEncrypted() const { return _e2eEncryptionStatus != SyncFileItem::EncryptionStatus::NotEncrypted; }
+ [[nodiscard]] bool isEncrypted() const { return _e2eEncryptionStatus != EncryptionStatus::NotEncrypted; }
// Variables useful for everybody