/
mob1le
/
simple-task-manager
Обзор
Документация
Войти
/
mob1le
/
simple-task-manager
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/task_model.cpp
147 строк
3 KB
bessalovs
fix id (now unique) + format all documents
13 май 2026, 13:41
13 май 2026, 13:41
621c9d5
Код
Авторство
О чём код?
#include "task_model.h" TaskModel::TaskModel(QObject *parent) : QAbstractTableModel(parent) { } TaskModel::~TaskModel() { } int TaskModel::rowCount(const QModelIndex &parent) const { Q_UNUSED(parent); return m_tasks.size(); } int TaskModel::columnCount(const QModelIndex &) const { return MyColumns::CountCoulumns; } QVariant TaskModel::data(const QModelIndex &index, int role) const { if (!index.isValid() || index.row() >= m_tasks.size()) return QVariant(); const Task &task = m_tasks.at(index.row()); switch (role) { case Qt::DisplayRole: { switch (index.column()) { case 0: return task.getId(); case 1: return task.getTitle(); case 2: return task.getDesription(); case 3: return task.getIsCompleted(); case 4: return task.getCreatedDate(); } break; } case Qt::FontRole: { if (task.getIsCompleted()) { QFont font; font.setStrikeOut(true); font.setItalic(true); return font; } break; } } return QVariant(); } QVariant TaskModel::headerData(int section, Qt::Orientation orientation, int role) const { if (role != Qt::DisplayRole || orientation == Qt::Vertical) return QVariant(); switch (section) { case 0: return "Id"; case 1: return "Title"; case 2: return "Description"; case 3: return "isCompleted"; case 4: return "createdAt"; default: return QVariant(); } } void TaskModel::addTask(const Task &task) { beginInsertRows(QModelIndex(), m_tasks.size(), m_tasks.size()); m_tasks.append(task); endInsertRows(); } void TaskModel::editTask(QUuid id, QString title, QString description) { int index = findIndexByTaskId(id); if (index == -1) { return; } beginResetModel(); m_tasks[index].editTitle(title); m_tasks[index].editDescription(description); endResetModel(); } void TaskModel::removeTask(QUuid id) { int index = findIndexByTaskId(id); if (index == -1) { return; } beginRemoveRows(QModelIndex(), index, index); m_tasks.removeAt(index); endRemoveRows(); } void TaskModel::completeTask(QUuid id) { int index = findIndexByTaskId(id); if (index == -1) { return; } beginResetModel(); m_tasks[index].switchComplete(); endResetModel(); } QList<Task> TaskModel::getTaskList() const { return m_tasks; } int TaskModel::findIndexByTaskId(QUuid id) { for (int index = 0; index < m_tasks.size(); index++) { if (m_tasks[index].getId() == id) { return index; } } return -1; }