From 5de8ccf898677a2d156bd54d426e30e79bc624eb Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Wed, 28 May 2014 22:16:22 +0200 Subject: Upgrade to GTK+3.0 --- configure.ac | 2 +- gui/viewtorrents.glade | 506 ++++++++++++++++++++------------------- src/customcellrendererleft.c | 40 +++- src/customcellrendererleft.h | 4 - src/customcellrendererprogress.c | 47 +++- src/customcellrendererprogress.h | 5 - src/customcellrendererrate.c | 36 ++- src/customcellrendererrate.h | 4 - src/customcellrendererstate.c | 38 ++- src/customcellrendererstate.h | 4 - 10 files changed, 378 insertions(+), 308 deletions(-) diff --git a/configure.ac b/configure.ac index aa41f75..fc01dcf 100644 --- a/configure.ac +++ b/configure.ac @@ -30,7 +30,7 @@ AC_SEARCH_LIBS([fabs], [m],, AC_MSG_ERROR([No fabs found])) # GTK -PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.18 glib-2.0 >= 2.28]) +PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= 3.0 glib-2.0 >= 2.28]) # xmlrpc-c diff --git a/gui/viewtorrents.glade b/gui/viewtorrents.glade index 5f95115..9efaccf 100644 --- a/gui/viewtorrents.glade +++ b/gui/viewtorrents.glade @@ -1,7 +1,7 @@ + - - + @@ -43,215 +43,43 @@ - + + True False - 5 - About - center-on-parent - True - dialog - main - Viewtorrents - 0.1 - Copyright Joel Klinghed 2011 - Joel Klinghed - viewtorrents - - + accelgroup1 + + + True + startaction True False - 2 - - - True - False - end - - - False - True - end - 0 - - - - - + True + True + accelgroup1 - - - False - 5 - Connect - True - center-on-parent - True - dialog - main - - + + + True + stopaction True False - 2 - - - True - False - end - - - gtk-cancel - False - True - True - True - True - - - False - False - 0 - - - - - gtk-connect - False - True - True - True - True - True - - - False - False - 1 - - - - - False - True - end - 0 - - - - - True - False - Enter the URL for the rTorrent RPC instance to connect to. -If authentication is needed, enter username and password as well. - - - True - True - 1 - - - - - True - False - 3 - 2 - - - True - False - URL: - - - - - True - False - Username: - - - 1 - 2 - - - - - True - False - Password: - - - 2 - 3 - - - - - True - True - - True - False - False - True - True - - - 1 - 2 - - - - - True - True - - True - False - False - True - True - - - 1 - 2 - 1 - 2 - - - - - True - True - False - - True - False - False - True - True - - - 1 - 2 - 2 - 3 - - - - - True - True - 2 - - + True + True + accelgroup1 + + + + + True + rehashaction + True + False + True + True + accelgroup1 - - button4 - button3 - @@ -286,9 +114,10 @@ If authentication is needed, enter username and password as well. - + True False + vertical True @@ -306,6 +135,7 @@ If authentication is needed, enter username and password as well. False + True connectaction True False @@ -316,6 +146,7 @@ If authentication is needed, enter username and password as well. + True disconnectaction True False @@ -334,7 +165,6 @@ If authentication is needed, enter username and password as well. gtk-quit - False True False True @@ -359,6 +189,7 @@ If authentication is needed, enter username and password as well. False + True startaction True False @@ -369,6 +200,7 @@ If authentication is needed, enter username and password as well. + True stopaction True False @@ -379,6 +211,7 @@ If authentication is needed, enter username and password as well. + True rehashaction True False @@ -407,8 +240,6 @@ If authentication is needed, enter username and password as well. False True False - Toolbar - True True @@ -459,7 +290,9 @@ If authentication is needed, enter username and password as well. connectaction True False + Connect True + gtk-connect False @@ -471,7 +304,9 @@ If authentication is needed, enter username and password as well. disconnectaction True False + Disconnect True + gtk-disconnect False @@ -494,7 +329,9 @@ If authentication is needed, enter username and password as well. startaction True False + Start True + gtk-media-play False @@ -506,7 +343,9 @@ If authentication is needed, enter username and password as well. stopaction True False + Stop True + gtk-media-stop False @@ -518,7 +357,9 @@ If authentication is needed, enter username and password as well. rehashaction True False + Rehash True + gtk-refresh False @@ -536,7 +377,6 @@ If authentication is needed, enter username and password as well. True True - automatic True @@ -547,6 +387,9 @@ If authentication is needed, enter username and password as well. 1 True 1 + + + fixed @@ -587,7 +430,7 @@ If authentication is needed, enter username and password as well. fixed - 70 + 85 Up True True @@ -598,7 +441,7 @@ If authentication is needed, enter username and password as well. fixed - 70 + 85 Down True True @@ -639,6 +482,210 @@ If authentication is needed, enter username and password as well. + + False + 5 + About + center-on-parent + True + dialog + main + Viewtorrents + 0.1 + Copyright Joel Klinghed 2011 + Joel Klinghed + viewtorrents + + + True + False + 2 + + + True + False + end + + + False + True + end + 0 + + + + + + + + + + False + 5 + Connect + True + center-on-parent + True + dialog + main + + + True + False + 2 + + + True + False + end + + + gtk-cancel + False + True + True + True + True + + + False + False + 0 + + + + + gtk-connect + False + True + True + True + True + True + + + False + False + 1 + + + + + False + True + end + 0 + + + + + True + False + Enter the URL for the rTorrent RPC instance to connect to. +If authentication is needed, enter username and password as well. + + + True + True + 1 + + + + + True + False + 5 + True + + + True + False + URL: + + + 0 + 0 + + + + + True + True + + True + False + False + + + 1 + 0 + + + + + True + False + Username: + + + 0 + 1 + + + + + True + True + + True + False + False + + + 1 + 1 + + + + + True + False + Password: + + + 0 + 2 + + + + + True + True + False + + True + False + False + + + 1 + 2 + + + + + True + True + 3 + + + + + + button4 + button3 + + False 5 @@ -649,12 +696,12 @@ If authentication is needed, enter username and password as well. dialog main - + True False 2 - + True False end @@ -718,8 +765,6 @@ If authentication is needed, enter username and password as well. True False False - True - True True @@ -734,39 +779,4 @@ If authentication is needed, enter username and password as well. button1 - - True - False - accelgroup1 - - - startaction - True - False - True - True - accelgroup1 - - - - - stopaction - True - False - True - True - accelgroup1 - - - - - rehashaction - True - False - True - True - accelgroup1 - - - diff --git a/src/customcellrendererleft.c b/src/customcellrendererleft.c index 89184e5..2dc3ae9 100644 --- a/src/customcellrendererleft.c +++ b/src/customcellrendererleft.c @@ -2,6 +2,20 @@ #include "customcellrendererleft.h" +/* Private class member */ +#define PRIVATE(obj) \ + (G_TYPE_INSTANCE_GET_PRIVATE((obj), \ + CUSTOM_TYPE_CELL_RENDERER_LEFT, \ + CustomCellRendererLeftPrivate)) + +typedef struct _CustomCellRendererLeftPrivate CustomCellRendererLeftPrivate; + +struct _CustomCellRendererLeftPrivate +{ + gint64 left; + gchar buffer[20]; +}; + static void custom_cell_renderer_left_get_property(GObject* object, guint param_id, GValue* value, @@ -14,17 +28,18 @@ static void custom_cell_renderer_left_set_property(GObject* object, static void convert_left_to_string(gchar* str, guint size, gint64 left); enum { - PROP_0, - PROP_LEFT, + PROP_0, + PROP_LEFT, }; G_DEFINE_TYPE(CustomCellRendererLeft, custom_cell_renderer_left, GTK_TYPE_CELL_RENDERER_TEXT) static void custom_cell_renderer_left_init(CustomCellRendererLeft* cell_left) { - convert_left_to_string(cell_left->buffer, sizeof(cell_left->buffer), - cell_left->left); - g_object_set(cell_left, "text", cell_left->buffer, NULL); + convert_left_to_string(PRIVATE(cell_left)->buffer, + sizeof(PRIVATE(cell_left)->buffer), + PRIVATE(cell_left)->left); + g_object_set(cell_left, "text", PRIVATE(cell_left)->buffer, NULL); } static void custom_cell_renderer_left_class_init(CustomCellRendererLeftClass *cell_left_class) @@ -35,6 +50,9 @@ static void custom_cell_renderer_left_class_init(CustomCellRendererLeftClass *ce object_class = G_OBJECT_CLASS(cell_left_class); /* cell_renderer_class = GTK_CELL_RENDERER_CLASS(cell_left_class); */ + g_type_class_add_private(object_class, + sizeof(CustomCellRendererLeftPrivate)); + object_class->set_property = custom_cell_renderer_left_set_property; object_class->get_property = custom_cell_renderer_left_get_property; @@ -64,7 +82,7 @@ void custom_cell_renderer_left_get_property(GObject* object, switch (param_id) { case PROP_LEFT: - g_value_set_int64(value, left->left); + g_value_set_int64(value, PRIVATE(left)->left); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); @@ -85,9 +103,9 @@ void custom_cell_renderer_left_set_property(GObject* object, { gint64 left_value = g_value_get_int64(value); - if (left->left != left_value) + if (PRIVATE(left)->left != left_value) { - left->left = left_value; + PRIVATE(left)->left = left_value; changed = TRUE; } break; @@ -98,8 +116,10 @@ void custom_cell_renderer_left_set_property(GObject* object, if (changed) { - convert_left_to_string(left->buffer, sizeof(left->buffer), left->left); - g_object_set(left, "text", left->buffer, NULL); + convert_left_to_string(PRIVATE(left)->buffer, + sizeof(PRIVATE(left)->buffer), + PRIVATE(left)->left); + g_object_set(left, "text", PRIVATE(left)->buffer, NULL); } } diff --git a/src/customcellrendererleft.h b/src/customcellrendererleft.h index 6e18ebd..717ea17 100644 --- a/src/customcellrendererleft.h +++ b/src/customcellrendererleft.h @@ -27,10 +27,6 @@ typedef struct _CustomCellRendererLeftClass CustomCellRendererLeftClass; struct _CustomCellRendererLeft { GtkCellRendererText parent; - - /*< private >*/ - gint64 GSEAL (left); - gchar GSEAL (buffer[20]); }; struct _CustomCellRendererLeftClass diff --git a/src/customcellrendererprogress.c b/src/customcellrendererprogress.c index 04912e7..f8c3eb8 100644 --- a/src/customcellrendererprogress.c +++ b/src/customcellrendererprogress.c @@ -2,6 +2,21 @@ #include "customcellrendererprogress.h" +/* Private class member */ +#define PRIVATE(obj) \ + (G_TYPE_INSTANCE_GET_PRIVATE((obj), \ + CUSTOM_TYPE_CELL_RENDERER_PROGRESS, \ + CustomCellRendererProgressPrivate)) + +typedef struct _CustomCellRendererProgressPrivate CustomCellRendererProgressPrivate; + +struct _CustomCellRendererProgressPrivate +{ + gfloat downloaded; + gfloat seeded; + gchar buffer[10]; +}; + static void custom_cell_renderer_progress_get_property(GObject* object, guint param_id, GValue* value, @@ -15,9 +30,9 @@ static void update_progress(CustomCellRendererProgress* cell_progress, gfloat downloaded, gfloat seeded); enum { - PROP_0, - PROP_DOWNLOADED, - PROP_SEEDED, + PROP_0, + PROP_DOWNLOADED, + PROP_SEEDED, }; G_DEFINE_TYPE(CustomCellRendererProgress, custom_cell_renderer_progress, GTK_TYPE_CELL_RENDERER_PROGRESS) @@ -25,7 +40,8 @@ G_DEFINE_TYPE(CustomCellRendererProgress, custom_cell_renderer_progress, GTK_TYP static void custom_cell_renderer_progress_init(CustomCellRendererProgress* cell_progress) { update_progress(cell_progress, - cell_progress->downloaded, cell_progress->seeded); + PRIVATE(cell_progress)->downloaded, + PRIVATE(cell_progress)->seeded); } static void custom_cell_renderer_progress_class_init(CustomCellRendererProgressClass *cell_progress_class) @@ -36,6 +52,9 @@ static void custom_cell_renderer_progress_class_init(CustomCellRendererProgressC object_class = G_OBJECT_CLASS(cell_progress_class); /* cell_renderer_class = GTK_CELL_RENDERER_CLASS(cell_progress_class); */ + g_type_class_add_private(object_class, + sizeof(CustomCellRendererProgressPrivate)); + object_class->set_property = custom_cell_renderer_progress_set_property; object_class->get_property = custom_cell_renderer_progress_get_property; @@ -75,10 +94,10 @@ void custom_cell_renderer_progress_get_property(GObject* object, switch (param_id) { case PROP_DOWNLOADED: - g_value_set_float(value, progress->downloaded); + g_value_set_float(value, PRIVATE(progress)->downloaded); break; case PROP_SEEDED: - g_value_set_float(value, progress->seeded); + g_value_set_float(value, PRIVATE(progress)->seeded); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); @@ -99,9 +118,9 @@ void custom_cell_renderer_progress_set_property(GObject* object, { gfloat downloaded = g_value_get_float(value); - if (progress->downloaded != downloaded) + if (PRIVATE(progress)->downloaded != downloaded) { - progress->downloaded = downloaded; + PRIVATE(progress)->downloaded = downloaded; changed = TRUE; } break; @@ -110,9 +129,9 @@ void custom_cell_renderer_progress_set_property(GObject* object, { gfloat seeded = g_value_get_float(value); - if (progress->seeded != seeded) + if (PRIVATE(progress)->seeded != seeded) { - progress->seeded = seeded; + PRIVATE(progress)->seeded = seeded; changed = TRUE; } break; @@ -123,17 +142,19 @@ void custom_cell_renderer_progress_set_property(GObject* object, if (changed) { - update_progress(progress, progress->downloaded, progress->seeded); + update_progress(progress, PRIVATE(progress)->downloaded, + PRIVATE(progress)->seeded); } } void update_progress(CustomCellRendererProgress* cell_progress, gfloat downloaded, gfloat seeded) { - g_snprintf(cell_progress->buffer, sizeof(cell_progress->buffer), + g_snprintf(PRIVATE(cell_progress)->buffer, + sizeof(PRIVATE(cell_progress)->buffer), "%2.2f", seeded); g_object_set(cell_progress, "value", (gint)downloaded, - "text", cell_progress->buffer, + "text", PRIVATE(cell_progress)->buffer, NULL); } diff --git a/src/customcellrendererprogress.h b/src/customcellrendererprogress.h index 7e3a7ba..f139b9b 100644 --- a/src/customcellrendererprogress.h +++ b/src/customcellrendererprogress.h @@ -27,11 +27,6 @@ typedef struct _CustomCellRendererProgressClass CustomCellRendererProgressClass; struct _CustomCellRendererProgress { GtkCellRendererProgress parent; - - /*< private >*/ - gfloat GSEAL (downloaded); - gfloat GSEAL (seeded); - gchar GSEAL (buffer[10]); }; struct _CustomCellRendererProgressClass diff --git a/src/customcellrendererrate.c b/src/customcellrendererrate.c index f86c76d..7d39886 100644 --- a/src/customcellrendererrate.c +++ b/src/customcellrendererrate.c @@ -2,6 +2,20 @@ #include "customcellrendererrate.h" +/* Private class member */ +#define PRIVATE(obj) \ + (G_TYPE_INSTANCE_GET_PRIVATE((obj), \ + CUSTOM_TYPE_CELL_RENDERER_RATE, \ + CustomCellRendererRatePrivate)) + +typedef struct _CustomCellRendererRatePrivate CustomCellRendererRatePrivate; + +struct _CustomCellRendererRatePrivate +{ + gfloat rate; + gchar buffer[10]; +}; + static void custom_cell_renderer_rate_get_property(GObject* object, guint param_id, GValue* value, @@ -23,9 +37,10 @@ G_DEFINE_TYPE(CustomCellRendererRate, custom_cell_renderer_rate, GTK_TYPE_CELL_R static void custom_cell_renderer_rate_init(CustomCellRendererRate* cell_rate) { g_object_set(cell_rate, "xalign", 1.0f, NULL); - convert_rate_to_string(cell_rate->buffer, sizeof(cell_rate->buffer), - cell_rate->rate); - g_object_set(cell_rate, "text", cell_rate->buffer, NULL); + convert_rate_to_string(PRIVATE(cell_rate)->buffer, + sizeof(PRIVATE(cell_rate)->buffer), + PRIVATE(cell_rate)->rate); + g_object_set(cell_rate, "text", PRIVATE(cell_rate)->buffer, NULL); } static void custom_cell_renderer_rate_class_init(CustomCellRendererRateClass *cell_rate_class) @@ -36,6 +51,9 @@ static void custom_cell_renderer_rate_class_init(CustomCellRendererRateClass *ce object_class = G_OBJECT_CLASS(cell_rate_class); /* cell_renderer_class = GTK_CELL_RENDERER_CLASS(cell_rate_class); */ + g_type_class_add_private(object_class, + sizeof(CustomCellRendererRatePrivate)); + object_class->set_property = custom_cell_renderer_rate_set_property; object_class->get_property = custom_cell_renderer_rate_get_property; @@ -65,7 +83,7 @@ void custom_cell_renderer_rate_get_property(GObject* object, switch (param_id) { case PROP_RATE: - g_value_set_float(value, rate->rate); + g_value_set_float(value, PRIVATE(rate)->rate); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); @@ -86,9 +104,9 @@ void custom_cell_renderer_rate_set_property(GObject* object, { gfloat rate_value = g_value_get_float(value); - if (rate->rate != rate_value) + if (PRIVATE(rate)->rate != rate_value) { - rate->rate = rate_value; + PRIVATE(rate)->rate = rate_value; changed = TRUE; } break; @@ -99,8 +117,10 @@ void custom_cell_renderer_rate_set_property(GObject* object, if (changed) { - convert_rate_to_string(rate->buffer, sizeof(rate->buffer), rate->rate); - g_object_set(rate, "text", rate->buffer, NULL); + convert_rate_to_string(PRIVATE(rate)->buffer, + sizeof(PRIVATE(rate)->buffer), + PRIVATE(rate)->rate); + g_object_set(rate, "text", PRIVATE(rate)->buffer, NULL); } } diff --git a/src/customcellrendererrate.h b/src/customcellrendererrate.h index 48105d3..a227ea1 100644 --- a/src/customcellrendererrate.h +++ b/src/customcellrendererrate.h @@ -27,10 +27,6 @@ typedef struct _CustomCellRendererRateClass CustomCellRendererRateClass; struct _CustomCellRendererRate { GtkCellRendererText parent; - - /*< private >*/ - gfloat GSEAL (rate); - gchar GSEAL (buffer[10]); }; struct _CustomCellRendererRateClass diff --git a/src/customcellrendererstate.c b/src/customcellrendererstate.c index 8c02358..52fcade 100644 --- a/src/customcellrendererstate.c +++ b/src/customcellrendererstate.c @@ -2,6 +2,19 @@ #include "customcellrendererstate.h" +/* Private class member */ +#define PRIVATE(obj) \ + (G_TYPE_INSTANCE_GET_PRIVATE((obj), \ + CUSTOM_TYPE_CELL_RENDERER_STATE, \ + CustomCellRendererStatePrivate)) + +typedef struct _CustomCellRendererStatePrivate CustomCellRendererStatePrivate; + +struct _CustomCellRendererStatePrivate +{ + gint state; +}; + static void custom_cell_renderer_state_get_property(GObject* object, guint param_id, GValue* value, @@ -14,15 +27,15 @@ static void custom_cell_renderer_state_set_property(GObject* object, static void update_state(CustomCellRendererState* cell_state, gint state); enum { - PROP_0, - PROP_STATE, + PROP_0, + PROP_STATE, }; G_DEFINE_TYPE(CustomCellRendererState, custom_cell_renderer_state, GTK_TYPE_CELL_RENDERER_PIXBUF) static void custom_cell_renderer_state_init(CustomCellRendererState* cell_state) { - update_state(cell_state, cell_state->state); + update_state(cell_state, PRIVATE(cell_state)->state); } static void custom_cell_renderer_state_class_init(CustomCellRendererStateClass *cell_state_class) @@ -33,6 +46,9 @@ static void custom_cell_renderer_state_class_init(CustomCellRendererStateClass * object_class = G_OBJECT_CLASS(cell_state_class); /* cell_renderer_class = GTK_CELL_RENDERER_CLASS(cell_state_class); */ + g_type_class_add_private(object_class, + sizeof(CustomCellRendererStatePrivate)); + object_class->set_property = custom_cell_renderer_state_set_property; object_class->get_property = custom_cell_renderer_state_get_property; @@ -62,7 +78,7 @@ void custom_cell_renderer_state_get_property(GObject* object, switch (param_id) { case PROP_STATE: - g_value_set_int(value, state->state); + g_value_set_int(value, PRIVATE(state)->state); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, param_id, pspec); @@ -83,9 +99,9 @@ void custom_cell_renderer_state_set_property(GObject* object, { gint state_value = g_value_get_int(value); - if (state->state != state_value) + if (PRIVATE(state)->state != state_value) { - state->state = state_value; + PRIVATE(state)->state = state_value; changed = TRUE; } break; @@ -96,7 +112,7 @@ void custom_cell_renderer_state_set_property(GObject* object, if (changed) { - update_state(state, state->state); + update_state(state, PRIVATE(state)->state); } } @@ -105,16 +121,16 @@ void update_state(CustomCellRendererState* cell_state, gint state) switch ((state_t)state) { case STATE_DEAD: - g_object_set(cell_state, "stock-id", GTK_STOCK_CLOSE, NULL); + g_object_set(cell_state, "icon-name", "media-playback-stop", NULL); break; case STATE_ACTIVE: - g_object_set(cell_state, "stock-id", GTK_STOCK_YES, NULL); + g_object_set(cell_state, "icon-name", "media-playback-start", NULL); break; case STATE_REHASH: - g_object_set(cell_state, "stock-id", GTK_STOCK_REFRESH, NULL); + g_object_set(cell_state, "icon-name", "view-refresh", NULL); break; case STATE_HASHFAILED: - g_object_set(cell_state, "stock-id", GTK_STOCK_NO, NULL); + g_object_set(cell_state, "stock-id", "dialog-warning", NULL); break; default: g_assert(FALSE); diff --git a/src/customcellrendererstate.h b/src/customcellrendererstate.h index 2d163f3..495185d 100644 --- a/src/customcellrendererstate.h +++ b/src/customcellrendererstate.h @@ -35,10 +35,6 @@ typedef struct _CustomCellRendererStateClass CustomCellRendererStateClass; struct _CustomCellRendererState { GtkCellRendererPixbuf parent; - - /*< private >*/ - gint GSEAL (state); - GdkPixbuf* GSEAL (buffer[3]); }; struct _CustomCellRendererStateClass -- cgit v1.2.3-70-g09d2