diff options
author | Christian Grothoff <christian@grothoff.org> | 2014-06-04 12:45:58 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2014-06-04 12:45:58 +0000 |
commit | 07d01a27d110ccccd94b7b005b7fd7067bab745f (patch) | |
tree | abb0a9a28dd31b6c5266803ccd4ffb3b79d644cc /src/conversation/gnunet-conversation-gtk_egos.c | |
parent | 1e5b178f6e1109c53eecc7fad38137f345d35b78 (diff) | |
download | gnunet-gtk-07d01a27d110ccccd94b7b005b7fd7067bab745f.tar.gz gnunet-gtk-07d01a27d110ccccd94b7b005b7fd7067bab745f.zip |
-implement COPY button
Diffstat (limited to 'src/conversation/gnunet-conversation-gtk_egos.c')
-rw-r--r-- | src/conversation/gnunet-conversation-gtk_egos.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/conversation/gnunet-conversation-gtk_egos.c b/src/conversation/gnunet-conversation-gtk_egos.c index 4c4d4a2f..4646f6e4 100644 --- a/src/conversation/gnunet-conversation-gtk_egos.c +++ b/src/conversation/gnunet-conversation-gtk_egos.c | |||
@@ -175,7 +175,33 @@ void | |||
175 | gnunet_conversation_gtk_ego_copy_button_clicked_cb (GtkButton *button, | 175 | gnunet_conversation_gtk_ego_copy_button_clicked_cb (GtkButton *button, |
176 | gpointer user_data) | 176 | gpointer user_data) |
177 | { | 177 | { |
178 | GNUNET_break (0); // FIXME: not implemented | 178 | struct GNUNET_IDENTITY_Ego *ego; |
179 | const gchar *label; | ||
180 | const struct GNUNET_CRYPTO_EcdsaPrivateKey *priv; | ||
181 | struct GNUNET_CRYPTO_EcdsaPublicKey pub; | ||
182 | const char *zkey; | ||
183 | char *uri; | ||
184 | GtkClipboard *cb; | ||
185 | |||
186 | label = gtk_entry_get_text (GTK_ENTRY | ||
187 | (GCG_get_main_window_object | ||
188 | ("gnunet_conversation_gtk_ego_label_entry"))); | ||
189 | GNUNET_break ( (NULL != label) && | ||
190 | (0 != strlen (label)) ); | ||
191 | ego = GCG_EGOS_get_selected_ego (); | ||
192 | GNUNET_break (NULL != ego); | ||
193 | priv = GNUNET_IDENTITY_ego_get_private_key (ego); | ||
194 | GNUNET_CRYPTO_ecdsa_key_get_public (priv, | ||
195 | &pub); | ||
196 | zkey = GNUNET_GNSRECORD_pkey_to_zkey (&pub); | ||
197 | GNUNET_asprintf (&uri, | ||
198 | "gnunet://gns/%s.%s/", | ||
199 | label, | ||
200 | zkey); | ||
201 | cb = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); | ||
202 | gtk_clipboard_set_text (cb, uri, -1); | ||
203 | gtk_clipboard_store (cb); | ||
204 | GNUNET_free (uri); | ||
179 | } | 205 | } |
180 | 206 | ||
181 | 207 | ||