1043f9f803
* refactor: remove unnecessary includes in headers * fix: formatting * chore: changelog * fix: scrollbar * fix: suggestions and old appbase remains * fix: suggestion * fix: missing Qt forward declarations * fix: another qt include * fix: includes for precompiled-headers=off * Add missing `<memory>` includes * Add missing `#pragma once` * Fix tests Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
43 lines
1.2 KiB
C++
43 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include "common/SignalVectorModel.hpp"
|
|
#include "util/QStringHash.hpp"
|
|
|
|
#include <unordered_map>
|
|
|
|
namespace chatterino {
|
|
|
|
class Account;
|
|
class AccountController;
|
|
|
|
class AccountModel : public SignalVectorModel<std::shared_ptr<Account>>
|
|
{
|
|
public:
|
|
AccountModel(QObject *parent);
|
|
|
|
protected:
|
|
// turn a vector item into a model row
|
|
virtual std::shared_ptr<Account> getItemFromRow(
|
|
std::vector<QStandardItem *> &row,
|
|
const std::shared_ptr<Account> &original) override;
|
|
|
|
// turns a row in the model into a vector item
|
|
virtual void getRowFromItem(const std::shared_ptr<Account> &item,
|
|
std::vector<QStandardItem *> &row) override;
|
|
|
|
virtual int beforeInsert(const std::shared_ptr<Account> &item,
|
|
std::vector<QStandardItem *> &row,
|
|
int proposedIndex) override;
|
|
|
|
virtual void afterRemoved(const std::shared_ptr<Account> &item,
|
|
std::vector<QStandardItem *> &row,
|
|
int index) override;
|
|
|
|
friend class AccountController;
|
|
|
|
private:
|
|
std::unordered_map<QString, int> categoryCount_;
|
|
};
|
|
|
|
} // namespace chatterino
|