Merge remote-tracking branch 'origin/master' into searching
This commit is contained in:
commit
78a71cfbab
17 changed files with 172 additions and 17 deletions
|
@ -163,7 +163,7 @@ Item {
|
||||||
height: Theme.iconSizeLarge
|
height: Theme.iconSizeLarge
|
||||||
Item {
|
Item {
|
||||||
height: Theme.iconSizeLarge
|
height: Theme.iconSizeLarge
|
||||||
width: parent.width
|
width: downloadItem.visible ? parent.width / 2 : parent.width
|
||||||
IconButton {
|
IconButton {
|
||||||
id: playButton
|
id: playButton
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
|
@ -187,6 +187,35 @@ Item {
|
||||||
size: BusyIndicatorSize.Large
|
size: BusyIndicatorSize.Large
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Item {
|
||||||
|
id: downloadItem
|
||||||
|
width: parent.width / 2
|
||||||
|
height: Theme.iconSizeLarge
|
||||||
|
visible: audioData[audioType].local.is_downloading_completed
|
||||||
|
Rectangle {
|
||||||
|
color: Theme.primaryColor
|
||||||
|
opacity: Theme.opacityFaint
|
||||||
|
width: Theme.iconSizeLarge * 0.9
|
||||||
|
height: Theme.iconSizeLarge * 0.9
|
||||||
|
anchors.centerIn: parent
|
||||||
|
radius: width / 2
|
||||||
|
}
|
||||||
|
|
||||||
|
IconButton {
|
||||||
|
id: downloadButton
|
||||||
|
anchors.centerIn: parent
|
||||||
|
width: Theme.iconSizeLarge
|
||||||
|
height: Theme.iconSizeLarge
|
||||||
|
icon {
|
||||||
|
source: "image://theme/icon-m-cloud-download?white"
|
||||||
|
asynchronous: true
|
||||||
|
}
|
||||||
|
highlighted: audioMessageComponent.highlighted || down
|
||||||
|
onClicked: {
|
||||||
|
tdLibWrapper.copyFileToDownloads(audioData[audioType].local.path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ProgressBar {
|
ProgressBar {
|
||||||
id: downloadingProgressBar
|
id: downloadingProgressBar
|
||||||
|
@ -250,6 +279,7 @@ Item {
|
||||||
target: messageAudio
|
target: messageAudio
|
||||||
onPlaying: {
|
onPlaying: {
|
||||||
playButton.visible = false;
|
playButton.visible = false;
|
||||||
|
downloadItem.visible = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -261,7 +291,6 @@ Item {
|
||||||
timeLeftItem.visible = true;
|
timeLeftItem.visible = true;
|
||||||
} else {
|
} else {
|
||||||
messageAudio.play();
|
messageAudio.play();
|
||||||
timeLeftTimer.start();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -272,7 +301,6 @@ Item {
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
if (messageAudio.error === MediaPlayer.NoError) {
|
if (messageAudio.error === MediaPlayer.NoError) {
|
||||||
messageAudio.play();
|
messageAudio.play();
|
||||||
timeLeftTimer.start();
|
|
||||||
} else {
|
} else {
|
||||||
errorText.text = qsTr("Error loading audio! " + messageAudio.errorString)
|
errorText.text = qsTr("Error loading audio! " + messageAudio.errorString)
|
||||||
errorTextOverlay.visible = true;
|
errorTextOverlay.visible = true;
|
||||||
|
@ -323,6 +351,7 @@ Item {
|
||||||
|
|
||||||
onStopped: {
|
onStopped: {
|
||||||
playButton.visible = true;
|
playButton.visible = true;
|
||||||
|
downloadItem.visible = true;
|
||||||
audioComponentLoader.active = false;
|
audioComponentLoader.active = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -336,15 +365,6 @@ Item {
|
||||||
size: BusyIndicatorSize.Medium
|
size: BusyIndicatorSize.Medium
|
||||||
}
|
}
|
||||||
|
|
||||||
Timer {
|
|
||||||
id: timeLeftTimer
|
|
||||||
repeat: false
|
|
||||||
interval: 2000
|
|
||||||
onTriggered: {
|
|
||||||
timeLeftItem.visible = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: timeLeftItem
|
id: timeLeftItem
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
@ -372,7 +392,7 @@ Item {
|
||||||
visible: audioComponentLoader.active && messageAudio.playbackState === MediaPlayer.PausedState
|
visible: audioComponentLoader.active && messageAudio.playbackState === MediaPlayer.PausedState
|
||||||
Item {
|
Item {
|
||||||
height: parent.height
|
height: parent.height
|
||||||
width: parent.width
|
width: parent.width / 2
|
||||||
IconButton {
|
IconButton {
|
||||||
id: pausedPlayButton
|
id: pausedPlayButton
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
|
@ -385,7 +405,34 @@ Item {
|
||||||
}
|
}
|
||||||
onClicked: {
|
onClicked: {
|
||||||
messageAudio.play();
|
messageAudio.play();
|
||||||
timeLeftTimer.start();
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Item {
|
||||||
|
id: pausedDownloadItem
|
||||||
|
width: parent.width / 2
|
||||||
|
height: parent.height
|
||||||
|
Rectangle {
|
||||||
|
color: Theme.primaryColor
|
||||||
|
opacity: Theme.opacityFaint
|
||||||
|
width: Theme.iconSizeLarge * 0.9
|
||||||
|
height: Theme.iconSizeLarge * 0.9
|
||||||
|
anchors.centerIn: parent
|
||||||
|
radius: width / 2
|
||||||
|
}
|
||||||
|
|
||||||
|
IconButton {
|
||||||
|
id: pausedDownloadButton
|
||||||
|
anchors.centerIn: parent
|
||||||
|
width: Theme.iconSizeLarge
|
||||||
|
height: Theme.iconSizeLarge
|
||||||
|
icon {
|
||||||
|
source: "image://theme/icon-m-cloud-download?white"
|
||||||
|
asynchronous: true
|
||||||
|
}
|
||||||
|
highlighted: audioMessageComponent.highlighted || down
|
||||||
|
onClicked: {
|
||||||
|
tdLibWrapper.copyFileToDownloads(audioData[audioType].local.path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -406,7 +453,6 @@ Item {
|
||||||
onReleased: {
|
onReleased: {
|
||||||
messageAudio.seek(Math.floor(value));
|
messageAudio.seek(Math.floor(value));
|
||||||
messageAudio.play();
|
messageAudio.play();
|
||||||
timeLeftTimer.start();
|
|
||||||
}
|
}
|
||||||
valueText: getTimeString(Math.round((messageAudio.duration - messageAudioSlider.value) / 1000))
|
valueText: getTimeString(Math.round((messageAudio.duration - messageAudioSlider.value) / 1000))
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,7 +77,7 @@ Item {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
text: qsTr("Download Document")
|
text: qsTr("Download Document")
|
||||||
visible: false
|
visible: false
|
||||||
highlighted: videoMessageComponent.highlighted || down
|
highlighted: documentPreviewItem.highlighted || down
|
||||||
onClicked: {
|
onClicked: {
|
||||||
downloadDocumentButton.visible = false;
|
downloadDocumentButton.visible = false;
|
||||||
downloadingProgressBar.visible = true;
|
downloadingProgressBar.visible = true;
|
||||||
|
@ -101,7 +101,7 @@ Item {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
text: qsTr("Open Document")
|
text: qsTr("Open Document")
|
||||||
visible: false
|
visible: false
|
||||||
highlighted: videoMessageComponent.highlighted || down
|
highlighted: documentPreviewItem.highlighted || down
|
||||||
onClicked: {
|
onClicked: {
|
||||||
documentPreviewItem.openRequested = true;
|
documentPreviewItem.openRequested = true;
|
||||||
tdLibWrapper.openFileOnDevice(documentData.document.local.path);
|
tdLibWrapper.openFileOnDevice(documentData.document.local.path);
|
||||||
|
|
|
@ -583,6 +583,9 @@ Page {
|
||||||
}
|
}
|
||||||
lastQueuedIndex = -1
|
lastQueuedIndex = -1
|
||||||
}
|
}
|
||||||
|
if (chatInformation.unread_count === 0) {
|
||||||
|
tdLibWrapper.readAllChatMentions(chatInformation.id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -892,6 +895,8 @@ Page {
|
||||||
if (bottomIndex > -1) {
|
if (bottomIndex > -1) {
|
||||||
viewMessageTimer.queueViewMessage(bottomIndex)
|
viewMessageTimer.queueViewMessage(bottomIndex)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
tdLibWrapper.readAllChatMentions(chatInformation.id);
|
||||||
}
|
}
|
||||||
manuallyScrolledToBottom = chatView.atYEnd
|
manuallyScrolledToBottom = chatView.atYEnd
|
||||||
}
|
}
|
||||||
|
|
|
@ -203,6 +203,13 @@ Page {
|
||||||
onErrorReceived: {
|
onErrorReceived: {
|
||||||
Functions.handleErrorMessage(code, message);
|
Functions.handleErrorMessage(code, message);
|
||||||
}
|
}
|
||||||
|
onCopyToDownloadsSuccessful: {
|
||||||
|
appNotification.show(qsTr("Download of %1 successful.").arg(fileName), filePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
onCopyToDownloadsError: {
|
||||||
|
appNotification.show(qsTr("Download failed."));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
|
|
|
@ -958,6 +958,14 @@ void TDLibWrapper::searchPublicChats(const QString &query)
|
||||||
requestObject.insert(_TYPE, "searchPublicChats");
|
requestObject.insert(_TYPE, "searchPublicChats");
|
||||||
requestObject.insert("query", query);
|
requestObject.insert("query", query);
|
||||||
requestObject.insert(_EXTRA, "searchPublicChats");
|
requestObject.insert(_EXTRA, "searchPublicChats");
|
||||||
|
}
|
||||||
|
|
||||||
|
void TDLibWrapper::readAllChatMentions(qlonglong chatId)
|
||||||
|
{
|
||||||
|
LOG("Read all chat mentions" << chatId);
|
||||||
|
QVariantMap requestObject;
|
||||||
|
requestObject.insert(_TYPE, "readAllChatMentions");
|
||||||
|
requestObject.insert("chat_id", chatId);
|
||||||
this->sendRequest(requestObject);
|
this->sendRequest(requestObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -181,6 +181,7 @@ public:
|
||||||
Q_INVOKABLE void importContacts(const QVariantList &contacts);
|
Q_INVOKABLE void importContacts(const QVariantList &contacts);
|
||||||
Q_INVOKABLE void searchChatMessages(const qlonglong &chatId, const QString &query, const qlonglong fromMessageId = 0);
|
Q_INVOKABLE void searchChatMessages(const qlonglong &chatId, const QString &query, const qlonglong fromMessageId = 0);
|
||||||
Q_INVOKABLE void searchPublicChats(const QString &query);
|
Q_INVOKABLE void searchPublicChats(const QString &query);
|
||||||
|
Q_INVOKABLE void readAllChatMentions(qlonglong chatId);
|
||||||
|
|
||||||
// Others (candidates for extraction ;))
|
// Others (candidates for extraction ;))
|
||||||
Q_INVOKABLE void searchEmoji(const QString &queryString);
|
Q_INVOKABLE void searchEmoji(const QString &queryString);
|
||||||
|
|
|
@ -1042,6 +1042,14 @@
|
||||||
<source>Search Chats</source>
|
<source>Search Chats</source>
|
||||||
<translation>Chats suchen</translation>
|
<translation>Chats suchen</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download of %1 successful.</source>
|
||||||
|
<translation type="unfinished">Download von %1 erfolgreich.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download failed.</source>
|
||||||
|
<translation type="unfinished">Download fehlgeschlagen.</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>PinnedMessageItem</name>
|
<name>PinnedMessageItem</name>
|
||||||
|
|
|
@ -1042,6 +1042,14 @@
|
||||||
<source>Search Chats</source>
|
<source>Search Chats</source>
|
||||||
<translation>Search Chats</translation>
|
<translation>Search Chats</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download of %1 successful.</source>
|
||||||
|
<translation type="unfinished">Download of %1 successful.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download failed.</source>
|
||||||
|
<translation type="unfinished">Download failed.</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>PinnedMessageItem</name>
|
<name>PinnedMessageItem</name>
|
||||||
|
|
|
@ -1031,6 +1031,14 @@
|
||||||
<source>Search Chats</source>
|
<source>Search Chats</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download of %1 successful.</source>
|
||||||
|
<translation type="unfinished">Bajada de %1 exitosa.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download failed.</source>
|
||||||
|
<translation type="unfinished">Error al bajar</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>PinnedMessageItem</name>
|
<name>PinnedMessageItem</name>
|
||||||
|
|
|
@ -1043,6 +1043,14 @@
|
||||||
<source>Search Chats</source>
|
<source>Search Chats</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download of %1 successful.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download failed.</source>
|
||||||
|
<translation type="unfinished">Lataus epäonnistui.</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>PinnedMessageItem</name>
|
<name>PinnedMessageItem</name>
|
||||||
|
|
|
@ -1031,6 +1031,14 @@
|
||||||
<source>Search Chats</source>
|
<source>Search Chats</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download of %1 successful.</source>
|
||||||
|
<translation type="unfinished">A %1 letöltése sikerült.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download failed.</source>
|
||||||
|
<translation type="unfinished">A letöltés nem sikerült.</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>PinnedMessageItem</name>
|
<name>PinnedMessageItem</name>
|
||||||
|
|
|
@ -1042,6 +1042,14 @@
|
||||||
<source>Search Chats</source>
|
<source>Search Chats</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download of %1 successful.</source>
|
||||||
|
<translation type="unfinished">Download di %1 completato.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download failed.</source>
|
||||||
|
<translation type="unfinished">Download non riuscito.</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>PinnedMessageItem</name>
|
<name>PinnedMessageItem</name>
|
||||||
|
|
|
@ -1053,6 +1053,14 @@
|
||||||
<source>Search Chats</source>
|
<source>Search Chats</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download of %1 successful.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download failed.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>PinnedMessageItem</name>
|
<name>PinnedMessageItem</name>
|
||||||
|
|
|
@ -1053,6 +1053,14 @@
|
||||||
<source>Search Chats</source>
|
<source>Search Chats</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download of %1 successful.</source>
|
||||||
|
<translation type="unfinished">Успешно скачано %1.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download failed.</source>
|
||||||
|
<translation type="unfinished">Ошибка скачивания.</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>PinnedMessageItem</name>
|
<name>PinnedMessageItem</name>
|
||||||
|
|
|
@ -1042,6 +1042,14 @@
|
||||||
<source>Search Chats</source>
|
<source>Search Chats</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download of %1 successful.</source>
|
||||||
|
<translation type="unfinished">Nerladdning av %1 slutförd.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download failed.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>PinnedMessageItem</name>
|
<name>PinnedMessageItem</name>
|
||||||
|
|
|
@ -1031,6 +1031,14 @@
|
||||||
<source>Search Chats</source>
|
<source>Search Chats</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download of %1 successful.</source>
|
||||||
|
<translation type="unfinished">已成功下载 %1 。</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download failed.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>PinnedMessageItem</name>
|
<name>PinnedMessageItem</name>
|
||||||
|
|
|
@ -1042,6 +1042,14 @@
|
||||||
<source>Search Chats</source>
|
<source>Search Chats</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download of %1 successful.</source>
|
||||||
|
<translation type="unfinished">Download of %1 successful.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Download failed.</source>
|
||||||
|
<translation type="unfinished">Download failed.</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>PinnedMessageItem</name>
|
<name>PinnedMessageItem</name>
|
||||||
|
|
Loading…
Reference in a new issue