You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Code/Editor/CheckOutDialog.h

84 lines
1.8 KiB
C++

/*
* 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 <QDialog>
#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<Ui::CheckOutDialog> m_ui;
static int m_lastResult;
};
//////////////////////////////////////////////////////////////////////////
class CAutoCheckOutDialogEnableForAll
{
public:
CAutoCheckOutDialogEnableForAll()
{
m_bPrevState = CCheckOutDialog::EnableForAll(true);
}
~CAutoCheckOutDialogEnableForAll()
{
CCheckOutDialog::EnableForAll(m_bPrevState);
}
private:
bool m_bPrevState;
};