mirror of
https://codeberg.org/vyn/mirai.git
synced 2025-07-03 18:23:19 +00:00
Convert classes and files to snake_case
This commit is contained in:
parent
686d86df6f
commit
6fa94b279c
26 changed files with 272 additions and 301 deletions
14
external/mirai-core/CMakeLists.txt
vendored
14
external/mirai-core/CMakeLists.txt
vendored
|
@ -6,14 +6,14 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
|
set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
|
||||||
|
|
||||||
add_library(mirai-core
|
add_library(mirai-core
|
||||||
src/Mirai.cpp
|
src/core.cpp
|
||||||
src/Task.cpp
|
src/task.cpp
|
||||||
src/Event.cpp
|
src/event.cpp
|
||||||
src/DateTime.cpp
|
src/date.cpp
|
||||||
src/EventEmitter.cpp
|
src/EventEmitter.cpp
|
||||||
src/Source.cpp
|
src/source.cpp
|
||||||
src/MarkdownDataProvider.cpp
|
src/markdown_data_provider.cpp
|
||||||
src/MarkdownDataProvider.Parser.cpp
|
src/markdown_data_provider.parser.cpp
|
||||||
src/utils.cpp
|
src/utils.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -1,64 +0,0 @@
|
||||||
/*
|
|
||||||
* Mirai. Copyright (C) 2024 Vyn
|
|
||||||
* This file is licensed under version 3 of the GNU General Public License (GPL-3.0-only)
|
|
||||||
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <bits/chrono.h>
|
|
||||||
#include <chrono>
|
|
||||||
#include <ctime>
|
|
||||||
#include <optional>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
namespace mirai
|
|
||||||
{
|
|
||||||
|
|
||||||
struct Date {
|
|
||||||
explicit Date(int year, unsigned month, unsigned day);
|
|
||||||
|
|
||||||
explicit Date(std::chrono::time_point<std::chrono::system_clock> tp);
|
|
||||||
explicit Date(std::chrono::year_month_day chronoDate);
|
|
||||||
|
|
||||||
bool operator==(const Date &other) const;
|
|
||||||
bool operator<(const Date &other) const;
|
|
||||||
bool operator>(const Date &other) const;
|
|
||||||
bool operator>=(const Date &other) const;
|
|
||||||
bool operator<=(const Date &other) const;
|
|
||||||
|
|
||||||
std::chrono::year_month_day toStdChrono() const
|
|
||||||
{
|
|
||||||
return std::chrono::year_month_day{
|
|
||||||
std::chrono::year(year),
|
|
||||||
std::chrono::month(month),
|
|
||||||
std::chrono::day(day),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
int toIntRepresentation()
|
|
||||||
{
|
|
||||||
return day + month * 100 + year * 10000;
|
|
||||||
}
|
|
||||||
|
|
||||||
int year;
|
|
||||||
unsigned month;
|
|
||||||
unsigned day;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Time {
|
|
||||||
|
|
||||||
explicit Time(int hour, int minute);
|
|
||||||
explicit Time(std::chrono::time_point<std::chrono::system_clock> tp);
|
|
||||||
|
|
||||||
bool operator==(const Time &other) const;
|
|
||||||
bool operator<(const Time &other) const;
|
|
||||||
bool operator>(const Time &other) const;
|
|
||||||
|
|
||||||
int hour;
|
|
||||||
int minute;
|
|
||||||
};
|
|
||||||
|
|
||||||
std::optional<mirai::Date> stringToDate(const std::string &dateStr);
|
|
||||||
|
|
||||||
} // namespace mirai
|
|
|
@ -7,7 +7,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "EventEmitter.h"
|
#include "EventEmitter.h"
|
||||||
#include "Source.h"
|
#include "source.h"
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <optional>
|
#include <optional>
|
||||||
|
@ -16,11 +16,11 @@
|
||||||
namespace mirai
|
namespace mirai
|
||||||
{
|
{
|
||||||
|
|
||||||
class Mirai
|
class core
|
||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Mirai(const std::string &configFilePath);
|
core(const std::string &configFilePath);
|
||||||
void addSource(
|
void addSource(
|
||||||
const std::string &name, const std::string &type, std::unique_ptr<data_provider> &&source
|
const std::string &name, const std::string &type, std::unique_ptr<data_provider> &&source
|
||||||
);
|
);
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "DateTime.h"
|
#include "date.h"
|
||||||
#include <optional>
|
#include <optional>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
@ -20,28 +20,28 @@ struct task_data {
|
||||||
int id;
|
int id;
|
||||||
std::string title;
|
std::string title;
|
||||||
task_state state;
|
task_state state;
|
||||||
std::optional<Date> due_date;
|
std::optional<class date> due_date;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct updatable_task_data {
|
struct updatable_task_data {
|
||||||
std::optional<std::string> title = std::nullopt;
|
std::optional<std::string> title = std::nullopt;
|
||||||
std::optional<task_state> state = std::nullopt;
|
std::optional<task_state> state = std::nullopt;
|
||||||
std::optional<std::optional<Date>> due_date = std::nullopt;
|
std::optional<std::optional<class date>> due_date = std::nullopt;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct event_data {
|
struct event_data {
|
||||||
int id;
|
int id;
|
||||||
Date date;
|
class date date;
|
||||||
std::string title;
|
std::string title;
|
||||||
Time starts_at;
|
time starts_at;
|
||||||
Time ends_at;
|
time ends_at;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct updatable_event_data {
|
struct updatable_event_data {
|
||||||
std::optional<Date> date;
|
std::optional<class date> date;
|
||||||
std::optional<std::string> title;
|
std::optional<std::string> title;
|
||||||
std::optional<Time> starts_at;
|
std::optional<time> starts_at;
|
||||||
std::optional<Time> ends_at;
|
std::optional<time> ends_at;
|
||||||
};
|
};
|
||||||
|
|
||||||
class data_provider
|
class data_provider
|
||||||
|
@ -62,7 +62,7 @@ class data_provider
|
||||||
virtual task_data insert_task(const task_data &task) = 0;
|
virtual task_data insert_task(const task_data &task) = 0;
|
||||||
virtual void remove_task_by_id(int taskId) = 0;
|
virtual void remove_task_by_id(int taskId) = 0;
|
||||||
virtual std::optional<task_data> get_task_by_id(int taskId) = 0;
|
virtual std::optional<task_data> get_task_by_id(int taskId) = 0;
|
||||||
virtual std::vector<task_data> get_tasks_by_date(Date date) = 0;
|
virtual std::vector<task_data> get_tasks_by_date(class date date) = 0;
|
||||||
virtual std::vector<task_data> get_tasks_without_date() = 0;
|
virtual std::vector<task_data> get_tasks_without_date() = 0;
|
||||||
virtual std::vector<task_data> get_tasks() = 0;
|
virtual std::vector<task_data> get_tasks() = 0;
|
||||||
virtual void update_task(int taskId, updatable_task_data updateData) = 0;
|
virtual void update_task(int taskId, updatable_task_data updateData) = 0;
|
||||||
|
@ -72,7 +72,7 @@ class data_provider
|
||||||
virtual void remove_event_by_id(int eventId) = 0;
|
virtual void remove_event_by_id(int eventId) = 0;
|
||||||
virtual std::optional<event_data> get_event_by_id(int eventId) = 0;
|
virtual std::optional<event_data> get_event_by_id(int eventId) = 0;
|
||||||
virtual std::vector<event_data> get_events() = 0;
|
virtual std::vector<event_data> get_events() = 0;
|
||||||
virtual std::vector<event_data> get_events_by_date(Date date) = 0;
|
virtual std::vector<event_data> get_events_by_date(class date date) = 0;
|
||||||
virtual void update_event(int eventId, updatable_event_data updateData) = 0;
|
virtual void update_event(int eventId, updatable_event_data updateData) = 0;
|
||||||
|
|
||||||
const int id = data_provider::generate_next_id();
|
const int id = data_provider::generate_next_id();
|
59
external/mirai-core/include/mirai-core/date.h
vendored
Normal file
59
external/mirai-core/include/mirai-core/date.h
vendored
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
/*
|
||||||
|
* Mirai. Copyright (C) 2024 Vyn
|
||||||
|
* This file is licensed under version 3 of the GNU General Public License (GPL-3.0-only)
|
||||||
|
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <bits/chrono.h>
|
||||||
|
#include <chrono>
|
||||||
|
#include <ctime>
|
||||||
|
#include <optional>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
namespace mirai
|
||||||
|
{
|
||||||
|
|
||||||
|
struct date {
|
||||||
|
explicit date(int year, unsigned month, unsigned day);
|
||||||
|
|
||||||
|
explicit date(std::chrono::time_point<std::chrono::system_clock> tp);
|
||||||
|
explicit date(std::chrono::year_month_day chronoDate);
|
||||||
|
|
||||||
|
bool operator==(const date &other) const;
|
||||||
|
bool operator<(const date &other) const;
|
||||||
|
bool operator>(const date &other) const;
|
||||||
|
bool operator>=(const date &other) const;
|
||||||
|
bool operator<=(const date &other) const;
|
||||||
|
|
||||||
|
std::chrono::year_month_day to_std_chrono() const
|
||||||
|
{
|
||||||
|
return std::chrono::year_month_day{
|
||||||
|
std::chrono::year(year),
|
||||||
|
std::chrono::month(month),
|
||||||
|
std::chrono::day(day),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
int year;
|
||||||
|
unsigned month;
|
||||||
|
unsigned day;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct time {
|
||||||
|
|
||||||
|
explicit time(int hour, int minute);
|
||||||
|
explicit time(std::chrono::time_point<std::chrono::system_clock> tp);
|
||||||
|
|
||||||
|
bool operator==(const time &other) const;
|
||||||
|
bool operator<(const time &other) const;
|
||||||
|
bool operator>(const time &other) const;
|
||||||
|
|
||||||
|
int hour;
|
||||||
|
int minute;
|
||||||
|
};
|
||||||
|
|
||||||
|
std::optional<class date> string_to_date(const std::string &dateStr);
|
||||||
|
|
||||||
|
} // namespace mirai
|
|
@ -6,32 +6,32 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "DataProvider.h"
|
#include "data_provider.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
namespace mirai
|
namespace mirai
|
||||||
{
|
{
|
||||||
|
|
||||||
class Task;
|
class task;
|
||||||
|
|
||||||
class Event
|
class event
|
||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Event(data_provider *provider, event_data data) : _provider(provider), _data(data) {};
|
event(data_provider *provider, event_data data) : _provider(provider), _data(data) {};
|
||||||
|
|
||||||
std::string title() const;
|
std::string title() const;
|
||||||
Date date() const;
|
class date date() const;
|
||||||
Time starts_at() const;
|
time starts_at() const;
|
||||||
Time ends_at() const;
|
time ends_at() const;
|
||||||
|
|
||||||
std::vector<Task> query_tasks() const;
|
std::vector<task> query_tasks() const;
|
||||||
|
|
||||||
void set_title(const std::string &newTitle);
|
void set_title(const std::string &newTitle);
|
||||||
void set_date(const Date &date);
|
void set_date(const class date &date);
|
||||||
void set_start_time(const Time &time);
|
void set_start_time(const time &time);
|
||||||
void set_end_time(const Time &time);
|
void set_end_time(const time &time);
|
||||||
|
|
||||||
int id() const;
|
int id() const;
|
||||||
int source_id() const;
|
int source_id() const;
|
|
@ -6,8 +6,8 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "DataProvider.h"
|
#include "data_provider.h"
|
||||||
#include "DateTime.h"
|
#include "date.h"
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
|
@ -46,7 +46,7 @@ class markdown_data_provider final : public data_provider
|
||||||
task_data insert_task(const task_data &task) override;
|
task_data insert_task(const task_data &task) override;
|
||||||
void remove_task_by_id(int taskId) override;
|
void remove_task_by_id(int taskId) override;
|
||||||
std::optional<task_data> get_task_by_id(int taskId) override;
|
std::optional<task_data> get_task_by_id(int taskId) override;
|
||||||
std::vector<task_data> get_tasks_by_date(Date date) override;
|
std::vector<task_data> get_tasks_by_date(class date date) override;
|
||||||
std::vector<task_data> get_tasks_without_date() override;
|
std::vector<task_data> get_tasks_without_date() override;
|
||||||
std::vector<task_data> get_tasks() override;
|
std::vector<task_data> get_tasks() override;
|
||||||
void update_task(int taskId, updatable_task_data updateData) override;
|
void update_task(int taskId, updatable_task_data updateData) override;
|
||||||
|
@ -56,7 +56,7 @@ class markdown_data_provider final : public data_provider
|
||||||
void remove_event_by_id(int eventId) override;
|
void remove_event_by_id(int eventId) override;
|
||||||
std::optional<event_data> get_event_by_id(int eventId) override;
|
std::optional<event_data> get_event_by_id(int eventId) override;
|
||||||
std::vector<event_data> get_events() override;
|
std::vector<event_data> get_events() override;
|
||||||
std::vector<event_data> get_events_by_date(Date date) override;
|
std::vector<event_data> get_events_by_date(class date date) override;
|
||||||
void update_event(int eventId, updatable_event_data updateData) override;
|
void update_event(int eventId, updatable_event_data updateData) override;
|
||||||
|
|
||||||
private:
|
private:
|
|
@ -6,10 +6,10 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "DataProvider.h"
|
#include "data_provider.h"
|
||||||
#include "DateTime.h"
|
#include "date.h"
|
||||||
#include "Event.h"
|
#include "event.h"
|
||||||
#include "Task.h"
|
#include "task.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
@ -18,14 +18,14 @@ namespace mirai
|
||||||
|
|
||||||
struct create_task_params {
|
struct create_task_params {
|
||||||
std::string title;
|
std::string title;
|
||||||
std::optional<Date> due_date;
|
std::optional<class date> due_date;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct create_event_params {
|
struct create_event_params {
|
||||||
std::string title;
|
std::string title;
|
||||||
Date date;
|
class date date;
|
||||||
Time starts_at;
|
time starts_at;
|
||||||
Time ends_at;
|
time ends_at;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct source_constructor {
|
struct source_constructor {
|
||||||
|
@ -63,17 +63,17 @@ class source
|
||||||
void set_color(const std::string &color);
|
void set_color(const std::string &color);
|
||||||
|
|
||||||
void create_task(const create_task_params &task);
|
void create_task(const create_task_params &task);
|
||||||
void remove_task(const Task &task);
|
void remove_task(const task &task);
|
||||||
std::optional<Task> get_task_by_id(int taskId);
|
std::optional<task> get_task_by_id(int taskId);
|
||||||
std::vector<Task> get_tasks_by_date(Date date);
|
std::vector<task> get_tasks_by_date(class date date);
|
||||||
std::vector<Task> get_unscheduled_tasks();
|
std::vector<task> get_unscheduled_tasks();
|
||||||
std::vector<Task> get_tasks();
|
std::vector<task> get_tasks();
|
||||||
|
|
||||||
void create_event(const create_event_params &eventToCreate);
|
void create_event(const create_event_params &eventToCreate);
|
||||||
void remove_event(const Event &event);
|
void remove_event(const event &event);
|
||||||
std::vector<Event> get_events();
|
std::vector<class event> get_events();
|
||||||
std::optional<Event> get_event_by_id(int eventId);
|
std::optional<class event> get_event_by_id(int eventId);
|
||||||
std::vector<Event> get_events_by_date(Date date);
|
std::vector<class event> get_events_by_date(class date date);
|
||||||
|
|
||||||
const int id = source::generate_next_id();
|
const int id = source::generate_next_id();
|
||||||
|
|
|
@ -6,9 +6,9 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "DataProvider.h"
|
#include "data_provider.h"
|
||||||
#include "DateTime.h"
|
#include "date.h"
|
||||||
#include "Event.h"
|
#include "event.h"
|
||||||
#include <optional>
|
#include <optional>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
@ -17,20 +17,20 @@ namespace mirai
|
||||||
|
|
||||||
class Day;
|
class Day;
|
||||||
|
|
||||||
class Task
|
class task
|
||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Task(data_provider *data, task_data task) : data_(data), task_(task) {};
|
task(data_provider *data, task_data task) : data_(data), task_(task) {};
|
||||||
|
|
||||||
std::string title() const;
|
std::string title() const;
|
||||||
mirai::task_state state() const;
|
mirai::task_state state() const;
|
||||||
bool checked() const;
|
bool checked() const;
|
||||||
bool has_due_date() const;
|
bool has_due_date() const;
|
||||||
std::optional<Date> due_date() const;
|
std::optional<class date> due_date() const;
|
||||||
|
|
||||||
void set_title(const std::string &newTitle);
|
void set_title(const std::string &newTitle);
|
||||||
void set_date(const Date &date);
|
void set_date(const date &date);
|
||||||
void set_checked(bool checked);
|
void set_checked(bool checked);
|
||||||
void unschedule();
|
void unschedule();
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "DataProvider.h"
|
#include "data_provider.h"
|
||||||
#include "DateTime.h"
|
#include "date.h"
|
||||||
#include <cctype>
|
#include <cctype>
|
||||||
#include <cpp-utils/string.h>
|
#include <cpp-utils/string.h>
|
||||||
#include <cpp-utils/vector.h>
|
#include <cpp-utils/vector.h>
|
||||||
|
@ -20,7 +20,7 @@ namespace mirai
|
||||||
namespace stringUtils = cpputils::string;
|
namespace stringUtils = cpputils::string;
|
||||||
namespace vectorUtils = cpputils::vector;
|
namespace vectorUtils = cpputils::vector;
|
||||||
|
|
||||||
bool isDate(const std::string &dateStr);
|
bool is_date(const std::string &dateStr);
|
||||||
|
|
||||||
template <typename T, typename F> T *ptrFindFirst(std::vector<T> &container, F f)
|
template <typename T, typename F> T *ptrFindFirst(std::vector<T> &container, F f)
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,13 +4,13 @@
|
||||||
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "Mirai.h"
|
#include "core.h"
|
||||||
#include "DataProvider.h"
|
#include "data_provider.h"
|
||||||
#include "MarkdownDataProvider.h"
|
#include "markdown_data_provider.h"
|
||||||
#include "Source.h"
|
|
||||||
#include "rei-json/Array.h"
|
#include "rei-json/Array.h"
|
||||||
#include "rei-json/Object.h"
|
#include "rei-json/Object.h"
|
||||||
#include "rei-json/json.h"
|
#include "rei-json/json.h"
|
||||||
|
#include "source.h"
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
namespace mirai
|
namespace mirai
|
||||||
{
|
{
|
||||||
|
|
||||||
void Mirai::loadConfig(const std::string &path)
|
void core::loadConfig(const std::string &path)
|
||||||
{
|
{
|
||||||
std::ifstream file(path);
|
std::ifstream file(path);
|
||||||
if (!file) {
|
if (!file) {
|
||||||
|
@ -54,7 +54,7 @@ void Mirai::loadConfig(const std::string &path)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mirai::saveConfig()
|
void core::saveConfig()
|
||||||
{
|
{
|
||||||
std::ofstream file(configPath_);
|
std::ofstream file(configPath_);
|
||||||
if (!file.is_open()) {
|
if (!file.is_open()) {
|
||||||
|
@ -78,12 +78,12 @@ void Mirai::saveConfig()
|
||||||
file.close();
|
file.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
Mirai::Mirai(const std::string &configFilePath) : configPath_(configFilePath)
|
core::core(const std::string &configFilePath) : configPath_(configFilePath)
|
||||||
{
|
{
|
||||||
loadConfig(configFilePath);
|
loadConfig(configFilePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mirai::addSource(
|
void core::addSource(
|
||||||
const std::string &name, const std::string &type, std::unique_ptr<data_provider> &&new_source
|
const std::string &name, const std::string &type, std::unique_ptr<data_provider> &&new_source
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
@ -98,7 +98,7 @@ void Mirai::addSource(
|
||||||
sourceAdded.emit(nullptr);
|
sourceAdded.emit(nullptr);
|
||||||
};
|
};
|
||||||
|
|
||||||
void Mirai::editSource(
|
void core::editSource(
|
||||||
int id, const std::string &name, const std::string &color, const std::string &path
|
int id, const std::string &name, const std::string &color, const std::string &path
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
@ -111,7 +111,7 @@ void Mirai::editSource(
|
||||||
sourceEdited.emit(nullptr);
|
sourceEdited.emit(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mirai::deleteSource(int id)
|
void core::deleteSource(int id)
|
||||||
{
|
{
|
||||||
sources_.erase(
|
sources_.erase(
|
||||||
std::remove_if(
|
std::remove_if(
|
||||||
|
@ -125,12 +125,12 @@ void Mirai::deleteSource(int id)
|
||||||
sourceDeleted.emit(id);
|
sourceDeleted.emit(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mirai::unloadAllSources()
|
void core::unloadAllSources()
|
||||||
{
|
{
|
||||||
sources_.clear();
|
sources_.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mirai::save()
|
void core::save()
|
||||||
{
|
{
|
||||||
for (auto &source : sources_) {
|
for (auto &source : sources_) {
|
||||||
if (source->is_dirty()) {
|
if (source->is_dirty()) {
|
||||||
|
@ -139,12 +139,12 @@ void Mirai::save()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::unique_ptr<source>> &Mirai::getSources()
|
std::vector<std::unique_ptr<source>> &core::getSources()
|
||||||
{
|
{
|
||||||
return sources_;
|
return sources_;
|
||||||
}
|
}
|
||||||
|
|
||||||
source *Mirai::getSourceById(int id)
|
source *core::getSourceById(int id)
|
||||||
{
|
{
|
||||||
auto source_found = std::ranges::find_if(sources_, [&](const std::unique_ptr<source> &source) {
|
auto source_found = std::ranges::find_if(sources_, [&](const std::unique_ptr<source> &source) {
|
||||||
return source->id == id;
|
return source->id == id;
|
||||||
|
@ -156,7 +156,7 @@ source *Mirai::getSourceById(int id)
|
||||||
return source_found->get();
|
return source_found->get();
|
||||||
}
|
}
|
||||||
|
|
||||||
source *Mirai::getSourceByName(const std::string &name)
|
source *core::getSourceByName(const std::string &name)
|
||||||
{
|
{
|
||||||
auto source_found = std::ranges::find_if(sources_, [&](const std::unique_ptr<source> &source) {
|
auto source_found = std::ranges::find_if(sources_, [&](const std::unique_ptr<source> &source) {
|
||||||
return source->name() == name;
|
return source->name() == name;
|
||||||
|
@ -168,17 +168,17 @@ source *Mirai::getSourceByName(const std::string &name)
|
||||||
return source_found->get();
|
return source_found->get();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mirai::onSourceAdded(std::function<void(source *)> f)
|
void core::onSourceAdded(std::function<void(source *)> f)
|
||||||
{
|
{
|
||||||
sourceAdded.registerCallback(f);
|
sourceAdded.registerCallback(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mirai::onSourceEdited(std::function<void(source *)> f)
|
void core::onSourceEdited(std::function<void(source *)> f)
|
||||||
{
|
{
|
||||||
sourceEdited.registerCallback(f);
|
sourceEdited.registerCallback(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mirai::onSourceDeleted(std::function<void(int)> f)
|
void core::onSourceDeleted(std::function<void(int)> f)
|
||||||
{
|
{
|
||||||
sourceDeleted.registerCallback(f);
|
sourceDeleted.registerCallback(f);
|
||||||
}
|
}
|
|
@ -4,7 +4,7 @@
|
||||||
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "DateTime.h"
|
#include "date.h"
|
||||||
#include <charconv>
|
#include <charconv>
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
#include <optional>
|
#include <optional>
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
namespace mirai
|
namespace mirai
|
||||||
{
|
{
|
||||||
|
|
||||||
std::optional<mirai::Date> stringToDate(const std::string &dateStr)
|
std::optional<class date> string_to_date(const std::string &dateStr)
|
||||||
{
|
{
|
||||||
using std::operator""sv;
|
using std::operator""sv;
|
||||||
|
|
||||||
|
@ -33,14 +33,14 @@ std::optional<mirai::Date> stringToDate(const std::string &dateStr)
|
||||||
auto year = dateSplit[0];
|
auto year = dateSplit[0];
|
||||||
auto month = dateSplit[1];
|
auto month = dateSplit[1];
|
||||||
auto day = dateSplit[2];
|
auto day = dateSplit[2];
|
||||||
return mirai::Date(year, static_cast<unsigned>(month), static_cast<unsigned>(day));
|
return mirai::date(year, static_cast<unsigned>(month), static_cast<unsigned>(day));
|
||||||
}
|
}
|
||||||
|
|
||||||
Date::Date(int year, unsigned month, unsigned day) : year(year), month(month), day(day)
|
date::date(int year, unsigned month, unsigned day) : year(year), month(month), day(day)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Date::Date(std::chrono::time_point<std::chrono::system_clock> tp)
|
date::date(std::chrono::time_point<std::chrono::system_clock> tp)
|
||||||
{
|
{
|
||||||
auto chronoDate = std::chrono::year_month_day(std::chrono::floor<std::chrono::days>(tp));
|
auto chronoDate = std::chrono::year_month_day(std::chrono::floor<std::chrono::days>(tp));
|
||||||
year = static_cast<int>(chronoDate.year());
|
year = static_cast<int>(chronoDate.year());
|
||||||
|
@ -48,19 +48,19 @@ Date::Date(std::chrono::time_point<std::chrono::system_clock> tp)
|
||||||
day = static_cast<unsigned>(chronoDate.day());
|
day = static_cast<unsigned>(chronoDate.day());
|
||||||
}
|
}
|
||||||
|
|
||||||
Date::Date(std::chrono::year_month_day chronoDate)
|
date::date(std::chrono::year_month_day chronoDate)
|
||||||
{
|
{
|
||||||
year = static_cast<int>(chronoDate.year());
|
year = static_cast<int>(chronoDate.year());
|
||||||
month = static_cast<unsigned>(chronoDate.month());
|
month = static_cast<unsigned>(chronoDate.month());
|
||||||
day = static_cast<unsigned>(chronoDate.day());
|
day = static_cast<unsigned>(chronoDate.day());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Date::operator==(const Date &other) const
|
bool date::operator==(const date &other) const
|
||||||
{
|
{
|
||||||
return other.year == year && other.month == month && other.day == day;
|
return other.year == year && other.month == month && other.day == day;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Date::operator<(const Date &other) const
|
bool date::operator<(const date &other) const
|
||||||
{
|
{
|
||||||
if (year < other.year) {
|
if (year < other.year) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -74,42 +74,42 @@ bool Date::operator<(const Date &other) const
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Date::operator>(const Date &other) const
|
bool date::operator>(const date &other) const
|
||||||
{
|
{
|
||||||
return !(*this < other) && !(*this == other);
|
return !(*this < other) && !(*this == other);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Date::operator>=(const Date &other) const
|
bool date::operator>=(const date &other) const
|
||||||
{
|
{
|
||||||
return (*this > other) || (*this == other);
|
return (*this > other) || (*this == other);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Date::operator<=(const Date &other) const
|
bool date::operator<=(const date &other) const
|
||||||
{
|
{
|
||||||
return (*this < other) || (*this == other);
|
return (*this < other) || (*this == other);
|
||||||
}
|
}
|
||||||
|
|
||||||
Time::Time(int hour, int minute) : hour(hour), minute(minute)
|
time::time(int hour, int minute) : hour(hour), minute(minute)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Time::Time(std::chrono::time_point<std::chrono::system_clock> tp)
|
time::time(std::chrono::time_point<std::chrono::system_clock> tp)
|
||||||
{
|
{
|
||||||
auto localTp = std::chrono::zoned_time{std::chrono::current_zone(), tp}.get_local_time();
|
auto localTp = std::chrono::zoned_time{std::chrono::current_zone(), tp}.get_local_time();
|
||||||
auto chronoDate = std::chrono::floor<std::chrono::days>(localTp);
|
auto chronoDate = std::chrono::floor<std::chrono::days>(localTp);
|
||||||
auto chronoTime =
|
auto chronoTime = std::chrono::hh_mm_ss{
|
||||||
std::chrono::hh_mm_ss{std::chrono::duration_cast<std::chrono::minutes>(localTp - chronoDate)
|
std::chrono::duration_cast<std::chrono::minutes>(localTp - chronoDate)
|
||||||
};
|
};
|
||||||
hour = static_cast<int>(chronoTime.hours().count());
|
hour = static_cast<int>(chronoTime.hours().count());
|
||||||
minute = static_cast<int>(chronoTime.minutes().count());
|
minute = static_cast<int>(chronoTime.minutes().count());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Time::operator==(const Time &other) const
|
bool time::operator==(const time &other) const
|
||||||
{
|
{
|
||||||
return other.hour == hour && other.minute == minute;
|
return other.hour == hour && other.minute == minute;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Time::operator<(const Time &other) const
|
bool time::operator<(const time &other) const
|
||||||
{
|
{
|
||||||
if (hour < other.hour) {
|
if (hour < other.hour) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -120,7 +120,7 @@ bool Time::operator<(const Time &other) const
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Time::operator>(const Time &other) const
|
bool time::operator>(const time &other) const
|
||||||
{
|
{
|
||||||
return !(*this < other) && !(*this == other);
|
return !(*this < other) && !(*this == other);
|
||||||
}
|
}
|
|
@ -4,59 +4,59 @@
|
||||||
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "Event.h"
|
#include "event.h"
|
||||||
#include "Task.h"
|
#include "task.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
namespace mirai
|
namespace mirai
|
||||||
{
|
{
|
||||||
|
|
||||||
int Event::id() const
|
int event::id() const
|
||||||
{
|
{
|
||||||
return _data.id;
|
return _data.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Event::source_id() const
|
int event::source_id() const
|
||||||
{
|
{
|
||||||
return _provider->id;
|
return _provider->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Event::title() const
|
std::string event::title() const
|
||||||
{
|
{
|
||||||
return _data.title;
|
return _data.title;
|
||||||
}
|
}
|
||||||
|
|
||||||
Date Event::date() const
|
date event::date() const
|
||||||
{
|
{
|
||||||
return _data.date;
|
return _data.date;
|
||||||
}
|
}
|
||||||
|
|
||||||
Time Event::starts_at() const
|
time event::starts_at() const
|
||||||
{
|
{
|
||||||
return _data.starts_at;
|
return _data.starts_at;
|
||||||
}
|
}
|
||||||
|
|
||||||
Time Event::ends_at() const
|
time event::ends_at() const
|
||||||
{
|
{
|
||||||
return _data.ends_at;
|
return _data.ends_at;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Event::set_title(const std::string &newTitle)
|
void event::set_title(const std::string &newTitle)
|
||||||
{
|
{
|
||||||
_provider->update_event(id(), {.title = newTitle});
|
_provider->update_event(id(), {.title = newTitle});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Event::set_date(const Date &date)
|
void event::set_date(const class date &date)
|
||||||
{
|
{
|
||||||
_provider->update_event(id(), {.date = date});
|
_provider->update_event(id(), {.date = date});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Event::set_start_time(const Time &time)
|
void event::set_start_time(const time &time)
|
||||||
{
|
{
|
||||||
_provider->update_event(id(), {.starts_at = time});
|
_provider->update_event(id(), {.starts_at = time});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Event::set_end_time(const Time &time)
|
void event::set_end_time(const time &time)
|
||||||
{
|
{
|
||||||
_provider->update_event(id(), {.ends_at = time});
|
_provider->update_event(id(), {.ends_at = time});
|
||||||
}
|
}
|
|
@ -4,9 +4,9 @@
|
||||||
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "MarkdownDataProvider.h"
|
#include "markdown_data_provider.h"
|
||||||
#include "DataProvider.h"
|
|
||||||
#include "cpp-utils/debug.h"
|
#include "cpp-utils/debug.h"
|
||||||
|
#include "data_provider.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
@ -92,7 +92,7 @@ std::vector<task_data> markdown_data_provider::get_tasks_without_date()
|
||||||
return findAll(_data.tasks, [](const task_data &t) { return t.due_date == std::nullopt; });
|
return findAll(_data.tasks, [](const task_data &t) { return t.due_date == std::nullopt; });
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<task_data> markdown_data_provider::get_tasks_by_date(Date date)
|
std::vector<task_data> markdown_data_provider::get_tasks_by_date(class date date)
|
||||||
{
|
{
|
||||||
return findAll(_data.tasks, [&](const task_data &t) { return t.due_date == date; });
|
return findAll(_data.tasks, [&](const task_data &t) { return t.due_date == date; });
|
||||||
}
|
}
|
||||||
|
@ -158,7 +158,7 @@ std::optional<event_data> markdown_data_provider::get_event_by_id(int eventId)
|
||||||
return findFirst(_data.events, [&](const event_data &event) { return event.id == eventId; });
|
return findFirst(_data.events, [&](const event_data &event) { return event.id == eventId; });
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<event_data> markdown_data_provider::get_events_by_date(Date date)
|
std::vector<event_data> markdown_data_provider::get_events_by_date(class date date)
|
||||||
{
|
{
|
||||||
return findAll(_data.events, [&](const event_data &event) { return event.date == date; });
|
return findAll(_data.events, [&](const event_data &event) { return event.date == date; });
|
||||||
}
|
}
|
|
@ -4,9 +4,9 @@
|
||||||
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "MarkdownDataProvider.h"
|
#include "markdown_data_provider.h"
|
||||||
#include "DataProvider.h"
|
|
||||||
#include "cpp-utils/debug.h"
|
#include "cpp-utils/debug.h"
|
||||||
|
#include "data_provider.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include <optional>
|
#include <optional>
|
||||||
#include <print>
|
#include <print>
|
||||||
|
@ -56,7 +56,7 @@ task_data stringToTask(const std::string &str, const std::string &date)
|
||||||
return taskItem;
|
return taskItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
Time stringToTime(const std::string &str)
|
time stringToTime(const std::string &str)
|
||||||
{
|
{
|
||||||
if (str.length() != 5) {
|
if (str.length() != 5) {
|
||||||
throw std::runtime_error("Str time length must be 5 (got '" + str + "')");
|
throw std::runtime_error("Str time length must be 5 (got '" + str + "')");
|
||||||
|
@ -67,7 +67,7 @@ Time stringToTime(const std::string &str)
|
||||||
int hour, minute;
|
int hour, minute;
|
||||||
std::from_chars(str.data(), str.data() + 2, hour);
|
std::from_chars(str.data(), str.data() + 2, hour);
|
||||||
std::from_chars(str.data() + 3, str.data() + 5, minute);
|
std::from_chars(str.data() + 3, str.data() + 5, minute);
|
||||||
Time time{hour, minute};
|
time time{hour, minute};
|
||||||
|
|
||||||
return time;
|
return time;
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,7 @@ event_data stringToEvent(const std::string &str, const std::string &dateString)
|
||||||
|
|
||||||
std::string text = stringUtils::trim(matches[4]);
|
std::string text = stringUtils::trim(matches[4]);
|
||||||
|
|
||||||
auto date = stringToDate(dateString);
|
auto date = string_to_date(dateString);
|
||||||
|
|
||||||
if (!date.has_value()) {
|
if (!date.has_value()) {
|
||||||
throw std::runtime_error("Malformated date");
|
throw std::runtime_error("Malformated date");
|
||||||
|
@ -124,7 +124,7 @@ std::string markdown_data_provider::to_markdown()
|
||||||
});
|
});
|
||||||
|
|
||||||
while (next_event_index < _data.events.size() || next_task_index < _data.tasks.size()) {
|
while (next_event_index < _data.events.size() || next_task_index < _data.tasks.size()) {
|
||||||
std::optional<Date> current_date = std::nullopt;
|
std::optional<class date> current_date = std::nullopt;
|
||||||
// First we find the lowest date between the events and the tasks
|
// First we find the lowest date between the events and the tasks
|
||||||
if (_data.events.size() > 0 && next_event_index < _data.events.size()) {
|
if (_data.events.size() > 0 && next_event_index < _data.events.size()) {
|
||||||
current_date = _data.events.at(next_event_index).date;
|
current_date = _data.events.at(next_event_index).date;
|
||||||
|
@ -199,7 +199,7 @@ markdown_data markdown_data_provider::parse_markdown(const std::string &content)
|
||||||
_data.name = line.substr(2);
|
_data.name = line.substr(2);
|
||||||
std::string currentDateString = "";
|
std::string currentDateString = "";
|
||||||
|
|
||||||
std::optional<Date> current_date = std::nullopt;
|
std::optional<class date> current_date = std::nullopt;
|
||||||
|
|
||||||
cpputils::debug::Timer stringToTaskDuration;
|
cpputils::debug::Timer stringToTaskDuration;
|
||||||
stringToTaskDuration.reset();
|
stringToTaskDuration.reset();
|
||||||
|
@ -211,7 +211,7 @@ markdown_data markdown_data_provider::parse_markdown(const std::string &content)
|
||||||
current_date = std::nullopt;
|
current_date = std::nullopt;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
current_date = mirai::stringToDate(currentDateString);
|
current_date = mirai::string_to_date(currentDateString);
|
||||||
if (!current_date.has_value()) {
|
if (!current_date.has_value()) {
|
||||||
throw std::runtime_error("Malformated date (1)");
|
throw std::runtime_error("Malformated date (1)");
|
||||||
}
|
}
|
|
@ -4,8 +4,8 @@
|
||||||
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "Source.h"
|
#include "source.h"
|
||||||
#include "DataProvider.h"
|
#include "data_provider.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
|
@ -42,64 +42,64 @@ void source::create_event(const create_event_params &new_event)
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
std::vector<Event> source::get_events()
|
std::vector<class event> source::get_events()
|
||||||
{
|
{
|
||||||
auto event_data = data->get_events();
|
auto event_data = data->get_events();
|
||||||
std::vector<Event> events;
|
std::vector<class event> events;
|
||||||
std::transform(
|
std::transform(
|
||||||
event_data.begin(), event_data.end(), std::back_inserter(events),
|
event_data.begin(), event_data.end(), std::back_inserter(events),
|
||||||
[&](const struct event_data &event_data) { return Event{data, event_data}; }
|
[&](const struct event_data &event_data) { return event{data, event_data}; }
|
||||||
);
|
);
|
||||||
return events;
|
return events;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::optional<Event> source::get_event_by_id(int evendId)
|
std::optional<class event> source::get_event_by_id(int evendId)
|
||||||
{
|
{
|
||||||
auto event = data->get_event_by_id(evendId);
|
auto event_data = data->get_event_by_id(evendId);
|
||||||
if (!event.has_value()) {
|
if (!event_data.has_value()) {
|
||||||
return std::nullopt;
|
return std::nullopt;
|
||||||
}
|
}
|
||||||
return Event{data, event.value()};
|
return event{data, event_data.value()};
|
||||||
}
|
}
|
||||||
|
|
||||||
void source::remove_event(const Event &event)
|
void source::remove_event(const event &event)
|
||||||
{
|
{
|
||||||
data->remove_event_by_id(event.id());
|
data->remove_event_by_id(event.id());
|
||||||
}
|
}
|
||||||
|
|
||||||
void source::remove_task(const Task &task)
|
void source::remove_task(const task &task)
|
||||||
{
|
{
|
||||||
data->remove_task_by_id(task.id());
|
data->remove_task_by_id(task.id());
|
||||||
}
|
}
|
||||||
|
|
||||||
std::optional<Task> source::get_task_by_id(int taskId)
|
std::optional<task> source::get_task_by_id(int taskId)
|
||||||
{
|
{
|
||||||
auto taskData = data->get_task_by_id(taskId);
|
auto taskData = data->get_task_by_id(taskId);
|
||||||
if (!taskData.has_value()) {
|
if (!taskData.has_value()) {
|
||||||
return std::nullopt;
|
return std::nullopt;
|
||||||
}
|
}
|
||||||
Task task{data, taskData.value()};
|
task task{data, taskData.value()};
|
||||||
return task;
|
return task;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<Task> source::get_tasks()
|
std::vector<task> source::get_tasks()
|
||||||
{
|
{
|
||||||
auto tasksData = data->get_tasks();
|
auto tasksData = data->get_tasks();
|
||||||
std::vector<Task> tasks;
|
std::vector<task> tasks;
|
||||||
std::transform(
|
std::transform(
|
||||||
tasksData.begin(), tasksData.end(), std::back_inserter(tasks),
|
tasksData.begin(), tasksData.end(), std::back_inserter(tasks),
|
||||||
[&](const task_data &taskData) { return Task{data, taskData}; }
|
[&](const task_data &taskData) { return task{data, taskData}; }
|
||||||
);
|
);
|
||||||
return tasks;
|
return tasks;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<Task> source::get_unscheduled_tasks()
|
std::vector<task> source::get_unscheduled_tasks()
|
||||||
{
|
{
|
||||||
auto tasksData = data->get_tasks_without_date();
|
auto tasksData = data->get_tasks_without_date();
|
||||||
std::vector<Task> tasks;
|
std::vector<task> tasks;
|
||||||
std::transform(
|
std::transform(
|
||||||
tasksData.begin(), tasksData.end(), std::back_inserter(tasks),
|
tasksData.begin(), tasksData.end(), std::back_inserter(tasks),
|
||||||
[&](const task_data &taskData) { return Task{data, taskData}; }
|
[&](const task_data &taskData) { return task{data, taskData}; }
|
||||||
);
|
);
|
||||||
return tasks;
|
return tasks;
|
||||||
}
|
}
|
|
@ -4,8 +4,8 @@
|
||||||
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "Task.h"
|
#include "task.h"
|
||||||
#include "DataProvider.h"
|
#include "data_provider.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include <optional>
|
#include <optional>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -13,37 +13,37 @@
|
||||||
namespace mirai
|
namespace mirai
|
||||||
{
|
{
|
||||||
|
|
||||||
int Task::id() const
|
int task::id() const
|
||||||
{
|
{
|
||||||
return task_.id;
|
return task_.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Task::source_id() const
|
int task::source_id() const
|
||||||
{
|
{
|
||||||
return data_->id;
|
return data_->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Task::title() const
|
std::string task::title() const
|
||||||
{
|
{
|
||||||
return task_.title;
|
return task_.title;
|
||||||
}
|
}
|
||||||
|
|
||||||
mirai::task_state Task::state() const
|
mirai::task_state task::state() const
|
||||||
{
|
{
|
||||||
return task_.state;
|
return task_.state;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Task::checked() const
|
bool task::checked() const
|
||||||
{
|
{
|
||||||
return task_.state == mirai::DONE;
|
return task_.state == mirai::DONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Task::has_due_date() const
|
bool task::has_due_date() const
|
||||||
{
|
{
|
||||||
return task_.due_date.has_value();
|
return task_.due_date.has_value();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::optional<Date> Task::due_date() const
|
std::optional<class date> task::due_date() const
|
||||||
{
|
{
|
||||||
if (!task_.due_date.has_value()) {
|
if (!task_.due_date.has_value()) {
|
||||||
return std::nullopt;
|
return std::nullopt;
|
||||||
|
@ -51,24 +51,24 @@ std::optional<Date> Task::due_date() const
|
||||||
return task_.due_date.value();
|
return task_.due_date.value();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Task::set_title(const std::string &newTitle)
|
void task::set_title(const std::string &newTitle)
|
||||||
{
|
{
|
||||||
data_->update_task(id(), {.title = newTitle});
|
data_->update_task(id(), {.title = newTitle});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Task::set_date(const Date &date)
|
void task::set_date(const date &date)
|
||||||
{
|
{
|
||||||
auto emptyEventId = std::optional<std::optional<int>>(std::optional<int>(std::nullopt));
|
auto emptyEventId = std::optional<std::optional<int>>(std::optional<int>(std::nullopt));
|
||||||
data_->update_task(id(), {.due_date = date});
|
data_->update_task(id(), {.due_date = date});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Task::unschedule()
|
void task::unschedule()
|
||||||
{
|
{
|
||||||
auto emptyId = std::optional<std::optional<int>>(std::optional<int>(std::nullopt));
|
auto emptyId = std::optional<std::optional<int>>(std::optional<int>(std::nullopt));
|
||||||
data_->update_task(id(), {.due_date = std::nullopt});
|
data_->update_task(id(), {.due_date = std::nullopt});
|
||||||
}
|
}
|
||||||
|
|
||||||
void Task::set_checked(bool checked)
|
void task::set_checked(bool checked)
|
||||||
{
|
{
|
||||||
data_->update_task(id(), {.state = checked ? DONE : TODO});
|
data_->update_task(id(), {.state = checked ? DONE : TODO});
|
||||||
}
|
}
|
2
external/mirai-core/src/utils.cpp
vendored
2
external/mirai-core/src/utils.cpp
vendored
|
@ -12,7 +12,7 @@
|
||||||
namespace mirai
|
namespace mirai
|
||||||
{
|
{
|
||||||
|
|
||||||
bool isDate(const std::string &dateStr)
|
bool is_date(const std::string &dateStr)
|
||||||
{
|
{
|
||||||
// std regex are really slow
|
// std regex are really slow
|
||||||
/*std::regex regex("[0-9]{4}-[0-9]{2}-[0-9]{2}");*/
|
/*std::regex regex("[0-9]{4}-[0-9]{2}-[0-9]{2}");*/
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "evalyte-cpp-common/evalyte.h"
|
#include "evalyte-cpp-common/evalyte.h"
|
||||||
#include "mirai-core/Mirai.h"
|
#include "mirai-core/core.h"
|
||||||
#include "ui.h"
|
#include "ui.h"
|
||||||
#include "windows/AppWindow/AppWindow.h"
|
#include "windows/AppWindow/AppWindow.h"
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
@ -15,7 +15,7 @@ int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
evalyte::createRequiredDirectories("mirai");
|
evalyte::createRequiredDirectories("mirai");
|
||||||
const auto configFilePath = evalyte::configDirectoryPath("mirai") + "/config.json";
|
const auto configFilePath = evalyte::configDirectoryPath("mirai") + "/config.json";
|
||||||
mirai::Mirai mirai{configFilePath};
|
mirai::core mirai{configFilePath};
|
||||||
AppWindow appWindow{&mirai};
|
AppWindow appWindow{&mirai};
|
||||||
appWindow.run();
|
appWindow.run();
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -21,10 +21,10 @@ void bindSlintUtils(const ui::Utils &utils)
|
||||||
return std::format("{:%B %d}", chronoDate);
|
return std::format("{:%B %d}", chronoDate);
|
||||||
});
|
});
|
||||||
|
|
||||||
auto currentDate = MiraiDateToSlintDate(mirai::Date(std::chrono::system_clock::now()));
|
auto currentDate = MiraiDateToSlintDate(mirai::date(std::chrono::system_clock::now()));
|
||||||
utils.set_current_date(currentDate);
|
utils.set_current_date(currentDate);
|
||||||
|
|
||||||
auto currentTime = MiraiTimeToSlintTime(mirai::Time(std::chrono::system_clock::now()));
|
auto currentTime = MiraiTimeToSlintTime(mirai::time(std::chrono::system_clock::now()));
|
||||||
utils.set_current_time(currentTime);
|
utils.set_current_time(currentTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,10 +38,10 @@ std::string formatZeroPadding(const int number)
|
||||||
|
|
||||||
std::string formatDateRelative(const ui::Date &date)
|
std::string formatDateRelative(const ui::Date &date)
|
||||||
{
|
{
|
||||||
auto todayDate = mirai::Date(std::chrono::system_clock::now());
|
auto todayDate = mirai::date(std::chrono::system_clock::now());
|
||||||
auto relativeDaysDiff = std::chrono::duration_cast<std::chrono::days>(
|
auto relativeDaysDiff = std::chrono::duration_cast<std::chrono::days>(
|
||||||
std::chrono::sys_days(SlintDateToMiraiDate(date).toStdChrono()) -
|
std::chrono::sys_days(SlintDateToMiraiDate(date).to_std_chrono())
|
||||||
std::chrono::sys_days(todayDate.toStdChrono())
|
- std::chrono::sys_days(todayDate.to_std_chrono())
|
||||||
)
|
)
|
||||||
.count();
|
.count();
|
||||||
|
|
||||||
|
@ -61,18 +61,18 @@ std::string capitalize(std::string str)
|
||||||
|
|
||||||
std::string SlintDateToStdString(const ui::Date &date)
|
std::string SlintDateToStdString(const ui::Date &date)
|
||||||
{
|
{
|
||||||
return std::to_string(date.year) + "-" + formatZeroPadding(date.month) + "-" +
|
return std::to_string(date.year) + "-" + formatZeroPadding(date.month) + "-"
|
||||||
formatZeroPadding(date.day);
|
+ formatZeroPadding(date.day);
|
||||||
}
|
}
|
||||||
|
|
||||||
mirai::Date SlintDateToMiraiDate(const ui::Date &date)
|
mirai::date SlintDateToMiraiDate(const ui::Date &date)
|
||||||
{
|
{
|
||||||
return mirai::Date(
|
return mirai::date(
|
||||||
date.year, static_cast<unsigned>(date.month), static_cast<unsigned>(date.day)
|
date.year, static_cast<unsigned>(date.month), static_cast<unsigned>(date.day)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
ui::Date MiraiDateToSlintDate(const mirai::Date &date)
|
ui::Date MiraiDateToSlintDate(const mirai::date &date)
|
||||||
{
|
{
|
||||||
return {
|
return {
|
||||||
.year = date.year,
|
.year = date.year,
|
||||||
|
@ -81,12 +81,12 @@ ui::Date MiraiDateToSlintDate(const mirai::Date &date)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
ui::Time MiraiTimeToSlintTime(const mirai::Time &time)
|
ui::Time MiraiTimeToSlintTime(const mirai::time &time)
|
||||||
{
|
{
|
||||||
return {.hour = time.hour, .minute = time.minute, .second = 0};
|
return {.hour = time.hour, .minute = time.minute, .second = 0};
|
||||||
}
|
}
|
||||||
|
|
||||||
mirai::Time SlintTimeToMiraiTime(const ui::Time &time)
|
mirai::time SlintTimeToMiraiTime(const ui::Time &time)
|
||||||
{
|
{
|
||||||
return mirai::Time{time.hour, time.minute};
|
return mirai::time{time.hour, time.minute};
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "mirai-core/DateTime.h"
|
#include "mirai-core/date.h"
|
||||||
#include "ui.h"
|
#include "ui.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ std::string formatZeroPadding(const int number);
|
||||||
std::string formatDateRelative(const ui::Date &date);
|
std::string formatDateRelative(const ui::Date &date);
|
||||||
std::string capitalize(std::string str);
|
std::string capitalize(std::string str);
|
||||||
std::string SlintDateToStdString(const ui::Date &date);
|
std::string SlintDateToStdString(const ui::Date &date);
|
||||||
mirai::Date SlintDateToMiraiDate(const ui::Date &date);
|
mirai::date SlintDateToMiraiDate(const ui::Date &date);
|
||||||
ui::Date MiraiDateToSlintDate(const mirai::Date &date);
|
ui::Date MiraiDateToSlintDate(const mirai::date &date);
|
||||||
ui::Time MiraiTimeToSlintTime(const mirai::Time &time);
|
ui::Time MiraiTimeToSlintTime(const mirai::time &time);
|
||||||
mirai::Time SlintTimeToMiraiTime(const ui::Time &time);
|
mirai::time SlintTimeToMiraiTime(const ui::Time &time);
|
||||||
|
|
24
src/view.h
24
src/view.h
|
@ -1,24 +0,0 @@
|
||||||
#include "DataProvider.h"
|
|
||||||
#include "DateTime.h"
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
struct source_group {
|
|
||||||
int source_id;
|
|
||||||
std::vector<mirai::event_data> events;
|
|
||||||
std::vector<mirai::task_data> tasks;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct day_group {
|
|
||||||
mirai::Date date;
|
|
||||||
source_group sources;
|
|
||||||
};
|
|
||||||
|
|
||||||
std::vector<day_group>
|
|
||||||
group_by_day(std::vector<mirai::event_data> events, std::vector<mirai::task_data> tasks)
|
|
||||||
{
|
|
||||||
std::vector<day_group> days;
|
|
||||||
|
|
||||||
// todo
|
|
||||||
|
|
||||||
return days;
|
|
||||||
}
|
|
|
@ -7,11 +7,11 @@
|
||||||
#include "AppWindow.h"
|
#include "AppWindow.h"
|
||||||
#include "../../SeleniteSetup.h"
|
#include "../../SeleniteSetup.h"
|
||||||
#include "../../shared/Utils.h"
|
#include "../../shared/Utils.h"
|
||||||
#include "mirai-core/DateTime.h"
|
#include "mirai-core/core.h"
|
||||||
#include "mirai-core/Event.h"
|
#include "mirai-core/date.h"
|
||||||
#include "mirai-core/MarkdownDataProvider.h"
|
#include "mirai-core/event.h"
|
||||||
#include "mirai-core/Mirai.h"
|
#include "mirai-core/markdown_data_provider.h"
|
||||||
#include "mirai-core/Source.h"
|
#include "mirai-core/source.h"
|
||||||
#include "selenite/palette.h"
|
#include "selenite/palette.h"
|
||||||
#include "slint_color.h"
|
#include "slint_color.h"
|
||||||
#include "slint_models.h"
|
#include "slint_models.h"
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
#include <string_view>
|
#include <string_view>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
AppWindow::AppWindow(mirai::Mirai *miraiInstance) : miraiInstance_(miraiInstance)
|
AppWindow::AppWindow(mirai::core *miraiInstance) : miraiInstance_(miraiInstance)
|
||||||
{
|
{
|
||||||
_sidebar_view = ui::SidebarView();
|
_sidebar_view = ui::SidebarView();
|
||||||
_calendar_view = ui::CalendarView();
|
_calendar_view = ui::CalendarView();
|
||||||
|
@ -193,7 +193,7 @@ void AppWindow::setupCallbacks()
|
||||||
assert(source);
|
assert(source);
|
||||||
auto task = source->get_task_by_id(newTaskData.id);
|
auto task = source->get_task_by_id(newTaskData.id);
|
||||||
assert(task.has_value());
|
assert(task.has_value());
|
||||||
const mirai::Date &date = SlintDateToMiraiDate(newTaskData.date);
|
const mirai::date &date = SlintDateToMiraiDate(newTaskData.date);
|
||||||
// const auto dayOpt = source->get_day_by_date(date);
|
// const auto dayOpt = source->get_day_by_date(date);
|
||||||
task->set_title(std::string(newTaskData.title));
|
task->set_title(std::string(newTaskData.title));
|
||||||
|
|
||||||
|
@ -204,13 +204,13 @@ void AppWindow::setupCallbacks()
|
||||||
});
|
});
|
||||||
|
|
||||||
actions().on_create_task([&](ui::NewTaskData newTaskData) {
|
actions().on_create_task([&](ui::NewTaskData newTaskData) {
|
||||||
std::optional<mirai::Date> date = std::nullopt;
|
std::optional<mirai::date> date = std::nullopt;
|
||||||
if (newTaskData.date.year != 0) {
|
if (newTaskData.date.year != 0) {
|
||||||
date = SlintDateToMiraiDate(newTaskData.date);
|
date = SlintDateToMiraiDate(newTaskData.date);
|
||||||
}
|
}
|
||||||
auto source = miraiInstance_->getSourceById(newTaskData.sourceId);
|
auto source = miraiInstance_->getSourceById(newTaskData.sourceId);
|
||||||
|
|
||||||
std::optional<mirai::Event> event = std::nullopt;
|
std::optional<mirai::event> event = std::nullopt;
|
||||||
if (newTaskData.eventId >= 0) {
|
if (newTaskData.eventId >= 0) {
|
||||||
event = source->get_event_by_id(newTaskData.eventId);
|
event = source->get_event_by_id(newTaskData.eventId);
|
||||||
}
|
}
|
||||||
|
@ -472,10 +472,10 @@ void AppWindow::update_sidebar_view()
|
||||||
models().set_sidebar_view(_sidebar_view);
|
models().set_sidebar_view(_sidebar_view);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<mirai::Event>
|
std::vector<mirai::event>
|
||||||
merge_all_events_from_sources(std::vector<std::unique_ptr<mirai::source>> &sources)
|
merge_all_events_from_sources(std::vector<std::unique_ptr<mirai::source>> &sources)
|
||||||
{
|
{
|
||||||
std::vector<mirai::Event> all_events;
|
std::vector<mirai::event> all_events;
|
||||||
for (auto &source : sources) {
|
for (auto &source : sources) {
|
||||||
const auto &events = source->get_events();
|
const auto &events = source->get_events();
|
||||||
all_events.insert(all_events.end(), events.begin(), events.end());
|
all_events.insert(all_events.end(), events.begin(), events.end());
|
||||||
|
@ -483,10 +483,10 @@ merge_all_events_from_sources(std::vector<std::unique_ptr<mirai::source>> &sourc
|
||||||
return all_events;
|
return all_events;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<mirai::Event>
|
std::vector<mirai::event>
|
||||||
get_events_for_date(const std::vector<mirai::Event> &events, const mirai::Date &date)
|
get_events_for_date(const std::vector<mirai::event> &events, const mirai::date &date)
|
||||||
{
|
{
|
||||||
auto filtered_events = events | std::ranges::views::filter([&](const mirai::Event &event) {
|
auto filtered_events = events | std::ranges::views::filter([&](const mirai::event &event) {
|
||||||
return event.date() == date;
|
return event.date() == date;
|
||||||
});
|
});
|
||||||
return std::ranges::to<std::vector>(filtered_events);
|
return std::ranges::to<std::vector>(filtered_events);
|
||||||
|
@ -494,7 +494,7 @@ get_events_for_date(const std::vector<mirai::Event> &events, const mirai::Date &
|
||||||
|
|
||||||
void AppWindow::update_calendar_view()
|
void AppWindow::update_calendar_view()
|
||||||
{
|
{
|
||||||
auto today = mirai::Date(std::chrono::system_clock::now());
|
auto today = mirai::date(std::chrono::system_clock::now());
|
||||||
auto new_slint_dates = std::make_shared<slint::VectorModel<ui::CalendarViewDate>>();
|
auto new_slint_dates = std::make_shared<slint::VectorModel<ui::CalendarViewDate>>();
|
||||||
|
|
||||||
auto &sources = miraiInstance_->getSources();
|
auto &sources = miraiInstance_->getSources();
|
||||||
|
@ -504,11 +504,11 @@ void AppWindow::update_calendar_view()
|
||||||
std::chrono::year_month_day next_date =
|
std::chrono::year_month_day next_date =
|
||||||
std::chrono::floor<std::chrono::days>(std::chrono::system_clock::now())
|
std::chrono::floor<std::chrono::days>(std::chrono::system_clock::now())
|
||||||
+ std::chrono::days{day_index};
|
+ std::chrono::days{day_index};
|
||||||
auto current_date = mirai::Date{next_date};
|
auto current_date = mirai::date{next_date};
|
||||||
auto new_slint_events = std::make_shared<slint::VectorModel<ui::CalendarViewEvent>>();
|
auto new_slint_events = std::make_shared<slint::VectorModel<ui::CalendarViewEvent>>();
|
||||||
auto relative_days_diff = std::chrono::duration_cast<std::chrono::days>(
|
auto relative_days_diff = std::chrono::duration_cast<std::chrono::days>(
|
||||||
std::chrono::sys_days(current_date.toStdChrono())
|
std::chrono::sys_days(current_date.to_std_chrono())
|
||||||
- std::chrono::sys_days(today.toStdChrono())
|
- std::chrono::sys_days(today.to_std_chrono())
|
||||||
)
|
)
|
||||||
.count();
|
.count();
|
||||||
if (relative_days_diff < 0 || relative_days_diff >= 7) {
|
if (relative_days_diff < 0 || relative_days_diff >= 7) {
|
||||||
|
@ -546,15 +546,15 @@ void AppWindow::update_calendar_view()
|
||||||
models().set_calendar_view(_calendar_view);
|
models().set_calendar_view(_calendar_view);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<mirai::Task>
|
std::vector<mirai::task>
|
||||||
get_all_tasks_from_sources(std::vector<std::unique_ptr<mirai::source>> &sources)
|
get_all_tasks_from_sources(std::vector<std::unique_ptr<mirai::source>> &sources)
|
||||||
{
|
{
|
||||||
std::vector<mirai::Task> all_tasks;
|
std::vector<mirai::task> all_tasks;
|
||||||
for (auto &source : sources) {
|
for (auto &source : sources) {
|
||||||
const auto &tasks = source->get_tasks();
|
const auto &tasks = source->get_tasks();
|
||||||
all_tasks.insert(all_tasks.end(), tasks.begin(), tasks.end());
|
all_tasks.insert(all_tasks.end(), tasks.begin(), tasks.end());
|
||||||
}
|
}
|
||||||
std::sort(all_tasks.begin(), all_tasks.end(), [](const mirai::Task &t1, const mirai::Task &t2) {
|
std::sort(all_tasks.begin(), all_tasks.end(), [](const mirai::task &t1, const mirai::task &t2) {
|
||||||
if (!t1.has_due_date() && !t2.has_due_date()) {
|
if (!t1.has_due_date() && !t2.has_due_date()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -571,15 +571,15 @@ get_all_tasks_from_sources(std::vector<std::unique_ptr<mirai::source>> &sources)
|
||||||
|
|
||||||
struct tasks_source_group {
|
struct tasks_source_group {
|
||||||
int id;
|
int id;
|
||||||
std::vector<mirai::Task> tasks;
|
std::vector<mirai::task> tasks;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct tasks_date_group {
|
struct tasks_date_group {
|
||||||
std::optional<mirai::Date> date;
|
std::optional<mirai::date> date;
|
||||||
std::vector<tasks_source_group> sources;
|
std::vector<tasks_source_group> sources;
|
||||||
};
|
};
|
||||||
|
|
||||||
std::vector<tasks_date_group> group_tasks_by_date(const std::vector<mirai::Task> &tasks)
|
std::vector<tasks_date_group> group_tasks_by_date(const std::vector<mirai::task> &tasks)
|
||||||
{
|
{
|
||||||
if (tasks.size() == 0) {
|
if (tasks.size() == 0) {
|
||||||
return {};
|
return {};
|
||||||
|
@ -588,7 +588,7 @@ std::vector<tasks_date_group> group_tasks_by_date(const std::vector<mirai::Task>
|
||||||
std::vector<tasks_date_group> dates_group;
|
std::vector<tasks_date_group> dates_group;
|
||||||
int next_task_index = 0;
|
int next_task_index = 0;
|
||||||
|
|
||||||
mirai::Task current_task = tasks.at(next_task_index);
|
mirai::task current_task = tasks.at(next_task_index);
|
||||||
|
|
||||||
while (next_task_index < tasks.size()) {
|
while (next_task_index < tasks.size()) {
|
||||||
tasks_date_group date_group{.date = current_task.due_date()};
|
tasks_date_group date_group{.date = current_task.due_date()};
|
||||||
|
@ -615,7 +615,7 @@ std::vector<tasks_date_group> group_tasks_by_date(const std::vector<mirai::Task>
|
||||||
|
|
||||||
void AppWindow::update_tasks_view()
|
void AppWindow::update_tasks_view()
|
||||||
{
|
{
|
||||||
auto today = mirai::Date(std::chrono::system_clock::now());
|
auto today = mirai::date(std::chrono::system_clock::now());
|
||||||
auto new_slint_dates = std::make_shared<slint::VectorModel<ui::TasksViewDate>>();
|
auto new_slint_dates = std::make_shared<slint::VectorModel<ui::TasksViewDate>>();
|
||||||
|
|
||||||
auto &sources = miraiInstance_->getSources();
|
auto &sources = miraiInstance_->getSources();
|
||||||
|
@ -627,8 +627,8 @@ void AppWindow::update_tasks_view()
|
||||||
std::optional<int> relative_days_diff = std::nullopt;
|
std::optional<int> relative_days_diff = std::nullopt;
|
||||||
if (current_date.has_value()) {
|
if (current_date.has_value()) {
|
||||||
relative_days_diff = std::chrono::duration_cast<std::chrono::days>(
|
relative_days_diff = std::chrono::duration_cast<std::chrono::days>(
|
||||||
std::chrono::sys_days(current_date.value().toStdChrono())
|
std::chrono::sys_days(current_date.value().to_std_chrono())
|
||||||
- std::chrono::sys_days(today.toStdChrono())
|
- std::chrono::sys_days(today.to_std_chrono())
|
||||||
)
|
)
|
||||||
.count();
|
.count();
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "mirai-core/Mirai.h"
|
#include "mirai-core/core.h"
|
||||||
#include "mirai-core/Source.h"
|
#include "mirai-core/source.h"
|
||||||
#include "slint.h"
|
#include "slint.h"
|
||||||
#include "ui.h"
|
#include "ui.h"
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
@ -17,7 +17,7 @@ class AppWindow
|
||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
AppWindow(mirai::Mirai *mirai);
|
AppWindow(mirai::core *mirai);
|
||||||
|
|
||||||
void run();
|
void run();
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ class AppWindow
|
||||||
|
|
||||||
slint::ComponentHandle<ui::AppWindow> mainWindow_ = ui::AppWindow::create();
|
slint::ComponentHandle<ui::AppWindow> mainWindow_ = ui::AppWindow::create();
|
||||||
|
|
||||||
mirai::Mirai *miraiInstance_;
|
mirai::core *miraiInstance_;
|
||||||
|
|
||||||
std::unordered_map<int, bool> _source_filters;
|
std::unordered_map<int, bool> _source_filters;
|
||||||
bool _should_hide_completed_tasks;
|
bool _should_hide_completed_tasks;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "core/Mirai.h"
|
#include "core/core.h"
|
||||||
#include "core/TaskItem.h"
|
#include "core/TaskItem.h"
|
||||||
#include "core/TodoMd.h"
|
#include "core/TodoMd.h"
|
||||||
#include <catch2/catch_test_macros.hpp>
|
#include <catch2/catch_test_macros.hpp>
|
||||||
|
|
|
@ -4,9 +4,9 @@
|
||||||
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
* The license can be found in the LICENSE file or at https://www.gnu.org/licenses/gpl-3.0.txt
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "core/BaseFileSource.h"
|
#include "core/BaseFilesource.h"
|
||||||
#include "core/Mirai.h"
|
#include "core/core.h"
|
||||||
#include "core/StdFileSource.h"
|
#include "core/StdFilesource.h"
|
||||||
#include "core/TaskItem.h"
|
#include "core/TaskItem.h"
|
||||||
#include "core/TodoMd.h"
|
#include "core/TodoMd.h"
|
||||||
#include <catch2/catch_test_macros.hpp>
|
#include <catch2/catch_test_macros.hpp>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue