annotate changeset.h @ 55:261bfb9481fe

* Make changeset item boxes wider if they have no neighbours. Changeset item code is horrible -- items generally need refactoring to take out hardcoded dimensions.
author Chris Cannam
date Fri, 12 Nov 2010 17:30:53 +0000
parents 384420567575
children f583e44d9d31
rev   line source
Chris@43 1 #ifndef CHANGESET_H
Chris@43 2 #define CHANGESET_H
Chris@43 3
Chris@43 4 #include <QObject>
Chris@43 5 #include <QString>
Chris@43 6 #include <QStringList>
Chris@43 7 #include <QList>
Chris@43 8
Chris@43 9 class Changeset : public QObject
Chris@43 10 {
Chris@43 11 Q_OBJECT
Chris@43 12
Chris@43 13 Q_PROPERTY(QString id READ id WRITE setId NOTIFY idChanged STORED true);
Chris@43 14 Q_PROPERTY(QString author READ author WRITE setAuthor NOTIFY authorChanged STORED true);
Chris@43 15 Q_PROPERTY(QString branch READ branch WRITE setBranch NOTIFY branchChanged STORED true);
Chris@44 16 Q_PROPERTY(QString tag READ tag WRITE setTag NOTIFY tagChanged STORED true);
Chris@52 17 Q_PROPERTY(QString datetime READ datetime WRITE setDatetime NOTIFY datetimeChanged STORED true);
Chris@52 18 Q_PROPERTY(qulonglong timestamp READ timestamp WRITE setTimestamp NOTIFY timestampChanged STORED true);
Chris@43 19 Q_PROPERTY(QString age READ age WRITE setAge NOTIFY ageChanged STORED true);
Chris@43 20 Q_PROPERTY(QStringList parents READ parents WRITE setParents NOTIFY parentsChanged STORED true);
Chris@47 21 Q_PROPERTY(QStringList children READ children WRITE setChildren NOTIFY childrenChanged STORED true);
Chris@43 22 Q_PROPERTY(QString comment READ comment WRITE setComment NOTIFY commentChanged STORED true);
Chris@43 23
Chris@43 24 public:
Chris@43 25 Changeset() : QObject() { }
Chris@43 26
Chris@43 27 QString id() const { return m_id; }
Chris@43 28 QString author() const { return m_author; }
Chris@43 29 QString branch() const { return m_branch; }
Chris@44 30 QString tag() const { return m_tag; }
Chris@51 31 QString datetime() const { return m_datetime; }
Chris@52 32 qulonglong timestamp() const { return m_timestamp; }
Chris@43 33 QString age() const { return m_age; }
Chris@43 34 QStringList parents() const { return m_parents; }
Chris@47 35 QStringList children() const { return m_children; }
Chris@43 36 QString comment() const { return m_comment; }
Chris@43 37
Chris@43 38 int number() const {
Chris@43 39 return id().split(':')[0].toInt();
Chris@43 40 }
Chris@43 41
Chris@44 42 QString authorName() const {
Chris@44 43 QString a = author();
Chris@44 44 return a.replace(QRegExp("\\s*<[^>]*>"), "");
Chris@44 45 }
Chris@44 46
Chris@51 47 QString date() const {
Chris@51 48 return datetime().split(' ')[0];
Chris@51 49 }
Chris@51 50
Chris@43 51 signals:
Chris@43 52 void idChanged(QString id);
Chris@43 53 void authorChanged(QString author);
Chris@43 54 void branchChanged(QString branch);
Chris@44 55 void tagChanged(QString tag);
Chris@51 56 void datetimeChanged(QString datetime);
Chris@52 57 void timestampChanged(qulonglong timestamp);
Chris@43 58 void ageChanged(QString age);
Chris@43 59 void parentsChanged(QStringList parents);
Chris@47 60 void childrenChanged(QStringList children);
Chris@43 61 void commentChanged(QString comment);
Chris@43 62
Chris@43 63 public slots:
Chris@43 64 void setId(QString id) { m_id = id; emit idChanged(id); }
Chris@43 65 void setAuthor(QString author) { m_author = author; emit authorChanged(author); }
Chris@43 66 void setBranch(QString branch) { m_branch = branch; emit branchChanged(branch); }
Chris@44 67 void setTag(QString tag) { m_tag = tag; emit tagChanged(tag); }
Chris@52 68 void setDatetime(QString datetime) { m_datetime = datetime; emit datetimeChanged(datetime); }
Chris@52 69 void setTimestamp(qulonglong timestamp) { m_timestamp = timestamp; emit timestampChanged(timestamp); }
Chris@43 70 void setAge(QString age) { m_age = age; emit ageChanged(age); }
Chris@43 71 void setParents(QStringList parents) { m_parents = parents; emit parentsChanged(parents); }
Chris@47 72 void setChildren(QStringList children) { m_children = children; emit childrenChanged(m_children); }
Chris@47 73 void addChild(QString child) { m_children.push_back(child); emit childrenChanged(m_children); }
Chris@43 74 void setComment(QString comment) { m_comment = comment; emit commentChanged(comment); }
Chris@43 75
Chris@43 76 private:
Chris@43 77 QString m_id;
Chris@43 78 QString m_author;
Chris@43 79 QString m_branch;
Chris@44 80 QString m_tag;
Chris@51 81 QString m_datetime;
Chris@52 82 qulonglong m_timestamp;
Chris@43 83 QString m_age;
Chris@43 84 QStringList m_parents;
Chris@47 85 QStringList m_children;
Chris@43 86 QString m_comment;
Chris@43 87 };
Chris@43 88
Chris@43 89 typedef QList<Changeset *> Changesets;
Chris@43 90
Chris@43 91 #endif // CHANGESET_H