mirror of
https://codeberg.org/vyn/mirai.git
synced 2025-07-03 18:23:19 +00:00
Rework mirai core
This commit is contained in:
parent
f885d355cd
commit
36a2fe9220
62 changed files with 27689 additions and 765 deletions
108
external/mirai-core/src/Day.cpp
vendored
108
external/mirai-core/src/Day.cpp
vendored
|
@ -5,100 +5,56 @@
|
|||
*/
|
||||
|
||||
#include "Day.h"
|
||||
#include "BaseSource.h"
|
||||
#include "Task.h"
|
||||
#include <algorithm>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <ostream>
|
||||
#include <vector>
|
||||
#include <stdexcept>
|
||||
|
||||
namespace mirai
|
||||
{
|
||||
|
||||
Day::Day(BaseSource *source, const DayData &data) : source_(source), data_(data)
|
||||
int Day::id() const
|
||||
{
|
||||
return dayData_.id;
|
||||
}
|
||||
|
||||
Event *Day::createEvent(const EventData &eventData)
|
||||
int Day::sourceId() const
|
||||
{
|
||||
auto event = std::make_unique<Event>(source_, this, eventData);
|
||||
mirai::Event *eventPtr = event.get();
|
||||
events_.push_back(std::move(event));
|
||||
onChange();
|
||||
return eventPtr;
|
||||
return data_->id;
|
||||
}
|
||||
|
||||
std::vector<std::unique_ptr<Event>> *Day::events()
|
||||
Date Day::date() const
|
||||
{
|
||||
return &events_;
|
||||
return dayData_.date;
|
||||
}
|
||||
|
||||
const Date &Day::getDate() const
|
||||
std::vector<Task> Day::tasks()
|
||||
{
|
||||
return data_.date;
|
||||
}
|
||||
|
||||
TaskItem *Day::createTask(const TaskItemData &taskData)
|
||||
{
|
||||
auto task = std::make_unique<TaskItem>(source_, this, taskData);
|
||||
mirai::TaskItem *taskPtr = task.get();
|
||||
tasks_.push_back(std::move(task));
|
||||
onChange();
|
||||
return taskPtr;
|
||||
}
|
||||
|
||||
void Day::deleteTask(const TaskItem &taskToDelete)
|
||||
{
|
||||
int id = taskToDelete.id();
|
||||
tasks_.erase(
|
||||
std::remove_if(
|
||||
tasks_.begin(), tasks_.end(),
|
||||
[&](const std::unique_ptr<TaskItem> &task) {
|
||||
return task->id() == id;
|
||||
}
|
||||
),
|
||||
tasks_.end()
|
||||
);
|
||||
onChange();
|
||||
}
|
||||
|
||||
void Day::deleteEvent(const Event &eventToDelete)
|
||||
{
|
||||
int id = eventToDelete.id();
|
||||
events_.erase(
|
||||
std::remove_if(
|
||||
events_.begin(), events_.end(),
|
||||
[&](const std::unique_ptr<Event> &event) {
|
||||
return event->id() == id;
|
||||
}
|
||||
),
|
||||
events_.end()
|
||||
);
|
||||
onChange();
|
||||
}
|
||||
|
||||
void Day::onChange()
|
||||
{
|
||||
source()->setDirty(true);
|
||||
}
|
||||
|
||||
std::vector<std::unique_ptr<TaskItem>> *Day::tasks()
|
||||
{
|
||||
return &tasks_;
|
||||
}
|
||||
|
||||
Event *Day::getEventById(int eventId)
|
||||
{
|
||||
for (auto &event : events_) {
|
||||
if (event->id() == eventId) {
|
||||
return event.get();
|
||||
auto tasksData = data_->getTasksByDayId(id());
|
||||
std::vector<Task> tasks;
|
||||
std::transform(
|
||||
tasksData.begin(), tasksData.end(), std::back_inserter(tasks),
|
||||
[&](const TaskData &taskData) {
|
||||
return Task{data_, taskData};
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
);
|
||||
return tasks;
|
||||
}
|
||||
|
||||
BaseSource *Day::source()
|
||||
std::vector<Event> Day::events()
|
||||
{
|
||||
return source_;
|
||||
auto eventsData = data_->getEventsByDate(dayData_.date);
|
||||
std::vector<Event> events;
|
||||
std::transform(
|
||||
eventsData.begin(), eventsData.end(), std::back_inserter(events),
|
||||
[&](const EventData &eventData) {
|
||||
return Event{data_, eventData};
|
||||
}
|
||||
);
|
||||
return events;
|
||||
}
|
||||
|
||||
void Day::mergeDay(const Day &otherDay)
|
||||
{
|
||||
throw std::runtime_error("Not implemented yet");
|
||||
}
|
||||
} // namespace mirai
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue