void Notifier::notify(const QString &summary, const QString &message)
{
#if defined(HAVE_MNOTIFICATION)
    QList<MNotification*> notifications = MNotification::notifications();
    foreach (MNotification *n, notifications)
    {
        if (n->summary() == summary)
            n->remove();
    }

    MNotification *notification = new MNotification("irc-chatter.irc", summary, message);
    notification->setIdentifier("irc");
    notification->setAction(MRemoteAction("net.venemo.ircchatter", "/", "net.venemo.ircchatter", "activateApplication"));

    notification->publish();
#else
    Q_UNUSED(summary)
    Q_UNUSED(message)
    qDebug() << Q_FUNC_INFO << "Sending notifications is not supported by the current build.";
#endif
}
Exemple #2
0
Q_DECL_EXPORT int main(int argc, char *argv[])
{   
    QScopedPointer<QApplication> app(createApplication(argc, argv));
    QTextStream qout(stdout);

    QString locale = QLocale::system().name();
    QTranslator translator;

    if (!(translator.load("translation."+locale, ":/")))
        translator.load("translation.en", ":/");

    app->installTranslator(&translator);

    QStringList arguments = app->arguments();

    if (arguments.size() > 1 && arguments.at(1) == "-wake") {
        QString mac = QString::null;

        if (arguments.contains("-mac")) {
            int macIdx = arguments.indexOf("-mac");

            if (macIdx != -1 && arguments.count() >= macIdx+1)
                mac = arguments.at(macIdx+1);
        }

        if (mac == QString::null) {
            qout << QObject::tr("Bitte MAC-Adresse angegeben") << endl;
            return 1;
        } else {
            QString devName = QString::null;

            if (arguments.contains("-devicename")) {
                int nameIdx = arguments.indexOf("-devicename");
                devName = arguments.at(nameIdx+1);
            }

            QSystemNetworkInfo *i = new QSystemNetworkInfo();
            QSystemNetworkInfo::NetworkStatus s = i->networkStatus(QSystemNetworkInfo::WlanMode);

            bool success;

            if (s == QSystemNetworkInfo::Connected) {
                QmlWakeOnLan *w = new QmlWakeOnLan();
                w->sendMagicPacket(mac);

                success = true;
            } else {
                success = false;
            }

            if (arguments.contains("-showbanner")) {
                QString message;

                if (success) {
                    if (devName != QString::null)
                        message = QObject::tr("Magisches Paket wurde an %1 gesendet").arg(devName);
                    else
                        message = QObject::tr("Magisches Paket wurde gesendet");
                } else {
                    message = QObject::tr("Das magische Paket konnte nicht gesendet werden. (Keine Verbindung mit WLAN)");
                }

                MNotification *notification = new MNotification(MNotification::DeviceEvent, QString::null, message);
                notification->setImage((success ? "icon-m-transfer-done" : "icon-m-transfer-error"));
                notification->publish();
            }

            return (success ? 0 : 1);
        }
    }

    qmlRegisterType<QmlClipboardAdapter>("com.ejjoman.plugins", 1, 0, "Clipboard");
    qmlRegisterType<QmlWakeOnLan>("com.ejjoman.plugins", 1, 0, "WakeOnLan");
    qmlRegisterType<QmlFilesystemAdapter>("com.ejjoman.plugins", 1, 0, "Filesystem");

    QmlApplicationViewer viewer;
    QDeclarativeContext *context = viewer.rootContext();

    WifiModel *model = new WifiModel();
    context->setContextProperty("wifiModel", model);

    WifiList list;
    context->setContextProperty("wifiList", QVariant::fromValue(list.getWifiList()));

    QString homePath = QDir::homePath();
    context->setContextProperty("homePath", homePath);

    viewer.setOrientation(QmlApplicationViewer::ScreenOrientationLockPortrait);
    viewer.setMainQmlFile(QLatin1String("qml/harmattan/main.qml"));

    viewer.showExpanded();

    qInstallMsgHandler(0);

    return app->exec();
}