a very primitive dashboard
right now we have a single view, that gets brought to front and the wallpaper made translucent. probably it will eventually need splitting the walppaper and the widgets in two separate views, but needs a more complex logic
This commit is contained in:
parent
f654bf31eb
commit
5c25b8675a
@ -81,6 +81,33 @@ void DesktopView::setFillScreen(bool fillScreen)
|
||||
emit fillScreenChanged();
|
||||
}
|
||||
|
||||
void DesktopView::setDashboardShown(bool shown)
|
||||
{
|
||||
if (shown) {
|
||||
if (m_stayBehind) {
|
||||
KWindowSystem::setType(winId(), NET::Normal);
|
||||
}
|
||||
raise();
|
||||
KWindowSystem::raiseWindow(winId());
|
||||
|
||||
QObject *wpGraphicObject = containment()->property("wallpaperGraphicsObject").value<QObject *>();
|
||||
if (wpGraphicObject) {
|
||||
wpGraphicObject->setProperty("opacity", 0.3);
|
||||
}
|
||||
} else {
|
||||
if (m_stayBehind) {
|
||||
KWindowSystem::setType(winId(), NET::Desktop);
|
||||
}
|
||||
lower();
|
||||
KWindowSystem::lowerWindow(winId());
|
||||
|
||||
QObject *wpGraphicObject = containment()->property("wallpaperGraphicsObject").value<QObject *>();
|
||||
if (wpGraphicObject) {
|
||||
wpGraphicObject->setProperty("opacity", 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
void DesktopView::showConfigurationInterface(Plasma::Applet *applet)
|
||||
{
|
||||
|
@ -42,6 +42,8 @@ public:
|
||||
bool fillScreen() const;
|
||||
void setFillScreen(bool fillScreen);
|
||||
|
||||
void setDashboardShown(bool shown);
|
||||
|
||||
protected Q_SLOTS:
|
||||
/**
|
||||
* It will be called when the configuration is requested
|
||||
|
@ -24,7 +24,7 @@ import org.kde.plasma.core 2.0 as PlasmaCore
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
color: "black"
|
||||
color: Qt.rgba(0, 0, 0, 0.2)
|
||||
width: 1024
|
||||
height: 768
|
||||
|
||||
|
@ -98,9 +98,10 @@ ShellCorona::ShellCorona(QObject *parent)
|
||||
|
||||
QAction *dashboardAction = actions()->add<QAction>("show dashboard");
|
||||
QObject::connect(dashboardAction, &QAction::triggered,
|
||||
this, &ShellCorona::toggleDashboard);
|
||||
this, &ShellCorona::setDashboardShown);
|
||||
dashboardAction->setText(i18n("Show Dashboard"));
|
||||
dashboardAction->setAutoRepeat(true);
|
||||
dashboardAction->setCheckable(true);
|
||||
dashboardAction->setIcon(QIcon::fromTheme("dashboard-show"));
|
||||
dashboardAction->setData(Plasma::Types::ControlAction);
|
||||
dashboardAction->setShortcut(QKeySequence("ctrl+f12"));
|
||||
@ -428,9 +429,18 @@ void ShellCorona::syncAppConfig()
|
||||
applicationConfig()->sync();
|
||||
}
|
||||
|
||||
void ShellCorona::toggleDashboard()
|
||||
void ShellCorona::setDashboardShown(bool show)
|
||||
{
|
||||
qDebug() << "TODO: Toggling dashboard view";
|
||||
|
||||
QAction *dashboardAction = actions()->action("show dashboard");
|
||||
|
||||
if (dashboardAction) {
|
||||
dashboardAction->setText(show ? i18n("Hide Dashboard") : i18n("Show Dashboard"));
|
||||
}
|
||||
foreach (DesktopView *view, d->views) {
|
||||
view->setDashboardShown(show);
|
||||
}
|
||||
}
|
||||
|
||||
void ShellCorona::printScriptError(const QString &error)
|
||||
|
@ -120,7 +120,7 @@ private Q_SLOTS:
|
||||
void handleContainmentAdded(Plasma::Containment *c);
|
||||
void showWidgetExplorer();
|
||||
void syncAppConfig();
|
||||
void toggleDashboard();
|
||||
void setDashboardShown(bool show);
|
||||
|
||||
private:
|
||||
class Private;
|
||||
|
Loading…
x
Reference in New Issue
Block a user