Example #1
0
        public void RemoveSelectedTasks()
        {
            TreeModel model;
            TreePath[] paths = this.m_tasksTreeView.Selection.GetSelectedRows (out model);

            if (paths.Length < 1)
                return;

            // reverse the order of paths from last to first
            // so that the id's will be valid when removing/adding
            Array.Reverse (paths);
            List<Task> tasks = new List<Task> ();

            foreach (TreePath path in paths) {
                TreeIter iter;
                if (model.GetIter (out iter, path)) {
                    GLib.Value value = GLib.Value.Empty;
                    model.GetValue (iter, 0, ref value);
                    tasks.Add ((Task)value.Val);
                }
            }

            var command = new RemoveTaskCommand (m_storage, tasks);
            var commands = ServiceManager.Get<CommandService> ();
            commands.Commands.Do (command);

            m_tasksTreeView.Selection.SelectPath (paths[0]);
            if (m_tasksTreeView.Selection.CountSelectedRows () == 0)
                MoveLastTask ();

            m_tasksTreeView.QueueDraw ();
        }