All pastes #627593 Raw Edit

Stuff

public text v1 · immutable
·published 2007-07-20 12:43 UTC
rendered paste body
//
// C++ Implementation: ucd_desktop
//
// Description: 
//
//
// Author:  <>, (C) 2007
//
// Copyright: See COPYING file that comes with this distribution
//
//
#include "ucd_desktop.h"
#include "plasma/corona.h"
#include <QPainter>
#include <QFontMetrics>
#include <Plasma/Applet>
#include <QGraphicsScene>
#include <QGraphicsSceneMouseEvent>

UCD_Desktop::UCD_Desktop(QObject *parent,const QStringList &args)
    : Plasma::Applet(parent, args),
      m_tutorialTheme("widgets/background", this),
      m_tutorialIcon("document")
{
    // First we create the objects to hold the icon and
    // background image
    // TIP: Read the section about setDrawStandardBackground(true)
    // m_tutorialTheme = new Plasma::Svg("widgets/background",this);
    // m_tutorialIcon = new KsIcon("document");
    // Tell the Plasma/Svg object to use the whole image, instead
    // of parts of it.
    m_tutorialTheme.setContentType(Plasma::Svg::SingleImage);
    // A small demonstration of the setFailedToLaunch function
    bool Armageddon = false;
    if (Armageddon) {
        setFailedToLaunch(true, "No world to say hello");
    }
}
 
UCD_Desktop::~UCD_Desktop()
{
    if (failedToLaunch()) {
        // Do some cleanup here
    } else {
        // Save settings
    }
}
 
QRectF UCD_Desktop::boundingRect() const
{
    // In this tutorial we use a fixed size
    return QRectF(0,0,128,128);
}
 
void UCD_Desktop::paintInterface(QPainter *p,const QStyleOptionGraphicsItem *option, QWidget *widget)
{
    // Now we draw the applet, starting with the background
    m_tutorialTheme.resize(boundingRect().width(),
                            boundingRect().height());
    m_tutorialTheme.paint(p,
                          boundingRect().left(),
                          boundingRect().top());
 
    // The we place the icon and text
    p->drawPixmap(20, 0,
            m_tutorialIcon.pixmap(boundingRect().width() - 40));
    p->save();
    p->setPen(Qt::white);
    p->drawText(boundingRect(),
                Qt::AlignBottom+Qt::AlignHCenter,
                "Hello UCD");
    p->restore();
    //this->setPos(1000,10);
}

void UCD_Desktop::foo(QGraphicsSceneEvent * event) {
    this->moveBy(10,10);
}

void UCD_Desktop::mouseDoubleClickEvent( QGraphicsSceneMouseEvent * event ) {
    applet = static_cast<Plasma::Corona*>(scene())->addApplet("plasma_applet_ucd_item");
    connect(applet,SIGNAL(dragEnterEvent(QGraphicsSceneDragDropEvent *event)),this,SLOT(foo(QGraphicsSceneEvent *event)));
    connect(applet,SIGNAL(dragLeaveEvent(QGraphicsSceneDragDropEvent *event)),this,SLOT(foo(QGraphicsSceneEvent *event)));
    connect(applet,SIGNAL(dropEvent(QGraphicsSceneDragDropEvent *event)),this,SLOT(foo(QGraphicsSceneEvent *event)));
    connect(applet,SIGNAL(hoverEnterEvent(QGraphicsSceneHoverEvent * event)),this,SLOT(foo(QGraphicsSceneEvent * event)));
    connect(applet,SIGNAL(hoverLeaveEvent(QGraphicsSceneHoverEvent * event)),this,SLOT(foo(QGraphicsSceneEvent * event)));
    connect(applet,SIGNAL(mousePressEventSig(QGraphicsSceneMouseEvent * event)),this,SLOT(foo(QGraphicsSceneEvent * event)));
    //connect(applet,SIGNAL(mouseMoveEventSig(QGraphicsSceneMouseEvent * event)),this,SLOT(foo(QGraphicsSceneEvent * event)));
    connect(applet,SIGNAL(mouseReleaseEventSig(QGraphicsSceneMouseEvent * event)),this,SLOT(foo(QGraphicsSceneEvent * event)));
    //applet->desktop = this;
    this->moveBy(10,0);
}

#include "ucd_desktop.moc"