Use lookandfeel for splash themes

Move the Breeze Splash screen over
Adapt SplashQML to use lookandfeel packages
wilder-5.14
Aleix Pol 12 years ago
parent da9348acdf
commit 6afd47aa7a
  1. 1
      ksplash/ksplashqml/CMakeLists.txt
  2. 9
      ksplash/ksplashqml/SplashWindow.cpp
  3. 37
      ksplash/ksplashqml/shellpluginloader.h
  4. 9
      ksplash/ksplashqml/themes/Breeze/Theme.rc
  5. 110
      ksplash/ksplashqml/themes/Breeze/main.qml
  6. 1
      ksplash/ksplashqml/themes/CMakeLists.txt
  7. 0
      lookandfeel/contents/splash/CMakeLists.txt
  8. 110
      lookandfeel/contents/splash/Splash.qml
  9. 0
      lookandfeel/contents/splash/images/background.png
  10. 0
      lookandfeel/contents/splash/images/kde.svgz

@ -15,6 +15,7 @@ target_link_libraries(ksplashqml
Qt5::Quick
Qt5::Widgets
Qt5::DBus
KF5::PlasmaQuick
)
install(TARGETS ksplashqml ${INSTALL_TARGETS_DEFAULT_ARGS})

@ -27,6 +27,7 @@
#include <QTimer>
#include <QStandardPaths>
#include <QSurfaceFormat>
#include <shellpluginloader.h>
SplashWindow::SplashWindow(bool testing, bool window)
: QQuickView(),
@ -85,10 +86,10 @@ void SplashWindow::setGeometry(const QRect& rect)
QQuickView::setGeometry(rect);
if (oldGeometryEmpty) {
QString themePath = QStandardPaths::locate(QStandardPaths::GenericDataLocation,
QStringLiteral("ksplash/Themes/") + QApplication::arguments().at(1),
QStandardPaths::LocateDirectory);
ShellPluginLoader::init();
Plasma::Package pkg = Plasma::PluginLoader::self()->loadPackage("Plasma/LookAndFeel");
pkg.setPath("org.kde.lookandfeel");
setSource(QUrl(themePath + QStringLiteral("/main.qml")));
setSource(QUrl::fromLocalFile(pkg.filePath("splashmainscript")));
}
}

@ -0,0 +1,37 @@
/*
* Copyright 2013 Marco Martin <mart@kde.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details
*
* You should have received a copy of the GNU General Public
* License along with this program; if not, write to the
* Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef SHELLPLUGINLOADER_H
#define SHELLPLUGINLOADER_H
#include <Plasma/PluginLoader>
class ShellPluginLoader : public Plasma::PluginLoader
{
public:
ShellPluginLoader();
~ShellPluginLoader();
static void init();
protected:
Plasma::Package internalLoadPackage(const QString &packageFormat, const QString &specialization);
};
#endif

@ -1,9 +0,0 @@
[KSplash Theme: Breeze]
Name = Breeze splash screen
Description = Swoosh
Version = 1.0
Author = David Edmundson <david edmundson at kde.org>
Homepage = http://www.kde.org
# Theme behaviour settings.
Engine = KSplashQML

@ -1,110 +0,0 @@
/*
* Copyright 2014 Marco Martin <mart@kde.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2,
* or (at your option) any later version, as published by the Free
* Software Foundation
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details
*
* You should have received a copy of the GNU General Public
* License along with this program; if not, write to the
* Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import QtQuick 2.1
Image {
id: root
source: "images/background.png"
property int stage
onStageChanged: {
if (stage == 1) {
introAnimation.running = true
}
}
Rectangle {
id: topRect
width: parent.width
height: (root.height / 3) - bottomRect.height - 2
y: root.height
color: "black"
opacity: 0.3
Image {
source: "images/kde.svgz"
anchors.centerIn: parent
}
}
Rectangle {
id: bottomRect
width: parent.width
y: -height
height: 50
color: "black"
opacity: 0.3
Rectangle {
radius: 5
border.color: "white"
color: "transparent"
anchors {
horizontalCenter: parent.horizontalCenter
top: parent.top
bottom: parent.bottom
margins: 12
}
width: height * 10
Rectangle {
radius: 3
anchors {
left: parent.left
top: parent.top
bottom: parent.bottom
margins: 2
}
width: ((parent.width - 4) / 5) * (stage - 1)
Behavior on width {
PropertyAnimation {
duration: 250
easing.type: Easing.InOutQuad
}
}
}
}
}
SequentialAnimation {
id: introAnimation
running: false
ParallelAnimation {
PropertyAnimation {
property: "y"
target: topRect
to: root.height / 3
duration: 1000
easing.type: Easing.InOutBack
easing.overshoot: 1.0
}
PropertyAnimation {
property: "y"
target: bottomRect
to: 2 * (root.height / 3) - bottomRect.height
duration: 1000
easing.type: Easing.InOutBack
easing.overshoot: 1.0
}
}
}
}

@ -1,3 +1,2 @@
add_subdirectory(Minimalistic)
add_subdirectory(Classic)
add_subdirectory(Breeze)

@ -0,0 +1,110 @@
/*
* Copyright 2014 Marco Martin <mart@kde.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2,
* or (at your option) any later version, as published by the Free
* Software Foundation
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details
*
* You should have received a copy of the GNU General Public
* License along with this program; if not, write to the
* Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import QtQuick 2.1
Image {
id: root
source: "images/background.png"
property int stage
onStageChanged: {
if (stage == 1) {
introAnimation.running = true
}
}
Rectangle {
id: topRect
width: parent.width
height: (root.height / 3) - bottomRect.height - 2
y: root.height
color: "black"
opacity: 0.3
Image {
source: "images/kde.svgz"
anchors.centerIn: parent
}
}
Rectangle {
id: bottomRect
width: parent.width
y: -height
height: 50
color: "black"
opacity: 0.3
Rectangle {
radius: 5
border.color: "white"
color: "transparent"
anchors {
horizontalCenter: parent.horizontalCenter
top: parent.top
bottom: parent.bottom
margins: 12
}
width: height * 10
Rectangle {
radius: 3
anchors {
left: parent.left
top: parent.top
bottom: parent.bottom
margins: 2
}
width: ((parent.width - 4) / 5) * (stage - 1)
Behavior on width {
PropertyAnimation {
duration: 250
easing.type: Easing.InOutQuad
}
}
}
}
}
SequentialAnimation {
id: introAnimation
running: false
ParallelAnimation {
PropertyAnimation {
property: "y"
target: topRect
to: root.height / 3
duration: 1000
easing.type: Easing.InOutBack
easing.overshoot: 1.0
}
PropertyAnimation {
property: "y"
target: bottomRect
to: 2 * (root.height / 3) - bottomRect.height
duration: 1000
easing.type: Easing.InOutBack
easing.overshoot: 1.0
}
}
}
}

Before

Width:  |  Height:  |  Size: 1.9 MiB

After

Width:  |  Height:  |  Size: 1.9 MiB

Loading…
Cancel
Save