/* * 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 * */ #pragma once #if !defined(Q_MOC_RUN) #include #include #include #include #include #include #include #include #include #include #endif namespace Ui { class MainWindow; } namespace AssetBundler { class GUIApplicationManager; class MainWindow : public QMainWindow , public AZ::Debug::TraceMessageBus::Handler { Q_OBJECT public: explicit MainWindow(AssetBundler::GUIApplicationManager* guiApplicationManager, QWidget* parent = 0); virtual ~MainWindow(); void Activate(); void ApplyConfig(); void WriteToLog(const AZStd::string& message, AzToolsFramework::Logging::LogLine::LogType logType); void WriteToLog(const QString& message, AzToolsFramework::Logging::LogLine::LogType logType); void WriteToLog(const char* message, AzToolsFramework::Logging::LogLine::LogType logType); void WriteToLog(const char* message, const char* window, AzToolsFramework::Logging::LogLine::LogType logType); ///////////////////////////////////////////////////////// // TraceMessageBus overrides bool OnPreError(const char* window, const char* fileName, int line, const char* func, const char* message) override; bool OnPreWarning(const char* window, const char* fileName, int line, const char* func, const char* message) override; bool OnPrintf(const char* window, const char* message) override; ///////////////////////////////////////////////////////// public Q_SLOTS: void ShowWindow(); protected: void closeEvent(QCloseEvent* event) override; private: QSharedPointer m_ui; // Tabs QSharedPointer m_assetListTab; QSharedPointer m_seedListTab; QSharedPointer m_rulesTab; QSharedPointer m_bundleListTab; enum TabIndex { Seeds, AssetLists, Rules, Bundles, MAX }; void OnSupportClicked(); // Log QSharedPointer m_logModel; void ShowLogContextMenu(const QPoint& pos); // Detecting Unsaved Changes QSharedPointer m_unsavedChangesMsgBox; bool HasUnsavedChanges(); void SaveCurrentSelection(); void SaveAll(); AssetBundler::GUIApplicationManager* m_guiApplicationManager = nullptr; }; } // namespace AssetBundler