Skip to content

Commit

Permalink
Don't emit dueDateChanged() when dayChanged() is emitted
Browse files Browse the repository at this point in the history
Otherwise causes task revision to change each time flow starts.
Use a different signal so QML can change due date's color
when day changes to today.
  • Loading branch information
iamsergio committed Apr 23, 2016
1 parent 22d3a7b commit a106255
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 deletions.
4 changes: 3 additions & 1 deletion src/task.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ Task::Task(Kernel *kernel, const QString &summary)
connect(this, &Task::dueDateChanged, &Task::onEdited);
connect(this, &Task::priorityChanged, &Task::onEdited);

connect(this, &Task::dueDateChanged, &Task::dueDateDisplayTextChanged);

connect(kernel, &Kernel::dayChanged, this, &Task::onDayChanged);

#if defined(UNIT_TEST_RUN)
Expand Down Expand Up @@ -530,7 +532,7 @@ void Task::onEdited()
void Task::onDayChanged()
{
if (m_dueDate.isValid()) {
emit dueDateChanged();
emit dueDateDisplayTextChanged();
if (dueToday() || isOverdue())
setStaged(true);
}
Expand Down
21 changes: 11 additions & 10 deletions src/task.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,12 @@ class Task : public QObject, public Syncable {
Q_PROPERTY(bool isUrl READ isUrl NOTIFY summaryChanged)
Q_PROPERTY(QString priorityStr READ priorityStr NOTIFY priorityChanged)
Q_PROPERTY(Priority priority READ priority WRITE setPriority NOTIFY priorityChanged)
Q_PROPERTY(bool dueToday READ dueToday NOTIFY dueDateChanged)
Q_PROPERTY(bool isOverdue READ isOverdue NOTIFY dueDateChanged)
Q_PROPERTY(QString prettyDueDateString READ prettyDueDateString NOTIFY dueDateChanged)
Q_PROPERTY(QString prettyDueDateRecurString READ prettyDueDateRecurString NOTIFY dueDateChanged)
Q_PROPERTY(QString dueDateString READ dueDateString NOTIFY dueDateChanged)
Q_PROPERTY(QDate dueDate READ dueDate WRITE setDueDate NOTIFY dueDateChanged)
Q_PROPERTY(bool dueToday READ dueToday NOTIFY dueDateDisplayTextChanged)
Q_PROPERTY(bool isOverdue READ isOverdue NOTIFY dueDateDisplayTextChanged)
Q_PROPERTY(QString prettyDueDateString READ prettyDueDateString NOTIFY dueDateDisplayTextChanged)
Q_PROPERTY(QString prettyDueDateRecurString READ prettyDueDateRecurString NOTIFY dueDateDisplayTextChanged)
Q_PROPERTY(QString dueDateString READ dueDateString NOTIFY dueDateDisplayTextChanged)
Q_PROPERTY(QDate dueDate READ dueDate WRITE setDueDate NOTIFY dueDateDisplayTextChanged)
Q_PROPERTY(int daysSinceLastPomodoro READ daysSinceLastPomodoro NOTIFY daysSinceLastPomodoroChanged)
Q_PROPERTY(int daysSinceCreation READ daysSinceCreation NOTIFY daysSinceCreationChanged)
Q_PROPERTY(bool staged READ staged WRITE setStaged NOTIFY stagedChanged)
Expand All @@ -78,10 +78,10 @@ class Task : public QObject, public Syncable {

Q_PROPERTY(TaskContextMenuModel* contextMenuModel READ contextMenuModel CONSTANT)
Q_PROPERTY(SortedTaskContextMenuModel* sortedContextMenuModel READ sortedContextMenuModel CONSTANT)
Q_PROPERTY(int periodType READ periodType NOTIFY dueDateChanged)
Q_PROPERTY(bool recurs READ recurs NOTIFY dueDateChanged)
Q_PROPERTY(uint frequency READ frequency WRITE setFrequency NOTIFY dueDateChanged)
Q_PROPERTY(QString frequencyWord READ frequencyWord NOTIFY dueDateChanged)
Q_PROPERTY(int periodType READ periodType NOTIFY dueDateDisplayTextChanged)
Q_PROPERTY(bool recurs READ recurs NOTIFY dueDateDisplayTextChanged)
Q_PROPERTY(uint frequency READ frequency WRITE setFrequency NOTIFY dueDateDisplayTextChanged)
Q_PROPERTY(QString frequencyWord READ frequencyWord NOTIFY dueDateDisplayTextChanged)

public:
typedef QSharedPointer<Task> Ptr;
Expand Down Expand Up @@ -204,6 +204,7 @@ public Q_SLOTS:
void changed();
void tagToggled(const QString &tag);
void dueDateChanged();
void dueDateDisplayTextChanged();

protected:
QVector<QString> supportedFields() const Q_DECL_OVERRIDE;
Expand Down

0 comments on commit a106255

Please sign in to comment.