Force notification windows to raise when unlocking screen on Windows

This commit is contained in:
gaelle 2026-02-20 11:27:29 +01:00 committed by Gaelle Braud
parent 56fd5f2de3
commit 9bc953ca82
11 changed files with 216 additions and 92 deletions

View file

@ -1052,6 +1052,10 @@ void App::initFonts() {
void App::clean() { void App::clean() {
mDateUpdateTimer.stop(); mDateUpdateTimer.stop();
#ifdef Q_OS_WIN
removeNativeEventFilter(mLockEventFilter);
delete mLockEventFilter;
#endif
if (mEngine) { if (mEngine) {
mEngine->clearComponentCache(); mEngine->clearComponentCache();
mEngine->clearSingletons(); mEngine->clearSingletons();
@ -1309,11 +1313,20 @@ QQuickWindow *App::getMainWindow() const {
} }
void App::setMainWindow(QQuickWindow *data) { void App::setMainWindow(QQuickWindow *data) {
if (mMainWindow) disconnect(mMainWindow, &QQuickWindow::activeChanged, this, nullptr); if (mMainWindow) {
disconnect(mMainWindow, &QQuickWindow::activeChanged, this, nullptr);
}
if (mMainWindow != data) { if (mMainWindow != data) {
mMainWindow = data; mMainWindow = data;
connect(mMainWindow, &QQuickWindow::activeChanged, this, &App::handleAppActivity); connect(mMainWindow, &QQuickWindow::activeChanged, this, &App::handleAppActivity);
handleAppActivity(); handleAppActivity();
mMainWindow->winId();
#ifdef Q_OS_WIN
WTSRegisterSessionNotification(reinterpret_cast<HWND>(mMainWindow->winId()), NOTIFY_FOR_THIS_SESSION);
#endif
emit mainWindowChanged(); emit mainWindowChanged();
} }
} }
@ -1592,7 +1605,6 @@ void App::setSysTrayIcon() {
(mSystemTrayIcon ? mSystemTrayIcon (mSystemTrayIcon ? mSystemTrayIcon
: new QSystemTrayIcon(nullptr)); // Workaround : QSystemTrayIcon cannot be deleted because : new QSystemTrayIcon(nullptr)); // Workaround : QSystemTrayIcon cannot be deleted because
// of setContextMenu (indirectly) // of setContextMenu (indirectly)
// trayIcon: Right click actions. // trayIcon: Right click actions.
QAction *restoreAction = nullptr; QAction *restoreAction = nullptr;
if (mSettings && !mSettings->getExitOnClose()) { if (mSettings && !mSettings->getExitOnClose()) {
@ -1654,6 +1666,13 @@ void App::setSysTrayIcon() {
systemTrayIcon->show(); systemTrayIcon->show();
if (!mSystemTrayIcon) mSystemTrayIcon = systemTrayIcon; if (!mSystemTrayIcon) mSystemTrayIcon = systemTrayIcon;
if (!QSystemTrayIcon::isSystemTrayAvailable()) qInfo() << "System tray is not available"; if (!QSystemTrayIcon::isSystemTrayAvailable()) qInfo() << "System tray is not available";
//
#ifdef Q_OS_WIN
if (!mLockEventFilter) mLockEventFilter = new LockEventFilter();
connect(mLockEventFilter, &LockEventFilter::sessionUnlocked, this, [this] { emit sessionUnlocked(); });
installNativeEventFilter(mLockEventFilter);
#endif
} }
//----------------------------------------------------------- //-----------------------------------------------------------

View file

@ -29,6 +29,7 @@
#include "core/chat/ChatGui.hpp" #include "core/chat/ChatGui.hpp"
#include "core/chat/ChatList.hpp" #include "core/chat/ChatList.hpp"
#include "core/conference/ConferenceInfoList.hpp" #include "core/conference/ConferenceInfoList.hpp"
#include "core/event-filter/LockEventFilter.hpp"
#include "core/setting/SettingsCore.hpp" #include "core/setting/SettingsCore.hpp"
#include "core/singleapplication/singleapplication.h" #include "core/singleapplication/singleapplication.h"
#include "model/cli/CliModel.hpp" #include "model/cli/CliModel.hpp"
@ -231,6 +232,9 @@ signals:
void lForceOidcTimeout(); void lForceOidcTimeout();
void remainingTimeBeforeOidcTimeoutChanged(); void remainingTimeBeforeOidcTimeoutChanged();
void currentAccountChanged(); void currentAccountChanged();
#ifdef Q_OS_WIN
void sessionUnlocked();
#endif
// void executeCommand(QString command); // void executeCommand(QString command);
private: private:
@ -248,6 +252,9 @@ private:
QQuickWindow *mMainWindow = nullptr; QQuickWindow *mMainWindow = nullptr;
QQuickWindow *mCallsWindow = nullptr; QQuickWindow *mCallsWindow = nullptr;
QQuickWindow *mLastActiveWindow = nullptr; QQuickWindow *mLastActiveWindow = nullptr;
#ifdef Q_OS_WIN
LockEventFilter *mLockEventFilter = nullptr;
#endif
// Holds the current chat displayed in the view // Holds the current chat displayed in the view
// to know if we need to display the notification // to know if we need to display the notification
ChatGui *mCurrentChat = nullptr; ChatGui *mCurrentChat = nullptr;

View file

@ -40,6 +40,7 @@ list(APPEND _LINPHONEAPP_SOURCES
core/emoji/EmojiModel.cpp core/emoji/EmojiModel.cpp
core/emoji/EmojiProxy.cpp core/emoji/EmojiProxy.cpp
core/event-count-notifier/AbstractEventCountNotifier.cpp core/event-count-notifier/AbstractEventCountNotifier.cpp
core/event-filter/LockEventFilter.cpp
core/fps-counter/FPSCounter.cpp core/fps-counter/FPSCounter.cpp
core/friend/FriendCore.cpp core/friend/FriendCore.cpp
core/friend/FriendGui.cpp core/friend/FriendGui.cpp

View file

@ -0,0 +1,40 @@
/*
* Copyright (c) 2010-2026 Belledonne Communications SARL.
*
* This file is part of linphone-desktop
* (see https://www.linphone.org).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "LockEventFilter.hpp"
LockEventFilter::LockEventFilter(QObject *parent) : QObject(parent) {
}
bool LockEventFilter::nativeEventFilter(const QByteArray &eventType, void *message, qintptr *result) {
#ifdef Q_OS_WIN
MSG *msg = static_cast<MSG *>(message);
if (msg->message == WM_WTSSESSION_CHANGE) {
if (msg->wParam == WTS_SESSION_LOCK) {
return true;
} else {
emit sessionUnlocked();
return true;
}
}
#endif
return false;
}

View file

@ -0,0 +1,46 @@
/*
* Copyright (c) 2010-2026 Belledonne Communications SARL.
*
* This file is part of linphone-desktop
* (see https://www.linphone.org).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LOCKEVENTFILTER_H
#define LOCKEVENTFILTER_H
#include "tool/Utils.hpp"
#include <QAbstractNativeEventFilter>
#ifdef Q_OS_WIN
#include <Windows.h>
#include <WtsApi32.h>
#include <qwindowdefs_win.h>
#pragma comment(lib, "Wtsapi32.lib")
#endif
class LockEventFilter : public QObject, public QAbstractNativeEventFilter {
Q_OBJECT
public:
LockEventFilter(QObject *parent = nullptr);
// virtual bool nativeEventFilter(const QByteArray &eventType, void *message, qintptr *result) override;
virtual bool nativeEventFilter(const QByteArray &eventType, void *message, qintptr *result) override;
signals:
void sessionUnlocked();
};
#endif // LOCKEVENTFILTER_H

View file

@ -207,12 +207,23 @@ bool Notifier::createNotification(Notifier::NotificationType type, QVariantMap d
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void Notifier::showNotification(QObject *notification, int timeout) { void Notifier::showNotification(QQuickWindow *notification, int timeout) {
// Display notification. // Display notification.
QTimer *timer = new QTimer(notification); QTimer *timer = new QTimer(notification);
timer->setInterval(timeout); timer->setInterval(timeout);
timer->setSingleShot(true); timer->setSingleShot(true);
notification->setProperty(NotificationPropertyTimer, QVariant::fromValue(timer)); notification->setProperty(NotificationPropertyTimer, QVariant::fromValue(timer));
#ifdef Q_OS_WIN
QObject::connect(App::getInstance(), &App::sessionUnlocked, notification, [this, notification] {
lInfo() << log().arg("Windows : screen unlocked, force raising notification");
notification->show();
notification->raise();
notification->requestActivate();
});
#endif
notification->show();
notification->raise();
notification->requestActivate();
// Destroy it after timeout. // Destroy it after timeout.
QObject::connect(timer, &QTimer::timeout, this, QObject::connect(timer, &QTimer::timeout, this,

View file

@ -90,7 +90,7 @@ private:
}; };
bool createNotification(NotificationType type, QVariantMap data); bool createNotification(NotificationType type, QVariantMap data);
void showNotification(QObject *notification, int timeout); void showNotification(QQuickWindow *notification, int timeout);
QHash<QString, int> mScreenHeightOffset; QHash<QString, int> mScreenHeightOffset;
int mInstancesNumber = 0; int mInstancesNumber = 0;

View file

@ -678,14 +678,14 @@
<message> <message>
<location filename="../../core/App.cpp" line="437"/> <location filename="../../core/App.cpp" line="437"/>
<location filename="../../core/App.cpp" line="515"/> <location filename="../../core/App.cpp" line="515"/>
<location filename="../../core/App.cpp" line="819"/> <location filename="../../core/App.cpp" line="822"/>
<source>info_popup_error_title</source> <source>info_popup_error_title</source>
<extracomment>Error</extracomment> <extracomment>Error</extracomment>
<translation>Fehler</translation> <translation>Fehler</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="438"/> <location filename="../../core/App.cpp" line="438"/>
<location filename="../../core/App.cpp" line="821"/> <location filename="../../core/App.cpp" line="824"/>
<source>info_popup_configuration_failed_message</source> <source>info_popup_configuration_failed_message</source>
<extracomment>Remote provisioning failed : %1</extracomment> <extracomment>Remote provisioning failed : %1</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -725,86 +725,86 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="815"/> <location filename="../../core/App.cpp" line="818"/>
<source>configuration_error_detail</source> <source>configuration_error_detail</source>
<extracomment>not reachable</extracomment> <extracomment>not reachable</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1108"/> <location filename="../../core/App.cpp" line="1115"/>
<source>application_description</source> <source>application_description</source>
<extracomment>&quot;A free and open source SIP video-phone.&quot;</extracomment> <extracomment>&quot;A free and open source SIP video-phone.&quot;</extracomment>
<translation>Ein kostenloses Open-Source SIP Video-Telefon.</translation> <translation>Ein kostenloses Open-Source SIP Video-Telefon.</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1110"/> <location filename="../../core/App.cpp" line="1117"/>
<source>command_line_arg_order</source> <source>command_line_arg_order</source>
<extracomment>&quot;Send an order to the application towards a command line&quot;</extracomment> <extracomment>&quot;Send an order to the application towards a command line&quot;</extracomment>
<translation>Kommandozeilen-Befehl an die Anwendung schicken</translation> <translation>Kommandozeilen-Befehl an die Anwendung schicken</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1114"/> <location filename="../../core/App.cpp" line="1121"/>
<source>command_line_option_show_help</source> <source>command_line_option_show_help</source>
<translation>Zeige Hilfe</translation> <translation>Zeige Hilfe</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1119"/> <location filename="../../core/App.cpp" line="1126"/>
<source>command_line_option_show_app_version</source> <source>command_line_option_show_app_version</source>
<translation>App-Version anzeigen</translation> <translation>App-Version anzeigen</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1127"/> <location filename="../../core/App.cpp" line="1134"/>
<source>command_line_option_config_to_fetch</source> <source>command_line_option_config_to_fetch</source>
<extracomment>&quot;Specify the linphone configuration file to be fetched. It will be merged with the current configuration.&quot;</extracomment> <extracomment>&quot;Specify the linphone configuration file to be fetched. It will be merged with the current configuration.&quot;</extracomment>
<translation>Abzurufende Linphone-Konfigurationsdatei angeben. Sie wird mit der aktuellen Konfiguration zusammengeführt.</translation> <translation>Abzurufende Linphone-Konfigurationsdatei angeben. Sie wird mit der aktuellen Konfiguration zusammengeführt.</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1129"/> <location filename="../../core/App.cpp" line="1136"/>
<source>command_line_option_config_to_fetch_arg</source> <source>command_line_option_config_to_fetch_arg</source>
<extracomment>&quot;URL, path or file&quot;</extracomment> <extracomment>&quot;URL, path or file&quot;</extracomment>
<translation>URL, Pfad oder Datei</translation> <translation>URL, Pfad oder Datei</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1134"/> <location filename="../../core/App.cpp" line="1141"/>
<source>command_line_option_minimized</source> <source>command_line_option_minimized</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1137"/> <location filename="../../core/App.cpp" line="1144"/>
<source>command_line_option_log_to_stdout</source> <source>command_line_option_log_to_stdout</source>
<translation>Debug-Informationen auf der Standardausgabe ausgeben</translation> <translation>Debug-Informationen auf der Standardausgabe ausgeben</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1140"/> <location filename="../../core/App.cpp" line="1147"/>
<source>command_line_option_print_app_logs_only</source> <source>command_line_option_print_app_logs_only</source>
<extracomment>&quot;Print only logs from the application&quot;</extracomment> <extracomment>&quot;Print only logs from the application&quot;</extracomment>
<translation>Nur Anwendungs-Logs ausgeben</translation> <translation>Nur Anwendungs-Logs ausgeben</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1603"/> <location filename="../../core/App.cpp" line="1618"/>
<source>hide_action</source> <source>hide_action</source>
<extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment> <extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment>
<translation>Ausblenden</translation> <translation>Ausblenden</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1603"/> <location filename="../../core/App.cpp" line="1618"/>
<source>show_action</source> <source>show_action</source>
<translation>Zeigen</translation> <translation>Zeigen</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1618"/> <location filename="../../core/App.cpp" line="1633"/>
<source>quit_action</source> <source>quit_action</source>
<extracomment>&quot;Quitter&quot;</extracomment> <extracomment>&quot;Quitter&quot;</extracomment>
<translation>Beenden</translation> <translation>Beenden</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1636"/> <location filename="../../core/App.cpp" line="1651"/>
<source>check_for_update</source> <source>check_for_update</source>
<extracomment>Check for update</extracomment> <extracomment>Check for update</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1763"/> <location filename="../../core/App.cpp" line="1785"/>
<source>mark_all_read_action</source> <source>mark_all_read_action</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -2071,13 +2071,13 @@
<context> <context>
<name>ChatCore</name> <name>ChatCore</name>
<message> <message>
<location filename="../../core/chat/ChatCore.cpp" line="144"/> <location filename="../../core/chat/ChatCore.cpp" line="145"/>
<source>info_toast_deleted_title</source> <source>info_toast_deleted_title</source>
<extracomment>Deleted</extracomment> <extracomment>Deleted</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../core/chat/ChatCore.cpp" line="146"/> <location filename="../../core/chat/ChatCore.cpp" line="147"/>
<source>info_toast_deleted_message_history</source> <source>info_toast_deleted_message_history</source>
<extracomment>Message history has been deleted</extracomment> <extracomment>Message history has been deleted</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -4726,19 +4726,19 @@ Error</extracomment>
<context> <context>
<name>MeetingListView</name> <name>MeetingListView</name>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="280"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="283"/>
<source>meeting_info_cancelled</source> <source>meeting_info_cancelled</source>
<extracomment>&quot;Réunion annulée&quot;</extracomment> <extracomment>&quot;Réunion annulée&quot;</extracomment>
<translation>Besprechung abgesagt</translation> <translation>Besprechung abgesagt</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="304"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="307"/>
<source>meetings_list_no_meeting_for_today</source> <source>meetings_list_no_meeting_for_today</source>
<extracomment>&quot;Aucune réunion aujourd&apos;hui&quot;</extracomment> <extracomment>&quot;Aucune réunion aujourd&apos;hui&quot;</extracomment>
<translation>Heute keine Besprechungen</translation> <translation>Heute keine Besprechungen</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="340"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="343"/>
<source>meeting_info_delete</source> <source>meeting_info_delete</source>
<extracomment>&quot;Supprimer la réunion&quot;</extracomment> <extracomment>&quot;Supprimer la réunion&quot;</extracomment>
<translation>Besprechung löschen</translation> <translation>Besprechung löschen</translation>
@ -5135,42 +5135,42 @@ Error</extracomment>
<context> <context>
<name>Notifier</name> <name>Notifier</name>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="307"/> <location filename="../../core/notifier/Notifier.cpp" line="318"/>
<source>new_call_alert_accessible_name</source> <source>new_call_alert_accessible_name</source>
<extracomment>New call from %1</extracomment> <extracomment>New call from %1</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="362"/> <location filename="../../core/notifier/Notifier.cpp" line="373"/>
<source>new_voice_message</source> <source>new_voice_message</source>
<extracomment>&apos;Voice message received!&apos; : message to warn the user in a notification for voice messages.</extracomment> <extracomment>&apos;Voice message received!&apos; : message to warn the user in a notification for voice messages.</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="363"/> <location filename="../../core/notifier/Notifier.cpp" line="374"/>
<source>new_file_message</source> <source>new_file_message</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="366"/> <location filename="../../core/notifier/Notifier.cpp" line="377"/>
<source>new_conference_invitation</source> <source>new_conference_invitation</source>
<extracomment>&apos;Conference invitation received!&apos; : Notification about receiving an invitation to a conference.</extracomment> <extracomment>&apos;Conference invitation received!&apos; : Notification about receiving an invitation to a conference.</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="388"/> <location filename="../../core/notifier/Notifier.cpp" line="399"/>
<source>new_chat_room_message</source> <source>new_chat_room_message</source>
<extracomment>&apos;New message received!&apos; Notification that warn the user of a new message.</extracomment> <extracomment>&apos;New message received!&apos; Notification that warn the user of a new message.</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="391"/> <location filename="../../core/notifier/Notifier.cpp" line="402"/>
<source>new_chat_room_messages</source> <source>new_chat_room_messages</source>
<extracomment>&apos;New messages received!&apos; Notification that warn the user of new messages.</extracomment> <extracomment>&apos;New messages received!&apos; Notification that warn the user of new messages.</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="419"/> <location filename="../../core/notifier/Notifier.cpp" line="430"/>
<source>new_message_alert_accessible_name</source> <source>new_message_alert_accessible_name</source>
<extracomment>New message on chatroom %1</extracomment> <extracomment>New message on chatroom %1</extracomment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>

View file

@ -669,14 +669,14 @@
<message> <message>
<location filename="../../core/App.cpp" line="437"/> <location filename="../../core/App.cpp" line="437"/>
<location filename="../../core/App.cpp" line="515"/> <location filename="../../core/App.cpp" line="515"/>
<location filename="../../core/App.cpp" line="819"/> <location filename="../../core/App.cpp" line="822"/>
<source>info_popup_error_title</source> <source>info_popup_error_title</source>
<extracomment>Error</extracomment> <extracomment>Error</extracomment>
<translation>Error</translation> <translation>Error</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="438"/> <location filename="../../core/App.cpp" line="438"/>
<location filename="../../core/App.cpp" line="821"/> <location filename="../../core/App.cpp" line="824"/>
<source>info_popup_configuration_failed_message</source> <source>info_popup_configuration_failed_message</source>
<extracomment>Remote provisioning failed : %1</extracomment> <extracomment>Remote provisioning failed : %1</extracomment>
<translation>Remote provisioning failed : %1</translation> <translation>Remote provisioning failed : %1</translation>
@ -716,86 +716,86 @@
<translation>Up to date Your version is up to date</translation> <translation>Up to date Your version is up to date</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="815"/> <location filename="../../core/App.cpp" line="818"/>
<source>configuration_error_detail</source> <source>configuration_error_detail</source>
<extracomment>not reachable</extracomment> <extracomment>not reachable</extracomment>
<translation>not reachable</translation> <translation>not reachable</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1108"/> <location filename="../../core/App.cpp" line="1115"/>
<source>application_description</source> <source>application_description</source>
<extracomment>&quot;A free and open source SIP video-phone.&quot;</extracomment> <extracomment>&quot;A free and open source SIP video-phone.&quot;</extracomment>
<translation>A free and open source SIP video-phone.</translation> <translation>A free and open source SIP video-phone.</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1110"/> <location filename="../../core/App.cpp" line="1117"/>
<source>command_line_arg_order</source> <source>command_line_arg_order</source>
<extracomment>&quot;Send an order to the application towards a command line&quot;</extracomment> <extracomment>&quot;Send an order to the application towards a command line&quot;</extracomment>
<translation>Send an order to the application towards a command line</translation> <translation>Send an order to the application towards a command line</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1114"/> <location filename="../../core/App.cpp" line="1121"/>
<source>command_line_option_show_help</source> <source>command_line_option_show_help</source>
<translation>Show this help</translation> <translation>Show this help</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1119"/> <location filename="../../core/App.cpp" line="1126"/>
<source>command_line_option_show_app_version</source> <source>command_line_option_show_app_version</source>
<translation>Show app version</translation> <translation>Show app version</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1127"/> <location filename="../../core/App.cpp" line="1134"/>
<source>command_line_option_config_to_fetch</source> <source>command_line_option_config_to_fetch</source>
<extracomment>&quot;Specify the linphone configuration file to be fetched. It will be merged with the current configuration.&quot;</extracomment> <extracomment>&quot;Specify the linphone configuration file to be fetched. It will be merged with the current configuration.&quot;</extracomment>
<translation>Specify the linphone configuration file to be fetched. It will be merged with the current configuration.</translation> <translation>Specify the linphone configuration file to be fetched. It will be merged with the current configuration.</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1129"/> <location filename="../../core/App.cpp" line="1136"/>
<source>command_line_option_config_to_fetch_arg</source> <source>command_line_option_config_to_fetch_arg</source>
<extracomment>&quot;URL, path or file&quot;</extracomment> <extracomment>&quot;URL, path or file&quot;</extracomment>
<translation>URL, path or file</translation> <translation>URL, path or file</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1134"/> <location filename="../../core/App.cpp" line="1141"/>
<source>command_line_option_minimized</source> <source>command_line_option_minimized</source>
<translation>Minimize</translation> <translation>Minimize</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1137"/> <location filename="../../core/App.cpp" line="1144"/>
<source>command_line_option_log_to_stdout</source> <source>command_line_option_log_to_stdout</source>
<translation>Log to stdout some debug information while running</translation> <translation>Log to stdout some debug information while running</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1140"/> <location filename="../../core/App.cpp" line="1147"/>
<source>command_line_option_print_app_logs_only</source> <source>command_line_option_print_app_logs_only</source>
<extracomment>&quot;Print only logs from the application&quot;</extracomment> <extracomment>&quot;Print only logs from the application&quot;</extracomment>
<translation>Print only logs from the application</translation> <translation>Print only logs from the application</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1603"/> <location filename="../../core/App.cpp" line="1618"/>
<source>hide_action</source> <source>hide_action</source>
<extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment> <extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment>
<translation>Hide</translation> <translation>Hide</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1603"/> <location filename="../../core/App.cpp" line="1618"/>
<source>show_action</source> <source>show_action</source>
<translation>Show</translation> <translation>Show</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1618"/> <location filename="../../core/App.cpp" line="1633"/>
<source>quit_action</source> <source>quit_action</source>
<extracomment>&quot;Quitter&quot;</extracomment> <extracomment>&quot;Quitter&quot;</extracomment>
<translation>Quit</translation> <translation>Quit</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1636"/> <location filename="../../core/App.cpp" line="1651"/>
<source>check_for_update</source> <source>check_for_update</source>
<extracomment>Check for update</extracomment> <extracomment>Check for update</extracomment>
<translation>Check for update</translation> <translation>Check for update</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1763"/> <location filename="../../core/App.cpp" line="1785"/>
<source>mark_all_read_action</source> <source>mark_all_read_action</source>
<translation>Marquer tout comme lu</translation> <translation>Marquer tout comme lu</translation>
</message> </message>
@ -2064,13 +2064,13 @@
<context> <context>
<name>ChatCore</name> <name>ChatCore</name>
<message> <message>
<location filename="../../core/chat/ChatCore.cpp" line="144"/> <location filename="../../core/chat/ChatCore.cpp" line="145"/>
<source>info_toast_deleted_title</source> <source>info_toast_deleted_title</source>
<extracomment>Deleted</extracomment> <extracomment>Deleted</extracomment>
<translation>Deleted</translation> <translation>Deleted</translation>
</message> </message>
<message> <message>
<location filename="../../core/chat/ChatCore.cpp" line="146"/> <location filename="../../core/chat/ChatCore.cpp" line="147"/>
<source>info_toast_deleted_message_history</source> <source>info_toast_deleted_message_history</source>
<extracomment>Message history has been deleted</extracomment> <extracomment>Message history has been deleted</extracomment>
<translation>Message history has been deleted</translation> <translation>Message history has been deleted</translation>
@ -4658,19 +4658,19 @@ Expiration : %1</translation>
<context> <context>
<name>MeetingListView</name> <name>MeetingListView</name>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="280"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="283"/>
<source>meeting_info_cancelled</source> <source>meeting_info_cancelled</source>
<extracomment>&quot;Réunion annulée&quot;</extracomment> <extracomment>&quot;Réunion annulée&quot;</extracomment>
<translation>Meeting canceled</translation> <translation>Meeting canceled</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="304"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="307"/>
<source>meetings_list_no_meeting_for_today</source> <source>meetings_list_no_meeting_for_today</source>
<extracomment>&quot;Aucune réunion aujourd&apos;hui&quot;</extracomment> <extracomment>&quot;Aucune réunion aujourd&apos;hui&quot;</extracomment>
<translation>No meeting for today</translation> <translation>No meeting for today</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="340"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="343"/>
<source>meeting_info_delete</source> <source>meeting_info_delete</source>
<extracomment>&quot;Supprimer la réunion&quot;</extracomment> <extracomment>&quot;Supprimer la réunion&quot;</extracomment>
<translation>Delete meeting</translation> <translation>Delete meeting</translation>
@ -5058,42 +5058,42 @@ Expiration : %1</translation>
<context> <context>
<name>Notifier</name> <name>Notifier</name>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="307"/> <location filename="../../core/notifier/Notifier.cpp" line="318"/>
<source>new_call_alert_accessible_name</source> <source>new_call_alert_accessible_name</source>
<extracomment>New call from %1</extracomment> <extracomment>New call from %1</extracomment>
<translation>New call from %1</translation> <translation>New call from %1</translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="362"/> <location filename="../../core/notifier/Notifier.cpp" line="373"/>
<source>new_voice_message</source> <source>new_voice_message</source>
<extracomment>&apos;Voice message received!&apos; : message to warn the user in a notification for voice messages.</extracomment> <extracomment>&apos;Voice message received!&apos; : message to warn the user in a notification for voice messages.</extracomment>
<translation>Voice message received!</translation> <translation>Voice message received!</translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="363"/> <location filename="../../core/notifier/Notifier.cpp" line="374"/>
<source>new_file_message</source> <source>new_file_message</source>
<translation>File received!</translation> <translation>File received!</translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="366"/> <location filename="../../core/notifier/Notifier.cpp" line="377"/>
<source>new_conference_invitation</source> <source>new_conference_invitation</source>
<extracomment>&apos;Conference invitation received!&apos; : Notification about receiving an invitation to a conference.</extracomment> <extracomment>&apos;Conference invitation received!&apos; : Notification about receiving an invitation to a conference.</extracomment>
<translation>Conference invitation received !</translation> <translation>Conference invitation received !</translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="388"/> <location filename="../../core/notifier/Notifier.cpp" line="399"/>
<source>new_chat_room_message</source> <source>new_chat_room_message</source>
<extracomment>&apos;New message received!&apos; Notification that warn the user of a new message.</extracomment> <extracomment>&apos;New message received!&apos; Notification that warn the user of a new message.</extracomment>
<translation>New message received!</translation> <translation>New message received!</translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="391"/> <location filename="../../core/notifier/Notifier.cpp" line="402"/>
<source>new_chat_room_messages</source> <source>new_chat_room_messages</source>
<extracomment>&apos;New messages received!&apos; Notification that warn the user of new messages.</extracomment> <extracomment>&apos;New messages received!&apos; Notification that warn the user of new messages.</extracomment>
<translation>New messages received !</translation> <translation>New messages received !</translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="419"/> <location filename="../../core/notifier/Notifier.cpp" line="430"/>
<source>new_message_alert_accessible_name</source> <source>new_message_alert_accessible_name</source>
<extracomment>New message on chatroom %1</extracomment> <extracomment>New message on chatroom %1</extracomment>
<translation>New message on chatroom %1</translation> <translation>New message on chatroom %1</translation>

View file

@ -664,14 +664,14 @@
<message> <message>
<location filename="../../core/App.cpp" line="437"/> <location filename="../../core/App.cpp" line="437"/>
<location filename="../../core/App.cpp" line="515"/> <location filename="../../core/App.cpp" line="515"/>
<location filename="../../core/App.cpp" line="819"/> <location filename="../../core/App.cpp" line="822"/>
<source>info_popup_error_title</source> <source>info_popup_error_title</source>
<extracomment>Error</extracomment> <extracomment>Error</extracomment>
<translation>Erreur</translation> <translation>Erreur</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="438"/> <location filename="../../core/App.cpp" line="438"/>
<location filename="../../core/App.cpp" line="821"/> <location filename="../../core/App.cpp" line="824"/>
<source>info_popup_configuration_failed_message</source> <source>info_popup_configuration_failed_message</source>
<extracomment>Remote provisioning failed : %1</extracomment> <extracomment>Remote provisioning failed : %1</extracomment>
<translation>La configuration distante a échoué : %1</translation> <translation>La configuration distante a échoué : %1</translation>
@ -711,86 +711,86 @@
<translation>Votre version est à jour</translation> <translation>Votre version est à jour</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="815"/> <location filename="../../core/App.cpp" line="818"/>
<source>configuration_error_detail</source> <source>configuration_error_detail</source>
<extracomment>not reachable</extracomment> <extracomment>not reachable</extracomment>
<translation>indisponible</translation> <translation>indisponible</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1108"/> <location filename="../../core/App.cpp" line="1115"/>
<source>application_description</source> <source>application_description</source>
<extracomment>&quot;A free and open source SIP video-phone.&quot;</extracomment> <extracomment>&quot;A free and open source SIP video-phone.&quot;</extracomment>
<translation>A free and open source SIP video-phone.</translation> <translation>A free and open source SIP video-phone.</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1110"/> <location filename="../../core/App.cpp" line="1117"/>
<source>command_line_arg_order</source> <source>command_line_arg_order</source>
<extracomment>&quot;Send an order to the application towards a command line&quot;</extracomment> <extracomment>&quot;Send an order to the application towards a command line&quot;</extracomment>
<translation>Send an order to the application towards a command line</translation> <translation>Send an order to the application towards a command line</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1114"/> <location filename="../../core/App.cpp" line="1121"/>
<source>command_line_option_show_help</source> <source>command_line_option_show_help</source>
<translation>Show this help</translation> <translation>Show this help</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1119"/> <location filename="../../core/App.cpp" line="1126"/>
<source>command_line_option_show_app_version</source> <source>command_line_option_show_app_version</source>
<translation>Afficher la version de l&apos;application</translation> <translation>Afficher la version de l&apos;application</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1127"/> <location filename="../../core/App.cpp" line="1134"/>
<source>command_line_option_config_to_fetch</source> <source>command_line_option_config_to_fetch</source>
<extracomment>&quot;Specify the linphone configuration file to be fetched. It will be merged with the current configuration.&quot;</extracomment> <extracomment>&quot;Specify the linphone configuration file to be fetched. It will be merged with the current configuration.&quot;</extracomment>
<translation>Specify the linphone configuration file to be fetched. It will be merged with the current configuration.</translation> <translation>Specify the linphone configuration file to be fetched. It will be merged with the current configuration.</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1129"/> <location filename="../../core/App.cpp" line="1136"/>
<source>command_line_option_config_to_fetch_arg</source> <source>command_line_option_config_to_fetch_arg</source>
<extracomment>&quot;URL, path or file&quot;</extracomment> <extracomment>&quot;URL, path or file&quot;</extracomment>
<translation>URL, path or file</translation> <translation>URL, path or file</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1134"/> <location filename="../../core/App.cpp" line="1141"/>
<source>command_line_option_minimized</source> <source>command_line_option_minimized</source>
<translation>Minimiser</translation> <translation>Minimiser</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1137"/> <location filename="../../core/App.cpp" line="1144"/>
<source>command_line_option_log_to_stdout</source> <source>command_line_option_log_to_stdout</source>
<translation>Log to stdout some debug information while running</translation> <translation>Log to stdout some debug information while running</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1140"/> <location filename="../../core/App.cpp" line="1147"/>
<source>command_line_option_print_app_logs_only</source> <source>command_line_option_print_app_logs_only</source>
<extracomment>&quot;Print only logs from the application&quot;</extracomment> <extracomment>&quot;Print only logs from the application&quot;</extracomment>
<translation>Print only logs from the application</translation> <translation>Print only logs from the application</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1603"/> <location filename="../../core/App.cpp" line="1618"/>
<source>hide_action</source> <source>hide_action</source>
<extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment> <extracomment>&quot;Cacher&quot; &quot;Afficher&quot;</extracomment>
<translation>Cacher</translation> <translation>Cacher</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1603"/> <location filename="../../core/App.cpp" line="1618"/>
<source>show_action</source> <source>show_action</source>
<translation>Afficher</translation> <translation>Afficher</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1618"/> <location filename="../../core/App.cpp" line="1633"/>
<source>quit_action</source> <source>quit_action</source>
<extracomment>&quot;Quitter&quot;</extracomment> <extracomment>&quot;Quitter&quot;</extracomment>
<translation>Quitter</translation> <translation>Quitter</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1636"/> <location filename="../../core/App.cpp" line="1651"/>
<source>check_for_update</source> <source>check_for_update</source>
<extracomment>Check for update</extracomment> <extracomment>Check for update</extracomment>
<translation>Rechercher une mise à jour</translation> <translation>Rechercher une mise à jour</translation>
</message> </message>
<message> <message>
<location filename="../../core/App.cpp" line="1763"/> <location filename="../../core/App.cpp" line="1785"/>
<source>mark_all_read_action</source> <source>mark_all_read_action</source>
<translation>Marquer tout comme lu</translation> <translation>Marquer tout comme lu</translation>
</message> </message>
@ -2039,13 +2039,13 @@
<context> <context>
<name>ChatCore</name> <name>ChatCore</name>
<message> <message>
<location filename="../../core/chat/ChatCore.cpp" line="144"/> <location filename="../../core/chat/ChatCore.cpp" line="145"/>
<source>info_toast_deleted_title</source> <source>info_toast_deleted_title</source>
<extracomment>Deleted</extracomment> <extracomment>Deleted</extracomment>
<translation>Supprimé</translation> <translation>Supprimé</translation>
</message> </message>
<message> <message>
<location filename="../../core/chat/ChatCore.cpp" line="146"/> <location filename="../../core/chat/ChatCore.cpp" line="147"/>
<source>info_toast_deleted_message_history</source> <source>info_toast_deleted_message_history</source>
<extracomment>Message history has been deleted</extracomment> <extracomment>Message history has been deleted</extracomment>
<translation>L&apos;historique des messages a é supprimé</translation> <translation>L&apos;historique des messages a é supprimé</translation>
@ -4629,19 +4629,19 @@ Expiration : %1</translation>
<context> <context>
<name>MeetingListView</name> <name>MeetingListView</name>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="280"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="283"/>
<source>meeting_info_cancelled</source> <source>meeting_info_cancelled</source>
<extracomment>&quot;Réunion annulée&quot;</extracomment> <extracomment>&quot;Réunion annulée&quot;</extracomment>
<translation>Réunion annulée</translation> <translation>Réunion annulée</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="304"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="307"/>
<source>meetings_list_no_meeting_for_today</source> <source>meetings_list_no_meeting_for_today</source>
<extracomment>&quot;Aucune réunion aujourd&apos;hui&quot;</extracomment> <extracomment>&quot;Aucune réunion aujourd&apos;hui&quot;</extracomment>
<translation>Aucune réunion aujourd&apos;hui</translation> <translation>Aucune réunion aujourd&apos;hui</translation>
</message> </message>
<message> <message>
<location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="340"/> <location filename="../../view/Control/Display/Meeting/MeetingListView.qml" line="343"/>
<source>meeting_info_delete</source> <source>meeting_info_delete</source>
<extracomment>&quot;Supprimer la réunion&quot;</extracomment> <extracomment>&quot;Supprimer la réunion&quot;</extracomment>
<translation>Supprimer la réunion</translation> <translation>Supprimer la réunion</translation>
@ -5029,42 +5029,42 @@ Expiration : %1</translation>
<context> <context>
<name>Notifier</name> <name>Notifier</name>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="307"/> <location filename="../../core/notifier/Notifier.cpp" line="318"/>
<source>new_call_alert_accessible_name</source> <source>new_call_alert_accessible_name</source>
<extracomment>New call from %1</extracomment> <extracomment>New call from %1</extracomment>
<translation>Nouvel appel de %1</translation> <translation>Nouvel appel de %1</translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="362"/> <location filename="../../core/notifier/Notifier.cpp" line="373"/>
<source>new_voice_message</source> <source>new_voice_message</source>
<extracomment>&apos;Voice message received!&apos; : message to warn the user in a notification for voice messages.</extracomment> <extracomment>&apos;Voice message received!&apos; : message to warn the user in a notification for voice messages.</extracomment>
<translation>Message vocal reçu !</translation> <translation>Message vocal reçu !</translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="363"/> <location filename="../../core/notifier/Notifier.cpp" line="374"/>
<source>new_file_message</source> <source>new_file_message</source>
<translation>Fichier reçu !</translation> <translation>Fichier reçu !</translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="366"/> <location filename="../../core/notifier/Notifier.cpp" line="377"/>
<source>new_conference_invitation</source> <source>new_conference_invitation</source>
<extracomment>&apos;Conference invitation received!&apos; : Notification about receiving an invitation to a conference.</extracomment> <extracomment>&apos;Conference invitation received!&apos; : Notification about receiving an invitation to a conference.</extracomment>
<translation>Nouvelle invitation à une conférence !</translation> <translation>Nouvelle invitation à une conférence !</translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="388"/> <location filename="../../core/notifier/Notifier.cpp" line="399"/>
<source>new_chat_room_message</source> <source>new_chat_room_message</source>
<extracomment>&apos;New message received!&apos; Notification that warn the user of a new message.</extracomment> <extracomment>&apos;New message received!&apos; Notification that warn the user of a new message.</extracomment>
<translation>Nouveau message reçu !</translation> <translation>Nouveau message reçu !</translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="391"/> <location filename="../../core/notifier/Notifier.cpp" line="402"/>
<source>new_chat_room_messages</source> <source>new_chat_room_messages</source>
<extracomment>&apos;New messages received!&apos; Notification that warn the user of new messages.</extracomment> <extracomment>&apos;New messages received!&apos; Notification that warn the user of new messages.</extracomment>
<translation>Nouveaux messages reçus !</translation> <translation>Nouveaux messages reçus !</translation>
</message> </message>
<message> <message>
<location filename="../../core/notifier/Notifier.cpp" line="419"/> <location filename="../../core/notifier/Notifier.cpp" line="430"/>
<source>new_message_alert_accessible_name</source> <source>new_message_alert_accessible_name</source>
<extracomment>New message on chatroom %1</extracomment> <extracomment>New message on chatroom %1</extracomment>
<translation>Nouveau message sur la conversation %1</translation> <translation>Nouveau message sur la conversation %1</translation>

View file

@ -40,7 +40,7 @@ Window {
property bool showAsTool : false property bool showAsTool : false
// Don't use Popup for flags : it could lead to error in geometry. On Mac, Using Tool ensure to have the Window on Top and fullscreen independant // Don't use Popup for flags : it could lead to error in geometry. On Mac, Using Tool ensure to have the Window on Top and fullscreen independant
// flags: Qt.WindowDoesNotAcceptFocus | Qt.BypassWindowManagerHint | (showAsTool?Qt.Tool:Qt.WindowStaysOnTopHint) | Qt.Window | Qt.FramelessWindowHint; // flags: Qt.WindowDoesNotAcceptFocus | Qt.BypassWindowManagerHint | (showAsTool?Qt.Tool:Qt.WindowStaysOnTopHint) | Qt.Window | Qt.FramelessWindowHint;
flags: Qt.WindowStaysOnTopHint | Qt.WindowDoesNotAcceptFocus | Qt.FramelessWindowHint flags: Qt.SplashScreen | Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint
opacity: 1.0 opacity: 1.0
height: _content[0] != null ? _content[0].height : 0 height: _content[0] != null ? _content[0].height : 0
width: _content[0] != null ? _content[0].width : 0 width: _content[0] != null ? _content[0].width : 0