Interaction hint for new reactions behavior
This commit is contained in:
parent
26772a48eb
commit
7c63ad66f9
16 changed files with 108 additions and 0 deletions
|
@ -609,6 +609,15 @@ Page {
|
|||
|
||||
chatViewCooldownTimer.restart();
|
||||
chatViewStartupReadTimer.restart();
|
||||
|
||||
var remainingDoubleTapHints = appSettings.remainingDoubleTapHints;
|
||||
Debug.log("Remaining double tap hints: " + remainingDoubleTapHints);
|
||||
if (remainingDoubleTapHints > 0) {
|
||||
doubleTapHintTimer.start();
|
||||
tapHint.visible = true;
|
||||
tapHintLabel.visible = true;
|
||||
appSettings.remainingDoubleTapHints = remainingDoubleTapHints - 1;
|
||||
}
|
||||
}
|
||||
onNewMessageReceived: {
|
||||
if (( chatView.manuallyScrolledToBottom && Qt.application.state === Qt.ApplicationActive ) || message.sender_id.user_id === chatPage.myUserId) {
|
||||
|
@ -2157,4 +2166,31 @@ Page {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: doubleTapHintTimer
|
||||
running: true
|
||||
triggeredOnStart: false
|
||||
repeat: false
|
||||
interval: 6000
|
||||
onTriggered: {
|
||||
tapHint.visible = false;
|
||||
tapHintLabel.visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
TapInteractionHint {
|
||||
id: tapHint
|
||||
loops: Animation.Infinite
|
||||
taps: 2
|
||||
anchors.centerIn: parent
|
||||
visible: false
|
||||
}
|
||||
|
||||
InteractionHintLabel {
|
||||
id: tapHintLabel
|
||||
anchors.bottom: parent.bottom
|
||||
text: qsTr("Double-tap on a message to choose a reaction")
|
||||
visible: false
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,6 +35,7 @@ namespace {
|
|||
const QString KEY_STORAGE_OPTIMIZER("useStorageOptimizer");
|
||||
const QString KEY_INLINEBOT_LOCATION_ACCESS("allowInlineBotLocationAccess");
|
||||
const QString KEY_REMAINING_INTERACTION_HINTS("remainingInteractionHints");
|
||||
const QString KEY_REMAINING_DOUBLE_TAP_HINTS("remainingDoubleTapHints");
|
||||
const QString KEY_ONLINE_ONLY_MODE("onlineOnlyMode");
|
||||
const QString KEY_DELAY_MESSAGE_READ("delayMessageRead");
|
||||
const QString KEY_FOCUS_TEXTAREA_ON_CHAT_OPEN("focusTextAreaOnChatOpen");
|
||||
|
@ -243,6 +244,20 @@ void AppSettings::setRemainingInteractionHints(int remainingHints)
|
|||
}
|
||||
}
|
||||
|
||||
int AppSettings::remainingDoubleTapHints() const
|
||||
{
|
||||
return settings.value(KEY_REMAINING_DOUBLE_TAP_HINTS, 3).toInt();
|
||||
}
|
||||
|
||||
void AppSettings::setRemainingDoubleTapHints(int remainingHints)
|
||||
{
|
||||
if (remainingDoubleTapHints() != remainingHints) {
|
||||
LOG(KEY_REMAINING_DOUBLE_TAP_HINTS << remainingHints);
|
||||
settings.setValue(KEY_REMAINING_DOUBLE_TAP_HINTS, remainingHints);
|
||||
emit remainingDoubleTapHintsChanged();
|
||||
}
|
||||
}
|
||||
|
||||
bool AppSettings::onlineOnlyMode() const
|
||||
{
|
||||
return settings.value(KEY_ONLINE_ONLY_MODE, false).toBool();
|
||||
|
|
|
@ -38,6 +38,7 @@ class AppSettings : public QObject {
|
|||
Q_PROPERTY(bool storageOptimizer READ storageOptimizer WRITE setStorageOptimizer NOTIFY storageOptimizerChanged)
|
||||
Q_PROPERTY(bool allowInlineBotLocationAccess READ allowInlineBotLocationAccess WRITE setAllowInlineBotLocationAccess NOTIFY allowInlineBotLocationAccessChanged)
|
||||
Q_PROPERTY(int remainingInteractionHints READ remainingInteractionHints WRITE setRemainingInteractionHints NOTIFY remainingInteractionHintsChanged)
|
||||
Q_PROPERTY(int remainingDoubleTapHints READ remainingDoubleTapHints WRITE setRemainingDoubleTapHints NOTIFY remainingDoubleTapHintsChanged)
|
||||
Q_PROPERTY(bool onlineOnlyMode READ onlineOnlyMode WRITE setOnlineOnlyMode NOTIFY onlineOnlyModeChanged)
|
||||
Q_PROPERTY(bool delayMessageRead READ delayMessageRead WRITE setDelayMessageRead NOTIFY delayMessageReadChanged)
|
||||
Q_PROPERTY(bool focusTextAreaOnChatOpen READ getFocusTextAreaOnChatOpen WRITE setFocusTextAreaOnChatOpen NOTIFY focusTextAreaOnChatOpenChanged)
|
||||
|
@ -104,6 +105,9 @@ public:
|
|||
int remainingInteractionHints() const;
|
||||
void setRemainingInteractionHints(int remainingHints);
|
||||
|
||||
int remainingDoubleTapHints() const;
|
||||
void setRemainingDoubleTapHints(int remainingHints);
|
||||
|
||||
bool onlineOnlyMode() const;
|
||||
void setOnlineOnlyMode(bool enable);
|
||||
|
||||
|
@ -134,6 +138,7 @@ signals:
|
|||
void storageOptimizerChanged();
|
||||
void allowInlineBotLocationAccessChanged();
|
||||
void remainingInteractionHintsChanged();
|
||||
void remainingDoubleTapHintsChanged();
|
||||
void onlineOnlyModeChanged();
|
||||
void delayMessageReadChanged();
|
||||
void focusTextAreaOnChatOpenChanged();
|
||||
|
|
|
@ -483,6 +483,10 @@
|
|||
<source>Deleted User</source>
|
||||
<translation>Gelöschtes Konto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Double-tap on a message to choose a reaction</source>
|
||||
<translation>Drücke zweimal auf eine Nachricht, um eine Reaktion auszuwählen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ChatSelectionPage</name>
|
||||
|
|
|
@ -483,6 +483,10 @@
|
|||
<source>Deleted User</source>
|
||||
<translation>Deleted User</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Double-tap on a message to choose a reaction</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ChatSelectionPage</name>
|
||||
|
|
|
@ -483,6 +483,10 @@
|
|||
<source>Deleted User</source>
|
||||
<translation>Usuario borrado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Double-tap on a message to choose a reaction</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ChatSelectionPage</name>
|
||||
|
|
|
@ -483,6 +483,10 @@
|
|||
<source>Deleted User</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Double-tap on a message to choose a reaction</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ChatSelectionPage</name>
|
||||
|
|
|
@ -483,6 +483,10 @@
|
|||
<source>Deleted User</source>
|
||||
<translation>Supprimer l'utilisateur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Double-tap on a message to choose a reaction</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ChatSelectionPage</name>
|
||||
|
|
|
@ -473,6 +473,10 @@
|
|||
<source>Deleted User</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Double-tap on a message to choose a reaction</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ChatSelectionPage</name>
|
||||
|
|
|
@ -483,6 +483,10 @@
|
|||
<source>Deleted User</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Double-tap on a message to choose a reaction</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ChatSelectionPage</name>
|
||||
|
|
|
@ -493,6 +493,10 @@
|
|||
<source>Deleted User</source>
|
||||
<translation>Usunięty użytkownik</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Double-tap on a message to choose a reaction</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ChatSelectionPage</name>
|
||||
|
|
|
@ -493,6 +493,10 @@
|
|||
<source>Deleted User</source>
|
||||
<translation>Удалённый пользователь</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Double-tap on a message to choose a reaction</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ChatSelectionPage</name>
|
||||
|
|
|
@ -493,6 +493,10 @@
|
|||
<source>Deleted User</source>
|
||||
<translation>Odstránený používateľ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Double-tap on a message to choose a reaction</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ChatSelectionPage</name>
|
||||
|
|
|
@ -483,6 +483,10 @@
|
|||
<source>Deleted User</source>
|
||||
<translation>Tog bort användare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Double-tap on a message to choose a reaction</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ChatSelectionPage</name>
|
||||
|
|
|
@ -473,6 +473,10 @@
|
|||
<source>Deleted User</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Double-tap on a message to choose a reaction</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ChatSelectionPage</name>
|
||||
|
|
|
@ -483,6 +483,10 @@
|
|||
<source>Deleted User</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Double-tap on a message to choose a reaction</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ChatSelectionPage</name>
|
||||
|
|
Loading…
Reference in a new issue