#pragma once #include "common/SignalVectorModel.hpp" #include "util/QStringHash.hpp" #include namespace chatterino { class Account; class AccountController; class AccountModel : public SignalVectorModel> { public: AccountModel(QObject *parent); protected: // turn a vector item into a model row virtual std::shared_ptr getItemFromRow( std::vector &row, const std::shared_ptr &original) override; // turns a row in the model into a vector item virtual void getRowFromItem(const std::shared_ptr &item, std::vector &row) override; virtual int beforeInsert(const std::shared_ptr &item, std::vector &row, int proposedIndex) override; virtual void afterRemoved(const std::shared_ptr &item, std::vector &row, int index) override; friend class AccountController; private: std::unordered_map categoryCount_; }; } // namespace chatterino