summaryrefslogtreecommitdiff
path: root/src/plugins/android/splashscreenwidget.h
diff options
context:
space:
mode:
authorFabio Falsini <falsinsoft@gmail.com>2020-10-11 15:33:23 +0200
committerFabio Falsini <falsinsoft@gmail.com>2020-11-17 17:16:46 +0000
commit21b03918b7271a35789d4f21d717b3a076c17852 (patch)
tree2aafe5c64f6b1a0b4dc8c73291a7c2ad28d35313 /src/plugins/android/splashscreenwidget.h
parentab91e547da44d12954784533beb856daf2cfaef3 (diff)
downloadqt-creator-21b03918b7271a35789d4f21d717b3a076c17852.tar.gz
New method for show Android splashscreen
New method use theme for show splashscreen in the first phase (from when an app is launched to when Qt takes control of the surface) and in the second phase draw through Qt the same drawable object used for the theme. Change-Id: I4d76322a5640cb95f99f5605c5775051e6de7daf Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Diffstat (limited to 'src/plugins/android/splashscreenwidget.h')
-rw-r--r--src/plugins/android/splashscreenwidget.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/src/plugins/android/splashscreenwidget.h b/src/plugins/android/splashscreenwidget.h
new file mode 100644
index 0000000000..ef91f1b0c3
--- /dev/null
+++ b/src/plugins/android/splashscreenwidget.h
@@ -0,0 +1,97 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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.
+**
+****************************************************************************/
+
+#pragma once
+
+#include <QToolButton>
+
+namespace TextEditor { class TextEditorWidget; }
+
+QT_BEGIN_NAMESPACE
+class QLabel;
+class QColor;
+class QImage;
+QT_END_NAMESPACE
+
+namespace Android {
+namespace Internal {
+
+class SplashScreenWidget : public QWidget
+{
+ Q_OBJECT
+
+ class SplashScreenButton : public QToolButton
+ {
+ public:
+ explicit SplashScreenButton(SplashScreenWidget *parent);
+ private:
+ void paintEvent(QPaintEvent *event) override;
+ SplashScreenWidget *m_parentWidget;
+ };
+
+public:
+ explicit SplashScreenWidget(QWidget *parent);
+ SplashScreenWidget(QWidget *parent,
+ const QSize &size,
+ const QSize &screenSize,
+ const QString &title,
+ const QString &tooltip,
+ const QString &imagePath,
+ int scalingRatio, int maxScalingRatio,
+ TextEditor::TextEditorWidget *textEditorWidget = nullptr);
+
+ bool hasImage() const;
+ void clearImage();
+ void setBackgroundColor(const QColor &backgroundColor);
+ void showImageFullScreen(bool fullScreen);
+ void setImageFromPath(const QString &imagePath, bool resize = true);
+ void setImageFileName(const QString &imageFileName);
+ void loadImage();
+
+signals:
+ void imageChanged();
+
+private:
+ void selectImage();
+ void removeImage();
+ void setScaleWarningLabelVisible(bool visible);
+
+private:
+ TextEditor::TextEditorWidget *m_textEditorWidget = nullptr;
+ QLabel *m_scaleWarningLabel = nullptr;
+ SplashScreenButton *m_splashScreenButton = nullptr;
+ int m_scalingRatio, m_maxScalingRatio;
+ QColor m_backgroundColor = Qt::white;
+ QImage m_image;
+ QPoint m_imagePosition;
+ QString m_imagePath;
+ QString m_imageFileName;
+ QString m_imageSelectionText;
+ QSize m_screenSize;
+ bool m_showImageFullScreen = false;
+};
+
+} // namespace Internal
+} // namespace Android