FilesAlreadyExistDialog.cpp 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include "EditorDefs.h"
  9. #include "FilesAlreadyExistDialog.h"
  10. // Qt
  11. #include <QPushButton>
  12. #include <QStyle>
  13. AZ_PUSH_DISABLE_DLL_EXPORT_MEMBER_WARNING
  14. #include <AssetImporter/UI/ui_FilesAlreadyExistDialog.h>
  15. AZ_POP_DISABLE_DLL_EXPORT_MEMBER_WARNING
  16. FilesAlreadyExistDialog::FilesAlreadyExistDialog(QString message ,int numberOfFiles, QWidget* parent)
  17. : QDialog(parent)
  18. , m_ui(new Ui::FilesAlreadyExistDialog)
  19. {
  20. m_ui->setupUi(this);
  21. UpdateMessage(message);
  22. InitializeButtons();
  23. UpdateCheckBoxState(numberOfFiles);
  24. }
  25. FilesAlreadyExistDialog::~FilesAlreadyExistDialog()
  26. {
  27. }
  28. void FilesAlreadyExistDialog::InitializeButtons()
  29. {
  30. m_ui->buttonBox->setContentsMargins(0, 0, 16, 16);
  31. QPushButton* overwriteButton = m_ui->buttonBox->addButton(tr("Overwrite"), QDialogButtonBox::AcceptRole);
  32. QPushButton* keepBothButton = m_ui->buttonBox->addButton(tr("Keep Both"), QDialogButtonBox::AcceptRole);
  33. QPushButton* skipButton = m_ui->buttonBox->addButton(tr("Skip"), QDialogButtonBox::AcceptRole);
  34. overwriteButton->setProperty("class", "Primary");
  35. overwriteButton->setDefault(true);
  36. keepBothButton->setProperty("class", "AssetImporterLargerButton");
  37. keepBothButton->style()->unpolish(keepBothButton);
  38. keepBothButton->style()->polish(keepBothButton);
  39. keepBothButton->update();
  40. skipButton->setProperty("class", "AssetImporterButton");
  41. skipButton->style()->unpolish(skipButton);
  42. skipButton->style()->polish(skipButton);
  43. skipButton->update();
  44. connect(overwriteButton, &QPushButton::clicked, this, &FilesAlreadyExistDialog::DoOverwrite);
  45. connect(keepBothButton, &QPushButton::clicked, this, &FilesAlreadyExistDialog::DoKeepBoth);
  46. connect(skipButton, &QPushButton::clicked, this, &FilesAlreadyExistDialog::DoSkipCurrentProcess);
  47. }
  48. void FilesAlreadyExistDialog::UpdateMessage(QString message)
  49. {
  50. m_ui->message->setText(message);
  51. }
  52. void FilesAlreadyExistDialog::DoSkipCurrentProcess()
  53. {
  54. QDialog::accept();
  55. Q_EMIT SkipCurrentProcess();
  56. }
  57. void FilesAlreadyExistDialog::DoOverwrite()
  58. {
  59. QDialog::accept();
  60. Q_EMIT OverWriteFiles();
  61. }
  62. void FilesAlreadyExistDialog::DoKeepBoth()
  63. {
  64. QDialog::accept();
  65. Q_EMIT KeepBothFiles();
  66. }
  67. void FilesAlreadyExistDialog::DoApplyActionToAllFiles()
  68. {
  69. Q_EMIT ApplyActionToAllFiles(m_ui->applyToAllCheckBox->isChecked());
  70. }
  71. void FilesAlreadyExistDialog::UpdateCheckBoxState(int numberOfFiles)
  72. {
  73. m_ui->applyToAllCheckBox->setVisible((numberOfFiles > 1));
  74. connect(m_ui->applyToAllCheckBox, &QCheckBox::stateChanged, this, &FilesAlreadyExistDialog::DoApplyActionToAllFiles);
  75. }
  76. void FilesAlreadyExistDialog::closeEvent([[maybe_unused]] QCloseEvent* ev)
  77. {
  78. QDialog::reject();
  79. Q_EMIT CancelAllProcesses();
  80. }
  81. #include <AssetImporter/UI/moc_FilesAlreadyExistDialog.cpp>