コード例 #1
0
ファイル: handler.cpp プロジェクト: JosephMillsAtWork/u2t
void Handler::activateConnection(const QString& connection, const QString& device, const QString& specificObject)
{
    NetworkManager::Connection::Ptr con = NetworkManager::findConnection(connection);

    if (!con) {
        qCWarning(NM) << "Not possible to activate this connection";
        return;
    }

    if (con->settings()->connectionType() == NetworkManager::ConnectionSettings::Vpn) {
        NetworkManager::VpnSetting::Ptr vpnSetting = con->settings()->setting(NetworkManager::Setting::Vpn).staticCast<NetworkManager::VpnSetting>();
        if (vpnSetting) {
//            qCDebug(NM) << "Checking VPN" << con->name() << "type:" << vpnSetting->serviceType();
#if 0
            // get the list of supported VPN service types
            const KService::List services = KServiceTypeTrader::self()->query("PlasmaNetworkManagement/VpnUiPlugin",
                                                                              QString::fromLatin1("[X-NetworkManager-Services]=='%1'").arg(vpnSetting->serviceType()));
            if (services.isEmpty()) {
                qCWarning(NM) << "VPN" << vpnSetting->serviceType() << "not found, skipping";
                KNotification *notification = new KNotification("MissingVpnPlugin", KNotification::CloseOnTimeout, this);
                notification->setComponentName("networkmanagement");
                notification->setTitle(con->name());
                notification->setText(i18n("Missing VPN plugin"));
                notification->setPixmap(QIcon::fromTheme("dialog-warning").pixmap(KIconLoader::SizeHuge));
                notification->sendEvent();
                return;
            }
#endif
        }
    }

#if WITH_MODEMMANAGER_SUPPORT
    if (con->settings()->connectionType() == NetworkManager::ConnectionSettings::Gsm) {
        NetworkManager::ModemDevice::Ptr nmModemDevice = NetworkManager::findNetworkInterface(device).objectCast<NetworkManager::ModemDevice>();
        if (nmModemDevice) {
            ModemManager::ModemDevice::Ptr mmModemDevice = ModemManager::findModemDevice(nmModemDevice->udi());
            if (mmModemDevice) {
                ModemManager::Modem::Ptr modem = mmModemDevice->interface(ModemManager::ModemDevice::ModemInterface).objectCast<ModemManager::Modem>();
                NetworkManager::GsmSetting::Ptr gsmSetting = con->settings()->setting(NetworkManager::Setting::Gsm).staticCast<NetworkManager::GsmSetting>();
                if (gsmSetting && gsmSetting->pinFlags() == NetworkManager::Setting::NotSaved &&
                    modem && modem->unlockRequired() > MM_MODEM_LOCK_NONE) {
                    QDBusInterface managerIface("org.kde.plasmanetworkmanagement", "/org/kde/plasmanetworkmanagement", "org.kde.plasmanetworkmanagement", QDBusConnection::sessionBus(), this);
                    managerIface.call("unlockModem", mmModemDevice->uni());
                    connect(modem.data(), &ModemManager::Modem::unlockRequiredChanged, this, &Handler::unlockRequiredChanged);
                    m_tmpConnectionPath = connection;
                    m_tmpDevicePath = device;
                    m_tmpSpecificPath = specificObject;
                    return;
                }
            }
        }
    }
#endif

    QDBusPendingReply<QDBusObjectPath> reply = NetworkManager::activateConnection(connection, device, specificObject);
    QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
    watcher->setProperty("action", Handler::ActivateConnection);
    watcher->setProperty("connection", con->name());
    connect(watcher, &QDBusPendingCallWatcher::finished, this, &Handler::replyFinished);
}
コード例 #2
0
ファイル: DistroUpgrade.cpp プロジェクト: KDE/apper
void DistroUpgrade::distroUpgrade(PackageKit::Transaction::DistroUpgrade type, const QString &name, const QString &description)
{
    // TODO make use of the type
    switch (m_configs[CFG_DISTRO_UPGRADE].toInt()) {
    case Enum::DistroNever:
        return;
    case Enum::DistroStable:
        if (type != Transaction::DistroUpgradeStable) {
            // The user only wants to know about stable releases
            return;
        }
    default:
        break;
    }

    kDebug() << "Distro upgrade found!" << name << description;
    if (m_shownDistroUpgrades.contains(name)) {
        // ignore distro upgrade if the user already saw it
        return;
    }

    KNotification *notify = new KNotification("DistroUpgradeAvailable", 0, KNotification::Persistent);
    notify->setComponentName("apperd");
    notify->setTitle(i18n("Distribution upgrade available"));
    notify->setText(description);

    QStringList actions;
    actions << i18n("Start upgrade now");
    notify->setActions(actions);
    connect(notify, SIGNAL(activated(uint)),
            this, SLOT(handleDistroUpgradeAction(uint)));
    notify->sendEvent();
    m_shownDistroUpgrades << name;
}
コード例 #3
0
ファイル: notify.cpp プロジェクト: nowrep/bluezqt-plasmoid
void Notify::connectionFailed(const QString &title, BluezQt::PendingCall *call)
{
    QString text;

    switch (call->error()) {
    case BluezQt::PendingCall::Failed:
        if (call->errorText() == QLatin1String("Host is down")) {
            text = i18nc("Notification when the connection failed due to Failed:HostIsDown",
                         "The device is unreachable");
        } else {
            text = i18nc("Notification when the connection failed due to Failed",
                         "Connection to the device failed");
        }
        break;

    case BluezQt::PendingCall::NotReady:
        text = i18nc("Notification when the connection failed due to NotReady",
                     "The device is not ready");
        break;

    default:
        return;
    }

    KNotification *notification = new KNotification(QStringLiteral("ConnectionFailed"),
                                                    KNotification::CloseOnTimeout, this);
    notification->setComponentName(QStringLiteral("bluedevil"));
    notification->setPixmap(QIcon::fromTheme(QStringLiteral("dialog-warning")).pixmap(64));
    notification->setTitle(title);
    notification->setText(text);
    notification->sendEvent();
}
コード例 #4
0
ファイル: activitylist.cpp プロジェクト: fluxer/kde-extraapps
void ActivityList::dataUpdated(const QString& source, const Plasma::DataEngine::Data& data)
{
    Q_UNUSED(source)
    Q_ASSERT(m_engine);
    
    int newItems = 0;

    foreach(const QString& key, data.keys()) {
        if (!data.value(key).value<Plasma::DataEngine::Data>().isEmpty()) {
            
            if (m_knownEvents.contains(source + data[key].value<Plasma::DataEngine::Data>().value("id").toString())) {
                continue;
            }
            
            QString id(source + data[key].value<Plasma::DataEngine::Data>().value("id").toString());
            QDateTime time(data[key].value<Plasma::DataEngine::Data>().value("timestamp").toDateTime());
            m_knownEvents.insert(id);

            ActivityWidget* widget = new ActivityWidget(m_engine, m_container);
            widget->setActivityData(data[key].value<Plasma::DataEngine::Data>());

            int i;
            for(i = 0; i < m_layout->count(); ++i) {
                ActivityWidget* widget = static_cast<ActivityWidget*>(m_layout->itemAt(i));
                if (time > widget->timestamp()) {
                    break;
                }
            }
            m_layout->insertItem(i, widget);
            
            ++newItems;
        }
    }
    
    while (m_layout->count() > m_limit) {
        ActivityWidget* widget = static_cast<ActivityWidget*>(m_layout->itemAt(m_layout->count()-1));
        m_layout->removeAt(m_layout->count()-1);
        widget->deleteLater();
    }
    
    // Don't mass-spam the user with notifications
    if (newItems < 4) {
        for(int i = 0; i<newItems; ++i) {
            ActivityWidget* widget = static_cast<ActivityWidget*>(m_layout->itemAt(i));
            KNotification* notification = new KNotification("activity");
            notification->setTitle("OpenDesktop Activities");
            notification->setText(widget->message());
            notification->setComponentData(KComponentData("plasma-applet-opendesktop-activities", "plasma-applet-opendesktop-activities", KComponentData::SkipMainComponentRegistration));
            notification->sendEvent();
        }
    }

    // Go to the top of the list
    setScrollPosition(QPointF(0, 0));
}
コード例 #5
0
ファイル: knotification.cpp プロジェクト: KDE/knotifications
KNotification *KNotification::event(const QString &eventid, const QString &title, const QString &text,
                                    const QPixmap &pixmap, QWidget *widget, const NotificationFlags &flags, const QString &componentName)
{
    KNotification *notify = new KNotification(eventid, widget, flags);
    notify->setTitle(title);
    notify->setText(text);
    notify->setPixmap(pixmap);
    notify->setComponentName(flags & DefaultEvent ? QStringLiteral("plasma_workspace") : componentName);

    QTimer::singleShot(0, notify, SLOT(sendEvent()));

    return notify;
}
コード例 #6
0
void notifier_t::notify_reboot() {
  KNotification* note = new KNotification("requestreboot",0L, KNotification::Persistent);
  note->setTitle(i18n("Please reboot your system."));
  note->setText(i18n("In order to complete this upgrade, you need to reboot your system."));
  note->setPixmap(KIcon("system-reboot").pixmap(QSize(32,32)));
  note->setComponentData(m_component_data);
  note->setActions(QStringList()
    << i18nc("Do the proposed action (upgrade, reboot, etc) later", "Later")
    << i18nc("Reboot the system", "Reboot"));
  connect(note,SIGNAL(closed()),m_reboot_nagger,SLOT(start()));
  connect(note,SIGNAL(action1Activated()),m_reboot_nagger,SLOT(start()));
  connect(note,SIGNAL(action2Activated()),SLOT(reboot()));
  note->sendEvent();
}
コード例 #7
0
void notifier_t::show_update_notification(const QString& title, const QString& message, const QString& iconname) {
  if(m_upgrade_notification) {
    m_upgrade_notification.data()->close();
  }
  KNotification* note = new KNotification("updatesavailable",0L, KNotification::Persistent);
  note->setTitle(title);
  note->setText(message);
  note->setPixmap(KIcon(iconname).pixmap(QSize(32,32)));
  note->setComponentData(m_component_data);
  note->setActions(QStringList()
    << i18nc("Do the proposed action (upgrade, reboot, etc) later", "Later"));
  note->sendEvent();
  m_upgrade_notification=note;
  return;
}
コード例 #8
0
void DhcpcdQt::notify(QString &title, QString &msg,
#ifdef NOTIFY
    QSystemTrayIcon::MessageIcon
#else
    QSystemTrayIcon::MessageIcon icon
#endif
    )
{

#ifdef NOTIFY
	KNotification *n = new KNotification("event", this);
	n->setTitle(title);
	n->setText(msg);
	n->sendEvent();
#else
	//trayIcon->showMessage(title, msg, icon);
#endif
}
コード例 #9
0
ファイル: planexecutor.cpp プロジェクト: spersson/Kup
void PlanExecutor::notifyBackupSucceeded() {
	KNotification *lNotification = new KNotification(QStringLiteral("BackupSucceeded"));
	lNotification->setTitle(xi18nc("@title:window", "Backup Saved"));
	lNotification->setText(xi18nc("@info notification", "Saving backup completed successfully."));
	lNotification->sendEvent();
}