From 8eb04a082e612e81e54d5813363f1bfbc6f380de Mon Sep 17 00:00:00 2001
From: Adriaan de Groot <groot@kde.org>
Date: Thu, 13 Jun 2019 14:55:43 +0200
Subject: [PATCH] [libcalamares] Move FS-related code to partition service

 - only moves one function right now, providing user-visible
   name for filesystem name.
---
 src/libcalamares/CMakeLists.txt               |  1 +
 src/libcalamares/partition/FileSystem.cpp     | 74 +++++++++++++++++++
 src/libcalamares/partition/FileSystem.h       | 33 +++++++++
 src/modules/partition/core/KPMHelpers.cpp     | 44 -----------
 src/modules/partition/core/KPMHelpers.h       |  1 -
 src/modules/partition/core/PartitionModel.cpp |  5 +-
 6 files changed, 111 insertions(+), 47 deletions(-)
 create mode 100644 src/libcalamares/partition/FileSystem.cpp
 create mode 100644 src/libcalamares/partition/FileSystem.h

diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt
index 2e6489a97..e5fe952c2 100644
--- a/src/libcalamares/CMakeLists.txt
+++ b/src/libcalamares/CMakeLists.txt
@@ -116,6 +116,7 @@ if ( KPMcore_FOUND )
 
     include_directories( ${KPMCORE_INCLUDE_DIR} )
     list( APPEND libSources
+        partition/FileSystem.cpp
         partition/PartitionIterator.cpp
         partition/PartitionQuery.cpp
     )
diff --git a/src/libcalamares/partition/FileSystem.cpp b/src/libcalamares/partition/FileSystem.cpp
new file mode 100644
index 000000000..fbbe48581
--- /dev/null
+++ b/src/libcalamares/partition/FileSystem.cpp
@@ -0,0 +1,74 @@
+/* === This file is part of Calamares - <https://github.com/calamares> ===
+ *
+ *   Copyright 2014,      Aurélien Gâteau <agateau@kde.org>
+ *   Copyright 2015-2016, Teo Mrnjavac <teo@kde.org>
+ *   Copyright 2018-2019 Adriaan de Groot <groot@kde.org>
+ *
+ *   Calamares is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation, either version 3 of the License, or
+ *   (at your option) any later version.
+ *
+ *   Calamares is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with Calamares. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "FileSystem.h"
+
+#include <QObject>
+
+namespace CalamaresUtils
+{
+namespace Partition
+{
+
+QString
+prettyNameForFileSystemType( FileSystem::Type t )
+{
+    switch ( t )
+    {
+    case FileSystem::Unknown:
+        return QObject::tr( "unknown" );
+    case FileSystem::Extended:
+        return QObject::tr( "extended" );
+    case FileSystem::Unformatted:
+        return QObject::tr( "unformatted" );
+    case FileSystem::LinuxSwap:
+        return QObject::tr( "swap" );
+    case FileSystem::Fat16:
+    case FileSystem::Fat32:
+    case FileSystem::Ntfs:
+    case FileSystem::Xfs:
+    case FileSystem::Jfs:
+    case FileSystem::Hfs:
+    case FileSystem::Ufs:
+    case FileSystem::Hpfs:
+    case FileSystem::Luks:
+    case FileSystem::Ocfs2:
+    case FileSystem::Zfs:
+    case FileSystem::Nilfs2:
+        return FileSystem::nameForType( t ).toUpper();
+    case FileSystem::ReiserFS:
+        return "ReiserFS";
+    case FileSystem::Reiser4:
+        return "Reiser4";
+    case FileSystem::HfsPlus:
+        return "HFS+";
+    case FileSystem::Btrfs:
+        return "Btrfs";
+    case FileSystem::Exfat:
+        return "exFAT";
+    case FileSystem::Lvm2_PV:
+        return "LVM PV";
+    default:
+        return FileSystem::nameForType( t );
+    }
+}
+
+}  // namespace Partition
+}  // namespace CalamaresUtils
diff --git a/src/libcalamares/partition/FileSystem.h b/src/libcalamares/partition/FileSystem.h
new file mode 100644
index 000000000..6ceebda7e
--- /dev/null
+++ b/src/libcalamares/partition/FileSystem.h
@@ -0,0 +1,33 @@
+/* === This file is part of Calamares - <https://github.com/calamares> ===
+ *
+ *   Copyright 2014,      Aurélien Gâteau <agateau@kde.org>
+ *   Copyright 2015-2016, Teo Mrnjavac <teo@kde.org>
+ *   Copyright 2019, Adriaan de Groot <groot@kde.org>
+ *
+ *   Calamares is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation, either version 3 of the License, or
+ *   (at your option) any later version.
+ *
+ *   Calamares is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with Calamares. If not, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef PARTITION_FILESYSTEM_H
+#define PARTITION_FILESYSTEM_H
+
+#include <kpmcore/fs/filesystem.h>
+
+namespace CalamaresUtils
+{
+namespace Partition
+{
+QString prettyNameForFileSystemType( FileSystem::Type t );
+}  // namespace Partition
+}  // namespace CalamaresUtils
+
+#endif  // PARTITION_PARTITIONQUERY_H
diff --git a/src/modules/partition/core/KPMHelpers.cpp b/src/modules/partition/core/KPMHelpers.cpp
index 782cd4f13..3630ab751 100644
--- a/src/modules/partition/core/KPMHelpers.cpp
+++ b/src/modules/partition/core/KPMHelpers.cpp
@@ -155,48 +155,4 @@ clonePartition( Device* device, Partition* partition )
                           partition->activeFlags() );
 }
 
-
-QString
-prettyNameForFileSystemType( FileSystem::Type t )
-{
-    switch ( t )
-    {
-    case FileSystem::Unknown:
-        return QObject::tr( "unknown" );
-    case FileSystem::Extended:
-        return QObject::tr( "extended" );
-    case FileSystem::Unformatted:
-        return QObject::tr( "unformatted" );
-    case FileSystem::LinuxSwap:
-        return QObject::tr( "swap" );
-    case FileSystem::Fat16:
-    case FileSystem::Fat32:
-    case FileSystem::Ntfs:
-    case FileSystem::Xfs:
-    case FileSystem::Jfs:
-    case FileSystem::Hfs:
-    case FileSystem::Ufs:
-    case FileSystem::Hpfs:
-    case FileSystem::Luks:
-    case FileSystem::Ocfs2:
-    case FileSystem::Zfs:
-    case FileSystem::Nilfs2:
-        return FileSystem::nameForType( t ).toUpper();
-    case FileSystem::ReiserFS:
-        return "ReiserFS";
-    case FileSystem::Reiser4:
-        return "Reiser4";
-    case FileSystem::HfsPlus:
-        return "HFS+";
-    case FileSystem::Btrfs:
-        return "Btrfs";
-    case FileSystem::Exfat:
-        return "exFAT";
-    case FileSystem::Lvm2_PV:
-        return "LVM PV";
-    default:
-        return FileSystem::nameForType( t );
-    }
-}
-
 } // namespace
diff --git a/src/modules/partition/core/KPMHelpers.h b/src/modules/partition/core/KPMHelpers.h
index 206746c44..4ec10fe96 100644
--- a/src/modules/partition/core/KPMHelpers.h
+++ b/src/modules/partition/core/KPMHelpers.h
@@ -92,7 +92,6 @@ Partition* createNewEncryptedPartition( PartitionNode* parent,
 
 Partition* clonePartition( Device* device, Partition* partition );
 
-QString prettyNameForFileSystemType( FileSystem::Type t );
 }
 
 #endif /* KPMHELPERS_H */
diff --git a/src/modules/partition/core/PartitionModel.cpp b/src/modules/partition/core/PartitionModel.cpp
index 370c2d2d2..db3be50a6 100644
--- a/src/modules/partition/core/PartitionModel.cpp
+++ b/src/modules/partition/core/PartitionModel.cpp
@@ -23,6 +23,7 @@
 #include "core/PartitionInfo.h"
 #include "core/KPMHelpers.h"
 
+#include "partition/FileSystem.h"
 #include "partition/PartitionQuery.h"
 #include "utils/Logger.h"
 
@@ -155,7 +156,7 @@ PartitionModel::data( const QModelIndex& index, int role ) const
             }
         }
         if ( col == FileSystemColumn )
-            return KPMHelpers::prettyNameForFileSystemType( partition->fileSystem().type() );
+            return CalamaresUtils::Partition::prettyNameForFileSystemType( partition->fileSystem().type() );
         if ( col == MountPointColumn )
             return PartitionInfo::mountPoint( partition );
         if ( col == SizeColumn )
@@ -186,7 +187,7 @@ PartitionModel::data( const QModelIndex& index, int role ) const
                         : partition->partitionPath();
             }
         }
-        QString prettyFileSystem = KPMHelpers::prettyNameForFileSystemType( partition->fileSystem().type() );
+        QString prettyFileSystem = CalamaresUtils::Partition::prettyNameForFileSystemType( partition->fileSystem().type() );
         qint64 size = ( partition->lastSector() - partition->firstSector() + 1 ) * m_device->logicalSize();
         QString prettySize = KFormat().formatByteSize( size );
         return QVariant(name + " " + prettyFileSystem + " " + prettySize);