anastasis-gtk_handle-payqr-selection-changed.c (2088B)
1 /* 2 This file is part of anastasis-gtk. 3 Copyright (C) 2020 Anastasis SARL 4 5 Anastasis is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published 7 by the Free Software Foundation; either version 3, or (at your 8 option) any later version. 9 10 Anastasis is distributed in the hope that it will be useful, but 11 WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with Anastasis; see the file COPYING. If not, write to the 17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 Boston, MA 02110-1301, USA. 19 */ 20 /** 21 * @file src/anastasis/anastasis-gtk_handle-payqr-selection-changed.c 22 * @brief 23 * @author Christian Grothoff 24 */ 25 #include <gnunet/gnunet_util_lib.h> 26 #include "anastasis-gtk_action.h" 27 #include "anastasis-gtk_helper.h" 28 #include "anastasis-gtk_rows.h" 29 #include <jansson.h> 30 31 32 /** 33 * Callback invoked if the QR code selection changed. 34 * 35 * @param selection the selection of the list of payment requests 36 * @param pspec unused 37 * @param user_data user data set when the signal handler was connected. 38 */ 39 void 40 unpaid_qr_tree_selection_changed_cb (GtkSingleSelection *selection, 41 GParamSpec *pspec, 42 gpointer user_data) 43 { 44 AGRow *row; 45 GdkClipboard *cb; 46 GtkWidget *tv; 47 const char *uri = ""; 48 49 (void) pspec; 50 (void) user_data; 51 tv = GTK_WIDGET (GCG_get_main_window_object ("unpaid_qr_treeview")); 52 if (NULL == tv) 53 { 54 GNUNET_break (0); 55 return; 56 } 57 cb = gtk_widget_get_primary_clipboard (tv); 58 GNUNET_assert (NULL != cb); 59 row = AG_selected (selection); 60 if (NULL != row) 61 { 62 const char *url = AG_row_string (row, 63 "url"); 64 65 if (NULL != url) 66 uri = url; 67 } 68 gdk_clipboard_set_text (cb, 69 uri); 70 }