Replace 'edit source window' with popup

This commit is contained in:
Vyn 2025-06-24 08:35:38 +02:00
parent 129b30b9e7
commit 854152b395
Signed by: vyn
GPG key ID: E1B2BE34E7A971E7
13 changed files with 101 additions and 163 deletions

View file

@ -34,8 +34,7 @@
AppWindow::AppWindow(mirai::Mirai *miraiInstance)
: miraiInstance_(miraiInstance), addSourceWindow_(miraiInstance),
editSourceWindow_(miraiInstance), settingsWindow_(miraiInstance),
editEventWindow_(miraiInstance), view_(miraiInstance)
settingsWindow_(miraiInstance), editEventWindow_(miraiInstance), view_(miraiInstance)
{
sources_ = std::make_shared<slint::VectorModel<ui::Source>>();
days_ = std::make_shared<slint::VectorModel<ui::Day>>();
@ -105,6 +104,14 @@ void AppWindow::setupCallbacks()
return slint::SharedString(source->name());
});
models().on_get_source_path_from_id([&](int sourceId) {
auto source = miraiInstance_->getSourceById(sourceId);
assert(source);
mirai::MarkdownDataProvider *sourceProvider =
dynamic_cast<mirai::MarkdownDataProvider *>(source->dataProvider());
return slint::SharedString(sourceProvider->path());
});
miraiInstance_->onSourceAdded([&](mirai::Source *source) {
refreshModels();
});
@ -120,11 +127,11 @@ void AppWindow::setupCallbacks()
actions().on_open_add_source_window([&]() {
addSourceWindow_.open();
});
actions().on_open_edit_source_window([&](int sourceId) {
auto source = miraiInstance_->getSourceById(sourceId);
assert(source);
editSourceWindow_.open(source);
});
/*actions().on_open_edit_source_window([&](int sourceId) {*/
/*auto source = miraiInstance_->getSourceById(sourceId);*/
/*assert(source);*/
/*editSourceWindow_.open(source);*/
/*});*/
actions().on_open_add_event_window([&]() {
editEventWindow_.open();
});
@ -158,6 +165,10 @@ void AppWindow::setupCallbacks()
reloadTasks();
});
actions().on_edit_source([&](int sourceId, slint::SharedString name, slint::SharedString path) {
miraiInstance_->editSource(sourceId, std::string(name), std::string(path));
});
actions().on_delete_task_clicked([&](int sourceId, int taskId) {
auto source = miraiInstance_->getSourceById(sourceId);
assert(source);