mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-18 03:48:09 +00:00
Mute option for each chatrooms.
This commit is contained in:
parent
32e7739d4d
commit
ee526c262c
32 changed files with 506 additions and 72 deletions
|
|
@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
- Colored Emojis with its own font family.
|
||||
- OAuth2 connection to retrieve remote provisioning (Experimental and not usable without configuration).
|
||||
- Add/View contact from a message.
|
||||
- Mute option for each chatrooms.
|
||||
|
||||
## 5.0.11 - undefined
|
||||
|
||||
|
|
|
|||
66
linphone-app/assets/images/notifications_off_custom.svg
Normal file
66
linphone-app/assets/images/notifications_off_custom.svg
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="80"
|
||||
height="80"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="Mute.svg"
|
||||
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs8" />
|
||||
<sodipodi:namedview
|
||||
id="namedview12"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="3.1144962"
|
||||
inkscape:cx="-69.032031"
|
||||
inkscape:cy="17.338277"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1043"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4" />
|
||||
<g
|
||||
id="notifs-inactif_alpha"
|
||||
transform="matrix(2.5614426,0,0,2.5614426,21.508927,20)">
|
||||
<g
|
||||
id="Group"
|
||||
transform="translate(0.9314515)">
|
||||
<g
|
||||
id="Group-21"
|
||||
transform="translate(0.05947038)"
|
||||
filter="url(#filter_1)">
|
||||
<path
|
||||
d="m 0.549145,11.7847 c 0.363134,0.3632 0.853445,0.5629 1.379995,0.5629 H 11.9344 c 0.5265,0 1.0168,-0.1997 1.38,-0.5629 0.3813,-0.3814 0.5811,-0.8898 0.5628,-1.4163 C 13.8591,9.8236 13.6411,9.33329 13.2416,8.97016 L 12.7877,8.57068 C 12.606,8.40728 12.5153,8.1712 12.5153,7.93507 V 5.71976 C 12.5153,4.35789 11.9888,2.97789 11.099,1.90652 10.0459,0.671954 8.6296,0 7.06786,0 7.0134,0 6.97704,0 6.94069,0.0181126 6.88623,0 6.83176,0 6.79541,0 5.2338,0 3.79936,0.671824 2.78243,1.8884 1.87451,2.9597 1.36608,4.33983 1.36608,5.70164 v 2.21531 c 0,0.23609 -0.10893,0.47208 -0.27232,0.6356 L 0.639801,8.95204 C 0.240318,9.31517 0.0224514,9.80548 0.00419584,10.3503 -0.0320299,10.8949 0.167718,11.4033 0.549107,11.7847 Z M 1.34801,9.76916 1.80197,9.36968 C 2.20145,9.00654 2.43757,8.47989 2.43757,7.93524 V 5.71992 c 0,-2.85091 2.26979,-4.6122 4.35799,-4.6122 0.05447,0 0.09082,0 0.12717,-0.01811 0.03636,0.01811 0.09082,0.01811 0.12717,0.01811 2.08814,0 4.358,1.76135 4.358,4.6122 v 2.21532 c 0,0.54478 0.2361,1.0713 0.6356,1.43444 l 0.454,0.39948 c 0.1816,0.16339 0.2723,0.38134 0.2723,0.61734 0,0.2361 -0.0908,0.454 -0.2542,0.6356 -0.1453,0.1453 -0.3632,0.236 -0.5993,0.236 H 1.92929 c -0.2361,0 -0.45396,-0.0908 -0.59923,-0.2542 -0.16339,-0.1634 -0.25421,-0.3995 -0.25421,-0.6356 0,-0.236 0.09082,-0.45386 0.27232,-0.59916 z"
|
||||
id="Shape"
|
||||
fill="#000000"
|
||||
stroke="none" />
|
||||
<path
|
||||
d="m 8.28458,13.1648 c 0,0.7445 -0.61735,1.3618 -1.36188,1.3618 -0.74452,0 -1.36187,-0.6173 -1.36187,-1.3618 0,-0.3087 -0.23609,-0.5448 -0.54478,-0.5448 -0.30868,0 -0.54478,0.2361 -0.54478,0.5448 0,1.3437 1.10766,2.4514 2.45143,2.4514 1.34378,0 2.45144,-1.1077 2.45144,-2.4514 0,-0.3087 -0.2361,-0.5448 -0.54478,-0.5448 -0.30869,0 -0.54478,0.2361 -0.54478,0.5448 z"
|
||||
id="Path"
|
||||
fill="#000000"
|
||||
fill-rule="evenodd"
|
||||
stroke="none" />
|
||||
</g>
|
||||
<path
|
||||
d="M 0,14.697 14,0.815972 Z"
|
||||
id="camera_off"
|
||||
fill="none"
|
||||
fill-rule="evenodd"
|
||||
stroke="#000000"
|
||||
stroke-width="1.1"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
75
linphone-app/assets/images/notifications_on_custom.svg
Normal file
75
linphone-app/assets/images/notifications_on_custom.svg
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="80"
|
||||
height="80"
|
||||
version="1.1"
|
||||
id="svg4"
|
||||
sodipodi:docname="unmute.svg"
|
||||
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs6">
|
||||
<sodipodi:namedview
|
||||
id="namedview15"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="3.2539063"
|
||||
inkscape:cx="-68.840336"
|
||||
inkscape:cy="2.1512605"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1043"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg4" />
|
||||
<rect
|
||||
width="15"
|
||||
height="16"
|
||||
id="artboard_1"
|
||||
x="0"
|
||||
y="0" />
|
||||
<clipPath
|
||||
id="clip_1">
|
||||
<use
|
||||
xlink:href="#artboard_1"
|
||||
clip-rule="evenodd"
|
||||
id="use3"
|
||||
x="0"
|
||||
y="0"
|
||||
width="100%"
|
||||
height="100%" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g
|
||||
id="notifs-inactif_alpha"
|
||||
clip-path="url(#clip_1)"
|
||||
transform="matrix(2.5614426,0,0,2.5614426,19.961774,20)">
|
||||
<g
|
||||
id="Group"
|
||||
transform="translate(0.9909363)">
|
||||
<g
|
||||
id="Group-21"
|
||||
filter="url(#filter_1)">
|
||||
<path
|
||||
d="m 0.549145,11.7847 c 0.363134,0.3632 0.853445,0.5629 1.379995,0.5629 H 11.9344 c 0.5265,0 1.0168,-0.1997 1.38,-0.5629 0.3813,-0.3814 0.5811,-0.8898 0.5628,-1.4163 C 13.8591,9.8236 13.6411,9.33329 13.2416,8.97016 L 12.7877,8.57068 C 12.606,8.40728 12.5153,8.1712 12.5153,7.93507 V 5.71976 C 12.5153,4.35789 11.9888,2.97789 11.099,1.90652 10.0459,0.671954 8.6296,0 7.06786,0 7.0134,0 6.97704,0 6.94069,0.0181126 6.88623,0 6.83176,0 6.79541,0 5.2338,0 3.79936,0.671824 2.78243,1.8884 1.87451,2.9597 1.36608,4.33983 1.36608,5.70164 v 2.21531 c 0,0.23609 -0.10893,0.47208 -0.27232,0.6356 L 0.639801,8.95204 C 0.240318,9.31517 0.0224514,9.80548 0.00419584,10.3503 -0.0320299,10.8949 0.167718,11.4033 0.549107,11.7847 Z M 1.34801,9.76916 1.80197,9.36968 C 2.20145,9.00654 2.43757,8.47989 2.43757,7.93524 V 5.71992 c 0,-2.85091 2.26979,-4.6122 4.35799,-4.6122 0.05447,0 0.09082,0 0.12717,-0.01811 0.03636,0.01811 0.09082,0.01811 0.12717,0.01811 2.08814,0 4.358,1.76135 4.358,4.6122 v 2.21532 c 0,0.54478 0.2361,1.0713 0.6356,1.43444 l 0.454,0.39948 c 0.1816,0.16339 0.2723,0.38134 0.2723,0.61734 0,0.2361 -0.0908,0.454 -0.2542,0.6356 -0.1453,0.1453 -0.3632,0.236 -0.5993,0.236 H 1.92929 c -0.2361,0 -0.45396,-0.0908 -0.59923,-0.2542 -0.16339,-0.1634 -0.25421,-0.3995 -0.25421,-0.6356 0,-0.236 0.09082,-0.45386 0.27232,-0.59916 z"
|
||||
id="Shape"
|
||||
fill="#000000"
|
||||
stroke="none" />
|
||||
<path
|
||||
d="m 8.28458,13.1648 c 0,0.7445 -0.61735,1.3618 -1.36188,1.3618 -0.74452,0 -1.36187,-0.6173 -1.36187,-1.3618 0,-0.3087 -0.23609,-0.5448 -0.54478,-0.5448 -0.30868,0 -0.54478,0.2361 -0.54478,0.5448 0,1.3437 1.10766,2.4514 2.45143,2.4514 1.34378,0 2.45144,-1.1077 2.45144,-2.4514 0,-0.3087 -0.2361,-0.5448 -0.54478,-0.5448 -0.30869,0 -0.54478,0.2361 -0.54478,0.5448 z"
|
||||
id="Path"
|
||||
fill="#000000"
|
||||
stroke="none" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
|
|
@ -1103,6 +1103,16 @@ Server url ikke konfigureret.</translation>
|
|||
<extracomment>'Schedule a meeting' : Item menu to schedule a meeting with the chat participants.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuDeactivate</source>
|
||||
<extracomment>'Disable notifications' : Item menu to disable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuActivate</source>
|
||||
<extracomment>'Enable notifications' : Item menu to enable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CreateAppSipAccount</name>
|
||||
|
|
|
|||
|
|
@ -1103,6 +1103,16 @@ Server URL ist nicht konfiguriert.</translation>
|
|||
<extracomment>'Schedule a meeting' : Item menu to schedule a meeting with the chat participants.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuDeactivate</source>
|
||||
<extracomment>'Disable notifications' : Item menu to disable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuActivate</source>
|
||||
<extracomment>'Enable notifications' : Item menu to enable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CreateAppSipAccount</name>
|
||||
|
|
|
|||
|
|
@ -1103,6 +1103,16 @@ Server URL not configured.</translation>
|
|||
<extracomment>'Schedule a meeting' : Item menu to schedule a meeting with the chat participants.</extracomment>
|
||||
<translation>Schedule a meeting</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuDeactivate</source>
|
||||
<extracomment>'Disable notifications' : Item menu to disable chat's notifications</extracomment>
|
||||
<translation>Disable notifications</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuActivate</source>
|
||||
<extracomment>'Enable notifications' : Item menu to enable chat's notifications</extracomment>
|
||||
<translation>Enable notifications</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CreateAppSipAccount</name>
|
||||
|
|
|
|||
|
|
@ -1103,6 +1103,16 @@ URL del servidor no configurada.</translation>
|
|||
<extracomment>'Schedule a meeting' : Item menu to schedule a meeting with the chat participants.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuDeactivate</source>
|
||||
<extracomment>'Disable notifications' : Item menu to disable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuActivate</source>
|
||||
<extracomment>'Enable notifications' : Item menu to enable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CreateAppSipAccount</name>
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>usernameStatusInvalidCharacters</source>
|
||||
<translation>Caractères invalides détectés (regex : `%1`).</translation>
|
||||
<translation>Caractères invalides détectés (regex : `%1`).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>usernameStatusInvalid</source>
|
||||
|
|
@ -189,7 +189,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<source>passwordStatusInvalidCharacters</source>
|
||||
<translation>Caractères invalides détectés (regex : `%1`).</translation>
|
||||
<translation>Caractères invalides détectés (regex : `%1`).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>passwordStatusMissingCharacters</source>
|
||||
|
|
@ -1103,6 +1103,16 @@ URL du serveur non configurée.</translation>
|
|||
<extracomment>'Schedule a meeting' : Item menu to schedule a meeting with the chat participants.</extracomment>
|
||||
<translation>Planifier une réunion</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuDeactivate</source>
|
||||
<extracomment>'Disable notifications' : Item menu to disable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuActivate</source>
|
||||
<extracomment>'Enable notifications' : Item menu to enable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CreateAppSipAccount</name>
|
||||
|
|
@ -1259,7 +1269,7 @@ URL du serveur non configurée.</translation>
|
|||
<message>
|
||||
<source>ephemeralNotInConference!</source>
|
||||
<extracomment>'Ephemeral message is only supported in conference based chat room!'</extracomment>
|
||||
<translation>Les messages éphémères ne sont disponibles que pour une conversation définie en mode conférence !</translation>
|
||||
<translation>Les messages éphémères ne sont disponibles que pour une conversation définie en mode conférence !</translation>
|
||||
<extra-Context>Warning about not being in conference based chat room.</extra-Context>
|
||||
</message>
|
||||
<message>
|
||||
|
|
@ -2066,7 +2076,7 @@ Cliquez ici : <a href="%1">%1</a>
|
|||
<message>
|
||||
<source>newConferenceScheduleTitle</source>
|
||||
<extracomment>'Would you like to schedule your meeting?' : Ask about setting the meeting as scheduled.</extracomment>
|
||||
<translation>Voulez-vous programmer cette réunion ?</translation>
|
||||
<translation>Voulez-vous programmer cette réunion ?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>newConferenceDate</source>
|
||||
|
|
@ -2535,12 +2545,12 @@ Cliquez ici : <a href="%1">%1</a>
|
|||
<message>
|
||||
<source>vfsDeactivation</source>
|
||||
<extracomment>'Are you sure to deactivate the encryption? The application will exit and all your data will be lost. You must delete them before using the application.' : Explanation to deactivate the VFS encryption.</extracomment>
|
||||
<translation>Êtes-vous certain de désactiver le chiffrement de l'application ? Elle redémarrera et toutes vos données seront perdues. Vous devez les supprimer avant d'utiliser l'application.</translation>
|
||||
<translation>Êtes-vous certain de désactiver le chiffrement de l'application ? Elle redémarrera et toutes vos données seront perdues. Vous devez les supprimer avant d'utiliser l'application.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>vfsActivation</source>
|
||||
<extracomment>'Are you sure to activate the encryption? You cannot revert without deleting ALL your data' : Explanation to activate the VFS encryption.</extracomment>
|
||||
<translation>Êtes-vous certain d'activer le chiffrement ? Cette action est irréversible sans perdre TOUTES vos données.</translation>
|
||||
<translation>Êtes-vous certain d'activer le chiffrement ? Cette action est irréversible sans perdre TOUTES vos données.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>cancel</source>
|
||||
|
|
@ -2809,7 +2819,7 @@ Cliquez ici : <a href="%1">%1</a>
|
|||
</message>
|
||||
<message>
|
||||
<source>serverTooltip</source>
|
||||
<translation>Serveur LDAP. ie : ldap:// pour un serveur local ou ldap://ldap.example.org/</translation>
|
||||
<translation>Serveur LDAP. ie : ldap:// pour un serveur local ou ldap://ldap.example.org/</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>bindDNLabel</source>
|
||||
|
|
@ -3755,7 +3765,7 @@ Cliquez ici : <a href="%1">%1</a>
|
|||
<message>
|
||||
<source>deleteTimeline</source>
|
||||
<extracomment>'Are you sure you want to delete and leave this timeline?'</extracomment>
|
||||
<translation>Êtes-vous certain de vouloir tout effacer et de quitter cette conversation ?</translation>
|
||||
<translation>Êtes-vous certain de vouloir tout effacer et de quitter cette conversation ?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>deleteTimelineTooltip</source>
|
||||
|
|
@ -3877,15 +3887,15 @@ Cliquez ici : <a href="%1">%1</a>
|
|||
<name>VfsUtils</name>
|
||||
<message>
|
||||
<source>Delete key failed: %1</source>
|
||||
<translation>Échec lors de la suppression de la clef : %1</translation>
|
||||
<translation>Échec lors de la suppression de la clef : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Read key failed: %1</source>
|
||||
<translation>Échec lors de la lecture de la clef : %1</translation>
|
||||
<translation>Échec lors de la lecture de la clef : %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Write key failed: %1</source>
|
||||
<translation>Échec lors de l'écriture de la clef : %1</translation>
|
||||
<translation>Échec lors de l'écriture de la clef : %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
|
|
|||
|
|
@ -1097,6 +1097,16 @@ A kiszolgáló URL-je nincs konfigurálva.</translation>
|
|||
<extracomment>'Schedule a meeting' : Item menu to schedule a meeting with the chat participants.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuDeactivate</source>
|
||||
<extracomment>'Disable notifications' : Item menu to disable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuActivate</source>
|
||||
<extracomment>'Enable notifications' : Item menu to enable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CreateAppSipAccount</name>
|
||||
|
|
|
|||
|
|
@ -1103,6 +1103,16 @@ URL del server non configurato.</translation>
|
|||
<extracomment>'Schedule a meeting' : Item menu to schedule a meeting with the chat participants.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuDeactivate</source>
|
||||
<extracomment>'Disable notifications' : Item menu to disable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuActivate</source>
|
||||
<extracomment>'Enable notifications' : Item menu to enable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CreateAppSipAccount</name>
|
||||
|
|
|
|||
|
|
@ -1097,6 +1097,16 @@
|
|||
<extracomment>'Schedule a meeting' : Item menu to schedule a meeting with the chat participants.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuDeactivate</source>
|
||||
<extracomment>'Disable notifications' : Item menu to disable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuActivate</source>
|
||||
<extracomment>'Enable notifications' : Item menu to enable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CreateAppSipAccount</name>
|
||||
|
|
|
|||
|
|
@ -1109,6 +1109,16 @@ Nesukonfigūruotas serverio url.</translation>
|
|||
<extracomment>'Schedule a meeting' : Item menu to schedule a meeting with the chat participants.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuDeactivate</source>
|
||||
<extracomment>'Disable notifications' : Item menu to disable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuActivate</source>
|
||||
<extracomment>'Enable notifications' : Item menu to enable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CreateAppSipAccount</name>
|
||||
|
|
|
|||
|
|
@ -1103,6 +1103,16 @@ URL do servidor não configurado.</translation>
|
|||
<extracomment>'Schedule a meeting' : Item menu to schedule a meeting with the chat participants.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuDeactivate</source>
|
||||
<extracomment>'Disable notifications' : Item menu to disable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuActivate</source>
|
||||
<extracomment>'Enable notifications' : Item menu to enable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CreateAppSipAccount</name>
|
||||
|
|
|
|||
|
|
@ -1109,6 +1109,16 @@
|
|||
<extracomment>'Schedule a meeting' : Item menu to schedule a meeting with the chat participants.</extracomment>
|
||||
<translation>Запланировать встречу</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuDeactivate</source>
|
||||
<extracomment>'Disable notifications' : Item menu to disable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuActivate</source>
|
||||
<extracomment>'Enable notifications' : Item menu to enable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CreateAppSipAccount</name>
|
||||
|
|
|
|||
|
|
@ -1103,6 +1103,16 @@ Serverwebbadressen är inte konfigurerad.</translation>
|
|||
<extracomment>'Schedule a meeting' : Item menu to schedule a meeting with the chat participants.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuDeactivate</source>
|
||||
<extracomment>'Disable notifications' : Item menu to disable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuActivate</source>
|
||||
<extracomment>'Enable notifications' : Item menu to enable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CreateAppSipAccount</name>
|
||||
|
|
|
|||
|
|
@ -1097,6 +1097,16 @@ Sunucu url'si yapılandırılmadı.</translation>
|
|||
<extracomment>'Schedule a meeting' : Item menu to schedule a meeting with the chat participants.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuDeactivate</source>
|
||||
<extracomment>'Disable notifications' : Item menu to disable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuActivate</source>
|
||||
<extracomment>'Enable notifications' : Item menu to enable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CreateAppSipAccount</name>
|
||||
|
|
|
|||
|
|
@ -1109,6 +1109,16 @@
|
|||
<extracomment>'Schedule a meeting' : Item menu to schedule a meeting with the chat participants.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuDeactivate</source>
|
||||
<extracomment>'Disable notifications' : Item menu to disable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuActivate</source>
|
||||
<extracomment>'Enable notifications' : Item menu to enable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CreateAppSipAccount</name>
|
||||
|
|
|
|||
|
|
@ -1097,6 +1097,16 @@
|
|||
<extracomment>'Schedule a meeting' : Item menu to schedule a meeting with the chat participants.</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuDeactivate</source>
|
||||
<extracomment>'Disable notifications' : Item menu to disable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>conversationMenuActivate</source>
|
||||
<extracomment>'Enable notifications' : Item menu to enable chat's notifications</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CreateAppSipAccount</name>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
nsis_banner should be in old format.
|
||||
file nsis_banner.bmp => "PC bitmap, Windows 98/2000 and newer format" is not good.
|
||||
|
||||
|
||||
convert nsis_banner.bmp BMP3:nsis_banner.bmp
|
||||
file nsis_banner.bmp => "PC bitmap, Windows 3.x format" OK
|
||||
|
|
@ -121,6 +121,8 @@
|
|||
<file>assets/images/move_to_bottom_custom.svg</file>
|
||||
<file>assets/images/new_call_custom.svg</file>
|
||||
<file>assets/images/new_chat_group_custom.svg</file>
|
||||
<file>assets/images/notifications_off_custom.svg</file>
|
||||
<file>assets/images/notifications_on_custom.svg</file>
|
||||
<file>assets/images/options_custom.svg</file>
|
||||
<file>assets/images/outgoing_call_custom.svg</file>
|
||||
<file>assets/images/panel_arrow_custom.svg</file>
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@
|
|||
#include <QElapsedTimer>
|
||||
#include <QFileInfo>
|
||||
#include <QMimeDatabase>
|
||||
#include <QSettings>
|
||||
#include <QTimer>
|
||||
#include <QUuid>
|
||||
#include <QMessageBox>
|
||||
|
|
@ -486,6 +487,14 @@ bool ChatRoomModel::isUpdating() const{
|
|||
return getState() == LinphoneEnums::ChatRoomStateCreationPending || getState() == LinphoneEnums::ChatRoomStateTerminationPending;
|
||||
}
|
||||
|
||||
bool ChatRoomModel::isNotificationsEnabled() const{
|
||||
auto id = getChatRoomId();
|
||||
QSettings settings;
|
||||
settings.beginGroup("chatrooms");
|
||||
settings.beginGroup(id);
|
||||
return settings.value("notifications", true).toBool();
|
||||
}
|
||||
|
||||
std::shared_ptr<linphone::ChatRoom> ChatRoomModel::getChatRoom(){
|
||||
return mChatRoom;
|
||||
}
|
||||
|
|
@ -601,6 +610,16 @@ void ChatRoomModel::enableMarkAsRead(const bool& enable){
|
|||
emit markAsReadEnabledChanged();
|
||||
}
|
||||
}
|
||||
void ChatRoomModel::enableNotifications(const bool& enable){
|
||||
if(enable != isNotificationsEnabled()){
|
||||
auto id = getChatRoomId();
|
||||
QSettings settings;
|
||||
settings.beginGroup("chatrooms");
|
||||
settings.beginGroup(id);
|
||||
settings.setValue("notifications", enable);
|
||||
notificationsEnabledChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void ChatRoomModel::setReply(ChatMessageModel * model){
|
||||
if(model != mReplyModel.get()){
|
||||
|
|
@ -1166,6 +1185,20 @@ void ChatRoomModel::insertNotices (const QList<std::shared_ptr<linphone::EventLo
|
|||
}
|
||||
}
|
||||
|
||||
QString ChatRoomModel::getChatRoomId()const{
|
||||
return getChatRoomId(getLocalAddress(), getPeerAddress());
|
||||
}
|
||||
|
||||
QString ChatRoomModel::getChatRoomId(const QString& localAddress, const QString& remoteAddress){
|
||||
return localAddress + "~"+remoteAddress;
|
||||
}
|
||||
|
||||
QString ChatRoomModel::getChatRoomId(const std::shared_ptr<linphone::ChatRoom>& chatRoom){
|
||||
auto localAddress = chatRoom->getLocalAddress()->clone();
|
||||
localAddress->clean();
|
||||
return getChatRoomId(Utils::coreStringToAppString(localAddress->asStringUriOnly()), (chatRoom->getPeerAddress() ? Utils::coreStringToAppString(chatRoom->getPeerAddress()->asStringUriOnly()) : ""));
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
/*
|
||||
void ChatRoomModel::removeUnreadMessagesNotice() {
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@ public:
|
|||
Q_PROPERTY(bool ephemeralEnabled READ isEphemeralEnabled WRITE setEphemeralEnabled NOTIFY ephemeralEnabledChanged)
|
||||
Q_PROPERTY(bool canBeEphemeral READ canBeEphemeral NOTIFY canBeEphemeralChanged)
|
||||
Q_PROPERTY(bool markAsReadEnabled READ markAsReadEnabled WRITE enableMarkAsRead NOTIFY markAsReadEnabledChanged)
|
||||
Q_PROPERTY(bool notificationsEnabled READ isNotificationsEnabled WRITE enableNotifications NOTIFY notificationsEnabledChanged)
|
||||
|
||||
Q_PROPERTY(ParticipantListModel* participants READ getParticipantListModel CONSTANT)
|
||||
|
||||
|
|
@ -139,6 +140,7 @@ public:
|
|||
bool isEntriesLoading() const;
|
||||
bool isBasic() const;
|
||||
bool isUpdating() const;
|
||||
bool isNotificationsEnabled() const;
|
||||
|
||||
ParticipantListModel* getParticipantListModel() const;
|
||||
std::list<std::shared_ptr<linphone::Participant>> getParticipants(const bool& withMe = true) const;
|
||||
|
|
@ -159,6 +161,7 @@ public:
|
|||
void setEphemeralEnabled(bool enabled);
|
||||
void setEphemeralLifetime(long lifetime);
|
||||
void enableMarkAsRead(const bool& enable);
|
||||
void enableNotifications(const bool& enable);
|
||||
|
||||
void setReply(ChatMessageModel * model);
|
||||
ChatMessageModel * getReply()const;
|
||||
|
|
@ -206,6 +209,10 @@ public:
|
|||
void insertNotice (const std::shared_ptr<linphone::EventLog> &enventLog);
|
||||
void insertNotices (const QList<std::shared_ptr<linphone::EventLog>> &eventLogs);
|
||||
|
||||
QString getChatRoomId()const;
|
||||
static QString getChatRoomId(const QString& localAddress, const QString& remoteAddress);
|
||||
static QString getChatRoomId(const std::shared_ptr<linphone::ChatRoom>& chatRoom); // For convenience
|
||||
|
||||
//-------------------- CHAT ROOM HANDLER
|
||||
|
||||
public slots:
|
||||
|
|
@ -279,6 +286,7 @@ signals:
|
|||
void chatRoomDeleted();// Must be connected with DirectConnection mode
|
||||
void replyChanged();
|
||||
void updatingChanged();
|
||||
void notificationsEnabledChanged();
|
||||
|
||||
// Chat Room listener callbacks
|
||||
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include <QMutex>
|
||||
#include <QtDebug>
|
||||
#include <QSettings>
|
||||
#include <QThread>
|
||||
#include <QTimer>
|
||||
|
||||
|
|
@ -223,7 +224,9 @@ void CoreHandlers::onMessagesReceived (
|
|||
SettingsModel *settingsModel = coreManager->getSettingsModel();
|
||||
const App *app = App::getInstance();
|
||||
QStringList notNotifyReasons;
|
||||
QSettings appSettings;
|
||||
|
||||
appSettings.beginGroup("chatrooms");
|
||||
for(auto message : messages){
|
||||
if( !message || message->isOutgoing() )
|
||||
continue;
|
||||
|
|
@ -235,7 +238,16 @@ void CoreHandlers::onMessagesReceived (
|
|||
|| chatRoom->getCurrentParams()->getEncryptionBackend() != linphone::ChatRoomEncryptionBackend::None && !settingsModel->getSecureChatEnabled())
|
||||
continue;
|
||||
|
||||
// 2. Notify with Notification popup.
|
||||
// 2. Do not notify if the chatroom's notification has been deactivated.
|
||||
appSettings.beginGroup(ChatRoomModel::getChatRoomId(chatRoom));
|
||||
if(!appSettings.value("notifications", true).toBool()){
|
||||
appSettings.endGroup();
|
||||
continue;
|
||||
}else{
|
||||
appSettings.endGroup();
|
||||
}
|
||||
|
||||
// 3. Notify with Notification popup.
|
||||
if (coreManager->getSettingsModel()->getChatNotificationsEnabled()
|
||||
&& (!app->hasFocus() || !Utils::isMe(chatRoom->getLocalAddress()))
|
||||
&& !message->isRead())// On aggregation, the list can contains already displayed messages.
|
||||
|
|
|
|||
|
|
@ -47,7 +47,10 @@ QtObject {
|
|||
property QtObject scheduleMeeting: QtObject {
|
||||
property string icon : 'meetings_custom'
|
||||
}
|
||||
|
||||
property QtObject notifications: QtObject {
|
||||
property string off : 'notifications_off_custom'
|
||||
property string on : 'notifications_on_custom'
|
||||
}
|
||||
property QtObject contact: QtObject {
|
||||
property string add : 'contact_add_custom'
|
||||
property string view : 'contact_view_custom'
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ Item {
|
|||
iconSizeMenu: MenuItemStyle.entry.iconSize
|
||||
iconLayoutDirection: Qt.RightToLeft
|
||||
menuItemStyle : MenuItemStyle.aux
|
||||
visible: !chatMessageModel.isOutgoing
|
||||
visible: container.chatMessageModel && !container.chatMessageModel.isOutgoing
|
||||
onTriggered: container.isContact ? container.viewContactClicked(container.chatMessageModel.fromSipAddress) : container.addContactClicked(container.chatMessageModel.fromSipAddress)
|
||||
}
|
||||
MenuItem {
|
||||
|
|
|
|||
|
|
@ -50,7 +50,6 @@ Rectangle {
|
|||
anchors {
|
||||
fill: parent
|
||||
leftMargin: ContactStyle.leftMargin
|
||||
rightMargin: ContactStyle.rightMargin
|
||||
}
|
||||
spacing: 0
|
||||
|
||||
|
|
@ -138,11 +137,9 @@ Rectangle {
|
|||
|
||||
ContactMessageCounter {
|
||||
Layout.alignment: Qt.AlignTop
|
||||
|
||||
count: entry?Number(entry.unreadMessagesCount) + Number(entry.missedCallsCount):0
|
||||
isComposing: Boolean(entry && entry.composers && entry.composers.length > 0)
|
||||
|
||||
visible: entry?(entry.unreadMessagesCount !== null || entry.missedCallsCount !== null) && item.displayUnreadMessageCount:false
|
||||
Layout.preferredWidth: count > 0 && visible ? implicitWidth : 0
|
||||
entry: item.entry
|
||||
displayCounter: item.displayUnreadMessageCount
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,10 +11,13 @@ Item {
|
|||
id: messageCounter
|
||||
|
||||
property alias count: counterIcon.count
|
||||
property bool isComposing
|
||||
property var entry
|
||||
property bool isComposing: Boolean(entry && entry.composers && entry.composers.length > 0)
|
||||
property bool displayCounter: true
|
||||
|
||||
implicitHeight: counterIcon.height + ContactMessageCounterStyle.verticalMargins * 2
|
||||
implicitWidth: counterIcon.width + ContactMessageCounterStyle.horizontalMargins * 2
|
||||
visible: count > 0 ?(entry.unreadMessagesCount !== null || entry.missedCallsCount !== null) && displayCounter:false
|
||||
|
||||
MessageCounter {
|
||||
id: counterIcon
|
||||
|
|
@ -27,6 +30,8 @@ Item {
|
|||
? ('chat_is_composing_' + counterIcon.composingIndex)
|
||||
: 'chat_count'
|
||||
visible: messageCounter.count > 0 || messageCounter.isComposing
|
||||
|
||||
count: messageCounter.entry?Number(messageCounter.entry.unreadMessagesCount) + Number(messageCounter.entry.missedCallsCount):0
|
||||
|
||||
Timer {
|
||||
interval: 500
|
||||
|
|
|
|||
|
|
@ -6,5 +6,5 @@ import QtQml 2.2
|
|||
|
||||
QtObject {
|
||||
property int horizontalMargins: 0
|
||||
property int verticalMargins: 10
|
||||
property int verticalMargins: 5
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,15 @@ import ColorsList 1.0
|
|||
QtObject {
|
||||
property string sectionName: 'Timeline'
|
||||
property var colorModel: ColorsList.add(sectionName+'_bg', 'q')
|
||||
property QtObject status: QtObject{
|
||||
property int iconSize : 30
|
||||
}
|
||||
|
||||
property QtObject disabledNotifications: QtObject{
|
||||
property string icon: 'notifications_off_custom'
|
||||
property var colorModel: ColorsList.addImageColor(sectionName+'_disabledNotifications', icon, 'ad')
|
||||
property var selectedColorModel: ColorsList.addImageColor(sectionName+'_disabledNotifications_c', icon, 'q')
|
||||
}
|
||||
|
||||
property QtObject ephemeralTimer: QtObject{
|
||||
property string icon: 'timer_custom'
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import 'Timeline.js' as Logic
|
|||
import 'qrc:/ui/scripts/Utils/utils.js' as Utils
|
||||
|
||||
// =============================================================================
|
||||
Item {
|
||||
Rectangle {
|
||||
id: mainItem
|
||||
property TimelineModel timelineModel
|
||||
property bool optionsToggled: false
|
||||
|
|
@ -46,61 +46,106 @@ Item {
|
|||
]
|
||||
enabled: !contactView.showBusyIndicator
|
||||
|
||||
|
||||
Contact {
|
||||
id: contactView
|
||||
property bool isSelected: mainItem.timelineModel != undefined && mainItem.timelineModel.selected //view.currentIndex === index
|
||||
|
||||
height: mainItem.height
|
||||
width: mainItem.width
|
||||
color: isSelected
|
||||
color: contactView.isSelected
|
||||
? TimelineStyle.contact.backgroundColor.selected.color
|
||||
: (
|
||||
mainItem.modelIndex % 2 == 0
|
||||
? TimelineStyle.contact.backgroundColor.a.color
|
||||
: TimelineStyle.contact.backgroundColor.b.color
|
||||
)
|
||||
displayUnreadMessageCount: SettingsModel.standardChatEnabled || SettingsModel.secureChatEnabled
|
||||
entry: mainItem.timelineModel && mainItem.timelineModel.chatRoomModel
|
||||
|
||||
property var subtitleSelectedColors: TimelineStyle.contact.subtitle.color.selected
|
||||
property var subtitleNormalColors: TimelineStyle.contact.subtitle.color.normal
|
||||
property var titleSelectedColors: TimelineStyle.contact.title.color.selected
|
||||
property var titleNormalColors: TimelineStyle.contact.title.color.normal
|
||||
|
||||
subtitleColor: isSelected
|
||||
? subtitleSelectedColors.color
|
||||
: subtitleNormalColors.color
|
||||
titleColor: isSelected
|
||||
? titleSelectedColors.color
|
||||
: titleNormalColors.color
|
||||
showSubtitle: mainItem.timelineModel && (mainItem.timelineModel.chatRoomModel && (mainItem.timelineModel.chatRoomModel.isOneToOne || !mainItem.timelineModel.chatRoomModel.isConference))
|
||||
showBusyIndicator: mainItem.timelineModel && mainItem.timelineModel.updating
|
||||
TooltipArea {
|
||||
id: contactTooltip
|
||||
text: mainItem.timelineModel && UtilsCpp.toDateTimeString(mainItem.timelineModel.chatRoomModel.lastUpdateTime)
|
||||
isClickable: true
|
||||
|
||||
RowLayout{
|
||||
anchors.fill: parent
|
||||
anchors.rightMargin: 5
|
||||
spacing: 0
|
||||
Contact {
|
||||
id: contactView
|
||||
property bool isSelected: mainItem.timelineModel != undefined && mainItem.timelineModel.selected //view.currentIndex === index
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
color: isSelected
|
||||
? TimelineStyle.contact.backgroundColor.selected.color
|
||||
: (
|
||||
mainItem.modelIndex % 2 == 0
|
||||
? TimelineStyle.contact.backgroundColor.a.color
|
||||
: TimelineStyle.contact.backgroundColor.b.color
|
||||
)
|
||||
displayUnreadMessageCount: false
|
||||
entry: mainItem.timelineModel && mainItem.timelineModel.chatRoomModel
|
||||
|
||||
property var subtitleSelectedColors: TimelineStyle.contact.subtitle.color.selected
|
||||
property var subtitleNormalColors: TimelineStyle.contact.subtitle.color.normal
|
||||
property var titleSelectedColors: TimelineStyle.contact.title.color.selected
|
||||
property var titleNormalColors: TimelineStyle.contact.title.color.normal
|
||||
|
||||
subtitleColor: isSelected
|
||||
? subtitleSelectedColors.color
|
||||
: subtitleNormalColors.color
|
||||
titleColor: isSelected
|
||||
? titleSelectedColors.color
|
||||
: titleNormalColors.color
|
||||
showSubtitle: mainItem.timelineModel && (mainItem.timelineModel.chatRoomModel && (mainItem.timelineModel.chatRoomModel.isOneToOne || !mainItem.timelineModel.chatRoomModel.isConference))
|
||||
showBusyIndicator: mainItem.timelineModel && mainItem.timelineModel.updating
|
||||
TooltipArea {
|
||||
id: contactTooltip
|
||||
text: mainItem.timelineModel && UtilsCpp.toDateTimeString(mainItem.timelineModel.chatRoomModel.lastUpdateTime)
|
||||
isClickable: true
|
||||
}
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
||||
propagateComposedEvents: true
|
||||
preventStealing: false
|
||||
onClicked: {
|
||||
if(mouse.button == Qt.LeftButton){
|
||||
mainItem.timelineModel.selected = true
|
||||
}else{
|
||||
mainItem.optionsToggled = !mainItem.optionsToggled
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Icon{
|
||||
icon: TimelineStyle.ephemeralTimer.icon
|
||||
iconSize: TimelineStyle.ephemeralTimer.iconSize
|
||||
overwriteColor: mainItem.timelineModel && mainItem.timelineModel.selected ? TimelineStyle.ephemeralTimer.selectedTimerColor.color : TimelineStyle.ephemeralTimer.timerColor.color
|
||||
anchors.right:parent.right
|
||||
anchors.bottom:parent.bottom
|
||||
anchors.bottomMargin: 7
|
||||
anchors.rightMargin: 7
|
||||
visible: mainItem.timelineModel && mainItem.timelineModel.chatRoomModel.ephemeralEnabled
|
||||
}
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
||||
propagateComposedEvents: true
|
||||
preventStealing: false
|
||||
onClicked: {
|
||||
if(mouse.button == Qt.LeftButton){
|
||||
mainItem.timelineModel.selected = true
|
||||
}else{
|
||||
mainItem.optionsToggled = !mainItem.optionsToggled
|
||||
ColumnLayout{
|
||||
spacing: 0
|
||||
Layout.maximumWidth: statusLayout.count > 0 || unreadMessageCounter.visible ? -1 : 0
|
||||
Layout.fillHeight: true
|
||||
RowLayout{
|
||||
Layout.alignment: Qt.AlignTop | Qt.AlignRight
|
||||
Layout.fillHeight: true
|
||||
spacing: 0
|
||||
ContactMessageCounter {
|
||||
id: unreadMessageCounter
|
||||
Layout.alignment: Qt.AlignTop
|
||||
Layout.preferredWidth: implicitWidth
|
||||
Layout.preferredHeight: implicitHeight
|
||||
Layout.rightMargin: 9
|
||||
displayCounter: SettingsModel.standardChatEnabled || SettingsModel.secureChatEnabled
|
||||
entry: contactView.entry
|
||||
}
|
||||
}
|
||||
RowLayout{
|
||||
id: statusLayout
|
||||
property int count : (ephemeralIcon.visible ? 1 : 0) + (notificationsIcon.visible ? 1 : 0)
|
||||
spacing: 0
|
||||
Layout.alignment: Qt.AlignBottom | Qt.AlignRight
|
||||
Layout.preferredHeight: TimelineStyle.status.iconSize
|
||||
Icon{
|
||||
id: notificationsIcon
|
||||
Layout.preferredHeight: TimelineStyle.status.iconSize
|
||||
Layout.preferredWidth: TimelineStyle.status.iconSize
|
||||
icon: TimelineStyle.disabledNotifications.icon
|
||||
iconSize: TimelineStyle.status.iconSize
|
||||
overwriteColor: mainItem.timelineModel && mainItem.timelineModel.selected ? TimelineStyle.disabledNotifications.selectedColorModel.color : TimelineStyle.disabledNotifications.colorModel.color
|
||||
visible: mainItem.timelineModel && !mainItem.timelineModel.chatRoomModel.notificationsEnabled
|
||||
}
|
||||
Icon{
|
||||
id: ephemeralIcon
|
||||
Layout.preferredHeight: TimelineStyle.status.iconSize
|
||||
Layout.preferredWidth: TimelineStyle.status.iconSize
|
||||
icon: TimelineStyle.ephemeralTimer.icon
|
||||
iconSize: TimelineStyle.status.iconSize
|
||||
overwriteColor: mainItem.timelineModel && mainItem.timelineModel.selected ? TimelineStyle.ephemeralTimer.selectedTimerColor.color : TimelineStyle.ephemeralTimer.timerColor.color
|
||||
visible: mainItem.timelineModel && mainItem.timelineModel.chatRoomModel.ephemeralEnabled
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ CodecsViewer 1.0 Codecs/CodecsViewer.qml
|
|||
Avatar 1.0 Contact/Avatar.qml
|
||||
Contact 1.0 Contact/Contact.qml
|
||||
ContactDescription 1.0 Contact/ContactDescription.qml
|
||||
ContactMessageCounter 1.0 Contact/ContactMessageCounter.qml
|
||||
|
||||
SipAddressDialog 1.0 Dialog/SipAddressDialog.qml
|
||||
MultimediaParametersDialog 1.0 Dialog/MultimediaParametersDialog.qml
|
||||
|
|
|
|||
|
|
@ -507,7 +507,28 @@ ColumnLayout {
|
|||
height:visible ? 1 : 0
|
||||
width:parent.width
|
||||
color: ConversationStyle.menu.separatorColor.color
|
||||
visible: deleteMenuItem.visible && (contactMenu.visible || groupInfoMenu.visible || devicesMenuItem.visible || ephemeralMenuItem.visible || scheduleMeetingMenuItem.visible)
|
||||
visible: muteMenuItem.visible && (contactMenu.visible || groupInfoMenu.visible || devicesMenuItem.visible || ephemeralMenuItem.visible || scheduleMeetingMenuItem.visible)
|
||||
}
|
||||
MenuItem{
|
||||
id: muteMenuItem
|
||||
text: chatRoomModel.notificationsEnabled
|
||||
//: 'Disable notifications' : Item menu to disable chat's notifications
|
||||
? qsTr('conversationMenuDeactivate')
|
||||
//: 'Enable notifications' : Item menu to enable chat's notifications
|
||||
: qsTr('conversationMenuActivate')
|
||||
iconMenu: chatRoomModel.notificationsEnabled ? MenuItemStyle.notifications.off : MenuItemStyle.notifications.on
|
||||
iconSizeMenu: 40
|
||||
menuItemStyle : MenuItemStyle.aux2
|
||||
onTriggered: {
|
||||
chatRoomModel.notificationsEnabled = !chatRoomModel.notificationsEnabled
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle{
|
||||
height:visible ? 1 : 0
|
||||
width:parent.width
|
||||
color: ConversationStyle.menu.separatorColor.color
|
||||
visible: deleteMenuItem.visible && (contactMenu.visible || groupInfoMenu.visible || devicesMenuItem.visible || ephemeralMenuItem.visible || scheduleMeetingMenuItem.visible || muteMenuItem.visible)
|
||||
}
|
||||
MenuItem{
|
||||
id: deleteMenuItem
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue