Skip to content

Commit

Permalink
Remove older-style GObject declarations
Browse files Browse the repository at this point in the history
This is a massive commit that surely breaks *something* (but I don't
know what right now). Fundamentally all it does is switch to glib 2.70's
API and removes a ton of deprecated declarations and macros. It
accomplishes this by modifying how pretty much every single GObject
subclass used in this project is made. With this change comes a few
other things:

 1. #pragma once, if a header was changed
 2. Removing Privates in final types, just put the vars directly in the
    struct
 3. Since 2) was done, a lot of code was able to be removed that set up
    priv-> struct access.
 4. Renaming variables where appropriate due to 3) (via find/replace and
    sed)

Scattered throughout this is also a bunch of general cleanups I took the
liberty of doing when I saw them.
  • Loading branch information
LaserEyess committed Dec 8, 2023
1 parent 2a30881 commit 45c69a1
Show file tree
Hide file tree
Showing 73 changed files with 2,100 additions and 3,274 deletions.
15 changes: 3 additions & 12 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -19,22 +19,15 @@ datadir = get_option('datadir')

# glib version info
glib_version = '2.70'
glib_max_version = glib_version
# While we actually depend on 2.70 because of libsoup3 we have some deprecated
# usage that we'll deal with later so this silences it for now.
glib_min_version = '2.56'
glib_min_version = glib_version
glib_version_str = '>= @0@'.format(glib_version)

# glib API configuration
maj_min = glib_max_version.split('.')
glib_max ='GLIB_VERSION_@0@_@1@'.format(maj_min[0], maj_min[1])
glib_max_def = '-DGLIB_VERSION_MAX_ALLOWED=@0@'.format(glib_max)

maj_min = glib_min_version.split('.')
glib_min = 'GLIB_VERSION_@0@_@1@'.format(maj_min[0], maj_min[1])
glib_min_def = '-DGLIB_VERSION_MIN_REQUIRED=@0@'.format(glib_min)

add_project_arguments(glib_min_def, glib_max_def, language: 'c')
add_project_arguments(glib_min_def, language: 'c')

# required dependencies
gtk_dep = dependency('gtk+-3.0', version: '>= 3.22')
Expand Down Expand Up @@ -105,9 +98,7 @@ flags = [
'-Werror=pointer-arith',
'-Werror=init-self',
'-Werror=missing-include-dirs',
'-Werror=date-time',
'-Wdeprecated-declarations',
'-Wdeprecated'
'-Werror=date-time'
]

cflags = cc.get_supported_arguments(flags)
Expand Down
20 changes: 5 additions & 15 deletions src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
/* Get platform dependendent localedir */
static void bindtext_wrapper(void)
{
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
textdomain(GETTEXT_PACKAGE);
#ifdef G_OS_WIN32
gchar *moddir = g_win32_get_package_installation_directory_of_module(NULL);

Expand All @@ -47,22 +49,10 @@ static void bindtext_wrapper(void)

int main(int argc, char *argv[])
{
TrgClient *client;
TrgGtkApp *gtk_app;

gtk_init(&argc, &argv);

g_set_application_name(PACKAGE_NAME);
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
textdomain(GETTEXT_PACKAGE);
bindtext_wrapper();

client = trg_client_new();
gtk_app = trg_gtk_app_new(client);
gint exitCode = g_application_run(G_APPLICATION(gtk_app), argc, argv);

g_object_unref(gtk_app);
g_object_unref(client);

return exitCode;
g_autoptr(TrgClient) client = trg_client_new();
g_autoptr(TrgGtkApp) gtk_app = trg_gtk_app_new(client);
return g_application_run(G_APPLICATION(gtk_app), argc, argv);
}
386 changes: 181 additions & 205 deletions src/torrent-cell-renderer.c

Large diffs are not rendered by default.

28 changes: 3 additions & 25 deletions src/torrent-cell-renderer.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@
*
* $Id: torrent-cell-renderer.h 12658 2011-08-09 05:47:24Z jordan $
*/

#ifndef GTR_TORRENT_CELL_RENDERER_H
#define GTR_TORRENT_CELL_RENDERER_H
#pragma once

#include <gtk/gtk.h>

Expand All @@ -22,28 +20,8 @@
#define UNKNOWN_MIME_TYPE "unknown"

#define TORRENT_CELL_RENDERER_TYPE (torrent_cell_renderer_get_type())

#define TORRENT_CELL_RENDERER(o) \
(G_TYPE_CHECK_INSTANCE_CAST((o), TORRENT_CELL_RENDERER_TYPE, TorrentCellRenderer))

typedef struct TorrentCellRenderer TorrentCellRenderer;

typedef struct TorrentCellRendererClass TorrentCellRendererClass;

struct TorrentCellRenderer {
GtkCellRenderer parent;

/*< private > */
struct TorrentCellRendererPrivate *priv;
};

struct TorrentCellRendererClass {
GtkCellRendererClass parent;
};

GType torrent_cell_renderer_get_type(void) G_GNUC_CONST;
G_DECLARE_FINAL_TYPE(TorrentCellRenderer, torrent_cell_renderer, TORRENT, CELL_RENDERER,
GtkCellRenderer)

GtkCellRenderer *torrent_cell_renderer_new(void);
GtkTreeView *torrent_cell_renderer_get_owner(TorrentCellRenderer *r);

#endif /* GTR_TORRENT_CELL_RENDERER_H */
22 changes: 9 additions & 13 deletions src/trg-cell-renderer-epoch.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,22 +31,21 @@ enum {
PROP_EPOCH_VALUE
};

G_DEFINE_TYPE(TrgCellRendererEpoch, trg_cell_renderer_epoch, GTK_TYPE_CELL_RENDERER_TEXT)
#define TRG_CELL_RENDERER_EPOCH_GET_PRIVATE(o) \
(G_TYPE_INSTANCE_GET_PRIVATE((o), TRG_TYPE_CELL_RENDERER_EPOCH, TrgCellRendererEpochPrivate))
typedef struct _TrgCellRendererEpochPrivate TrgCellRendererEpochPrivate;
struct _TrgCellRendererEpoch {
GtkCellRendererText parent;

struct _TrgCellRendererEpochPrivate {
gdouble epoch_value;
};

G_DEFINE_TYPE(TrgCellRendererEpoch, trg_cell_renderer_epoch, GTK_TYPE_CELL_RENDERER_TEXT)

static void trg_cell_renderer_epoch_get_property(GObject *object, guint property_id, GValue *value,
GParamSpec *pspec)
{
TrgCellRendererEpochPrivate *priv = TRG_CELL_RENDERER_EPOCH_GET_PRIVATE(object);
TrgCellRendererEpoch *self = TRG_CELL_RENDERER_EPOCH(object);
switch (property_id) {
case PROP_EPOCH_VALUE:
g_value_set_int64(value, priv->epoch_value);
g_value_set_int64(value, self->epoch_value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
Expand All @@ -57,19 +56,18 @@ static void trg_cell_renderer_epoch_get_property(GObject *object, guint property
static void trg_cell_renderer_epoch_set_property(GObject *object, guint property_id,
const GValue *value, GParamSpec *pspec)
{
TrgCellRendererEpochPrivate *priv = TRG_CELL_RENDERER_EPOCH_GET_PRIVATE(object);

TrgCellRendererEpoch *self = TRG_CELL_RENDERER_EPOCH(object);
if (property_id == PROP_EPOCH_VALUE) {
gint64 new_value = g_value_get_int64(value);
if (priv->epoch_value != new_value) {
if (self->epoch_value != new_value) {
if (new_value > 0) {
gchar *timestring = epoch_to_string(new_value);
g_object_set(object, "text", timestring, NULL);
g_free(timestring);
} else {
g_object_set(object, "text", "", NULL);
}
priv->epoch_value = new_value;
self->epoch_value = new_value;
}
} else {
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
Expand All @@ -88,8 +86,6 @@ static void trg_cell_renderer_epoch_class_init(TrgCellRendererEpochClass *klass)
g_param_spec_int64("epoch-value", "Epoch Value", "Epoch Value", G_MININT64, G_MAXINT64, 0,
G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK
| G_PARAM_STATIC_BLURB));

g_type_class_add_private(klass, sizeof(TrgCellRendererEpochPrivate));
}

static void trg_cell_renderer_epoch_init(TrgCellRendererEpoch *self G_GNUC_UNUSED)
Expand Down
30 changes: 4 additions & 26 deletions src/trg-cell-renderer-epoch.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,35 +17,13 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

#ifndef TRG_CELL_RENDERER_EPOCH_H_
#define TRG_CELL_RENDERER_EPOCH_H_
#pragma once

#include <glib-object.h>
#include <gtk/gtk.h>

G_BEGIN_DECLS
#define TRG_TYPE_CELL_RENDERER_EPOCH trg_cell_renderer_epoch_get_type()
#define TRG_CELL_RENDERER_EPOCH(obj) \
(G_TYPE_CHECK_INSTANCE_CAST((obj), TRG_TYPE_CELL_RENDERER_EPOCH, TrgCellRendererEpoch))
#define TRG_CELL_RENDERER_EPOCH_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST((klass), TRG_TYPE_CELL_RENDERER_EPOCH, TrgCellRendererEpochClass))
#define TRG_IS_CELL_RENDERER_EPOCH(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE((obj), TRG_TYPE_CELL_RENDERER_EPOCH))
#define TRG_IS_CELL_RENDERER_EPOCH_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE((klass), TRG_TYPE_CELL_RENDERER_EPOCH))
#define TRG_CELL_RENDERER_EPOCH_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS((obj), TRG_TYPE_CELL_RENDERER_EPOCH, TrgCellRendererEpochClass))
typedef struct {
GtkCellRendererText parent;
} TrgCellRendererEpoch;
G_DECLARE_FINAL_TYPE(TrgCellRendererEpoch, trg_cell_renderer_epoch, TRG, CELL_RENDERER_EPOCH,
GtkCellRendererText)

typedef struct {
GtkCellRendererTextClass parent_class;
} TrgCellRendererEpochClass;

GType trg_cell_renderer_epoch_get_type(void);

GtkCellRenderer *trg_cell_renderer_epoch_new(void);

G_END_DECLS
#endif /* TRG_CELL_RENDERER_EPOCH_H_ */
GtkCellRenderer *trg_cell_renderer_epoch_new(void);
25 changes: 11 additions & 14 deletions src/trg-cell-renderer-eta.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,22 +30,21 @@ enum {
PROP_ETA_VALUE
};

G_DEFINE_TYPE(TrgCellRendererEta, trg_cell_renderer_eta, GTK_TYPE_CELL_RENDERER_TEXT)
#define TRG_CELL_RENDERER_ETA_GET_PRIVATE(o) \
(G_TYPE_INSTANCE_GET_PRIVATE((o), TRG_TYPE_CELL_RENDERER_ETA, TrgCellRendererEtaPrivate))
typedef struct _TrgCellRendererEtaPrivate TrgCellRendererEtaPrivate;
struct _TrgCellRendererEta {
GtkCellRendererText parent;

struct _TrgCellRendererEtaPrivate {
gdouble eta_value;
};

G_DEFINE_TYPE(TrgCellRendererEta, trg_cell_renderer_eta, GTK_TYPE_CELL_RENDERER_TEXT)

static void trg_cell_renderer_eta_get_property(GObject *object, guint property_id, GValue *value,
GParamSpec *pspec)
{
TrgCellRendererEtaPrivate *priv = TRG_CELL_RENDERER_ETA_GET_PRIVATE(object);
TrgCellRendererEta *self = TRG_CELL_RENDERER_ETA(object);
switch (property_id) {
case PROP_ETA_VALUE:
g_value_set_int64(value, priv->eta_value);
g_value_set_int64(value, self->eta_value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
Expand All @@ -56,15 +55,15 @@ static void trg_cell_renderer_eta_get_property(GObject *object, guint property_i
static void trg_cell_renderer_eta_set_property(GObject *object, guint property_id,
const GValue *value, GParamSpec *pspec)
{
TrgCellRendererEtaPrivate *priv = TRG_CELL_RENDERER_ETA_GET_PRIVATE(object);
TrgCellRendererEta *self = TRG_CELL_RENDERER_ETA(object);

if (property_id == PROP_ETA_VALUE) {
priv->eta_value = g_value_get_int64(value);
if (priv->eta_value > 0) {
self->eta_value = g_value_get_int64(value);
if (self->eta_value > 0) {
char etaString[32];
tr_strltime_short(etaString, priv->eta_value, sizeof(etaString));
tr_strltime_short(etaString, self->eta_value, sizeof(etaString));
g_object_set(object, "text", etaString, NULL);
} else if (priv->eta_value == -2) {
} else if (self->eta_value == -2) {
g_object_set(object, "text", "∞", NULL);
} else {
g_object_set(object, "text", "", NULL);
Expand All @@ -86,8 +85,6 @@ static void trg_cell_renderer_eta_class_init(TrgCellRendererEtaClass *klass)
g_param_spec_int64("eta-value", "Eta Value", "Eta Value", G_MININT64, G_MAXINT64, 0,
G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK
| G_PARAM_STATIC_BLURB));

g_type_class_add_private(klass, sizeof(TrgCellRendererEtaPrivate));
}

static void trg_cell_renderer_eta_init(TrgCellRendererEta *self G_GNUC_UNUSED)
Expand Down
29 changes: 4 additions & 25 deletions src/trg-cell-renderer-eta.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,35 +17,14 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

#ifndef TRG_CELL_RENDERER_ETA_H_
#define TRG_CELL_RENDERER_ETA_H_
#pragma once

#include <glib-object.h>
#include <gtk/gtk.h>

G_BEGIN_DECLS
#define TRG_TYPE_CELL_RENDERER_ETA trg_cell_renderer_eta_get_type()
#define TRG_CELL_RENDERER_ETA(obj) \
(G_TYPE_CHECK_INSTANCE_CAST((obj), TRG_TYPE_CELL_RENDERER_ETA, TrgCellRendererEta))
#define TRG_CELL_RENDERER_ETA_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST((klass), TRG_TYPE_CELL_RENDERER_ETA, TrgCellRendererEtaClass))
#define TRG_IS_CELL_RENDERER_ETA(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE((obj), TRG_TYPE_CELL_RENDERER_ETA))
#define TRG_IS_CELL_RENDERER_ETA_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE((klass), TRG_TYPE_CELL_RENDERER_ETA))
#define TRG_CELL_RENDERER_ETA_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS((obj), TRG_TYPE_CELL_RENDERER_ETA, TrgCellRendererEtaClass))
typedef struct {
GtkCellRendererText parent;
} TrgCellRendererEta;
G_DECLARE_FINAL_TYPE(TrgCellRendererEta, trg_cell_renderer_eta, TRG, CELL_RENDERER_ETA,
GtkCellRendererText)

typedef struct {
GtkCellRendererTextClass parent_class;
} TrgCellRendererEtaClass;

GType trg_cell_renderer_eta_get_type(void);

GtkCellRenderer *trg_cell_renderer_eta_new(void);

G_END_DECLS
#endif /* TRG_CELL_RENDERER_ETA_H_ */
GtkCellRenderer *trg_cell_renderer_eta_new(void);
Loading

0 comments on commit 45c69a1

Please sign in to comment.