diff options
| -rw-r--r-- | changes/bug-4734_akm-stored-public-keys-view | 1 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/advanced_key_management.py | 22 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/ui/advanced_key_management.ui | 79 | 
3 files changed, 80 insertions, 22 deletions
| diff --git a/changes/bug-4734_akm-stored-public-keys-view b/changes/bug-4734_akm-stored-public-keys-view new file mode 100644 index 00000000..bdba2cb2 --- /dev/null +++ b/changes/bug-4734_akm-stored-public-keys-view @@ -0,0 +1 @@ +- Advanced Key Management: add view for stored public keys. Closes #4734. diff --git a/src/leap/bitmask/gui/advanced_key_management.py b/src/leap/bitmask/gui/advanced_key_management.py index 2c0fa034..8f15719d 100644 --- a/src/leap/bitmask/gui/advanced_key_management.py +++ b/src/leap/bitmask/gui/advanced_key_management.py @@ -50,7 +50,8 @@ class AdvancedKeyManagement(QtGui.QWidget):          # if Soledad is not started yet          if sameProxiedObjects(soledad, None): -            self.ui.container.setEnabled(False) +            self.ui.gbMyKeyPair.setEnabled(False) +            self.ui.gbStoredPublicKeys.setEnabled(False)              msg = self.tr("<span style='color:#0000FF;'>NOTE</span>: "                            "To use this, you need to enable/start {0}.")              msg = msg.format(get_service_display_name(MX_SERVICE)) @@ -79,6 +80,12 @@ class AdvancedKeyManagement(QtGui.QWidget):          self.ui.pbImportKeys.clicked.connect(self._import_keys)          self.ui.pbExportKeys.clicked.connect(self._export_keys) +        # Stretch columns to content +        self.ui.twPublicKeys.horizontalHeader().setResizeMode( +            0, QtGui.QHeaderView.Stretch) + +        self._list_keys() +      def _import_keys(self):          """          Imports the user's key pair. @@ -183,3 +190,16 @@ class AdvancedKeyManagement(QtGui.QWidget):                  return          else:              logger.debug('Export canceled by the user.') + +    def _list_keys(self): +        """ +        Loads all the public keys stored in the local db to the keys table. +        """ +        keys = self._keymanager.get_all_keys_in_local_db() + +        keys_table = self.ui.twPublicKeys +        for key in keys: +            row = keys_table.rowCount() +            keys_table.insertRow(row) +            keys_table.setItem(row, 0, QtGui.QTableWidgetItem(key.address)) +            keys_table.setItem(row, 1, QtGui.QTableWidgetItem(key.key_id)) diff --git a/src/leap/bitmask/gui/ui/advanced_key_management.ui b/src/leap/bitmask/gui/ui/advanced_key_management.ui index d61aa87e..1112670f 100644 --- a/src/leap/bitmask/gui/ui/advanced_key_management.ui +++ b/src/leap/bitmask/gui/ui/advanced_key_management.ui @@ -6,8 +6,8 @@     <rect>      <x>0</x>      <y>0</y> -    <width>431</width> -    <height>188</height> +    <width>504</width> +    <height>546</height>     </rect>    </property>    <property name="windowTitle"> @@ -17,10 +17,13 @@     <iconset resource="../../../../../data/resources/mainwindow.qrc">      <normaloff>:/images/mask-icon.png</normaloff>:/images/mask-icon.png</iconset>    </property> -  <layout class="QGridLayout" name="gridLayout_3"> -   <item row="0" column="0"> -    <widget class="QWidget" name="container" native="true"> -     <layout class="QGridLayout" name="gridLayout_2"> +  <layout class="QGridLayout" name="gridLayout_4"> +   <item row="1" column="0" colspan="2"> +    <widget class="QGroupBox" name="gbMyKeyPair"> +     <property name="title"> +      <string>My key pair</string> +     </property> +     <layout class="QGridLayout" name="gridLayout_3">        <item row="0" column="0">         <widget class="QLabel" name="label">          <property name="text"> @@ -90,20 +93,7 @@          </property>         </widget>        </item> -      <item row="3" column="1"> -       <spacer name="verticalSpacer"> -        <property name="orientation"> -         <enum>Qt::Vertical</enum> -        </property> -        <property name="sizeHint" stdset="0"> -         <size> -          <width>20</width> -          <height>40</height> -         </size> -        </property> -       </spacer> -      </item> -      <item row="4" column="0" colspan="2"> +      <item row="3" column="0" colspan="2">         <layout class="QGridLayout" name="gridLayout">          <item row="1" column="1">           <widget class="QPushButton" name="pbExportKeys"> @@ -135,9 +125,56 @@         </layout>        </item>       </layout> +     <zorder>leKeyID</zorder> +     <zorder>leUser</zorder> +     <zorder>leFingerprint</zorder> +     <zorder>label_3</zorder> +     <zorder>label_5</zorder> +     <zorder>label</zorder> +    </widget> +   </item> +   <item row="2" column="0" colspan="2"> +    <widget class="QGroupBox" name="gbStoredPublicKeys"> +     <property name="title"> +      <string>Stored public keys</string> +     </property> +     <layout class="QGridLayout" name="gridLayout_2"> +      <item row="0" column="0"> +       <widget class="QTableWidget" name="twPublicKeys"> +        <property name="editTriggers"> +         <set>QAbstractItemView::NoEditTriggers</set> +        </property> +        <property name="alternatingRowColors"> +         <bool>true</bool> +        </property> +        <property name="selectionMode"> +         <enum>QAbstractItemView::SingleSelection</enum> +        </property> +        <property name="selectionBehavior"> +         <enum>QAbstractItemView::SelectRows</enum> +        </property> +        <property name="textElideMode"> +         <enum>Qt::ElideRight</enum> +        </property> +        <attribute name="horizontalHeaderStretchLastSection"> +         <bool>true</bool> +        </attribute> +        <column> +         <property name="text"> +          <string>Email</string> +         </property> +        </column> +        <column> +         <property name="text"> +          <string>Key ID</string> +         </property> +        </column> +       </widget> +      </item> +     </layout>      </widget>     </item> -   <item row="1" column="0"> +   <item row="3" column="0" colspan="2">      <widget class="QLabel" name="lblStatus">       <property name="text">        <string/> | 
