PanelAppletOverlay::PanelAppletOverlay(Plasma::Applet *applet, QWidget *parent) : QWidget(parent), m_applet(applet), m_spacer(0), m_layout(dynamic_cast<QGraphicsLinearLayout*>(applet->containment()->layout())), // ++assumptions; m_index(0), m_clickDrag(false) { if (!s_appletHandle) { s_appletHandle = new PanelAppletHandle(); } ++s_appletHandleCount; connect(s_appletHandle, SIGNAL(mousePressed(Plasma::Applet*,QMouseEvent*)), this, SLOT(handleMousePressed(Plasma::Applet*,QMouseEvent*))); connect(s_appletHandle, SIGNAL(mouseMoved(Plasma::Applet*,QMouseEvent*)), this, SLOT(handleMouseMoved(Plasma::Applet*,QMouseEvent*))); connect(s_appletHandle, SIGNAL(mouseReleased(Plasma::Applet*,QMouseEvent*)), this, SLOT(handleMouseReleased(Plasma::Applet*,QMouseEvent*))); syncIndex(); syncOrientation(); syncGeometry(); setMouseTracking(true); connect(m_applet, SIGNAL(destroyed(QObject*)), this, SLOT(appletDestroyed())); connect(m_applet, SIGNAL(geometryChanged()), this, SLOT(delaySyncGeometry())); }
Context::AppletItemOverlay::AppletItemOverlay( Context::AppletToolbarAppletItem *applet, QGraphicsLinearLayout* layout, QWidget *parent ) : QWidget( parent ), m_applet( applet ), m_spacer(0), m_layout( layout ), m_deleteIcon( 0 ), m_index( 0 ), m_clickDrag( false ) { DEBUG_BLOCK if( layout ) { m_layout = layout; int i = 0; for(; i < m_layout->count(); ++i) { QGraphicsWidget *w = dynamic_cast< QGraphicsWidget* >( m_layout->itemAt( i ) ); if( w == m_applet ) { m_index = i; break; } } } else debug() << "GOT APPLET WITH NO LAYOUT! BAD!"; m_deleteIcon = new QToolButton( this ); QAction* delApplet = new QAction( i18n( "Remove Applet" ), this ); delApplet->setIcon( KIcon( "edit-delete" ) ); delApplet->setVisible( true ); delApplet->setEnabled( true ); m_deleteIcon->addAction( delApplet ); m_deleteIcon->setIcon( KIcon( "edit-delete" ) ); m_deleteIcon->setMaximumSize( 24, 24 ); QColor trans; trans.setAlpha( 0 ); QBrush brush( Qt::transparent ); QPalette pal = m_deleteIcon->palette(); pal.setBrush( QPalette::Window, brush ); // m_deleteIcon->setBackgroundRole( QPalette::Base ); m_deleteIcon->setPalette( pal ); m_deleteIcon->setAutoFillBackground( false ); m_deleteIcon->setAttribute( Qt::WA_NoSystemBackground ); //m_deleteIcon->setAttribute( Qt::WA_TranslucentBackground ); //NB: Introduced in Qt 4.5 connect( delApplet, SIGNAL( triggered() ), this, SLOT( deleteApplet() ) ); connect( m_deleteIcon, SIGNAL( released() ), this, SLOT( deleteApplet() ) ); syncGeometry(); connect( m_applet, SIGNAL( destroyed(QObject*) ), this, SLOT( deleteLater() ) ); connect( m_applet, SIGNAL( geometryChanged() ), this, SLOT( delaySyncGeometry() ) ); }