diff --git a/src/fs/luks.cpp b/src/fs/luks.cpp index 8cf14d2..9047df0 100644 --- a/src/fs/luks.cpp +++ b/src/fs/luks.cpp @@ -282,8 +282,6 @@ bool luks::cryptClose(const QString& deviceNode) m_passphrase.clear(); setLabel({}); - m_SetLabel = cmdSupportNone; - m_Copy = cmdSupportCore; setUUID(readUUID(deviceNode)); setSectorsUsed(-1); @@ -300,8 +298,6 @@ void luks::loadInnerFileSystem(const QString& mapperNode) FileSystem::Type innerFsType = detectFileSystem(mapperNode); m_innerFs = FileSystemFactory::cloneWithNewType(innerFsType, *this); - m_SetLabel = cmdSupportFileSystem; - m_Copy = cmdSupportNone; setLabel(m_innerFs->readLabel(mapperNode)); setUUID(m_innerFs->readUUID(mapperNode)); if (m_innerFs->supportGetUsed() == FileSystem::cmdSupportFileSystem) // FIXME:also implement checking space if partition is mounted diff --git a/src/fs/luks.h b/src/fs/luks.h index f0a7691..d2827fc 100644 --- a/src/fs/luks.h +++ b/src/fs/luks.h @@ -82,13 +82,19 @@ public: return cmdSupportNone; } CommandSupportType supportCopy() const override { + if (m_isCryptOpen) + return cmdSupportNone; return m_Copy; } CommandSupportType supportBackup() const override { return m_Backup; } CommandSupportType supportSetLabel() const override { - return m_SetLabel; + if (!m_isCryptOpen) + return cmdSupportNone; + if (m_Check && m_innerFs) + return m_innerFs->supportSetLabel(); + return cmdSupportNone; } CommandSupportType supportUpdateUUID() const override { return m_UpdateUUID;