[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/plasma/netbook/containments/netpanel
From: Aaron J. Seigo <aseigo () kde ! org>
Date: 2009-10-01 0:59:10
Message-ID: 1254358750.783408.25312.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1029905 by aseigo:
add a lock panel action
M +56 -2 panel.cpp
M +2 -0 panel.h
--- trunk/KDE/kdebase/workspace/plasma/netbook/containments/netpanel/panel.cpp #1029904:1029905
@@ -35,6 +35,7 @@
#include <QGraphicsLayout>
+#include <KAction>
#include <KDebug>
#include <KIcon>
#include <KDialog>
@@ -92,8 +93,25 @@
}
connect(c, SIGNAL(containmentAdded(Plasma::Containment *)),
this, SLOT(containmentAdded(Plasma::Containment *)));
+
+ KAction *lockAction = new KAction(this);
+ addAction("lock panel", lockAction);
+ lockAction->setText(i18n("Lock Panel"));
+ lockAction->setIcon(KIcon("object-locked"));
+ QObject::connect(lockAction, SIGNAL(triggered(bool)), this, SLOT(toggleImmutability()));
+ lockAction->setShortcut(KShortcut("alt+d, l"));
+ lockAction->setShortcutContext(Qt::ApplicationShortcut);
}
+void Panel::toggleImmutability()
+{
+ if (immutability() == Plasma::UserImmutable) {
+ setImmutability(Plasma::Mutable);
+ } else if (immutability() == Plasma::Mutable) {
+ setImmutability(Plasma::UserImmutable);
+ }
+}
+
void Panel::containmentAdded(Plasma::Containment *containment)
{
connect(containment, SIGNAL(toolBoxVisibilityChanged(bool)),
@@ -325,12 +343,48 @@
}
if (constraints & Plasma::ImmutableConstraint) {
- bool unlocked = immutability() == Plasma::Mutable;
+ updateBorders();
- updateBorders();
+ QAction *a = action("lock panel");
+ if (a) {
+ switch (immutability()) {
+ case Plasma::SystemImmutable:
+ a->setEnabled(false);
+ a->setVisible(false);
+ break;
+
+ case Plasma::UserImmutable:
+ a->setText(i18n("Unlock Panel"));
+ a->setEnabled(true);
+ a->setVisible(true);
+ break;
+
+ case Plasma::Mutable:
+ a->setText(i18n("Lock Panel"));
+ a->setEnabled(true);
+ a->setVisible(true);
+ break;
+ }
+ }
}
+
+ if (constraints & Plasma::StartupCompletedConstraint) {
+ delete action("remove");
+ }
}
+QList<QAction *> Panel::contextualActions()
+{
+ QList<QAction *> actions;
+
+ QAction *a = action("lock panel");
+ if (a) {
+ actions << a;
+ }
+
+ return actions;
+}
+
void Panel::updateConfigurationMode(bool config)
{
if (config && !m_appletOverlay) {
--- trunk/KDE/kdebase/workspace/plasma/netbook/containments/netpanel/panel.h #1029904:1029905
@@ -51,11 +51,13 @@
const QStyleOptionGraphicsItem *option,
const QRect &contentsRect);
void paintBackground(QPainter *painter, const QRect &contentsRect);
+ QList<QAction *> contextualActions();
protected:
void saveState(KConfigGroup &config) const;
private slots:
+ void toggleImmutability();
void themeUpdated();
void backgroundChanged();
void layoutApplet(Plasma::Applet* applet, const QPointF &pos);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic