Chatterino
AccountModel.hpp
Go to the documentation of this file.
1 #pragma once
2 
5 #include "util/QStringHash.hpp"
6 
7 #include <unordered_map>
8 
9 namespace chatterino {
10 
11 class Account;
12 class AccountController;
13 
14 class AccountModel : public SignalVectorModel<std::shared_ptr<Account>>
15 {
16 public:
17  AccountModel(QObject *parent);
18 
19 protected:
20  // turn a vector item into a model row
21  virtual std::shared_ptr<Account> getItemFromRow(
22  std::vector<QStandardItem *> &row,
23  const std::shared_ptr<Account> &original) override;
24 
25  // turns a row in the model into a vector item
26  virtual void getRowFromItem(const std::shared_ptr<Account> &item,
27  std::vector<QStandardItem *> &row) override;
28 
29  virtual int beforeInsert(const std::shared_ptr<Account> &item,
30  std::vector<QStandardItem *> &row,
31  int proposedIndex) override;
32 
33  virtual void afterRemoved(const std::shared_ptr<Account> &item,
34  std::vector<QStandardItem *> &row,
35  int index) override;
36 
37  friend class AccountController;
38 
39 private:
40  std::unordered_map<QString, int> categoryCount_;
41 };
42 
43 } // namespace chatterino
virtual int beforeInsert(const std::shared_ptr< Account > &item, std::vector< QStandardItem *> &row, int proposedIndex) override
Definition: AccountModel.cpp:28
virtual void afterRemoved(const std::shared_ptr< Account > &item, std::vector< QStandardItem *> &row, int index) override
Definition: AccountModel.cpp:47
Definition: Application.cpp:48
virtual void getRowFromItem(const std::shared_ptr< Account > &item, std::vector< QStandardItem *> &row) override
Definition: AccountModel.cpp:21
virtual std::shared_ptr< Account > getItemFromRow(std::vector< QStandardItem *> &row, const std::shared_ptr< Account > &original) override
Definition: AccountModel.cpp:14
Definition: AccountModel.hpp:14
Definition: SignalVectorModel.hpp:15
AccountModel(QObject *parent)
Definition: AccountModel.cpp:8
Definition: AccountController.hpp:18