Merge lp:~pivanov/xpad/devel into lp:xpad

Proposed by Paul Ivanov
Status: Merged
Merged at revision: 617
Proposed branch: lp:~pivanov/xpad/devel
Merge into: lp:xpad
Diff against target: None lines
To merge this branch: bzr merge lp:~pivanov/xpad/devel
Reviewer Review Type Date Requested Status
Michael Terry Approve
Review via email: mp+5849@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Paul Ivanov (pivanov) wrote :

I've added a --toggle option

Revision history for this message
Michael Terry (mterry) wrote :

Hey, thanks for the code! It looks good in theory, but I haven't yet had time to sit down and look at the patch. Sorry for the late response. I'll try to get to it soon.

Revision history for this message
Michael Terry (mterry) wrote :

Looks great! Thanks so much. I've made a minor change to xpad_pad_toggle to not require loading and saving the pad's info extra times:

 void
 xpad_pad_toggle(XpadPad *pad)
 {
- gboolean show = TRUE;
- load_info (pad, &show);
- if (show)
+ if (GTK_WIDGET_VISIBLE (pad))
         xpad_pad_close (pad);
     else
         gtk_widget_show (GTK_WIDGET (pad));
- xpad_pad_save_info (pad);
 }

It's merged now!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'NEWS'
2--- NEWS 2009-01-11 16:36:47 +0000
3+++ NEWS 2009-04-24 07:22:14 +0000
4@@ -1,3 +1,5 @@
5+* Added --toggle (between --hide and --show). Patch by Paul Ivanov.
6+
7 Version 3.1
8 * Updated Danish, French, Russian, Spanish, and Swedish translations
9 * New Czech, Japanese, and Latvian translations
10
11=== modified file 'doc/xpad.1'
12--- doc/xpad.1 2008-09-20 22:56:50 +0000
13+++ doc/xpad.1 2009-04-24 07:22:14 +0000
14@@ -24,6 +24,9 @@
15 .B \-s, \-\-show
16 Shows existing pads on startup.
17 .TP
18+.B \-t, \-\-toggle
19+Toggle between showing and hiding each of the existing pads on startup.
20+.TP
21 .B \-n, \-\-new
22 Open a new pad.
23 .TP
24
25=== modified file 'src/xpad-app.c'
26--- src/xpad-app.c 2008-09-21 00:03:40 +0000
27+++ src/xpad-app.c 2009-04-24 07:22:14 +0000
28@@ -64,6 +64,7 @@
29 static gboolean option_new;
30 static gboolean option_hide;
31 static gboolean option_show;
32+static gboolean option_toggle;
33 static gboolean option_version;
34 static gboolean option_quit;
35 static gchar **option_files;
36@@ -772,6 +773,7 @@
37 {"new", 'n', 0, G_OPTION_ARG_NONE, &option_new, N_("Create a new pad on startup even if pads already exist"), NULL},
38 {"hide", 'h', 0, G_OPTION_ARG_NONE, &option_hide, N_("Hide all pads"), NULL},
39 {"show", 's', 0, G_OPTION_ARG_NONE, &option_show, N_("Show all pads"), NULL},
40+ {"toggle", 't', 0, G_OPTION_ARG_NONE, &option_toggle, N_("Toggle between show and hide all pads"), NULL},
41 {"new-from-file", 'f', 0, G_OPTION_ARG_FILENAME_ARRAY, &option_files, N_("Create a new pad with the contents of a file"), N_("FILE")},
42 {"quit", 'q', 0, G_OPTION_ARG_NONE, &option_quit, N_("Close all pads"), NULL},
43 {"sm-client-id", 0, G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_STRING, &option_smid, NULL, NULL},
44@@ -833,6 +835,7 @@
45 option_smid = NULL;
46 option_hide = FALSE;
47 option_show = FALSE;
48+ option_toggle = FALSE;
49
50 context = g_option_context_new (NULL);
51 g_option_context_set_ignore_unknown_options (context, TRUE);
52@@ -855,6 +858,9 @@
53 if (have_gtk && option_hide)
54 xpad_pad_group_close_all (pad_group);
55
56+ if (have_gtk && option_toggle)
57+ xpad_pad_group_toggle_hide (pad_group);
58+
59 if (have_gtk && option_files)
60 {
61 int i;
62@@ -884,5 +890,5 @@
63 g_option_context_free (context);
64
65 return(option_new || option_quit || option_smid || option_files ||
66- option_hide || option_show);
67+ option_hide || option_show || option_toggle);
68 }
69
70=== modified file 'src/xpad-pad-group.c'
71--- src/xpad-pad-group.c 2008-09-21 00:03:40 +0000
72+++ src/xpad-pad-group.c 2009-04-24 07:22:14 +0000
73@@ -175,3 +175,11 @@
74 g_slist_foreach (group->priv->pads, (GFunc) gtk_widget_show, NULL);
75 }
76
77+
78+void
79+xpad_pad_group_toggle_hide(XpadPadGroup *group)
80+{
81+ if (group)
82+ g_slist_foreach (group->priv->pads, (GFunc) xpad_pad_toggle, NULL);
83+}
84+
85
86=== modified file 'src/xpad-pad.c'
87--- src/xpad-pad.c 2008-09-21 00:03:40 +0000
88+++ src/xpad-pad.c 2009-04-24 07:22:14 +0000
89@@ -615,6 +615,18 @@
90 g_signal_emit (pad, signals[CLOSED], 0);
91 }
92
93+void
94+xpad_pad_toggle(XpadPad *pad)
95+{
96+ gboolean show = TRUE;
97+ load_info (pad, &show);
98+ if (show)
99+ xpad_pad_close (pad);
100+ else
101+ gtk_widget_show (GTK_WIDGET (pad));
102+ xpad_pad_save_info (pad);
103+}
104+
105 static gboolean
106 should_confirm_delete (XpadPad *pad)
107 {
108
109=== modified file 'src/xpad-pad.h'
110--- src/xpad-pad.h 2008-09-21 00:03:40 +0000
111+++ src/xpad-pad.h 2009-04-24 07:22:14 +0000
112@@ -57,6 +57,7 @@
113 GtkWidget *xpad_pad_new_with_info (XpadPadGroup *group, const gchar *info_filename, gboolean *show);
114 GtkWidget *xpad_pad_new_from_file (XpadPadGroup *group, const gchar *filename);
115 void xpad_pad_close (XpadPad *pad);
116+void xpad_pad_toggle (XpadPad *pad);
117 void xpad_pad_save_info (XpadPad *pad);
118
119 G_END_DECLS

Subscribers

People subscribed via source and target branches