Guitar
CommitRecord.h
Go to the documentation of this file.
1 #ifndef COMMITRECORD_H
2 #define COMMITRECORD_H
3 
4 #include "GitTypes.h"
5 
6 struct CommitRecord {
7  bool bold = false;
9  QString datetime;
10  QString author;
11  QString message;
12  QString tooltip;
13  std::string commit_id() const
14  {
15  return commit_hash.toString();
16  }
17 };
18 Q_DECLARE_METATYPE(CommitRecord)
19 
21 private:
22  std::vector<CommitRecord> records_;
23  std::vector<CommitRecord const *> records_ptrs_;
24 public:
25  void clear()
26  {
27  records_.clear();
28  }
29  void setRecords(std::vector<CommitRecord> &&v)
30  {
31  records_ = v;
32  const auto N = records_.size();
33  records_ptrs_.resize(N);
34  for (size_t i = 0; i < N; i++) {
35  records_ptrs_[i] = &records_[i];
36  }
37  }
38  std::basic_string_view<CommitRecord const *> records() const
39  {
40  return {records_ptrs_.data(), records_ptrs_.size()};
41  }
42 };
43 
44 #endif // COMMITRECORD_H
Definition: CommitRecord.h:20
void setRecords(std::vector< CommitRecord > &&v)
Definition: CommitRecord.h:29
std::basic_string_view< CommitRecord const * > records() const
Definition: CommitRecord.h:38
std::vector< CommitRecord const * > records_ptrs_
Definition: CommitRecord.h:23
std::vector< CommitRecord > records_
Definition: CommitRecord.h:22
void clear()
Definition: CommitRecord.h:25
Definition: GitTypes.h:31
std::string toString(int maxlen=-1) const
Definition: GitTypes.cpp:75
Definition: CommitRecord.h:6
QString author
Definition: CommitRecord.h:10
GitHash commit_hash
Definition: CommitRecord.h:8
QString tooltip
Definition: CommitRecord.h:12
bool bold
Definition: CommitRecord.h:7
std::string commit_id() const
Definition: CommitRecord.h:13
QString message
Definition: CommitRecord.h:11
QString datetime
Definition: CommitRecord.h:9