Compare commits

..

1 Commits

Author SHA1 Message Date
Joshua Goins
8dd5ba745f Add an option to toggle whether a room is a direct chat or not
This is useful if you accidentally created a room with someone, but not
as a "direct chat". Since this is a weird option, I stuck it under
developer tools for now but it could possibly surface into the regular
UI in the future.
2026-02-18 12:07:47 -05:00
68 changed files with 388 additions and 4246 deletions

View File

@@ -4,4 +4,3 @@
[BlueprintSettings]
kde/applications/neochat.packageAppx=True
libs/qt.qtMajorVersion=6
qt-libs/libquotient.version=rust

View File

@@ -4,17 +4,6 @@
"runtime": "org.kde.Platform",
"runtime-version": "6.10",
"sdk": "org.kde.Sdk",
"sdk-extensions" : [
"org.freedesktop.Sdk.Extension.rust-stable"
],
"build-options": {
"append-path": "/usr/lib/sdk/rust-stable/bin",
"env": {
"RUST_BACKTRACE": "1",
"CARGO_NET_OFFLINE": "true",
"RUSTFLAGS": "--remap-path-prefix =../"
}
},
"command": "neochat",
"tags": [
"nightly"
@@ -72,6 +61,26 @@
}
]
},
{
"name": "olm",
"buildsystem": "cmake-ninja",
"config-opts": [
"-DCMAKE_POLICY_VERSION_MINIMUM=3.5",
"-DOLM_TESTS=OFF"
],
"sources": [
{
"type": "git",
"url": "https://gitlab.matrix.org/matrix-org/olm.git",
"tag": "3.2.16",
"x-checker-data": {
"type": "git",
"tag-pattern": "^([\\d.]+)$"
},
"commit": "7e0c8277032e40308987257b711b38af8d77cc69"
}
]
},
{
"name": "libsecret",
"buildsystem": "meson",
@@ -119,38 +128,22 @@
"-DBUILD_TESTING=OFF"
]
},
{
"name": "corrosion",
"buildsystem": "cmake-ninja",
"sources": [
{
"type": "git",
"url": "https://github.com/corrosion-rs/corrosion",
"tag": "v0.6.0"
}
]
},
{
"name": "libQuotient",
"buildsystem": "cmake-ninja",
"sources": [
"flatpak/generated-sources.json",
{
"type": "git",
"url": "https://github.com/quotient-im/libquotient",
"branch": "tobias/rust-sdk-crypto"
"url": "https://github.com/quotient-im/libQuotient.git",
"branch": "dev",
"disable-submodules": true
}
],
"config-opts": [
"-DBUILD_WITH_QT6=ON",
"-DQuotient_ENABLE_E2EE=ON",
"-DBUILD_TESTING=OFF"
],
"build-options": {
"env": {
"CARGO_HOME": "/run/build/libQuotient/cargo"
}
}
]
},
{
"name": "cmark",

View File

@@ -194,23 +194,21 @@ void ModelTest::testEventMessageContentModel()
void ModelTest::testThreadModel()
{
auto model = std::make_unique<ThreadModel>(eventId, room);
auto tester = new QAbstractItemModelTester(model.get(), model.get());
auto model = new ThreadModel(eventId, room);
auto tester = new QAbstractItemModelTester(model, model);
tester->setUseFetchMore(true);
}
void ModelTest::testThreadFetchModel()
{
auto threadModel = std::make_unique<ThreadModel>(eventId, room);
auto model = new ThreadFetchModel(threadModel.get());
auto model = new ThreadFetchModel(new ThreadModel(eventId, room));
auto tester = new QAbstractItemModelTester(model, model);
tester->setUseFetchMore(true);
}
void ModelTest::testThreadChatBarModel()
{
auto threadModel = std::make_unique<ThreadModel>(eventId, room);
auto model = new ThreadChatBarModel(threadModel.get(), room);
auto model = new ThreadChatBarModel(new ThreadModel(eventId, room), room);
auto tester = new QAbstractItemModelTester(model, model);
tester->setUseFetchMore(true);
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +0,0 @@
SPDX-FileCopyrightText: none
SPDX-License-Identifier: CC0-1.0

View File

@@ -553,7 +553,6 @@
<p xml:lang="ca">Més millores del NeoChat</p>
<p xml:lang="ca-valencia">Més millores de NeoChat</p>
<p xml:lang="ka">NeoChat-ის მეტი სიკეთე</p>
<p xml:lang="nl">Meer NeoChat-goodies</p>
<p xml:lang="pt-BR">Mais novidades do NeoChat</p>
<p xml:lang="ru">Дополнительные возможности NeoChat</p>
<p xml:lang="sl">Več dobrot NeoChata</p>
@@ -563,9 +562,7 @@
<li xml:lang="ca">Codis QR per a compartir contactes</li>
<li xml:lang="ca-valencia">Codis QR per a compartir contactes</li>
<li xml:lang="es">Códigos QR para compartir contactos</li>
<li xml:lang="ia">Codices QR per compartir contactos</li>
<li xml:lang="ka">QR კოდები კონტაქტების გასაზიარებლად</li>
<li xml:lang="nl">QR-codes om contactpersonen te delen</li>
<li xml:lang="pt-BR">Códigos QR para compartilhar contatos</li>
<li xml:lang="ru">QR-коды для обмена контактами;</li>
<li xml:lang="sl">QR kode za deljenje stikov</li>
@@ -573,9 +570,7 @@
<li xml:lang="ar">ترقيات محسّنة للغرف</li>
<li xml:lang="ca">Actualitzacions millorades de les sales</li>
<li xml:lang="ca-valencia">Actualitzacions millorades de les sales</li>
<li xml:lang="ia">Meliorate actualisationes de sala</li>
<li xml:lang="ka">გაუმჯობესდა ოთახის განახლებები</li>
<li xml:lang="nl">Opwaarderen van room verbeterd</li>
<li xml:lang="pt-BR">Melhorias nas salas</li>
<li xml:lang="ru">Улучшены процедуры обновления комнат;</li>
<li xml:lang="sl">Izboljšane nadgradnje sob</li>
@@ -583,9 +578,7 @@
<li xml:lang="ar">أُضيف زر لرفض الدعوة وتجاهل المستخدم</li>
<li xml:lang="ca">S'ha afegit un botó per a rebutjar una invitació i ignorar l'usuari</li>
<li xml:lang="ca-valencia">S'ha afegit un botó per a rebutjar una invitació i ignorar l'usuari</li>
<li xml:lang="ia">Addite button per refusar invitation e ignorar usator</li>
<li xml:lang="ka">დაემატა ღილაკი მოსაწვევის უარყოფისთვის და მომხმარებლის დასაიგნორებლად</li>
<li xml:lang="nl">Toegevoegde knop om uitnodiging af te wijzen en gebruiker te negeren</li>
<li xml:lang="pt-BR">Adicionado botão para rejeitar convite e ignorar usuário</li>
<li xml:lang="ru">Добавлена кнопка для отклонения приглашения и игнорирования пользователя;</li>
<li xml:lang="sl">Dodan gumb za zavrnitev povabila in ignoriranje uporabnika</li>
@@ -594,9 +587,7 @@
<li xml:lang="ca">Mostra els detalls de seguretat del dispositiu</li>
<li xml:lang="ca-valencia">Mostra els detalls de seguretat del dispositiu</li>
<li xml:lang="es">Mostrar detalles de la seguridad del dispositivo</li>
<li xml:lang="ia">Monstra detalios de securitate de dispositivo</li>
<li xml:lang="ka">მოწყობილობის უსაფრთხოების დეტალების ჩვენება</li>
<li xml:lang="nl">Details van apparaatbeveiliging tonen</li>
<li xml:lang="pt-BR">Exibir detalhes de segurança do dispositivo</li>
<li xml:lang="ru">Просмотр подробных сведений о безопасности устройства;</li>
<li xml:lang="sl">Prikaži varnostne podrobnosti naprave</li>
@@ -605,9 +596,7 @@
<li xml:lang="ca">S'ha afegit la configuració de seguretat de la sala</li>
<li xml:lang="ca-valencia">S'ha afegit la configuració de seguretat de la sala</li>
<li xml:lang="es">Se han añadido ajustes de la seguridad de las salas</li>
<li xml:lang="ia">Addite preferentias de securitate de sala</li>
<li xml:lang="ka">დაემატა ოთახის უსაფრთხოების პარამეტრები</li>
<li xml:lang="nl">Beveiligingsinstelling voor room toegevoegd</li>
<li xml:lang="pt-BR">Adicionadas configurações de segurança da sala</li>
<li xml:lang="ru">Добавлены параметры безопасности комнат;</li>
<li xml:lang="sl">Dodane varnostne nastavitve sobe</li>
@@ -626,7 +615,6 @@
<p xml:lang="ca">A part d'una revisió visual, ara el NeoChat pot mostrar esdeveniments d'ubicació i també un mapa amb la ubicació de tots els usuaris que actualment emeten la seva ubicació utilitzant la integració de Matrix de l'Itineray. És genial per a localitzar on són els vostres amics.</p>
<p xml:lang="ca-valencia">A part d'una revisió visual, ara NeoChat pot mostrar esdeveniments d'ubicació i també un mapa amb la ubicació de tots els usuaris que actualment emeten la seua ubicació utilitzant la integració de Matrix de l'Itineray. És genial per a localitzar on són els vostres amics.</p>
<p xml:lang="ka">ვიზუალური მხრის განახლებასთან ერთად NeoChat-ს ახლა შეუძლია მდებარეობის მოვლენების ჩვენება და ასევე შეუძლია ყველა მომხმარებელი, რომელიც გადმოსცემს თავის მდებარეობას, Itinerary-ის მატრიცის ინტეგრაციით გაჩვენოთ. ეს კარგია იმისთვის, რომ გაიგოთ, სად არიან თქვენი მეგობრები.</p>
<p xml:lang="nl">Naast een visuele herziening kan NeoChat nu locatiegebeurtenissen tonen en ook een kaart met de locatie van alle gebruikers die nu hun locatie uitzenden met de Matrix-integratie van Itineray. Geweldig voor lokaliseren waar uw vrienden zijn.</p>
<p xml:lang="pt-BR">Além de uma reformulação visual, o NeoChat agora pode exibir eventos de localização e também um mapa com a localização de todos os usuários que estão transmitindo sua localização usando a integração Matrix do Itineray. Ótimo para localizar seus amigos.</p>
<p xml:lang="ru">Помимо визуального обновления, в NeoChat добавлена возможность отображения событий местоположения, а также карты с местоположением всех пользователей, которые в данный момент транслируют свои геоданные через интеграцию с Itineray в Matrix. Это удобно для того, чтобы узнать, где находятся ваши друзья.</p>
<p xml:lang="sl">Poleg vizualne prenove lahko NeoChat zdaj prikazuje lokacijske dogodke in tudi zemljevid z lokacijo vseh uporabnikov, ki trenutno oddajajo svojo lokacijo, z uporabo integracije Itineray Matrix. Odlično za iskanje lokacij vaših prijateljev.</p>
@@ -679,7 +667,6 @@
<p xml:lang="ca">Característiques noves i correccions d'errors:</p>
<p xml:lang="ca-valencia">Característiques noves i esmenes d'errors:</p>
<p xml:lang="es">Nuevas funciones y corrección de fallos:</p>
<p xml:lang="ia">Nove characteristicas e correctiones de faltas:</p>
<p xml:lang="ka">ახალი ფუნქციები და შეცდომების გასწორებები:</p>
<p xml:lang="pt-BR">Novas funcionalidades e correções de bugs:</p>
<p xml:lang="ru">Новые возможности и исправления ошибок:</p>
@@ -690,7 +677,6 @@
<li xml:lang="ca">Ara es mostraran les notificacions per a tots els comptes, no només l'actiu</li>
<li xml:lang="ca-valencia">Ara es mostraran les notificacions per a tots els comptes, no només l'actiu</li>
<li xml:lang="es">Se muestran notificaciones de todas las cuentas, no solo de la activa</li>
<li xml:lang="ia">Notificationes nunc essera monstrate per tote le contos,non solmente perlo que es active</li>
<li xml:lang="ka">გაფრთხილებები ნაჩვენები იქნება ყველა ანგარიშისთვის და არა, მხოლოდ, აქტიურისთვის</li>
<li xml:lang="pt-BR">Agora, as notificações serão exibidas para todas as contas, não apenas para a conta ativa</li>
<li xml:lang="ru">Уведомления будут выводиться для всех учётных записей, а не только для активной;</li>
@@ -700,7 +686,6 @@
<li xml:lang="ca">Hi ha un mode «compacte» nou per a la llista de sales</li>
<li xml:lang="ca-valencia">Hi ha un mode «compacte» nou per a la llista de sales</li>
<li xml:lang="es">Nuevo modo «compacto» para la lista de salas</li>
<li xml:lang="ia">Il ha un nove modo 'compacte' per le lista de sala</li>
<li xml:lang="ka">ოთახების სიისთვის არსებობს ახალი "კომპაქტური" რეჟიმი</li>
<li xml:lang="pt-BR">Existe um novo modo "compacto" para a lista de salas</li>
<li xml:lang="ru">Добавлен новый компактный режим списка комнат;</li>
@@ -710,7 +695,6 @@
<li xml:lang="ca">Ara podeu cercar a l'historial de sales</li>
<li xml:lang="ca-valencia">Ara podeu buscar en l'historial de sales</li>
<li xml:lang="es">Ahora se puede buscar en el historial de salas</li>
<li xml:lang="ia">Tu pote nunc cercar in lechronologia de sala</li>
<li xml:lang="ka">ახლა ოთახის ისტორიაში ძებნა შეგიძლიათ</li>
<li xml:lang="pt-BR">Agora você pode pesquisar no histórico da sala</li>
<li xml:lang="ru">Добавлен поиск по истории комнат;</li>
@@ -720,7 +704,6 @@
<li xml:lang="ca">Els emojis i les reaccions s'han millorat significativament</li>
<li xml:lang="ca-valencia">Els emoji i les reaccions s'han millorat significativament</li>
<li xml:lang="es">Los emojis y las reacciones se han mejorado significativamente</li>
<li xml:lang="ia">Emojis e Reactiones ha essite meliorate significativemente</li>
<li xml:lang="ka">ემოჯიები და რეაქციები საგრძნობლად გაუმჯობესდა</li>
<li xml:lang="pt-BR">Os emojis e as reações foram significativamente aprimorados</li>
<li xml:lang="ru">Эмодзи и реакции были значительно улучшены;</li>
@@ -730,7 +713,6 @@
<li xml:lang="ca">S'han corregit diverses fallades respecte les invitacions d'usuari</li>
<li xml:lang="ca-valencia">S'han corregit diverses fallades respecte les invitacions d'usuari</li>
<li xml:lang="es">Se han corregido varios fallos relacionados con las invitaciones de los usuarios</li>
<li xml:lang="ia">Corrigite multe fracassos circa invitationes de usator</li>
<li xml:lang="ka">გასწორდა რამდენიმე შეცდომა მომხმარებლის მოწვევის ფუნქციის გარშემო</li>
<li xml:lang="pt-BR">Corrigidas várias falhas relacionadas a convites de usuários</li>
<li xml:lang="ru">Исправлено несколько аварийных завершений, связанных с приглашениями пользователей;</li>
@@ -740,7 +722,6 @@
<li xml:lang="ca">Ara es pot configurar les opcions dels permisos de sala</li>
<li xml:lang="ca-valencia">Ara es pot configurar les opcions dels permisos de sala</li>
<li xml:lang="es">Ahora se pueden configurar los ajustes de los permisos de las salas</li>
<li xml:lang="ia">Preferentias depermission de sala nun pote esser configurate</li>
<li xml:lang="ka">ახლა შეგიძლიათ ოთახზე წვდომების მორგება</li>
<li xml:lang="pt-BR">Agora é possível configurar as permissões da sala</li>
<li xml:lang="ru">Добавлена возможность настраивать разрешения для комнат;</li>
@@ -762,7 +743,6 @@
<p xml:lang="ca">Aquesta versió us ofereix diverses correccions d'errors i millores petites:</p>
<p xml:lang="ca-valencia">Esta versió vos oferix diverses esmenes d'errors i millores xicotetes:</p>
<p xml:lang="es">Esta versión proporciona diversas mejoras menores y correcciones de fallos:</p>
<p xml:lang="ia">Iste version te porta varie parve correctiones de faltas e melioramentos:</p>
<p xml:lang="ka">ეს ვერსია შეიცავს რამდენიმე პატარა შეცდომის გასწორებას და გაუმჯობესებას:</p>
<p xml:lang="pt-BR">Esta versão traz diversas pequenas correções de bugs e melhorias:</p>
<p xml:lang="ru">В этом выпуске исправлены различные ошибки и внесены улучшения:</p>
@@ -821,7 +801,6 @@
<li xml:lang="ca">S'ha corregit la creació d'emojis personalitzats.</li>
<li xml:lang="ca-valencia">S'ha corregit la creació d'emoji personalitzats.</li>
<li xml:lang="es">Se ha corregido la creación de emojis personalizados.</li>
<li xml:lang="ia">Creation de emojis personalisate ha essite corrigite.</li>
<li xml:lang="ka">გასწორდა მომხმარებლის ემოჯიების შექმნა.</li>
<li xml:lang="pt-BR">A criação de emojis personalizados foi corrigida.</li>
<li xml:lang="ru">Исправлено создание пользовательских эмодзи;</li>

View File

@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"PO-Revision-Date: 2026-02-18 17:52+0400\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-02-15 21:02+0400\n"
"Last-Translator: Zayed Al-Saidi <zayed.alsaidi@gmail.com>\n"
"Language-Team: ar\n"
"Language: ar\n"
@@ -372,10 +372,11 @@ msgid "Do you really want to leave %1?"
msgstr "أتريد حقًّا مغادرة %1؟"
#: src/app/qml/ConfirmLeaveDialog.qml:25
#, kde-format
#, fuzzy, kde-format
#| msgid "Leave room"
msgctxt "@action:button Leave this room/space"
msgid "Leave"
msgstr "غادر"
msgstr "اترك الغرفة"
#: src/app/qml/ConfirmLogoutDialog.qml:15
#, kde-format
@@ -746,7 +747,9 @@ msgid "The input is not a valid room ID or alias"
msgstr "ليس النص المُدخَل ليس معرف غرفة صالح أو معرف بديل"
#: src/app/qml/ManualRoomDialog.qml:110
#, kde-format
#, fuzzy, kde-format
#| msgctxt "@action:button Join the Jitsi meeting"
#| msgid "Join"
msgctxt "@action:button Join this room/space"
msgid "Join"
msgstr "انضم"
@@ -773,7 +776,9 @@ msgid "The input is not a valid user ID"
msgstr "ليس النص المُدخَل ليس رقم مستخدم صالح"
#: src/app/qml/ManualUserDialog.qml:76
#, kde-format
#, fuzzy, kde-format
#| msgctxt "@action:button"
#| msgid "Ok"
msgctxt "@action:button Perform an action with this user ID"
msgid "Ok"
msgstr "حسنًا"
@@ -1971,10 +1976,12 @@ msgstr ""
"ستُزال منها"
#: src/chatbar/SendBar.qml:102
#, kde-format
#, fuzzy, kde-format
#| msgctxt "@action:button"
#| msgid "Send message"
msgctxt "@action:button"
msgid "Add to message"
msgstr "أضف إلى الرسالة"
msgstr "أرسل رسالة"
#: src/chatbar/SendBar.qml:132 src/chatbar/SendBar.qml:163
#, kde-format
@@ -7535,13 +7542,13 @@ msgstr "تفاعل"
msgid "Message menu"
msgstr "قائمة الرّسالة"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "آخر قراءة: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2023-12-12 01:02+0100\n"
"Last-Translator: Enol P. <enolp@softastur.org>\n"
"Language-Team: Asturian <alministradores@softastur.org>\n"
@@ -7433,13 +7433,13 @@ msgstr ""
msgid "Message menu"
msgstr ""
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr ""
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2022-07-22 12:13+0400\n"
"Last-Translator: Kheyyam <xxmn77@gmail.com>\n"
"Language-Team: Azerbaijani <kde-i18n-doc@kde.org>\n"
@@ -8370,13 +8370,13 @@ msgstr "Reaksiya"
msgid "Message menu"
msgstr "İsmarıc mənbəyi"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Sonuncu oxuma: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgid "Mark as Read"
msgctxt "@action:button Mark all messages up to now as read"

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-02-17 09:47+0100\n"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
@@ -7596,13 +7596,13 @@ msgstr "Reacciona"
msgid "Message menu"
msgstr "Menú de missatge"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Última lectura: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"

View File

@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"PO-Revision-Date: 2026-02-17 09:47+0100\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-02-15 10:07+0100\n"
"Last-Translator: Josep M. Ferrer <txemaq@gmail.com>\n"
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
"Language: ca@valencia\n"
@@ -376,10 +376,12 @@ msgid "Do you really want to leave %1?"
msgstr "Voleu eixir de %1?"
#: src/app/qml/ConfirmLeaveDialog.qml:25
#, kde-format
#, fuzzy, kde-format
#| msgctxt "@action:button"
#| msgid "Leave Room"
msgctxt "@action:button Leave this room/space"
msgid "Leave"
msgstr "Ix"
msgstr "Ix de la sala"
#: src/app/qml/ConfirmLogoutDialog.qml:15
#, kde-format
@@ -754,7 +756,9 @@ msgid "The input is not a valid room ID or alias"
msgstr "L'entrada no és un ID de sala o àlies vàlid"
#: src/app/qml/ManualRoomDialog.qml:110
#, kde-format
#, fuzzy, kde-format
#| msgctxt "@action:button Join the Jitsi meeting"
#| msgid "Join"
msgctxt "@action:button Join this room/space"
msgid "Join"
msgstr "Unix-te"
@@ -784,7 +788,7 @@ msgstr "L'entrada no és un ID d'usuari vàlid"
#, kde-format
msgctxt "@action:button Perform an action with this user ID"
msgid "Ok"
msgstr "D'acord"
msgstr ""
#: src/app/qml/MeetingDialog.qml:16
#, kde-format
@@ -2016,10 +2020,12 @@ msgstr ""
"formats enriquits"
#: src/chatbar/SendBar.qml:102
#, kde-format
#, fuzzy, kde-format
#| msgctxt "@action:button"
#| msgid "Send message"
msgctxt "@action:button"
msgid "Add to message"
msgstr "Afig al missatge"
msgstr "Envia un missatge"
#: src/chatbar/SendBar.qml:132 src/chatbar/SendBar.qml:163
#, kde-format
@@ -7056,7 +7062,7 @@ msgstr "Fes que este espai siga el pare canònic"
#, kde-format
msgctxt "@action:button"
msgid "Ok"
msgstr "D'acord"
msgstr ""
#: src/settings/SelectSpacesDialog.qml:37
#, kde-format
@@ -7599,13 +7605,13 @@ msgstr "Reacciona"
msgid "Message menu"
msgstr "Menú de missatge"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Última lectura: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"
@@ -7667,3 +7673,10 @@ msgid "%2 is typing"
msgid_plural "%2 are typing"
msgstr[0] "%2 està escrivint"
msgstr[1] "%2 estan escrivint"
#~ msgid "OK"
#~ msgstr "D'acord"
#~ msgctxt "@option:check Enable the matrix 'threads' feature"
#~ msgid "Threads"
#~ msgstr "Fils"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2024-09-17 15:24+0200\n"
"Last-Translator: Vit Pelcak <vit@pelcak.org>\n"
"Language-Team: Czech <kde-i18n-doc@kde.org>\n"
@@ -7565,13 +7565,13 @@ msgstr "Zareagovat"
msgid "Message menu"
msgstr ""
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Poslední přístup ke čtení: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2020-12-13 17:28+0100\n"
"Last-Translator: Martin Schlander <mschlander@opensuse.org>\n"
"Language-Team: Danish <kde-i18n-doc@kde.org>\n"
@@ -7932,13 +7932,13 @@ msgstr ""
msgid "Message menu"
msgstr "Kopiér"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr ""
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgid "Mark as Read"
msgctxt "@action:button Mark all messages up to now as read"

View File

@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-01-20 00:32+0100\n"
"Last-Translator: Philipp Kiemle <l10n.daphipz@fastmail.de>\n"
"Language-Team: German <kde-i18n-de@kde.org>\n"
@@ -7836,13 +7836,13 @@ msgstr "Reagieren"
msgid "Message menu"
msgstr "Nachrichten-Quelltext"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Zuletzt gelesen: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgctxt "@action:inmenu"
#| msgid "Mark as Read"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2024-09-20 13:25+0300\n"
"Last-Translator: Antonis Geralis <capoiosct@gmail.com>\n"
"Language-Team: Greek <kde-i18n-el@kde.org>\n"
@@ -8256,13 +8256,13 @@ msgstr "Αντίδραση"
msgid "Message menu"
msgstr "Πηγή μηνύματος"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Τελευταία ανάγνωση: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgid "Mark as Read"
msgctxt "@action:button Mark all messages up to now as read"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2024-11-23 12:05+0000\n"
"Last-Translator: Steve Allewell <steve.allewell@gmail.com>\n"
"Language-Team: British English\n"
@@ -8155,13 +8155,13 @@ msgstr "React"
msgid "Message menu"
msgstr "Message Source"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Last read: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgid "Mark as Read"
msgctxt "@action:button Mark all messages up to now as read"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2025-03-23 07:29+0100\n"
"Last-Translator: Oliver Kellogg <olivermkellogg@gmail.com>\n"
"Language-Team: Esperanto <kde-i18n-eo@kde.org>\n"
@@ -8049,13 +8049,13 @@ msgstr "Reagi"
msgid "Message menu"
msgstr "Mesaĝfonto"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Lasta legado: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgid "Mark as Read"
msgctxt "@action:button Mark all messages up to now as read"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-02-17 14:00+0100\n"
"Last-Translator: Eloy Cuadra <ecuadra@eloihr.net>\n"
"Language-Team: Spanish <kde-l10n-es@kde.org>\n"
@@ -7584,13 +7584,13 @@ msgstr "Reaccionar"
msgid "Message menu"
msgstr "Menú del mensaje"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Última lectura: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-01-06 10:39+0100\n"
"Last-Translator: Iñigo Salvador Azurmendi <xalba@ni.eus>\n"
"Language-Team: Basque <kde-i18n-eu@kde.org>\n"
@@ -7721,13 +7721,13 @@ msgstr "Erreakzioa"
msgid "Message menu"
msgstr "Mezuaren menua"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Azken irakurketa: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgctxt "@action:inmenu"
#| msgid "Mark as Read"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-01-12 14:31+0200\n"
"Last-Translator: Tommi Nieminen <translator@legisign.org>\n"
"Language-Team: Finnish <kde-i18n-doc@kde.org>\n"
@@ -7734,13 +7734,13 @@ msgstr "Reagoi"
msgid "Message menu"
msgstr "Viestivalikko"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Viimeksi luettu: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgctxt "@action:inmenu"
#| msgid "Mark as Read"

View File

@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-02-12 21:23+0100\n"
"Last-Translator: Xavier Besnard <xavier.besnard@kde.org>\n"
"Language-Team: \n"
@@ -7679,13 +7679,13 @@ msgstr "Réaction"
msgid "Message menu"
msgstr "Menu du message"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Dernier lu : %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgctxt "@action:inmenu"
#| msgid "Mark as Read"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc@kde.org>\n"
@@ -7438,13 +7438,13 @@ msgstr ""
msgid "Message menu"
msgstr ""
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr ""
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2025-06-22 12:13+0200\n"
"Last-Translator: Adrián Chaves (Gallaecio) <adrian@chaves.gal>\n"
"Language-Team: Proxecto Trasno (proxecto@trasno.gal)\n"
@@ -8015,13 +8015,13 @@ msgstr "Reaccionar"
msgid "Message menu"
msgstr "Menú de mensaxes"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Última lectura: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgid "Mark as Read"
msgctxt "@action:button Mark all messages up to now as read"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-02-13 09:48+0200\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: צוות התרגום של KDE ישראל\n"
@@ -7537,13 +7537,13 @@ msgstr "רגש בתגובה"
msgid "Message menu"
msgstr "תפריט הודעה"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "נקרא לאחרונה: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgctxt "@action:inmenu"
#| msgid "Mark as Read"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2024-12-15 19:31+0530\n"
"Last-Translator: kali <skkalwar999@gmail.com>\n"
"Language-Team: Hindi <kde-i18n-doc@kde.org>\n"
@@ -8058,13 +8058,13 @@ msgstr "प्रतिक्रिया"
msgid "Message menu"
msgstr "संदेश स्रोत"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "अंतिम बार पढ़ा गया: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgid "Mark as Read"
msgctxt "@action:button Mark all messages up to now as read"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-01-03 22:36+0100\n"
"Last-Translator: Kristof Kiszel <ulysses@fsf.hu>\n"
"Language-Team: Hungarian <kde-l10n-hu@kde.org>\n"
@@ -7922,13 +7922,13 @@ msgstr "Reagálás"
msgid "Message menu"
msgstr "Üzenetmenü"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Utoljára olvasva: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgid "Mark as Read"
msgctxt "@action:button Mark all messages up to now as read"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-02-17 17:34+0100\n"
"Last-Translator: giovanni <g.sora@tiscali.it>\n"
"Language-Team: Interlingua <kde-i18n-doc@kde.org>\n"
@@ -7582,13 +7582,13 @@ msgstr "Reage"
msgid "Message menu"
msgstr "Menu de message"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Ultime legite: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2023-06-16 19:31+0700\n"
"Last-Translator: Linerly <linerly@protonmail.com>\n"
"Language-Team: Indonesian <kde-i18n-doc@kde.org>\n"
@@ -8360,13 +8360,13 @@ msgstr "Reaksi"
msgid "Message menu"
msgstr "Sumber Pesan"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Terakhir dibaca: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgid "Mark as Read"
msgctxt "@action:button Mark all messages up to now as read"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2022-10-28 19:18+0700\n"
"Last-Translator: OIS <mistresssilvara@hotmail.com>\n"
"Language-Team: kde-i18n-doc@kde.org\n"
@@ -8055,13 +8055,13 @@ msgstr "Reacter"
msgid "Message menu"
msgstr "_Missage..."
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Leet ultimmen: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgid "Mark as Read"
msgctxt "@action:button Mark all messages up to now as read"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-02-07 08:52+0100\n"
"Last-Translator: Vincenzo Reale <smart2128vr@gmail.com>\n"
"Language-Team: Italian <kde-i18n-it@kde.org>\n"
@@ -7646,13 +7646,13 @@ msgstr "Reagisci"
msgid "Message menu"
msgstr "Il menu Messaggio"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Ultima lettura: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgctxt "@action:inmenu"
#| msgid "Mark as Read"

View File

@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2020-11-05 23:50-0800\n"
"Last-Translator: Japanese KDE translation team <kde-jp@kde.org>\n"
"Language-Team: Japanese <kde-jp@kde.org>\n"
@@ -7418,13 +7418,13 @@ msgstr ""
msgid "Message menu"
msgstr ""
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr ""
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-02-17 04:12+0100\n"
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
"Language-Team: Georgian <kde-i18n-doc@kde.org>\n"
@@ -7546,13 +7546,13 @@ msgstr "რეაქცია"
msgid "Message menu"
msgstr "შეტყობინების მენიუ"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "ბოლოს წაიკითხა: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2025-10-12 12:43+0200\n"
"Last-Translator: Shinjo Park <kde@peremen.name>\n"
"Language-Team: Korean <kde-kr@kde.org>\n"
@@ -7797,13 +7797,13 @@ msgstr "반응"
msgid "Message menu"
msgstr "메시지 메뉴"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "마지막 읽음: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgid "Mark as Read"
msgctxt "@action:button Mark all messages up to now as read"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2025-12-29 16:49+0200\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -7586,13 +7586,13 @@ msgstr ""
msgid "Message menu"
msgstr ""
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr ""
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgctxt "@action:inmenu"
#| msgid "Mark as Read"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2025-11-11 19:11+0200\n"
"Last-Translator: Toms Trasuns <toms.trasuns@posteo.net>\n"
"Language-Team: Latvian <kde-i18n-doc@kde.org>\n"
@@ -7778,13 +7778,13 @@ msgstr "Reaģēt"
msgid "Message menu"
msgstr "Ziņas izvēlne"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Pēdējo reizi lasīta: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgctxt "@action:inmenu"
#| msgid "Mark as Read"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-02-17 12:32+0100\n"
"Last-Translator: Freek de Kruijf <freekdekruijf@kde.nl>\n"
"Language-Team: \n"
@@ -7586,13 +7586,13 @@ msgstr "Reageer"
msgid "Message menu"
msgstr "Berichtmenu"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Laatst gelezen: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"

View File

@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2024-10-27 15:01+0100\n"
"Last-Translator: Karl Ove Hufthammer <karl@huftis.org>\n"
"Language-Team: Norwegian Nynorsk <l10n-no@lister.huftis.org>\n"
@@ -7962,13 +7962,13 @@ msgstr "Reager"
msgid "Message menu"
msgstr "Meldingskjelde"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Sist lese: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgid "Mark as Read"
msgctxt "@action:button Mark all messages up to now as read"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2021-12-31 11:06-0800\n"
"Last-Translator: A S Alam <aalam@satluj.org>\n"
"Language-Team: Punjabi <punjabi-users@lists.sf.net>\n"
@@ -8293,13 +8293,13 @@ msgstr "ਅਸਰ"
msgid "Message menu"
msgstr "ਸੁਨੇਹੇ ਦਾ ਸਰੋਤ"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "ਆਖਰੀ ਪੜ੍ਹੇ: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgid "Mark as Read"
msgctxt "@action:button Mark all messages up to now as read"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-01-24 11:07+0100\n"
"Last-Translator: Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>\n"
"Language-Team: pl\n"
@@ -7644,13 +7644,13 @@ msgstr "Dodaj reakcję"
msgid "Message menu"
msgstr "Menu wiadomości"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Ostatnio odczytywany: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgctxt "@action:inmenu"
#| msgid "Mark as Read"

View File

@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2023-06-24 10:17+0100\n"
"Last-Translator: José Nuno Coelho Pires <zepires@gmail.com>\n"
"Language-Team: Portuguese <kde-i18n-pt@kde.org>\n"
@@ -8372,13 +8372,13 @@ msgstr "Reagir"
msgid "Message menu"
msgstr "Código da Mensagem"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Última leitura: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgid "Mark as Read"
msgctxt "@action:button Mark all messages up to now as read"

View File

@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-02-17 08:20-0300\n"
"Last-Translator: Marcus Gama <marcus.gama@gmail.com>\n"
"Language-Team: Brazilian Portuguese <kde-i18n-pt_BR@kde.org>\n"
@@ -7580,13 +7580,13 @@ msgstr "Reagir"
msgid "Message menu"
msgstr "Menu de mensagem"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Última lida: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2025-10-20 11:56+0100\n"
"Last-Translator: Sergiu Bivol <sergiu@cip.md>\n"
"Language-Team: Romanian <kde-i18n-ro@kde.org>\n"
@@ -7654,13 +7654,13 @@ msgstr ""
msgid "Message menu"
msgstr ""
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr ""
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgctxt "@action:inmenu"
#| msgid "Mark as Read"

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"PO-Revision-Date: 2026-02-17 20:36+0200\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-02-15 19:31+0200\n"
"Last-Translator: Alexander Yavorskiy <kekcuha@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
"Language: ru\n"
@@ -375,10 +375,10 @@ msgid "Do you really want to leave %1?"
msgstr "Покинуть %1?"
#: src/app/qml/ConfirmLeaveDialog.qml:25
#, kde-format
#, fuzzy, kde-format
msgctxt "@action:button Leave this room/space"
msgid "Leave"
msgstr "Покинуть"
msgstr "Пок&инуть групповой разговор"
#: src/app/qml/ConfirmLogoutDialog.qml:15
#, kde-format
@@ -755,10 +755,12 @@ msgstr ""
"комнаты"
#: src/app/qml/ManualRoomDialog.qml:110
#, kde-format
#, fuzzy, kde-format
#| msgctxt "@action:button Join the Jitsi meeting"
#| msgid "Join"
msgctxt "@action:button Join this room/space"
msgid "Join"
msgstr "Войти"
msgstr "Присоединиться"
#: src/app/qml/ManualUserDialog.qml:26
#, kde-format
@@ -782,7 +784,9 @@ msgid "The input is not a valid user ID"
msgstr "Введённый текст не является допустимым идентификатором пользователя"
#: src/app/qml/ManualUserDialog.qml:76
#, kde-format
#, fuzzy, kde-format
#| msgctxt "@action:button"
#| msgid "Ok"
msgctxt "@action:button Perform an action with this user ID"
msgid "Ok"
msgstr "ОК"
@@ -1989,10 +1993,12 @@ msgstr ""
"будет удалено."
#: src/chatbar/SendBar.qml:102
#, kde-format
#, fuzzy, kde-format
#| msgctxt "@action:button"
#| msgid "Send message"
msgctxt "@action:button"
msgid "Add to message"
msgstr "Добавить в сообщение"
msgstr "Отправить сообщение"
#: src/chatbar/SendBar.qml:132 src/chatbar/SendBar.qml:163
#, kde-format
@@ -7598,13 +7604,13 @@ msgstr "Реакция"
msgid "Message menu"
msgstr "Меню сообщения"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Последнее сообщение прочитано: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2024-12-29 23:07+0530\n"
"Last-Translator: kali <shreekantkalwar@gmail.com>\n"
"Language-Team: Sanskrit <kde-i18n-doc@kde.org>\n"
@@ -8031,13 +8031,13 @@ msgstr "प्रतिक्रियां कुरुत"
msgid "Message menu"
msgstr "सन्देशस्य स्रोतः"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "अन्तिमपठनं: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgid "Mark as Read"
msgctxt "@action:button Mark all messages up to now as read"

View File

@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2024-11-10 11:41+0100\n"
"Last-Translator: Roman Paholík <wizzardsk@gmail.com>\n"
"Language-Team: KDE-SK\n"
@@ -8279,13 +8279,13 @@ msgstr "Reagovať"
msgid "Message menu"
msgstr "Zdroj správy"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Naposledy prečítané: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgid "Mark as Read"
msgctxt "@action:button Mark all messages up to now as read"

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-02-17 05:50+0100\n"
"Last-Translator: Matjaž Jeran <matjaz.jeran@amis.net>\n"
"Language-Team: Slovenian <lugos-slo@lugos.si>\n"
@@ -7571,13 +7571,13 @@ msgstr "Odzovi se"
msgid "Message menu"
msgstr "Meni sporočila"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Nazadnje prebrano: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2025-10-22 20:19+0200\n"
"Last-Translator: Stefan Asserhäll <stefan.asserhall@gmail.com>\n"
"Language-Team: Swedish <kde-i18n-doc@kde.org>\n"
@@ -7834,13 +7834,13 @@ msgstr "Reagera"
msgid "Message menu"
msgstr "Meddelandemeny"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Senast läst: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgctxt "@action:inmenu"
#| msgid "Mark as Read"

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2025-11-29 21:52+0530\n"
"Last-Translator: Kishore G <kishore96@gmail.com>\n"
"Language-Team: Tamil <kde-l10n-ta@kde.org>\n"
@@ -7884,13 +7884,13 @@ msgstr "எதிர்வினையிடு"
msgid "Message menu"
msgstr "செய்தியின் மூலம்"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "கடைசியாக படித்தது: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgctxt "@action:inmenu"
#| msgid "Mark as Read"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2024-01-08 19:47-0500\n"
"Last-Translator: Weblate Admin <admin@example.com>\n"
"Language-Team: Toki Pona <http://weblate.blackquill.cc/projects/ante-toki-pi-"
@@ -7947,13 +7947,13 @@ msgstr ""
msgid "Message menu"
msgstr "o tu e lipu tawa lipu jo"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr ""
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"

View File

@@ -8,16 +8,16 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"PO-Revision-Date: 2026-02-18 16:50+0300\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-02-16 16:32+0300\n"
"Last-Translator: Emir SARI <emir_sari@icloud.com>\n"
"Language-Team: Turkish <kde-l10n-tr@kde.org>\n"
"Language-Team: Turkish <kde-i18n-doc@kde.org>\n"
"Language: tr\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 25.12.2\n"
"X-Generator: Lokalize 25.07.70\n"
#: src/app/controller.cpp:172
#, kde-format
@@ -373,10 +373,12 @@ msgid "Do you really want to leave %1?"
msgstr "%1 odasından ayrılmayı gerçekten istiyor musunuz?"
#: src/app/qml/ConfirmLeaveDialog.qml:25
#, kde-format
#, fuzzy, kde-format
#| msgctxt "@action:button"
#| msgid "Leave Room"
msgctxt "@action:button Leave this room/space"
msgid "Leave"
msgstr "Ayrıl"
msgstr "Odadan Ayrıl"
#: src/app/qml/ConfirmLogoutDialog.qml:15
#, kde-format
@@ -749,7 +751,9 @@ msgid "The input is not a valid room ID or alias"
msgstr "Girdi, geçerli bir oda kimliği veya arma değil"
#: src/app/qml/ManualRoomDialog.qml:110
#, kde-format
#, fuzzy, kde-format
#| msgctxt "@action:button Join the Jitsi meeting"
#| msgid "Join"
msgctxt "@action:button Join this room/space"
msgid "Join"
msgstr "Katıl"
@@ -776,7 +780,9 @@ msgid "The input is not a valid user ID"
msgstr "Girdi, geçerli bir kullanıcı kimliği değil"
#: src/app/qml/ManualUserDialog.qml:76
#, kde-format
#, fuzzy, kde-format
#| msgctxt "@action:button"
#| msgid "Ok"
msgctxt "@action:button Perform an action with this user ID"
msgid "Ok"
msgstr "Tamam"
@@ -1995,10 +2001,12 @@ msgstr ""
"biçimlendirmesi kaldırılacaktır!"
#: src/chatbar/SendBar.qml:102
#, kde-format
#, fuzzy, kde-format
#| msgctxt "@action:button"
#| msgid "Send message"
msgctxt "@action:button"
msgid "Add to message"
msgstr "İletiye Ekle"
msgstr "İleti gönder"
#: src/chatbar/SendBar.qml:132 src/chatbar/SendBar.qml:163
#, kde-format
@@ -7547,13 +7555,13 @@ msgstr "Tepki"
msgid "Message menu"
msgstr "İleti menüsü"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Son okunma: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-02-17 08:15+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
@@ -7614,13 +7614,13 @@ msgstr "Реагувати"
msgid "Message menu"
msgstr "Меню повідомлення"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "Востаннє прочитано: %1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"

View File

@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: kdeorg\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2024-04-23 19:24\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
@@ -7442,13 +7442,13 @@ msgstr "回应"
msgid "Message menu"
msgstr ""
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "上次查看:%1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, kde-format
msgctxt "@action:button Mark all messages up to now as read"
msgid "Mark as Read"

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: neochat\n"
"Report-Msgid-Bugs-To: https://bugs.kde.org\n"
"POT-Creation-Date: 2026-02-19 00:45+0000\n"
"POT-Creation-Date: 2026-02-18 00:45+0000\n"
"PO-Revision-Date: 2026-01-15 01:13+0900\n"
"Last-Translator: Kisaragi Hiu <mail@kisaragi-hiu.com>\n"
"Language-Team: Traditional Chinese <zh-l10n@lists.slat.org>\n"
@@ -7565,13 +7565,13 @@ msgstr "反應"
msgid "Message menu"
msgstr "訊息選單"
#: src/timeline/ReadMarkerDelegate.qml:67
#: src/timeline/ReadMarkerDelegate.qml:66
#, kde-format
msgctxt "Relative time since the room was last read"
msgid "Last read: %1"
msgstr "最後閱讀:%1"
#: src/timeline/ReadMarkerDelegate.qml:73
#: src/timeline/ReadMarkerDelegate.qml:72
#, fuzzy, kde-format
#| msgctxt "@action:inmenu"
#| msgid "Mark as Read"

View File

@@ -41,18 +41,10 @@ slots:
bus: session
parts:
rustup:
plugin: rust
source: .
rust-channel: "1.76"
override-build: ""
override-prime: ""
corrosion:
after: [rustup]
source: https://github.com/corrosion-rs/corrosion.git
olm:
source: https://gitlab.matrix.org/matrix-org/olm.git
source-depth: 1
source-tag: 'v0.6.0'
source-tag: '3.2.16'
plugin: cmake
cmake-parameters:
- -DCMAKE_BUILD_TYPE=Release
@@ -106,7 +98,7 @@ parts:
libquotient:
after:
- corrosion
- olm
- qtkeychain
source: https://github.com/quotient-im/libQuotient.git
source-tag: 0.9.2
@@ -122,6 +114,8 @@ parts:
- -DCMAKE_INSTALL_PREFIX=/usr
- -DCMAKE_BUILD_TYPE=Release
- -DBUILD_TESTING=OFF
- -DQuotient_ENABLE_E2EE=ON
- -DBUILD_WITH_QT6=ON
prime:
- -usr/include
- -usr/lib/*/pkgconfig

View File

@@ -29,7 +29,7 @@ Kirigami.Page {
},
State {
name: "waitingForVerification"
when: root.session.state === KeyVerificationSession.TRANSITIONED && root.session.sasState === KeyVerificationSession.SASKEYSEXCHANGED
when: root.session.state === KeyVerificationSession.WAITINGFORVERIFICATION
PropertyChanges {
stateLoader.sourceComponent: emojiSas
}
@@ -78,15 +78,7 @@ Kirigami.Page {
},
State {
name: "done"
when: root.session.sasState === KeyVerificationSession.SASDONE
PropertyChanges {
target: stateLoader
sourceComponent: message
}
},
State {
name: "confirmed"
when: root.session.state === KeyVerificationSession.TRANSITIONED && root.session.sasState === KeyVerificationSession.SASCONFIRMED
when: root.session.state === KeyVerificationSession.DONE
PropertyChanges {
stateLoader.sourceComponent: message
}
@@ -149,14 +141,6 @@ Kirigami.Page {
return "security-medium-symbolic";
case KeyVerificationSession.DONE:
return "security-high";
case KeyVerificationSession.TRANSITIONED: {
if (root.session.sasState === KeyVerificationSession.SASCONFIRMED) {
return "security-high";
}
if (root.session.sasState === KeyVerificationSession.SASDONE) {
return "security-high";
}
}
default:
return "";
}
@@ -165,38 +149,16 @@ Kirigami.Page {
switch (root.session.state) {
case KeyVerificationSession.WAITINGFORREADY:
return i18n("Waiting for device to accept verification.");
case KeyVerificationSession.INCOMING: {
if (root.session.remoteDeviceId.length > 0) {
return i18n("Incoming key verification request from device **%1**", root.session.remoteDeviceId);
} else {
return i18n("Incoming key verification request from **%1**", root.session.remoteUserId);
}
}
case KeyVerificationSession.INCOMING:
return i18n("Incoming key verification request from device **%1**", root.session.remoteDeviceId);
case KeyVerificationSession.WAITINGFORMAC:
return i18n("Waiting for other party to send us keys.");
case KeyVerificationSession.WAITINGFORKEY:
return i18n("Waiting for other party to confirm our keys.");
case KeyVerificationSession.WAITINGFORACCEPT:
return i18n("Waiting for other party to verify.");
case KeyVerificationSession.DONE: {
if (root.session.remoteDeviceId.length > 0) {
return i18n("Successfully verified device **%1**", root.session.remoteDeviceId)
} else {
return i18nc("@info", "Successfully verified **%1**", root.session.remoteUserId)
}
}
case KeyVerificationSession.TRANSITIONED: {
if (root.session.sasState === KeyVerificationSession.SASCONFIRMED) {
return i18nc("@info", "Waiting for remote party to confirm verification");
}
if (root.session.sasState === KeyVerificationSession.SASDONE) {
if (root.session.remoteDeviceId.length > 0) {
return i18n("Successfully verified device **%1**", root.session.remoteDeviceId)
} else {
return i18nc("@info", "Successfully verified **%1**", root.session.remoteUserId)
}
}
}
case KeyVerificationSession.DONE:
return i18n("Successfully verified device **%1**", root.session.remoteDeviceId);
default:
return "";
}

View File

@@ -13,7 +13,7 @@ FormCard.FormCardPage {
property bool processing: false
title: i18nc("@title:window", "Manage Key Storage")
title: i18nc("@title:window", "Manage Secret Backup")
topPadding: Kirigami.Units.gridUnit
leftPadding: 0
@@ -32,7 +32,7 @@ FormCard.FormCardPage {
function onKeyBackupError(): void {
securityKeyField.clear()
root.processing = false
banner.text = i18nc("@info:status", "The recovery key was not correct.")
banner.text = i18nc("@info:status", "The security key or backup passphrase was not correct.")
banner.visible = true
}
@@ -45,20 +45,20 @@ FormCard.FormCardPage {
}
FormCard.FormHeader {
title: i18nc("@title", "Unlock using Recovery Key")
title: i18nc("@title", "Unlock using Security Key or Backup Passphrase")
}
FormCard.FormCard {
FormCard.FormTextDelegate {
description: i18nc("@info", "If you have a recovery key (also known as a “security key or backup passphrase”), enter it below or upload it as a file.")
description: i18nc("@info", "If you have a security key or backup passphrase for this account, enter it below or upload it as a file.")
}
FormCard.FormTextFieldDelegate {
id: securityKeyField
label: i18nc("@label:textbox", "Recovery Key:")
label: i18nc("@label:textbox", "Security Key or Backup Passphrase:")
echoMode: TextInput.Password
}
FormCard.FormButtonDelegate {
id: uploadSecurityKeyButton
text: i18nc("@action:button", "Upload From File")
text: i18nc("@action:button", "Upload from File")
icon.name: "cloud-upload"
enabled: !root.processing
onClicked: {
@@ -83,12 +83,12 @@ FormCard.FormCardPage {
}
FormCard.FormCard {
FormCard.FormTextDelegate {
description: i18nc("@info", "If you have previously verified this device, you request encryption keys from other verified devices.")
description: i18nc("@info", "If you have previously verified this device, you can try loading the backup key from other devices by clicking the button below.")
}
FormCard.FormButtonDelegate {
id: unlockCrossSigningButton
icon.name: "emblem-shared-symbolic"
text: i18nc("@action:button", "Request From Other Devices")
text: i18nc("@action:button", "Request from other Devices")
enabled: !root.processing
onClicked: {
root.processing = true

View File

@@ -0,0 +1,64 @@
// SPDX-FileCopyrightText: 2020 Carl Schwan <carl@carlschwan.de>
// SPDX-License-Identifier: GPL-2.0-or-later
import QtCore
import QtQuick
import QtQuick.Controls as QQC2
import QtQuick.Layouts
import org.kde.kirigami as Kirigami
import org.kde.neochat
QQC2.Popup {
id: root
padding: Kirigami.Units.largeSpacing
signal chosen(string path)
contentItem: RowLayout {
spacing: Kirigami.Units.smallSpacing
QQC2.ToolButton {
Layout.fillHeight: true
icon.name: 'mail-attachment'
text: i18nc("@action:button", "Choose local file")
onClicked: {
root.close();
var fileDialog = openFileDialog.createObject(QQC2.Overlay.overlay) as OpenFileDialog;
fileDialog.chosen.connect(path => root.chosen(path));
fileDialog.open();
}
}
Kirigami.Separator {}
QQC2.ToolButton {
Layout.fillHeight: true
icon.name: 'insert-image'
text: i18nc("@action:button", "Clipboard image")
onClicked: {
const path = StandardPaths.standardLocations(StandardPaths.CacheLocation)[0] + "/screenshots/" + (new Date()).getTime() + ".png";
if (!Clipboard.saveImage(path)) {
return;
}
root.chosen(path);
root.close();
}
}
}
Component {
id: openFileDialog
OpenFileDialog {
parentWindow: Window.window
currentFolder: StandardPaths.standardLocations(StandardPaths.HomeLocation)[0]
}
}
}

View File

@@ -6,6 +6,7 @@ ecm_add_qml_module(Chatbar GENERATE_PLUGIN_SOURCE
URI org.kde.neochat.chatbar
OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/src/org/kde/neochat/chatbar
QML_FILES
AttachDialog.qml
ChatBar.qml
ChatBarCore.qml
RichEditBar.qml

View File

@@ -120,8 +120,6 @@ Item {
endBreakpoint: Kirigami.Units.gridUnit * 66
startPercentWidth: 100
endPercentWidth: NeoChatConfig.compactLayout ? 100 : 85
leftPadding: NeoChatConfig.compactLayout ? Kirigami.Units.largeSpacing * 2 : 0
rightPadding: NeoChatConfig.compactLayout ? Kirigami.Units.largeSpacing * 2 : 0
maxWidth: NeoChatConfig.compactLayout ? root.width - Kirigami.Units.largeSpacing * 2 : Kirigami.Units.gridUnit * 60
}
}

View File

@@ -43,7 +43,11 @@ RowLayout {
function addAttachment(): void {
if (!root.contentModel.hasRichFormatting) {
fileDialog();
if (LibNeoChat.Clipboard.hasImage) {
attachDialog();
} else {
fileDialog();
}
return;
}
@@ -54,11 +58,22 @@ RowLayout {
standardButtons: Kirigami.Dialog.Ok | Kirigami.Dialog.Cancel
});
warningDialog.onAccepted.connect(() => {
attachmentButton.fileDialog();
if (LibNeoChat.Clipboard.hasImage) {
attachmentButton.attachDialog();
} else {
attachmentButton.fileDialog();
}
});
warningDialog.open();
}
function attachDialog(): void {
let dialog = Qt.createComponent('org.kde.neochat.chatbar', 'AttachDialog').createObject(QQC2.Overlay.overlay) as AttachDialog;
dialog.anchors.centerIn = QQC2.Overlay.overlay;
dialog.chosen.connect(path => root.contentModel.addAttachment(path));
dialog.open();
}
function fileDialog(): void {
let dialog = Qt.createComponent('org.kde.neochat.libneochat', 'OpenFileDialog').createObject(QQC2.Overlay.overlay, {
parentWindow: Window.window,

View File

@@ -36,10 +36,25 @@ ColumnLayout {
dialog.chosen.connect(id => root.room = root.connection.room(id))
}
}
FormCard.FormDelegateSeparator {}
FormCard.FormTextDelegate {
visible: root.room
text: i18n("Room Id: %1", root.room.id)
}
FormCard.FormDelegateSeparator {}
FormCard.FormCheckDelegate {
visible: root.room
text: i18nc("@option:check Toggle for whether this room is considered a direct chat or not", "Direct Chat")
checked: root.room.isDirectChat()
enabled: root.room.totalMemberCount === 2
onCheckedChanged: {
if (checked) {
root.room.markAsDirectChat();
} else {
root.connection.removeFromDirectChats(root.room.id);
}
}
}
}
FormCard.FormHeader {
title: i18n("Room Account Data")

View File

@@ -15,8 +15,7 @@
#include "neochatroom.h"
ThreadModel::ThreadModel(const QString &threadRootId, NeoChatRoom *room)
: QConcatenateTablesProxyModel()
, m_room(room)
: QConcatenateTablesProxyModel(room)
, m_threadRootId(threadRootId)
, m_threadFetchModel(new ThreadFetchModel(this))
, m_threadChatBarModel(new ThreadChatBarModel(this, room))
@@ -52,7 +51,12 @@ ThreadModel::ThreadModel(const QString &threadRootId, NeoChatRoom *room)
void ThreadModel::checkPending()
{
for (auto i = m_room->pendingEvents().rbegin(); i != m_room->pendingEvents().rend(); i++) {
const auto room = dynamic_cast<NeoChatRoom *>(QObject::parent());
if (room == nullptr) {
return;
}
for (auto i = room->pendingEvents().rbegin(); i != room->pendingEvents().rend(); i++) {
if (const auto roomMessageEvent = eventCast<const Quotient::RoomMessageEvent>(i->event());
roomMessageEvent->isThreaded() && roomMessageEvent->threadRootEventId() == m_threadRootId) {
addNewEvent(roomMessageEvent);
@@ -79,8 +83,9 @@ bool ThreadModel::moreEventsAvailable(const QModelIndex &parent) const
void ThreadModel::fetchMoreEvents(int max)
{
if (!m_currentJob && m_nextBatch.has_value()) {
m_currentJob =
m_room->connection()->callApi<Quotient::GetRelatingEventsWithRelTypeJob>(m_room->id(), m_threadRootId, u"m.thread"_s, *m_nextBatch, QString(), max);
const auto room = dynamic_cast<NeoChatRoom *>(QObject::parent());
const auto connection = room->connection();
m_currentJob = connection->callApi<Quotient::GetRelatingEventsWithRelTypeJob>(room->id(), m_threadRootId, u"m.thread"_s, *m_nextBatch, QString(), max);
Q_EMIT moreEventsAvailableChanged();
connect(m_currentJob, &Quotient::BaseJob::success, this, [this]() {
auto newEvents = m_currentJob->chunk();
@@ -125,11 +130,15 @@ void ThreadModel::addModels()
clearModels();
}
const auto room = dynamic_cast<NeoChatRoom *>(QObject::parent());
if (room == nullptr) {
return;
}
addSourceModel(m_threadFetchModel);
for (auto it = m_events.crbegin(); it != m_events.crend(); ++it) {
const auto contentModel = ContentProvider::self().contentModelForEvent(m_room, *it);
const auto contentModel = ContentProvider::self().contentModelForEvent(room, *it);
if (contentModel != nullptr) {
addSourceModel(contentModel);
addSourceModel(ContentProvider::self().contentModelForEvent(room, *it));
}
}
addSourceModel(m_threadChatBarModel);
@@ -140,9 +149,13 @@ void ThreadModel::addModels()
void ThreadModel::clearModels()
{
const auto room = dynamic_cast<NeoChatRoom *>(QObject::parent());
if (room == nullptr) {
return;
}
removeSourceModel(m_threadFetchModel);
for (const auto &model : m_events) {
const auto contentModel = ContentProvider::self().contentModelForEvent(m_room, model);
const auto contentModel = ContentProvider::self().contentModelForEvent(room, model);
if (sourceModels().contains(contentModel)) {
removeSourceModel(contentModel);
}

View File

@@ -164,8 +164,6 @@ Q_SIGNALS:
void moreEventsAvailableChanged();
private:
QPointer<NeoChatRoom> m_room;
QString m_threadRootId;
QPointer<MessageContentModel> m_threadRootContentModel;

View File

@@ -89,7 +89,7 @@ FormCard.FormCardPage {
FormCard.FormCard {
FormCard.FormButtonDelegate {
id: secretBackupDelegate
text: i18nc("@action:inmenu", "Manage Key Storage")
text: i18nc("@action:inmenu", "Manage Secret Backup")
description: i18nc("@info", "Import or unlock encryption keys from other devices.")
icon.name: "unlock"
onClicked: root.QQC2.ApplicationWindow.window.pageStack.pushDialogLayer(Qt.createComponent('org.kde.neochat', 'UnlockSSSSDialog'), {}, {
@@ -103,7 +103,7 @@ FormCard.FormCardPage {
FormCard.FormButtonDelegate {
id: importKeysDelegate
text: i18nc("@action:button", "Import Keys")
description: i18nc("@info", "Import encryption keys from a backup file.")
description: i18nc("@info", "Import encryption keys from a backup.")
icon.name: "document-import"
onClicked: {
let dialog = root.QQC2.ApplicationWindow.window.pageStack.pushDialogLayer(Qt.createComponent("org.kde.neochat.settings", "ImportKeysDialog"), {
@@ -126,7 +126,7 @@ FormCard.FormCardPage {
FormCard.FormButtonDelegate {
id: exportKeysDelegate
text: i18nc("@action:button", "Export Keys")
description: i18nc("@info", "Export this device's encryption keys to a file.")
description: i18nc("@info", "Export this device's encryption keys.")
icon.name: "document-export"
onClicked: {
root.QQC2.ApplicationWindow.window.pageStack.pushDialogLayer(Qt.createComponent("org.kde.neochat.settings", "ExportKeysDialog"), {

View File

@@ -127,8 +127,6 @@ MessageDelegateBase {
Message.maxContentWidth: maxContentWidth - bubble.leftPadding - bubble.rightPadding
width: parent?.width
leftPadding: NeoChatConfig.compactLayout ? Kirigami.Units.largeSpacing * 2 : Kirigami.Units.largeSpacing
rightPadding: NeoChatConfig.compactLayout ? Kirigami.Units.largeSpacing * 2 : Kirigami.Units.largeSpacing
enableAvatars: NeoChatConfig?.showAvatarInTimeline ?? false
compactMode: NeoChatConfig?.compactLayout ?? false
@@ -137,9 +135,9 @@ MessageDelegateBase {
contentItem: Bubble {
id: bubble
topPadding: NeoChatConfig.compactLayout ? 0 : Kirigami.Units.largeSpacing
bottomPadding: NeoChatConfig.compactLayout ? 0 : Kirigami.Units.largeSpacing
leftPadding: NeoChatConfig.compactLayout ? Kirigami.Units.mediumSpacing : Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing
topPadding: NeoChatConfig.compactLayout ? Kirigami.Units.smallSpacing / 2 : Kirigami.Units.largeSpacing
bottomPadding: NeoChatConfig.compactLayout ? Kirigami.Units.mediumSpacing / 2 : Kirigami.Units.largeSpacing
leftPadding: NeoChatConfig.compactLayout ? 0 : Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing
rightPadding: Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing
author: root.author

View File

@@ -29,8 +29,7 @@ TimelineDelegate {
}
width: parent?.width
leftPadding: NeoChatConfig.compactLayout && root.ListView.view.width >= Kirigami.Units.gridUnit * 20 ? Kirigami.Units.largeSpacing * 2 : Kirigami.Units.largeSpacing
rightPadding: NeoChatConfig.compactLayout && root.ListView.view.width >= Kirigami.Units.gridUnit * 20 ? Kirigami.Units.largeSpacing * 2 : Kirigami.Units.largeSpacing
rightPadding: NeoChatConfig.compactLayout && root.ListView.view.width >= Kirigami.Units.gridUnit * 20 ? Kirigami.Units.gridUnit * 2 + Kirigami.Units.largeSpacing : Kirigami.Units.largeSpacing
alwaysFillWidth: NeoChatConfig.compactLayout
@@ -43,7 +42,7 @@ TimelineDelegate {
topInset: Kirigami.Units.largeSpacing + Kirigami.Units.mediumSpacing
bottomInset: Kirigami.Units.mediumSpacing
rightInset: 0
rightInset: Kirigami.Units.largeSpacing
leftInset: 0
Timer {

View File

@@ -183,12 +183,6 @@ QVariant MessageModel::data(const QModelIndex &idx, int role) const
if (event.value().get().contentJson().contains("m.new_content"_L1)) {
return EventStatus::Hidden;
}
// A threaded event will be merged into the thread root event so
// also don't show.
const auto roomMessageEvent = eventCast<const RoomMessageEvent>(&event.value().get());
if (roomMessageEvent && roomMessageEvent->relatesTo() && roomMessageEvent->relatesTo()->type == EventRelation::ThreadType) {
return EventStatus::Hidden;
}
const auto pendingIt = eventRoom->findPendingEvent(event->get().transactionId());
if (pendingIt == eventRoom->pendingEvents().end()) {
return EventStatus::Hidden;
@@ -200,9 +194,12 @@ QVariant MessageModel::data(const QModelIndex &idx, int role) const
return EventStatus::Hidden;
}
const auto roomMessageEvent = eventCast<const RoomMessageEvent>(&event.value().get());
if (roomMessageEvent && roomMessageEvent->relatesTo() && roomMessageEvent->relatesTo()->type == EventRelation::ThreadType) {
return EventStatus::Hidden;
auto roomMessageEvent = eventCast<const RoomMessageEvent>(&event.value().get());
if (roomMessageEvent && (roomMessageEvent->isThreaded() || eventRoom->threads().contains(event.value().get().id()))) {
const auto &thread = eventRoom->threads().value(roomMessageEvent->isThreaded() ? roomMessageEvent->threadRootEventId() : event.value().get().id());
if (thread.latestEventId != event.value().get().id()) {
return EventStatus::Hidden;
}
}
return EventStatus::Normal;
}
@@ -230,7 +227,7 @@ QVariant MessageModel::data(const QModelIndex &idx, int role) const
if (role == IsThreadedRole) {
if (auto roomMessageEvent = eventCast<const RoomMessageEvent>(&event.value().get())) {
return roomMessageEvent->isThreaded() || eventRoom->threads().contains(event->get().id());
return roomMessageEvent->isThreaded();
}
return {};
}
@@ -239,8 +236,6 @@ QVariant MessageModel::data(const QModelIndex &idx, int role) const
auto roomMessageEvent = eventCast<const RoomMessageEvent>(&event.value().get());
if (roomMessageEvent && roomMessageEvent->isThreaded()) {
return roomMessageEvent->threadRootEventId();
} else if (eventRoom->threads().contains(event->get().id())) {
return event->get().id();
}
return {};
}

View File

@@ -6,7 +6,6 @@
#include "messagemodel_logging.h"
#include <Quotient/events/reactionevent.h>
#include <Quotient/thread.h>
using namespace Quotient;
@@ -126,21 +125,6 @@ void TimelineMessageModel::connectNewRoom()
}
}
});
#if Quotient_VERSION_MINOR > 9
connect(m_room, &Room::newThread, this, [this](const QString &threadRootId) {
if (threadRootId.isEmpty()) {
return;
}
refreshEventRoles(threadRootId, {IsThreadedRole, ThreadRootRole});
});
#elif Quotient_VERSION_MINOR == 9 && Quotient_VERSION_PATCH >= 4
connect(m_room, &Room::newThread, this, [this](const Thread &newThread) {
if (newThread.threadRootId.isEmpty()) {
return;
}
refreshEventRoles(newThread.threadRootId, {IsThreadedRole, ThreadRootRole});
});
#endif
connect(m_room->connection(), &Connection::ignoredUsersListChanged, this, [this] {
beginResetModel();
endResetModel();