mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-30 10:33:54 -07:00
[VDS] Add prompt before overwriting existing files when converting to .cod (#5926)
* Add prompt before overwriting existing files. * Lint. --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
parent
207211facc
commit
cfbe59868b
1 changed files with 24 additions and 0 deletions
|
|
@ -12,6 +12,7 @@
|
||||||
#include <QDirIterator>
|
#include <QDirIterator>
|
||||||
#include <QHBoxLayout>
|
#include <QHBoxLayout>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
|
#include <QMessageBox>
|
||||||
|
|
||||||
DeckPreviewDeckTagsDisplayWidget::DeckPreviewDeckTagsDisplayWidget(QWidget *_parent, DeckList *_deckList)
|
DeckPreviewDeckTagsDisplayWidget::DeckPreviewDeckTagsDisplayWidget(QWidget *_parent, DeckList *_deckList)
|
||||||
: QWidget(_parent), deckList(nullptr)
|
: QWidget(_parent), deckList(nullptr)
|
||||||
|
|
@ -77,6 +78,21 @@ static QStringList getAllFiles(const QString &filePath)
|
||||||
return allFiles;
|
return allFiles;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool confirmOverwriteIfExists(QWidget *parent, const QString &filePath)
|
||||||
|
{
|
||||||
|
QFileInfo fileInfo(filePath);
|
||||||
|
QString newFileName = QDir::toNativeSeparators(fileInfo.path() + "/" + fileInfo.completeBaseName() + ".cod");
|
||||||
|
|
||||||
|
if (QFile::exists(newFileName)) {
|
||||||
|
QMessageBox::StandardButton reply =
|
||||||
|
QMessageBox::question(parent, QObject::tr("Overwrite Existing File?"),
|
||||||
|
QObject::tr("A .cod version of this deck already exists. Overwrite it?"),
|
||||||
|
QMessageBox::Yes | QMessageBox::No);
|
||||||
|
return reply == QMessageBox::Yes;
|
||||||
|
}
|
||||||
|
return true; // Safe to proceed
|
||||||
|
}
|
||||||
|
|
||||||
void DeckPreviewDeckTagsDisplayWidget::openTagEditDlg()
|
void DeckPreviewDeckTagsDisplayWidget::openTagEditDlg()
|
||||||
{
|
{
|
||||||
if (qobject_cast<DeckPreviewWidget *>(parentWidget())) {
|
if (qobject_cast<DeckPreviewWidget *>(parentWidget())) {
|
||||||
|
|
@ -91,6 +107,10 @@ void DeckPreviewDeckTagsDisplayWidget::openTagEditDlg()
|
||||||
// Retrieve saved preference if the prompt is disabled
|
// Retrieve saved preference if the prompt is disabled
|
||||||
if (!SettingsCache::instance().getVisualDeckStoragePromptForConversion()) {
|
if (!SettingsCache::instance().getVisualDeckStoragePromptForConversion()) {
|
||||||
if (SettingsCache::instance().getVisualDeckStorageAlwaysConvert()) {
|
if (SettingsCache::instance().getVisualDeckStorageAlwaysConvert()) {
|
||||||
|
|
||||||
|
if (!confirmOverwriteIfExists(this, deckPreviewWidget->filePath))
|
||||||
|
return;
|
||||||
|
|
||||||
deckPreviewWidget->deckLoader->convertToCockatriceFormat(deckPreviewWidget->filePath);
|
deckPreviewWidget->deckLoader->convertToCockatriceFormat(deckPreviewWidget->filePath);
|
||||||
deckPreviewWidget->filePath = deckPreviewWidget->deckLoader->getLastFileName();
|
deckPreviewWidget->filePath = deckPreviewWidget->deckLoader->getLastFileName();
|
||||||
deckPreviewWidget->refreshBannerCardText();
|
deckPreviewWidget->refreshBannerCardText();
|
||||||
|
|
@ -100,6 +120,10 @@ void DeckPreviewDeckTagsDisplayWidget::openTagEditDlg()
|
||||||
// Show the dialog to the user
|
// Show the dialog to the user
|
||||||
DialogConvertDeckToCodFormat conversionDialog(parentWidget());
|
DialogConvertDeckToCodFormat conversionDialog(parentWidget());
|
||||||
if (conversionDialog.exec() == QDialog::Accepted) {
|
if (conversionDialog.exec() == QDialog::Accepted) {
|
||||||
|
|
||||||
|
if (!confirmOverwriteIfExists(this, deckPreviewWidget->filePath))
|
||||||
|
return;
|
||||||
|
|
||||||
deckPreviewWidget->deckLoader->convertToCockatriceFormat(deckPreviewWidget->filePath);
|
deckPreviewWidget->deckLoader->convertToCockatriceFormat(deckPreviewWidget->filePath);
|
||||||
deckPreviewWidget->filePath = deckPreviewWidget->deckLoader->getLastFileName();
|
deckPreviewWidget->filePath = deckPreviewWidget->deckLoader->getLastFileName();
|
||||||
deckPreviewWidget->refreshBannerCardText();
|
deckPreviewWidget->refreshBannerCardText();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue