You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Code/Editor/AssetImporter/UI/FilesAlreadyExistDialog.cpp

102 lines
3.0 KiB
C++

/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#include "EditorDefs.h"
#include "FilesAlreadyExistDialog.h"
// Qt
#include <QPushButton>
#include <QStyle>
AZ_PUSH_DISABLE_DLL_EXPORT_MEMBER_WARNING
#include <AssetImporter/UI/ui_FilesAlreadyExistDialog.h>
AZ_POP_DISABLE_DLL_EXPORT_MEMBER_WARNING
FilesAlreadyExistDialog::FilesAlreadyExistDialog(QString message ,int numberOfFiles, QWidget* parent)
: QDialog(parent)
, m_ui(new Ui::FilesAlreadyExistDialog)
{
m_ui->setupUi(this);
UpdateMessage(message);
InitializeButtons();
UpdateCheckBoxState(numberOfFiles);
}
FilesAlreadyExistDialog::~FilesAlreadyExistDialog()
{
}
void FilesAlreadyExistDialog::InitializeButtons()
{
m_ui->buttonBox->setContentsMargins(0, 0, 16, 16);
QPushButton* overwriteButton = m_ui->buttonBox->addButton(tr("Overwrite"), QDialogButtonBox::AcceptRole);
QPushButton* keepBothButton = m_ui->buttonBox->addButton(tr("Keep Both"), QDialogButtonBox::AcceptRole);
QPushButton* skipButton = m_ui->buttonBox->addButton(tr("Skip"), QDialogButtonBox::AcceptRole);
overwriteButton->setProperty("class", "Primary");
overwriteButton->setDefault(true);
keepBothButton->setProperty("class", "AssetImporterLargerButton");
keepBothButton->style()->unpolish(keepBothButton);
keepBothButton->style()->polish(keepBothButton);
keepBothButton->update();
skipButton->setProperty("class", "AssetImporterButton");
skipButton->style()->unpolish(skipButton);
skipButton->style()->polish(skipButton);
skipButton->update();
connect(overwriteButton, &QPushButton::clicked, this, &FilesAlreadyExistDialog::DoOverwrite);
connect(keepBothButton, &QPushButton::clicked, this, &FilesAlreadyExistDialog::DoKeepBoth);
connect(skipButton, &QPushButton::clicked, this, &FilesAlreadyExistDialog::DoSkipCurrentProcess);
}
void FilesAlreadyExistDialog::UpdateMessage(QString message)
{
m_ui->message->setText(message);
}
void FilesAlreadyExistDialog::DoSkipCurrentProcess()
{
QDialog::accept();
Q_EMIT SkipCurrentProcess();
}
void FilesAlreadyExistDialog::DoOverwrite()
{
QDialog::accept();
Q_EMIT OverWriteFiles();
}
void FilesAlreadyExistDialog::DoKeepBoth()
{
QDialog::accept();
Q_EMIT KeepBothFiles();
}
void FilesAlreadyExistDialog::DoApplyActionToAllFiles()
{
Q_EMIT ApplyActionToAllFiles(m_ui->applyToAllCheckBox->isChecked());
}
void FilesAlreadyExistDialog::UpdateCheckBoxState(int numberOfFiles)
{
m_ui->applyToAllCheckBox->setVisible((numberOfFiles > 1));
connect(m_ui->applyToAllCheckBox, &QCheckBox::stateChanged, this, &FilesAlreadyExistDialog::DoApplyActionToAllFiles);
}
void FilesAlreadyExistDialog::closeEvent([[maybe_unused]] QCloseEvent* ev)
{
QDialog::reject();
Q_EMIT CancelAllProcesses();
}
#include <AssetImporter/UI/moc_FilesAlreadyExistDialog.cpp>