From b7381d808852570373bcf42690d10be5e2eb7653 Mon Sep 17 00:00:00 2001 From: Trial97 Date: Thu, 7 May 2026 11:24:40 +0300 Subject: [PATCH] add size column for datapacks Signed-off-by: Trial97 --- .../minecraft/mod/DataPackFolderModel.cpp | 22 ++++++++++++++----- launcher/minecraft/mod/DataPackFolderModel.h | 11 +++++++++- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/launcher/minecraft/mod/DataPackFolderModel.cpp b/launcher/minecraft/mod/DataPackFolderModel.cpp index 5f34ce6e1..350ae60e1 100644 --- a/launcher/minecraft/mod/DataPackFolderModel.cpp +++ b/launcher/minecraft/mod/DataPackFolderModel.cpp @@ -45,13 +45,14 @@ DataPackFolderModel::DataPackFolderModel(const QString& dir, BaseInstance* instance, bool isIndexed, bool createDir, QObject* parent) : ResourceFolderModel(QDir(dir), instance, isIndexed, createDir, parent) { - m_columnNames = QStringList({ "Enable", "Image", "Name", "Pack Format", "Last Modified", "File Name" }); + m_columnNames = QStringList({ "Enable", "Image", "Name", "Pack Format", "Last Modified", "Size", "File Name" }); m_columnNamesTranslated = - QStringList({ tr("Enable"), tr("Image"), tr("Name"), tr("Pack Format"), tr("Last Modified"), tr("File Name") }); - m_columnSortKeys = { SortType::Enabled, SortType::Name, SortType::Name, SortType::PackFormat, SortType::Date, SortType::Filename }; - m_columnResizeModes = { QHeaderView::Interactive, QHeaderView::Interactive, QHeaderView::Stretch, + QStringList({ tr("Enable"), tr("Image"), tr("Name"), tr("Pack Format"), tr("Last Modified"), tr("Size"), tr("File Name") }); + m_columnSortKeys = { SortType::Enabled, SortType::Name, SortType::Name, SortType::PackFormat, + SortType::Date, SortType::Size, SortType::Filename }; + m_columnResizeModes = { QHeaderView::Interactive, QHeaderView::Interactive, QHeaderView::Stretch, QHeaderView::Interactive, QHeaderView::Interactive, QHeaderView::Interactive, QHeaderView::Interactive }; - m_columnsHideable = { false, true, false, true, true, true }; + m_columnsHideable = { false, true, false, true, true, true, true }; } QVariant DataPackFolderModel::data(const QModelIndex& index, int role) const @@ -71,6 +72,10 @@ QVariant DataPackFolderModel::data(const QModelIndex& index, int role) const const auto& resource = at(row); return resource.packFormatStr(); } + if (column == SizeColumn) { + const auto& resource = at(row); + return resource.sizeStr(); + } break; case Qt::DecorationRole: { if (column == ImageColumn) { @@ -112,7 +117,9 @@ QVariant DataPackFolderModel::data(const QModelIndex& index, int role) const case FileNameColumn: mappedIndex = index.siblingAtColumn(ResourceFolderModel::FileNameColumn); break; - // FIXME: there is no size column due to an oversight + case SizeColumn: + mappedIndex = index.siblingAtColumn(ResourceFolderModel::SizeColumn); + break; default: break; } @@ -134,6 +141,7 @@ QVariant DataPackFolderModel::headerData(int section, [[maybe_unused]] Qt::Orien case PackFormatColumn: case DateColumn: case ImageColumn: + case SizeColumn: case FileNameColumn: return columnNames().at(section); default: @@ -151,6 +159,8 @@ QVariant DataPackFolderModel::headerData(int section, [[maybe_unused]] Qt::Orien return tr("The data pack format ID, as well as the Minecraft versions it was designed for."); case DateColumn: return tr("The date and time this data pack was last changed (or added)."); + case SizeColumn: + return tr("The size of the data pack."); case FileNameColumn: return tr("The file name of the data pack."); default: diff --git a/launcher/minecraft/mod/DataPackFolderModel.h b/launcher/minecraft/mod/DataPackFolderModel.h index 04153b893..24133354a 100644 --- a/launcher/minecraft/mod/DataPackFolderModel.h +++ b/launcher/minecraft/mod/DataPackFolderModel.h @@ -43,7 +43,16 @@ class DataPackFolderModel : public ResourceFolderModel { Q_OBJECT public: - enum Columns : std::uint8_t { ActiveColumn = 0, ImageColumn, NameColumn, PackFormatColumn, DateColumn, FileNameColumn, NumColumns }; + enum Columns : std::uint8_t { + ActiveColumn = 0, + ImageColumn, + NameColumn, + PackFormatColumn, + DateColumn, + SizeColumn, + FileNameColumn, + NumColumns + }; explicit DataPackFolderModel(const QString& dir, BaseInstance* instance, bool isIndexed, bool createDir, QObject* parent = nullptr);