mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-17 03:18:07 +00:00
fix search in history + move search button in the top bar of the chat message view
This commit is contained in:
parent
3f3f29b2ec
commit
55ce938d0b
21 changed files with 459 additions and 268 deletions
|
|
@ -23,6 +23,7 @@
|
||||||
#include "core/chat/message/content/ChatMessageContentGui.hpp"
|
#include "core/chat/message/content/ChatMessageContentGui.hpp"
|
||||||
#include "core/friend/FriendCore.hpp"
|
#include "core/friend/FriendCore.hpp"
|
||||||
#include "core/setting/SettingsCore.hpp"
|
#include "core/setting/SettingsCore.hpp"
|
||||||
|
#include "model/chat/message/EventLogModel.hpp"
|
||||||
#include "model/core/CoreModel.hpp"
|
#include "model/core/CoreModel.hpp"
|
||||||
#include "model/friend/FriendModel.hpp"
|
#include "model/friend/FriendModel.hpp"
|
||||||
#include "model/tool/ToolModel.hpp"
|
#include "model/tool/ToolModel.hpp"
|
||||||
|
|
@ -604,6 +605,10 @@ std::shared_ptr<ChatModel> ChatCore::getModel() const {
|
||||||
return mChatModel;
|
return mChatModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QSharedPointer<SafeConnection<ChatCore, ChatModel>> ChatCore::getChatModelConnection() const {
|
||||||
|
return mChatModelConnection;
|
||||||
|
}
|
||||||
|
|
||||||
bool ChatCore::isMuted() const {
|
bool ChatCore::isMuted() const {
|
||||||
return mIsMuted;
|
return mIsMuted;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -135,6 +135,7 @@ public:
|
||||||
void setComposingAddress(QString composingAddress);
|
void setComposingAddress(QString composingAddress);
|
||||||
|
|
||||||
std::shared_ptr<ChatModel> getModel() const;
|
std::shared_ptr<ChatModel> getModel() const;
|
||||||
|
QSharedPointer<SafeConnection<ChatCore, ChatModel>> getChatModelConnection() const;
|
||||||
|
|
||||||
QList<QSharedPointer<ParticipantCore>> buildParticipants(const std::shared_ptr<linphone::ChatRoom> &chatRoom) const;
|
QList<QSharedPointer<ParticipantCore>> buildParticipants(const std::shared_ptr<linphone::ChatRoom> &chatRoom) const;
|
||||||
QList<QSharedPointer<ParticipantCore>> getParticipants() const;
|
QList<QSharedPointer<ParticipantCore>> getParticipants() const;
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@
|
||||||
#include "EventLogCore.hpp"
|
#include "EventLogCore.hpp"
|
||||||
#include "core/App.hpp"
|
#include "core/App.hpp"
|
||||||
#include "core/chat/ChatCore.hpp"
|
#include "core/chat/ChatCore.hpp"
|
||||||
|
#include "model/chat/message/EventLogModel.hpp"
|
||||||
#include "model/tool/ToolModel.hpp"
|
#include "model/tool/ToolModel.hpp"
|
||||||
|
|
||||||
DEFINE_ABSTRACT_OBJECT(EventLogCore)
|
DEFINE_ABSTRACT_OBJECT(EventLogCore)
|
||||||
|
|
@ -36,6 +37,7 @@ EventLogCore::EventLogCore(const std::shared_ptr<const linphone::EventLog> &even
|
||||||
mustBeInLinphoneThread(getClassName());
|
mustBeInLinphoneThread(getClassName());
|
||||||
App::getInstance()->mEngine->setObjectOwnership(this, QQmlEngine::CppOwnership);
|
App::getInstance()->mEngine->setObjectOwnership(this, QQmlEngine::CppOwnership);
|
||||||
mEventLogType = LinphoneEnums::fromLinphone(eventLog->getType());
|
mEventLogType = LinphoneEnums::fromLinphone(eventLog->getType());
|
||||||
|
mEventLogModel = Utils::makeQObject_ptr<EventLogModel>(eventLog);
|
||||||
mTimestamp = QDateTime::fromMSecsSinceEpoch(eventLog->getCreationTime() * 1000);
|
mTimestamp = QDateTime::fromMSecsSinceEpoch(eventLog->getCreationTime() * 1000);
|
||||||
auto chatmessage = eventLog->getChatMessage();
|
auto chatmessage = eventLog->getChatMessage();
|
||||||
if (chatmessage) {
|
if (chatmessage) {
|
||||||
|
|
@ -86,6 +88,10 @@ QDateTime EventLogCore::getTimestamp() const {
|
||||||
return mTimestamp;
|
return mTimestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<EventLogModel> EventLogCore::getModel() const {
|
||||||
|
return mEventLogModel;
|
||||||
|
}
|
||||||
|
|
||||||
// Events (other than ChatMessage and CallLog which are handled in their respective Core)
|
// Events (other than ChatMessage and CallLog which are handled in their respective Core)
|
||||||
|
|
||||||
void EventLogCore::computeEvent(const std::shared_ptr<const linphone::EventLog> &eventLog) {
|
void EventLogCore::computeEvent(const std::shared_ptr<const linphone::EventLog> &eventLog) {
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@
|
||||||
|
|
||||||
class ChatMessageCore;
|
class ChatMessageCore;
|
||||||
class ChatMessageGui;
|
class ChatMessageGui;
|
||||||
|
class EventLogModel;
|
||||||
|
|
||||||
class EventLogCore : public QObject, public AbstractObject {
|
class EventLogCore : public QObject, public AbstractObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
@ -68,6 +69,8 @@ public:
|
||||||
return mEphemeralRelated;
|
return mEphemeralRelated;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<EventLogModel> getModel() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DECLARE_ABSTRACT_OBJECT
|
DECLARE_ABSTRACT_OBJECT
|
||||||
QString mEventId;
|
QString mEventId;
|
||||||
|
|
@ -83,6 +86,7 @@ private:
|
||||||
|
|
||||||
ChatMessageCore *getChatMessageCorePointer();
|
ChatMessageCore *getChatMessageCorePointer();
|
||||||
CallHistoryCore *getCallHistoryCorePointer();
|
CallHistoryCore *getCallHistoryCorePointer();
|
||||||
|
std::shared_ptr<EventLogModel> mEventLogModel;
|
||||||
void computeEvent(const std::shared_ptr<const linphone::EventLog> &eventLog);
|
void computeEvent(const std::shared_ptr<const linphone::EventLog> &eventLog);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@
|
||||||
#include "core/call-history/CallHistoryGui.hpp"
|
#include "core/call-history/CallHistoryGui.hpp"
|
||||||
#include "core/chat/ChatCore.hpp"
|
#include "core/chat/ChatCore.hpp"
|
||||||
#include "core/chat/ChatGui.hpp"
|
#include "core/chat/ChatGui.hpp"
|
||||||
|
#include "model/chat/message/EventLogModel.hpp"
|
||||||
#include <QSharedPointer>
|
#include <QSharedPointer>
|
||||||
#include <linphone++/linphone.hh>
|
#include <linphone++/linphone.hh>
|
||||||
|
|
||||||
|
|
@ -75,8 +76,11 @@ void EventLogList::connectItem(const QSharedPointer<EventLogCore> item) {
|
||||||
|
|
||||||
void EventLogList::setChatCore(QSharedPointer<ChatCore> core) {
|
void EventLogList::setChatCore(QSharedPointer<ChatCore> core) {
|
||||||
if (mChatCore != core) {
|
if (mChatCore != core) {
|
||||||
if (mChatCore) disconnect(mChatCore.get(), &ChatCore::eventListChanged, this, nullptr);
|
if (mChatCore) {
|
||||||
if (mChatCore) disconnect(mChatCore.get(), &ChatCore::eventsInserted, this, nullptr);
|
disconnect(mChatCore.get(), &ChatCore::eventListChanged, this, nullptr);
|
||||||
|
disconnect(mChatCore.get(), &ChatCore::eventsInserted, this, nullptr);
|
||||||
|
mModelConnection->disconnect();
|
||||||
|
}
|
||||||
mChatCore = core;
|
mChatCore = core;
|
||||||
if (mChatCore) {
|
if (mChatCore) {
|
||||||
connect(mChatCore.get(), &ChatCore::eventListChanged, this, &EventLogList::lUpdate);
|
connect(mChatCore.get(), &ChatCore::eventListChanged, this, &EventLogList::lUpdate);
|
||||||
|
|
@ -93,6 +97,7 @@ void EventLogList::setChatCore(QSharedPointer<ChatCore> core) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
mModelConnection = SafeConnection<ChatCore, ChatModel>::create(mChatCore, mChatCore->getModel());
|
||||||
}
|
}
|
||||||
emit eventChanged();
|
emit eventChanged();
|
||||||
lUpdate();
|
lUpdate();
|
||||||
|
|
@ -112,6 +117,39 @@ int EventLogList::findFirstUnreadIndex() {
|
||||||
return it == eventList.end() ? -1 : std::distance(eventList.begin(), it);
|
return it == eventList.end() ? -1 : std::distance(eventList.begin(), it);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EventLogList::findChatMessageWithFilter(QString filter,
|
||||||
|
QSharedPointer<EventLogCore> startEvent,
|
||||||
|
bool forward,
|
||||||
|
bool isFirstResearch) {
|
||||||
|
if (mChatCore) {
|
||||||
|
auto modelConnection = mChatCore->getChatModelConnection();
|
||||||
|
auto chatModel = mChatCore->getModel();
|
||||||
|
auto startEventModel = startEvent ? startEvent->getModel() : nullptr;
|
||||||
|
modelConnection->invokeToModel(
|
||||||
|
[this, chatModel, startEventModel, filter, forward, modelConnection, isFirstResearch] {
|
||||||
|
auto linStartEvent = startEventModel ? startEventModel->getEventLog() : nullptr;
|
||||||
|
auto eventLog = chatModel->searchMessageByText(filter, linStartEvent, forward);
|
||||||
|
// If it is the first research and event was not found from the start event, search in the
|
||||||
|
// entire history
|
||||||
|
if (!eventLog && isFirstResearch) {
|
||||||
|
auto firstEvent = getAt<EventLogCore>(0);
|
||||||
|
auto linFirst = firstEvent ? firstEvent->getModel()->getEventLog() : nullptr;
|
||||||
|
eventLog = chatModel->searchMessageByText(filter, nullptr, forward);
|
||||||
|
}
|
||||||
|
int index = -1;
|
||||||
|
if (eventLog) {
|
||||||
|
auto eventList = getSharedList<EventLogCore>();
|
||||||
|
auto it = std::find_if(eventList.begin(), eventList.end(),
|
||||||
|
[eventLog](const QSharedPointer<EventLogCore> item) {
|
||||||
|
return item->getModel()->getEventLog() == eventLog;
|
||||||
|
});
|
||||||
|
index = it == eventList.end() ? -1 : std::distance(eventList.begin(), it);
|
||||||
|
}
|
||||||
|
modelConnection->invokeToCore([this, index] { emit messageWithFilterFound(index); });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void EventLogList::setSelf(QSharedPointer<EventLogList> me) {
|
void EventLogList::setSelf(QSharedPointer<EventLogList> me) {
|
||||||
connect(this, &EventLogList::lUpdate, this, [this]() {
|
connect(this, &EventLogList::lUpdate, this, [this]() {
|
||||||
for (auto &event : getSharedList<EventLogCore>()) {
|
for (auto &event : getSharedList<EventLogCore>()) {
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ class EventLogGui;
|
||||||
class EventLogCore;
|
class EventLogCore;
|
||||||
class ChatCore;
|
class ChatCore;
|
||||||
class ChatGui;
|
class ChatGui;
|
||||||
|
class ChatModel;
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
|
|
||||||
class EventLogList : public ListProxy, public AbstractObject {
|
class EventLogList : public ListProxy, public AbstractObject {
|
||||||
|
|
@ -48,6 +49,11 @@ public:
|
||||||
|
|
||||||
int findFirstUnreadIndex();
|
int findFirstUnreadIndex();
|
||||||
|
|
||||||
|
void findChatMessageWithFilter(QString filter,
|
||||||
|
QSharedPointer<EventLogCore> startEvent,
|
||||||
|
bool forward = true,
|
||||||
|
bool isFirstResearch = true);
|
||||||
|
|
||||||
void setSelf(QSharedPointer<EventLogList> me);
|
void setSelf(QSharedPointer<EventLogList> me);
|
||||||
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
||||||
QHash<int, QByteArray> roleNames() const override;
|
QHash<int, QByteArray> roleNames() const override;
|
||||||
|
|
@ -57,10 +63,12 @@ signals:
|
||||||
void filterChanged(QString filter);
|
void filterChanged(QString filter);
|
||||||
void eventChanged();
|
void eventChanged();
|
||||||
void eventInserted(int index, EventLogGui *message);
|
void eventInserted(int index, EventLogGui *message);
|
||||||
|
void messageWithFilterFound(int index);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString mFilter;
|
QString mFilter;
|
||||||
QSharedPointer<ChatCore> mChatCore;
|
QSharedPointer<ChatCore> mChatCore;
|
||||||
|
QSharedPointer<SafeConnection<ChatCore, ChatModel>> mModelConnection;
|
||||||
DECLARE_ABSTRACT_OBJECT
|
DECLARE_ABSTRACT_OBJECT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,8 +51,20 @@ void EventLogProxy::setSourceModel(QAbstractItemModel *model) {
|
||||||
.row();
|
.row();
|
||||||
if (mMaxDisplayItems <= index) setMaxDisplayItems(index + mDisplayItemsStep);
|
if (mMaxDisplayItems <= index) setMaxDisplayItems(index + mDisplayItemsStep);
|
||||||
}
|
}
|
||||||
|
loadUntil(index);
|
||||||
emit eventInserted(index, event);
|
emit eventInserted(index, event);
|
||||||
});
|
});
|
||||||
|
connect(newEventLogList, &EventLogList::messageWithFilterFound, this, [this, newEventLogList](int index) {
|
||||||
|
if (index != -1) {
|
||||||
|
auto model = getListModel<EventLogList>();
|
||||||
|
mLastSearchStart = model->getAt<EventLogCore>(index);
|
||||||
|
index = dynamic_cast<SortFilterList *>(sourceModel())
|
||||||
|
->mapFromSource(newEventLogList->index(index, 0))
|
||||||
|
.row();
|
||||||
|
loadUntil(index);
|
||||||
|
}
|
||||||
|
emit indexWithFilterFound(index);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
setSourceModels(new SortFilterList(model, Qt::DescendingOrder));
|
setSourceModels(new SortFilterList(model, Qt::DescendingOrder));
|
||||||
sort(0);
|
sort(0);
|
||||||
|
|
@ -69,14 +81,17 @@ void EventLogProxy::setChatGui(ChatGui *chat) {
|
||||||
}
|
}
|
||||||
|
|
||||||
EventLogGui *EventLogProxy::getEventAtIndex(int i) {
|
EventLogGui *EventLogProxy::getEventAtIndex(int i) {
|
||||||
auto model = getListModel<EventLogList>();
|
auto eventCore = getEventCoreAtIndex(i);
|
||||||
auto sourceIndex = mapToSource(index(i, 0)).row();
|
return eventCore == nullptr ? nullptr : new EventLogGui(eventCore);
|
||||||
if (model) {
|
}
|
||||||
auto event = model->getAt<EventLogCore>(sourceIndex);
|
|
||||||
if (event) return new EventLogGui(event);
|
QSharedPointer<EventLogCore> EventLogProxy::getEventCoreAtIndex(int i) {
|
||||||
else return nullptr;
|
return getItemAt<SortFilterList, EventLogList, EventLogCore>(i);
|
||||||
}
|
}
|
||||||
return nullptr;
|
|
||||||
|
void EventLogProxy::loadUntil(int index) {
|
||||||
|
auto confInfoList = getListModel<EventLogList>();
|
||||||
|
if (mMaxDisplayItems < index) setMaxDisplayItems(index + mDisplayItemsStep);
|
||||||
}
|
}
|
||||||
|
|
||||||
int EventLogProxy::findFirstUnreadIndex() {
|
int EventLogProxy::findFirstUnreadIndex() {
|
||||||
|
|
@ -100,21 +115,17 @@ void EventLogProxy::markIndexAsRead(int proxyIndex) {
|
||||||
if (event && event->getChatMessageCore()) event->getChatMessageCore()->lMarkAsRead();
|
if (event && event->getChatMessageCore()) event->getChatMessageCore()->lMarkAsRead();
|
||||||
}
|
}
|
||||||
|
|
||||||
int EventLogProxy::findIndexCorrespondingToFilter(int startIndex, bool goingBackward) {
|
void EventLogProxy::findIndexCorrespondingToFilter(int startIndex, bool forward, bool isFirstResearch) {
|
||||||
auto filter = getFilterText();
|
auto filter = getFilterText();
|
||||||
if (filter.isEmpty()) return startIndex;
|
if (filter.isEmpty()) return;
|
||||||
int endIndex = goingBackward ? 0 : getCount() - 1;
|
auto eventLogList = getListModel<EventLogList>();
|
||||||
startIndex = goingBackward ? startIndex - 1 : startIndex + 1;
|
if (eventLogList) {
|
||||||
for (int i = startIndex; (goingBackward ? i >= 0 : i < getCount() - 1); (goingBackward ? --i : ++i)) {
|
auto startEvent = mLastSearchStart;
|
||||||
auto eventLog = getItemAt<SortFilterList, EventLogList, EventLogCore>(i);
|
if (!startEvent) {
|
||||||
if (!eventLog) continue;
|
startEvent = getItemAt<SortFilterList, EventLogList, EventLogCore>(startIndex);
|
||||||
if (auto message = eventLog->getChatMessageCore()) {
|
|
||||||
auto text = message->getText();
|
|
||||||
int regexIndex = text.indexOf(filter, 0, Qt::CaseInsensitive);
|
|
||||||
if (regexIndex != -1) return i;
|
|
||||||
}
|
}
|
||||||
|
eventLogList->findChatMessageWithFilter(filter, startEvent, forward, isFirstResearch);
|
||||||
}
|
}
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool EventLogProxy::SortFilterList::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const {
|
bool EventLogProxy::SortFilterList::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const {
|
||||||
|
|
|
||||||
|
|
@ -44,17 +44,21 @@ public:
|
||||||
|
|
||||||
void setSourceModel(QAbstractItemModel *sourceModel) override;
|
void setSourceModel(QAbstractItemModel *sourceModel) override;
|
||||||
|
|
||||||
Q_INVOKABLE EventLogGui *getEventAtIndex(int index);
|
Q_INVOKABLE void loadUntil(int index);
|
||||||
|
Q_INVOKABLE EventLogGui *getEventAtIndex(int i);
|
||||||
|
QSharedPointer<EventLogCore> getEventCoreAtIndex(int i);
|
||||||
Q_INVOKABLE int findFirstUnreadIndex();
|
Q_INVOKABLE int findFirstUnreadIndex();
|
||||||
Q_INVOKABLE void markIndexAsRead(int proxyIndex);
|
Q_INVOKABLE void markIndexAsRead(int proxyIndex);
|
||||||
Q_INVOKABLE int findIndexCorrespondingToFilter(int startIndex, bool goingBackward = false);
|
Q_INVOKABLE void findIndexCorrespondingToFilter(int startIndex, bool forward = true, bool isFirstResearch = true);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void eventChanged();
|
void eventChanged();
|
||||||
void eventInserted(int index, EventLogGui *message);
|
void eventInserted(int index, EventLogGui *message);
|
||||||
|
void indexWithFilterFound(int index);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QSharedPointer<EventLogList> mList;
|
QSharedPointer<EventLogList> mList;
|
||||||
|
QSharedPointer<EventLogCore> mLastSearchStart;
|
||||||
ChatGui *mChatGui = nullptr;
|
ChatGui *mChatGui = nullptr;
|
||||||
DECLARE_ABSTRACT_OBJECT
|
DECLARE_ABSTRACT_OBJECT
|
||||||
};
|
};
|
||||||
|
|
|
||||||
1
Linphone/data/image/arrow-square-out.svg
Normal file
1
Linphone/data/image/arrow-square-out.svg
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="#000000" viewBox="0 0 256 256"><path d="M224,104a8,8,0,0,1-16,0V59.32l-66.33,66.34a8,8,0,0,1-11.32-11.32L196.68,48H152a8,8,0,0,1,0-16h64a8,8,0,0,1,8,8Zm-40,24a8,8,0,0,0-8,8v72H48V80h72a8,8,0,0,0,0-16H48A16,16,0,0,0,32,80V208a16,16,0,0,0,16,16H176a16,16,0,0,0,16-16V136A8,8,0,0,0,184,128Z"></path></svg>
|
||||||
|
After Width: | Height: | Size: 371 B |
|
|
@ -1748,13 +1748,13 @@
|
||||||
<context>
|
<context>
|
||||||
<name>ChatCore</name>
|
<name>ChatCore</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/ChatCore.cpp" line="165"/>
|
<location filename="../../core/chat/ChatCore.cpp" line="175"/>
|
||||||
<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="167"/>
|
<location filename="../../core/chat/ChatCore.cpp" line="177"/>
|
||||||
<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>
|
||||||
|
|
@ -2072,45 +2072,45 @@ Error</extracomment>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatMessagesListView</name>
|
<name>ChatMessagesListView</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="36"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="101"/>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="50"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="112"/>
|
||||||
<source>popup_info_find_message_title</source>
|
<source>popup_info_find_message_title</source>
|
||||||
<extracomment>Find message</extracomment>
|
<extracomment>Find message</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="38"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="114"/>
|
||||||
<source>info_popup_no_result_message</source>
|
<source>info_popup_no_result_message</source>
|
||||||
<extracomment>No result found</extracomment>
|
<extracomment>No result found</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="52"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="106"/>
|
||||||
<source>info_popup_first_result_message</source>
|
<source>info_popup_first_result_message</source>
|
||||||
<extracomment>First result reached</extracomment>
|
<extracomment>First result reached</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="54"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="104"/>
|
||||||
<source>info_popup_last_result_message</source>
|
<source>info_popup_last_result_message</source>
|
||||||
<extracomment>Last result reached</extracomment>
|
<extracomment>Last result reached</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="143"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="150"/>
|
||||||
<source>chat_message_list_encrypted_header_title</source>
|
<source>chat_message_list_encrypted_header_title</source>
|
||||||
<extracomment>End to end encrypted chat</extracomment>
|
<extracomment>End to end encrypted chat</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="153"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="160"/>
|
||||||
<source>chat_message_list_encrypted_header_message</source>
|
<source>chat_message_list_encrypted_header_message</source>
|
||||||
<extracomment>Les messages de cette conversation sont chiffrés de bout
|
<extracomment>Les messages de cette conversation sont chiffrés de bout
|
||||||
en bout. Seul votre correspondant peut les déchiffrer.</extracomment>
|
en bout. Seul votre correspondant peut les déchiffrer.</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="191"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="200"/>
|
||||||
<source>chat_message_is_writing_info</source>
|
<source>chat_message_is_writing_info</source>
|
||||||
<extracomment>%1 is writing…</extracomment>
|
<extracomment>%1 is writing…</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
|
@ -2825,142 +2825,143 @@ Error</extracomment>
|
||||||
<context>
|
<context>
|
||||||
<name>ConversationInfos</name>
|
<name>ConversationInfos</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="185"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="184"/>
|
||||||
<source>one_one_infos_call</source>
|
<source>one_one_infos_call</source>
|
||||||
<extracomment>"Appel"</extracomment>
|
<extracomment>"Appel"</extracomment>
|
||||||
<translation type="unfinished">Anrufen</translation>
|
<translation type="unfinished">Anrufen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="199"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="198"/>
|
||||||
<source>one_one_infos_unmute</source>
|
<source>one_one_infos_unmute</source>
|
||||||
<extracomment>"Sourdine"</extracomment>
|
<extracomment>"Sourdine"</extracomment>
|
||||||
<translation type="unfinished">Unmute</translation>
|
<translation type="unfinished">Unmute</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="199"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="198"/>
|
||||||
<source>one_one_infos_mute</source>
|
<source>one_one_infos_mute</source>
|
||||||
<translation type="unfinished">Stummschalten</translation>
|
<translation type="unfinished">Stummschalten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="215"/>
|
|
||||||
<source>one_one_infos_search</source>
|
<source>one_one_infos_search</source>
|
||||||
<extracomment>"Rechercher"</extracomment>
|
<extracomment>"Rechercher"</extracomment>
|
||||||
<translation type="unfinished">Suchen</translation>
|
<translation type="obsolete">Suchen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="241"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="258"/>
|
||||||
<source>group_infos_participants</source>
|
<source>group_infos_participants</source>
|
||||||
<translation type="unfinished">Participants (%1)</translation>
|
<translation type="unfinished">Participants (%1)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="258"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="275"/>
|
||||||
<source>group_infos_media_docs</source>
|
<source>group_infos_media_docs</source>
|
||||||
<extracomment>Medias & documents</extracomment>
|
<extracomment>Medias & documents</extracomment>
|
||||||
<translation type="unfinished">Medien & Dokumente</translation>
|
<translation type="unfinished">Medien & Dokumente</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="264"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="281"/>
|
||||||
<source>group_infos_shared_medias</source>
|
<source>group_infos_shared_medias</source>
|
||||||
<extracomment>Shared medias</extracomment>
|
<extracomment>Shared medias</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="275"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="292"/>
|
||||||
<source>group_infos_shared_docs</source>
|
<source>group_infos_shared_docs</source>
|
||||||
<extracomment>Shared documents</extracomment>
|
<extracomment>Shared documents</extracomment>
|
||||||
<translation type="unfinished">Geteilte Dokumente</translation>
|
<translation type="unfinished">Geteilte Dokumente</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="288"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="305"/>
|
||||||
<source>group_infos_other_actions</source>
|
<source>group_infos_other_actions</source>
|
||||||
<extracomment>Other actions</extracomment>
|
<extracomment>Other actions</extracomment>
|
||||||
<translation type="unfinished">Weitere Aktionen</translation>
|
<translation type="unfinished">Weitere Aktionen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="294"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="311"/>
|
||||||
<source>group_infos_ephemerals</source>
|
<source>group_infos_ephemerals</source>
|
||||||
<translation type="unfinished">Ephemeral messages : </translation>
|
<translation type="unfinished">Ephemeral messages : </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="294"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="311"/>
|
||||||
<source>group_infos_enable_ephemerals</source>
|
<source>group_infos_enable_ephemerals</source>
|
||||||
<translation type="unfinished">Flüchtige Nachrichten aktivieren</translation>
|
<translation type="unfinished">Flüchtige Nachrichten aktivieren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="307"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="220"/>
|
||||||
<source>group_infos_meeting</source>
|
<source>group_infos_meeting</source>
|
||||||
<extracomment>Schedule a meeting</extracomment>
|
<extracomment>Schedule a meeting</extracomment>
|
||||||
<translation type="unfinished">Meeting</translation>
|
<translation type="unfinished">Meeting</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="316"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="322"/>
|
||||||
<source>group_infos_leave_room</source>
|
<source>group_infos_leave_room</source>
|
||||||
<extracomment>Leave chat room</extracomment>
|
<extracomment>Leave chat room</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="321"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="327"/>
|
||||||
<source>group_infos_leave_room_toast_title</source>
|
<source>group_infos_leave_room_toast_title</source>
|
||||||
<extracomment>Leave Chat Room ?</extracomment>
|
<extracomment>Leave Chat Room ?</extracomment>
|
||||||
<translation type="unfinished">Chatraum verlassen?</translation>
|
<translation type="unfinished">Chatraum verlassen?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="323"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="329"/>
|
||||||
<source>group_infos_leave_room_toast_message</source>
|
<source>group_infos_leave_room_toast_message</source>
|
||||||
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
||||||
<translation type="unfinished">Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren?</translation>
|
<translation type="unfinished">Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="336"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="342"/>
|
||||||
<source>group_infos_delete_history</source>
|
<source>group_infos_delete_history</source>
|
||||||
<extracomment>Delete history</extracomment>
|
<extracomment>Delete history</extracomment>
|
||||||
<translation type="unfinished">Verlauf löschen</translation>
|
<translation type="unfinished">Verlauf löschen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="341"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="347"/>
|
||||||
<source>group_infos_delete_history_toast_title</source>
|
<source>group_infos_delete_history_toast_title</source>
|
||||||
<extracomment>Delete history ?</extracomment>
|
<extracomment>Delete history ?</extracomment>
|
||||||
<translation type="unfinished">Verlauf löschen?</translation>
|
<translation type="unfinished">Verlauf löschen?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="343"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="349"/>
|
||||||
<source>group_infos_delete_history_toast_message</source>
|
<source>group_infos_delete_history_toast_message</source>
|
||||||
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
||||||
<translation type="unfinished">Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren?</translation>
|
<translation type="unfinished">Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="357"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="223"/>
|
||||||
<source>one_one_infos_open_contact</source>
|
<source>one_one_infos_open_contact</source>
|
||||||
|
<extracomment>Show contact</extracomment>
|
||||||
<translation type="unfinished">Kontakt öffnen</translation>
|
<translation type="unfinished">Kontakt öffnen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="357"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="225"/>
|
||||||
<source>one_one_infos_create_contact</source>
|
<source>one_one_infos_create_contact</source>
|
||||||
|
<extracomment>Create contact</extracomment>
|
||||||
<translation type="unfinished">Kontakt erstellen</translation>
|
<translation type="unfinished">Kontakt erstellen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="371"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="363"/>
|
||||||
<source>one_one_infos_ephemerals</source>
|
<source>one_one_infos_ephemerals</source>
|
||||||
<translation type="unfinished">Ephemeral messages : </translation>
|
<translation type="unfinished">Ephemeral messages : </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="371"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="363"/>
|
||||||
<source>one_one_infos_enable_ephemerals</source>
|
<source>one_one_infos_enable_ephemerals</source>
|
||||||
<translation type="unfinished">Flüchtige Nachrichten aktivieren</translation>
|
<translation type="unfinished">Flüchtige Nachrichten aktivieren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="381"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="373"/>
|
||||||
<source>one_one_infos_delete_history</source>
|
<source>one_one_infos_delete_history</source>
|
||||||
<translation type="unfinished">Verlauf löschen</translation>
|
<translation type="unfinished">Verlauf löschen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="386"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="378"/>
|
||||||
<source>one_one_infos_delete_history_toast_title</source>
|
<source>one_one_infos_delete_history_toast_title</source>
|
||||||
<extracomment>Delete history ?</extracomment>
|
<extracomment>Delete history ?</extracomment>
|
||||||
<translation type="unfinished">Verlauf löschen?</translation>
|
<translation type="unfinished">Verlauf löschen?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="388"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="380"/>
|
||||||
<source>one_one_infos_delete_history_toast_message</source>
|
<source>one_one_infos_delete_history_toast_message</source>
|
||||||
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
||||||
<translation type="unfinished">Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren?</translation>
|
<translation type="unfinished">Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren?</translation>
|
||||||
|
|
@ -3198,58 +3199,58 @@ Error</extracomment>
|
||||||
<context>
|
<context>
|
||||||
<name>EventLogCore</name>
|
<name>EventLogCore</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="101"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="107"/>
|
||||||
<source>conference_created_event</source>
|
<source>conference_created_event</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="104"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="110"/>
|
||||||
<source>conference_created_terminated</source>
|
<source>conference_created_terminated</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="108"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="114"/>
|
||||||
<source>conference_participant_added_event</source>
|
<source>conference_participant_added_event</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="112"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="118"/>
|
||||||
<source>conference_participant_removed_event</source>
|
<source>conference_participant_removed_event</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="121"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="127"/>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="123"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="129"/>
|
||||||
<source>conference_security_event</source>
|
<source>conference_security_event</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="130"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="136"/>
|
||||||
<source>conference_ephemeral_message_enabled_event</source>
|
<source>conference_ephemeral_message_enabled_event</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="136"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="142"/>
|
||||||
<source>conference_ephemeral_message_lifetime_changed_event</source>
|
<source>conference_ephemeral_message_lifetime_changed_event</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="141"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="147"/>
|
||||||
<source>conference_ephemeral_message_disabled_event</source>
|
<source>conference_ephemeral_message_disabled_event</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="145"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="151"/>
|
||||||
<source>conference_subject_changed_event</source>
|
<source>conference_subject_changed_event</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="153"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="159"/>
|
||||||
<source>conference_participant_unset_admin_event</source>
|
<source>conference_participant_unset_admin_event</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="149"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="155"/>
|
||||||
<source>conference_participant_set_admin_event</source>
|
<source>conference_participant_set_admin_event</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
@ -4982,36 +4983,36 @@ Pour les activer dans un projet commercial, merci de nous contacter.</source>
|
||||||
<context>
|
<context>
|
||||||
<name>SelectedChatView</name>
|
<name>SelectedChatView</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="38"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="37"/>
|
||||||
<source>chat_view_group_call_toast_message</source>
|
<source>chat_view_group_call_toast_message</source>
|
||||||
<translation>Start a group call ?</translation>
|
<translation>Start a group call ?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="376"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="400"/>
|
||||||
<source>reply_to_label</source>
|
<source>reply_to_label</source>
|
||||||
<extracomment>Reply to %1</extracomment>
|
<extracomment>Reply to %1</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="570"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="590"/>
|
||||||
<source>shared_medias_title</source>
|
<source>shared_medias_title</source>
|
||||||
<extracomment>Shared medias</extracomment>
|
<extracomment>Shared medias</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="572"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="592"/>
|
||||||
<source>shared_documents_title</source>
|
<source>shared_documents_title</source>
|
||||||
<extracomment>Shared documents</extracomment>
|
<extracomment>Shared documents</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="601"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="621"/>
|
||||||
<source>forward_to_title</source>
|
<source>forward_to_title</source>
|
||||||
<extracomment>Forward to…</extracomment>
|
<extracomment>Forward to…</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="635"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="655"/>
|
||||||
<source>conversations_title</source>
|
<source>conversations_title</source>
|
||||||
<extracomment>Conversations</extracomment>
|
<extracomment>Conversations</extracomment>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
|
|
|
||||||
|
|
@ -1710,13 +1710,13 @@
|
||||||
<context>
|
<context>
|
||||||
<name>ChatCore</name>
|
<name>ChatCore</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/ChatCore.cpp" line="165"/>
|
<location filename="../../core/chat/ChatCore.cpp" line="175"/>
|
||||||
<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="167"/>
|
<location filename="../../core/chat/ChatCore.cpp" line="177"/>
|
||||||
<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>
|
||||||
|
|
@ -2034,38 +2034,38 @@ Error</extracomment>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatMessagesListView</name>
|
<name>ChatMessagesListView</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="36"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="101"/>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="50"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="112"/>
|
||||||
<source>popup_info_find_message_title</source>
|
<source>popup_info_find_message_title</source>
|
||||||
<extracomment>Find message</extracomment>
|
<extracomment>Find message</extracomment>
|
||||||
<translation>Find message</translation>
|
<translation>Find message</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="38"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="114"/>
|
||||||
<source>info_popup_no_result_message</source>
|
<source>info_popup_no_result_message</source>
|
||||||
<extracomment>No result found</extracomment>
|
<extracomment>No result found</extracomment>
|
||||||
<translation>No result found</translation>
|
<translation>No result found</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="52"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="106"/>
|
||||||
<source>info_popup_first_result_message</source>
|
<source>info_popup_first_result_message</source>
|
||||||
<extracomment>First result reached</extracomment>
|
<extracomment>First result reached</extracomment>
|
||||||
<translation>First result reached</translation>
|
<translation>First result reached</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="54"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="104"/>
|
||||||
<source>info_popup_last_result_message</source>
|
<source>info_popup_last_result_message</source>
|
||||||
<extracomment>Last result reached</extracomment>
|
<extracomment>Last result reached</extracomment>
|
||||||
<translation>Last result reached</translation>
|
<translation>Last result reached</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="143"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="150"/>
|
||||||
<source>chat_message_list_encrypted_header_title</source>
|
<source>chat_message_list_encrypted_header_title</source>
|
||||||
<extracomment>End to end encrypted chat</extracomment>
|
<extracomment>End to end encrypted chat</extracomment>
|
||||||
<translation>End to end encrypted chat</translation>
|
<translation>End to end encrypted chat</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="153"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="160"/>
|
||||||
<source>chat_message_list_encrypted_header_message</source>
|
<source>chat_message_list_encrypted_header_message</source>
|
||||||
<extracomment>Les messages de cette conversation sont chiffrés de bout
|
<extracomment>Les messages de cette conversation sont chiffrés de bout
|
||||||
en bout. Seul votre correspondant peut les déchiffrer.</extracomment>
|
en bout. Seul votre correspondant peut les déchiffrer.</extracomment>
|
||||||
|
|
@ -2073,7 +2073,7 @@ Error</extracomment>
|
||||||
Only your correspondent can decrypt them.</translation>
|
Only your correspondent can decrypt them.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="191"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="200"/>
|
||||||
<source>chat_message_is_writing_info</source>
|
<source>chat_message_is_writing_info</source>
|
||||||
<extracomment>%1 is writing…</extracomment>
|
<extracomment>%1 is writing…</extracomment>
|
||||||
<translation>%1 is writing…</translation>
|
<translation>%1 is writing…</translation>
|
||||||
|
|
@ -2748,142 +2748,138 @@ Only your correspondent can decrypt them.</translation>
|
||||||
<context>
|
<context>
|
||||||
<name>ConversationInfos</name>
|
<name>ConversationInfos</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="185"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="184"/>
|
||||||
<source>one_one_infos_call</source>
|
<source>one_one_infos_call</source>
|
||||||
<extracomment>"Appel"</extracomment>
|
<extracomment>"Appel"</extracomment>
|
||||||
<translation>Call</translation>
|
<translation>Call</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="199"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="198"/>
|
||||||
<source>one_one_infos_unmute</source>
|
<source>one_one_infos_unmute</source>
|
||||||
<extracomment>"Sourdine"</extracomment>
|
<extracomment>"Sourdine"</extracomment>
|
||||||
<translation>Unmute</translation>
|
<translation>Unmute</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="199"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="198"/>
|
||||||
<source>one_one_infos_mute</source>
|
<source>one_one_infos_mute</source>
|
||||||
<translation>Mute</translation>
|
<translation>Mute</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="215"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="258"/>
|
||||||
<source>one_one_infos_search</source>
|
|
||||||
<extracomment>"Rechercher"</extracomment>
|
|
||||||
<translation>Search</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="241"/>
|
|
||||||
<source>group_infos_participants</source>
|
<source>group_infos_participants</source>
|
||||||
<translation>Participants (%1)</translation>
|
<translation>Participants (%1)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="258"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="275"/>
|
||||||
<source>group_infos_media_docs</source>
|
<source>group_infos_media_docs</source>
|
||||||
<extracomment>Medias & documents</extracomment>
|
<extracomment>Medias & documents</extracomment>
|
||||||
<translation>Medias & documents</translation>
|
<translation>Medias & documents</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="264"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="281"/>
|
||||||
<source>group_infos_shared_medias</source>
|
<source>group_infos_shared_medias</source>
|
||||||
<extracomment>Shared medias</extracomment>
|
<extracomment>Shared medias</extracomment>
|
||||||
<translation>Shared medias</translation>
|
<translation>Shared medias</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="275"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="292"/>
|
||||||
<source>group_infos_shared_docs</source>
|
<source>group_infos_shared_docs</source>
|
||||||
<extracomment>Shared documents</extracomment>
|
<extracomment>Shared documents</extracomment>
|
||||||
<translation>Shared documents</translation>
|
<translation>Shared documents</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="288"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="305"/>
|
||||||
<source>group_infos_other_actions</source>
|
<source>group_infos_other_actions</source>
|
||||||
<extracomment>Other actions</extracomment>
|
<extracomment>Other actions</extracomment>
|
||||||
<translation>Other actions</translation>
|
<translation>Other actions</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="294"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="311"/>
|
||||||
<source>group_infos_ephemerals</source>
|
<source>group_infos_ephemerals</source>
|
||||||
<translation>Ephemeral messages : </translation>
|
<translation>Ephemeral messages : </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="294"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="311"/>
|
||||||
<source>group_infos_enable_ephemerals</source>
|
<source>group_infos_enable_ephemerals</source>
|
||||||
<translation>Enable ephemeral messages</translation>
|
<translation>Enable ephemeral messages</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="307"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="220"/>
|
||||||
<source>group_infos_meeting</source>
|
<source>group_infos_meeting</source>
|
||||||
<extracomment>Schedule a meeting</extracomment>
|
<extracomment>Schedule a meeting</extracomment>
|
||||||
<translation>Schedule a meeting</translation>
|
<translation>Schedule a meeting</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="316"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="322"/>
|
||||||
<source>group_infos_leave_room</source>
|
<source>group_infos_leave_room</source>
|
||||||
<extracomment>Leave chat room</extracomment>
|
<extracomment>Leave chat room</extracomment>
|
||||||
<translation>Leave Chat Room</translation>
|
<translation>Leave Chat Room</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="321"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="327"/>
|
||||||
<source>group_infos_leave_room_toast_title</source>
|
<source>group_infos_leave_room_toast_title</source>
|
||||||
<extracomment>Leave Chat Room ?</extracomment>
|
<extracomment>Leave Chat Room ?</extracomment>
|
||||||
<translation>Leave Chat Room ?</translation>
|
<translation>Leave Chat Room ?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="323"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="329"/>
|
||||||
<source>group_infos_leave_room_toast_message</source>
|
<source>group_infos_leave_room_toast_message</source>
|
||||||
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
||||||
<translation>All the messages will be removed from the chat room. Do you want to continue ?</translation>
|
<translation>All the messages will be removed from the chat room. Do you want to continue ?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="336"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="342"/>
|
||||||
<source>group_infos_delete_history</source>
|
<source>group_infos_delete_history</source>
|
||||||
<extracomment>Delete history</extracomment>
|
<extracomment>Delete history</extracomment>
|
||||||
<translation>Delete history</translation>
|
<translation>Delete history</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="341"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="347"/>
|
||||||
<source>group_infos_delete_history_toast_title</source>
|
<source>group_infos_delete_history_toast_title</source>
|
||||||
<extracomment>Delete history ?</extracomment>
|
<extracomment>Delete history ?</extracomment>
|
||||||
<translation>Delete history ?</translation>
|
<translation>Delete history ?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="343"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="349"/>
|
||||||
<source>group_infos_delete_history_toast_message</source>
|
<source>group_infos_delete_history_toast_message</source>
|
||||||
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
||||||
<translation>All the messages will be removed from the chat room. Do you want to continue ?</translation>
|
<translation>All the messages will be removed from the chat room. Do you want to continue ?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="357"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="223"/>
|
||||||
<source>one_one_infos_open_contact</source>
|
<source>one_one_infos_open_contact</source>
|
||||||
|
<extracomment>Show contact</extracomment>
|
||||||
<translation>Show contact</translation>
|
<translation>Show contact</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="357"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="225"/>
|
||||||
<source>one_one_infos_create_contact</source>
|
<source>one_one_infos_create_contact</source>
|
||||||
|
<extracomment>Create contact</extracomment>
|
||||||
<translation>Create contact</translation>
|
<translation>Create contact</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="371"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="363"/>
|
||||||
<source>one_one_infos_ephemerals</source>
|
<source>one_one_infos_ephemerals</source>
|
||||||
<translation>Ephemeral messages : </translation>
|
<translation>Ephemeral messages : </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="371"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="363"/>
|
||||||
<source>one_one_infos_enable_ephemerals</source>
|
<source>one_one_infos_enable_ephemerals</source>
|
||||||
<translation>Enable ephemeral messages</translation>
|
<translation>Enable ephemeral messages</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="381"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="373"/>
|
||||||
<source>one_one_infos_delete_history</source>
|
<source>one_one_infos_delete_history</source>
|
||||||
<translation>Delete history</translation>
|
<translation>Delete history</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="386"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="378"/>
|
||||||
<source>one_one_infos_delete_history_toast_title</source>
|
<source>one_one_infos_delete_history_toast_title</source>
|
||||||
<extracomment>Delete history ?</extracomment>
|
<extracomment>Delete history ?</extracomment>
|
||||||
<translation>Delete history ?</translation>
|
<translation>Delete history ?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="388"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="380"/>
|
||||||
<source>one_one_infos_delete_history_toast_message</source>
|
<source>one_one_infos_delete_history_toast_message</source>
|
||||||
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
||||||
<translation>All the messages will be removed from the chat room. Do you want to continue ?</translation>
|
<translation>All the messages will be removed from the chat room. Do you want to continue ?</translation>
|
||||||
|
|
@ -3121,59 +3117,59 @@ Only your correspondent can decrypt them.</translation>
|
||||||
<context>
|
<context>
|
||||||
<name>EventLogCore</name>
|
<name>EventLogCore</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="101"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="107"/>
|
||||||
<source>conference_created_event</source>
|
<source>conference_created_event</source>
|
||||||
<translation>You have joined the group</translation>
|
<translation>You have joined the group</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="104"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="110"/>
|
||||||
<source>conference_created_terminated</source>
|
<source>conference_created_terminated</source>
|
||||||
<translation>You have left the group</translation>
|
<translation>You have left the group</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="108"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="114"/>
|
||||||
<source>conference_participant_added_event</source>
|
<source>conference_participant_added_event</source>
|
||||||
<translation>%1 has joined</translation>
|
<translation>%1 has joined</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="112"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="118"/>
|
||||||
<source>conference_participant_removed_event</source>
|
<source>conference_participant_removed_event</source>
|
||||||
<translation>%1 is no longer in the conversation</translation>
|
<translation>%1 is no longer in the conversation</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="149"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="155"/>
|
||||||
<source>conference_participant_set_admin_event</source>
|
<source>conference_participant_set_admin_event</source>
|
||||||
<translation>%1 is now an admin</translation>
|
<translation>%1 is now an admin</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="153"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="159"/>
|
||||||
<source>conference_participant_unset_admin_event</source>
|
<source>conference_participant_unset_admin_event</source>
|
||||||
<translation>%1 is no longer an admin</translation>
|
<translation>%1 is no longer an admin</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="121"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="127"/>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="123"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="129"/>
|
||||||
<source>conference_security_event</source>
|
<source>conference_security_event</source>
|
||||||
<translation>Security level degraded by %1</translation>
|
<translation>Security level degraded by %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="130"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="136"/>
|
||||||
<source>conference_ephemeral_message_enabled_event</source>
|
<source>conference_ephemeral_message_enabled_event</source>
|
||||||
<translation>Ephemeral messages enabled
|
<translation>Ephemeral messages enabled
|
||||||
Expiration : %1</translation>
|
Expiration : %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="141"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="147"/>
|
||||||
<source>conference_ephemeral_message_disabled_event</source>
|
<source>conference_ephemeral_message_disabled_event</source>
|
||||||
<translation>Ephemeral messages disabled</translation>
|
<translation>Ephemeral messages disabled</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="145"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="151"/>
|
||||||
<source>conference_subject_changed_event</source>
|
<source>conference_subject_changed_event</source>
|
||||||
<translation>New subject: %1</translation>
|
<translation>New subject: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="136"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="142"/>
|
||||||
<source>conference_ephemeral_message_lifetime_changed_event</source>
|
<source>conference_ephemeral_message_lifetime_changed_event</source>
|
||||||
<translation>Ephemeral messages updated
|
<translation>Ephemeral messages updated
|
||||||
Expiration : %1</translation>
|
Expiration : %1</translation>
|
||||||
|
|
@ -4881,36 +4877,36 @@ To enable them in a commercial project, please contact us.</translation>
|
||||||
<context>
|
<context>
|
||||||
<name>SelectedChatView</name>
|
<name>SelectedChatView</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="38"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="37"/>
|
||||||
<source>chat_view_group_call_toast_message</source>
|
<source>chat_view_group_call_toast_message</source>
|
||||||
<translation>Start a group call ?</translation>
|
<translation>Start a group call ?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="376"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="400"/>
|
||||||
<source>reply_to_label</source>
|
<source>reply_to_label</source>
|
||||||
<extracomment>Reply to %1</extracomment>
|
<extracomment>Reply to %1</extracomment>
|
||||||
<translation>Reply to %1</translation>
|
<translation>Reply to %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="570"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="590"/>
|
||||||
<source>shared_medias_title</source>
|
<source>shared_medias_title</source>
|
||||||
<extracomment>Shared medias</extracomment>
|
<extracomment>Shared medias</extracomment>
|
||||||
<translation>Shared medias</translation>
|
<translation>Shared medias</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="572"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="592"/>
|
||||||
<source>shared_documents_title</source>
|
<source>shared_documents_title</source>
|
||||||
<extracomment>Shared documents</extracomment>
|
<extracomment>Shared documents</extracomment>
|
||||||
<translation>Shared documents</translation>
|
<translation>Shared documents</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="601"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="621"/>
|
||||||
<source>forward_to_title</source>
|
<source>forward_to_title</source>
|
||||||
<extracomment>Forward to…</extracomment>
|
<extracomment>Forward to…</extracomment>
|
||||||
<translation>Froward to…</translation>
|
<translation>Froward to…</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="635"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="655"/>
|
||||||
<source>conversations_title</source>
|
<source>conversations_title</source>
|
||||||
<extracomment>Conversations</extracomment>
|
<extracomment>Conversations</extracomment>
|
||||||
<translation>Conversations</translation>
|
<translation>Conversations</translation>
|
||||||
|
|
|
||||||
|
|
@ -1710,13 +1710,13 @@
|
||||||
<context>
|
<context>
|
||||||
<name>ChatCore</name>
|
<name>ChatCore</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/ChatCore.cpp" line="165"/>
|
<location filename="../../core/chat/ChatCore.cpp" line="175"/>
|
||||||
<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="167"/>
|
<location filename="../../core/chat/ChatCore.cpp" line="177"/>
|
||||||
<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'historique des messages a été supprimé</translation>
|
<translation>L'historique des messages a été supprimé</translation>
|
||||||
|
|
@ -2034,38 +2034,38 @@ Error</extracomment>
|
||||||
<context>
|
<context>
|
||||||
<name>ChatMessagesListView</name>
|
<name>ChatMessagesListView</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="36"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="101"/>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="50"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="112"/>
|
||||||
<source>popup_info_find_message_title</source>
|
<source>popup_info_find_message_title</source>
|
||||||
<extracomment>Find message</extracomment>
|
<extracomment>Find message</extracomment>
|
||||||
<translation>Trouver un message</translation>
|
<translation>Trouver un message</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="38"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="114"/>
|
||||||
<source>info_popup_no_result_message</source>
|
<source>info_popup_no_result_message</source>
|
||||||
<extracomment>No result found</extracomment>
|
<extracomment>No result found</extracomment>
|
||||||
<translation>Aucun résultat trouvé</translation>
|
<translation>Aucun résultat trouvé</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="52"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="106"/>
|
||||||
<source>info_popup_first_result_message</source>
|
<source>info_popup_first_result_message</source>
|
||||||
<extracomment>First result reached</extracomment>
|
<extracomment>First result reached</extracomment>
|
||||||
<translation>Premier résultat atteint</translation>
|
<translation>Premier résultat atteint</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="54"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="104"/>
|
||||||
<source>info_popup_last_result_message</source>
|
<source>info_popup_last_result_message</source>
|
||||||
<extracomment>Last result reached</extracomment>
|
<extracomment>Last result reached</extracomment>
|
||||||
<translation>Dernier résultat atteint</translation>
|
<translation>Dernier résultat atteint</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="143"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="150"/>
|
||||||
<source>chat_message_list_encrypted_header_title</source>
|
<source>chat_message_list_encrypted_header_title</source>
|
||||||
<extracomment>End to end encrypted chat</extracomment>
|
<extracomment>End to end encrypted chat</extracomment>
|
||||||
<translation>Conversation chiffrée de bout en bout</translation>
|
<translation>Conversation chiffrée de bout en bout</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="153"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="160"/>
|
||||||
<source>chat_message_list_encrypted_header_message</source>
|
<source>chat_message_list_encrypted_header_message</source>
|
||||||
<extracomment>Les messages de cette conversation sont chiffrés de bout
|
<extracomment>Les messages de cette conversation sont chiffrés de bout
|
||||||
en bout. Seul votre correspondant peut les déchiffrer.</extracomment>
|
en bout. Seul votre correspondant peut les déchiffrer.</extracomment>
|
||||||
|
|
@ -2073,7 +2073,7 @@ Error</extracomment>
|
||||||
en bout. Seul votre correspondant peut les déchiffrer.</translation>
|
en bout. Seul votre correspondant peut les déchiffrer.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="191"/>
|
<location filename="../../view/Control/Display/Chat/ChatMessagesListView.qml" line="200"/>
|
||||||
<source>chat_message_is_writing_info</source>
|
<source>chat_message_is_writing_info</source>
|
||||||
<extracomment>%1 is writing…</extracomment>
|
<extracomment>%1 is writing…</extracomment>
|
||||||
<translation>%1 est en train d'écrire…</translation>
|
<translation>%1 est en train d'écrire…</translation>
|
||||||
|
|
@ -2748,142 +2748,138 @@ en bout. Seul votre correspondant peut les déchiffrer.</translation>
|
||||||
<context>
|
<context>
|
||||||
<name>ConversationInfos</name>
|
<name>ConversationInfos</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="185"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="184"/>
|
||||||
<source>one_one_infos_call</source>
|
<source>one_one_infos_call</source>
|
||||||
<extracomment>"Appel"</extracomment>
|
<extracomment>"Appel"</extracomment>
|
||||||
<translation>Appel</translation>
|
<translation>Appel</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="199"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="198"/>
|
||||||
<source>one_one_infos_unmute</source>
|
<source>one_one_infos_unmute</source>
|
||||||
<extracomment>"Sourdine"</extracomment>
|
<extracomment>"Sourdine"</extracomment>
|
||||||
<translation>Réactiver les notifications</translation>
|
<translation>Réactiver les notifications</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="199"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="198"/>
|
||||||
<source>one_one_infos_mute</source>
|
<source>one_one_infos_mute</source>
|
||||||
<translation>Sourdine</translation>
|
<translation>Sourdine</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="215"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="258"/>
|
||||||
<source>one_one_infos_search</source>
|
|
||||||
<extracomment>"Rechercher"</extracomment>
|
|
||||||
<translation>Rechercher</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="241"/>
|
|
||||||
<source>group_infos_participants</source>
|
<source>group_infos_participants</source>
|
||||||
<translation>Participants (%1)</translation>
|
<translation>Participants (%1)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="258"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="275"/>
|
||||||
<source>group_infos_media_docs</source>
|
<source>group_infos_media_docs</source>
|
||||||
<extracomment>Medias & documents</extracomment>
|
<extracomment>Medias & documents</extracomment>
|
||||||
<translation>Medias & documents</translation>
|
<translation>Medias & documents</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="264"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="281"/>
|
||||||
<source>group_infos_shared_medias</source>
|
<source>group_infos_shared_medias</source>
|
||||||
<extracomment>Shared medias</extracomment>
|
<extracomment>Shared medias</extracomment>
|
||||||
<translation>Médias partagés</translation>
|
<translation>Médias partagés</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="275"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="292"/>
|
||||||
<source>group_infos_shared_docs</source>
|
<source>group_infos_shared_docs</source>
|
||||||
<extracomment>Shared documents</extracomment>
|
<extracomment>Shared documents</extracomment>
|
||||||
<translation>Documents partagés</translation>
|
<translation>Documents partagés</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="288"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="305"/>
|
||||||
<source>group_infos_other_actions</source>
|
<source>group_infos_other_actions</source>
|
||||||
<extracomment>Other actions</extracomment>
|
<extracomment>Other actions</extracomment>
|
||||||
<translation>Autres actions</translation>
|
<translation>Autres actions</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="294"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="311"/>
|
||||||
<source>group_infos_ephemerals</source>
|
<source>group_infos_ephemerals</source>
|
||||||
<translation>Messages éphémères : </translation>
|
<translation>Messages éphémères : </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="294"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="311"/>
|
||||||
<source>group_infos_enable_ephemerals</source>
|
<source>group_infos_enable_ephemerals</source>
|
||||||
<translation>Activer les messages éphémères</translation>
|
<translation>Activer les messages éphémères</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="307"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="220"/>
|
||||||
<source>group_infos_meeting</source>
|
<source>group_infos_meeting</source>
|
||||||
<extracomment>Schedule a meeting</extracomment>
|
<extracomment>Schedule a meeting</extracomment>
|
||||||
<translation>Programmer une réunion</translation>
|
<translation>Programmer une réunion</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="316"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="322"/>
|
||||||
<source>group_infos_leave_room</source>
|
<source>group_infos_leave_room</source>
|
||||||
<extracomment>Leave chat room</extracomment>
|
<extracomment>Leave chat room</extracomment>
|
||||||
<translation>Quitter la conversation</translation>
|
<translation>Quitter la conversation</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="321"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="327"/>
|
||||||
<source>group_infos_leave_room_toast_title</source>
|
<source>group_infos_leave_room_toast_title</source>
|
||||||
<extracomment>Leave Chat Room ?</extracomment>
|
<extracomment>Leave Chat Room ?</extracomment>
|
||||||
<translation>Quitter la conversation ?</translation>
|
<translation>Quitter la conversation ?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="323"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="329"/>
|
||||||
<source>group_infos_leave_room_toast_message</source>
|
<source>group_infos_leave_room_toast_message</source>
|
||||||
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
||||||
<translation>Vous ne recevrez ni pourrez envoyer des messages dans cette conversation, quitter ?</translation>
|
<translation>Vous ne recevrez ni pourrez envoyer des messages dans cette conversation, quitter ?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="336"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="342"/>
|
||||||
<source>group_infos_delete_history</source>
|
<source>group_infos_delete_history</source>
|
||||||
<extracomment>Delete history</extracomment>
|
<extracomment>Delete history</extracomment>
|
||||||
<translation>Supprimer l'historique</translation>
|
<translation>Supprimer l'historique</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="341"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="347"/>
|
||||||
<source>group_infos_delete_history_toast_title</source>
|
<source>group_infos_delete_history_toast_title</source>
|
||||||
<extracomment>Delete history ?</extracomment>
|
<extracomment>Delete history ?</extracomment>
|
||||||
<translation>Supprimer l'historique ?</translation>
|
<translation>Supprimer l'historique ?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="343"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="349"/>
|
||||||
<source>group_infos_delete_history_toast_message</source>
|
<source>group_infos_delete_history_toast_message</source>
|
||||||
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
||||||
<translation>Tous les messages seront supprimés. Souhaitez-vous continuer ?</translation>
|
<translation>Tous les messages seront supprimés. Souhaitez-vous continuer ?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="357"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="223"/>
|
||||||
<source>one_one_infos_open_contact</source>
|
<source>one_one_infos_open_contact</source>
|
||||||
|
<extracomment>Show contact</extracomment>
|
||||||
<translation>Voir le contact</translation>
|
<translation>Voir le contact</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="357"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="225"/>
|
||||||
<source>one_one_infos_create_contact</source>
|
<source>one_one_infos_create_contact</source>
|
||||||
|
<extracomment>Create contact</extracomment>
|
||||||
<translation>Créer un contact</translation>
|
<translation>Créer un contact</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="371"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="363"/>
|
||||||
<source>one_one_infos_ephemerals</source>
|
<source>one_one_infos_ephemerals</source>
|
||||||
<translation>Messages éphémères : </translation>
|
<translation>Messages éphémères : </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="371"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="363"/>
|
||||||
<source>one_one_infos_enable_ephemerals</source>
|
<source>one_one_infos_enable_ephemerals</source>
|
||||||
<translation>Activer les messages éphémères</translation>
|
<translation>Activer les messages éphémères</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="381"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="373"/>
|
||||||
<source>one_one_infos_delete_history</source>
|
<source>one_one_infos_delete_history</source>
|
||||||
<translation>Supprimer l'historique</translation>
|
<translation>Supprimer l'historique</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="386"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="378"/>
|
||||||
<source>one_one_infos_delete_history_toast_title</source>
|
<source>one_one_infos_delete_history_toast_title</source>
|
||||||
<extracomment>Delete history ?</extracomment>
|
<extracomment>Delete history ?</extracomment>
|
||||||
<translation>Supprimer l'historique ?</translation>
|
<translation>Supprimer l'historique ?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="388"/>
|
<location filename="../../view/Page/Layout/Chat/ConversationInfos.qml" line="380"/>
|
||||||
<source>one_one_infos_delete_history_toast_message</source>
|
<source>one_one_infos_delete_history_toast_message</source>
|
||||||
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
<extracomment>All the messages will be removed from the chat room. Do you want to continue ?</extracomment>
|
||||||
<translation>Tous les messages seront supprimés. Souhaitez-vous continuer ?</translation>
|
<translation>Tous les messages seront supprimés. Souhaitez-vous continuer ?</translation>
|
||||||
|
|
@ -3121,60 +3117,60 @@ en bout. Seul votre correspondant peut les déchiffrer.</translation>
|
||||||
<context>
|
<context>
|
||||||
<name>EventLogCore</name>
|
<name>EventLogCore</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="101"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="107"/>
|
||||||
<source>conference_created_event</source>
|
<source>conference_created_event</source>
|
||||||
<translation>Vous avez rejoint le groupe</translation>
|
<translation>Vous avez rejoint le groupe</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="104"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="110"/>
|
||||||
<source>conference_created_terminated</source>
|
<source>conference_created_terminated</source>
|
||||||
<translation>Vous avez quitté le groupe</translation>
|
<translation>Vous avez quitté le groupe</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="108"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="114"/>
|
||||||
<source>conference_participant_added_event</source>
|
<source>conference_participant_added_event</source>
|
||||||
<translation>%1 a rejoint le groupe</translation>
|
<translation>%1 a rejoint le groupe</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="112"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="118"/>
|
||||||
<source>conference_participant_removed_event</source>
|
<source>conference_participant_removed_event</source>
|
||||||
<translation>%1 ne fait plus partie du groupe</translation>
|
<translation>%1 ne fait plus partie du groupe</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="121"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="127"/>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="123"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="129"/>
|
||||||
<source>conference_security_event</source>
|
<source>conference_security_event</source>
|
||||||
<translation>Niveau de sécurité dégradé par %1</translation>
|
<translation>Niveau de sécurité dégradé par %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="130"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="136"/>
|
||||||
<source>conference_ephemeral_message_enabled_event</source>
|
<source>conference_ephemeral_message_enabled_event</source>
|
||||||
<translation>Messages éphémères activés
|
<translation>Messages éphémères activés
|
||||||
Expiration : %1</translation>
|
Expiration : %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="136"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="142"/>
|
||||||
<source>conference_ephemeral_message_lifetime_changed_event</source>
|
<source>conference_ephemeral_message_lifetime_changed_event</source>
|
||||||
<translation>Messages éphémères mis à jour
|
<translation>Messages éphémères mis à jour
|
||||||
Expiration : %1</translation>
|
Expiration : %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="141"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="147"/>
|
||||||
<source>conference_ephemeral_message_disabled_event</source>
|
<source>conference_ephemeral_message_disabled_event</source>
|
||||||
<translation>Messages éphémères désactivés</translation>
|
<translation>Messages éphémères désactivés</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="145"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="151"/>
|
||||||
<source>conference_subject_changed_event</source>
|
<source>conference_subject_changed_event</source>
|
||||||
<translation>Nouveau sujet : %1</translation>
|
<translation>Nouveau sujet : %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="153"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="159"/>
|
||||||
<source>conference_participant_unset_admin_event</source>
|
<source>conference_participant_unset_admin_event</source>
|
||||||
<translation>%1 n'est plus admin</translation>
|
<translation>%1 n'est plus admin</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../core/chat/message/EventLogCore.cpp" line="149"/>
|
<location filename="../../core/chat/message/EventLogCore.cpp" line="155"/>
|
||||||
<source>conference_participant_set_admin_event</source>
|
<source>conference_participant_set_admin_event</source>
|
||||||
<translation>%1 est maintenant admin</translation>
|
<translation>%1 est maintenant admin</translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
@ -4881,36 +4877,36 @@ Pour les activer dans un projet commercial, merci de nous contacter.</translatio
|
||||||
<context>
|
<context>
|
||||||
<name>SelectedChatView</name>
|
<name>SelectedChatView</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="38"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="37"/>
|
||||||
<source>chat_view_group_call_toast_message</source>
|
<source>chat_view_group_call_toast_message</source>
|
||||||
<translation>Démarrer un appel de groupe ?</translation>
|
<translation>Démarrer un appel de groupe ?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="376"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="400"/>
|
||||||
<source>reply_to_label</source>
|
<source>reply_to_label</source>
|
||||||
<extracomment>Reply to %1</extracomment>
|
<extracomment>Reply to %1</extracomment>
|
||||||
<translation>Réponse à %1</translation>
|
<translation>Réponse à %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="570"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="590"/>
|
||||||
<source>shared_medias_title</source>
|
<source>shared_medias_title</source>
|
||||||
<extracomment>Shared medias</extracomment>
|
<extracomment>Shared medias</extracomment>
|
||||||
<translation>Médias partagés</translation>
|
<translation>Médias partagés</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="572"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="592"/>
|
||||||
<source>shared_documents_title</source>
|
<source>shared_documents_title</source>
|
||||||
<extracomment>Shared documents</extracomment>
|
<extracomment>Shared documents</extracomment>
|
||||||
<translation>Documents partagés</translation>
|
<translation>Documents partagés</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="601"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="621"/>
|
||||||
<source>forward_to_title</source>
|
<source>forward_to_title</source>
|
||||||
<extracomment>Forward to…</extracomment>
|
<extracomment>Forward to…</extracomment>
|
||||||
<translation>Transférer à…</translation>
|
<translation>Transférer à…</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="635"/>
|
<location filename="../../view/Page/Form/Chat/SelectedChatView.qml" line="655"/>
|
||||||
<source>conversations_title</source>
|
<source>conversations_title</source>
|
||||||
<extracomment>Conversations</extracomment>
|
<extracomment>Conversations</extracomment>
|
||||||
<translation>Conversations</translation>
|
<translation>Conversations</translation>
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ list(APPEND _LINPHONEAPP_SOURCES
|
||||||
|
|
||||||
model/chat/ChatModel.cpp
|
model/chat/ChatModel.cpp
|
||||||
model/chat/message/ChatMessageModel.cpp
|
model/chat/message/ChatMessageModel.cpp
|
||||||
|
model/chat/message/EventLogModel.cpp
|
||||||
model/chat/message/content/ChatMessageContentModel.cpp
|
model/chat/message/content/ChatMessageContentModel.cpp
|
||||||
|
|
||||||
model/conference/ConferenceInfoModel.cpp
|
model/conference/ConferenceInfoModel.cpp
|
||||||
|
|
|
||||||
|
|
@ -175,6 +175,12 @@ ChatModel::createMessage(QString text, QList<std::shared_ptr<ChatMessageContentM
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<linphone::EventLog>
|
||||||
|
ChatModel::searchMessageByText(QString text, std::shared_ptr<const linphone::EventLog> from, bool forward) {
|
||||||
|
return mMonitor->searchChatMessageByText(Utils::appStringToCoreString(text), from,
|
||||||
|
forward ? linphone::SearchDirection::Down : linphone::SearchDirection::Up);
|
||||||
|
}
|
||||||
|
|
||||||
void ChatModel::compose() {
|
void ChatModel::compose() {
|
||||||
mMonitor->compose();
|
mMonitor->compose();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,10 @@ public:
|
||||||
std::shared_ptr<linphone::ChatMessage> createTextMessageFromText(QString text);
|
std::shared_ptr<linphone::ChatMessage> createTextMessageFromText(QString text);
|
||||||
std::shared_ptr<linphone::ChatMessage> createMessage(QString text,
|
std::shared_ptr<linphone::ChatMessage> createMessage(QString text,
|
||||||
QList<std::shared_ptr<ChatMessageContentModel>> filesContent);
|
QList<std::shared_ptr<ChatMessageContentModel>> filesContent);
|
||||||
|
|
||||||
|
std::shared_ptr<linphone::EventLog>
|
||||||
|
searchMessageByText(QString text, std::shared_ptr<const linphone::EventLog> = nullptr, bool forward = true);
|
||||||
|
|
||||||
void compose();
|
void compose();
|
||||||
linphone::ChatRoom::State getState() const;
|
linphone::ChatRoom::State getState() const;
|
||||||
void setMuted(bool muted);
|
void setMuted(bool muted);
|
||||||
|
|
|
||||||
45
Linphone/model/chat/message/EventLogModel.cpp
Normal file
45
Linphone/model/chat/message/EventLogModel.cpp
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2010-2024 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 "EventLogModel.hpp"
|
||||||
|
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
#include "core/path/Paths.hpp"
|
||||||
|
#include "model/core/CoreModel.hpp"
|
||||||
|
#include "model/setting/SettingsModel.hpp"
|
||||||
|
#include "model/tool/ToolModel.hpp"
|
||||||
|
#include "tool/Utils.hpp"
|
||||||
|
|
||||||
|
DEFINE_ABSTRACT_OBJECT(EventLogModel)
|
||||||
|
|
||||||
|
EventLogModel::EventLogModel(const std::shared_ptr<const linphone::EventLog> &eventLog, QObject *parent)
|
||||||
|
: mEventLog(eventLog) {
|
||||||
|
// lDebug() << "[EventLogModel] new" << this << " / SDKModel=" << eventLog.get();
|
||||||
|
mustBeInLinphoneThread(getClassName());
|
||||||
|
}
|
||||||
|
|
||||||
|
EventLogModel::~EventLogModel() {
|
||||||
|
mustBeInLinphoneThread("~" + getClassName());
|
||||||
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<const linphone::EventLog> EventLogModel::getEventLog() const {
|
||||||
|
return mEventLog;
|
||||||
|
}
|
||||||
45
Linphone/model/chat/message/EventLogModel.hpp
Normal file
45
Linphone/model/chat/message/EventLogModel.hpp
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2010-2024 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 EVENT_LOG_MODEL_H_
|
||||||
|
#define EVENT_LOG_MODEL_H_
|
||||||
|
|
||||||
|
#include "model/listener/Listener.hpp"
|
||||||
|
#include "tool/AbstractObject.hpp"
|
||||||
|
#include "tool/LinphoneEnums.hpp"
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QTimer>
|
||||||
|
#include <linphone++/linphone.hh>
|
||||||
|
|
||||||
|
class EventLogModel : public QObject, public AbstractObject {
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
EventLogModel(const std::shared_ptr<const linphone::EventLog> &eventLog, QObject *parent = nullptr);
|
||||||
|
~EventLogModel();
|
||||||
|
|
||||||
|
std::shared_ptr<const linphone::EventLog> getEventLog() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::shared_ptr<const linphone::EventLog> mEventLog;
|
||||||
|
DECLARE_ABSTRACT_OBJECT
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -28,6 +28,7 @@ ColumnLayout {
|
||||||
Text {
|
Text {
|
||||||
id: text
|
id: text
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
|
Layout.fillWidth: true
|
||||||
text: labelButton.label
|
text: labelButton.label
|
||||||
font {
|
font {
|
||||||
pixelSize: Typography.p1.pixelSize
|
pixelSize: Typography.p1.pixelSize
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ ListView {
|
||||||
property ChatGui chat
|
property ChatGui chat
|
||||||
property color backgroundColor
|
property color backgroundColor
|
||||||
property bool lastItemVisible: false
|
property bool lastItemVisible: false
|
||||||
|
property int lastIndexFoundWithFilter: -1
|
||||||
verticalLayoutDirection: ListView.BottomToTop
|
verticalLayoutDirection: ListView.BottomToTop
|
||||||
signal showReactionsForMessageRequested(ChatMessageGui chatMessage)
|
signal showReactionsForMessageRequested(ChatMessageGui chatMessage)
|
||||||
signal showImdnStatusForMessageRequested(ChatMessageGui chatMessage)
|
signal showImdnStatusForMessageRequested(ChatMessageGui chatMessage)
|
||||||
|
|
@ -20,39 +21,21 @@ ListView {
|
||||||
signal forwardMessageRequested(ChatMessageGui chatMessage)
|
signal forwardMessageRequested(ChatMessageGui chatMessage)
|
||||||
signal requestHighlight(int indexToHighlight)
|
signal requestHighlight(int indexToHighlight)
|
||||||
signal requestAutoPlayVoiceRecording(int indexToPlay)
|
signal requestAutoPlayVoiceRecording(int indexToPlay)
|
||||||
|
currentIndex: -1
|
||||||
|
|
||||||
property string filterText
|
property string filterText
|
||||||
onFilterTextChanged: {
|
onFilterTextChanged: {
|
||||||
|
lastIndexFoundWithFilter = -1
|
||||||
if (filterText === "") return
|
if (filterText === "") return
|
||||||
eventLogProxy.filterText = filterText
|
eventLogProxy.filterText = filterText
|
||||||
var indexVisible = indexAt(contentX, contentY)
|
var indexVisible = indexAt(contentX, contentY)
|
||||||
var found = eventLogProxy.findIndexCorrespondingToFilter(indexVisible)
|
eventLogProxy.findIndexCorrespondingToFilter(indexVisible, true, true)
|
||||||
if (found !== -1) {
|
|
||||||
currentIndex = found
|
|
||||||
positionViewAtIndex(found, ListView.Center)
|
|
||||||
requestHighlight(found)
|
|
||||||
} else {
|
|
||||||
//: Find message
|
|
||||||
UtilsCpp.showInformationPopup(qsTr("popup_info_find_message_title"),
|
|
||||||
//: No result found
|
|
||||||
qsTr("info_popup_no_result_message"), false)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
signal findIndexWithFilter(bool goingBackward)
|
signal findIndexWithFilter(bool forward)
|
||||||
onFindIndexWithFilter: (goingBackward) => {
|
property bool searchForward: true
|
||||||
var nextIndex = eventLogProxy.findIndexCorrespondingToFilter(currentIndex, goingBackward)
|
onFindIndexWithFilter: (forward) => {
|
||||||
if (nextIndex !== -1 && nextIndex !== currentIndex) {
|
searchForward = forward
|
||||||
currentIndex = nextIndex
|
eventLogProxy.findIndexCorrespondingToFilter(currentIndex, forward, false)
|
||||||
positionViewAtIndex(nextIndex, ListView.Center)
|
|
||||||
requestHighlight(nextIndex)
|
|
||||||
} else if (currentIndex !== -1) {
|
|
||||||
//: Find message
|
|
||||||
UtilsCpp.showInformationPopup(qsTr("popup_info_find_message_title"),
|
|
||||||
//: First result reached
|
|
||||||
goingBackward ? qsTr("info_popup_first_result_message")
|
|
||||||
//: Last result reached
|
|
||||||
: qsTr("info_popup_last_result_message"), false)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
|
|
@ -62,10 +45,7 @@ ListView {
|
||||||
eventLogProxy.markIndexAsRead(index)
|
eventLogProxy.markIndexAsRead(index)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
onCountChanged: if (atYEnd) {
|
|
||||||
positionViewAtEnd()
|
|
||||||
}
|
|
||||||
onChatChanged: lastItemVisible = false
|
onChatChanged: lastItemVisible = false
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
|
|
@ -109,6 +89,32 @@ ListView {
|
||||||
positionViewAtIndex(index, ListView.Beginning)
|
positionViewAtIndex(index, ListView.Beginning)
|
||||||
eventLogProxy.markIndexAsRead(index)
|
eventLogProxy.markIndexAsRead(index)
|
||||||
})
|
})
|
||||||
|
onIndexWithFilterFound: (index) => {
|
||||||
|
if (index !== -1) {
|
||||||
|
currentIndex = index
|
||||||
|
mainItem.positionViewAtIndex(index, ListView.Center)
|
||||||
|
mainItem.requestHighlight(index)
|
||||||
|
mainItem.lastIndexFoundWithFilter = index
|
||||||
|
} else {
|
||||||
|
if (mainItem.lastIndexFoundWithFilter !== index) {
|
||||||
|
//: Find message
|
||||||
|
UtilsCpp.showInformationPopup(qsTr("popup_info_find_message_title"),
|
||||||
|
mainItem.searchForward
|
||||||
|
//: Last result reached
|
||||||
|
? qsTr("info_popup_last_result_message")
|
||||||
|
//: First result reached
|
||||||
|
: qsTr("info_popup_first_result_message"), false)
|
||||||
|
mainItem.positionViewAtIndex(mainItem.lastIndexFoundWithFilter, ListView.Center)
|
||||||
|
mainItem.requestHighlight(mainItem.lastIndexFoundWithFilter)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//: Find message
|
||||||
|
UtilsCpp.showInformationPopup(qsTr("popup_info_find_message_title"),
|
||||||
|
//: No result found
|
||||||
|
qsTr("info_popup_no_result_message"), false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
footer: Item {
|
footer: Item {
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,6 @@ RowLayout {
|
||||||
property CallGui call
|
property CallGui call
|
||||||
property alias callHeaderContent: splitPanel.headerContentItem
|
property alias callHeaderContent: splitPanel.headerContentItem
|
||||||
property bool replyingToMessage: false
|
property bool replyingToMessage: false
|
||||||
property bool showSearchBar: false
|
|
||||||
spacing: 0
|
spacing: 0
|
||||||
enum PanelType { MessageReactions, SharedFiles, Medias, ImdnStatus, ForwardToList, ManageParticipants, EphemeralSettings, None}
|
enum PanelType { MessageReactions, SharedFiles, Medias, ImdnStatus, ForwardToList, ManageParticipants, EphemeralSettings, None}
|
||||||
|
|
||||||
|
|
@ -51,6 +50,10 @@ RowLayout {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Keys.onPressed: (event) => {
|
||||||
|
if (event.modifiers & Qt.ControlModifier && event.key === Qt.Key_F) searchBarLayout.visible = true
|
||||||
|
}
|
||||||
|
|
||||||
//onEventChanged: {
|
//onEventChanged: {
|
||||||
// TODO : call when all messages read after scroll to unread feature available
|
// TODO : call when all messages read after scroll to unread feature available
|
||||||
// if (chat) chat.core.lMarkAsRead()
|
// if (chat) chat.core.lMarkAsRead()
|
||||||
|
|
@ -65,7 +68,7 @@ RowLayout {
|
||||||
header.leftPadding: Math.round(32 * DefaultStyle.dp)
|
header.leftPadding: Math.round(32 * DefaultStyle.dp)
|
||||||
header.rightPadding: Math.round(32 * DefaultStyle.dp)
|
header.rightPadding: Math.round(32 * DefaultStyle.dp)
|
||||||
header.topPadding: Math.round(6 * DefaultStyle.dp)
|
header.topPadding: Math.round(6 * DefaultStyle.dp)
|
||||||
header.bottomPadding: mainItem.showSearchBar ? Math.round(3 * DefaultStyle.dp) : Math.round(6 * DefaultStyle.dp)
|
header.bottomPadding: searchBarLayout.visible ? Math.round(3 * DefaultStyle.dp) : Math.round(6 * DefaultStyle.dp)
|
||||||
|
|
||||||
headerContentItem: ColumnLayout {
|
headerContentItem: ColumnLayout {
|
||||||
anchors.left: parent?.left
|
anchors.left: parent?.left
|
||||||
|
|
@ -119,6 +122,18 @@ RowLayout {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
RoundButton {
|
||||||
|
id: searchInHistoryButton
|
||||||
|
style: ButtonStyle.noBackground
|
||||||
|
icon.source: AppIcons.search
|
||||||
|
checkable: true
|
||||||
|
checkedImageColor: DefaultStyle.main1_500_main
|
||||||
|
onCheckedChanged: searchBarLayout.visible = checked
|
||||||
|
Connections {
|
||||||
|
target: searchBarLayout
|
||||||
|
function onVisibleChanged() {searchInHistoryButton.checked = searchBarLayout.visible}
|
||||||
|
}
|
||||||
|
}
|
||||||
RoundButton {
|
RoundButton {
|
||||||
style: ButtonStyle.noBackground
|
style: ButtonStyle.noBackground
|
||||||
icon.source: AppIcons.videoCamera
|
icon.source: AppIcons.videoCamera
|
||||||
|
|
@ -140,7 +155,7 @@ RowLayout {
|
||||||
}
|
}
|
||||||
RowLayout {
|
RowLayout {
|
||||||
id: searchBarLayout
|
id: searchBarLayout
|
||||||
visible: mainItem.showSearchBar
|
visible: searchInHistoryButton.checked
|
||||||
onVisibleChanged: {
|
onVisibleChanged: {
|
||||||
if(!visible) chatMessagesSearchBar.clearText()
|
if(!visible) chatMessagesSearchBar.clearText()
|
||||||
else chatMessagesSearchBar.forceActiveFocus()
|
else chatMessagesSearchBar.forceActiveFocus()
|
||||||
|
|
@ -151,18 +166,24 @@ RowLayout {
|
||||||
id: chatMessagesSearchBar
|
id: chatMessagesSearchBar
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.rightMargin: Math.round(10 * DefaultStyle.dp)
|
Layout.rightMargin: Math.round(10 * DefaultStyle.dp)
|
||||||
|
property ChatMessageGui messageFound
|
||||||
delaySearch: false
|
delaySearch: false
|
||||||
Keys.onPressed: (event) => {
|
Keys.onPressed: (event) => {
|
||||||
|
event.accepted = false
|
||||||
if (event.key === Qt.Key_Enter || event.key === Qt.Key_Return) {
|
if (event.key === Qt.Key_Enter || event.key === Qt.Key_Return) {
|
||||||
if (chatMessagesListView.filterText !== text) {
|
if (chatMessagesListView.filterText !== text) {
|
||||||
chatMessagesListView.filterText = text
|
chatMessagesListView.filterText = text
|
||||||
} else {
|
} else {
|
||||||
if (event.modifiers & Qt.ShiftModifier) {
|
if (event.modifiers & Qt.ShiftModifier) {
|
||||||
chatMessagesListView.findIndexWithFilter(true)
|
|
||||||
} else {
|
|
||||||
chatMessagesListView.findIndexWithFilter(false)
|
chatMessagesListView.findIndexWithFilter(false)
|
||||||
|
} else {
|
||||||
|
chatMessagesListView.findIndexWithFilter(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
event.accepted = true
|
||||||
|
} else if (event.key === Qt.Key_Escape) {
|
||||||
|
searchBarLayout.visible = false
|
||||||
|
event.accepted = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -171,18 +192,21 @@ RowLayout {
|
||||||
RoundButton {
|
RoundButton {
|
||||||
icon.source: AppIcons.upArrow
|
icon.source: AppIcons.upArrow
|
||||||
style: ButtonStyle.noBackground
|
style: ButtonStyle.noBackground
|
||||||
onClicked: chatMessagesListView.findIndexWithFilter(true)
|
onClicked: chatMessagesListView.findIndexWithFilter(false)
|
||||||
}
|
}
|
||||||
RoundButton {
|
RoundButton {
|
||||||
icon.source: AppIcons.downArrow
|
icon.source: AppIcons.downArrow
|
||||||
style: ButtonStyle.noBackground
|
style: ButtonStyle.noBackground
|
||||||
onClicked: chatMessagesListView.findIndexWithFilter(false)
|
onClicked: chatMessagesListView.findIndexWithFilter(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RoundButton {
|
RoundButton {
|
||||||
icon.source: AppIcons.closeX
|
icon.source: AppIcons.closeX
|
||||||
Layout.rightMargin: Math.round(20 * DefaultStyle.dp)
|
Layout.rightMargin: Math.round(20 * DefaultStyle.dp)
|
||||||
onClicked: mainItem.showSearchBar = false
|
onClicked: {
|
||||||
|
chatMessagesListView.filterText = ""
|
||||||
|
searchBarLayout.visible = false
|
||||||
|
}
|
||||||
style: ButtonStyle.noBackground
|
style: ButtonStyle.noBackground
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -204,7 +228,7 @@ RowLayout {
|
||||||
ChatMessagesListView {
|
ChatMessagesListView {
|
||||||
id: chatMessagesListView
|
id: chatMessagesListView
|
||||||
clip: true
|
clip: true
|
||||||
height: contentHeight
|
height: implicitHeight
|
||||||
backgroundColor: splitPanel.panelColor
|
backgroundColor: splitPanel.panelColor
|
||||||
width: parent.width - anchors.leftMargin - anchors.rightMargin
|
width: parent.width - anchors.leftMargin - anchors.rightMargin
|
||||||
chat: mainItem.chat
|
chat: mainItem.chat
|
||||||
|
|
@ -502,6 +526,7 @@ RowLayout {
|
||||||
// anchors.top: parent.top
|
// anchors.top: parent.top
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.topMargin: Math.round(39 * DefaultStyle.dp)
|
anchors.topMargin: Math.round(39 * DefaultStyle.dp)
|
||||||
|
anchors.rightMargin: Math.round(15 * DefaultStyle.dp)
|
||||||
sourceComponent: panelType === SelectedChatView.PanelType.EphemeralSettings
|
sourceComponent: panelType === SelectedChatView.PanelType.EphemeralSettings
|
||||||
? ephemeralSettingsComponent
|
? ephemeralSettingsComponent
|
||||||
: panelType === SelectedChatView.PanelType.MessageReactions
|
: panelType === SelectedChatView.PanelType.MessageReactions
|
||||||
|
|
@ -531,10 +556,6 @@ RowLayout {
|
||||||
onEphemeralSettingsRequested: contentLoader.panelType = SelectedChatView.PanelType.EphemeralSettings
|
onEphemeralSettingsRequested: contentLoader.panelType = SelectedChatView.PanelType.EphemeralSettings
|
||||||
onShowSharedFilesRequested: (showMedias) => {
|
onShowSharedFilesRequested: (showMedias) => {
|
||||||
contentLoader.panelType = showMedias ? SelectedChatView.PanelType.Medias : SelectedChatView.PanelType.SharedFiles
|
contentLoader.panelType = showMedias ? SelectedChatView.PanelType.Medias : SelectedChatView.PanelType.SharedFiles
|
||||||
}
|
|
||||||
onSearchInHistoryRequested: {
|
|
||||||
mainItem.showSearchBar = true
|
|
||||||
detailsPanel.visible = false
|
|
||||||
}
|
}
|
||||||
onManageParticipantsRequested: contentLoader.panelType = SelectedChatView.PanelType.ManageParticipants
|
onManageParticipantsRequested: contentLoader.panelType = SelectedChatView.PanelType.ManageParticipants
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,6 @@ ColumnLayout {
|
||||||
spacing: 0
|
spacing: 0
|
||||||
signal ephemeralSettingsRequested()
|
signal ephemeralSettingsRequested()
|
||||||
signal showSharedFilesRequested(bool showMedias)
|
signal showSharedFilesRequested(bool showMedias)
|
||||||
signal searchInHistoryRequested()
|
|
||||||
signal manageParticipantsRequested()
|
signal manageParticipantsRequested()
|
||||||
|
|
||||||
Avatar {
|
Avatar {
|
||||||
|
|
@ -202,6 +201,7 @@ ColumnLayout {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
LabelButton {
|
LabelButton {
|
||||||
|
visible: !mainItem.isGroup || !SettingsCpp.disableMeetingsFeature
|
||||||
text.Layout.fillWidth: true
|
text.Layout.fillWidth: true
|
||||||
text.horizontalAlignment: Text.AlignHCenter
|
text.horizontalAlignment: Text.AlignHCenter
|
||||||
text.wrapMode: Text.Wrap
|
text.wrapMode: Text.Wrap
|
||||||
|
|
@ -210,11 +210,28 @@ ColumnLayout {
|
||||||
Layout.maximumWidth: Math.round(130 * DefaultStyle.dp)
|
Layout.maximumWidth: Math.round(130 * DefaultStyle.dp)
|
||||||
button.icon.width: Math.round(24 * DefaultStyle.dp)
|
button.icon.width: Math.round(24 * DefaultStyle.dp)
|
||||||
button.icon.height: Math.round(24 * DefaultStyle.dp)
|
button.icon.height: Math.round(24 * DefaultStyle.dp)
|
||||||
button.icon.source: AppIcons.search
|
button.icon.source: mainItem.isGroup
|
||||||
//: "Rechercher"
|
? AppIcons.videoconference
|
||||||
label: qsTr("one_one_infos_search")
|
: contactObj.value
|
||||||
|
? AppIcons.adressBook
|
||||||
|
: AppIcons.plusCircle
|
||||||
|
label: mainItem.isGroup
|
||||||
|
//: Schedule a meeting
|
||||||
|
? qsTr("group_infos_meeting")
|
||||||
|
: contactObj.value
|
||||||
|
//: Show contact
|
||||||
|
? qsTr("one_one_infos_open_contact")
|
||||||
|
//: Create contact
|
||||||
|
: qsTr("one_one_infos_create_contact")
|
||||||
button.onClicked: {
|
button.onClicked: {
|
||||||
mainItem.searchInHistoryRequested()
|
if (mainItem.isGroup)
|
||||||
|
UtilsCpp.getMainWindow().scheduleMeeting(mainItem.chatCore.title, mainItem.chatCore.participantsAddresses)
|
||||||
|
else {
|
||||||
|
if (contactObj.value)
|
||||||
|
mainWindow.displayContactPage(contactObj.value.core.defaultAddress)
|
||||||
|
else
|
||||||
|
mainWindow.displayCreateContactPage("",mainItem.chatCore.peerAddress)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -226,7 +243,6 @@ ColumnLayout {
|
||||||
Layout.topMargin: Math.round(30 * DefaultStyle.dp)
|
Layout.topMargin: Math.round(30 * DefaultStyle.dp)
|
||||||
clip: true
|
clip: true
|
||||||
Layout.leftMargin: Math.round(15 * DefaultStyle.dp)
|
Layout.leftMargin: Math.round(15 * DefaultStyle.dp)
|
||||||
Layout.rightMargin: Math.round(15 * DefaultStyle.dp)
|
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
spacing: 0
|
spacing: 0
|
||||||
|
|
@ -298,17 +314,6 @@ ColumnLayout {
|
||||||
mainItem.ephemeralSettingsRequested()
|
mainItem.ephemeralSettingsRequested()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
visible: !SettingsCpp.disableMeetingsFeature,
|
|
||||||
icon: AppIcons.videoconference,
|
|
||||||
color: DefaultStyle.main2_600,
|
|
||||||
showRightArrow: false,
|
|
||||||
//: Schedule a meeting
|
|
||||||
text: qsTr("group_infos_meeting"),
|
|
||||||
action: function() {
|
|
||||||
UtilsCpp.getMainWindow().scheduleMeeting(mainItem.chatCore.title, mainItem.chatCore.participantsAddresses)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
icon: AppIcons.signOut,
|
icon: AppIcons.signOut,
|
||||||
visible: !mainItem.chatCore.isReadOnly,
|
visible: !mainItem.chatCore.isReadOnly,
|
||||||
|
|
@ -351,20 +356,6 @@ ColumnLayout {
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
: [
|
: [
|
||||||
{
|
|
||||||
icon: contactObj.value ? AppIcons.adressBook : AppIcons.plusCircle,
|
|
||||||
visible: true,
|
|
||||||
text: contactObj.value ? qsTr("one_one_infos_open_contact") : qsTr("one_one_infos_create_contact"),
|
|
||||||
color: DefaultStyle.main2_600,
|
|
||||||
showRightArrow: false,
|
|
||||||
action: function() {
|
|
||||||
// contactObj.value = friendGui
|
|
||||||
if (contactObj.value)
|
|
||||||
mainWindow.displayContactPage(contactObj.value.core.defaultAddress)
|
|
||||||
else
|
|
||||||
mainWindow.displayCreateContactPage("",mainItem.chatCore.peerAddress)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
icon: AppIcons.clockCountDown,
|
icon: AppIcons.clockCountDown,
|
||||||
visible: !mainItem.chatCore.isReadOnly,
|
visible: !mainItem.chatCore.isReadOnly,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue