> On July 28, 2013, 7 p.m., Friedrich W. H. Kossebau wrote: > > plan/libs/models/kpttaskstatusmodel.cpp, line 724 > > <http://git.reviewboard.kde.org/r/111751/diff/1/?file=174019#file174019line724> > > > > If calling "refresh()" at the end anyway, then all the logic with the > > row before and emitting dataChanged is unneeded, from what I understand of > > the rest of the code. > > > > Ideally the "TaskStatusItemModel::slotNodeChanged(...)" method would > > have some additional logic which checks if the task is still in the same > > group. Possibly there could be a private enum listing all the groups > > ("TaskStatus {TaskStarted, TaskRunning, TaskUpcoming, TaskNotStarted }") > > and a separate, private method which estimates the group for a given task > > ("TaskStatus TaskStatusItemModel::statusOfNode( Node *node )"). The latter > > would have the code to estimate the group just taken from > > "TaskStatusItemModel::refresh()" which would after that then use > > "TaskStatusItemModel::statusOfNode(...)" instead. > > With that "TaskStatusItemModel::slotNodeChanged( Node *node )" could > > use "TaskStatusItemModel::statusOfNode(...)" to see if the new status > > matches the old one known, and in the case it does not go and call > > "refresh()", but in all other cases just emit dataChanged() as before. > > To get the proper group via the enum it needs to be ensured that the > > order of the groups in "QList <KPlato::NodeMap* > m_top" matches the value > > of the status in the enum, so "m_top[status]" will get it. > > > > Got what I mean?
I see what you mean, and I'd just drop all that code and call refresh(), because it doesn't cover the case where a node is not in any group (eg. a task that was supposed to start after next period). - Alvaro ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/111751/#review36677 ----------------------------------------------------------- On July 27, 2013, 8:58 p.m., Alvaro Soliverez wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://git.reviewboard.kde.org/r/111751/ > ----------------------------------------------------------- > > (Updated July 27, 2013, 8:58 p.m.) > > > Review request for Calligra. > > > Description > ------- > > When updating progress of a task, the Task Status view does not refresh > accordingly. If the task was already in the view (it shows tasks only within > a timeframe or tasks in progress), it will not change groups if the task > changes status. If the task was not in the view, and for example, it is set > to started, it will not show up in the view. > > call refresh() after slotNodeChanged() > > > This addresses bug 322897. > http://bugs.kde.org/show_bug.cgi?id=322897 > > > Diffs > ----- > > plan/libs/models/kpttaskstatusmodel.cpp 6257ea3 > > Diff: http://git.reviewboard.kde.org/r/111751/diff/ > > > Testing > ------- > > Tested with a live file, now it refreshes correctly in both cases > > > Thanks, > > Alvaro Soliverez > >
_______________________________________________ calligra-devel mailing list calligra-devel@kde.org https://mail.kde.org/mailman/listinfo/calligra-devel