Plasma
extenderapplet.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "extenderapplet_p.h"
00021
00022 #include "../extender.h"
00023 #include "../extenderitem.h"
00024
00025 #include <QGraphicsLinearLayout>
00026
00027 namespace Plasma
00028 {
00029
00030 ExtenderApplet::ExtenderApplet(QObject *parent, const QVariantList &args)
00031 : PopupApplet(parent, args)
00032 {
00033 }
00034
00035 ExtenderApplet::~ExtenderApplet()
00036 {
00037 if (destroyed()) {
00038 disconnect(extender(), SIGNAL(itemDetached(Plasma::ExtenderItem*)),
00039 this, SLOT(itemDetached(Plasma::ExtenderItem*)));
00040 foreach (ExtenderItem *item, extender()->attachedItems()) {
00041 item->returnToSource();
00042 }
00043 }
00044 }
00045
00046 void ExtenderApplet::init()
00047 {
00048 setPopupIcon("utilities-desktop-extra");
00049
00050 extender()->setAppearance(Extender::NoBorders);
00051 extender()->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
00052
00053 connect(extender(), SIGNAL(itemDetached(Plasma::ExtenderItem*)),
00054 this, SLOT(itemDetached(Plasma::ExtenderItem*)));
00055 connect(extender(), SIGNAL(geometryChanged()),
00056 this, SLOT(extenderGeometryChanged()));
00057 }
00058
00059 void ExtenderApplet::itemDetached(Plasma::ExtenderItem *)
00060 {
00061 if (extender()->attachedItems().isEmpty()) {
00062 destroy();
00063 }
00064 }
00065
00066 void ExtenderApplet::extenderGeometryChanged()
00067 {
00068 if (formFactor() != Plasma::Horizontal &&
00069 formFactor() != Plasma::Vertical) {
00070
00071 qreal left, top, right, bottom;
00072 getContentsMargins(&left, &top, &right, &bottom);
00073 QSizeF margins(left + right, top + bottom);
00074
00075 setMinimumSize(extender()->minimumSize() + margins);
00076 setMaximumSize(extender()->maximumSize() + margins);
00077 setPreferredSize(extender()->preferredSize() + margins);
00078
00079 adjustSize();
00080 }
00081 }
00082
00083 }
00084
00085 #include "extenderapplet_p.moc"
00086