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