/* binarydialectmodel.cpp SPDX-FileCopyrightText: 2023 Méven Car SPDX-License-Identifier: GPL-2.0-or-later */ #include "binarydialectmodel.h" #include #include using namespace Qt::StringLiterals; BinaryDialectModel::BinaryDialectModel(QObject *parent) : QAbstractListModel(parent) { } int BinaryDialectModel::rowCount(const QModelIndex &parent) const { Q_UNUSED(parent) return roleNames().size(); } QVariant BinaryDialectModel::data(const QModelIndex &index, int role) const { const auto row = index.row(); KFormat::BinaryUnitDialect dialect = KFormat::BinaryUnitDialect::DefaultBinaryDialect; int kdefbase = 1024; switch (row) { case KFormat::BinaryUnitDialect::IECBinaryDialect: { dialect = KFormat::BinaryUnitDialect::IECBinaryDialect; break; } case KFormat::BinaryUnitDialect::JEDECBinaryDialect: { dialect = KFormat::BinaryUnitDialect::JEDECBinaryDialect; break; } case KFormat::BinaryUnitDialect::MetricBinaryDialect: { dialect = KFormat::BinaryUnitDialect::MetricBinaryDialect; kdefbase = 1000; break; } } switch (role) { case DisplayName: switch (dialect) { case KFormat::BinaryUnitDialect::IECBinaryDialect: { return i18nc("Binary dialect IEC, with sigle in parentheses", "International Electrotechnical Commission (IEC)"); break; } case KFormat::BinaryUnitDialect::JEDECBinaryDialect: { return i18nc("Binary dialect JEDEC, with sigle in parentheses", "Joint Electron Device Engineering Council (JEDEC)"); break; } case KFormat::BinaryUnitDialect::MetricBinaryDialect: { return i18nc("Binary dialect Metric, with origin in parentheses", "Metric system (SI)"); break; } default: break; } break; case Example: { const KFormat f; return QString(f.formatByteSize(kdefbase, 1, dialect, KFormat::BinarySizeUnits::UnitKiloByte) + u" = " + f.formatByteSize(kdefbase, 1, dialect, KFormat::BinarySizeUnits::UnitByte)); } case Description: { switch (dialect) { case KFormat::BinaryUnitDialect::IECBinaryDialect: return i18n("Binary - Kibibytes (KiB), Mebibytes (MiB), Gibibytes (GiB)"); case KFormat::BinaryUnitDialect::JEDECBinaryDialect: return i18n("Binary - Kilobytes (kB), Megabytes (MB), Gigabytes (GB)"); case KFormat::BinaryUnitDialect::MetricBinaryDialect: return i18n("Decimal - Kilobytes (kB), Megabytes (MB), Gigabytes (GB)"); default: break; } break; } default: Q_ASSERT(false); break; } return QVariant{}; } QHash BinaryDialectModel::roleNames() const { const static QHash roles = {{DisplayName, QByteArrayLiteral("name")}, {Example, QByteArrayLiteral("example")}, {Description, QByteArrayLiteral("description")}}; return roles; }