summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c
index 5f0953e..37b864f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -73,6 +73,8 @@ typedef struct
GtkWidget* statusbar;
guint status_contextid;
+ GtkWidget* aboutdlg;
+
GKeyFile* config;
gchar* configfile;
guint config_timer;
@@ -259,6 +261,8 @@ static void do_start(GtkAction* action, gpointer data);
static void do_stop(GtkAction* action, gpointer data);
static void do_rehash(GtkAction* action, gpointer data);
+static void do_about(GtkMenuItem* menuitem, gpointer data);
+
static gpointer worker_main(gpointer data);
static gboolean incoming_msg(gpointer data);
static gboolean sync_config(gpointer data);
@@ -315,7 +319,7 @@ int main(int argc, char** argv)
if (ret == 0)
{
g_clear_error(&error);
- gladefile = "gui/viewtorrents.glade";
+ gladefile = g_strdup("gui/viewtorrents.glade");
ret = gtk_builder_add_from_file(builder, gladefile, &error);
}
#endif
@@ -338,6 +342,16 @@ int main(int argc, char** argv)
g_signal_connect(gtk_builder_get_object(builder, "quitmenuitem"),
"activate", G_CALLBACK(gtk_main_quit), NULL);
+ master.aboutdlg = GTK_WIDGET(gtk_builder_get_object(builder,
+ "aboutdialog"));
+ g_signal_connect_swapped(master.aboutdlg,
+ "response",
+ G_CALLBACK(gtk_widget_hide),
+ master.aboutdlg);
+
+ g_signal_connect(gtk_builder_get_object(builder, "aboutmenuitem"),
+ "activate", G_CALLBACK(do_about), &master);
+
master.connectaction = GTK_ACTION(gtk_builder_get_object(builder,
"connectaction"));
g_signal_connect(master.connectaction,
@@ -2234,3 +2248,9 @@ void listselection_changed(GtkTreeSelection* selection,
gtk_action_set_sensitive(master->stopaction, FALSE);
gtk_action_set_sensitive(master->rehashaction, FALSE);
}
+
+void do_about(GtkMenuItem* G_GNUC_UNUSED menuitem, gpointer data)
+{
+ master_t* master = data;
+ gtk_widget_show_all(master->aboutdlg);
+}