SVN commit 862081 by sebas:

Use an extender.

I'm still not getting the popup to pop up, out of ideas for now.
Maybe someone else can have a look, I'm kind of stuck.

CCMAIL:plasma-devel@kde.org


 M  +25 -3     battery.cpp  
 M  +2 -0      battery.h  


--- trunk/KDE/kdebase/workspace/plasma/applets/battery/battery.cpp 
#862080:862081
@@ -40,6 +40,8 @@
 #include <plasma/svg.h>
 #include <plasma/theme.h>
 #include <plasma/animator.h>
+#include <plasma/extender.h>
+#include <plasma/extenderitem.h>
 #include <plasma/popupapplet.h>
 #include <plasma/widgets/label.h>
 #include <plasma/widgets/slider.h>
@@ -61,7 +63,7 @@
       m_numOfBattery(0)
 {
     kDebug() << "Loading applet battery";
-    setAcceptsHoverEvents(true);
+    //setAcceptsHoverEvents(true);
     setHasConfigurationInterface(true);
     setPopupIcon(QIcon());
     resize(128, 128);
@@ -72,6 +74,10 @@
 
 void Battery::init()
 {
+    new Plasma::Extender(this);
+    extender()->setEmptyExtenderMessage(i18n("no running jobs..."));
+    extender()->setSizePolicy(QSizePolicy::MinimumExpanding, 
QSizePolicy::Fixed);
+
     KConfigGroup cg = config();
     m_showBatteryString = cg.readEntry("showBatteryString", false);
     m_showMultipleBatteries = cg.readEntry("showMultipleBatteries", true);
@@ -109,6 +115,12 @@
     dataUpdated(I18N_NOOP("AC Adapter"), 
dataEngine("powermanagement")->query(I18N_NOOP("AC Adapter")));
     m_numOfBattery = battery_sources.size();
     kDebug() << battery_sources.size();
+
+    if (!extender()->item("powermanagement")) {
+        Plasma::ExtenderItem *eItem = new Plasma::ExtenderItem(extender());
+        eItem->setName("powermanagement");
+        initExtenderItem(eItem);
+    }
 }
 
 void Battery::constraintsEvent(Plasma::Constraints constraints)
@@ -271,7 +283,14 @@
 
 QGraphicsWidget *Battery::graphicsWidget()
 {
-    QGraphicsWidget *controls= new QGraphicsWidget(this);
+    kDebug();
+    return extender();
+}
+
+void Battery::initExtenderItem(Plasma::ExtenderItem *item)
+{
+    kDebug();
+    QGraphicsWidget *controls = new QGraphicsWidget(item);
     QGraphicsLinearLayout *controlsLayout = new 
QGraphicsLinearLayout(controls);
 
     controlsLayout->setSizePolicy(QSizePolicy::Expanding, 
QSizePolicy::Expanding);
@@ -292,7 +311,10 @@
 
     controls->setLayout(controlsLayout);
 
-    return controls;
+    item->setWidget(controls);
+    item->setTitle(i18n("Power Management"));
+
+
 }
 
 void Battery::showLabel(bool show)
--- trunk/KDE/kdebase/workspace/plasma/applets/battery/battery.h #862080:862081
@@ -34,6 +34,7 @@
 namespace Plasma
 {
     class Svg;
+    class ExtenderItem;
 }
 
 class Battery : public Plasma::PopupApplet
@@ -64,6 +65,7 @@
     protected:
         void createConfigurationInterface(KConfigDialog *parent);
         QGraphicsWidget *graphicsWidget();
+        void initExtenderItem(Plasma::ExtenderItem *item);
 
     private slots:
         void animationUpdate(qreal progress);
_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel

Reply via email to