NetPanelController::NetPanelController(QWidget *parent, NetView *view, Plasma::Containment *containment)
   : Plasma::Dialog(parent),
     m_containment(containment),
     m_view(view),
     m_watched(0)
{
    hide();

    m_mainWidget = new QGraphicsWidget(containment);
    if (containment && containment->corona()) {
        containment->corona()->addOffscreenWidget(m_mainWidget);
    }

    m_layout = new QGraphicsLinearLayout(Qt::Horizontal, m_mainWidget);

    m_iconSvg = new Plasma::Svg(this);
    m_iconSvg->setImagePath("widgets/configuration-icons");
    m_iconSvg->setContainsMultipleImages(true);
    m_iconSvg->resize(KIconLoader::SizeSmall, KIconLoader::SizeSmall);

    m_moveButton = new Plasma::ToolButton(m_mainWidget);
    m_moveButton->nativeWidget()->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
    m_moveButton->setIcon(m_iconSvg->pixmap("move"));
    m_moveButton->setText(i18n("Screen edge"));
    m_moveButton->setCursor(Qt::SizeAllCursor);
    m_layout->addItem(m_moveButton);

    m_resizeButton = new Plasma::ToolButton(m_mainWidget);
    m_resizeButton->nativeWidget()->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
    m_resizeButton->setIcon(m_iconSvg->pixmap("size-vertical"));
    m_resizeButton->setText(i18n("Height"));
    m_layout->addItem(m_resizeButton);

    m_autoHideButton = new Plasma::ToolButton(m_mainWidget);
    m_autoHideButton->nativeWidget()->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
    m_autoHideButton->nativeWidget()->setCheckable(true);
    m_autoHideButton->setIcon(m_iconSvg->pixmap("collapse"));
    m_autoHideButton->setText(i18n("Auto Hide"));
    m_layout->addItem(m_autoHideButton);
    m_autoHideButton->nativeWidget()->setChecked(view->autoHide());
    connect(m_autoHideButton->nativeWidget(), SIGNAL(toggled(bool)), view, SLOT(setAutoHide(bool)));
    connect(containment, SIGNAL(geometryChanged()), this, SLOT(updatePosition()));

    m_moveButton->installEventFilter(this);
    m_resizeButton->installEventFilter(this);
    setGraphicsWidget(m_mainWidget);
    layout()->activate();
    m_layout->activate();
    m_mainWidget->resize(m_mainWidget->effectiveSizeHint(Qt::PreferredSize));
    updatePosition();
    show();
    Plasma::WindowEffects::slideWindow(this, containment->location());
    KWindowSystem::setState(winId(), NET::KeepAbove|NET::StaysOnTop);
}
Beispiel #2
0
void XbmcremoteApplet::init()
{
    Plasma::Containment * c = containment();

    /* When applet is not in panel the tooltip always appears when hovering
       any point of the popup's area, which is annoying. */
    if (c && (c->containmentType() == Plasma::Containment::PanelContainment ||
              c->containmentType() == Plasma::Containment::CustomPanelContainment)) {
        Plasma::ToolTipManager::self()->registerWidget(this);
        m_panelContainment = true;
    } else {
        m_panelContainment = false;
    }

    //kDebug();

    m_popup = new DeclarativePopup(this);
    // TODO: config
//    connect(d->m_popup, SIGNAL(configNeedsSaving()), this, SIGNAL(configNeedsSaving()));

    // TODO: context options
//    QAction* action = new QAction(i18nc("CheckBox to enable or disable networking completely", "Enable networking"), this);
//    action->setToolTip(i18nc("@info:tooltip tooltip for the 'Enable networking' checkbox", "Enable or disable the networking system"));
//    action->setCheckable(true);
//    action->setChecked(NetworkManager::isNetworkingEnabled());
//    connect(action, SIGNAL(triggered(bool)), d->m_popup, SLOT(networkingEnabledToggled(bool)));
//    connect(NetworkManager::notifier(), SIGNAL(networkingEnabledChanged(bool)),
//            action, SLOT(setChecked(bool)));

//    d->actions.append(action);

    setGraphicsWidget(m_popup);

    connect(Xbmc::instance(), SIGNAL(connectedChanged(bool)), SLOT(connectedChanged(bool)));
    connect(Xbmc::instance(), SIGNAL(activePlayerChanged()), SLOT(activePlayerChanged()));
}
Beispiel #3
0
void WicdApplet::init()
{
    m_theme->resize(contentsRect().size());
    
    Plasma::ToolTipManager::self()->registerWidget(this);

    //load dataengine
    Plasma::DataEngine *engine = dataEngine("wicd");
    if (!engine->isValid()) {
        setFailedToLaunch(true, i18n("Unable to load the Wicd data engine."));
        return;
    }
    
    setupActions();
    
    //build the popup dialog
    QGraphicsWidget *appletDialog = new QGraphicsWidget(this);
    m_dialoglayout = new QGraphicsLinearLayout(Qt::Vertical);
    
    //Network list
    m_scrollWidget = new Plasma::ScrollWidget(appletDialog);
    m_scrollWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    m_scrollWidget->setFlag(QGraphicsItem::ItemClipsChildrenToShape);
    m_scrollWidget->setMaximumHeight(400);

    m_networkView = new NetworkView(m_scrollWidget);
    m_scrollWidget->setWidget(m_networkView);

    m_busyWidget = new Plasma::BusyWidget(m_scrollWidget);
    m_busyWidget->hide();

    m_dialoglayout->addItem(m_scrollWidget);
    
    //Separator
    m_dialoglayout->addItem(new Plasma::Separator(appletDialog));
    
    //Bottom bar
    QGraphicsLinearLayout* bottombarLayout = new QGraphicsLinearLayout(Qt::Horizontal);
    
    m_messageBox = new Plasma::Label(appletDialog);
    m_messageBox->setWordWrap(false);
    bottombarLayout->addItem(m_messageBox);
    
    bottombarLayout->addStretch();
    
    m_abortButton = new Plasma::ToolButton(appletDialog);
    m_abortButton->setIcon(KIcon("dialog-cancel"));
    m_abortButton->nativeWidget()->setToolTip(i18n("Abort"));
    connect(m_abortButton, SIGNAL(clicked()), this, SLOT(cancelConnect()));
    bottombarLayout->addItem(m_abortButton);
    
    Plasma::ToolButton *reloadButton = new Plasma::ToolButton(appletDialog);
    reloadButton->nativeWidget()->setToolTip(i18n("Reload"));
    reloadButton->setAction(action("reload"));
    bottombarLayout->addItem(reloadButton);
    
    m_dialoglayout->addItem(bottombarLayout);
    
    appletDialog->setLayout(m_dialoglayout);
    setGraphicsWidget(appletDialog);

    setHasConfigurationInterface(true);
    
    // read config
    configChanged();

    connect(Plasma::Theme::defaultTheme(), SIGNAL(themeChanged()), SLOT(updateColors()));


    //prevent notification on startup
    m_status.State = 10;
    m_isScanning = false;
    //connect dataengine
    m_wicdService = engine->serviceForSource("");
    engine->connectSource("status", this);
    engine->connectSource("daemon", this);
}