/* * 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 ////////////////////////////////////////////////////////////////////////// // CCheckOutDialog dialog #if !defined(Q_MOC_RUN) #include #endif namespace Ui { class CheckOutDialog; } class CCheckOutDialog : public QDialog { Q_OBJECT public: // Checkout dialog result. enum EResult { CHECKOUT = QDialog::Accepted, OVERWRITE, CANCEL = QDialog::Rejected }; CCheckOutDialog(const QString& file, QWidget* pParent = nullptr); // standard constructor virtual ~CCheckOutDialog(); // Dialog Data void OnInitDialog(); // Enable functionality For All. In the end call with false to return it in init state. // Returns previous enable state static bool EnableForAll(bool isEnable); static bool IsForAll() { return InstanceIsForAll(); } static int LastResult() { return m_lastResult; } protected: void OnBnClickedCancel(); void OnBnClickedCheckout(); void OnBnClickedOverwrite(); private: static bool& InstanceEnableForAll(); static bool& InstanceIsForAll(); void HandleResult(int result); QString m_file; QScopedPointer m_ui; static int m_lastResult; }; ////////////////////////////////////////////////////////////////////////// class CAutoCheckOutDialogEnableForAll { public: CAutoCheckOutDialogEnableForAll() { m_bPrevState = CCheckOutDialog::EnableForAll(true); } ~CAutoCheckOutDialogEnableForAll() { CCheckOutDialog::EnableForAll(m_bPrevState); } private: bool m_bPrevState; };