AssetListTabWidget.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. #pragma once
  9. #if !defined(Q_MOC_RUN)
  10. #include <source/ui/AssetBundlerTabWidget.h>
  11. #include <AzCore/std/smart_ptr/unique_ptr.h>
  12. #include <AzFramework/Platform/PlatformDefaults.h>
  13. #include <QDir>
  14. #include <QItemSelectionModel>
  15. #include <QModelIndex>
  16. #include <QSharedPointer>
  17. #include <QString>
  18. #include <QWidget>
  19. #endif
  20. namespace Ui
  21. {
  22. class AssetListTabWidget;
  23. }
  24. class QFileSystemModel;
  25. class QStringListModel;
  26. namespace AssetBundler
  27. {
  28. class GUIApplicationManager;
  29. class AssetListFileTableModel;
  30. class AssetListTableModel;
  31. class AssetListTabWidget
  32. : public AssetBundlerTabWidget
  33. {
  34. Q_OBJECT
  35. public:
  36. explicit AssetListTabWidget(QWidget* parent, GUIApplicationManager* guiApplicationManager);
  37. virtual ~AssetListTabWidget() {}
  38. //////////////////////////////////////////////////////////////////////////
  39. // AssetBundlerTabWidget overrides
  40. QString GetTabTitle() override { return tr("Asset Lists"); }
  41. QString GetFileTypeDisplayName() override { return tr("Asset List file"); }
  42. AssetBundlingFileType GetFileType() override { return AssetBundlingFileType::AssetListFileType; }
  43. bool HasUnsavedChanges() override { return false; };
  44. void Reload() override;
  45. bool SaveCurrentSelection() override { return true; };
  46. bool SaveAll() override { return true; };
  47. void SetModelDataSource() override;
  48. AzQtComponents::TableView* GetFileTableView() override;
  49. QModelIndex GetSelectedFileTableIndex() override;
  50. AssetBundlerAbstractFileTableModel* GetFileTableModel() override;
  51. void SetActiveProjectLabel(const QString& labelText) override;
  52. void ApplyConfig() override;
  53. void FileSelectionChanged(
  54. const QItemSelection& /*selected*/ = QItemSelection(),
  55. const QItemSelection& /*deselected*/ = QItemSelection()) override;
  56. //////////////////////////////////////////////////////////////////////////
  57. private:
  58. void OnGenerateBundleButtonPressed();
  59. QSharedPointer<Ui::AssetListTabWidget> m_ui;
  60. QSharedPointer<AssetListFileTableModel> m_fileTableModel;
  61. QModelIndex m_selectedFileTableIndex;
  62. QSharedPointer<AssetBundler::AssetBundlerFileTableFilterModel> m_assetListContentsFilterModel;
  63. QSharedPointer<AssetListTableModel> m_assetListContentsModel;
  64. };
  65. } // namespace AssetBundler