/* * Copyright (c) 2019-2020, Sergey Bugaev * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include class DevicesModel final : public GUI::Model { public: enum Column { Device = 0, Major, Minor, ClassName, Type, __Count }; virtual ~DevicesModel() override; static NonnullRefPtr create(); virtual int row_count(const GUI::ModelIndex&) const override; virtual int column_count(const GUI::ModelIndex&) const override; virtual String column_name(int column) const override; virtual GUI::Variant data(const GUI::ModelIndex&, GUI::ModelRole) const override; virtual void update() override; private: DevicesModel(); struct DeviceInfo { String path; unsigned major; unsigned minor; String class_name; enum Type { Block, Character }; Type type; }; Vector m_devices; };