Desktop: Support solid color
This commit is contained in:
parent
93b99bcf4b
commit
aa449f52ad
3 changed files with 54 additions and 17 deletions
|
@ -56,28 +56,45 @@ FolderViewDropArea {
|
||||||
id: settings
|
id: settings
|
||||||
}
|
}
|
||||||
|
|
||||||
Image {
|
Loader {
|
||||||
id: wallpaper
|
id: backgroundLoader
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
source: "file://" + settings.wallpaper
|
sourceComponent: settings.backgroundType === 0 ? wallpaper : background
|
||||||
sourceSize: Qt.size(width, height)
|
}
|
||||||
fillMode: Image.PreserveAspectCrop
|
|
||||||
clip: true
|
|
||||||
cache: false
|
|
||||||
|
|
||||||
ColorOverlay {
|
Component {
|
||||||
id: dimsWallpaper
|
id: wallpaper
|
||||||
anchors.fill: wallpaper
|
|
||||||
source: wallpaper
|
|
||||||
color: "#000000"
|
|
||||||
opacity: Meui.Theme.darkMode && settings.dimsWallpaper ? 0.4 : 0.0
|
|
||||||
|
|
||||||
Behavior on opacity {
|
Image {
|
||||||
NumberAnimation {
|
source: "file://" + settings.wallpaper
|
||||||
duration: 200
|
sourceSize: Qt.size(width, height)
|
||||||
|
fillMode: Image.PreserveAspectCrop
|
||||||
|
clip: true
|
||||||
|
cache: false
|
||||||
|
|
||||||
|
ColorOverlay {
|
||||||
|
id: dimsWallpaper
|
||||||
|
anchors.fill: parent
|
||||||
|
source: parent
|
||||||
|
color: "#000000"
|
||||||
|
opacity: Meui.Theme.darkMode && settings.dimsWallpaper ? 0.4 : 0.0
|
||||||
|
|
||||||
|
Behavior on opacity {
|
||||||
|
NumberAnimation {
|
||||||
|
duration: 200
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Component {
|
||||||
|
id: background
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors.fill: parent
|
||||||
|
color: settings.backgroundColor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,16 @@ bool DesktopSettings::dimsWallpaper() const
|
||||||
return m_interface.property("darkModeDimsWallpaer").toBool();
|
return m_interface.property("darkModeDimsWallpaer").toBool();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int DesktopSettings::backgroundType() const
|
||||||
|
{
|
||||||
|
return m_interface.property("backgroundType").toInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString DesktopSettings::backgroundColor() const
|
||||||
|
{
|
||||||
|
return m_interface.property("backgroundColor").toString();
|
||||||
|
}
|
||||||
|
|
||||||
void DesktopSettings::launch(const QString &command, const QStringList &args)
|
void DesktopSettings::launch(const QString &command, const QStringList &args)
|
||||||
{
|
{
|
||||||
QProcess process;
|
QProcess process;
|
||||||
|
@ -40,6 +50,8 @@ void DesktopSettings::init()
|
||||||
if (m_interface.isValid()) {
|
if (m_interface.isValid()) {
|
||||||
connect(&m_interface, SIGNAL(wallpaperChanged(QString)), this, SLOT(onWallpaperChanged(QString)));
|
connect(&m_interface, SIGNAL(wallpaperChanged(QString)), this, SLOT(onWallpaperChanged(QString)));
|
||||||
connect(&m_interface, SIGNAL(darkModeDimsWallpaerChanged()), this, SIGNAL(dimsWallpaperChanged()));
|
connect(&m_interface, SIGNAL(darkModeDimsWallpaerChanged()), this, SIGNAL(dimsWallpaperChanged()));
|
||||||
|
connect(&m_interface, SIGNAL(backgroundTypeChanged()), this, SIGNAL(backgroundTypeChanged()));
|
||||||
|
connect(&m_interface, SIGNAL(backgroundColorChanged()), this, SIGNAL(backgroundColorChanged()));
|
||||||
|
|
||||||
m_wallpaper = m_interface.property("wallpaper").toString();
|
m_wallpaper = m_interface.property("wallpaper").toString();
|
||||||
emit wallpaperChanged();
|
emit wallpaperChanged();
|
||||||
|
|
|
@ -10,17 +10,25 @@ class DesktopSettings : public QObject
|
||||||
Q_PROPERTY(QString wallpaper READ wallpaper NOTIFY wallpaperChanged)
|
Q_PROPERTY(QString wallpaper READ wallpaper NOTIFY wallpaperChanged)
|
||||||
Q_PROPERTY(bool dimsWallpaper READ dimsWallpaper NOTIFY dimsWallpaperChanged)
|
Q_PROPERTY(bool dimsWallpaper READ dimsWallpaper NOTIFY dimsWallpaperChanged)
|
||||||
|
|
||||||
|
Q_PROPERTY(int backgroundType READ backgroundType NOTIFY backgroundTypeChanged)
|
||||||
|
Q_PROPERTY(QString backgroundColor READ backgroundColor NOTIFY backgroundColorChanged)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit DesktopSettings(QObject *parent = nullptr);
|
explicit DesktopSettings(QObject *parent = nullptr);
|
||||||
|
|
||||||
QString wallpaper() const;
|
QString wallpaper() const;
|
||||||
bool dimsWallpaper() const;
|
bool dimsWallpaper() const;
|
||||||
|
|
||||||
|
int backgroundType() const;
|
||||||
|
QString backgroundColor() const;
|
||||||
|
|
||||||
Q_INVOKABLE void launch(const QString &command, const QStringList &args);
|
Q_INVOKABLE void launch(const QString &command, const QStringList &args);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void wallpaperChanged();
|
void wallpaperChanged();
|
||||||
void dimsWallpaperChanged();
|
void dimsWallpaperChanged();
|
||||||
|
void backgroundColorChanged();
|
||||||
|
void backgroundTypeChanged();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void init();
|
void init();
|
||||||
|
|
Loading…
Reference in a new issue