From 1e3c30e9f3582d9e689071e564a5153237efa24c Mon Sep 17 00:00:00 2001
From: inso <insomniak.fr@gmaiL.com>
Date: Wed, 23 Aug 2017 06:53:42 +0200
Subject: [PATCH] Copy with CRC from navigation

---
 src/sakia/gui/navigation/controller.py | 8 +++++++-
 src/sakia/gui/navigation/model.py      | 8 +++++++-
 src/sakia/gui/widgets/context_menu.py  | 4 ++++
 3 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/src/sakia/gui/navigation/controller.py b/src/sakia/gui/navigation/controller.py
index 605d2d9c..87367755 100644
--- a/src/sakia/gui/navigation/controller.py
+++ b/src/sakia/gui/navigation/controller.py
@@ -168,9 +168,15 @@ class NavigationController(QObject):
             copy_pubkey = QAction(menu.tr("Copy pubkey to clipboard"), menu.parent())
             copy_pubkey.triggered.connect(lambda checked,
                                                  c=raw_data['misc']['connection']: \
-                                              NavigationModel.copy_pubkey_to_clipboard(c))
+                                                 NavigationModel.copy_pubkey_to_clipboard(c))
             menu.addAction(copy_pubkey)
 
+            copy_pubkey_crc = QAction(menu.tr("Copy pubkey to clipboard (with CRC)"), menu.parent())
+            copy_pubkey_crc.triggered.connect(lambda checked,
+                                                     c=raw_data['misc']['connection']: \
+                                              NavigationModel.copy_pubkey_to_clipboard_with_crc(c))
+            menu.addAction(copy_pubkey_crc)
+
             action_remove = QAction(self.tr("Remove the connection"), menu)
             menu.addAction(action_remove)
             action_remove.triggered.connect(lambda c: self.remove_connection(raw_data['misc']['connection']))
diff --git a/src/sakia/gui/navigation/model.py b/src/sakia/gui/navigation/model.py
index d3bbc97c..825b277b 100644
--- a/src/sakia/gui/navigation/model.py
+++ b/src/sakia/gui/navigation/model.py
@@ -2,6 +2,7 @@ from PyQt5.QtCore import QObject, pyqtSignal
 from PyQt5.QtWidgets import QApplication
 from sakia.models.generic_tree import GenericTreeModel
 from sakia.data.processors import ContactsProcessor
+from duniterpy.documents.crc_pubkey import CRCPubkey
 
 
 class NavigationModel(QObject):
@@ -225,4 +226,9 @@ class NavigationModel(QObject):
     @staticmethod
     def copy_pubkey_to_clipboard(connection):
         clipboard = QApplication.clipboard()
-        clipboard.setText(connection.pubkey)
\ No newline at end of file
+        clipboard.setText(connection.pubkey)
+
+    @staticmethod
+    def copy_pubkey_to_clipboard_with_crc(connection):
+        clipboard = QApplication.clipboard()
+        clipboard.setText(str(CRCPubkey.from_pubkey(connection.pubkey)))
\ No newline at end of file
diff --git a/src/sakia/gui/widgets/context_menu.py b/src/sakia/gui/widgets/context_menu.py
index 52bf5714..4894e3b6 100644
--- a/src/sakia/gui/widgets/context_menu.py
+++ b/src/sakia/gui/widgets/context_menu.py
@@ -101,6 +101,10 @@ class ContextMenu(QObject):
             copy_pubkey.triggered.connect(lambda checked, p=str_value: ContextMenu.copy_pubkey_to_clipboard(p))
             menu.qmenu.addAction(copy_pubkey)
 
+            copy_pubkey = QAction(menu.qmenu.tr("Copy pubkey to clipboard (with CRC)"), menu.qmenu.parent())
+            copy_pubkey.triggered.connect(lambda checked, p=str_value: ContextMenu.copy_pubkey_to_clipboard_with_crc(p))
+            menu.qmenu.addAction(copy_pubkey)
+
             if menu._connection.pubkey != str_value:
                 send_money = QAction(menu.qmenu.tr("Send money"), menu.qmenu.parent())
                 send_money.triggered.connect(lambda checked, p=str_value: menu.send_money(p))
-- 
GitLab