moving document related code from AtomToolsMainWindow to AtomToolsDocumentMainWindow

adding virtual function stubs to customize actions

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
This commit is contained in:
Guthrie Adams
2021-08-22 18:02:22 -05:00
parent 9449b52011
commit 62a5c90616
4 changed files with 332 additions and 319 deletions
@@ -12,6 +12,7 @@
#include <AtomToolsFramework/Document/AtomToolsDocumentNotificationBus.h>
#include <AtomToolsFramework/Window/AtomToolsMainWindow.h>
#include <AzCore/Memory/SystemAllocator.h>
#include <AzQtComponents/Components/Widgets/TabWidget.h>
#endif
namespace AtomToolsFramework
@@ -30,7 +31,35 @@ namespace AtomToolsFramework
AtomToolsDocumentMainWindow(QWidget* parent = 0);
~AtomToolsDocumentMainWindow();
private:
protected:
void AddDocumentMenus();
void AddDocumentTabBar();
QString GetDocumentPath(const AZ::Uuid& documentId) const;
AZ::Uuid GetDocumentIdFromTab(const int tabIndex) const;
void AddTabForDocumentId(
const AZ::Uuid& documentId,
const AZStd::string& label,
const AZStd::string& toolTip);
void RemoveTabForDocumentId(const AZ::Uuid& documentId);
void UpdateTabForDocumentId(
const AZ::Uuid& documentId, const AZStd::string& label, const AZStd::string& toolTip, bool isModified);
void SelectPreviousTab();
void SelectNextTab();
virtual void OpenTabContextMenu() const;
virtual bool GetCreateFileInfo(AZStd::string& openPath, AZStd::string& savePath) const;
virtual bool GetOpenFileInfo(AZStd::string& openPath) const;
virtual QWidget* CreateViewForDocumemt(const AZ::Uuid& documentId) const;
virtual void OpenSettings() const;
virtual void OpenHelp() const;
virtual void OpenAbout() const;
// AtomToolsDocumentNotificationBus::Handler overrides...
void OnDocumentOpened(const AZ::Uuid& documentId) override;
@@ -39,13 +68,6 @@ namespace AtomToolsFramework
void OnDocumentUndoStateChanged(const AZ::Uuid& documentId) override;
void OnDocumentSaved(const AZ::Uuid& documentId) override;
void CreateMenu() override;
void CreateTabBar() override;
QString GetDocumentPath(const AZ::Uuid& documentId) const;
void OpenTabContextMenu() override;
void closeEvent(QCloseEvent* closeEvent) override;
QMenu* m_menuFile = {};
@@ -73,5 +95,6 @@ namespace AtomToolsFramework
QMenu* m_menuHelp = {};
QAction* m_actionHelp = {};
QAction* m_actionAbout = {};
AzQtComponents::TabWidget* m_tabWidget = {};
};
} // namespace AtomToolsFramework
@@ -7,18 +7,14 @@
*/
#pragma once
#include <AtomToolsFramework/Window/AtomToolsMainWindowRequestBus.h>
#include <AzCore/Memory/SystemAllocator.h>
#include <AzQtComponents/Components/DockMainWindow.h>
#include <AzQtComponents/Components/FancyDocking.h>
#include <AzQtComponents/Components/StyledDockWidget.h>
#include <AzQtComponents/Components/Widgets/TabWidget.h>
#include <QLabel>
#include <QMenuBar>
#include <QToolBar>
namespace AtomToolsFramework
{
@@ -38,26 +34,11 @@ namespace AtomToolsFramework
bool IsDockWidgetVisible(const AZStd::string& name) const override;
AZStd::vector<AZStd::string> GetDockWidgetNames() const override;
virtual void CreateMenu();
virtual void CreateTabBar();
virtual void AddTabForDocumentId(
const AZ::Uuid& documentId, const AZStd::string& label, const AZStd::string& toolTip, AZStd::function<QWidget*()> widgetCreator);
virtual void RemoveTabForDocumentId(const AZ::Uuid& documentId);
virtual void UpdateTabForDocumentId(
const AZ::Uuid& documentId, const AZStd::string& label, const AZStd::string& toolTip, bool isModified);
virtual AZ::Uuid GetDocumentIdFromTab(const int tabIndex) const;
virtual void OpenTabContextMenu();
virtual void SelectPreviousTab();
virtual void SelectNextTab();
void SetStatusMessage(const QString& message);
void SetStatusWarning(const QString& message);
void SetStatusError(const QString& message);
AzQtComponents::FancyDocking* m_advancedDockManager = nullptr;
AzQtComponents::TabWidget* m_tabWidget = nullptr;
QLabel* m_statusMessage = nullptr;
AZStd::unordered_map<AZStd::string, AzQtComponents::StyledDockWidget*> m_dockWidgets;