diff options
Diffstat (limited to 'src/Authoring/Studio/Workspace/Dialogs.h')
-rw-r--r-- | src/Authoring/Studio/Workspace/Dialogs.h | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/src/Authoring/Studio/Workspace/Dialogs.h b/src/Authoring/Studio/Workspace/Dialogs.h new file mode 100644 index 00000000..012ce98f --- /dev/null +++ b/src/Authoring/Studio/Workspace/Dialogs.h @@ -0,0 +1,188 @@ +/**************************************************************************** +** +** Copyright (C) 1999-2001 NVIDIA Corporation. +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt 3D Studio. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//============================================================================= +// Prefix +//============================================================================= +#ifndef INCLUDED_DIALOGS_H +#define INCLUDED_DIALOGS_H 1 + +#pragma once + +//============================================================================= +// Includes +//============================================================================= +#include "UICFile.h" +#include "StudioObjectTypes.h" +#include "UICMessageBox.h" +//#include "MultilineEditDlg.h" +#include "UICFileTools.h" +#include "CColor.h" +#include <QMessageBox> + +//============================================================================= +// Forwards +//============================================================================= +class IDoc; +class CStudioApp; +class CControl; +class CDialogControl; +class IProgressCallback; + +class CProgressPalette; + +class CDialogs +{ +public: + enum ESavePromptResult { + CANCEL_OPERATION, + CONTINUE_NO_SAVE, + SAVE_FIRST, + }; + + CDialogs(bool inShowGUI = true); + virtual ~CDialogs(); + + void DisplayAssetDeleteFailed(); + void DisplayRefreshResourceFailed(const Q3DStudio::CString &inResourceName, + const Q3DStudio::CString &inDescription); + QString ConfirmRefreshModelFile(const QString &inOriginalPath); + + // This is not an appropriate place for these, but better + // in an inappropriate place than duplicated + static const char *GetDAEFileExtension(); + static const char *GetFbxFileExtension(); + // Null terminated list + static const char **GetImgFileExtensions(); + static const char *GetImportFileExtension(); + static const char *GetMeshFileExtension(); + static const char *GetLUAFileExtension(); + static const char *GetQmlFileExtension(); + static const char **GetFontFileExtensions(); + static const char **GetEffectFileExtensions(); + static const char **GetMaterialFileExtensions(); + static const char **GetSoundFileExtensions(); + static bool IsImageFileExtension(const char *inExt); + static bool IsFontFileExtension(const char *inExt); + static bool IsEffectFileExtension(const char *inExt); + static bool IsMaterialFileExtension(const char *inExt); + static bool IsSoundFileExtension(const char *inExt); + + static const wchar_t *GetWideDAEFileExtension(); + static const wchar_t *GetWideFbxFileExtension(); + static const wchar_t *GetWideImportFileExtension(); + static const wchar_t *GetWideMeshFileExtension(); + static const wchar_t *GetWideLUAFileExtension(); + static const wchar_t **GetWideFontFileExtensions(); + static const wchar_t **GetWideImgFileExtensions(); + static const wchar_t **GetWideEffectFileExtensions(); + static const wchar_t **GetWideMaterialFileExtensions(); + static const wchar_t **GetWideSoundFileExtensions(); + static bool IsImageFileExtension(const wchar_t *inExt); + static bool IsFontFileExtension(const wchar_t *inExt); + static bool IsEffectFileExtension(const wchar_t *inExt); + static bool IsMaterialFileExtension(const wchar_t *inExt); + static bool IsPathFileExtension(const wchar_t *inExt); + static bool IsPathBufferExtension(const wchar_t *inExt); + static bool IsSoundFileExtension(const wchar_t *inExt); + + CUICFile GetExportChoice(const Q3DStudio::CString &inExtension, + const Q3DStudio::CString &inDefaultName); + + std::pair<CUICFile, bool> GetSaveAsChoice(const Q3DStudio::CString &inDialogTitle = "", + bool inFilenameUntitled = false); + // Returns pair of file along with a boolean indicating the state of the create + // new directory checkbox. + std::pair<CUICFile, bool> + GetNewDocumentChoice(const Q3DStudio::CString &inInitialDirectory = Q3DStudio::CString()); + CUICFile GetFileOpenChoice(const Q3DStudio::CString &inInitialDirectory = Q3DStudio::CString()); + + void DisplayImportFailed(const QUrl &inURL, const QString &inDescription, + bool inWarningsOnly); + void DisplayLoadingPresentationFailed(const CUICFile &inPresentation, long inErrorIDS = -1); + void DisplaySavingPresentationFailed(); + void DisplaySaveReadOnlyFailed(const CUICFile &inSavedLocation); + CUICMessageBox::EMessageBoxReturn DisplayMessageBox(const Q3DStudio::CString &inTitle, + const Q3DStudio::CString &inText, + CUICMessageBox::EMessageBoxIcon inIcon, + bool inShowCancel); + int DisplayChoiceBox(const Q3DStudio::CString &inTitle, const Q3DStudio::CString &inText, + int inIcon); + void DisplayKnownErrorDialog(const Q3DStudio::CString &inErrorText); + + bool LocateFileReference(CUICFile &outFile, long inFileType); + bool LocateFolderReference(CUICFile &outFile); + bool BrowseForFolderDialog(CUICFile &outFile, Q3DStudio::CString inDefaultDir, + Q3DStudio::CString inDialogTitle); + + ESavePromptResult PromptForSave(); + bool PromptForKeyframeInterpolation(float &ioEaseIn, float &ioEaseOut); + + bool ConfirmRevert(); + + void DisplayProgressScreen(const Q3DStudio::CString &inActionText, + const Q3DStudio::CString &inFileName, + const Q3DStudio::CString &inWindowTitle); + void DestroyProgressScreen(); + + bool PromptObjectTimebarColor(CColor &ioColor); + void DisplayProfilingStatistics(); + /*void DisplayMultilineTextEdit(Q3DStudio::CString &ioText, + CMultilineEditDlg::INotification *inNotifiction = NULL);*/ + IProgressCallback *GetProgressScreen() const; + + void DisplayEnvironmentVariablesError(const Q3DStudio::CString &inErrorMessage); + + Q3DStudio::CString GetFilePathChoice(const Q3DStudio::CString &inFileExtensionFilter, + const Q3DStudio::CString &inDefault, + const Q3DStudio::CString *inDialogTitle = NULL); + void ResetSettings(const Q3DStudio::CString &inCurrentDocPath = ""); + + bool DisplayResetKeyframeValuesDlg(); + void DisplayPasteFailed(); + + static void DisplayGLVersionError(const Q3DStudio::CString &inGLVersion, + const Q3DStudio::CString &inMinVersion); + static void DisplayGLVersionWarning(const Q3DStudio::CString &inGLVersion, + const Q3DStudio::CString &inRecommendedVersion); + +protected: + QString CreateAllowedTypesString(long inFileTypeFilter, bool inForImport); + static void DisplayGLVersionDialog(const Q3DStudio::CString &inGLVersion, + const Q3DStudio::CString &inRecommendedVersion, + bool inError); + +#ifdef WIN32 + CProgressPalette *m_ProgressPalette; +#endif + bool m_ShowGUI; + + Q3DStudio::CString m_LastSaveFile; ///< Path to the file was previously saved +}; +#endif // INCLUDED_DIALOGS_H |