OUT-119: Update keysync UI.
authorDean
Mon, 31 Oct 2016 14:32:21 +0100
changeset 1402 4322d0b8e8ed
parent 1401 adcecae3eefa
child 1403 2227d470a0b3
OUT-119: Update keysync UI.
AdapterCallbacks.cs
Properties/Resources.Designer.cs
Properties/Resources.ca.resx
Properties/Resources.de.resx
Properties/Resources.es.resx
Properties/Resources.fr.resx
Properties/Resources.it.resx
Properties/Resources.resx
Properties/Resources.tr.resx
UI/FormControlCrashReport.xaml.cs
UI/FormControlHandshake.xaml
UI/FormControlHandshake.xaml.cs
UI/FormControlManagePrivacyStatus.xaml.cs
UI/FormControlOptions.xaml.cs
UI/FormControlPrivacyStatus.xaml.cs
UI/FormHandshake.Designer.cs
UI/FormHandshake.cs
UI/FormRegionPrivacyStatus.cs
--- a/AdapterCallbacks.cs	Fri Oct 28 18:35:57 2016 +0200
+++ b/AdapterCallbacks.cs	Mon Oct 31 14:32:21 2016 +0100
@@ -39,6 +39,13 @@
             ownIdentity = new PEPIdentity(ThisAddIn.PEPEngine.UpdateIdentity(own));
             partnerIdentity = new PEPIdentity(ThisAddIn.PEPEngine.UpdateIdentity(partner));
 
+            // Only the partner color is shown in the UI so get the rating
+            try
+            {
+                partnerIdentity.Rating = ThisAddIn.PEPEngine.IdentityRating(partnerIdentity.ToCOMType());
+            }
+            catch { }
+
             // Create settings
             state = new FormControlHandshake.State(ownIdentity,
                                                    partnerIdentity,
--- a/Properties/Resources.Designer.cs	Fri Oct 28 18:35:57 2016 +0200
+++ b/Properties/Resources.Designer.cs	Mon Oct 31 14:32:21 2016 +0100
@@ -165,15 +165,6 @@
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to Handshake.
-        /// </summary>
-        internal static string Handshake_FormText {
-            get {
-                return ResourceManager.GetString("Handshake_FormText", resourceCulture);
-            }
-        }
-        
-        /// <summary>
         ///   Looks up a localized string similar to Myself.
         /// </summary>
         internal static string Handshake_MyselfText {
@@ -201,8 +192,25 @@
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to You are about to add a device to your p≡p device group.
-        ///Confirm by successfully verifying the following Trustwords..
+        ///   Looks up a localized string similar to Handshake.
+        /// </summary>
+        internal static string Handshake_StandardFormText {
+            get {
+                return ResourceManager.GetString("Handshake_StandardFormText", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to p≡p Device Group.
+        /// </summary>
+        internal static string Handshake_SyncFormText {
+            get {
+                return ResourceManager.GetString("Handshake_SyncFormText", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to You are about to add a device to your p≡p device group. Confirm by successfully verifying the following Trustwords..
         /// </summary>
         internal static string Handshake_SyncTypeAExplanationText {
             get {
--- a/Properties/Resources.ca.resx	Fri Oct 28 18:35:57 2016 +0200
+++ b/Properties/Resources.ca.resx	Mon Oct 31 14:32:21 2016 +0100
@@ -144,13 +144,10 @@
   <data name="Handshake_ConfirmTrustwordsText" xml:space="preserve">
     <value>Pregunta al teu interlocutor quines són les seves Trustwords. La resposta correcta es mostra a continuació.</value>
   </data>
-  <data name="Handshake_StandardExplanationText" xml:space="preserve">
-    <value>La comunicació amb l'usuari serà més segura si realitzes l'intercanvi de Trustwords. Perquè aquest intercanvi sigui vàlid és necessari que tu i el teu interlocutor veieu Trustwords idèntiques.</value>
-  </data>
   <data name="Handshake_FingerprintText" xml:space="preserve">
     <value>Empremta PGP</value>
   </data>
-  <data name="Handshake_FormText" xml:space="preserve">
+  <data name="Handshake_StandardFormText" xml:space="preserve">
     <value>Handshake</value>
   </data>
   <data name="Handshake_MyselfText" xml:space="preserve">
@@ -159,6 +156,9 @@
   <data name="Handshake_PartnerText" xml:space="preserve">
     <value>Interlocutor/a</value>
   </data>
+  <data name="Handshake_StandardExplanationText" xml:space="preserve">
+    <value>La comunicació amb l'usuari serà més segura si realitzes l'intercanvi de Trustwords. Perquè aquest intercanvi sigui vàlid és necessari que tu i el teu interlocutor veieu Trustwords idèntiques.</value>
+  </data>
   <data name="Handshake_TrustwordsFullText" xml:space="preserve">
     <value>Estesa</value>
   </data>
@@ -222,6 +222,9 @@
   <data name="Message_InitError" xml:space="preserve">
     <value>No es pot inicialitzar el motor p≡p:</value>
   </data>
+  <data name="Message_NeedReopen" xml:space="preserve">
+    <value>Canviar aquest valor requereix reobrir el missatge. Estàs segur/a que vols continuar?</value>
+  </data>
   <data name="Message_Open" xml:space="preserve">
     <value>Obrir</value>
   </data>
@@ -268,9 +271,21 @@
   <data name="Message_WarningSecurityLoss" xml:space="preserve">
     <value>Estàs a punt de re-enviar un missatge segur com a no segur. Si decideixes continuar, informació confidencial podria ser filtrada posant-te a tu i les persones involucrades en aquesta comunicació en perill. Segur que desitges continuar?</value>
   </data>
+  <data name="Options_AccountIsPEPEnabledText" xml:space="preserve">
+    <value>Activar protecció de privadesa</value>
+  </data>
+  <data name="Options_AccountIsSecureStorageEnabledText" xml:space="preserve">
+    <value>Emmagatzema missatges de forma segura</value>
+  </data>
   <data name="Options_AutoUpdateOffWarningText" xml:space="preserve">
     <value>Alerta: Tens les actualitzacions automàtiques deshabilitades. Habilita-les per a les actualitzacions de seguretat i altres funcionalitats.</value>
   </data>
+  <data name="Options_BlacklistEnteredFingerprintText" xml:space="preserve">
+    <value>Introduir empremta a buscar o afegir</value>
+  </data>
+  <data name="Options_BlacklistSearchNoResultsText" xml:space="preserve">
+    <value>No s’han trobat resultats</value>
+  </data>
   <data name="Options_CancelText" xml:space="preserve">
     <value>Cancel·lar</value>
   </data>
@@ -286,12 +301,21 @@
   <data name="Options_IsAutoUpdateEnabledText" xml:space="preserve">
     <value>Descarrega i instal·la automàticament les actualitzacions</value>
   </data>
+  <data name="Options_IsEncryptAllAccountsEnabledText" xml:space="preserve">
+    <value>Emmagatzema missatges de forma segura per a totes les comptes</value>
+  </data>
   <data name="Options_IsKeyServerUsedText" xml:space="preserve">
     <value>Cercar claus al servidor de claus</value>
   </data>
+  <data name="Options_IsNeverUnsecureOptionVisibleText" xml:space="preserve">
+    <value>Mostrar l’opció de l’emmagatzematge protegit</value>
+  </data>
   <data name="Options_IsPEPFolderVisibleText" xml:space="preserve">
     <value>Mostrar el compte 'pEp' al panell de navegació</value>
   </data>
+  <data name="Options_IsSecurityLossWarningEnabledText" xml:space="preserve">
+    <value>Mostrar un avís quan es reenvii o respongui un missatge segur de forma insegura.</value>
+  </data>
   <data name="Options_IsTNEFDisabledText" xml:space="preserve">
     <value>Deshabilitar format de missatge TNEF</value>
   </data>
@@ -307,6 +331,9 @@
   <data name="Options_LogOutlookText" xml:space="preserve">
     <value>Registre</value>
   </data>
+  <data name="Options_LogRefreshText" xml:space="preserve">
+    <value>Actualitzar el registre</value>
+  </data>
   <data name="Options_OKText" xml:space="preserve">
     <value>D’acord</value>
   </data>
@@ -349,9 +376,6 @@
   <data name="Options_PEPWebAddress" xml:space="preserve">
     <value>www.prettyeasyprivacy.com</value>
   </data>
-  <data name="Options_LogRefreshText" xml:space="preserve">
-    <value>Actualitzar el registre</value>
-  </data>
   <data name="Options_ResetPEPStoreText" xml:space="preserve">
     <value>Resetejar la carpeta pEp.pst</value>
   </data>
@@ -364,6 +388,15 @@
   <data name="PrivacyStatus_HandshakeAdvanced" xml:space="preserve">
     <value>Avançat…</value>
   </data>
+  <data name="PrivacyStatus_RatingBrokenExplanation" xml:space="preserve">
+    <value>Aquest missatge té el format o el xifratge trencats.</value>
+  </data>
+  <data name="PrivacyStatus_RatingBrokenSuggestion" xml:space="preserve">
+    <value>El remitent o el destinatari haurien de reenviar el missatge.</value>
+  </data>
+  <data name="PrivacyStatus_RatingBrokenText" xml:space="preserve">
+    <value>Error</value>
+  </data>
   <data name="PrivacyStatus_RatingHaveNoKeyExplanation" xml:space="preserve">
     <value>No s’ha pogut desxifrar el missatge perquè la clau no està disponible.</value>
     <comment>No s'ha trovat la clau per poder desxifrar el missatge.</comment>
@@ -505,33 +538,6 @@
   <data name="Ribbon_GroupCompatibilityLabel" xml:space="preserve">
     <value>Opcions de compatibilitat</value>
   </data>
-  <data name="Message_NeedReopen" xml:space="preserve">
-    <value>Canviar aquest valor requereix reobrir el missatge. Estàs segur/a que vols continuar?</value>
-  </data>
-  <data name="Options_AccountIsPEPEnabledText" xml:space="preserve">
-    <value>Activar protecció de privadesa</value>
-  </data>
-  <data name="Options_AccountIsSecureStorageEnabledText" xml:space="preserve">
-    <value>Emmagatzema missatges de forma segura</value>
-  </data>
-  <data name="Options_IsEncryptAllAccountsEnabledText" xml:space="preserve">
-    <value>Emmagatzema missatges de forma segura per a totes les comptes</value>
-  </data>
-  <data name="Options_IsSecurityLossWarningEnabledText" xml:space="preserve">
-    <value>Mostrar un avís quan es reenvii o respongui un missatge segur de forma insegura.</value>
-  </data>
-  <data name="Options_BlacklistSearchNoResultsText" xml:space="preserve">
-    <value>No s’han trobat resultats</value>
-  </data>
-  <data name="PrivacyStatus_RatingBrokenExplanation" xml:space="preserve">
-    <value>Aquest missatge té el format o el xifratge trencats.</value>
-  </data>
-  <data name="PrivacyStatus_RatingBrokenSuggestion" xml:space="preserve">
-    <value>El remitent o el destinatari haurien de reenviar el missatge.</value>
-  </data>
-  <data name="PrivacyStatus_RatingBrokenText" xml:space="preserve">
-    <value>Error</value>
-  </data>
   <data name="Ribbon_NeverUnsecure" xml:space="preserve">
     <value>Emmagatzema protegit</value>
   </data>
@@ -547,9 +553,17 @@
   <data name="SplashScreen_DoNotShowAgain" xml:space="preserve">
     <value>No tornis a mostrar aquesta pantalla de nou.</value>
   </data>
+  <data name="SplashScreen_SendUnsecure" xml:space="preserve">
+    <value>Enviar</value>
+  </data>
   <data name="SplashScreen_UpgradePEP" xml:space="preserve">
     <value>Compra la versió completa</value>
   </data>
+  <data name="SplashScreen_WarningText" xml:space="preserve">
+    <value>Estàs a punt de reenviar un missatge segur com a insegur.
+
+Comprant la versió completa pots protegir la privadesa del missatge.</value>
+  </data>
   <data name="SystemInfo_64BitOS" xml:space="preserve">
     <value>Sistema Operatiu de 64 bits:</value>
   </data>
@@ -583,18 +597,4 @@
   <data name="SystemInfo_UILanguage" xml:space="preserve">
     <value>Idioma de la interfície d’usuari:</value>
   </data>
-  <data name="Options_IsNeverUnsecureOptionVisibleText" xml:space="preserve">
-    <value>Mostrar l’opció de l’emmagatzematge protegit</value>
-  </data>
-  <data name="SplashScreen_SendUnsecure" xml:space="preserve">
-    <value>Enviar</value>
-  </data>
-  <data name="SplashScreen_WarningText" xml:space="preserve">
-    <value>Estàs a punt de reenviar un missatge segur com a insegur.
-
-Comprant la versió completa pots protegir la privadesa del missatge.</value>
-  </data>
-  <data name="Options_BlacklistEnteredFingerprintText" xml:space="preserve">
-    <value>Introduir empremta a buscar o afegir</value>
-  </data>
 </root>
\ No newline at end of file
--- a/Properties/Resources.de.resx	Fri Oct 28 18:35:57 2016 +0200
+++ b/Properties/Resources.de.resx	Mon Oct 31 14:32:21 2016 +0100
@@ -144,13 +144,10 @@
   <data name="Handshake_ConfirmTrustwordsText" xml:space="preserve">
     <value>Bitten Sie Ihren Kommunikationspartner, seine Trustwords persönlich oder telefonisch vorzulesen. Diese sollten mit den untenstehenden übereinstimmen.</value>
   </data>
-  <data name="Handshake_StandardExplanationText" xml:space="preserve">
-    <value>Die Kommunikationssicherheit kann durch einen Handshake erhöht werden. Überprüfen Sie dazu, ob Ihr Kommunikationspartner dieselben Trustwords angezeigt bekommt.</value>
-  </data>
   <data name="Handshake_FingerprintText" xml:space="preserve">
     <value>PGP-Fingerprint</value>
   </data>
-  <data name="Handshake_FormText" xml:space="preserve">
+  <data name="Handshake_StandardFormText" xml:space="preserve">
     <value>Handshake</value>
   </data>
   <data name="Handshake_MyselfText" xml:space="preserve">
@@ -159,6 +156,9 @@
   <data name="Handshake_PartnerText" xml:space="preserve">
     <value>Partner</value>
   </data>
+  <data name="Handshake_StandardExplanationText" xml:space="preserve">
+    <value>Die Kommunikationssicherheit kann durch einen Handshake erhöht werden. Überprüfen Sie dazu, ob Ihr Kommunikationspartner dieselben Trustwords angezeigt bekommt.</value>
+  </data>
   <data name="Handshake_TrustwordsFullText" xml:space="preserve">
     <value>Langform</value>
   </data>
@@ -279,6 +279,12 @@
   <data name="Options_AutoUpdateOffWarningText" xml:space="preserve">
     <value>Achtung: Automatische Updates wurden deaktiviert. Aktivieren Sie sie, um automatisch Sicherheits- und Funktionsupdates zu erhalten.</value>
   </data>
+  <data name="Options_BlacklistEnteredFingerprintText" xml:space="preserve">
+    <value>Zu suchender oder hinzuzufügender Fingerprint</value>
+  </data>
+  <data name="Options_BlacklistSearchNoResultsText" xml:space="preserve">
+    <value>Keine Übereinstimmung</value>
+  </data>
   <data name="Options_CancelText" xml:space="preserve">
     <value>Abbrechen</value>
   </data>
@@ -300,6 +306,9 @@
   <data name="Options_IsKeyServerUsedText" xml:space="preserve">
     <value>Schlüssel auf Schlüsselserver suchen</value>
   </data>
+  <data name="Options_IsNeverUnsecureOptionVisibleText" xml:space="preserve">
+    <value>Option "Sicher speichern" anzeigen</value>
+  </data>
   <data name="Options_IsPEPFolderVisibleText" xml:space="preserve">
     <value>"pEp"-Konto in der Navigationsleiste anzeigen</value>
   </data>
@@ -315,15 +324,15 @@
   <data name="Options_IsVerboseLoggingEnabledText" xml:space="preserve">
     <value>Ausführliches Log aktivieren</value>
   </data>
-  <data name="Options_BlacklistSearchNoResultsText" xml:space="preserve">
-    <value>Keine Übereinstimmung</value>
-  </data>
   <data name="Options_LogEngineText" xml:space="preserve">
     <value>Engine-Protokoll</value>
   </data>
   <data name="Options_LogOutlookText" xml:space="preserve">
     <value>Protokoll</value>
   </data>
+  <data name="Options_LogRefreshText" xml:space="preserve">
+    <value>Logs aktualisieren</value>
+  </data>
   <data name="Options_OKText" xml:space="preserve">
     <value>OK</value>
   </data>
@@ -366,9 +375,6 @@
   <data name="Options_PEPWebAddress" xml:space="preserve">
     <value>www.prettyeasyprivacy.com</value>
   </data>
-  <data name="Options_LogRefreshText" xml:space="preserve">
-    <value>Logs aktualisieren</value>
-  </data>
   <data name="Options_ResetPEPStoreText" xml:space="preserve">
     <value>pEp.pst zurücksetzen</value>
   </data>
@@ -537,9 +543,18 @@
   <data name="SplashScreen_DoNotShowAgain" xml:space="preserve">
     <value>Dieses Fenster nicht mehr anzeigen</value>
   </data>
+  <data name="SplashScreen_SendUnsecure" xml:space="preserve">
+    <value>Senden</value>
+  </data>
   <data name="SplashScreen_UpgradePEP" xml:space="preserve">
     <value>Vollversion erwerben</value>
   </data>
+  <data name="SplashScreen_WarningText" xml:space="preserve">
+    <value>Sie sind dabei, eine bisher sichere Nachricht unsicher zu ver
+senden.
+
+Mit der Vollversion schützen Sie Ihre Daten auch in ausgehenden Nachrichten.</value>
+  </data>
   <data name="SystemInfo_64BitOS" xml:space="preserve">
     <value>64-Bit-Betriebssystem:</value>
   </data>
@@ -573,19 +588,4 @@
   <data name="SystemInfo_UILanguage" xml:space="preserve">
     <value>Sprache der Benutzeroberfläche:</value>
   </data>
-  <data name="Options_IsNeverUnsecureOptionVisibleText" xml:space="preserve">
-    <value>Option "Sicher speichern" anzeigen</value>
-  </data>
-  <data name="SplashScreen_WarningText" xml:space="preserve">
-    <value>Sie sind dabei, eine bisher sichere Nachricht unsicher zu ver
-senden.
-
-Mit der Vollversion schützen Sie Ihre Daten auch in ausgehenden Nachrichten.</value>
-  </data>
-  <data name="SplashScreen_SendUnsecure" xml:space="preserve">
-    <value>Senden</value>
-  </data>
-  <data name="Options_BlacklistEnteredFingerprintText" xml:space="preserve">
-    <value>Zu suchender oder hinzuzufügender Fingerprint</value>
-  </data>
 </root>
\ No newline at end of file
--- a/Properties/Resources.es.resx	Fri Oct 28 18:35:57 2016 +0200
+++ b/Properties/Resources.es.resx	Mon Oct 31 14:32:21 2016 +0100
@@ -144,13 +144,10 @@
   <data name="Handshake_ConfirmTrustwordsText" xml:space="preserve">
     <value>Pregunta a tu interlocutor cuáles son las trustwords. Después compáralas con las que se muestran a continuación.</value>
   </data>
-  <data name="Handshake_StandardExplanationText" xml:space="preserve">
-    <value>La comunicación con el usuario será más segura si realizas el Handshake. Para que el Handshake sea valido tanto tú como el receptor del mensaje debéis ver Trustwords idénticas.</value>
-  </data>
   <data name="Handshake_FingerprintText" xml:space="preserve">
     <value>Huella PGP</value>
   </data>
-  <data name="Handshake_FormText" xml:space="preserve">
+  <data name="Handshake_StandardFormText" xml:space="preserve">
     <value>Handshake</value>
   </data>
   <data name="Handshake_MyselfText" xml:space="preserve">
@@ -159,6 +156,9 @@
   <data name="Handshake_PartnerText" xml:space="preserve">
     <value>Interlocutor</value>
   </data>
+  <data name="Handshake_StandardExplanationText" xml:space="preserve">
+    <value>La comunicación con el usuario será más segura si realizas el Handshake. Para que el Handshake sea valido tanto tú como el receptor del mensaje debéis ver Trustwords idénticas.</value>
+  </data>
   <data name="Handshake_TrustwordsFullText" xml:space="preserve">
     <value>Extendida</value>
   </data>
@@ -279,6 +279,12 @@
   <data name="Options_AutoUpdateOffWarningText" xml:space="preserve">
     <value>Tienes las actualizaciones automáticas deshabilitadas. Habilítalas para recibir actualizaciones de seguridad importantes y otras funcionalidades.</value>
   </data>
+  <data name="Options_BlacklistEnteredFingerprintText" xml:space="preserve">
+    <value>Introducir huella a buscar o añadir</value>
+  </data>
+  <data name="Options_BlacklistSearchNoResultsText" xml:space="preserve">
+    <value>No se han encontrado coincidencias</value>
+  </data>
   <data name="Options_CancelText" xml:space="preserve">
     <value>Cancelar</value>
   </data>
@@ -300,6 +306,9 @@
   <data name="Options_IsKeyServerUsedText" xml:space="preserve">
     <value>Buscar claves en el servidor de claves</value>
   </data>
+  <data name="Options_IsNeverUnsecureOptionVisibleText" xml:space="preserve">
+    <value>Mostrar opción "Guardar protegido"</value>
+  </data>
   <data name="Options_IsPEPFolderVisibleText" xml:space="preserve">
     <value>Mostrar la cuenta de ‘pEp' en el panel de navegación</value>
   </data>
@@ -315,15 +324,15 @@
   <data name="Options_IsVerboseLoggingEnabledText" xml:space="preserve">
     <value>Habilitar el registro detallado</value>
   </data>
-  <data name="Options_BlacklistSearchNoResultsText" xml:space="preserve">
-    <value>No se han encontrado coincidencias</value>
-  </data>
   <data name="Options_LogEngineText" xml:space="preserve">
     <value>Log del motor</value>
   </data>
   <data name="Options_LogOutlookText" xml:space="preserve">
     <value>Log</value>
   </data>
+  <data name="Options_LogRefreshText" xml:space="preserve">
+    <value>Actualizar logs</value>
+  </data>
   <data name="Options_OKText" xml:space="preserve">
     <value>Aceptar</value>
   </data>
@@ -366,9 +375,6 @@
   <data name="Options_PEPWebAddress" xml:space="preserve">
     <value>www.prettyeasyprivacy.com</value>
   </data>
-  <data name="Options_LogRefreshText" xml:space="preserve">
-    <value>Actualizar logs</value>
-  </data>
   <data name="Options_ResetPEPStoreText" xml:space="preserve">
     <value>Restablecer la carpeta pEp.pst</value>
   </data>
@@ -537,9 +543,17 @@
   <data name="SplashScreen_DoNotShowAgain" xml:space="preserve">
     <value>No mostrar esta pantalla de nuevo</value>
   </data>
+  <data name="SplashScreen_SendUnsecure" xml:space="preserve">
+    <value>Enviar</value>
+  </data>
   <data name="SplashScreen_UpgradePEP" xml:space="preserve">
     <value>Comprar versión completa</value>
   </data>
+  <data name="SplashScreen_WarningText" xml:space="preserve">
+    <value>Estás a punto de reenviar un mensaje seguro de forma insegura. 
+
+Comprando la versión completa puedes proteger la privacidad de este mensaje.</value>
+  </data>
   <data name="SystemInfo_64BitOS" xml:space="preserve">
     <value>Sistema operativo 64 bits:</value>
   </data>
@@ -573,18 +587,4 @@
   <data name="SystemInfo_UILanguage" xml:space="preserve">
     <value>Idioma de interfaz:</value>
   </data>
-  <data name="Options_IsNeverUnsecureOptionVisibleText" xml:space="preserve">
-    <value>Mostrar opción "Guardar protegido"</value>
-  </data>
-  <data name="SplashScreen_SendUnsecure" xml:space="preserve">
-    <value>Enviar</value>
-  </data>
-  <data name="SplashScreen_WarningText" xml:space="preserve">
-    <value>Estás a punto de reenviar un mensaje seguro de forma insegura. 
-
-Comprando la versión completa puedes proteger la privacidad de este mensaje.</value>
-  </data>
-  <data name="Options_BlacklistEnteredFingerprintText" xml:space="preserve">
-    <value>Introducir huella a buscar o añadir</value>
-  </data>
 </root>
\ No newline at end of file
--- a/Properties/Resources.fr.resx	Fri Oct 28 18:35:57 2016 +0200
+++ b/Properties/Resources.fr.resx	Mon Oct 31 14:32:21 2016 +0100
@@ -144,13 +144,10 @@
   <data name="Handshake_ConfirmTrustwordsText" xml:space="preserve">
     <value>Demandez à votre partenaire: Quel sont vos Trustwords ? Puis comparez sa réponse à celle affichée ci-dessous.</value>
   </data>
-  <data name="Handshake_StandardExplanationText" xml:space="preserve">
-    <value>La correspondance sera mieux sécurisée en complétant un Handshake. Un Handshake consiste à vérifier que vous et votre partenaire voyez bien les mêmes Trustwords.</value>
-  </data>
   <data name="Handshake_FingerprintText" xml:space="preserve">
     <value>Empreinte PGP</value>
   </data>
-  <data name="Handshake_FormText" xml:space="preserve">
+  <data name="Handshake_StandardFormText" xml:space="preserve">
     <value>Handshake</value>
   </data>
   <data name="Handshake_MyselfText" xml:space="preserve">
@@ -159,6 +156,9 @@
   <data name="Handshake_PartnerText" xml:space="preserve">
     <value>Partenaire</value>
   </data>
+  <data name="Handshake_StandardExplanationText" xml:space="preserve">
+    <value>La correspondance sera mieux sécurisée en complétant un Handshake. Un Handshake consiste à vérifier que vous et votre partenaire voyez bien les mêmes Trustwords.</value>
+  </data>
   <data name="Handshake_TrustwordsFullText" xml:space="preserve">
     <value>Complet</value>
   </data>
@@ -267,6 +267,9 @@
   <data name="Options_AutoUpdateOffWarningText" xml:space="preserve">
     <value>Attention: Les mises à jour automatiques sont désactivées. Veuillez les réactiver pour les mises à jour de sécurité et de fonctionnalité importantes.</value>
   </data>
+  <data name="Options_BlacklistEnteredFingerprintText" xml:space="preserve">
+    <value>Entrez l'empreinte de la clef à chercher ou à ajouter</value>
+  </data>
   <data name="Options_CancelText" xml:space="preserve">
     <value>Annuler</value>
   </data>
@@ -303,6 +306,9 @@
   <data name="Options_LogOutlookText" xml:space="preserve">
     <value>Historique</value>
   </data>
+  <data name="Options_LogRefreshText" xml:space="preserve">
+    <value>Rafraîchir le journal d'activité</value>
+  </data>
   <data name="Options_OKText" xml:space="preserve">
     <value>Ok</value>
   </data>
@@ -339,9 +345,6 @@
   <data name="Options_PEPWebAddress" xml:space="preserve">
     <value>www.prettyeasyprivacy.com</value>
   </data>
-  <data name="Options_LogRefreshText" xml:space="preserve">
-    <value>Rafraîchir le journal d'activité</value>
-  </data>
   <data name="Options_ResetPEPStoreText" xml:space="preserve">
     <value>Réinitialiser pEp.pst store</value>
   </data>
@@ -486,7 +489,4 @@
   <data name="Ribbon_GroupCompatibilityLabel" xml:space="preserve">
     <value>Options de compatibilité</value>
   </data>
-  <data name="Options_BlacklistEnteredFingerprintText" xml:space="preserve">
-    <value>Entrez l'empreinte de la clef à chercher ou à ajouter</value>
-  </data>
 </root>
\ No newline at end of file
--- a/Properties/Resources.it.resx	Fri Oct 28 18:35:57 2016 +0200
+++ b/Properties/Resources.it.resx	Mon Oct 31 14:32:21 2016 +0100
@@ -132,7 +132,7 @@
   <data name="Handshake_FingerprintText" xml:space="preserve">
     <value>Impronta PGP</value>
   </data>
-  <data name="Handshake_FormText" xml:space="preserve">
+  <data name="Handshake_StandardFormText" xml:space="preserve">
     <value>Handshake</value>
   </data>
   <data name="Handshake_MyselfText" xml:space="preserve">
--- a/Properties/Resources.resx	Fri Oct 28 18:35:57 2016 +0200
+++ b/Properties/Resources.resx	Mon Oct 31 14:32:21 2016 +0100
@@ -154,7 +154,7 @@
   <data name="Handshake_FingerprintText" xml:space="preserve">
     <value>PGP Fingerprint</value>
   </data>
-  <data name="Handshake_FormText" xml:space="preserve">
+  <data name="Handshake_StandardFormText" xml:space="preserve">
     <value>Handshake</value>
   </data>
   <data name="Handshake_MyselfText" xml:space="preserve">
@@ -670,8 +670,7 @@
     <value>Clear Logs</value>
   </data>
   <data name="Handshake_SyncTypeAExplanationText" xml:space="preserve">
-    <value>You are about to add a device to your p≡p device group.
-Confirm by successfully verifying the following Trustwords.</value>
+    <value>You are about to add a device to your p≡p device group. Confirm by successfully verifying the following Trustwords.</value>
   </data>
   <data name="Handshake_SyncTypeBExplanationText" xml:space="preserve">
     <value></value>
@@ -679,4 +678,7 @@
   <data name="Handshake_SyncTypeCExplanationText" xml:space="preserve">
     <value></value>
   </data>
+  <data name="Handshake_SyncFormText" xml:space="preserve">
+    <value>p≡p Device Group</value>
+  </data>
 </root>
\ No newline at end of file
--- a/Properties/Resources.tr.resx	Fri Oct 28 18:35:57 2016 +0200
+++ b/Properties/Resources.tr.resx	Mon Oct 31 14:32:21 2016 +0100
@@ -144,13 +144,10 @@
   <data name="Handshake_ConfirmTrustwordsText" xml:space="preserve">
     <value>İletişim ortağınıza şahsen veya telefonla sorun: Trustwords'ün nedir? Ardından aşağıda gösterilen doğru cevap ile karşılaştırınız.</value>
   </data>
-  <data name="Handshake_StandardExplanationText" xml:space="preserve">
-    <value>İletişim Handshake tamamlanırsa daha güvenli olacaktır. Handshake, hem sizin hem de iletişim ortağınızın özdeş trustwords'ü gördüğünüz kontrol edilerek yapılır.</value>
-  </data>
   <data name="Handshake_FingerprintText" xml:space="preserve">
     <value>PGP Parmakizi</value>
   </data>
-  <data name="Handshake_FormText" xml:space="preserve">
+  <data name="Handshake_StandardFormText" xml:space="preserve">
     <value>Handshake</value>
   </data>
   <data name="Handshake_MyselfText" xml:space="preserve">
@@ -159,6 +156,9 @@
   <data name="Handshake_PartnerText" xml:space="preserve">
     <value>Ortak</value>
   </data>
+  <data name="Handshake_StandardExplanationText" xml:space="preserve">
+    <value>İletişim Handshake tamamlanırsa daha güvenli olacaktır. Handshake, hem sizin hem de iletişim ortağınızın özdeş trustwords'ü gördüğünüz kontrol edilerek yapılır.</value>
+  </data>
   <data name="Handshake_TrustwordsFullText" xml:space="preserve">
     <value>Tam</value>
   </data>
@@ -210,6 +210,9 @@
   <data name="ManagePrivacyStatus_OutgoingMessage" xml:space="preserve">
     <value>Giden mesaj</value>
   </data>
+  <data name="ManagePrivacyStatus_SuggestionTitle" xml:space="preserve">
+    <value>p≡p Önerisi</value>
+  </data>
   <data name="ManagePrivacyStatus_UpgradeText" xml:space="preserve">
     <value>Güvenli mesaj gönderebilmek için p≡p'i yükseltiniz</value>
   </data>
@@ -276,6 +279,12 @@
   <data name="Options_AutoUpdateOffWarningText" xml:space="preserve">
     <value>Uyarı: Otomatik güncelleştirmeler kapalı durumda. Önemli güvenlik ve özellik güncellemeleri için açık duruma getirin.</value>
   </data>
+  <data name="Options_BlacklistEnteredFingerprintText" xml:space="preserve">
+    <value>Arama veya eklemek için bir parmak izi girin</value>
+  </data>
+  <data name="Options_BlacklistSearchNoResultsText" xml:space="preserve">
+    <value>Hiçbir sonuç bulunamadı</value>
+  </data>
   <data name="Options_CancelText" xml:space="preserve">
     <value>İptal</value>
   </data>
@@ -297,6 +306,9 @@
   <data name="Options_IsKeyServerUsedText" xml:space="preserve">
     <value>Anahtarları anahtar sunucusunda ara</value>
   </data>
+  <data name="Options_IsNeverUnsecureOptionVisibleText" xml:space="preserve">
+    <value>Mesajları korunmalı depola opsiyonunu göster</value>
+  </data>
   <data name="Options_IsPEPFolderVisibleText" xml:space="preserve">
     <value>'pEp' veri deposunu navigasyon bölmesinde göster</value>
   </data>
@@ -312,15 +324,15 @@
   <data name="Options_IsVerboseLoggingEnabledText" xml:space="preserve">
     <value>Ayrıntılı günlüğü etkinleştir</value>
   </data>
-  <data name="Options_BlacklistSearchNoResultsText" xml:space="preserve">
-    <value>Hiçbir sonuç bulunamadı</value>
-  </data>
   <data name="Options_LogEngineText" xml:space="preserve">
     <value>Motor Günlüğü</value>
   </data>
   <data name="Options_LogOutlookText" xml:space="preserve">
     <value>Günlük</value>
   </data>
+  <data name="Options_LogRefreshText" xml:space="preserve">
+    <value>Günlükleri Güncelle</value>
+  </data>
   <data name="Options_OKText" xml:space="preserve">
     <value>Tamam</value>
   </data>
@@ -363,9 +375,6 @@
   <data name="Options_PEPWebAddress" xml:space="preserve">
     <value>www.prettyeasyprivacy.com</value>
   </data>
-  <data name="Options_LogRefreshText" xml:space="preserve">
-    <value>Günlükleri Güncelle</value>
-  </data>
   <data name="Options_ResetPEPStoreText" xml:space="preserve">
     <value>pEp.pst deposunu sıfırla</value>
   </data>
@@ -534,9 +543,17 @@
   <data name="SplashScreen_DoNotShowAgain" xml:space="preserve">
     <value>Bu ekranı tekrar gösterme</value>
   </data>
+  <data name="SplashScreen_SendUnsecure" xml:space="preserve">
+    <value>Gönder</value>
+  </data>
   <data name="SplashScreen_UpgradePEP" xml:space="preserve">
     <value>Tam sürümü satın al</value>
   </data>
+  <data name="SplashScreen_WarningText" xml:space="preserve">
+    <value>"Siz güvenli bir mesajı güvensiz olarak iletmek üzeresiniz. 
+
+Tam sürümü satın alarak bu mesajın gizliliğini koruyabilirsiniz.” </value>
+  </data>
   <data name="SystemInfo_64BitOS" xml:space="preserve">
     <value>64-bit işletim sistemi:</value>
   </data>
@@ -570,21 +587,4 @@
   <data name="SystemInfo_UILanguage" xml:space="preserve">
     <value>Dil Arayüzü:</value>
   </data>
-  <data name="ManagePrivacyStatus_SuggestionTitle" xml:space="preserve">
-    <value>p≡p Önerisi</value>
-  </data>
-  <data name="Options_IsNeverUnsecureOptionVisibleText" xml:space="preserve">
-    <value>Mesajları korunmalı depola opsiyonunu göster</value>
-  </data>
-  <data name="SplashScreen_WarningText" xml:space="preserve">
-    <value>"Siz güvenli bir mesajı güvensiz olarak iletmek üzeresiniz. 
-
-Tam sürümü satın alarak bu mesajın gizliliğini koruyabilirsiniz.” </value>
-  </data>
-  <data name="SplashScreen_SendUnsecure" xml:space="preserve">
-    <value>Gönder</value>
-  </data>
-  <data name="Options_BlacklistEnteredFingerprintText" xml:space="preserve">
-    <value>Arama veya eklemek için bir parmak izi girin</value>
-  </data>
 </root>
\ No newline at end of file
--- a/UI/FormControlCrashReport.xaml.cs	Fri Oct 28 18:35:57 2016 +0200
+++ b/UI/FormControlCrashReport.xaml.cs	Mon Oct 31 14:32:21 2016 +0100
@@ -12,6 +12,11 @@
         public delegate void ClickedDelegate(object sender, RoutedEventArgs e);
 
         /// <summary>
+        /// Event raised when a property is changed on a component in the display state.
+        /// </summary>
+        public event PropertyChangedEventHandler PropertyChanged;
+
+        /// <summary>
         /// Event for when the send button is clicked.
         /// </summary>
         public event ClickedDelegate SendClick;
@@ -37,6 +42,7 @@
             this.InitializeComponent();
 
             this.displayState = new State();
+            this.displayState.PropertyChanged += DisplayState_PropertyChanged;
             this.DataContext = this.displayState;
         }
 
@@ -54,7 +60,14 @@
             get { return (this.displayState); }
             set
             {
+                if (this.displayState != null)
+                {
+                    this.displayState.PropertyChanged -= DisplayState_PropertyChanged;
+                }
+
                 this.displayState = value;
+                this.displayState.PropertyChanged += DisplayState_PropertyChanged;
+
                 this.DataContext = this.displayState;
             }
         }
@@ -66,6 +79,15 @@
          *************************************************************/
 
         /// <summary>
+        /// Event handler for when a property is changed within the display state.
+        /// </summary>
+        private void DisplayState_PropertyChanged(object sender, PropertyChangedEventArgs e)
+        {
+            this.PropertyChanged?.Invoke(this, e);
+            return;
+        }
+
+        /// <summary>
         /// Event handler for when the send button is clicked.
         /// </summary>
         private void ButtonSend_Click(object sender, RoutedEventArgs e)
--- a/UI/FormControlHandshake.xaml	Fri Oct 28 18:35:57 2016 +0200
+++ b/UI/FormControlHandshake.xaml	Mon Oct 31 14:32:21 2016 +0100
@@ -61,6 +61,7 @@
                 <ColumnDefinition Width="Auto" />
                 <ColumnDefinition Width="10" />
                 <ColumnDefinition Width="Auto" />
+                <ColumnDefinition Width="Auto" />
             </Grid.ColumnDefinitions>
             <Grid.RowDefinitions>
                 <RowDefinition Height="Auto" />
@@ -72,10 +73,46 @@
             <TextBlock Grid.Column="0"
                        Grid.Row="0"
                        Text="{Binding Path=PartnerText, FallbackValue=Partner}"
-                       HorizontalAlignment="Right" />
-            <StackPanel Grid.Column="2"
+                       HorizontalAlignment="Right"
+                       VerticalAlignment="Center"
+                       Visibility="{Binding Path=Mode, Converter={StaticResource IsHandshakeModeToVisiblity}, ConverterParameter='Standard'}" />
+            <Image Grid.Column="2"
+                   Grid.Row="0"
+                   Stretch="Uniform"
+                   VerticalAlignment="Stretch"
+                   Margin="0,0,5,0">
+                <Image.Style>
+                    <Style TargetType="Image">
+                        <Style.Triggers>
+                            <DataTrigger Binding="{Binding Path='Partner.Color'}"
+                                         Value="pEpColorGreen">
+                                <Setter Property="Source"
+                                        Value="pack://application:,,,/pEp;component/Resources/ImagePrivacyStatusGreen.png" />
+                            </DataTrigger>
+                            <DataTrigger Binding="{Binding Path='Partner.Color'}"
+                                         Value="pEpColorNoColor">
+                                <Setter Property="Source"
+                                        Value="pack://application:,,,/pEp;component/Resources/ImagePrivacyStatusNoColor.png" />
+                            </DataTrigger>
+                            <DataTrigger Binding="{Binding Path='Partner.Color'}"
+                                         Value="pEpColorRed">
+                                <Setter Property="Source"
+                                        Value="pack://application:,,,/pEp;component/Resources/ImagePrivacyStatusRed.png" />
+                            </DataTrigger>
+                            <DataTrigger Binding="{Binding Path='Partner.Color'}"
+                                         Value="pEpColorYellow">
+                                <Setter Property="Source"
+                                        Value="pack://application:,,,/pEp;component/Resources/ImagePrivacyStatusYellow.png" />
+                            </DataTrigger>
+                        </Style.Triggers>
+                    </Style>
+                </Image.Style>
+            </Image>
+            <StackPanel Grid.Column="3"
                         Grid.Row="0"
-                        Orientation="Vertical">
+                        Orientation="Vertical"
+                        HorizontalAlignment="Left"
+                        VerticalAlignment="Center">
                 <TextBlock HorizontalAlignment="Left"
                            VerticalAlignment="Top"
                            Text="{Binding Path=Partner.UserName, Mode=OneWay}"
@@ -108,10 +145,46 @@
                        Grid.Row="2"
                        Text="{Binding Path=MyselfText, FallbackValue=Myself}"
                        HorizontalAlignment="Right"
+                       VerticalAlignment="Center"
                        Visibility="{Binding Path=Mode, Converter={StaticResource IsHandshakeModeToVisiblity}, ConverterParameter='Standard'}" />
-            <StackPanel Grid.Column="2"
+            <Image Grid.Column="2"
+                   Grid.Row="2"
+                   Stretch="Uniform"
+                   VerticalAlignment="Stretch"
+                   Margin="0,0,5,0"
+                   Visibility="{Binding Path=Mode, Converter={StaticResource IsHandshakeModeToVisiblity}, ConverterParameter='Standard'}">
+                <Image.Style>
+                    <Style TargetType="Image">
+                        <Style.Triggers>
+                            <DataTrigger Binding="{Binding Path='Myself.Color'}"
+                                         Value="pEpColorGreen">
+                                <Setter Property="Source"
+                                        Value="pack://application:,,,/pEp;component/Resources/ImagePrivacyStatusGreen.png" />
+                            </DataTrigger>
+                            <DataTrigger Binding="{Binding Path='Myself.Color'}"
+                                         Value="pEpColorNoColor">
+                                <Setter Property="Source"
+                                        Value="pack://application:,,,/pEp;component/Resources/ImagePrivacyStatusNoColor.png" />
+                            </DataTrigger>
+                            <DataTrigger Binding="{Binding Path='Myself.Color'}"
+                                         Value="pEpColorRed">
+                                <Setter Property="Source"
+                                        Value="pack://application:,,,/pEp;component/Resources/ImagePrivacyStatusRed.png" />
+                            </DataTrigger>
+                            <DataTrigger Binding="{Binding Path='Myself.Color'}"
+                                         Value="pEpColorYellow">
+                                <Setter Property="Source"
+                                        Value="pack://application:,,,/pEp;component/Resources/ImagePrivacyStatusYellow.png" />
+                            </DataTrigger>
+                        </Style.Triggers>
+                    </Style>
+                </Image.Style>
+            </Image>
+            <StackPanel Grid.Column="3"
                         Grid.Row="2"
                         Orientation="Vertical"
+                        HorizontalAlignment="Left"
+                        VerticalAlignment="Center"
                         Visibility="{Binding Path=Mode, Converter={StaticResource IsHandshakeModeToVisiblity}, ConverterParameter='Standard'}">
                 <TextBlock HorizontalAlignment="Left"
                            VerticalAlignment="Top"
@@ -144,16 +217,19 @@
         <TextBlock Grid.Row="2"
                    Text="{Binding Path=ConfirmTrustwordsText, FallbackValue=&lt;confirm&gt;}"
                    TextWrapping="Wrap"
-                   Visibility="{Binding Path=Mode, Converter={StaticResource IsHandshakeModeToVisiblity}, ConverterParameter='Standard'}" />
+                   Visibility="{Binding Path=Mode, Converter={StaticResource IsHandshakeModeToVisiblity}, ConverterParameter='Standard'}"
+                   Margin="0,0,0,7" />
 
         <!-- Visual Separator -->
         <Separator Grid.Row="3"
                    HorizontalAlignment="Stretch"
-                   Margin="0,7,0,7" />
+                   Margin="0,0,0,7" />
 
         <!-- Trustwords for sync modes (underneath the standard mode controls) -->
         <TextBlock Grid.Row="4"
                    Text="{Binding Path=TrustwordsShort, FallbackValue=&lt;short&gt;}"
+                   TextAlignment="Center"
+                   FontSize="14"
                    HorizontalAlignment="Center"
                    VerticalAlignment="Center"
                    TextWrapping="Wrap" />
@@ -173,10 +249,13 @@
                                 <RowDefinition Height="Auto" />
                             </Grid.RowDefinitions>
                             <ScrollViewer Grid.Row="0"
+                                          HorizontalAlignment="Stretch"
+                                          VerticalAlignment="Center"
                                           HorizontalScrollBarVisibility="Disabled"
                                           VerticalScrollBarVisibility="Auto">
                                 <TextBlock Text="{Binding Path=TrustwordsShort, FallbackValue=&lt;short&gt;}"
-                                           TextWrapping="Wrap" />
+                                           TextWrapping="Wrap"
+                                           VerticalAlignment="Center" />
                             </ScrollViewer>
 
                             <!-- Language selection -->
@@ -201,10 +280,13 @@
                                 <RowDefinition Height="Auto" />
                             </Grid.RowDefinitions>
                             <ScrollViewer Grid.Row="0"
+                                          HorizontalAlignment="Stretch"
+                                          VerticalAlignment="Center"
                                           HorizontalScrollBarVisibility="Disabled"
                                           VerticalScrollBarVisibility="Auto">
                                 <TextBlock Text="{Binding Path=TrustwordsFull, FallbackValue=&lt;full&gt;}"
-                                           TextWrapping="Wrap" />
+                                           TextWrapping="Wrap"
+                                           VerticalAlignment="Center" />
                             </ScrollViewer>
 
                             <!-- Language selection -->
--- a/UI/FormControlHandshake.xaml.cs	Fri Oct 28 18:35:57 2016 +0200
+++ b/UI/FormControlHandshake.xaml.cs	Mon Oct 31 14:32:21 2016 +0100
@@ -1,10 +1,8 @@
-using System;
-using System.Collections.Generic;
+using System.Collections.Generic;
 using System.ComponentModel;
 using System.Globalization;
 using System.Windows;
 using System.Windows.Controls;
-using System.Windows.Data;
 
 namespace pEp.UI
 {
@@ -16,6 +14,11 @@
         public delegate void ClickedDelegate(object sender, RoutedEventArgs e);
 
         /// <summary>
+        /// Event raised when a property is changed on a component in the display state.
+        /// </summary>
+        public event PropertyChangedEventHandler PropertyChanged;
+
+        /// <summary>
         /// Event for when the cancel button is clicked.
         /// </summary>
         public event ClickedDelegate CancelClick;
@@ -46,6 +49,7 @@
             this.InitializeComponent();
 
             this.displayState = new State();
+            this.displayState.PropertyChanged += DisplayState_PropertyChanged;
             this.DataContext = this.displayState;
         }
 
@@ -63,7 +67,14 @@
             get { return (this.displayState); }
             set
             {
+                if (this.displayState != null)
+                {
+                    this.displayState.PropertyChanged -= DisplayState_PropertyChanged;
+                }
+
                 this.displayState = value;
+                this.displayState.PropertyChanged += DisplayState_PropertyChanged;
+
                 this.DataContext = this.displayState;
             }
         }
@@ -75,6 +86,15 @@
          *************************************************************/
 
         /// <summary>
+        /// Event handler for when a property is changed within the display state.
+        /// </summary>
+        private void DisplayState_PropertyChanged(object sender, PropertyChangedEventArgs e)
+        {
+            this.PropertyChanged?.Invoke(this, e);
+            return;
+        }
+
+        /// <summary>
         /// Event handler for when the cancel button is clicked.
         /// </summary>
         private void ButtonCancel_Click(object sender, RoutedEventArgs e)
--- a/UI/FormControlManagePrivacyStatus.xaml.cs	Fri Oct 28 18:35:57 2016 +0200
+++ b/UI/FormControlManagePrivacyStatus.xaml.cs	Mon Oct 31 14:32:21 2016 +0100
@@ -15,6 +15,11 @@
         public delegate void ClickedDelegate(object sender, RoutedEventArgs e);
 
         /// <summary>
+        /// Event raised when a property is changed on a component in the display state.
+        /// </summary>
+        public event PropertyChangedEventHandler PropertyChanged;
+
+        /// <summary>
         /// Event for when the close button is clicked.
         /// </summary>
         public event ClickedDelegate CloseClick;
@@ -35,6 +40,7 @@
             this.InitializeComponent();
 
             this.displayState = new State();
+            this.displayState.PropertyChanged += DisplayState_PropertyChanged;
             this.DataContext = this.displayState;
         }
 
@@ -52,7 +58,14 @@
             get { return (this.displayState); }
             set
             {
+                if (this.displayState != null)
+                {
+                    this.displayState.PropertyChanged -= DisplayState_PropertyChanged;
+                }
+
                 this.displayState = value;
+                this.displayState.PropertyChanged += DisplayState_PropertyChanged;
+
                 this.DataContext = this.displayState;
             }
         }
@@ -64,6 +77,15 @@
          *************************************************************/
 
         /// <summary>
+        /// Event handler for when a property is changed within the display state.
+        /// </summary>
+        private void DisplayState_PropertyChanged(object sender, PropertyChangedEventArgs e)
+        {
+            this.PropertyChanged?.Invoke(this, e);
+            return;
+        }
+
+        /// <summary>
         /// Event handler for when the close button is pressed.
         /// </summary>
         private void ButtonClose_Click(object sender, RoutedEventArgs e)
--- a/UI/FormControlOptions.xaml.cs	Fri Oct 28 18:35:57 2016 +0200
+++ b/UI/FormControlOptions.xaml.cs	Mon Oct 31 14:32:21 2016 +0100
@@ -20,6 +20,11 @@
         public delegate void ClickedDelegate(object sender, RoutedEventArgs e);
 
         /// <summary>
+        /// Event raised when a property is changed on a component in the display state.
+        /// </summary>
+        public event PropertyChangedEventHandler PropertyChanged;
+
+        /// <summary>
         /// Event for when the cancel button is clicked.
         /// </summary>
         public event ClickedDelegate CancelClick;
@@ -45,6 +50,7 @@
             this.InitializeComponent();
 
             this.displayState = new State();
+            this.displayState.PropertyChanged += DisplayState_PropertyChanged;
             this.DataContext = this.displayState;
 
             this.LoadCredits();
@@ -64,7 +70,14 @@
             get { return (this.displayState); }
             set
             {
+                if (this.displayState != null)
+                {
+                    this.displayState.PropertyChanged -= DisplayState_PropertyChanged;
+                }
+
                 this.displayState = value;
+                this.displayState.PropertyChanged += DisplayState_PropertyChanged;
+
                 this.DataContext = this.displayState;
             }
         }
@@ -98,6 +111,15 @@
          *************************************************************/
 
         /// <summary>
+        /// Event handler for when a property is changed within the display state.
+        /// </summary>
+        private void DisplayState_PropertyChanged(object sender, PropertyChangedEventArgs e)
+        {
+            this.PropertyChanged?.Invoke(this, e);
+            return;
+        }
+
+        /// <summary>
         /// Event handler for when the OK button is pressed.
         /// </summary>
         private void ButtonOK_Click(object sender, RoutedEventArgs e)
--- a/UI/FormControlPrivacyStatus.xaml.cs	Fri Oct 28 18:35:57 2016 +0200
+++ b/UI/FormControlPrivacyStatus.xaml.cs	Mon Oct 31 14:32:21 2016 +0100
@@ -15,6 +15,11 @@
         public delegate void ClickedDelegate(object sender, RoutedEventArgs e);
 
         /// <summary>
+        /// Event raised when a property is changed on a component in the display state.
+        /// </summary>
+        public event PropertyChangedEventHandler PropertyChanged;
+
+        /// <summary>
         /// Event for when the privacy view rating button is clicked.
         /// </summary>
         public event ClickedDelegate PrivacyViewClick;
@@ -35,6 +40,7 @@
             this.InitializeComponent();
 
             this.displayState = new State();
+            this.displayState.PropertyChanged += DisplayState_PropertyChanged;
             this.DataContext = this.displayState;
         }
 
@@ -52,7 +58,14 @@
             get { return (this.displayState); }
             set
             {
+                if (this.displayState != null)
+                {
+                    this.displayState.PropertyChanged -= DisplayState_PropertyChanged;
+                }
+
                 this.displayState = value;
+                this.displayState.PropertyChanged += DisplayState_PropertyChanged;
+
                 this.DataContext = this.displayState;
             }
         }
@@ -64,6 +77,15 @@
          *************************************************************/
 
         /// <summary>
+        /// Event handler for when a property is changed within the display state.
+        /// </summary>
+        private void DisplayState_PropertyChanged(object sender, PropertyChangedEventArgs e)
+        {
+            this.PropertyChanged?.Invoke(this, e);
+            return;
+        }
+
+        /// <summary>
         /// Event handler for when the privacy view is clicked.
         /// </summary>
         private void PrivacyViewRating_Click(object sender, RoutedEventArgs e)
--- a/UI/FormHandshake.Designer.cs	Fri Oct 28 18:35:57 2016 +0200
+++ b/UI/FormHandshake.Designer.cs	Mon Oct 31 14:32:21 2016 +0100
@@ -37,7 +37,7 @@
             this.ElementHostFormControl.Dock = System.Windows.Forms.DockStyle.Fill;
             this.ElementHostFormControl.Location = new System.Drawing.Point(0, 0);
             this.ElementHostFormControl.Name = "ElementHostFormControl";
-            this.ElementHostFormControl.Size = new System.Drawing.Size(472, 361);
+            this.ElementHostFormControl.Size = new System.Drawing.Size(472, 336);
             this.ElementHostFormControl.TabIndex = 0;
             this.ElementHostFormControl.Child = this.FormControlHandshakeChild;
             // 
@@ -45,7 +45,7 @@
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(472, 361);
+            this.ClientSize = new System.Drawing.Size(472, 336);
             this.Controls.Add(this.ElementHostFormControl);
             this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
             this.MaximizeBox = false;
--- a/UI/FormHandshake.cs	Fri Oct 28 18:35:57 2016 +0200
+++ b/UI/FormHandshake.cs	Mon Oct 31 14:32:21 2016 +0100
@@ -20,10 +20,13 @@
         public FormHandshake()
         {
             this.InitializeComponent();
-            this.Text = Properties.Resources.Handshake_FormText;
+
+            this.FormControlHandshakeChild.PropertyChanged += DisplayState_PropertyChanged;
             this.FormControlHandshakeChild.CancelClick += ButtonCancel_Click;
             this.FormControlHandshakeChild.ConfirmClick += ButtonConfirm_Click;
             this.FormControlHandshakeChild.WrongClick += ButtonWrong_Click;
+
+            this.SyncWithDisplayState();
         }
 
         /**************************************************************
@@ -38,7 +41,45 @@
         public FormControlHandshake.State DisplayState
         {
             get { return (this.FormControlHandshakeChild.DisplayState); }
-            set { this.FormControlHandshakeChild.DisplayState = value; }
+            set
+            {
+                this.FormControlHandshakeChild.DisplayState = value;
+                this.SyncWithDisplayState();
+            }
+        }
+
+        /**************************************************************
+         * 
+         * Methods
+         * 
+         *************************************************************/
+
+        /// <summary>
+        /// Updates the form window based on the display state.
+        /// </summary>
+        public void SyncWithDisplayState()
+        {
+            // Form title
+            if (this.FormControlHandshakeChild.DisplayState.Mode == FormControlHandshake.State.HandshakeMode.Standard)
+            {
+                this.Text = Properties.Resources.Handshake_StandardFormText;
+            }
+            else
+            {
+                this.Text = Properties.Resources.Handshake_SyncFormText;
+            }
+
+            // Window height
+            if (this.FormControlHandshakeChild.DisplayState.Mode == FormControlHandshake.State.HandshakeMode.Standard)
+            {
+                this.Height = 400;
+            }
+            else
+            {
+                this.Height = 300;
+            }
+
+            return;
         }
 
         /**************************************************************
@@ -48,6 +89,15 @@
          *************************************************************/
 
         /// <summary>
+        /// Event handler for when a property is changed within the display state.
+        /// </summary>
+        private void DisplayState_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
+        {
+            this.SyncWithDisplayState();
+            return;
+        }
+
+        /// <summary>
         /// Event handler for when the cancel button is clicked to close the form.
         /// </summary>
         private void ButtonCancel_Click(object sender, RoutedEventArgs e)
--- a/UI/FormRegionPrivacyStatus.cs	Fri Oct 28 18:35:57 2016 +0200
+++ b/UI/FormRegionPrivacyStatus.cs	Mon Oct 31 14:32:21 2016 +0100
@@ -341,6 +341,16 @@
                 identities = this.cryptableMailItem.Recipients;
                 myIdentity = this.cryptableMailItem.Myself;
 
+                try
+                {
+                    myIdentity.Rating = ThisAddIn.PEPEngine.IdentityRating(myIdentity.ToCOMType());
+                }
+                catch (COMException ex)
+                {
+                    myIdentity.Rating = pEpRating.pEpRatingUndefined;
+                    Log.Warning("GetManagerState: Failed to get myself identity rating, " + ex.ToString());
+                }
+
                 // Include the from identity for incoming messages at the beginning
                 identity = this.cryptableMailItem.From;
                 if ((this.cryptableMailItem.IsIncoming) &&
@@ -384,7 +394,7 @@
                         catch (COMException ex)
                         {
                             partnerIdentity.Rating = pEpRating.pEpRatingUndefined;
-                            Log.Warning("GetManagerState: Failed to get identity rating, " + ex.ToString());
+                            Log.Warning("GetManagerState: Failed to get partner identity rating, " + ex.ToString());
                         }
 
                         isMyself = PEPIdentity.GetIsOwnIdentity(partnerIdentity.Address);