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/StartupLogoDialog.cpp

94 lines
2.7 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
*
*/
// Description : implementation file
#include "EditorDefs.h"
#include "StartupLogoDialog.h"
// Qt
#include <QPainter>
#include <QThread>
AZ_PUSH_DISABLE_DLL_EXPORT_MEMBER_WARNING
#include <ui_StartupLogoDialog.h>
AZ_POP_DISABLE_DLL_EXPORT_MEMBER_WARNING
/////////////////////////////////////////////////////////////////////////////
// CStartupLogoDialog dialog
CStartupLogoDialog* CStartupLogoDialog::s_pLogoWindow = 0;
CStartupLogoDialog::CStartupLogoDialog(QString versionText, QString richTextCopyrightNotice, QWidget* pParent /*=NULL*/)
: QWidget(pParent, Qt::Dialog | Qt::FramelessWindowHint)
, m_ui(new Ui::StartupLogoDialog)
{
m_ui->setupUi(this);
s_pLogoWindow = this;
m_backgroundImage = QPixmap(QStringLiteral(":/StartupLogoDialog/splashscreen_background_developer_preview.jpg"));
setFixedSize(QSize(600, 300));
// Prepare background image
QImage backgroundImage(QStringLiteral(":/StartupLogoDialog/splashscreen_background_developer_preview.jpg"));
m_backgroundImage = QPixmap::fromImage(backgroundImage.scaled(m_enforcedWidth, m_enforcedHeight, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
// Draw the Open 3D Engine logo from svg
m_ui->m_logo->load(QStringLiteral(":/StartupLogoDialog/o3de_logo.svg"));
m_ui->m_TransparentConfidential->setObjectName("copyrightNotice");
m_ui->m_TransparentConfidential->setTextFormat(Qt::RichText);
m_ui->m_TransparentConfidential->setText(richTextCopyrightNotice);
setWindowTitle(tr("Starting Open 3D Engine Editor"));
setStyleSheet( "CStartupLogoDialog > QLabel { background: transparent; color: 'white' }\
CStartupLogoDialog > QLabel#copyrightNotice { color: #AAAAAA; font-size: 9px; } ");
m_ui->m_TransparentVersion->setText(versionText);
}
CStartupLogoDialog::~CStartupLogoDialog()
{
s_pLogoWindow = 0;
}
void CStartupLogoDialog::SetText(const char* text)
{
if (s_pLogoWindow)
{
s_pLogoWindow->SetInfoText(text);
}
}
void CStartupLogoDialog::SetInfoText(const char* text)
{
m_ui->m_TransparentText->setText(text);
if (QThread::currentThread() == thread())
{
m_ui->m_TransparentText->repaint();
}
qApp->processEvents(QEventLoop::ExcludeUserInputEvents); // if you don't process events, repaint does not function correctly.
}
void CStartupLogoDialog::paintEvent(QPaintEvent*)
{
QPainter painter(this);
painter.drawPixmap(rect(), m_backgroundImage);
}
#include <moc_StartupLogoDialog.cpp>