Merge branch 'master' into sslrefactor

This commit is contained in:
Albert Vaca 2016-01-10 09:01:14 -08:00
commit fa1771dd64
14 changed files with 2 additions and 72 deletions

View file

@ -38,7 +38,8 @@ BatteryDbusInterface::BatteryDbusInterface(const Device *device)
QMap<QString, BatteryDbusInterface *>::iterator oldInterfaceIter = s_dbusInterfaces.find(device->id());
if (oldInterfaceIter != s_dbusInterfaces.end()) {
qCDebug(KDECONNECT_PLUGIN_BATTERY) << "Deleting stale BattteryDbusInterface for" << device->name();
oldInterfaceIter.value()->deleteLater();
//FIXME: This still crashes sometimes even after the workaround made in 38aa970, commented out by now
//oldInterfaceIter.value()->deleteLater();
s_dbusInterfaces.erase(oldInterfaceIter);
}

View file

@ -13,7 +13,6 @@
"Description[ca@valencia]": "Mostra la bateria del telèfon al costat de la bateria de l'ordinador",
"Description[ca]": "Mostra la bateria del telèfon al costat de la bateria de l'ordinador",
"Description[cs]": "Zobrazit baterii vedle baterie počítače",
"Description[da]": "Vis dit telefonbatteri ved siden af dit computerbatteri",
"Description[de]": "Zeigt den Akku Ihres Telefons neben dem Akku des Rechners",
"Description[es]": "Mostrar la batería del teléfono junto a la batería del equipo",
"Description[fi]": "Näytä puhelimesi akku tietokoneen akun rinnalla",
@ -42,7 +41,6 @@
"Name[ca@valencia]": "Monitor de la bateria",
"Name[ca]": "Monitor de la bateria",
"Name[cs]": "Monitor baterie",
"Name[da]": "Batteriovervågning",
"Name[de]": "Akkuüberwachung",
"Name[es]": "Monitor de batería",
"Name[fi]": "Akkuvalvonta",

View file

@ -13,7 +13,6 @@
"Description[ca@valencia]": "Comparteix el porta-retalls entre dispositius",
"Description[ca]": "Comparteix el porta-retalls entre dispositius",
"Description[cs]": "Sdílet obsah schránky mezi zařízeními",
"Description[da]": "Del udklipsholderen mellem enheder",
"Description[de]": "Die Zwischenablage mit Geräten teilen",
"Description[es]": "Compartir portapapeles entre dispositivos",
"Description[fi]": "Jaa leikepöytä laitteiden välillä",
@ -42,7 +41,6 @@
"Name[ca@valencia]": "Porta-retalls",
"Name[ca]": "Porta-retalls",
"Name[cs]": "Schránka",
"Name[da]": "Udklipsholder",
"Name[de]": "Zwischenablage",
"Name[es]": "Portapapeles",
"Name[fi]": "Leikepöytä",

View file

@ -13,7 +13,6 @@
"Description[ca@valencia]": "Bloqueja els vostres sistemes",
"Description[ca]": "Bloqueja els vostres sistemes",
"Description[cs]": "Zamkne vaše systémy",
"Description[da]": "Låser dine systemer",
"Description[de]": "Sperrt Ihre Systeme",
"Description[es]": "Bloquear sus sistemas",
"Description[fi]": "Lukitsee järjestelmäsi",
@ -40,7 +39,6 @@
"Name[ca@valencia]": "Bloqueja el dispositiu",
"Name[ca]": "Bloqueja el dispositiu",
"Name[cs]": "Uzamknout zařízení",
"Name[da]": "LåsEnhed",
"Name[de]": "Gerätesperrung",
"Name[es]": "Bloquear dispositivo",
"Name[fi]": "Lukitse laite",

View file

@ -13,7 +13,6 @@
"Description[ca@valencia]": "Empra el telèfon com un ratolí tàctil i teclat",
"Description[ca]": "Empra el telèfon com un ratolí tàctil i teclat",
"Description[cs]": "Používejte svůj telefon jako touchpad a klávesnici",
"Description[da]": "Brug din telefon som touchpad og tastatur",
"Description[de]": "Verwendet Ihr Handy als Touchpad und Tastatur",
"Description[es]": "Usar teléfono como panel táctil y teclado",
"Description[fi]": "Käytä puhelintasi kosketuslevynä ja näppäimistönä",
@ -42,7 +41,6 @@
"Name[ca@valencia]": "Entrada virtual",
"Name[ca]": "Entrada virtual",
"Name[cs]": "Virtuální vstup",
"Name[da]": "Virtuelt input",
"Name[de]": "Virtuelle Eingabe",
"Name[es]": "Entrada virtual",
"Name[fi]": "Virtuaalinen syöttö",

View file

@ -13,7 +13,6 @@
"Description[ca@valencia]": "Comandament a distància per a la vostra música i vídeos",
"Description[ca]": "Comandament a distància per a la vostra música i vídeos",
"Description[cs]": "Ovládejte vzdáleně vaši hudbu a videa",
"Description[da]": "Fjernbetjen din musik og videoer",
"Description[de]": "Fernbedienung für Musik und Videos",
"Description[es]": "Controlar remotamente vídeos y música",
"Description[fi]": "Kauko-ohjain musiikkiisi ja videoihisi",
@ -41,7 +40,6 @@
"Name[ca@valencia]": "Receptor del comandament multimèdia",
"Name[ca]": "Receptor del comandament multimèdia",
"Name[cs]": "Dálkový ovladač multimédií",
"Name[da]": "Multimediekontrol-modtager",
"Name[de]": "Steuerung für Multimedia-Empfänger",
"Name[es]": "Receptor de control multimedia",
"Name[fi]": "Multimediakauko-ohjain",

View file

@ -13,7 +13,6 @@
"Description[ca@valencia]": "Mostra les notificacions del telèfon a l'ordinador i les manté sincronitzades",
"Description[ca]": "Mostra les notificacions del telèfon a l'ordinador i les manté sincronitzades",
"Description[cs]": "Zobrazit upozornění telefonu v počítači a udržovat je synchronizovaná",
"Description[da]": "Vis telefonbekendtgørelser på din computer og hold dem synkroniseret",
"Description[de]": "Benachrichtigungen auf Ihren Rechner anzeigen und abgleichen",
"Description[es]": "Mostrar notificaciones del teléfono en su equipo y mantenerlas en sincronía",
"Description[fi]": "Näytä puhelimen ilmoitukset tietokoneellasi ja pidä ne ajan tasalla",
@ -42,7 +41,6 @@
"Name[ca@valencia]": "Sincronització de les notificacions",
"Name[ca]": "Sincronització de les notificacions",
"Name[cs]": "Synchronizace upozornění",
"Name[da]": "Synk. af bekendtgørelser",
"Name[de]": "Benachrichtigungs-Abgleich",
"Name[es]": "Sincronización de notificaciones",
"Name[fi]": "Ilmoitusten synkronointi",

View file

@ -152,9 +152,6 @@ uint NotificationsListener::Notify(const QString &appName, uint replacesId,
// timeout == 0, for other notifications
// clearability is pointless
Notification *notification = new Notification(np, QString(), this);
dbusInterface->addNotification(notification);
mPlugin->sendPackage(np);
return (replacesId > 0 ? replacesId : id);

View file

@ -13,7 +13,6 @@
"Description[ca@valencia]": "Pausa la música/vídeos durant una trucada telefònica",
"Description[ca]": "Pausa la música/vídeos durant una trucada telefònica",
"Description[cs]": "Pozastavit hudbu/video během telefonátu",
"Description[da]": "Sæt musik/video på pause under telefonsamtaler",
"Description[de]": "Hält Musik oder Videos währen eines Anrufs an",
"Description[es]": "Pausar música/video durante las llamadas telefónicas",
"Description[fi]": "Keskeytä musiikki ja videot puhelun aikana",
@ -42,7 +41,6 @@
"Name[ca@valencia]": "Pausa els suports durant les trucades",
"Name[ca]": "Pausa els suports durant les trucades",
"Name[cs]": "Pozastavit média během telefonátu",
"Name[da]": "Sæt medier på pause under opkald",
"Name[de]": "Medium bei Anrufen anhalten",
"Name[es]": "Pausar medios durante las llamadas",
"Name[fi]": "Keskeytä toisto puhelujen aikana",

View file

@ -13,7 +13,6 @@
"Description[ca@valencia]": "Inhibeix l'estalvi de pantalla quan es connecta el dispositiu",
"Description[ca]": "Inhibeix l'estalvi de pantalla quan es connecta el dispositiu",
"Description[cs]": "Potlačit spořič pokud je zařízení připojeno",
"Description[da]": "Forhindr pauseskærm når enheden er forbundet",
"Description[de]": "Bildschirmschoner unterbinden wenn ein Gerät angeschlossen ist",
"Description[es]": "Inhibir el salvapantallas cuando el dispositivo está conectado",
"Description[fi]": "Estä näytönsäästäjän käynnistyminen, kun laite on yhteydessä",
@ -42,7 +41,6 @@
"Name[ca@valencia]": "Inhibeix l'estalvi de pantalla",
"Name[ca]": "Inhibeix l'estalvi de pantalla",
"Name[cs]": "Potlačit spořič obrazovky",
"Name[da]": "Forhindr pauseskærm",
"Name[de]": "Bildschirmschoner unterbinden",
"Name[es]": "Inhibir salvapantallas",
"Name[fi]": "Estä näytönsäästäjän käynnistyminen",

View file

@ -14,7 +14,6 @@
"Description[ca@valencia]": "Navega pel sistema de fitxers del dispositiu remot emprant SFTP",
"Description[ca]": "Navega pel sistema de fitxers del dispositiu remot emprant SFTP",
"Description[cs]": "Prohlížejte souborový systém zařízení pomocí SFTP",
"Description[da]": "Gennemse filsystemet på eksterne enheder med SFTP",
"Description[de]": "Browsen im Dateisystem des entfernten Geräts mit SFTP",
"Description[es]": "Navegar por el sistema de archivos del dispositivo remoto usando SFTP",
"Description[fi]": "Selaa etälaitteiden tiedostojärjestelmiä SFTP:llä",
@ -43,7 +42,6 @@
"Name[ca@valencia]": "Navegador del sistema de fitxers remot",
"Name[ca]": "Navegador del sistema de fitxers remot",
"Name[cs]": "Vzdálený prohlížeč souborového systému",
"Name[da]": "Filbrowser til eksternt filsystem",
"Name[de]": "Datei-Browser für entferne Systeme",
"Name[es]": "Navegador de sistema de archivos remoto",
"Name[fi]": "Etätiedostojärjestelmäselain",

View file

@ -13,7 +13,6 @@
"Description[ca@valencia]": "Rep i envia fitxers, URL o text pla amb facilitat",
"Description[ca]": "Rep i envia fitxers, URL o text pla amb facilitat",
"Description[cs]": "Snadno přijímejte a posílejte soubory, URL nebo čistý text",
"Description[da]": "Modtag og send nemt filer, URL'er eller klartekst",
"Description[de]": "Empfang und Senden von Dateien, URLs oder einfachem Text",
"Description[es]": "Recibir y enviar archivos, URL o texto sin formato fácilmente",
"Description[fi]": "Vastaanota ja lähetä tiedostoja, verkko-osoitteita tai tekstiä helposti",
@ -42,7 +41,6 @@
"Name[ca@valencia]": "Comparteix i rep",
"Name[ca]": "Comparteix i rep",
"Name[cs]": "Sdílet a přijímat",
"Name[da]": "Del og modtag",
"Name[de]": "Senden und Empfangen",
"Name[es]": "Compartir y recibir",
"Name[fi]": "Jaa ja vastaanota",

View file

@ -13,7 +13,6 @@
"Description[ca@valencia]": "Mostra les notificacions de les trucades i SMS (properament es respondrà)",
"Description[ca]": "Mostra les notificacions de les trucades i SMS (properament es respondrà)",
"Description[cs]": "Zobrazit upozornění pro telefonáty a SMS (na odpovídání se pracuje)",
"Description[da]": "Vis bekendtgørelser for opkald og SMS'er (svarer kommer snart)",
"Description[de]": "Zeigt Benachrichtigungen für Anrufe und SMS",
"Description[es]": "Mostrar notificaciones para llamadas y SMS (el soporte para las contestaciones es inminente)",
"Description[fi]": "Näytä puhelujen ja tekstiviestien ilmoitukset (vastaaminen tulossa pian)",
@ -42,7 +41,6 @@
"Name[ca@valencia]": "Integració amb la telefonia",
"Name[ca]": "Integració amb la telefonia",
"Name[cs]": "Integrace telefonu",
"Name[da]": "Telefoniintegration",
"Name[de]": "Telefon-Integration",
"Name[es]": "Integración con el teléfono",
"Name[fi]": "Puhelinintegrointi",

View file

@ -23,11 +23,8 @@
#include <QNetworkAccessManager>
#include <QTest>
#include <QTemporaryFile>
#include <QSignalSpy>
#include <QStandardPaths>
#include <KIO/AccessManager>
#include "core/daemon.h"
#include "core/device.h"
#include "core/kdeconnectplugin.h"
@ -45,9 +42,6 @@ public:
explicit TestNotificationsPlugin(QObject *parent, const QVariantList &args)
: NotificationsPlugin(parent, args)
{
// make notificationPosted() inspectable:
connect(notificationsDbusInterface, &NotificationsDbusInterface::notificationPosted,
this, &TestNotificationsPlugin::notificationPosted);
}
virtual ~TestNotificationsPlugin() {};
@ -67,9 +61,6 @@ public:
{
return notificationsDbusInterface;
}
Q_SIGNALS:
void notificationPosted(const QString& publicId);
};
// Tweaked NotificationsListener for testing:
@ -153,16 +144,11 @@ void TestNotificationListener::testNotify()
uint replacesId = 99;
uint retId;
int notificationId = 0;
QSignalSpy spy(plugin, &TestNotificationsPlugin::notificationPosted);
// regular Notify call that is synchronized ...
retId = listener->Notify("testApp", replacesId, "some-icon", "summary", "body", {}, {{}}, 0);
// ... should return replacesId,
QCOMPARE(retId, replacesId);
// ... trigger a notificationPosted signal with incremented id
QCOMPARE(spy.count(), 1);
QCOMPARE(spy.takeFirst().at(0).toString(), QString::number(++notificationId));
// ... and create a new application internally that is initialized correctly:
QCOMPARE(listener->getApplications().count(), 1);
QVERIFY(listener->getApplications().contains("testApp"));
@ -175,8 +161,6 @@ void TestNotificationListener::testNotify()
// another one, with other timeout and urgency values:
retId = listener->Notify("testApp2", replacesId+1, "some-icon2", "summary2", "body2", {}, {{"urgency", 2}}, 10);
QCOMPARE(retId, replacesId+1);
QCOMPARE(spy.count(), 1);
QCOMPARE(spy.takeFirst().at(0).toString(), QString::number(++notificationId));
QCOMPARE(listener->getApplications().count(), 2);
QVERIFY(listener->getApplications().contains("testApp2"));
QVERIFY(listener->getApplications().contains("testApp"));
@ -185,32 +169,23 @@ void TestNotificationListener::testNotify()
plugin->config()->set("generalPersistent", true);
retId = listener->Notify("testApp", replacesId, "some-icon", "summary", "body", {}, {{}}, 1);
QCOMPARE(retId, 0U);
QCOMPARE(spy.count(), 0);
retId = listener->Notify("testApp2", replacesId, "some-icon2", "summary2", "body2", {}, {{}}, 3);
QCOMPARE(retId, 0U);
QCOMPARE(spy.count(), 0);
// but timeout == 0 is
retId = listener->Notify("testApp", replacesId, "some-icon", "summary", "body", {}, {{}}, 0);
QCOMPARE(retId, replacesId);
QCOMPARE(spy.count(), 1);
QCOMPARE(spy.takeFirst().at(0).toString(), QString::number(++notificationId));
plugin->config()->set("generalPersistent", false);
// if min-urgency is set, lower urgency levels are not synced:
plugin->config()->set("generalUrgency", 1);
retId = listener->Notify("testApp", replacesId, "some-icon", "summary", "body", {}, {{"urgency", 0}}, 0);
QCOMPARE(retId, 0U);
QCOMPARE(spy.count(), 0);
// equal urgency is
retId = listener->Notify("testApp", replacesId, "some-icon", "summary", "body", {}, {{"urgency", 1}}, 0);
QCOMPARE(retId, replacesId);
QCOMPARE(spy.count(), 1);
QCOMPARE(spy.takeFirst().at(0).toString(), QString::number(++notificationId));
// higher urgency as well
retId = listener->Notify("testApp", replacesId, "some-icon", "summary", "body", {}, {{"urgency", 2}}, 0);
QCOMPARE(retId, replacesId);
QCOMPARE(spy.count(), 1);
QCOMPARE(spy.takeFirst().at(0).toString(), QString::number(++notificationId));
plugin->config()->set("generalUrgency", 0);
// notifications for a deactivated application are not synced:
@ -219,68 +194,47 @@ void TestNotificationListener::testNotify()
QVERIFY(!listener->getApplications()["testApp"].active);
retId = listener->Notify("testApp", replacesId, "some-icon", "summary", "body", {}, {{"urgency", 0}}, 0);
QCOMPARE(retId, 0U);
QCOMPARE(spy.count(), 0);
// others are still:
retId = listener->Notify("testApp2", replacesId+1, "some-icon2", "summary2", "body2", {}, {{}}, 0);
QCOMPARE(retId, replacesId+1);
QCOMPARE(spy.count(), 1);
QCOMPARE(spy.takeFirst().at(0).toString(), QString::number(++notificationId));
// back to normal:
listener->getApplications()["testApp"].active = true;
QVERIFY(listener->getApplications()["testApp"].active);
retId = listener->Notify("testApp", replacesId, "some-icon", "summary", "body", {}, {{}}, 0);
QCOMPARE(retId, replacesId);
QCOMPARE(spy.count(), 1);
QCOMPARE(spy.takeFirst().at(0).toString(), QString::number(++notificationId));
// notifications with blacklisted subjects are not synced:
QVERIFY(listener->getApplications().contains("testApp"));
listener->getApplications()["testApp"].blacklistExpression.setPattern("black[12]|foo(bar|baz)");
retId = listener->Notify("testApp", replacesId, "some-icon", "summary black1", "body", {}, {{}}, 0);
QCOMPARE(retId, 0U);
QCOMPARE(spy.count(), 0);
retId = listener->Notify("testApp", replacesId, "some-icon", "summary foobar", "body", {}, {{}}, 0);
QCOMPARE(retId, 0U);
QCOMPARE(spy.count(), 0);
// other subjects are synced:
retId = listener->Notify("testApp", replacesId, "some-icon", "summary foo", "body", {}, {{}}, 0);
QCOMPARE(retId, replacesId);
QCOMPARE(spy.count(), 1);
QCOMPARE(spy.takeFirst().at(0).toString(), QString::number(++notificationId));
retId = listener->Notify("testApp", replacesId, "some-icon", "summary black3", "body", {}, {{}}, 0);
QCOMPARE(retId, replacesId);
QCOMPARE(spy.count(), 1);
QCOMPARE(spy.takeFirst().at(0).toString(), QString::number(++notificationId));
// also body is checked by blacklist if requested:
plugin->config()->set("generalIncludeBody", true);
retId = listener->Notify("testApp", replacesId, "some-icon", "summary", "body black1", {}, {{}}, 0);
QCOMPARE(retId, 0U);
QCOMPARE(spy.count(), 0);
retId = listener->Notify("testApp", replacesId, "some-icon", "summary", "body foobaz", {}, {{}}, 0);
QCOMPARE(retId, 0U);
QCOMPARE(spy.count(), 0);
// body does not matter if inclusion was not requested:
plugin->config()->set("generalIncludeBody", false);
retId = listener->Notify("testApp", replacesId, "some-icon", "summary", "body black1", {}, {{}}, 0);
QCOMPARE(retId, replacesId);
QCOMPARE(spy.count(), 1);
QCOMPARE(spy.takeFirst().at(0).toString(), QString::number(++notificationId));
retId = listener->Notify("testApp", replacesId, "some-icon", "summary", "body foobaz", {}, {{}}, 0);
QCOMPARE(retId, replacesId);
QCOMPARE(spy.count(), 1);
QCOMPARE(spy.takeFirst().at(0).toString(), QString::number(++notificationId));
// back to normal:
listener->getApplications()["testApp"].blacklistExpression.setPattern("");
plugin->config()->set("generalIncludeBody", true);
retId = listener->Notify("testApp", replacesId, "some-icon", "summary", "body", {}, {{}}, 0);
QCOMPARE(retId, replacesId);
QCOMPARE(spy.count(), 1);
QCOMPARE(spy.takeFirst().at(0).toString(), QString::number(++notificationId));
retId = listener->Notify("testApp2", replacesId, "some-icon2", "summary2", "body2", {}, {{}}, 0);
QCOMPARE(retId, replacesId);
QCOMPARE(spy.count(), 1);
QCOMPARE(spy.takeFirst().at(0).toString(), QString::number(++notificationId));
}