Introduced showConfirmBox()

This commit is contained in:
Veloman Yunkan 2024-02-06 15:13:06 +04:00
parent c07838806b
commit 0f088697c6
2 changed files with 17 additions and 14 deletions

View File

@ -538,14 +538,8 @@ void ContentManager::eraseBook(const QString& id)
text += formatText(gt("perma-delete-files-text"));
}
text = text.replace("{{ZIM}}", QString::fromStdString(mp_library->getBookById(id).getTitle()));
KiwixConfirmBox *dialog = new KiwixConfirmBox(gt("delete-book"), text, false, mp_view);
dialog->show();
connect(dialog, &KiwixConfirmBox::yesClicked, [=]() {
showConfirmBox(gt("delete-book"), text, mp_view, [=]() {
reallyEraseBook(id, moveToTrash);
dialog->deleteLater();
});
connect(dialog, &KiwixConfirmBox::noClicked, [=]() {
dialog->deleteLater();
});
}
@ -587,15 +581,9 @@ void ContentManager::cancelBook(const QString& id, QModelIndex index)
{
auto text = gt("cancel-download-text");
text = text.replace("{{ZIM}}", QString::fromStdString(mp_library->getBookById(id).getTitle()));
KiwixConfirmBox *dialog = new KiwixConfirmBox(gt("cancel-download"), text, false, mp_view);
dialog->show();
connect(dialog, &KiwixConfirmBox::yesClicked, [=]() {
showConfirmBox(gt("cancel-download"), text, mp_view, [=]() {
cancelBook(id);
emit managerModel->cancelDownload(index);
dialog->deleteLater();
});
connect(dialog, &KiwixConfirmBox::noClicked, [=]() {
dialog->deleteLater();
});
}

View File

@ -29,4 +29,19 @@ private:
void showInfoBox(QString title, QString text, QWidget *parent = nullptr);
template<class YesAction>
void showConfirmBox(QString title, QString text, QWidget *parent,
YesAction yesAction)
{
KiwixConfirmBox *dialog = new KiwixConfirmBox(title, text, false, parent);
dialog->show();
QObject::connect(dialog, &KiwixConfirmBox::yesClicked, [=]() {
yesAction();
dialog->deleteLater();
});
QObject::connect(dialog, &KiwixConfirmBox::noClicked, [=]() {
dialog->deleteLater();
});
}
#endif // KIWIXCONFIRMBOX_H