Compare commits
27 commits
master
...
kdeconnect
Author | SHA1 | Date | |
---|---|---|---|
|
e62e31ec09 | ||
|
976c400489 | ||
|
821534271a | ||
|
b2d0d5fa48 | ||
|
5b10d9632c | ||
|
e2e36e698c | ||
|
e82d2e5e4a | ||
|
5895daf612 | ||
|
27f5882dc1 | ||
|
b5bf26c919 | ||
|
fd07c7bea6 | ||
|
9800664360 | ||
|
732bf0636f | ||
|
97841c8634 | ||
|
bc48c5e9f8 | ||
|
21b081ad14 | ||
|
44e85d73df | ||
|
355c2e1ff8 | ||
|
e97461937c | ||
|
cc2dc39f92 | ||
|
5b5fac2d5d | ||
|
0bb9c8e294 | ||
|
837c2af9bf | ||
|
e1ce928d01 | ||
|
0856afe216 | ||
|
811542cf84 | ||
|
01897942a0 |
39 changed files with 412 additions and 150 deletions
|
@ -1,8 +1,8 @@
|
|||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
# KDE Release Service Version, managed by release script
|
||||
set (RELEASE_SERVICE_VERSION_MAJOR "25")
|
||||
set (RELEASE_SERVICE_VERSION_MINOR "03")
|
||||
set (RELEASE_SERVICE_VERSION_MAJOR "24")
|
||||
set (RELEASE_SERVICE_VERSION_MINOR "11")
|
||||
set (RELEASE_SERVICE_VERSION_MICRO "70")
|
||||
set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
|
||||
|
||||
|
|
|
@ -29,6 +29,44 @@ FormCard.FormCardPage {
|
|||
}
|
||||
}
|
||||
|
||||
FormCard.FormHeader {
|
||||
title: i18nc("@title:group", "Backends")
|
||||
}
|
||||
|
||||
FormCard.FormCard {
|
||||
DBusProperty {
|
||||
id: linkProvidersProperty
|
||||
object: DaemonDbusInterface
|
||||
read: "linkProviders"
|
||||
defaultValue: []
|
||||
}
|
||||
|
||||
Repeater {
|
||||
model: linkProvidersProperty.value
|
||||
|
||||
FormCard.FormCheckDelegate {
|
||||
required property string modelData
|
||||
|
||||
readonly property string linkProviderId: modelData.split('|')[0]
|
||||
readonly property string displayName: switch (linkProviderId) {
|
||||
case 'BluetoothLinkProvider':
|
||||
return i18nc("@info KDE Connect provider name", "Bluetooth")
|
||||
case 'LoopbackLinkProvider':
|
||||
return i18nc("@info KDE Connect provider name", "Loopback")
|
||||
case 'LanLinkProvider':
|
||||
return i18nc("@info KDE Connect provider name", "WiFi Network")
|
||||
}
|
||||
|
||||
checked: modelData.split('|')[1] === 'enabled'
|
||||
text: displayName
|
||||
|
||||
onCheckedChanged: {
|
||||
DaemonDbusInterface.setLinkProviderState(linkProviderId, checked);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FormCard.FormCard {
|
||||
Layout.topMargin: Kirigami.Units.gridUnit
|
||||
|
||||
|
|
|
@ -13,11 +13,12 @@
|
|||
|
||||
#include <QBluetoothServiceInfo>
|
||||
|
||||
BluetoothLinkProvider::BluetoothLinkProvider()
|
||||
BluetoothLinkProvider::BluetoothLinkProvider(bool isDisabled)
|
||||
: mServiceUuid(QBluetoothUuid(QStringLiteral("185f3df4-3268-4e3f-9fca-d4d5059915bd")))
|
||||
, mServiceDiscoveryAgent(new QBluetoothServiceDiscoveryAgent(this))
|
||||
, connectTimer(new QTimer(this))
|
||||
{
|
||||
this->mDisabled = isDisabled;
|
||||
connectTimer->setInterval(30000);
|
||||
connectTimer->setSingleShot(false);
|
||||
|
||||
|
@ -32,7 +33,9 @@ BluetoothLinkProvider::BluetoothLinkProvider()
|
|||
void BluetoothLinkProvider::onStart()
|
||||
{
|
||||
qCDebug(KDECONNECT_CORE) << "BluetoothLinkProvider::onStart executed";
|
||||
if (!mDisabled) {
|
||||
tryToInitialise();
|
||||
}
|
||||
}
|
||||
|
||||
void BluetoothLinkProvider::tryToInitialise()
|
||||
|
@ -57,6 +60,7 @@ void BluetoothLinkProvider::tryToInitialise()
|
|||
|
||||
void BluetoothLinkProvider::onStop()
|
||||
{
|
||||
if (!mDisabled) {
|
||||
qCDebug(KDECONNECT_CORE) << "BluetoothLinkProvider::onStop executed";
|
||||
if (!mBluetoothServer) {
|
||||
return;
|
||||
|
@ -67,12 +71,34 @@ void BluetoothLinkProvider::onStop()
|
|||
mKdeconnectService.unregisterService();
|
||||
mBluetoothServer->close();
|
||||
mBluetoothServer->deleteLater();
|
||||
}
|
||||
}
|
||||
|
||||
void BluetoothLinkProvider::enable()
|
||||
{
|
||||
if (mDisabled) {
|
||||
mDisabled = false;
|
||||
tryToInitialise();
|
||||
}
|
||||
}
|
||||
|
||||
void BluetoothLinkProvider::disable()
|
||||
{
|
||||
if (!mDisabled) {
|
||||
mDisabled = true;
|
||||
onStop();
|
||||
|
||||
mBluetoothServer = nullptr;
|
||||
mServiceDiscoveryAgent = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void BluetoothLinkProvider::onNetworkChange()
|
||||
{
|
||||
qCDebug(KDECONNECT_CORE) << "BluetoothLinkProvider::onNetworkChange executed";
|
||||
if (!mDisabled) {
|
||||
tryToInitialise();
|
||||
}
|
||||
}
|
||||
|
||||
void BluetoothLinkProvider::connectError()
|
||||
|
|
|
@ -29,7 +29,8 @@ class KDECONNECTCORE_EXPORT BluetoothLinkProvider : public LinkProvider
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
BluetoothLinkProvider();
|
||||
BluetoothLinkProvider(bool disabled = false);
|
||||
|
||||
virtual ~BluetoothLinkProvider();
|
||||
|
||||
QString name() override
|
||||
|
@ -42,6 +43,10 @@ public:
|
|||
return 10;
|
||||
}
|
||||
|
||||
void enable() override;
|
||||
|
||||
void disable() override;
|
||||
|
||||
public Q_SLOTS:
|
||||
virtual void onNetworkChange() override;
|
||||
virtual void onStart() override;
|
||||
|
@ -69,6 +74,7 @@ private:
|
|||
QBluetoothServiceInfo mKdeconnectService;
|
||||
QBluetoothServiceDiscoveryAgent *mServiceDiscoveryAgent;
|
||||
QTimer *connectTimer;
|
||||
bool mDisabled;
|
||||
|
||||
QMap<QString, DeviceLink *> mLinks;
|
||||
|
||||
|
|
|
@ -34,12 +34,7 @@ protected:
|
|||
bool doKill() override;
|
||||
|
||||
private:
|
||||
enum {
|
||||
NoPortAvailable = UserDefinedError,
|
||||
SendingNetworkPacketFailed,
|
||||
SocketError,
|
||||
SslError,
|
||||
};
|
||||
enum { NoPortAvailable = UserDefinedError, SendingNetworkPacketFailed, SocketError, SslError };
|
||||
|
||||
Server *const m_server;
|
||||
QSslSocket *m_socket;
|
||||
|
|
|
@ -42,12 +42,13 @@ static const int MAX_REMEMBERED_IDENTITY_PACKETS = 42;
|
|||
|
||||
static const long MILLIS_DELAY_BETWEEN_CONNECTIONS_TO_SAME_DEVICE = 500;
|
||||
|
||||
LanLinkProvider::LanLinkProvider(bool testMode)
|
||||
LanLinkProvider::LanLinkProvider(bool testMode, bool isDisabled)
|
||||
: m_server(new Server(this))
|
||||
, m_udpSocket(this)
|
||||
, m_tcpPort(0)
|
||||
, m_testMode(testMode)
|
||||
, m_combineNetworkChangeTimer(this)
|
||||
, m_disabled(isDisabled)
|
||||
#ifdef KDECONNECT_MDNS
|
||||
, m_mdnsDiscovery(this)
|
||||
#endif
|
||||
|
@ -84,8 +85,27 @@ LanLinkProvider::~LanLinkProvider()
|
|||
{
|
||||
}
|
||||
|
||||
void LanLinkProvider::enable()
|
||||
{
|
||||
if (m_disabled == true) {
|
||||
m_disabled = false;
|
||||
onStart();
|
||||
}
|
||||
}
|
||||
void LanLinkProvider::disable()
|
||||
{
|
||||
if (m_disabled == false) {
|
||||
onStop();
|
||||
m_disabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
void LanLinkProvider::onStart()
|
||||
{
|
||||
if (m_disabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
const QHostAddress bindAddress = m_testMode ? QHostAddress::LocalHost : QHostAddress::Any;
|
||||
|
||||
bool success = m_udpSocket.bind(bindAddress, UDP_PORT, QUdpSocket::ShareAddress);
|
||||
|
@ -118,6 +138,9 @@ void LanLinkProvider::onStart()
|
|||
|
||||
void LanLinkProvider::onStop()
|
||||
{
|
||||
if (m_disabled) {
|
||||
return;
|
||||
}
|
||||
#ifdef KDECONNECT_MDNS
|
||||
m_mdnsDiscovery.onStop();
|
||||
#endif
|
||||
|
@ -128,6 +151,9 @@ void LanLinkProvider::onStop()
|
|||
|
||||
void LanLinkProvider::onNetworkChange()
|
||||
{
|
||||
if (m_disabled) {
|
||||
return;
|
||||
}
|
||||
if (m_combineNetworkChangeTimer.isActive()) {
|
||||
qCDebug(KDECONNECT_CORE) << "Device discovery triggered too fast, ignoring";
|
||||
return;
|
||||
|
@ -138,6 +164,9 @@ void LanLinkProvider::onNetworkChange()
|
|||
// I'm in a new network, let's be polite and introduce myself
|
||||
void LanLinkProvider::combinedOnNetworkChange()
|
||||
{
|
||||
if (m_disabled) {
|
||||
return;
|
||||
}
|
||||
if (!m_server->isListening()) {
|
||||
qWarning() << "TCP server not listening, not broadcasting";
|
||||
return;
|
||||
|
|
|
@ -30,7 +30,7 @@ public:
|
|||
/**
|
||||
* @param testMode Some special overrides needed while testing
|
||||
*/
|
||||
LanLinkProvider(bool testMode = false);
|
||||
LanLinkProvider(bool testMode = false, bool disabled = false);
|
||||
~LanLinkProvider() override;
|
||||
|
||||
QString name() override
|
||||
|
@ -43,6 +43,9 @@ public:
|
|||
return 20;
|
||||
}
|
||||
|
||||
void enable() override;
|
||||
void disable() override;
|
||||
|
||||
void sendUdpIdentityPacket(const QList<QHostAddress> &addresses);
|
||||
|
||||
static void configureSslSocket(QSslSocket *socket, const QString &deviceId, bool isDeviceTrusted);
|
||||
|
@ -92,6 +95,8 @@ private:
|
|||
const bool m_testMode;
|
||||
QTimer m_combineNetworkChangeTimer;
|
||||
|
||||
bool m_disabled;
|
||||
|
||||
#ifdef KDECONNECT_MDNS
|
||||
MdnsDiscovery m_mdnsDiscovery;
|
||||
#endif
|
||||
|
|
|
@ -24,6 +24,9 @@ public:
|
|||
virtual QString name() = 0;
|
||||
virtual int priority() = 0;
|
||||
|
||||
virtual void enable() = 0;
|
||||
virtual void disable() = 0;
|
||||
|
||||
public Q_SLOTS:
|
||||
virtual void onStart() = 0;
|
||||
virtual void onStop() = 0;
|
||||
|
|
|
@ -27,6 +27,14 @@ public:
|
|||
return 0;
|
||||
}
|
||||
|
||||
void enable() override
|
||||
{
|
||||
}
|
||||
|
||||
void disable() override
|
||||
{
|
||||
}
|
||||
|
||||
void onStart() override;
|
||||
void onStop() override;
|
||||
void onNetworkChange() override;
|
||||
|
|
|
@ -72,18 +72,22 @@ void Daemon::init()
|
|||
|
||||
qCDebug(KDECONNECT_CORE) << "DBus registration complete";
|
||||
|
||||
auto configInstance = KdeConnectConfig::instance();
|
||||
const auto disabledLinkProviders = configInstance.disabledLinkProviders();
|
||||
|
||||
// Load backends
|
||||
if (d->m_testMode)
|
||||
if (d->m_testMode) {
|
||||
d->m_linkProviders.insert(new LoopbackLinkProvider());
|
||||
else {
|
||||
d->m_linkProviders.insert(new LanLinkProvider());
|
||||
} else {
|
||||
d->m_linkProviders.insert(new LanLinkProvider(false, disabledLinkProviders.contains(QStringLiteral("LanLinkProvider"))));
|
||||
#ifdef KDECONNECT_BLUETOOTH
|
||||
d->m_linkProviders.insert(new BluetoothLinkProvider());
|
||||
d->m_linkProviders.insert(new BluetoothLinkProvider(disabledLinkProviders.contains(QStringLiteral("BluetoothLinkProvider"))));
|
||||
#endif
|
||||
#ifdef KDECONNECT_LOOPBACK
|
||||
d->m_linkProviders.insert(new LoopbackLinkProvider());
|
||||
#endif
|
||||
}
|
||||
Q_EMIT linkProvidersChanged(linkProviders());
|
||||
|
||||
qCDebug(KDECONNECT_CORE) << "Backends loaded";
|
||||
|
||||
|
@ -127,7 +131,7 @@ void Daemon::forceOnNetworkChange()
|
|||
{
|
||||
qCDebug(KDECONNECT_CORE) << "Sending onNetworkChange to" << d->m_linkProviders.size() << "LinkProviders";
|
||||
for (LinkProvider *a : std::as_const(d->m_linkProviders)) {
|
||||
qCDebug(KDECONNECT_CORE) << "Sending onNetworkChange to: " << a->name();
|
||||
qCDebug(KDECONNECT_CORE) << "Sending onNetworkChange to:" << a->name();
|
||||
a->onNetworkChange();
|
||||
}
|
||||
}
|
||||
|
@ -147,6 +151,55 @@ QSet<LinkProvider *> Daemon::getLinkProviders() const
|
|||
return d->m_linkProviders;
|
||||
}
|
||||
|
||||
QStringList Daemon::linkProviders() const
|
||||
{
|
||||
auto configInstance = KdeConnectConfig::instance();
|
||||
const auto disabledLinkProviders = configInstance.disabledLinkProviders();
|
||||
QStringList returnValue;
|
||||
|
||||
for (LinkProvider *a : std::as_const(d->m_linkProviders)) {
|
||||
QString line(a->name());
|
||||
|
||||
if (disabledLinkProviders.contains(a->name())) {
|
||||
line += QStringLiteral("|disabled");
|
||||
} else {
|
||||
line += QStringLiteral("|enabled");
|
||||
}
|
||||
|
||||
returnValue.append(line);
|
||||
}
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
void Daemon::setDisabledLinkProviders(const QStringList &disabledLinkProviders)
|
||||
{
|
||||
qCDebug(KDECONNECT_CORE) << "setDisabledLinkProviders called" << disabledLinkProviders;
|
||||
|
||||
KdeConnectConfig configInstance = KdeConnectConfig::instance();
|
||||
|
||||
configInstance.setDisabledLinkProviders(disabledLinkProviders);
|
||||
Q_EMIT linkProvidersChanged(linkProviders());
|
||||
}
|
||||
|
||||
void Daemon::setLinkProviderState(const QString &linkProvider, bool state)
|
||||
{
|
||||
qCDebug(KDECONNECT_CORE) << "setLinkProviderState called" << linkProvider << state;
|
||||
|
||||
KdeConnectConfig configInstance = KdeConnectConfig::instance();
|
||||
|
||||
auto disabledLinkProviders = configInstance.disabledLinkProviders();
|
||||
if (!state && !disabledLinkProviders.contains(linkProvider)) {
|
||||
disabledLinkProviders.append(linkProvider);
|
||||
} else if (state && disabledLinkProviders.contains(linkProvider)) {
|
||||
disabledLinkProviders.removeAll(linkProvider);
|
||||
} else {
|
||||
return; // no change
|
||||
}
|
||||
|
||||
configInstance.setDisabledLinkProviders(disabledLinkProviders);
|
||||
Q_EMIT linkProvidersChanged(linkProviders());
|
||||
}
|
||||
|
||||
QStringList Daemon::devices(bool onlyReachable, bool onlyTrusted) const
|
||||
{
|
||||
QStringList ret;
|
||||
|
|
|
@ -61,11 +61,19 @@ public Q_SLOTS:
|
|||
|
||||
// Returns a list of ids. The respective devices can be manipulated using the dbus path: "/modules/kdeconnect/Devices/"+id
|
||||
Q_SCRIPTABLE QStringList devices(bool onlyReachable = false, bool onlyPaired = false) const;
|
||||
|
||||
Q_SCRIPTABLE QMap<QString, QString> deviceNames(bool onlyReachable = false, bool onlyPaired = false) const;
|
||||
|
||||
Q_SCRIPTABLE QString deviceIdByName(const QString &name) const;
|
||||
|
||||
/// Return the list of link providers with their state e.g. "BluetoothLinkProvider|enabled"
|
||||
Q_SCRIPTABLE QStringList linkProviders() const;
|
||||
|
||||
/// Set the list of disabled link providers.
|
||||
Q_SCRIPTABLE void setDisabledLinkProviders(const QStringList &disabledLinkProviders);
|
||||
|
||||
/// Set the state of a link provider.
|
||||
Q_SCRIPTABLE void setLinkProviderState(const QString &linkProvider, bool state);
|
||||
|
||||
Q_SCRIPTABLE virtual void sendSimpleNotification(const QString &eventId, const QString &title, const QString &text, const QString &iconName) = 0;
|
||||
|
||||
Q_SIGNALS:
|
||||
|
@ -75,6 +83,7 @@ Q_SIGNALS:
|
|||
Q_SCRIPTABLE void deviceListChanged(); // Emitted when any of deviceAdded, deviceRemoved or deviceVisibilityChanged is emitted
|
||||
Q_SCRIPTABLE void announcedNameChanged(const QString &announcedName);
|
||||
Q_SCRIPTABLE void pairingRequestsChanged();
|
||||
Q_SCRIPTABLE void linkProvidersChanged(const QStringList &linkProviders);
|
||||
Q_SCRIPTABLE void customDevicesChanged(const QStringList &customDevices);
|
||||
|
||||
private Q_SLOTS:
|
||||
|
|
|
@ -76,6 +76,17 @@ void KdeConnectConfig::setName(const QString &name)
|
|||
d->m_config->sync();
|
||||
}
|
||||
|
||||
void KdeConnectConfig::setDisabledLinkProviders(const QStringList disabledProviders)
|
||||
{
|
||||
d->m_config->setValue(QStringLiteral("disabled_providers"), disabledProviders);
|
||||
d->m_config->sync();
|
||||
}
|
||||
|
||||
QStringList KdeConnectConfig::disabledLinkProviders() const
|
||||
{
|
||||
return d->m_config->value(QStringLiteral("disabled_providers")).toStringList();
|
||||
}
|
||||
|
||||
DeviceType KdeConnectConfig::deviceType()
|
||||
{
|
||||
const QByteArrayList platforms = qgetenv("PLASMA_PLATFORM").split(':');
|
||||
|
|
|
@ -35,6 +35,8 @@ public:
|
|||
QString certificatePath();
|
||||
|
||||
void setName(const QString &name);
|
||||
void setDisabledLinkProviders(const QStringList disabledProviders);
|
||||
QStringList disabledLinkProviders() const;
|
||||
|
||||
/*
|
||||
* Trusted devices
|
||||
|
|
|
@ -14,10 +14,7 @@ class KDECONNECTCORE_EXPORT NotificationServerInfo : public QObject
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
enum Hint {
|
||||
X_KDE_DISPLAY_APPNAME = 1,
|
||||
X_KDE_ORIGIN_NAME = 2,
|
||||
};
|
||||
enum Hint { X_KDE_DISPLAY_APPNAME = 1, X_KDE_ORIGIN_NAME = 2 };
|
||||
|
||||
Q_DECLARE_FLAGS(Hints, Hint)
|
||||
|
||||
|
|
|
@ -122,7 +122,6 @@
|
|||
<p xml:lang="fr">KDE Connect permet à votre téléphone et à votre ordinateur de mieux fonctionner ensemble : partagez votre presse-papier, accédez aux fichiers entre périphériques, transformez votre téléphone en télécommande pour votre ordinateur, trouvez votre téléphone lorsqu'il a glissé à l'arrière de votre canapé, voyez les notifications de votre téléphone sur votre ordinateur, et bien plus encore !</p>
|
||||
<p xml:lang="gl">KDE Connect fai que o seu teléfono e computador traballen mellor xuntos: comparta o portapapeis e ficheiros entre os dispositivos, use o teléfono como mando a distancia do computador, faga soar o teléfono para atopalo, reciba as notificacións do teléfono no computador, e moito máis!</p>
|
||||
<p xml:lang="he">KDE Connect משפר את החיבוריות בין הטלפון למחשב שלך: אפשר לשתף לוח גזירים ולגשת לקבצים בין המכשירים, להפוך את הטלפון שלך לשלט רחוק למחשב, לאתר את הטלפון שלך אם הוא נתקע בחריצים של הספה, לראות את ההתראות הטלפון שלך במחשב ועוד המון יכולות משובחות!</p>
|
||||
<p xml:lang="hu">A KDE Connect segítségével telefonja és számítógépe jobban együttműködik: megoszthatja a vágólapot és a fájlok elérését az eszközök között, a telefonját számítógépe távvezérlőjévé alakíthatja, megtalálja a telefonját, ha az becsúszott a kanapé hátuljába, láthatja a telefonos értesítéseket a számítógépéről, és még sok minden mást!</p>
|
||||
<p xml:lang="ia">KDE Connect face que tu telephono e computator functiona meliormente insimul: comparti tu area de transferentia e accede a files trans dispositivos, transforma tu telephono in un dispositivo de controlo remote per tu computator, trova tu telephonjo quando il es slippate retro tu sofa, vide tu notificationes de telephono ab tu computator, e multe altere!</p>
|
||||
<p xml:lang="is">Með KDE Connect vinna síminn þinn og tölvan betur saman: þú getur deilt klippispjaldinu og opnað skrár á milli tækja, breytt símanum í fjarstýringu fyrir tölvuna þína, fundið símann þegar hann dettur upp fyrir sófann þinn, skoðað símatilkynningar í tölvunni þinni og margt fleira!</p>
|
||||
<p xml:lang="it">KDE Connect fa sì che il tuo telefono e il tuo computer lavorino meglio insieme: condividi gli appunti e accedi ai file su più dispositivi, trasforma il tuo telefono in un telecomando per il tuo computer, ritrova il telefono quando è scivolato sullo schienale del divano, visualizza le notifiche del telefono dal tuo computer e molto altro ancora!</p>
|
||||
|
@ -132,7 +131,6 @@
|
|||
<p xml:lang="nl">KDE Connect maakt dat uw telefoon en computer beter samenwerken: deel uw klembord en heb toegang tot bestanden tussen apparaten, verander uw telefoon in een afstandsbediening voor uw computer, zoek uw telefoon wanneer het achter uw bank is gevallen, bekijk uw telefoonmeldingen vanuit uw computer en veel meer!</p>
|
||||
<p xml:lang="nn">KDE Connect lèt deg kopla telefonen din og datamaskina di saman. Du kan dela utklippstavle, få tilgang til filer på tvers av einingane, bruka telefonen som fjernkontroll for datamaskina, finn att telefonen når han har dotte ned bak sofaputene, sjå varslingar frå telefonen på datamaskina – og mykje anna!</p>
|
||||
<p xml:lang="pl">KDE Connect sprawia, że twój telefon i komputer lepiej współpracują: udostępnianie twojego schowka i dostęp do plików między urządzeniami, obsługa komputera z telefonu, znajdowanie telefonu, gdy wpadnie za łóżko, oglądanie powiadomień z telefonu na komputerze i wiele więcej!</p>
|
||||
<p xml:lang="pt-BR">O KDE Connect faz com que seu telefone e computador funcionem melhor juntos: compartilhe sua área de transferência e acesse arquivos entre dispositivos, transforme seu telefone em um controle remoto para seu computador, encontre seu telefone quando ele escorregar para o encosto do sofá, veja as notificações do seu telefone no computador e muito mais!</p>
|
||||
<p xml:lang="sl">KDE Connect izboljša skupno delovanje vašega telefona in računalnika: delite svoje odložišče in dostopajte do datotek med napravami, spremenite svoj telefon v daljinski upravljalnik za svoj računalnik, poiščite svoj telefon, ko je zdrsnil za naslonjalo vašega kavča, oglejte si telefonska obvestila iz vašega računalnika in še veliko več!</p>
|
||||
<p xml:lang="sv">KDE-anslut får din telefon och dator att fungera bättre tillsammans: dela klippbordet och få tillgång till filer mellan apparater, förvandla telefonen till en fjärrkontroll för datorn, hitta telefonen när den har glidit ner på baksidan av soffan, se telefonunderrättelser från datorn och mycket mer.</p>
|
||||
<p xml:lang="tr">KDE Bağlan, telefonunuzun ve bilgisayarınızın birlikte daha iyi çalışmasını sağlar: Panonuzu paylaşın ve dosyalara başka aygıtlardan erişin, telefonunuzu bilgisayarınızın uzaktan kumandasına dönüştürün, telefonunuz koltuğunuzun arkasına kaydığında onu bulun, telefon bildirimlerinizi bilgisayarınızdan görün ve çok daha fazlasını yapın!</p>
|
||||
|
@ -179,7 +177,6 @@
|
|||
<value key="KDE::google_play">https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp</value>
|
||||
<value key="KDE::windows_store">https://www.microsoft.com/store/apps/9n93mrmsxbf0</value>
|
||||
<value key="KDE::app_store">https://apps.apple.com/app/kde-connect/id1580245991</value>
|
||||
<value key="KDE::supporters">[fat_malama](https://www.instagram.com/fat_malama/); Alexandru Traistaru; Neeko iko; Daniel Lloyd-Miller; [mdPlusPlus](https://github.com/mdPlusPlus)</value>
|
||||
</custom>
|
||||
<releases>
|
||||
<release version="24.08.3" date="2024-11-07"/>
|
||||
|
|
|
@ -33,7 +33,8 @@ DBusResponseWaiter::DBusResponseWaiter()
|
|||
m_registered << qRegisterMetaType<QDBusPendingReply<>>("QDBusPendingReply<>")
|
||||
<< qRegisterMetaType<QDBusPendingReply<QVariant>>("QDBusPendingReply<QVariant>")
|
||||
<< qRegisterMetaType<QDBusPendingReply<bool>>("QDBusPendingReply<bool>") << qRegisterMetaType<QDBusPendingReply<int>>("QDBusPendingReply<int>")
|
||||
<< qRegisterMetaType<QDBusPendingReply<QString>>("QDBusPendingReply<QString>");
|
||||
<< qRegisterMetaType<QDBusPendingReply<QString>>("QDBusPendingReply<QString>")
|
||||
<< qRegisterMetaType<QDBusPendingReply<QStringList>>("QDBusPendingReply<QStringList>");
|
||||
}
|
||||
|
||||
QVariant DBusResponseWaiter::waitForReply(QVariant variant) const
|
||||
|
@ -73,6 +74,8 @@ void DBusAsyncResponse::setPendingCall(QVariant variant)
|
|||
connect(watcher, &QDBusPendingCallWatcher::finished, watcher, &QObject::deleteLater);
|
||||
connect(&m_timeout, &QTimer::timeout, watcher, &QObject::deleteLater);
|
||||
m_timeout.start();
|
||||
} else {
|
||||
qWarning() << "error: extractPendingCall didn't work";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -23,11 +23,7 @@ class KDECONNECTINTERFACES_EXPORT CommandsModel : public QAbstractListModel
|
|||
Q_PROPERTY(QString deviceId READ deviceId WRITE setDeviceId NOTIFY deviceIdChanged)
|
||||
|
||||
public:
|
||||
enum ModelRoles {
|
||||
KeyRole,
|
||||
NameRole,
|
||||
CommandRole,
|
||||
};
|
||||
enum ModelRoles { KeyRole, NameRole, CommandRole };
|
||||
|
||||
explicit CommandsModel(QObject *parent = nullptr);
|
||||
~CommandsModel() override;
|
||||
|
|
|
@ -23,11 +23,7 @@ class KDECONNECTINTERFACES_EXPORT RemoteCommandsModel : public QAbstractListMode
|
|||
Q_PROPERTY(QString deviceId READ deviceId WRITE setDeviceId NOTIFY deviceIdChanged)
|
||||
|
||||
public:
|
||||
enum ModelRoles {
|
||||
KeyRole,
|
||||
NameRole,
|
||||
CommandRole,
|
||||
};
|
||||
enum ModelRoles { KeyRole, NameRole, CommandRole };
|
||||
|
||||
explicit RemoteCommandsModel(QObject *parent = nullptr);
|
||||
~RemoteCommandsModel() override;
|
||||
|
|
|
@ -25,13 +25,7 @@ class KDECONNECTINTERFACES_EXPORT RemoteSinksModel : public QAbstractListModel
|
|||
Q_PROPERTY(QString deviceId READ deviceId WRITE setDeviceId NOTIFY deviceIdChanged)
|
||||
|
||||
public:
|
||||
enum ModelRoles {
|
||||
NameRole,
|
||||
DescriptionRole,
|
||||
MaxVolumeRole,
|
||||
VolumeRole,
|
||||
MutedRole,
|
||||
};
|
||||
enum ModelRoles { NameRole, DescriptionRole, MaxVolumeRole, VolumeRole, MutedRole };
|
||||
|
||||
explicit RemoteSinksModel(QObject *parent = nullptr);
|
||||
~RemoteSinksModel() override;
|
||||
|
|
77
kcm/kcm.cpp
77
kcm/kcm.cpp
|
@ -12,11 +12,14 @@
|
|||
#include <KLocalizedString>
|
||||
#include <KPluginFactory>
|
||||
#include <KPluginMetaData>
|
||||
#include <QMessageBox>
|
||||
#include <QtWidgets/QListView>
|
||||
#include <kcmutils_version.h>
|
||||
|
||||
#include <QQmlContext>
|
||||
#include <QQuickItem>
|
||||
#include <QQuickStyle>
|
||||
#include <qassert.h>
|
||||
|
||||
#include "dbushelpers.h"
|
||||
#include "dbusinterfaces.h"
|
||||
|
@ -92,8 +95,68 @@ KdeConnectKcm::KdeConnectKcm(QObject *parent, const KPluginMetaData &md, const Q
|
|||
}
|
||||
},
|
||||
this);
|
||||
|
||||
setWhenAvailable(
|
||||
daemon->linkProviders(),
|
||||
[this](bool error, const QStringList &linkProviders) {
|
||||
kcmUi.linkProviders_list->clear();
|
||||
for (int i = 0; i < linkProviders.size(); ++i) {
|
||||
const QStringList linkProvider = linkProviders.at(i).split(QStringLiteral("|"));
|
||||
const QString providerId = linkProvider.at(0);
|
||||
QString displayName;
|
||||
if (providerId == QLatin1StringView("BluetoothLinkProvider")) {
|
||||
displayName = i18nc("@info KDE Connect provider name", "Bluetooth");
|
||||
} else if (providerId == QLatin1StringView("LoopbackLinkProvider")) {
|
||||
displayName = i18nc("@info KDE Connect provider name", "Loopback");
|
||||
} else if (providerId == QLatin1StringView("LanLinkProvider")) {
|
||||
displayName = i18nc("@info KDE Connect provider name", "WiFi Network");
|
||||
} else {
|
||||
Q_ASSERT_X(false, Q_FUNC_INFO, "Unknow provider given");
|
||||
displayName = i18nc("@info KDE Connect provider name", "Unknown");
|
||||
}
|
||||
QString providerStatus = linkProvider.at(1);
|
||||
|
||||
QListWidgetItem *linkProviderItem = new QListWidgetItem(displayName, kcmUi.linkProviders_list);
|
||||
linkProviderItem->setData(Qt::UserRole, providerId);
|
||||
|
||||
if (providerStatus.compare(QStringLiteral("enabled")) == 0) {
|
||||
linkProviderItem->setCheckState(Qt::Checked);
|
||||
} else {
|
||||
linkProviderItem->setCheckState(Qt::Unchecked);
|
||||
}
|
||||
|
||||
kcmUi.linkProviders_list->addItem(linkProviderItem);
|
||||
}
|
||||
},
|
||||
this);
|
||||
|
||||
connect(daemon, &DaemonDbusInterface::announcedNameChanged, kcmUi.rename_edit, &QLineEdit::setText);
|
||||
connect(daemon, &DaemonDbusInterface::announcedNameChanged, kcmUi.rename_label, &QLabel::setText);
|
||||
connect(daemon, &DaemonDbusInterface::linkProvidersChanged, this, [this](const QStringList &providers) {
|
||||
if (kcmUi.linkProviders_list->count() == 0) {
|
||||
return; // not yet setup
|
||||
}
|
||||
for (auto i = 0, count = kcmUi.linkProviders_list->count(); i < count; i++) {
|
||||
const auto item = kcmUi.linkProviders_list->item(i);
|
||||
const auto id = item->data(Qt::UserRole).toString();
|
||||
|
||||
bool found = false;
|
||||
for (const auto &provider : providers) {
|
||||
if (provider.startsWith(id)) {
|
||||
const auto status = provider.split(QStringLiteral("|")).at(1);
|
||||
if (status.compare(QStringLiteral("enabled")) == 0) {
|
||||
item->setCheckState(Qt::Checked);
|
||||
} else {
|
||||
item->setCheckState(Qt::Unchecked);
|
||||
}
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Q_ASSERT_X(found, Q_FUNC_INFO, "A new backend appeared, this should not happen as the list of backends is static");
|
||||
}
|
||||
});
|
||||
setRenameMode(false);
|
||||
|
||||
setButtons(KCModule::Help | KCModule::NoAdditionalButton);
|
||||
|
@ -109,6 +172,7 @@ KdeConnectKcm::KdeConnectKcm(QObject *parent, const KPluginMetaData &md, const Q
|
|||
connect(kcmUi.renameDone_button, &QAbstractButton::clicked, this, &KdeConnectKcm::renameDone);
|
||||
connect(kcmUi.renameShow_button, &QAbstractButton::clicked, this, &KdeConnectKcm::renameShow);
|
||||
connect(kcmUi.pluginSelector, &KPluginWidget::changed, this, &KdeConnectKcm::pluginsConfigChanged);
|
||||
connect(kcmUi.backend_apply_button, &QAbstractButton::clicked, this, &KdeConnectKcm::saveBackends);
|
||||
|
||||
if (!args.isEmpty() && !args.first().isNull() && args.first().canConvert<QString>()) {
|
||||
const QString input = args.first().toString();
|
||||
|
@ -162,6 +226,19 @@ void KdeConnectKcm::refresh()
|
|||
daemon->forceOnNetworkChange();
|
||||
}
|
||||
|
||||
void KdeConnectKcm::saveBackends()
|
||||
{
|
||||
QStringList disabledLinkProviders;
|
||||
for (int i = 0; i < kcmUi.linkProviders_list->count(); ++i) {
|
||||
QListWidgetItem *item = kcmUi.linkProviders_list->item(i);
|
||||
if (item->checkState() == Qt::Unchecked) {
|
||||
disabledLinkProviders << item->data(Qt::UserRole).toString();
|
||||
}
|
||||
}
|
||||
|
||||
daemon->setDisabledLinkProviders(disabledLinkProviders);
|
||||
}
|
||||
|
||||
void KdeConnectKcm::deviceSelected(const QString &deviceId)
|
||||
{
|
||||
if (currentDevice) {
|
||||
|
|
|
@ -36,6 +36,7 @@ private Q_SLOTS:
|
|||
void sendPing();
|
||||
void pairingFailed(const QString &error);
|
||||
void refresh();
|
||||
void saveBackends();
|
||||
void renameShow();
|
||||
void renameDone();
|
||||
void setRenameMode(bool b);
|
||||
|
|
24
kcm/kcm.ui
24
kcm/kcm.ui
|
@ -128,6 +128,30 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Backends:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QListWidget" name="linkProviders_list">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="backend_apply_button">
|
||||
<property name="text">
|
||||
<string>Apply</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
"Description[fr]": "Configurer la synchronisation des périphériques",
|
||||
"Description[gl]": "Configurar a sincronización de dispositivos.",
|
||||
"Description[he]": "הגדרת סנכרון מכשירים",
|
||||
"Description[hu]": "Eszközszinkronizáció beállítása",
|
||||
"Description[ia]": "Configura Synchronisation de dispositivo",
|
||||
"Description[is]": "Grunnstilla samstillingu tækja",
|
||||
"Description[it]": "Configura la sincronizzazione del dispositivo",
|
||||
|
@ -26,8 +25,6 @@
|
|||
"Description[nn]": "Set opp einingssynkronisering",
|
||||
"Description[pa]": "ਡਿਵਾਈਸ ਸੈਕਰੋਨਾਈਜ਼ੇਸ਼ਨ ਦੀ ਸੰਰਚਨਾ",
|
||||
"Description[pl]": "Ustawienia synchronizacji urządzenia",
|
||||
"Description[pt_BR]": "Configurar sincronização do dispositivo",
|
||||
"Description[ru]": "Настройка синхронизации устройства",
|
||||
"Description[sl]": "Konfiguriraj sinhronizacijo naprave",
|
||||
"Description[sv]": "Anpassa enhetssynkronisering",
|
||||
"Description[ta]": "சாதன ஒத்திசைவு அமைப்புகள்",
|
||||
|
@ -85,7 +82,7 @@
|
|||
"X-DocPath": "kdeconnect/index.html",
|
||||
"X-KDE-Keywords": "network,kde connect,connect,phone,sync,mobile,android,ios,send files,share files,transfer files,receive files,devices,device,synchronization,calls,telephone,smartphone,contacts,sms,phone notifications,control volume,system volume,ringtone,play sound,presentation,take picture,take photo,shared clipboard,conectivity monitor,remote input,remote mouse,remote keyboard,mpris,phone integration,commands,lock device,multimedia control,sftp,browse phone,share",
|
||||
"X-KDE-Keywords[ar]": "هاتف,أندرويد,جهاز,تحكم,وسائط,رن,صوت,متصل,شبكة,جوال,متنقل,اتصل,هاتف ذكي,متراسلون,أخذ صورة,لوحة مفاتيح",
|
||||
"X-KDE-Keywords[bg]": "мрежа, свързване с kde, свързване, телефон, синхронизиране, мобилен телефон, android, ios, изпращане на файлове, споделяне файлове,прехвърляне на файлове,получаване на файлове,устройства,устройство,синхронизация,повиквания,телефон, смартфон, контакти, sms, телефонни известия, контрол на звука, система сила на звука, мелодия, възпроизвеждане на звук, презентация, правене на снимка, правене на снимка, споделен клипборд, монитор за свързаност, отдалечено въвеждане, отдалечена мишка, отдалечена клавиатура,mpris, телефонна интеграция, команди, заключване на устройство, управление на мултимедия, sftp, разглеждане телефон,споделяне",
|
||||
"X-KDE-Keywords[bg]": "мрежа, свързване с kde, свързване, телефон, синхронизиране, мобилен телефон, android, ios, изпращане на файлове, споделянефайлове,прехвърляне на файлове,получаване на файлове,устройства,устройство,синхронизация,повиквания,телефон, смартфон, контакти, sms, телефонни известия, контрол на звука, системасила на звука, мелодия, възпроизвеждане на звук, презентация, правене на снимка, правене на снимка, споделеноклипборд, монитор за свързаност, отдалечено въвеждане, отдалечена мишка, отдалечена клавиатура,mpris, телефонна интеграция, команди, заключване на устройство, управление на мултимедия, sftp, разглежданетелефон,споделете",
|
||||
"X-KDE-Keywords[ca@valencia]": "xarxa,kde connect,connect,telèfon,sincronitzar,mòbil,android,ios,enviar fitxers,compartir fitxers,transferir fitxers,rebre fitxers,dispositius,dispositius,sincronització,tocades,telèfon,telèfon intel·ligent,contactes,sms,notificacions de telèfon,control de volum,volum del sistema,to de tocada,reproducció de so,presentació,prendre imatge,prendre foto,porta-retalls compartit,connectivitat de monitor,entrada remota,ratolí remot,teclat remot,mpris,integració del telèfon,ordres,bloqueig de dispositiu,control multimèdia,sftp,navegar de telèfon,compartir",
|
||||
"X-KDE-Keywords[ca]": "xarxa,kde connect,connect,telèfon,sincronitzar,mòbil,android,ios,enviar fitxers,compartir fitxers,transferir fitxers,rebre fitxers,dispositius,dispositius,sincronització,trucades,telèfon,telèfon intel·ligent,contactes,sms,notificacions de telèfon,control de volum,volum del sistema,to de trucada,reproducció de so,presentació,prendre imatge,prendre foto,porta-retalls compartit,connectivitat de monitor,entrada remota,ratolí remot,teclat remot,mpris,integració del telèfon,ordres,bloqueig de dispositiu,control multimèdia,sftp,navegar de telèfon,compartir",
|
||||
"X-KDE-Keywords[cs]": "síť,kde connect,spojit,telefon,synchronizace,mobilita,android,ios,poslat soubory,sdílet soubory,přenos souborů,příjem souborů,zařízení,synchronizace,telefonáty,chytrý telefon,kontakty,sms,oznámení na telefonu,ovládání hlasitosti,hlasitost systému,vyzváněcí melodie,přehrát melodii,prezentace,zachytit obrázek,pořídit fotku,sdílená schránka,monitor připojení,vzdálené ovládání,vzdálená myš,vzdálená klávesnice,mpris,integrace telefonu,příkazy,zamknout zařízení,ovládání multimédií,sftp,prohlížení telefonu,sdílet",
|
||||
|
@ -106,7 +103,6 @@
|
|||
"X-KDE-Keywords[nl]": "netwerk,kde verbinden,telefoon,sync,mobiel,android,ios,bestanden verzenden,bestanden delen,bestanden overdragen,bestanden ontvangen,apparaten,apparaat,synchronisatie,oproepen,telefoon,smartphone,contactpersonen,sms,telefoonmeldingen,volumebesturing,systeemvolume,ringtone,geluid afspelen,presentatie,foto maken,gedeeld klembord,connectiviteitsmonitor,invoer op afstand,muis op afstand,toetsenbord op afstand,mpris,telefoonintegratie,commando's,apparaat vergrendelen,multimediabesturing,sftp,delen",
|
||||
"X-KDE-Keywords[nn]": "nettverk,kde connect,kopla til,tilkopling,telefon,synkroniser,mobil,android,ios,send filer,overfør filer,ta imot filer,einingar,eining,synkronisering,samtale,samtalar,samtaler,anrop,oppringing,ringje,smarttelefon,kontaktar,adressebok,sms,varslingar,lydstyrke,systemlydstyrke,ringjetone,spel lyd,presentasjon,ta bilete,ta foto,delt utklippstavle,del utklippstavle,sambandsovervaking,tilkoplingsovervaking,fjerntastatur,fjernstyring,fjernmus,mpris,telefonintegrasjon,kommandoar,lås eining,multimediakontroll,sftp,bla gjennom telefon,del,deling",
|
||||
"X-KDE-Keywords[pl]": "sieć,kde connect,podłącz,telefon,synchronizacja,komórka,android,ios,wyślij pliki,udostępnij pliki,prześlij pliki,pobierz pliki,urządzenia,urządzenie,synchronizacja,rozmowy,telefon,smartfon,kontakty,sms,powiadomienia na telefonie,sterowanie głośnością,głośność systemowa,dzwonek,odtwórz dźwięk,prezentacja,zrób zdjęcie,zrób zdjęcie,współdzielony schowek,monitor łączności,zdalna obsługa,zdalna mysz,zdalna klawiatura,mpris,integracja z telefonem,polecenia,zblokuj urządzenie,sterowani multimediami,sftp,przeglądanie telefonu,udostępnij",
|
||||
"X-KDE-Keywords[pt_BR]": "rede, kde connect, conectar, telefone, sincronizar, celular, android, ios, enviar arquivos, compartilhar arquivos, transferir arquivos, receber arquivos, dispositivos, dispositivo, sincronização, chamadas, telefone, smartphone, contatos, sms, notificações do telefone, controlar volume, volume do sistema, toque, reproduzir som, apresentação, tirar foto, tirar foto, área de transferência compartilhada, monitor de conectividade, entrada remota, mouse remoto, teclado remoto, mpris, integração do telefone, comandos, bloquear dispositivo, controle multimídia, sftp, navegar no telefone, compartilhar",
|
||||
"X-KDE-Keywords[ru]": "network,kde connect,connect,phone,sync,mobile,android,ios,send files,share files,transfer files,receive files,devices,device,synchronization,calls,telephone,smartphone,contacts,sms,phone notifications,control volume,system volume,ringtone,play sound,presentation,take picture,take photo,shared clipboard,conectivity monitor,remote input,remote mouse,remote keyboard,mpris,phone integration,commands,lock device,multimedia control,sftp,browse phone,share,подключиться,телефон,синхронизировать,мобильный,андроид,отправить файлы,поделиться файлами,передать файлы,получить файлы,устройства,устройство,синхронизация,звонки,вызовы,смартфон,контакты,смс,уведомления на телефоне,управлять громкостью,системная громкость,рингтон,воспроизвести звук,презентация,сделать снимок,общий буфер обмена,мониторинг подключения,удалённый ввод,удалённая мышь,удалённая клавиатура,интеграция с телефоном,команды,заблокировать устройство,управление мультимедиа,общий доступ,опубликовать",
|
||||
"X-KDE-Keywords[sl]": "omrežje,kde connect,povezava,telefon,sinhronizacija,mobilnik,android,ios,pošiljanje datotek,souporaba datotek,prenos datotek,prejemanje datotek,naprave,naprava,sinhronizacija,klici,telefon,pametni telefon,stiki,sms,telefonska obvestila,nadzor glasnosti,glasnost sistema,melodija zvonjenja,predvajanje zvoka,predstavitev,slikanje,fotografiranje,skupno odložišče,nadzor povezljivosti, oddaljeni vnos,oddaljena miška,oddaljena tipkovnica,mpris,integracija telefona, ukazi,zaklepanje naprave,večpredstavnostni nadzor,sftp, brskanje po telefonu,skupni disk",
|
||||
"X-KDE-Keywords[sv]": "nätverk,kde anslut,anslut,telefon,synkronisera,mobil,android,ios,skicka filer,dela filer,överför filer,ta emot filer,apparater,apparat,synkronisering,samtal,telefon,smart telefon,kontakter,sms,telefonunderrättelser,kontrollera volym,systemvolym,rington,spela ljud,presentation,ta bild,ta foto,delat klippbord,anslutningsövervakare,fjärrinmatning,fjärrmus,fjärrtangentbord,mpris,telefonintegrering,kommandon,lås apparat,multimediastyrning,sftp,bläddra på telefon,dela",
|
||||
|
|
|
@ -62,7 +62,6 @@
|
|||
"Description[fr]": "Gérer les appareils connectés",
|
||||
"Description[gl]": "Xestionar os dispositivos conectados.",
|
||||
"Description[he]": "ניהול התקנים מחוברים",
|
||||
"Description[hu]": "Csatlakoztatott eszközök kezelése",
|
||||
"Description[ia]": "Gere dispositivos connectite",
|
||||
"Description[is]": "Stjórna tengdum tækjum",
|
||||
"Description[it]": "Gestisci i dispositivi connessi",
|
||||
|
@ -74,8 +73,6 @@
|
|||
"Description[nn]": "Handsam tilkopla einingar",
|
||||
"Description[pa]": "ਕਨੈਕਟ ਹੋਏ ਡਿਵਾਈਸਾਂ ਦਾ ਇੰਤਜ਼ਾਮ",
|
||||
"Description[pl]": "Zarządzaj podłączonymi urządzeniami",
|
||||
"Description[pt_BR]": "Gerenciar dispositivos conectados",
|
||||
"Description[ru]": "Управление подключёнными устройствами",
|
||||
"Description[sl]": "Upravljaj povezane naprave",
|
||||
"Description[sv]": "Hantera anslutna apparater",
|
||||
"Description[ta]": "இணைந்துள்ள சாதனங்களை நிர்வகிக்க விடும்",
|
||||
|
|
|
@ -36,10 +36,7 @@ private:
|
|||
// Keep these values in sync with THRESHOLD* constants in
|
||||
// kdeconnect-android:BatteryPlugin.java
|
||||
// see README for their meaning
|
||||
enum ThresholdBatteryEvent {
|
||||
ThresholdNone = 0,
|
||||
ThresholdBatteryLow = 1,
|
||||
};
|
||||
enum ThresholdBatteryEvent { ThresholdNone = 0, ThresholdBatteryLow = 1 };
|
||||
|
||||
int m_charge = -1;
|
||||
bool m_isCharging = false;
|
||||
|
|
|
@ -24,10 +24,7 @@ class ClipboardListener : public QObject
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
enum ClipboardContentType {
|
||||
ClipboardContentTypeUnknown = 0,
|
||||
ClipboardContentTypePassword = 1,
|
||||
};
|
||||
enum ClipboardContentType { ClipboardContentTypeUnknown = 0, ClipboardContentTypePassword = 1 };
|
||||
|
||||
protected:
|
||||
ClipboardListener();
|
||||
|
|
|
@ -15,13 +15,7 @@
|
|||
#include <X11/keysym.h>
|
||||
#include <fakekey/fakekey.h>
|
||||
|
||||
enum MouseButtons {
|
||||
LeftMouseButton = 1,
|
||||
MiddleMouseButton = 2,
|
||||
RightMouseButton = 3,
|
||||
MouseWheelUp = 4,
|
||||
MouseWheelDown = 5,
|
||||
};
|
||||
enum MouseButtons { LeftMouseButton = 1, MiddleMouseButton = 2, RightMouseButton = 3, MouseWheelUp = 4, MouseWheelDown = 5 };
|
||||
|
||||
// Translation table to keep in sync within all the implementations
|
||||
int SpecialKeysMap[] = {
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
# Copyright (C) 2024 This file is copyright:
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR This file is copyright:
|
||||
# This file is distributed under the same license as the kdeconnect-kde package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2024 Mincho Kondarev <mkondarev@yahoo.de>
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kdeconnect-kde\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2023-11-05 12:32+0000\n"
|
||||
"PO-Revision-Date: 2024-11-09 20:04+0100\n"
|
||||
"Last-Translator: Mincho Kondarev <mkondarev@yahoo.de>\n"
|
||||
"PO-Revision-Date: 2022-02-14 13:41+0100\n"
|
||||
"Last-Translator: mkkDr2010 <mkondarev@yahoo.de>\n"
|
||||
"Language-Team: Bulgarian <kde-i18n-doc@kde.org>\n"
|
||||
"Language: bg\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 24.08.2\n"
|
||||
"X-Generator: Poedit 3.0.1\n"
|
||||
|
||||
#: sendfileitemaction.cpp:72
|
||||
#, kde-format
|
||||
|
@ -25,4 +26,4 @@ msgstr "Изпращане чрез KDE Connect"
|
|||
#: sendfileitemaction.cpp:79
|
||||
#, kde-format
|
||||
msgid "Send to '%1' via KDE Connect"
|
||||
msgstr "Изпращане на „%1“ чрез KDE Connect"
|
||||
msgstr "Изпращане на \"%1\" чрез KDE Connect"
|
||||
|
|
|
@ -7,7 +7,7 @@ msgstr ""
|
|||
"Project-Id-Version: kdeconnect-kde\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2024-10-12 00:38+0000\n"
|
||||
"PO-Revision-Date: 2024-11-10 13:05+0100\n"
|
||||
"PO-Revision-Date: 2024-07-24 12:57+0200\n"
|
||||
"Last-Translator: Mincho Kondarev <mkondarev@yahoo.de>\n"
|
||||
"Language-Team: Bulgarian <kde-i18n-doc@kde.org>\n"
|
||||
"Language: bg\n"
|
||||
|
@ -15,7 +15,7 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 24.11.70\n"
|
||||
"X-Generator: Lokalize 24.07.70\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
|
@ -100,7 +100,7 @@ msgstr "(C) 2016 Aleix Pol Gonzalez"
|
|||
#: main.cpp:94
|
||||
#, kde-format
|
||||
msgid "Configure..."
|
||||
msgstr "Настройки..."
|
||||
msgstr "Настойки..."
|
||||
|
||||
#: main.cpp:120
|
||||
#, kde-format
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
# Copyright (C) 2024 This file is copyright:
|
||||
# Copyright (C) YEAR This file is copyright:
|
||||
# This file is distributed under the same license as the kdeconnect-kde package.
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2022, 2023, 2024 Mincho Kondarev <mkondarev@yahoo.de>
|
||||
# Mincho Kondarev <mkondarev@yahoo.de>, 2022, 2023.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kdeconnect-kde\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2024-10-27 00:39+0000\n"
|
||||
"PO-Revision-Date: 2024-11-09 20:04+0100\n"
|
||||
"PO-Revision-Date: 2023-08-29 15:01+0200\n"
|
||||
"Last-Translator: Mincho Kondarev <mkondarev@yahoo.de>\n"
|
||||
"Language-Team: Bulgarian <kde-i18n-doc@kde.org>\n"
|
||||
"Language: bg\n"
|
||||
|
@ -15,7 +15,7 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 24.08.2\n"
|
||||
"X-Generator: Lokalize 23.04.3\n"
|
||||
|
||||
#: battery/batteryplugin.cpp:119
|
||||
#, kde-format
|
||||
|
@ -102,7 +102,7 @@ msgstr "Отговор"
|
|||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Reply to %1..."
|
||||
msgstr "Отговор до „%1“..."
|
||||
msgstr "Отговор до \"%1\"..."
|
||||
|
||||
#: notifications/sendreplydialog.cpp:29
|
||||
#, kde-format
|
||||
|
|
|
@ -7,7 +7,7 @@ msgstr ""
|
|||
"Project-Id-Version: kdeconnect-kde\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2024-07-13 00:39+0000\n"
|
||||
"PO-Revision-Date: 2024-11-09 20:04+0100\n"
|
||||
"PO-Revision-Date: 2024-07-14 21:46+0200\n"
|
||||
"Last-Translator: Mincho Kondarev <mkondarev@yahoo.de>\n"
|
||||
"Language-Team: Bulgarian <kde-i18n-doc@kde.org>\n"
|
||||
"Language: bg\n"
|
||||
|
@ -15,7 +15,7 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 24.08.2\n"
|
||||
"X-Generator: Lokalize 24.07.70\n"
|
||||
|
||||
#: package/contents/ui/Battery.qml:33
|
||||
#, kde-format
|
||||
|
@ -147,7 +147,7 @@ msgstr "Отказ"
|
|||
#, kde-format
|
||||
msgctxt "@info:placeholder"
|
||||
msgid "Reply to %1…"
|
||||
msgstr "Отговор до „%1“…"
|
||||
msgstr "Отговор до \"%1\"…"
|
||||
|
||||
#: package/contents/ui/DeviceDelegate.qml:430
|
||||
#, kde-format
|
||||
|
|
|
@ -8,7 +8,7 @@ msgstr ""
|
|||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2024-10-19 00:39+0000\n"
|
||||
"PO-Revision-Date: 2024-11-09 16:10+0100\n"
|
||||
"PO-Revision-Date: 2024-09-14 16:55+0200\n"
|
||||
"Last-Translator: Adrián Chaves (Gallaecio) <adrian@chaves.io>\n"
|
||||
"Language-Team: Proxecto Trasno (proxecto@trasno.gal)\n"
|
||||
"Language: gl\n"
|
||||
|
@ -16,7 +16,7 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 24.08.3\n"
|
||||
"X-Generator: Lokalize 24.05.2\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
|
@ -108,7 +108,7 @@ msgstr "(estado)"
|
|||
#: kcm.ui:238
|
||||
#, kde-format
|
||||
msgid "KSqueezedTextLabel"
|
||||
msgstr "KSqueezedTextLabel"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QPushButton, cancel_button)
|
||||
#: kcm.ui:269
|
||||
|
@ -180,22 +180,25 @@ msgstr ""
|
|||
#: list.qml:52
|
||||
#, kde-format
|
||||
msgid "Remembered"
|
||||
msgstr "Lembrouse"
|
||||
msgstr ""
|
||||
|
||||
#: list.qml:54
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Available plugins"
|
||||
msgid "Available"
|
||||
msgstr "Dispoñíbel"
|
||||
msgstr "Complementos dispoñíbeis"
|
||||
|
||||
#: list.qml:56
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "KDE Connect"
|
||||
msgid "Connected"
|
||||
msgstr "Conectouse"
|
||||
msgstr "KDE Connect"
|
||||
|
||||
#: list.qml:61
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No device selected."
|
||||
msgid "No devices found"
|
||||
msgstr "Non se atopou ningún dispositivo."
|
||||
msgstr "Non se seleccionou ningún dispositivo."
|
||||
|
||||
#~ msgid "🔑 abababab"
|
||||
#~ msgstr "🔑 abababab"
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2024-10-19 00:39+0000\n"
|
||||
"PO-Revision-Date: 2024-11-15 20:13+0100\n"
|
||||
"PO-Revision-Date: 2024-10-03 21:46+0200\n"
|
||||
"Last-Translator: Kristof Kiszel <ulysses@fsf.hu>\n"
|
||||
"Language-Team: Hungarian <kde-l10n-hu@kde.org>\n"
|
||||
"Language: hu\n"
|
||||
|
@ -17,7 +17,7 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Lokalize 24.08.3\n"
|
||||
"X-Generator: Lokalize 24.08.0\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
|
@ -109,7 +109,7 @@ msgstr "(állapot)"
|
|||
#: kcm.ui:238
|
||||
#, kde-format
|
||||
msgid "KSqueezedTextLabel"
|
||||
msgstr "KSqueezedTextLabel"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QPushButton, cancel_button)
|
||||
#: kcm.ui:269
|
||||
|
@ -180,22 +180,25 @@ msgstr ""
|
|||
#: list.qml:52
|
||||
#, kde-format
|
||||
msgid "Remembered"
|
||||
msgstr "Megjegyzett"
|
||||
msgstr ""
|
||||
|
||||
#: list.qml:54
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Available plugins"
|
||||
msgid "Available"
|
||||
msgstr "Elérhető"
|
||||
msgstr "Elérhető bővítmények"
|
||||
|
||||
#: list.qml:56
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "KDE Connect"
|
||||
msgid "Connected"
|
||||
msgstr "Kapcsolódva"
|
||||
msgstr "KDE Connect"
|
||||
|
||||
#: list.qml:61
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No device selected."
|
||||
msgid "No devices found"
|
||||
msgstr "Nem találhatók eszközök"
|
||||
msgstr "Nincs kiválasztva eszköz."
|
||||
|
||||
#~ msgid "🔑 abababab"
|
||||
#~ msgstr "🔑 abababab"
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
#
|
||||
# André Marcelo Alvarenga <alvarenga@kde.org>, 2020.
|
||||
# Luiz Fernando Ranghetti <elchevive@opensuse.org>, 2021, 2023.
|
||||
# SPDX-FileCopyrightText: 2023, 2024 Geraldo Simiao <geraldosimiao@fedoraproject.org>
|
||||
# Geraldo Simiao <geraldosimiao@fedoraproject.org>, 2023.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kdeconnect-kde\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2024-10-12 00:38+0000\n"
|
||||
"PO-Revision-Date: 2024-11-25 01:22-0300\n"
|
||||
"PO-Revision-Date: 2023-08-11 00:52-0300\n"
|
||||
"Last-Translator: Geraldo Simiao <geraldosimiao@fedoraproject.org>\n"
|
||||
"Language-Team: Brazilian Portuguese <kde-i18n-pt_BR@kde.org>\n"
|
||||
"Language: pt_BR\n"
|
||||
|
@ -18,17 +18,17 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"X-Generator: Lokalize 24.08.3\n"
|
||||
"X-Generator: Lokalize 23.04.3\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
msgid "Your names"
|
||||
msgstr "André Marcelo Alvarenga, Geraldo Simião"
|
||||
msgstr "André Marcelo Alvarenga"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "EMAIL OF TRANSLATORS"
|
||||
msgid "Your emails"
|
||||
msgstr "alvarenga@kde.org, geraldosimiao@fedoraproject.org"
|
||||
msgstr "alvarenga@kde.org"
|
||||
|
||||
#: deviceindicator.cpp:53
|
||||
#, kde-format
|
||||
|
@ -47,9 +47,10 @@ msgid "Ring device"
|
|||
msgstr "Fazer o dispositivo tocar"
|
||||
|
||||
#: deviceindicator.cpp:95
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a file/URL"
|
||||
msgid "Send files"
|
||||
msgstr "Enviar arquivos"
|
||||
msgstr "Enviar um arquivo/URL"
|
||||
|
||||
#: deviceindicator.cpp:117
|
||||
#, kde-format
|
||||
|
|
|
@ -10,7 +10,7 @@ msgstr ""
|
|||
"Project-Id-Version: kdeconnect-kcm\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2024-10-19 00:39+0000\n"
|
||||
"PO-Revision-Date: 2024-11-25 01:24-0300\n"
|
||||
"PO-Revision-Date: 2024-07-19 18:23-0300\n"
|
||||
"Last-Translator: Geraldo Simiao <geraldosimiao@fedoraproject.org>\n"
|
||||
"Language-Team: Brazilian Portuguese <kde-i18n-pt_BR@kde.org>\n"
|
||||
"Language: pt_BR\n"
|
||||
|
@ -18,7 +18,7 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"X-Generator: Lokalize 24.08.3\n"
|
||||
"X-Generator: Lokalize 24.05.2\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
|
@ -31,9 +31,10 @@ msgid "Your emails"
|
|||
msgstr "alvarenga@kde.org, geraldosimiao@fedoraproject.org"
|
||||
|
||||
#: kcm.cpp:88
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "KDE Connect Settings"
|
||||
msgid "Error: KDE Connect is not running"
|
||||
msgstr "Erro: O KDE Connect não está sendo executado"
|
||||
msgstr "Configurações do KDE Connect"
|
||||
|
||||
#: kcm.cpp:204
|
||||
#, kde-format
|
||||
|
@ -110,7 +111,7 @@ msgstr "(Status)"
|
|||
#: kcm.ui:238
|
||||
#, kde-format
|
||||
msgid "KSqueezedTextLabel"
|
||||
msgstr "KSqueezedTextLabel"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QPushButton, cancel_button)
|
||||
#: kcm.ui:269
|
||||
|
@ -182,22 +183,24 @@ msgstr ""
|
|||
#: list.qml:52
|
||||
#, kde-format
|
||||
msgid "Remembered"
|
||||
msgstr "Salvo"
|
||||
msgstr ""
|
||||
|
||||
#: list.qml:54
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Available plugins"
|
||||
msgid "Available"
|
||||
msgstr "Disponível"
|
||||
msgstr "Plugins disponíveis"
|
||||
|
||||
#: list.qml:56
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "KDE Connect"
|
||||
msgid "Connected"
|
||||
msgstr "Conectado"
|
||||
msgstr "KDE Connect"
|
||||
|
||||
#: list.qml:61
|
||||
#, kde-format
|
||||
msgid "No devices found"
|
||||
msgstr "Nenhum dispositivo encontrado"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "🔑 abababab"
|
||||
#~ msgstr "🔑 abababab"
|
||||
|
|
|
@ -4,13 +4,12 @@
|
|||
# SPDX-FileCopyrightText: 2020, 2024 Alexander Yavorsky <kekcuha@gmail.com>
|
||||
# Дронова Юлия <juliette.tux@gmail.com>, 2021.
|
||||
# Olesya Gerasimenko <translation-team@basealt.ru>, 2023.
|
||||
# Alexander Yavorsky <kekcuha@gmail.com>, 2024.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kdeconnect-kde\n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2024-10-12 00:38+0000\n"
|
||||
"PO-Revision-Date: 2024-11-17 17:42+0300\n"
|
||||
"PO-Revision-Date: 2024-01-10 21:59+0300\n"
|
||||
"Last-Translator: Alexander Yavorsky <kekcuha@gmail.com>\n"
|
||||
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
|
||||
"Language: ru\n"
|
||||
|
@ -19,7 +18,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"
|
||||
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Lokalize 21.08.3\n"
|
||||
"X-Generator: Lokalize 23.08.4\n"
|
||||
|
||||
#, kde-format
|
||||
msgctxt "NAME OF TRANSLATORS"
|
||||
|
@ -48,9 +47,10 @@ msgid "Ring device"
|
|||
msgstr "Позвонить на устройство"
|
||||
|
||||
#: deviceindicator.cpp:95
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Send a file/URL"
|
||||
msgid "Send files"
|
||||
msgstr "Передать файлы"
|
||||
msgstr "Передать файл/URL"
|
||||
|
||||
#: deviceindicator.cpp:117
|
||||
#, kde-format
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2024-10-19 00:39+0000\n"
|
||||
"PO-Revision-Date: 2024-11-17 17:44+0300\n"
|
||||
"PO-Revision-Date: 2024-06-30 17:26+0300\n"
|
||||
"Last-Translator: Alexander Yavorsky <kekcuha@gmail.com>\n"
|
||||
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
|
||||
"Language: ru\n"
|
||||
|
@ -33,9 +33,10 @@ msgstr ""
|
|||
"zawertun@gmail.com"
|
||||
|
||||
#: kcm.cpp:88
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "KDE Connect Settings"
|
||||
msgid "Error: KDE Connect is not running"
|
||||
msgstr "Ошибка: приложение KDE Connect не запущено"
|
||||
msgstr "Настройка KDE Connect"
|
||||
|
||||
#: kcm.cpp:204
|
||||
#, kde-format
|
||||
|
@ -113,7 +114,7 @@ msgstr "(состояние)"
|
|||
#: kcm.ui:238
|
||||
#, kde-format
|
||||
msgid "KSqueezedTextLabel"
|
||||
msgstr "KSqueezedTextLabel"
|
||||
msgstr ""
|
||||
|
||||
#. i18n: ectx: property (text), widget (QPushButton, cancel_button)
|
||||
#: kcm.ui:269
|
||||
|
@ -185,22 +186,25 @@ msgstr ""
|
|||
#: list.qml:52
|
||||
#, kde-format
|
||||
msgid "Remembered"
|
||||
msgstr "В списке"
|
||||
msgstr ""
|
||||
|
||||
#: list.qml:54
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "Available plugins"
|
||||
msgid "Available"
|
||||
msgstr "Доступно"
|
||||
msgstr "Доступные модули"
|
||||
|
||||
#: list.qml:56
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "KDE Connect"
|
||||
msgid "Connected"
|
||||
msgstr "Подключено"
|
||||
msgstr "KDE Connect"
|
||||
|
||||
#: list.qml:61
|
||||
#, kde-format
|
||||
#, fuzzy, kde-format
|
||||
#| msgid "No device selected."
|
||||
msgid "No devices found"
|
||||
msgstr "Не найдено ни одного устройства"
|
||||
msgstr "Устройство не выбрано."
|
||||
|
||||
#~ msgid "🔑 abababab"
|
||||
#~ msgstr "🔑 abababab"
|
||||
|
|
|
@ -80,7 +80,6 @@ GenericName[nl]=Instellingen voor synchronisatie van apparaat
|
|||
GenericName[nn]=Innstillingar for einingssynkronisering
|
||||
GenericName[pa]=ਡਿਵਾਈਸ ਸੈਕਰੋਨਾਈਜ਼ ਸੈਟਿੰਗਾਂ
|
||||
GenericName[pl]=Ustawienia synchronizacji urządzenia
|
||||
GenericName[pt_BR]=Configurações da sincronização de dispositivo
|
||||
GenericName[sl]=Nastavitve sinhronizacijenaprav
|
||||
GenericName[sv]=Inställning av enhetssynkronisering
|
||||
GenericName[ta]=சாதன ஒத்திசைவு அமைப்புகள்
|
||||
|
@ -115,7 +114,6 @@ Comment[nl]=Synchronisatie van apparaat configureren
|
|||
Comment[nn]=Set opp einingssynkronisering
|
||||
Comment[pa]=ਡਿਵਾਈਸ ਸੈਕਰੋਨਾਈਜ਼ੇਸ਼ਨ ਦੀ ਸੰਰਚਨਾ
|
||||
Comment[pl]=Ustawienia synchronizacji urządzenia
|
||||
Comment[pt_BR]=Configurar sincronização de dispositivo
|
||||
Comment[sl]=Konfiguriraj sinhronizacijo naprav
|
||||
Comment[sv]=Anpassa enhetssynkronisering
|
||||
Comment[ta]=சாதன ஒத்திசைவை அமைக்க விடும்
|
||||
|
|
|
@ -73,7 +73,6 @@ GenericName[nl]=Tekstberichten versturen
|
|||
GenericName[nn]=Tekstmeldingar
|
||||
GenericName[pa]=ਟੈਕਸਟ ਸੁਨੇਹੇ
|
||||
GenericName[pl]=Wiadomości tekstowe
|
||||
GenericName[pt_BR]=Mensagem de texto
|
||||
GenericName[sl]=Sporočanje besedil
|
||||
GenericName[sv]=Textmeddelanden
|
||||
GenericName[ta]=குறுஞ்செய்தி சேவை
|
||||
|
@ -108,7 +107,6 @@ Comment[nl]=Lees en verzend SMS berichten op verbonden apparaten
|
|||
Comment[nn]=Les og send tekstmeldingar på tilkopla einingar
|
||||
Comment[pa]=ਕਨੈਕਟ ਕੀਤੇ ਡਿਵਾਈਸਾਂ ਉੱਤੇ SMS ਸੁਨੇਹਿਆਂ ਨੂੰ ਪੜ੍ਹੋ ਅਤੇ ਭੇਜੋ
|
||||
Comment[pl]=Czytaj i wysyłaj wiadomości SMS na podłączonych urządzeniach
|
||||
Comment[pt_BR]=Ler e executar comandos nos dispositivos conectados
|
||||
Comment[sl]=Beri in pošiljaj SMS na povezanih napravah
|
||||
Comment[sv]=Läs och skicka meddelanden via SMS på anslutna apparater
|
||||
Comment[ta]=இணைந்துள்ள சாதனங்களில் குறுஞ்செய்திகளை படிக்கவும் அனுப்பவும் விடும்
|
||||
|
|
Loading…
Reference in a new issue