Serenity Operating System
at master 41 lines 1.1 kB view raw
1/* 2 * Copyright (c) 2022, Samuel Bowman <sam@sambowman.tech> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <LibGUI/Model.h> 10#include <LibPartition/PartitionTable.h> 11 12namespace PartitionEditor { 13 14class PartitionModel final : public GUI::Model { 15public: 16 enum Column { 17 Partition, 18 StartBlock, 19 EndBlock, 20 TotalBlocks, 21 Size, 22 __Count, 23 }; 24 25 static NonnullRefPtr<PartitionModel> create() { return adopt_ref(*new PartitionModel()); } 26 virtual ~PartitionModel() override = default; 27 28 virtual int row_count(GUI::ModelIndex const& = GUI::ModelIndex()) const override { return m_partition_table->partitions_count(); } 29 virtual int column_count(GUI::ModelIndex const& = GUI::ModelIndex()) const override { return Column::__Count; } 30 virtual DeprecatedString column_name(int) const override; 31 virtual GUI::Variant data(GUI::ModelIndex const&, GUI::ModelRole) const override; 32 33 ErrorOr<void> set_device_path(DeprecatedString const&); 34 35private: 36 PartitionModel() = default; 37 38 OwnPtr<Partition::PartitionTable> m_partition_table; 39}; 40 41}