anastasis-gtk

Demonstrator GUI for Anastasis
Log | Files | Refs | README | LICENSE

anastasis_gtk_auth_add_totp.ui (10247B)


      1 <?xml version='1.0' encoding='UTF-8'?>
      2 <!-- Created with Cambalache 0.94.1 -->
      3 <!--
      4 Copyright (C) 2019-2021 Anastasis SARL
      5 
      6 This file is part of anastasis-gtk.
      7 
      8 anastasis-gtk is free software: you can redistribute it and/or modify
      9 it under the terms of the GNU General Public License as published by
     10 the Free Software Foundation, either version 3 of the License, or
     11 (at your option) any later version.
     12 
     13 anastasis-gtk is distributed in the hope that it will be useful,
     14 but WITHOUT ANY WARRANTY; without even the implied warranty of
     15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     16 GNU General Public License for more details.
     17 
     18 You should have received a copy of the GNU General Public License
     19 along with anastasis-gtk.  If not, see <http://www.gnu.org/licenses/>.
     20 
     21 Author: Belen Pena, Christian Grothoff, Dennis Neufeld-->
     22 <interface>
     23   <!-- interface-name anastasis_gtk_auth_add_totp.ui -->
     24   <requires lib="gtk" version="4.0"/>
     25   <object class="GtkDialog" id="anastasis_gtk_b_totp_dialog">
     26     <property name="default-widget">anastasis_gtk_b_totp_dialog_btn_ok</property>
     27     <property name="focus-widget">anastasis_gtk_b_totp_dialog_name_entry</property>
     28     <signal name="response" handler="anastasis_gtk_b_totp_dialog_response_cb"/>
     29     <child internal-child="content_area">
     30       <object class="GtkBox">
     31         <property name="orientation">vertical</property>
     32         <property name="spacing">2</property>
     33         <child>
     34           <object class="GtkBox">
     35             <property name="margin-bottom">5</property>
     36             <property name="margin-top">5</property>
     37             <property name="orientation">vertical</property>
     38             <child>
     39               <object class="GtkLabel" id="explainer_label">
     40                 <property name="label" translatable="yes">For TOTP authentication, you need to set a name for the TOTP secret.
     41 Then, you must scan the generated QR code with your TOTP App to
     42 import the TOTP secret it into your TOTP App.</property>
     43                 <property name="margin-bottom">20</property>
     44                 <property name="margin-top">20</property>
     45                 <property name="name">explainer_label</property>
     46                 <property name="use-markup">1</property>
     47               </object>
     48             </child>
     49             <child>
     50               <object class="GtkBox">
     51                 <property name="margin-bottom">55</property>
     52                 <property name="margin-top">5</property>
     53                 <property name="orientation">vertical</property>
     54                 <property name="valign">center</property>
     55                 <property name="vexpand">0</property>
     56                 <child>
     57                   <object class="GtkLabel">
     58                     <property name="halign">start</property>
     59                     <property name="label" translatable="yes">TOTP Name</property>
     60                     <property name="margin-bottom">5</property>
     61                     <property name="margin-end">25</property>
     62                     <property name="margin-start">25</property>
     63                     <property name="margin-top">5</property>
     64                     <property name="valign">center</property>
     65                   </object>
     66                 </child>
     67                 <child>
     68                   <object class="GtkEntry" id="anastasis_gtk_b_totp_dialog_name_entry">
     69                     <property name="activates-default">1</property>
     70                     <property name="focusable">1</property>
     71                     <property name="hexpand">1</property>
     72                     <property name="input-purpose">name</property>
     73                     <property name="margin-bottom">5</property>
     74                     <property name="margin-end">25</property>
     75                     <property name="margin-start">25</property>
     76                     <property name="margin-top">5</property>
     77                     <property name="primary-icon-name">dialog-information</property>
     78                     <property name="text" translatable="yes">Anastasis</property>
     79                     <property name="vexpand">1</property>
     80                     <property name="width-chars">36</property>
     81                     <signal name="changed" handler="anastasis_gtk_b_totp_dialog_name_entry_changed_cb"/>
     82                   </object>
     83                 </child>
     84                 <child>
     85                   <object class="GtkPicture" id="qr_image">
     86                     <property name="can-shrink">0</property>
     87                     <property name="content-fit">scale-down</property>
     88                     <property name="halign">center</property>
     89                     <property name="margin-bottom">30</property>
     90                     <property name="margin-end">25</property>
     91                     <property name="margin-start">25</property>
     92                     <property name="margin-top">30</property>
     93                     <property name="name">qr_image</property>
     94                     <property name="valign">center</property>
     95                   </object>
     96                 </child>
     97               </object>
     98             </child>
     99             <child>
    100               <object class="GtkBox">
    101                 <property name="orientation">vertical</property>
    102                 <child>
    103                   <object class="GtkLabel">
    104                     <property name="halign">start</property>
    105                     <property name="label" translatable="yes">Confirm that your TOTP App works by entering the current 8-digit TOTP code here:</property>
    106                     <property name="margin-bottom">5</property>
    107                     <property name="margin-end">10</property>
    108                     <property name="margin-start">10</property>
    109                     <property name="margin-top">5</property>
    110                   </object>
    111                 </child>
    112                 <child>
    113                   <object class="GtkEntry" id="totp_entry">
    114                     <property name="activates-default">1</property>
    115                     <property name="focusable">1</property>
    116                     <property name="input-purpose">number</property>
    117                     <property name="margin-bottom">5</property>
    118                     <property name="margin-top">5</property>
    119                     <property name="max-length">9</property>
    120                     <property name="max-width-chars">9</property>
    121                     <property name="placeholder-text" translatable="yes">00000000</property>
    122                     <property name="primary-icon-name">dialog-question</property>
    123                     <property name="tooltip-text" translatable="yes">Enter the 8-digit TOTP code. Valid for 30s.</property>
    124                     <signal name="changed" handler="totp_entry_changed_cb"/>
    125                   </object>
    126                 </child>
    127                 <child>
    128                   <object class="GtkLabel" id="google_label">
    129                     <property name="halign">start</property>
    130                     <property name="label" translatable="yes">We note that Google's implementation of TOTP is incomplete and will not work. We recommend using FreeOTP+.</property>
    131                     <property name="margin-end">20</property>
    132                     <property name="margin-start">20</property>
    133                     <attributes>
    134                       <attribute name="scale" value="0.80000000000000004"/>
    135                     </attributes>
    136                   </object>
    137                 </child>
    138               </object>
    139             </child>
    140           </object>
    141         </child>
    142       </object>
    143     </child>
    144     <child type="titlebar">
    145       <object class="GtkLabel">
    146         <property name="label" translatable="yes">Configure TOTP</property>
    147       </object>
    148     </child>
    149     <child internal-child="action_area">
    150       <object class="GtkBox">
    151         <property name="can-focus">0</property>
    152         <property name="halign">end</property>
    153         <property name="homogeneous">1</property>
    154         <property name="spacing">6</property>
    155         <child>
    156           <object class="GtkButton" id="anastasis_gtk_b_totp_dialog_btn_cancel">
    157             <property name="child">
    158               <object class="GtkBox">
    159                 <property name="halign">center</property>
    160                 <property name="spacing">2</property>
    161                 <child>
    162                   <object class="GtkImage">
    163                     <property name="icon-name">gtk-cancel</property>
    164                   </object>
    165                 </child>
    166                 <child>
    167                   <object class="GtkLabel">
    168                     <property name="label" translatable="yes">_Cancel</property>
    169                     <property name="mnemonic-widget">anastasis_gtk_b_totp_dialog_btn_cancel</property>
    170                     <property name="use-underline">1</property>
    171                   </object>
    172                 </child>
    173               </object>
    174             </property>
    175           </object>
    176         </child>
    177         <child>
    178           <object class="GtkButton" id="anastasis_gtk_b_totp_dialog_btn_ok">
    179             <property name="child">
    180               <object class="GtkBox">
    181                 <property name="halign">center</property>
    182                 <property name="spacing">2</property>
    183                 <child>
    184                   <object class="GtkImage">
    185                     <property name="icon-name">gtk-ok</property>
    186                   </object>
    187                 </child>
    188                 <child>
    189                   <object class="GtkLabel">
    190                     <property name="label" translatable="yes">_OK</property>
    191                     <property name="mnemonic-widget">anastasis_gtk_b_totp_dialog_btn_ok</property>
    192                     <property name="use-underline">1</property>
    193                   </object>
    194                 </child>
    195               </object>
    196             </property>
    197             <property name="sensitive">0</property>
    198           </object>
    199         </child>
    200       </object>
    201     </child>
    202     <action-widgets>
    203       <action-widget response="-6">anastasis_gtk_b_totp_dialog_btn_cancel</action-widget>
    204       <action-widget response="-5">anastasis_gtk_b_totp_dialog_btn_ok</action-widget>
    205     </action-widgets>
    206     <action-widgets>
    207       <action-widget response="-6">anastasis_gtk_b_totp_dialog_btn_cancel</action-widget>
    208       <action-widget response="-5">anastasis_gtk_b_totp_dialog_btn_ok</action-widget>
    209     </action-widgets>
    210   </object>
    211 </interface>