From dee7a6fa42a24df1a4cbe838deca074a7711082b Mon Sep 17 00:00:00 2001 From: Vyn Date: Tue, 15 Oct 2024 16:51:05 +0200 Subject: [PATCH] Add namespace (ui::) for generated C++ Slint code --- CMakeLists.txt | 1 + src/UiState.cpp | 80 ++++++++++++++++++++++++------------------------- src/UiState.h | 8 ++--- src/Utils.cpp | 10 +++---- src/Utils.h | 10 +++---- 5 files changed, 55 insertions(+), 54 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 168d27f..772d76e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,6 +44,7 @@ target_link_libraries(mirai PRIVATE mirai-core) slint_target_sources( mirai ui/appwindow.slint + NAMESPACE ui LIBRARY_PATHS vynui=${CMAKE_CURRENT_SOURCE_DIR}/external/slint-vynui/index.slint ) diff --git a/src/UiState.cpp b/src/UiState.cpp index 641484c..b346b54 100644 --- a/src/UiState.cpp +++ b/src/UiState.cpp @@ -34,18 +34,18 @@ UiState::UiState(mirai::Mirai *miraiInstance) : miraiInstance_(miraiInstance), view_(miraiInstance) { - sources_ = std::make_shared>(); - days_ = std::make_shared>(); - unscheduledTasks_ = std::make_shared>(); + sources_ = std::make_shared>(); + days_ = std::make_shared>(); + unscheduledTasks_ = std::make_shared>(); tags_ = std::make_shared>(); - auto sourcesNames = std::make_shared>( + auto sourcesNames = std::make_shared>( sources_, - [&](const Source &a) { + [&](const ui::Source &a) { return a.name; } ); - mainWindow_->global().set_sources(sourcesNames); + mainWindow_->global().set_sources(sourcesNames); view_.setAllSources(); view_.update(); @@ -56,7 +56,7 @@ UiState::UiState(mirai::Mirai *miraiInstance) : miraiInstance_(miraiInstance), v setupCallbacks(); } -std::optional stringToDate(const std::string &dateStr) +std::optional stringToDate(const std::string &dateStr) { using std::operator""sv; @@ -74,12 +74,12 @@ std::optional stringToDate(const std::string &dateStr) auto year = dateSplit[0]; auto month = dateSplit[1]; auto day = dateSplit[2]; - return Date{.year = year, .month = month, .day = day}; + return ui::Date{.year = year, .month = month, .day = day}; } void UiState::setupUtilsCallbacks() { - mainWindow_->global().on_format_date([&](const Date &date) { + mainWindow_->global().on_format_date([&](const ui::Date &date) { std::chrono::year_month_day chronoDate{ std::chrono::year(date.year), std::chrono::month(date.month), @@ -91,7 +91,7 @@ void UiState::setupUtilsCallbacks() void UiState::setupCallbacks() { - mainWindow_->global().on_task_clicked([&](int sourceId, int taskId) { + mainWindow_->global().on_task_clicked([&](int sourceId, int taskId) { auto source = miraiInstance_->getSourceById(sourceId); assert(source); auto task = source->getTaskById(taskId); @@ -101,7 +101,7 @@ void UiState::setupCallbacks() miraiInstance_->save(); }); - mainWindow_->global().on_source_clicked([&](int index) { + mainWindow_->global().on_source_clicked([&](int index) { // index with value -1 is equal to no selection, aka "All" if (index == -1) { view_.setAllSources(); @@ -110,13 +110,13 @@ void UiState::setupCallbacks() const mirai::Source *source = miraiInstance_->getSourceById(index); view_.addSource(*source); } - mainWindow_->global().set_default_source_index(index == -1 ? 0 : index); + mainWindow_->global().set_default_source_index(index == -1 ? 0 : index); view_.update(); reloadSources(); reloadTasks(); }); - mainWindow_->global().on_delete_task_clicked([&](int sourceId, int taskId) { + mainWindow_->global().on_delete_task_clicked([&](int sourceId, int taskId) { auto source = miraiInstance_->getSourceById(sourceId); assert(source); auto task = source->getTaskById(taskId); @@ -127,17 +127,17 @@ void UiState::setupCallbacks() reloadTasks(); }); - mainWindow_->global().on_toggle_show_completed_tasks([&] { + mainWindow_->global().on_toggle_show_completed_tasks([&] { view_.hideCompletedTasks(!view_.shouldHideCompletedTasks()); view_.update(); reloadTasks(); }); - mainWindow_->global().set_sources_selected(sources_); - mainWindow_->global().set_tags(tags_); - mainWindow_->global().set_days(days_); + mainWindow_->global().set_sources_selected(sources_); + mainWindow_->global().set_tags(tags_); + mainWindow_->global().set_days(days_); - mainWindow_->global().on_save_task([&](SaveTaskData newTaskData) { + mainWindow_->global().on_save_task([&](ui::SaveTaskData newTaskData) { auto source = miraiInstance_->getSourceById(newTaskData.sourceId); assert(source); auto task = source->getTaskById(newTaskData.id); @@ -155,7 +155,7 @@ void UiState::setupCallbacks() reloadTasks(); }); - mainWindow_->global().on_create_task([&](NewTaskData newTaskData) { + mainWindow_->global().on_create_task([&](ui::NewTaskData newTaskData) { std::optional date = std::nullopt; if (newTaskData.date.year != 0) { date = SlintDateToMiraiDate(newTaskData.date); @@ -178,7 +178,7 @@ void UiState::setupCallbacks() reloadTasks(); }); - mainWindow_->global().on_delete_event_clicked([&](int sourceId, int eventId) { + mainWindow_->global().on_delete_event_clicked([&](int sourceId, int eventId) { auto source = miraiInstance_->getSourceById(sourceId); assert(source); auto event = source->getEventById(eventId); @@ -189,8 +189,8 @@ void UiState::setupCallbacks() reloadTasks(); }); - mainWindow_->global().on_create_event([&](NewEventParams newEventParams) { - const Date &date = newEventParams.date; + mainWindow_->global().on_create_event([&](ui::NewEventParams newEventParams) { + const ui::Date &date = newEventParams.date; const std::string dateStr = SlintDateToStdString(date); auto source = miraiInstance_->getSourceById(newEventParams.sourceId); @@ -205,8 +205,8 @@ void UiState::setupCallbacks() reloadTasks(); }); - mainWindow_->global().on_save_event([&](SaveEventParams newEventParams) { - const Date &date = newEventParams.date; + mainWindow_->global().on_save_event([&](ui::SaveEventParams newEventParams) { + const ui::Date &date = newEventParams.date; const std::string dateStr = SlintDateToStdString(date); auto source = miraiInstance_->getSourceById(newEventParams.sourceId); assert(source); @@ -243,24 +243,24 @@ void UiState::reloadTasks() } auto todayDate = mirai::Date(std::chrono::system_clock::now()); auto dates = view_.getDates(); - auto slintDays = std::make_shared>(); + auto slintDays = std::make_shared>(); for (int dayIndex = 0; dayIndex < dates.size(); ++dayIndex) { auto ¤tDate = dates.at(dayIndex); - auto slintEvents = std::make_shared>(); - auto slintDayTasks = std::make_shared>(); + auto slintEvents = std::make_shared>(); + auto slintDayTasks = std::make_shared>(); auto relativeDaysDiff = std::chrono::duration_cast( std::chrono::sys_days(currentDate.toStdChrono()) - std::chrono::sys_days(todayDate.toStdChrono()) ) .count(); - slintDays->push_back( - Day{.date = MiraiDateToSlintDate(currentDate), - .events = slintEvents, - .tasks = slintDayTasks, - .isLate = currentDate < todayDate, - .isToday = currentDate == todayDate, - .relativeDaysDiff = static_cast(relativeDaysDiff)} - ); + slintDays->push_back(ui::Day{ + .date = MiraiDateToSlintDate(currentDate), + .events = slintEvents, + .tasks = slintDayTasks, + .isLate = currentDate < todayDate, + .isToday = currentDate == todayDate, + .relativeDaysDiff = static_cast(relativeDaysDiff) + }); // Day's tasks const std::vector tasksForDate = view_.getTasksForDate(currentDate); for (int taskIndex = 0; taskIndex < tasksForDate.size(); ++taskIndex) { @@ -277,8 +277,8 @@ void UiState::reloadTasks() const std::vector eventsForDate = view_.getEventsForDate(currentDate); for (int eventIndex = 0; eventIndex < eventsForDate.size(); ++eventIndex) { auto ¤tEvent = eventsForDate.at(eventIndex); - auto slintTasks = std::make_shared>(); - slintEvents->push_back(Event{ + auto slintTasks = std::make_shared>(); + slintEvents->push_back(ui::Event{ .sourceId = currentEvent.sourceId(), .id = currentEvent.id(), .title = slint::SharedString(currentEvent.title()), @@ -299,7 +299,7 @@ void UiState::reloadTasks() } } days_ = slintDays; - mainWindow_->global().set_days(days_); + mainWindow_->global().set_days(days_); auto unscheduledTasksView = view_.getUnscheduledTasks(); unscheduledTasks_->clear(); @@ -312,7 +312,7 @@ void UiState::reloadTasks() .checked = task.checked(), }); } - mainWindow_->global().set_unscheduled_tasks(unscheduledTasks_); + mainWindow_->global().set_unscheduled_tasks(unscheduledTasks_); } void UiState::reloadSources() @@ -326,7 +326,7 @@ void UiState::reloadSources() .selected = isSourceSelected && !noSourceSelected} ); } - mainWindow_->global().set_no_source_selected(noSourceSelected); + mainWindow_->global().set_no_source_selected(noSourceSelected); } void UiState::run() diff --git a/src/UiState.h b/src/UiState.h index 6d336bc..c439af6 100644 --- a/src/UiState.h +++ b/src/UiState.h @@ -26,12 +26,12 @@ class UiState void setupCallbacks(); void setupUtilsCallbacks(); - std::shared_ptr> sources_; + std::shared_ptr> sources_; std::shared_ptr> tags_; - std::shared_ptr> days_; - std::shared_ptr> unscheduledTasks_; + std::shared_ptr> days_; + std::shared_ptr> unscheduledTasks_; - slint::ComponentHandle mainWindow_ = AppWindow::create(); + slint::ComponentHandle mainWindow_ = ui::AppWindow::create(); mirai::Mirai *miraiInstance_; mirai::View view_; diff --git a/src/Utils.cpp b/src/Utils.cpp index a641f14..58b2e3e 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -14,20 +14,20 @@ std::string formatZeroPadding(const int number) return std::to_string(number); } -std::string SlintDateToStdString(const Date &date) +std::string SlintDateToStdString(const ui::Date &date) { return std::to_string(date.year) + "-" + formatZeroPadding(date.month) + "-" + formatZeroPadding(date.day); } -mirai::Date SlintDateToMiraiDate(const Date &date) +mirai::Date SlintDateToMiraiDate(const ui::Date &date) { return mirai::Date( date.year, static_cast(date.month), static_cast(date.day) ); } -Date MiraiDateToSlintDate(const mirai::Date &date) +ui::Date MiraiDateToSlintDate(const mirai::Date &date) { return { .year = date.year, @@ -36,12 +36,12 @@ Date MiraiDateToSlintDate(const mirai::Date &date) }; } -Time MiraiTimeToSlintTime(const mirai::Time &time) +ui::Time MiraiTimeToSlintTime(const mirai::Time &time) { return {.hour = time.hour, .minute = time.minute, .second = 0}; } -mirai::Time SlintTimeToMiraiTime(const Time &time) +mirai::Time SlintTimeToMiraiTime(const ui::Time &time) { return {.hour = time.hour, .minute = time.minute}; } diff --git a/src/Utils.h b/src/Utils.h index 6912744..0595f2e 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -11,8 +11,8 @@ #include std::string formatZeroPadding(const int number); -std::string SlintDateToStdString(const Date &date); -mirai::Date SlintDateToMiraiDate(const Date &date); -Date MiraiDateToSlintDate(const mirai::Date &date); -Time MiraiTimeToSlintTime(const mirai::Time &time); -mirai::Time SlintTimeToMiraiTime(const Time &time); +std::string SlintDateToStdString(const ui::Date &date); +mirai::Date SlintDateToMiraiDate(const ui::Date &date); +ui::Date MiraiDateToSlintDate(const mirai::Date &date); +ui::Time MiraiTimeToSlintTime(const mirai::Time &time); +mirai::Time SlintTimeToMiraiTime(const ui::Time &time);