Port GTK client to C++ (#1833)

* Rename GTK client .c files to .cc

* Fix GTK client build errors after C to C++ switch

* Remove `G_{BEGIN,END}_DECLS`

Co-authored-by: Charles Kerr <charles@charleskerr.com>
This commit is contained in:
Mike Gelfand 2021-09-25 13:47:09 +03:00 committed by GitHub
parent b92c609ed9
commit 4ac1c601f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 224 additions and 233 deletions

View File

@ -68,28 +68,28 @@ if(ENABLE_NLS)
endif() endif()
set(${PROJECT_NAME}_SOURCES set(${PROJECT_NAME}_SOURCES
actions.c actions.cc
conf.c conf.cc
details.c details.cc
dialogs.c dialogs.cc
favicon.c favicon.cc
file-list.c file-list.cc
filter.c filter.cc
hig.c hig.cc
icons.c icons.cc
main.c main.cc
makemeta-ui.c makemeta-ui.cc
msgwin.c msgwin.cc
notify.c notify.cc
open-dialog.c open-dialog.cc
relocate.c relocate.cc
stats.c stats.cc
torrent-cell-renderer.c torrent-cell-renderer.cc
tr-core.c tr-core.cc
tr-icon.c tr-icon.cc
tr-prefs.c tr-prefs.cc
tr-window.c tr-window.cc
util.c util.cc
${CMAKE_CURRENT_BINARY_DIR}/transmission-resources.c ${CMAKE_CURRENT_BINARY_DIR}/transmission-resources.c
) )

View File

@ -412,17 +412,17 @@ static void torrent_set_real(struct DetailsImpl* di, tr_quark const key, double
tr_variantFree(&top); tr_variantFree(&top);
} }
static void up_speed_toggled_cb(GtkToggleButton* tb, gpointer d) static void up_speed_toggled_cb(GtkToggleButton* tb, DetailsImpl* d)
{ {
torrent_set_bool(d, TR_KEY_uploadLimited, gtk_toggle_button_get_active(tb)); torrent_set_bool(d, TR_KEY_uploadLimited, gtk_toggle_button_get_active(tb));
} }
static void down_speed_toggled_cb(GtkToggleButton* tb, gpointer d) static void down_speed_toggled_cb(GtkToggleButton* tb, DetailsImpl* d)
{ {
torrent_set_bool(d, TR_KEY_downloadLimited, gtk_toggle_button_get_active(tb)); torrent_set_bool(d, TR_KEY_downloadLimited, gtk_toggle_button_get_active(tb));
} }
static void global_speed_toggled_cb(GtkToggleButton* tb, gpointer d) static void global_speed_toggled_cb(GtkToggleButton* tb, DetailsImpl* d)
{ {
torrent_set_bool(d, TR_KEY_honorsSessionLimits, gtk_toggle_button_get_active(tb)); torrent_set_bool(d, TR_KEY_honorsSessionLimits, gtk_toggle_button_get_active(tb));
} }
@ -1188,7 +1188,7 @@ static GtkWidget* info_page_new(struct DetailsImpl* di)
hig_workarea_add_row(t, &row, _("Last activity:"), l, NULL); hig_workarea_add_row(t, &row, _("Last activity:"), l, NULL);
/* error */ /* error */
l = g_object_new(GTK_TYPE_LABEL, "selectable", TRUE, "ellipsize", PANGO_ELLIPSIZE_END, NULL); l = static_cast<GtkWidget*>(g_object_new(GTK_TYPE_LABEL, "selectable", TRUE, "ellipsize", PANGO_ELLIPSIZE_END, NULL));
hig_workarea_add_row(t, &row, _("Error:"), l, NULL); hig_workarea_add_row(t, &row, _("Error:"), l, NULL);
di->error_lb = l; di->error_lb = l;
@ -1196,12 +1196,12 @@ static GtkWidget* info_page_new(struct DetailsImpl* di)
hig_workarea_add_section_title(t, &row, _("Details")); hig_workarea_add_section_title(t, &row, _("Details"));
/* destination */ /* destination */
l = g_object_new(GTK_TYPE_LABEL, "selectable", TRUE, "ellipsize", PANGO_ELLIPSIZE_END, NULL); l = static_cast<GtkWidget*>(g_object_new(GTK_TYPE_LABEL, "selectable", TRUE, "ellipsize", PANGO_ELLIPSIZE_END, NULL));
hig_workarea_add_row(t, &row, _("Location:"), l, NULL); hig_workarea_add_row(t, &row, _("Location:"), l, NULL);
di->destination_lb = l; di->destination_lb = l;
/* hash */ /* hash */
l = g_object_new(GTK_TYPE_LABEL, "selectable", TRUE, "ellipsize", PANGO_ELLIPSIZE_END, NULL); l = static_cast<GtkWidget*>(g_object_new(GTK_TYPE_LABEL, "selectable", TRUE, "ellipsize", PANGO_ELLIPSIZE_END, NULL));
hig_workarea_add_row(t, &row, _("Hash:"), l, NULL); hig_workarea_add_row(t, &row, _("Hash:"), l, NULL);
di->hash_lb = l; di->hash_lb = l;
@ -1212,7 +1212,7 @@ static GtkWidget* info_page_new(struct DetailsImpl* di)
di->privacy_lb = l; di->privacy_lb = l;
/* origins */ /* origins */
l = g_object_new(GTK_TYPE_LABEL, "selectable", TRUE, "ellipsize", PANGO_ELLIPSIZE_END, NULL); l = static_cast<GtkWidget*>(g_object_new(GTK_TYPE_LABEL, "selectable", TRUE, "ellipsize", PANGO_ELLIPSIZE_END, NULL));
hig_workarea_add_row(t, &row, _("Origin:"), l, NULL); hig_workarea_add_row(t, &row, _("Origin:"), l, NULL);
di->origin_lb = l; di->origin_lb = l;
@ -1567,11 +1567,10 @@ static void refreshPeerList(struct DetailsImpl* di, tr_torrent** torrents, int n
{ {
char key[128]; char key[128];
GtkTreePath* p; GtkTreePath* p;
GtkTreeRowReference* ref;
tr_peer_stat const* s = &peers[i][j]; tr_peer_stat const* s = &peers[i][j];
g_snprintf(key, sizeof(key), "%d.%s", tr_torrentId(tor), s->addr); g_snprintf(key, sizeof(key), "%d.%s", tr_torrentId(tor), s->addr);
ref = g_hash_table_lookup(hash, key); auto* ref = static_cast<GtkTreeRowReference*>(g_hash_table_lookup(hash, key));
p = gtk_tree_row_reference_get_path(ref); p = gtk_tree_row_reference_get_path(ref);
gtk_tree_model_get_iter(model, &iter, p); gtk_tree_model_get_iter(model, &iter, p);
refreshPeerRow(store, &iter, s); refreshPeerRow(store, &iter, s);
@ -1670,7 +1669,7 @@ static void refreshWebseedList(struct DetailsImpl* di, tr_torrent** torrents, in
char key[256]; char key[256];
g_snprintf(key, sizeof(key), "%d.%s", tr_torrentId(tor), url); g_snprintf(key, sizeof(key), "%d.%s", tr_torrentId(tor), url);
GtkTreeRowReference* const ref = g_hash_table_lookup(hash, key); auto* const ref = static_cast<GtkTreeRowReference*>(g_hash_table_lookup(hash, key));
GtkTreePath* const p = gtk_tree_row_reference_get_path(ref); GtkTreePath* const p = gtk_tree_row_reference_get_path(ref);
gtk_tree_model_get_iter(model, &iter, p); gtk_tree_model_get_iter(model, &iter, p);
@ -1752,7 +1751,7 @@ static gboolean onPeerViewQueryTooltip(
char* name = NULL; char* name = NULL;
char* addr = NULL; char* addr = NULL;
char* flagstr = NULL; char* flagstr = NULL;
struct DetailsImpl* di = gdi; auto* di = static_cast<DetailsImpl*>(gdi);
GString* gstr = di->gstr; GString* gstr = di->gstr;
gtk_tree_model_get( gtk_tree_model_get(
@ -2288,7 +2287,7 @@ enum
static gboolean trackerVisibleFunc(GtkTreeModel* model, GtkTreeIter* iter, gpointer data) static gboolean trackerVisibleFunc(GtkTreeModel* model, GtkTreeIter* iter, gpointer data)
{ {
gboolean isBackup; gboolean isBackup;
struct DetailsImpl* di = data; auto* di = static_cast<DetailsImpl*>(data);
/* show all */ /* show all */
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(di->all_check))) if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(di->all_check)))
@ -2336,7 +2335,7 @@ static tr_torrent* tracker_list_get_current_torrent(struct DetailsImpl* di)
static void favicon_ready_cb(gpointer pixbuf, gpointer vreference) static void favicon_ready_cb(gpointer pixbuf, gpointer vreference)
{ {
GtkTreeIter iter; GtkTreeIter iter;
GtkTreeRowReference* reference = vreference; auto* reference = static_cast<GtkTreeRowReference*>(vreference);
if (pixbuf != NULL) if (pixbuf != NULL)
{ {
@ -2433,7 +2432,7 @@ static void refreshTracker(struct DetailsImpl* di, tr_torrent** torrents, int n)
/* build the key to find the row */ /* build the key to find the row */
g_string_truncate(gstr, 0); g_string_truncate(gstr, 0);
g_string_append_printf(gstr, "%d\t%d\t%s", tr_torrentId(tor), st->tier, st->announce); g_string_append_printf(gstr, "%d\t%d\t%s", tr_torrentId(tor), st->tier, st->announce);
GtkTreeRowReference* const ref = g_hash_table_lookup(hash, gstr->str); auto* const ref = static_cast<GtkTreeRowReference*>(g_hash_table_lookup(hash, gstr->str));
GtkTreePath* const p = gtk_tree_row_reference_get_path(ref); GtkTreePath* const p = gtk_tree_row_reference_get_path(ref);
gtk_tree_model_get_iter(model, &iter, p); gtk_tree_model_get_iter(model, &iter, p);
@ -2510,12 +2509,12 @@ static void onBackupToggled(GtkToggleButton* button, struct DetailsImpl* di)
static void on_edit_trackers_response(GtkDialog* dialog, int response, gpointer data) static void on_edit_trackers_response(GtkDialog* dialog, int response, gpointer data)
{ {
gboolean do_destroy = TRUE; gboolean do_destroy = TRUE;
struct DetailsImpl* di = data; auto* di = static_cast<DetailsImpl*>(data);
if (response == GTK_RESPONSE_ACCEPT) if (response == GTK_RESPONSE_ACCEPT)
{ {
int const torrent_id = GPOINTER_TO_INT(g_object_get_qdata(G_OBJECT(dialog), TORRENT_ID_KEY)); int const torrent_id = GPOINTER_TO_INT(g_object_get_qdata(G_OBJECT(dialog), TORRENT_ID_KEY));
GtkTextBuffer* const text_buffer = g_object_get_qdata(G_OBJECT(dialog), TEXT_BUFFER_KEY); auto* const text_buffer = static_cast<GtkTextBuffer*>(g_object_get_qdata(G_OBJECT(dialog), TEXT_BUFFER_KEY));
tr_torrent* const tor = gtr_core_find_torrent(di->core, torrent_id); tr_torrent* const tor = gtr_core_find_torrent(di->core, torrent_id);
if (tor != NULL) if (tor != NULL)
@ -2610,7 +2609,7 @@ static void get_editable_tracker_list(GString* gstr, tr_torrent const* tor)
static void on_edit_trackers(GtkButton* button, gpointer data) static void on_edit_trackers(GtkButton* button, gpointer data)
{ {
struct DetailsImpl* di = data; auto* di = static_cast<DetailsImpl*>(data);
tr_torrent const* tor = tracker_list_get_current_torrent(di); tr_torrent const* tor = tracker_list_get_current_torrent(di);
if (tor != NULL) if (tor != NULL)
@ -2631,7 +2630,7 @@ static void on_edit_trackers(GtkButton* button, gpointer data)
d = gtk_dialog_new_with_buttons( d = gtk_dialog_new_with_buttons(
gstr->str, gstr->str,
win, win,
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GtkDialogFlags(GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT),
TR_ARG_TUPLE(_("_Cancel"), GTK_RESPONSE_CANCEL), TR_ARG_TUPLE(_("_Cancel"), GTK_RESPONSE_CANCEL),
TR_ARG_TUPLE(_("_Save"), GTK_RESPONSE_ACCEPT), TR_ARG_TUPLE(_("_Save"), GTK_RESPONSE_ACCEPT),
NULL); NULL);
@ -2673,7 +2672,7 @@ static void on_edit_trackers(GtkButton* button, gpointer data)
static void on_tracker_list_selection_changed(GtkTreeSelection* sel, gpointer gdi) static void on_tracker_list_selection_changed(GtkTreeSelection* sel, gpointer gdi)
{ {
struct DetailsImpl* di = gdi; auto* di = static_cast<DetailsImpl*>(gdi);
int const n = gtk_tree_selection_count_selected_rows(sel); int const n = gtk_tree_selection_count_selected_rows(sel);
tr_torrent const* tor = tracker_list_get_current_torrent(di); tr_torrent const* tor = tracker_list_get_current_torrent(di);
@ -2688,7 +2687,7 @@ static void on_add_tracker_response(GtkDialog* dialog, int response, gpointer gd
if (response == GTK_RESPONSE_ACCEPT) if (response == GTK_RESPONSE_ACCEPT)
{ {
struct DetailsImpl* di = gdi; auto* di = static_cast<DetailsImpl*>(gdi);
GtkWidget* e = GTK_WIDGET(g_object_get_qdata(G_OBJECT(dialog), URL_ENTRY_KEY)); GtkWidget* e = GTK_WIDGET(g_object_get_qdata(G_OBJECT(dialog), URL_ENTRY_KEY));
int const torrent_id = GPOINTER_TO_INT(g_object_get_qdata(G_OBJECT(dialog), TORRENT_ID_KEY)); int const torrent_id = GPOINTER_TO_INT(g_object_get_qdata(G_OBJECT(dialog), TORRENT_ID_KEY));
char* url = g_strdup(gtk_entry_get_text(GTK_ENTRY(e))); char* url = g_strdup(gtk_entry_get_text(GTK_ENTRY(e)));
@ -2734,7 +2733,7 @@ static void on_tracker_list_add_button_clicked(GtkButton const* button, gpointer
{ {
TR_UNUSED(button); TR_UNUSED(button);
struct DetailsImpl* di = gdi; auto* di = static_cast<DetailsImpl*>(gdi);
tr_torrent const* tor = tracker_list_get_current_torrent(di); tr_torrent const* tor = tracker_list_get_current_torrent(di);
if (tor != NULL) if (tor != NULL)
@ -2776,7 +2775,7 @@ static void on_tracker_list_remove_button_clicked(GtkButton const* button, gpoin
GtkTreeIter iter; GtkTreeIter iter;
GtkTreeModel* model; GtkTreeModel* model;
struct DetailsImpl* di = gdi; auto* di = static_cast<DetailsImpl*>(gdi);
GtkTreeView* v = GTK_TREE_VIEW(di->tracker_view); GtkTreeView* v = GTK_TREE_VIEW(di->tracker_view);
GtkTreeSelection* sel = gtk_tree_view_get_selection(v); GtkTreeSelection* sel = gtk_tree_view_get_selection(v);
@ -2940,7 +2939,7 @@ static void refresh(struct DetailsImpl* di)
static gboolean periodic_refresh(gpointer data) static gboolean periodic_refresh(gpointer data)
{ {
refresh(data); refresh(static_cast<DetailsImpl*>(data));
return G_SOURCE_CONTINUE; return G_SOURCE_CONTINUE;
} }
@ -2959,7 +2958,7 @@ static void on_details_window_size_allocated(GtkWidget* gtk_window, GtkAllocatio
static void details_free(gpointer gdata) static void details_free(gpointer gdata)
{ {
struct DetailsImpl* data = gdata; auto* data = static_cast<DetailsImpl*>(gdata);
g_source_remove(data->periodic_refresh_tag); g_source_remove(data->periodic_refresh_tag);
g_hash_table_destroy(data->tracker_hash); g_hash_table_destroy(data->tracker_hash);
g_hash_table_destroy(data->webseed_hash); g_hash_table_destroy(data->webseed_hash);
@ -2991,7 +2990,7 @@ GtkWidget* gtr_torrent_details_dialog_new(GtkWindow* parent, TrCore* core)
/* create the dialog */ /* create the dialog */
di->core = core; di->core = core;
di->gstr = g_string_new(NULL); di->gstr = g_string_new(NULL);
d = gtk_dialog_new_with_buttons(NULL, parent, 0, TR_ARG_TUPLE(_("_Close"), GTK_RESPONSE_CLOSE), NULL); d = gtk_dialog_new_with_buttons(NULL, parent, {}, TR_ARG_TUPLE(_("_Close"), GTK_RESPONSE_CLOSE), NULL);
di->dialog = d; di->dialog = d;
gtk_window_set_role(GTK_WINDOW(d), "tr-info"); gtk_window_set_role(GTK_WINDOW(d), "tr-info");
@ -3043,7 +3042,7 @@ void gtr_torrent_details_dialog_set_torrents(GtkWidget* w, GSList* ids)
{ {
char title[256]; char title[256];
int const len = g_slist_length(ids); int const len = g_slist_length(ids);
struct DetailsImpl* di = g_object_get_qdata(G_OBJECT(w), DETAILS_KEY); auto* di = static_cast<DetailsImpl*>(g_object_get_qdata(G_OBJECT(w), DETAILS_KEY));
g_slist_free(di->ids); g_slist_free(di->ids);
di->ids = g_slist_copy(ids); di->ids = g_slist_copy(ids);

View File

@ -41,7 +41,7 @@ struct delete_data
static void on_remove_dialog_response(GtkDialog* dialog, gint response, gpointer gdd) static void on_remove_dialog_response(GtkDialog* dialog, gint response, gpointer gdd)
{ {
struct delete_data* dd = gdd; auto* dd = static_cast<delete_data*>(gdd);
if (response == GTK_RESPONSE_ACCEPT) if (response == GTK_RESPONSE_ACCEPT)
{ {

View File

@ -55,7 +55,7 @@ static char* favicon_get_cache_filename(char const* host)
static void favicon_save_to_cache(char const* host, void const* data, size_t len) static void favicon_save_to_cache(char const* host, void const* data, size_t len)
{ {
char* filename = favicon_get_cache_filename(host); char* filename = favicon_get_cache_filename(host);
g_file_set_contents(filename, data, len, NULL); g_file_set_contents(filename, static_cast<gchar const*>(data), len, NULL);
g_free(filename); g_free(filename);
} }
@ -79,7 +79,7 @@ static gboolean favicon_web_done_idle_cb(gpointer vfav)
{ {
GdkPixbuf* pixbuf = NULL; GdkPixbuf* pixbuf = NULL;
gboolean finished = FALSE; gboolean finished = FALSE;
struct favicon_data* fav = vfav; auto* fav = static_cast<favicon_data*>(vfav);
if (fav->len > 0) /* we got something... try to make a pixbuf from it */ if (fav->len > 0) /* we got something... try to make a pixbuf from it */
{ {
@ -132,8 +132,8 @@ static void favicon_web_done_cb(
TR_UNUSED(did_timeout); TR_UNUSED(did_timeout);
TR_UNUSED(code); TR_UNUSED(code);
struct favicon_data* fav = vfav; auto* fav = static_cast<favicon_data*>(vfav);
fav->contents = g_memdup(data, len); fav->contents = static_cast<char*>(g_memdup(data, len));
fav->len = len; fav->len = len;
gdk_threads_add_idle(favicon_web_done_idle_cb, fav); gdk_threads_add_idle(favicon_web_done_idle_cb, fav);

View File

@ -71,7 +71,7 @@ static void clearData(FileData* data)
static void freeData(gpointer data) static void freeData(gpointer data)
{ {
clearData(data); clearData(static_cast<FileData*>(data));
g_free(data); g_free(data);
} }
@ -94,7 +94,7 @@ static gboolean refreshFilesForeach(GtkTreeModel* model, GtkTreePath* path, GtkT
{ {
TR_UNUSED(path); TR_UNUSED(path);
struct RefreshData* refresh_data = gdata; auto* refresh_data = static_cast<RefreshData*>(gdata);
FileData* data = refresh_data->file_data; FileData* data = refresh_data->file_data;
unsigned int index; unsigned int index;
uint64_t size; uint64_t size;
@ -301,7 +301,7 @@ static void refresh(FileData* data)
static gboolean refreshModel(gpointer file_data) static gboolean refreshModel(gpointer file_data)
{ {
refresh(file_data); refresh(static_cast<FileData*>(file_data));
return G_SOURCE_CONTINUE; return G_SOURCE_CONTINUE;
} }
@ -325,7 +325,7 @@ static gboolean getSelectedFilesForeach(GtkTreeModel* model, GtkTreePath* path,
if (is_file) if (is_file)
{ {
struct ActiveData* data = gdata; auto* data = static_cast<ActiveData*>(gdata);
/* active means: if it's selected or any ancestor is selected */ /* active means: if it's selected or any ancestor is selected */
gboolean is_active = gtk_tree_selection_iter_is_selected(data->sel, iter); gboolean is_active = gtk_tree_selection_iter_is_selected(data->sel, iter);
@ -377,7 +377,7 @@ static gboolean getSubtreeForeach(GtkTreeModel* model, GtkTreePath* path, GtkTre
if (is_file) if (is_file)
{ {
struct SubtreeForeachData* data = gdata; auto* data = static_cast<SubtreeForeachData*>(gdata);
if (gtk_tree_path_compare(path, data->path) == 0 || gtk_tree_path_is_descendant(path, data->path)) if (gtk_tree_path_compare(path, data->path) == 0 || gtk_tree_path_is_descendant(path, data->path))
{ {
@ -453,8 +453,8 @@ static void buildTree(GNode* node, gpointer gdata)
{ {
char size_str[64]; char size_str[64];
GtkTreeIter child_iter; GtkTreeIter child_iter;
struct build_data* build = gdata; auto* build = static_cast<build_data*>(gdata);
struct row_struct* child_data = node->data; auto* child_data = static_cast<row_struct*>(node->data);
gboolean const isLeaf = node->children == NULL; gboolean const isLeaf = node->children == NULL;
char const* mime_type = isLeaf ? gtr_get_mime_type_from_filename(child_data->name) : DIRECTORY_MIME_TYPE; char const* mime_type = isLeaf ? gtr_get_mime_type_from_filename(child_data->name) : DIRECTORY_MIME_TYPE;
@ -502,7 +502,7 @@ static GNode* find_child(GNode* parent, char const* name)
while (child != NULL) while (child != NULL)
{ {
struct row_struct const* child_data = child->data; auto const* child_data = static_cast<row_struct const*>(child->data);
if (*child_data->name == *name && g_strcmp0(child_data->name, name) == 0) if (*child_data->name == *name && g_strcmp0(child_data->name, name) == 0)
{ {
@ -518,7 +518,7 @@ static GNode* find_child(GNode* parent, char const* name)
void gtr_file_list_set_torrent(GtkWidget* w, int torrentId) void gtr_file_list_set_torrent(GtkWidget* w, int torrentId)
{ {
/* unset the old fields */ /* unset the old fields */
FileData* const data = g_object_get_data(G_OBJECT(w), "file-data"); auto* const data = static_cast<FileData*>(g_object_get_data(G_OBJECT(w), "file-data"));
clearData(data); clearData(data);
/* instantiate the model */ /* instantiate the model */
@ -689,7 +689,7 @@ static gboolean onRowActivated(GtkTreeView* view, GtkTreePath* path, GtkTreeView
TR_UNUSED(col); TR_UNUSED(col);
gboolean handled = FALSE; gboolean handled = FALSE;
FileData* data = gdata; auto* data = static_cast<FileData*>(gdata);
tr_torrent const* tor = gtr_core_find_torrent(data->core, data->torrentId); tr_torrent const* tor = gtr_core_find_torrent(data->core, data->torrentId);
if (tor != NULL) if (tor != NULL)
@ -820,7 +820,7 @@ static gboolean onViewButtonPressed(GtkWidget* w, GdkEventButton const* event, g
GtkTreePath* path = NULL; GtkTreePath* path = NULL;
gboolean handled = FALSE; gboolean handled = FALSE;
GtkTreeView* treeview = GTK_TREE_VIEW(w); GtkTreeView* treeview = GTK_TREE_VIEW(w);
FileData* data = gdata; auto* data = static_cast<FileData*>(gdata);
if (event->type == GDK_BUTTON_PRESS && event->button == 1 && (event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK)) == 0 && if (event->type == GDK_BUTTON_PRESS && event->button == 1 && (event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK)) == 0 &&
getAndSelectEventPath(treeview, event, &col, &path)) getAndSelectEventPath(treeview, event, &col, &path))

View File

@ -92,7 +92,7 @@ static void tracker_model_update_count(GtkTreeStore* store, GtkTreeIter* iter, i
static void favicon_ready_cb(gpointer pixbuf, gpointer vreference) static void favicon_ready_cb(gpointer pixbuf, gpointer vreference)
{ {
GtkTreeIter iter; GtkTreeIter iter;
GtkTreeRowReference* reference = vreference; auto* reference = static_cast<GtkTreeRowReference*>(vreference);
if (pixbuf != NULL) if (pixbuf != NULL)
{ {
@ -143,7 +143,7 @@ static gboolean tracker_filter_model_update(gpointer gstore)
gtr_get_host_from_url(name, sizeof(name), inf->trackers[i].announce); gtr_get_host_from_url(name, sizeof(name), inf->trackers[i].announce);
char* const key = g_string_chunk_insert_const(strings, name); char* const key = g_string_chunk_insert_const(strings, name);
int* count = g_hash_table_lookup(hosts_hash, key); auto* count = static_cast<int*>(g_hash_table_lookup(hosts_hash, key));
if (count == NULL) if (count == NULL)
{ {
count = tr_new0(int, 1); count = tr_new0(int, 1);
@ -166,7 +166,7 @@ static gboolean tracker_filter_model_update(gpointer gstore)
for (int i = 0; i < keyCount; ++i) for (int i = 0; i < keyCount; ++i)
{ {
int* incrementme = g_hash_table_lookup(hosts_hash, keys[i]); auto* incrementme = static_cast<int*>(g_hash_table_lookup(hosts_hash, keys[i]));
++*incrementme; ++*incrementme;
} }
@ -213,7 +213,7 @@ static gboolean tracker_filter_model_update(gpointer gstore)
{ {
char* host; char* host;
gtk_tree_model_get(model, &iter, TRACKER_FILTER_COL_HOST, &host, -1); gtk_tree_model_get(model, &iter, TRACKER_FILTER_COL_HOST, &host, -1);
int const cmp = g_strcmp0(host, hosts->pdata[i]); int const cmp = g_strcmp0(host, static_cast<char const*>(hosts->pdata[i]));
if (cmp < 0) if (cmp < 0)
{ {
@ -237,8 +237,8 @@ static gboolean tracker_filter_model_update(gpointer gstore)
GtkTreeIter add; GtkTreeIter add;
GtkTreePath* path; GtkTreePath* path;
GtkTreeRowReference* reference; GtkTreeRowReference* reference;
tr_session* session = g_object_get_qdata(G_OBJECT(store), SESSION_KEY); auto* session = static_cast<tr_session*>(g_object_get_qdata(G_OBJECT(store), SESSION_KEY));
char const* host = hosts->pdata[i]; auto const* host = static_cast<char const*>(hosts->pdata[i]);
char* name = get_name_from_host(host); char* name = get_name_from_host(host);
int const count = *(int*)g_hash_table_lookup(hosts_hash, host); int const count = *(int*)g_hash_table_lookup(hosts_hash, host);
gtk_tree_store_insert_with_values( gtk_tree_store_insert_with_values(
@ -261,7 +261,7 @@ static gboolean tracker_filter_model_update(gpointer gstore)
} }
else // update row else // update row
{ {
char const* const host = hosts->pdata[i]; auto const* const host = static_cast<char const*>(hosts->pdata[i]);
int const count = *(int*)g_hash_table_lookup(hosts_hash, host); int const count = *(int*)g_hash_table_lookup(hosts_hash, host);
tracker_model_update_count(store, &iter, count); tracker_model_update_count(store, &iter, count);
++store_pos; ++store_pos;
@ -408,8 +408,8 @@ static GtkCellRenderer* number_renderer_new(void)
static void disconnect_cat_model_callbacks(gpointer tmodel, GObject* cat_model) static void disconnect_cat_model_callbacks(gpointer tmodel, GObject* cat_model)
{ {
g_signal_handlers_disconnect_by_func(tmodel, torrent_model_row_changed, cat_model); g_signal_handlers_disconnect_by_func(tmodel, reinterpret_cast<gpointer>(torrent_model_row_changed), cat_model);
g_signal_handlers_disconnect_by_func(tmodel, torrent_model_row_deleted_cb, cat_model); g_signal_handlers_disconnect_by_func(tmodel, reinterpret_cast<gpointer>(torrent_model_row_deleted_cb), cat_model);
} }
static GtkWidget* tracker_combo_box_new(GtkTreeModel* tmodel) static GtkWidget* tracker_combo_box_new(GtkTreeModel* tmodel)
@ -692,8 +692,8 @@ static void activity_torrent_model_row_deleted_cb(GtkTreeModel const* tmodel, Gt
static void disconnect_activity_model_callbacks(gpointer tmodel, GObject* cat_model) static void disconnect_activity_model_callbacks(gpointer tmodel, GObject* cat_model)
{ {
g_signal_handlers_disconnect_by_func(tmodel, activity_torrent_model_row_changed, cat_model); g_signal_handlers_disconnect_by_func(tmodel, reinterpret_cast<gpointer>(activity_torrent_model_row_changed), cat_model);
g_signal_handlers_disconnect_by_func(tmodel, activity_torrent_model_row_deleted_cb, cat_model); g_signal_handlers_disconnect_by_func(tmodel, reinterpret_cast<gpointer>(activity_torrent_model_row_deleted_cb), cat_model);
} }
static GtkWidget* activity_combo_box_new(GtkTreeModel* tmodel) static GtkWidget* activity_combo_box_new(GtkTreeModel* tmodel)
@ -780,7 +780,7 @@ static void filter_entry_changed(GtkEditable* e, gpointer filter_model)
pch = gtk_editable_get_chars(e, 0, -1); pch = gtk_editable_get_chars(e, 0, -1);
folded = g_utf8_casefold(pch, -1); folded = g_utf8_casefold(pch, -1);
g_strstrip(folded); g_strstrip(folded);
g_object_set_qdata_full(filter_model, TEXT_KEY, folded, g_free); g_object_set_qdata_full(static_cast<GObject*>(filter_model), TEXT_KEY, folded, g_free);
g_free(pch); g_free(pch);
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(filter_model)); gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(filter_model));
@ -808,7 +808,7 @@ static gboolean is_row_visible(GtkTreeModel* model, GtkTreeIter* iter, gpointer
{ {
char const* text; char const* text;
tr_torrent* tor; tr_torrent* tor;
struct filter_data* data = vdata; auto* data = static_cast<filter_data*>(vdata);
GObject* o = G_OBJECT(data->filter_model); GObject* o = G_OBJECT(data->filter_model);
gtk_tree_model_get(model, iter, MC_TORRENT, &tor, -1); gtk_tree_model_get(model, iter, MC_TORRENT, &tor, -1);
@ -825,7 +825,7 @@ static void selection_changed_cb(GtkComboBox* combo, gpointer vdata)
char* host; char* host;
GtkTreeIter iter; GtkTreeIter iter;
GtkTreeModel* model; GtkTreeModel* model;
struct filter_data* data = vdata; auto* data = static_cast<filter_data*>(vdata);
/* set data->active_activity_type from the activity combobox */ /* set data->active_activity_type from the activity combobox */
combo = GTK_COMBO_BOX(data->activity); combo = GTK_COMBO_BOX(data->activity);
@ -882,7 +882,7 @@ static gboolean update_count_label(gpointer gdata)
GtkTreeModel* model; GtkTreeModel* model;
GtkComboBox* combo; GtkComboBox* combo;
GtkTreeIter iter; GtkTreeIter iter;
struct filter_data* data = gdata; auto* data = static_cast<filter_data*>(gdata);
/* get the visible count */ /* get the visible count */
visibleCount = gtk_tree_model_iter_n_children(data->filter_model, NULL); visibleCount = gtk_tree_model_iter_n_children(data->filter_model, NULL);
@ -951,7 +951,7 @@ static void on_filter_model_row_inserted(
TR_UNUSED(path); TR_UNUSED(path);
TR_UNUSED(iter); TR_UNUSED(iter);
update_count_label_idle(data); update_count_label_idle(static_cast<filter_data*>(data));
} }
static void on_filter_model_row_deleted(GtkTreeModel const* tree_model, GtkTreePath const* path, gpointer data) static void on_filter_model_row_deleted(GtkTreeModel const* tree_model, GtkTreePath const* path, gpointer data)
@ -959,7 +959,7 @@ static void on_filter_model_row_deleted(GtkTreeModel const* tree_model, GtkTreeP
TR_UNUSED(tree_model); TR_UNUSED(tree_model);
TR_UNUSED(path); TR_UNUSED(path);
update_count_label_idle(data); update_count_label_idle(static_cast<filter_data*>(data));
} }
/*** /***

View File

@ -56,7 +56,7 @@ static int get_size_in_pixels(GtkIconSize icon_size)
return MAX(width, height); return MAX(width, height);
} }
static IconCache* icon_cache_new(GtkWidget* for_widget, int icon_size) static IconCache* icon_cache_new(GtkWidget* for_widget, GtkIconSize icon_size)
{ {
g_return_val_if_fail(for_widget != NULL, NULL); g_return_val_if_fail(for_widget != NULL, NULL);
@ -113,7 +113,7 @@ static GdkPixbuf* get_themed_icon_pixbuf(GThemedIcon* icon, int size, GtkIconThe
g_object_get(icon, "names", &icon_names, NULL); g_object_get(icon, "names", &icon_names, NULL);
icon_info = gtk_icon_theme_choose_icon(icon_theme, (char const**)icon_names, size, 0); icon_info = gtk_icon_theme_choose_icon(icon_theme, (char const**)icon_names, size, {});
if (icon_info == NULL) if (icon_info == NULL)
{ {
@ -188,7 +188,7 @@ static GdkPixbuf* icon_cache_get_mime_type_icon(IconCache* icons, char const* mi
} }
g_return_val_if_fail(icons != NULL, NULL); g_return_val_if_fail(icons != NULL, NULL);
GdkPixbuf* pixbuf = g_hash_table_lookup(icons->cache, key); auto* pixbuf = static_cast<GdkPixbuf*>(g_hash_table_lookup(icons->cache, key));
if (pixbuf != NULL) if (pixbuf != NULL)
{ {
g_object_ref(pixbuf); g_object_ref(pixbuf);

View File

@ -130,7 +130,7 @@ static void get_selected_torrent_ids_foreach(GtkTreeModel* model, GtkTreePath* p
TR_UNUSED(path); TR_UNUSED(path);
int id; int id;
GSList** ids = gdata; auto** ids = static_cast<GSList**>(gdata);
gtk_tree_model_get(model, iter, MC_TORRENT_ID, &id, -1); gtk_tree_model_get(model, iter, MC_TORRENT_ID, &id, -1);
*ids = g_slist_append(*ids, GINT_TO_POINTER(id)); *ids = g_slist_append(*ids, GINT_TO_POINTER(id));
} }
@ -144,7 +144,7 @@ static GSList* get_selected_torrent_ids(struct cbdata* data)
static void on_details_dialog_closed(gpointer gdata, GObject* dead) static void on_details_dialog_closed(gpointer gdata, GObject* dead)
{ {
struct cbdata* data = gdata; auto* data = static_cast<cbdata*>(gdata);
data->details = g_slist_remove(data->details, dead); data->details = g_slist_remove(data->details, dead);
} }
@ -157,9 +157,9 @@ static void show_details_dialog_for_selected_torrents(struct cbdata* data)
for (GSList* l = data->details; dialog == NULL && l != NULL; l = l->next) for (GSList* l = data->details; dialog == NULL && l != NULL; l = l->next)
{ {
if (g_strcmp0(key, g_object_get_data(l->data, "key")) == 0) if (g_strcmp0(key, static_cast<char const*>(g_object_get_data(static_cast<GObject*>(l->data), "key"))) == 0)
{ {
dialog = l->data; dialog = static_cast<GtkWidget*>(l->data);
} }
} }
@ -196,7 +196,7 @@ static void get_selected_torrent_counts_foreach(GtkTreeModel* model, GtkTreePath
TR_UNUSED(path); TR_UNUSED(path);
int activity = 0; int activity = 0;
struct counts_data* counts = user_data; auto* counts = static_cast<counts_data*>(user_data);
++counts->total_count; ++counts->total_count;
@ -233,7 +233,7 @@ static void count_updatable_foreach(GtkTreeModel* model, GtkTreePath* path, GtkT
static gboolean refresh_actions(gpointer gdata) static gboolean refresh_actions(gpointer gdata)
{ {
struct cbdata* data = gdata; auto* data = static_cast<cbdata*>(gdata);
if (!data->is_closing) if (!data->is_closing)
{ {
@ -278,7 +278,7 @@ static gboolean refresh_actions(gpointer gdata)
static void refresh_actions_soon(gpointer gdata) static void refresh_actions_soon(gpointer gdata)
{ {
struct cbdata* data = gdata; auto* data = static_cast<cbdata*>(gdata);
if (!data->is_closing && data->refresh_actions_tag == 0) if (!data->is_closing && data->refresh_actions_tag == 0)
{ {
@ -371,7 +371,7 @@ struct on_rpc_changed_struct
static gboolean on_rpc_changed_idle(gpointer gdata) static gboolean on_rpc_changed_idle(gpointer gdata)
{ {
tr_torrent* tor; tr_torrent* tor;
struct on_rpc_changed_struct* data = gdata; auto* data = static_cast<on_rpc_changed_struct*>(gdata);
switch (data->type) switch (data->type)
{ {
@ -461,7 +461,7 @@ static tr_rpc_callback_status on_rpc_changed(
struct tr_torrent* tor, struct tr_torrent* tor,
void* gdata) void* gdata)
{ {
struct cbdata* cbdata = gdata; auto* cbdata = static_cast<struct cbdata*>(gdata);
struct on_rpc_changed_struct* data; struct on_rpc_changed_struct* data;
data = g_new(struct on_rpc_changed_struct, 1); data = g_new(struct on_rpc_changed_struct, 1);
@ -478,7 +478,7 @@ static tr_rpc_callback_status on_rpc_changed(
***/ ***/
static sig_atomic_t global_sigcount = 0; static sig_atomic_t global_sigcount = 0;
static struct cbdata* sighandler_cbdata = NULL; static auto* sighandler_cbdata = static_cast<cbdata*>(nullptr);
static void signal_handler(int sig) static void signal_handler(int sig)
{ {
@ -508,7 +508,7 @@ static void on_startup(GApplication* application, gpointer user_data)
GtkWindow* win; GtkWindow* win;
GtkUIManager* ui_manager; GtkUIManager* ui_manager;
tr_session* session; tr_session* session;
struct cbdata* cbdata = user_data; auto* cbdata = static_cast<struct cbdata*>(user_data);
signal(SIGINT, signal_handler); signal(SIGINT, signal_handler);
signal(SIGTERM, signal_handler); signal(SIGTERM, signal_handler);
@ -585,7 +585,7 @@ static void on_activate(GApplication* app, struct cbdata* cbdata)
static void open_files(GSList* files, gpointer gdata) static void open_files(GSList* files, gpointer gdata)
{ {
struct cbdata* cbdata = gdata; auto* cbdata = static_cast<struct cbdata*>(gdata);
gboolean const do_start = gtr_pref_flag_get(TR_KEY_start_added_torrents) && !cbdata->start_paused; gboolean const do_start = gtr_pref_flag_get(TR_KEY_start_added_torrents) && !cbdata->start_paused;
gboolean const do_prompt = gtr_pref_flag_get(TR_KEY_show_options_window); gboolean const do_prompt = gtr_pref_flag_get(TR_KEY_show_options_window);
gboolean const do_notify = TRUE; gboolean const do_notify = TRUE;
@ -630,7 +630,7 @@ int main(int argc, char** argv)
{ "paused", 'p', 0, G_OPTION_ARG_NONE, &cbdata.start_paused, _("Start with all torrents paused"), NULL }, { "paused", 'p', 0, G_OPTION_ARG_NONE, &cbdata.start_paused, _("Start with all torrents paused"), NULL },
{ "minimized", 'm', 0, G_OPTION_ARG_NONE, &cbdata.is_iconified, _("Start minimized in notification area"), NULL }, { "minimized", 'm', 0, G_OPTION_ARG_NONE, &cbdata.is_iconified, _("Start minimized in notification area"), NULL },
{ "version", 'v', 0, G_OPTION_ARG_NONE, &show_version, _("Show version number and exit"), NULL }, { "version", 'v', 0, G_OPTION_ARG_NONE, &show_version, _("Show version number and exit"), NULL },
{ NULL, 0, 0, 0, NULL, NULL, NULL } { NULL, 0, 0, {}, NULL, NULL, NULL }
}; };
/* default settings */ /* default settings */
@ -842,7 +842,7 @@ static gboolean winclose(GtkWidget const* w, GdkEvent const* event, gpointer gda
TR_UNUSED(w); TR_UNUSED(w);
TR_UNUSED(event); TR_UNUSED(event);
struct cbdata* cbdata = gdata; auto* cbdata = static_cast<struct cbdata*>(gdata);
if (cbdata->icon != NULL) if (cbdata->icon != NULL)
{ {
@ -861,7 +861,7 @@ static void rowChangedCB(GtkTreeModel const* model, GtkTreePath* path, GtkTreeIt
TR_UNUSED(model); TR_UNUSED(model);
TR_UNUSED(iter); TR_UNUSED(iter);
struct cbdata* data = gdata; auto* data = static_cast<cbdata*>(gdata);
if (gtk_tree_selection_path_is_selected(data->sel, path)) if (gtk_tree_selection_path_is_selected(data->sel, path))
{ {
@ -930,7 +930,7 @@ static void main_window_setup(struct cbdata* cbdata, GtkWindow* wind)
static gboolean on_session_closed(gpointer gdata) static gboolean on_session_closed(gpointer gdata)
{ {
GSList* tmp; GSList* tmp;
struct cbdata* cbdata = gdata; auto* cbdata = static_cast<struct cbdata*>(gdata);
tmp = g_slist_copy(cbdata->details); tmp = g_slist_copy(cbdata->details);
g_slist_foreach(tmp, (GFunc)(GCallback)gtk_widget_destroy, NULL); g_slist_foreach(tmp, (GFunc)(GCallback)gtk_widget_destroy, NULL);
@ -972,7 +972,7 @@ struct session_close_struct
* punt the GUI teardown back to the GTK+ thread */ * punt the GUI teardown back to the GTK+ thread */
static gpointer session_close_threadfunc(gpointer gdata) static gpointer session_close_threadfunc(gpointer gdata)
{ {
struct session_close_struct* data = gdata; auto* data = static_cast<session_close_struct*>(gdata);
tr_sessionClose(data->session); tr_sessionClose(data->session);
gdk_threads_add_idle(on_session_closed, data->cbdata); gdk_threads_add_idle(on_session_closed, data->cbdata);
g_free(data); g_free(data);
@ -989,7 +989,7 @@ static void on_app_exit(gpointer vdata)
GtkWidget* p; GtkWidget* p;
GtkWidget* w; GtkWidget* w;
GtkWidget* c; GtkWidget* c;
struct cbdata* cbdata = vdata; auto* cbdata = static_cast<struct cbdata*>(vdata);
struct session_close_struct* session_close_data; struct session_close_struct* session_close_data;
if (cbdata->is_closing) if (cbdata->is_closing)
@ -1016,12 +1016,12 @@ static void on_app_exit(gpointer vdata)
c = GTK_WIDGET(cbdata->wind); c = GTK_WIDGET(cbdata->wind);
gtk_container_remove(GTK_CONTAINER(c), gtk_bin_get_child(GTK_BIN(c))); gtk_container_remove(GTK_CONTAINER(c), gtk_bin_get_child(GTK_BIN(c)));
p = g_object_new( p = static_cast<GtkWidget*>(g_object_new(
GTK_TYPE_GRID, GTK_TYPE_GRID,
TR_ARG_TUPLE("column-spacing", GUI_PAD_BIG), TR_ARG_TUPLE("column-spacing", GUI_PAD_BIG),
TR_ARG_TUPLE("halign", GTK_ALIGN_CENTER), TR_ARG_TUPLE("halign", GTK_ALIGN_CENTER),
TR_ARG_TUPLE("valign", GTK_ALIGN_CENTER), TR_ARG_TUPLE("valign", GTK_ALIGN_CENTER),
NULL); NULL));
gtk_container_add(GTK_CONTAINER(c), p); gtk_container_add(GTK_CONTAINER(c), p);
w = gtk_image_new_from_icon_name("network-workgroup", GTK_ICON_SIZE_DIALOG); w = gtk_image_new_from_icon_name("network-workgroup", GTK_ICON_SIZE_DIALOG);
@ -1132,7 +1132,7 @@ static gboolean on_main_window_focus_in(GtkWidget const* widget, GdkEventFocus c
TR_UNUSED(widget); TR_UNUSED(widget);
TR_UNUSED(event); TR_UNUSED(event);
struct cbdata* cbdata = gdata; auto* cbdata = static_cast<struct cbdata*>(gdata);
if (cbdata->wind != NULL) if (cbdata->wind != NULL)
{ {
@ -1144,7 +1144,7 @@ static gboolean on_main_window_focus_in(GtkWidget const* widget, GdkEventFocus c
static void on_add_torrent(TrCore* core, tr_ctor* ctor, gpointer gdata) static void on_add_torrent(TrCore* core, tr_ctor* ctor, gpointer gdata)
{ {
struct cbdata* cbdata = gdata; auto* cbdata = static_cast<struct cbdata*>(gdata);
GtkWidget* w = gtr_torrent_options_dialog_new(cbdata->wind, core, ctor); GtkWidget* w = gtr_torrent_options_dialog_new(cbdata->wind, core, ctor);
g_signal_connect(w, "focus-in-event", G_CALLBACK(on_main_window_focus_in), cbdata); g_signal_connect(w, "focus-in-event", G_CALLBACK(on_main_window_focus_in), cbdata);
@ -1161,13 +1161,13 @@ static void on_prefs_changed(TrCore const* core, tr_quark const key, gpointer da
{ {
TR_UNUSED(core); TR_UNUSED(core);
struct cbdata* cbdata = data; auto* cbdata = static_cast<struct cbdata*>(data);
tr_session* tr = gtr_core_session(cbdata->core); tr_session* tr = gtr_core_session(cbdata->core);
switch (key) switch (key)
{ {
case TR_KEY_encryption: case TR_KEY_encryption:
tr_sessionSetEncryption(tr, gtr_pref_int_get(key)); tr_sessionSetEncryption(tr, static_cast<tr_encryption_mode>(gtr_pref_int_get(key)));
break; break;
case TR_KEY_download_dir: case TR_KEY_download_dir:
@ -1175,7 +1175,7 @@ static void on_prefs_changed(TrCore const* core, tr_quark const key, gpointer da
break; break;
case TR_KEY_message_level: case TR_KEY_message_level:
tr_logSetLevel(gtr_pref_int_get(key)); tr_logSetLevel(static_cast<tr_log_level>(gtr_pref_int_get(key)));
break; break;
case TR_KEY_peer_port: case TR_KEY_peer_port:
@ -1327,7 +1327,7 @@ static void on_prefs_changed(TrCore const* core, tr_quark const key, gpointer da
break; break;
case TR_KEY_alt_speed_time_day: case TR_KEY_alt_speed_time_day:
tr_sessionSetAltSpeedDay(tr, gtr_pref_int_get(key)); tr_sessionSetAltSpeedDay(tr, static_cast<tr_sched_day>(gtr_pref_int_get(key)));
break; break;
case TR_KEY_peer_port_random_on_start: case TR_KEY_peer_port_random_on_start:
@ -1365,7 +1365,7 @@ static void on_prefs_changed(TrCore const* core, tr_quark const key, gpointer da
static gboolean update_model_once(gpointer gdata) static gboolean update_model_once(gpointer gdata)
{ {
struct cbdata* data = gdata; auto* data = static_cast<cbdata*>(gdata);
/* update the torrent data in the model */ /* update the torrent data in the model */
gtr_core_update(data->core); gtr_core_update(data->core);
@ -1391,7 +1391,7 @@ static gboolean update_model_once(gpointer gdata)
static void update_model_soon(gpointer gdata) static void update_model_soon(gpointer gdata)
{ {
struct cbdata* data = gdata; auto* data = static_cast<cbdata*>(gdata);
if (data->update_model_soon_tag == 0) if (data->update_model_soon_tag == 0)
{ {
@ -1448,7 +1448,7 @@ static void append_id_to_benc_list(GtkTreeModel* m, GtkTreePath* path, GtkTreeIt
tr_torrent* tor = NULL; tr_torrent* tor = NULL;
gtk_tree_model_get(m, iter, MC_TORRENT, &tor, -1); gtk_tree_model_get(m, iter, MC_TORRENT, &tor, -1);
tr_variantListAddInt(list, tr_torrentId(tor)); tr_variantListAddInt(static_cast<tr_variant*>(list), tr_torrentId(tor));
} }
static gboolean call_rpc_for_selected_torrents(struct cbdata* data, char const* method) static gboolean call_rpc_for_selected_torrents(struct cbdata* data, char const* method)
@ -1482,7 +1482,7 @@ static void open_folder_foreach(GtkTreeModel* model, GtkTreePath* path, GtkTreeI
int id; int id;
gtk_tree_model_get(model, iter, MC_TORRENT_ID, &id, -1); gtk_tree_model_get(model, iter, MC_TORRENT_ID, &id, -1);
gtr_core_open_folder(core, id); gtr_core_open_folder(static_cast<TrCore*>(core), id);
} }
static gboolean on_message_window_closed(void) static gboolean on_message_window_closed(void)
@ -1496,7 +1496,7 @@ static void accumulate_selected_torrents(GtkTreeModel* model, GtkTreePath* path,
TR_UNUSED(path); TR_UNUSED(path);
int id; int id;
GSList** data = gdata; auto** data = static_cast<GSList**>(gdata);
gtk_tree_model_get(model, iter, MC_TORRENT_ID, &id, -1); gtk_tree_model_get(model, iter, MC_TORRENT_ID, &id, -1);
*data = g_slist_append(*data, GINT_TO_POINTER(id)); *data = g_slist_append(*data, GINT_TO_POINTER(id));
@ -1544,7 +1544,7 @@ static tr_torrent* get_first_selected_torrent(struct cbdata* data)
if (l != NULL) if (l != NULL)
{ {
GtkTreePath* p = l->data; auto* p = static_cast<GtkTreePath*>(l->data);
GtkTreeIter i; GtkTreeIter i;
if (gtk_tree_model_get_iter(m, &i, p)) if (gtk_tree_model_get_iter(m, &i, p))
@ -1582,7 +1582,7 @@ static void copy_magnet_link_to_clipboard(GtkWidget* w, tr_torrent* tor)
void gtr_actions_handler(char const* action_name, gpointer user_data) void gtr_actions_handler(char const* action_name, gpointer user_data)
{ {
gboolean changed = FALSE; gboolean changed = FALSE;
struct cbdata* data = user_data; auto* data = static_cast<cbdata*>(user_data);
if (g_strcmp0(action_name, "open-torrent-from-url") == 0) if (g_strcmp0(action_name, "open-torrent-from-url") == 0)
{ {

View File

@ -45,7 +45,7 @@ typedef struct
static void freeMetaUI(gpointer p) static void freeMetaUI(gpointer p)
{ {
MakeMetaUI* ui = p; auto* ui = static_cast<MakeMetaUI*>(p);
tr_metaInfoBuilderFree(ui->builder); tr_metaInfoBuilderFree(ui->builder);
g_free(ui->target); g_free(ui->target);
@ -56,7 +56,7 @@ static void freeMetaUI(gpointer p)
static gboolean onProgressDialogRefresh(gpointer data) static gboolean onProgressDialogRefresh(gpointer data)
{ {
char* str = NULL; char* str = NULL;
MakeMetaUI* ui = data; auto* ui = static_cast<MakeMetaUI*>(data);
tr_metainfo_builder const* b = ui->builder; tr_metainfo_builder const* b = ui->builder;
GtkDialog* d = GTK_DIALOG(ui->progress_dialog); GtkDialog* d = GTK_DIALOG(ui->progress_dialog);
GtkProgressBar* p = GTK_PROGRESS_BAR(ui->progress_bar); GtkProgressBar* p = GTK_PROGRESS_BAR(ui->progress_bar);
@ -129,7 +129,7 @@ static void onProgressDialogDestroyed(gpointer data, GObject* dead)
{ {
TR_UNUSED(dead); TR_UNUSED(dead);
MakeMetaUI const* ui = data; auto const* ui = static_cast<MakeMetaUI*>(data);
g_source_remove(ui->progress_tag); g_source_remove(ui->progress_tag);
} }
@ -150,7 +150,7 @@ static void addTorrent(MakeMetaUI* ui)
static void onProgressDialogResponse(GtkDialog* d, int response, gpointer data) static void onProgressDialogResponse(GtkDialog* d, int response, gpointer data)
{ {
MakeMetaUI* ui = data; auto* ui = static_cast<MakeMetaUI*>(data);
switch (response) switch (response)
{ {
@ -184,7 +184,7 @@ static void makeProgressDialog(GtkWidget* parent, MakeMetaUI* ui)
d = gtk_dialog_new_with_buttons( d = gtk_dialog_new_with_buttons(
_("New Torrent"), _("New Torrent"),
GTK_WINDOW(parent), GTK_WINDOW(parent),
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GtkDialogFlags(GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT),
TR_ARG_TUPLE(_("_Cancel"), GTK_RESPONSE_CANCEL), TR_ARG_TUPLE(_("_Cancel"), GTK_RESPONSE_CANCEL),
TR_ARG_TUPLE(_("_Close"), GTK_RESPONSE_CLOSE), TR_ARG_TUPLE(_("_Close"), GTK_RESPONSE_CLOSE),
TR_ARG_TUPLE(_("_Add"), GTK_RESPONSE_ACCEPT), TR_ARG_TUPLE(_("_Add"), GTK_RESPONSE_ACCEPT),
@ -218,7 +218,7 @@ static void makeProgressDialog(GtkWidget* parent, MakeMetaUI* ui)
static void onResponse(GtkDialog* d, int response, gpointer user_data) static void onResponse(GtkDialog* d, int response, gpointer user_data)
{ {
MakeMetaUI* ui = user_data; auto* ui = static_cast<MakeMetaUI*>(user_data);
if (response == GTK_RESPONSE_ACCEPT) if (response == GTK_RESPONSE_ACCEPT)
{ {
@ -353,7 +353,7 @@ static void setFilename(MakeMetaUI* ui, char const* filename)
static void onChooserChosen(GtkFileChooser* chooser, gpointer user_data) static void onChooserChosen(GtkFileChooser* chooser, gpointer user_data)
{ {
char* filename; char* filename;
MakeMetaUI* ui = user_data; auto* ui = static_cast<MakeMetaUI*>(user_data);
g_object_set_data(G_OBJECT(chooser), FILE_CHOSEN_KEY, GINT_TO_POINTER(TRUE)); g_object_set_data(G_OBJECT(chooser), FILE_CHOSEN_KEY, GINT_TO_POINTER(TRUE));
@ -379,13 +379,13 @@ static void onSourceToggled2(GtkToggleButton* tb, GtkWidget* chooser, MakeMetaUI
static void onFolderToggled(GtkToggleButton* tb, gpointer data) static void onFolderToggled(GtkToggleButton* tb, gpointer data)
{ {
MakeMetaUI* ui = data; auto* ui = static_cast<MakeMetaUI*>(data);
onSourceToggled2(tb, ui->folder_chooser, ui); onSourceToggled2(tb, ui->folder_chooser, ui);
} }
static void onFileToggled(GtkToggleButton* tb, gpointer data) static void onFileToggled(GtkToggleButton* tb, gpointer data)
{ {
MakeMetaUI* ui = data; auto* ui = static_cast<MakeMetaUI*>(data);
onSourceToggled2(tb, ui->file_chooser, ui); onSourceToggled2(tb, ui->file_chooser, ui);
} }
@ -410,7 +410,7 @@ static void on_drag_data_received(
TR_UNUSED(info); TR_UNUSED(info);
gboolean success = FALSE; gboolean success = FALSE;
MakeMetaUI* ui = user_data; auto* ui = static_cast<MakeMetaUI*>(user_data);
char** uris = gtk_selection_data_get_uris(selection_data); char** uris = gtk_selection_data_get_uris(selection_data);
if (uris != NULL && uris[0] != NULL) if (uris != NULL && uris[0] != NULL)

View File

@ -105,8 +105,8 @@ static void scroll_to_bottom(struct MsgData* data)
static void level_combo_changed_cb(GtkComboBox* combo_box, gpointer gdata) static void level_combo_changed_cb(GtkComboBox* combo_box, gpointer gdata)
{ {
struct MsgData* data = gdata; auto* data = static_cast<MsgData*>(gdata);
int const level = gtr_combo_box_get_active_enum(combo_box); auto const level = static_cast<tr_log_level>(gtr_combo_box_get_active_enum(combo_box));
gboolean const pinned_to_new = is_pinned_to_new(data); gboolean const pinned_to_new = is_pinned_to_new(data);
tr_logSetLevel(level); tr_logSetLevel(level);
@ -136,7 +136,7 @@ static void doSave(GtkWindow* parent, struct MsgData* data, char const* filename
if (fp == NULL) if (fp == NULL)
{ {
GtkWidget* GtkWidget*
w = gtk_message_dialog_new(parent, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, _("Couldn't save \"%s\""), filename); w = gtk_message_dialog_new(parent, {}, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, _("Couldn't save \"%s\""), filename);
gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(w), "%s", g_strerror(errno)); gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(w), "%s", g_strerror(errno));
g_signal_connect_swapped(w, "response", G_CALLBACK(gtk_widget_destroy), w); g_signal_connect_swapped(w, "response", G_CALLBACK(gtk_widget_destroy), w);
gtk_widget_show(w); gtk_widget_show(w);
@ -191,7 +191,7 @@ static void onSaveDialogResponse(GtkWidget* d, int response, gpointer data)
if (response == GTK_RESPONSE_ACCEPT) if (response == GTK_RESPONSE_ACCEPT)
{ {
char* file = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(d)); char* file = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(d));
doSave(GTK_WINDOW(d), data, file); doSave(GTK_WINDOW(d), static_cast<MsgData*>(data), file);
g_free(file); g_free(file);
} }
@ -217,7 +217,7 @@ static void onClearRequest(GtkWidget* w, gpointer gdata)
{ {
TR_UNUSED(w); TR_UNUSED(w);
struct MsgData* data = gdata; auto* data = static_cast<MsgData*>(gdata);
gtk_list_store_clear(data->store); gtk_list_store_clear(data->store);
tr_logFreeQueue(myHead); tr_logFreeQueue(myHead);
@ -226,7 +226,7 @@ static void onClearRequest(GtkWidget* w, gpointer gdata)
static void onPauseToggled(GtkToggleToolButton* w, gpointer gdata) static void onPauseToggled(GtkToggleToolButton* w, gpointer gdata)
{ {
struct MsgData* data = gdata; auto* data = static_cast<MsgData*>(gdata);
data->isPaused = gtk_toggle_tool_button_get_active(w); data->isPaused = gtk_toggle_tool_button_get_active(w);
} }
@ -350,7 +350,7 @@ static void appendColumn(GtkTreeView* view, int col)
static gboolean isRowVisible(GtkTreeModel* model, GtkTreeIter* iter, gpointer gdata) static gboolean isRowVisible(GtkTreeModel* model, GtkTreeIter* iter, gpointer gdata)
{ {
struct tr_log_message const* node; struct tr_log_message const* node;
struct MsgData const* data = gdata; auto const* data = static_cast<MsgData const*>(gdata);
gtk_tree_model_get(model, iter, COL_TR_MSG, &node, -1); gtk_tree_model_get(model, iter, COL_TR_MSG, &node, -1);
@ -361,7 +361,7 @@ static void onWindowDestroyed(gpointer gdata, GObject* deadWindow)
{ {
TR_UNUSED(deadWindow); TR_UNUSED(deadWindow);
struct MsgData* data = gdata; auto* data = static_cast<MsgData*>(gdata);
g_source_remove(data->refresh_tag); g_source_remove(data->refresh_tag);
@ -409,7 +409,7 @@ static tr_log_message* addMessages(GtkListStore* store, struct tr_log_message* h
static gboolean onRefresh(gpointer gdata) static gboolean onRefresh(gpointer gdata)
{ {
struct MsgData* data = gdata; auto* data = static_cast<MsgData*>(gdata);
gboolean const pinned_to_new = is_pinned_to_new(data); gboolean const pinned_to_new = is_pinned_to_new(data);
if (!data->isPaused) if (!data->isPaused)
@ -557,7 +557,7 @@ GtkWidget* gtr_message_log_window_new(GtkWindow* parent, TrCore* core)
data->sort = gtk_tree_model_sort_new_with_model(data->filter); data->sort = gtk_tree_model_sort_new_with_model(data->filter);
g_object_unref(data->filter); g_object_unref(data->filter);
gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(data->sort), COL_SEQUENCE, GTK_SORT_ASCENDING); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(data->sort), COL_SEQUENCE, GTK_SORT_ASCENDING);
data->maxLevel = gtr_pref_int_get(TR_KEY_message_level); data->maxLevel = static_cast<tr_log_level>(gtr_pref_int_get(TR_KEY_message_level));
gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(data->filter), isRowVisible, data, NULL); gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(data->filter), isRowVisible, data, NULL);
view = gtk_tree_view_new_with_model(data->sort); view = gtk_tree_view_new_with_model(data->sort);

View File

@ -30,7 +30,7 @@ typedef struct TrNotification
static void tr_notification_free(gpointer data) static void tr_notification_free(gpointer data)
{ {
TrNotification* n = data; auto* n = static_cast<TrNotification*>(data);
if (n->core != NULL) if (n->core != NULL)
{ {
@ -85,13 +85,11 @@ static void g_signal_callback(
TR_UNUSED(sender_name); TR_UNUSED(sender_name);
TR_UNUSED(user_data); TR_UNUSED(user_data);
guint id;
TrNotification* n;
g_return_if_fail(g_variant_is_of_type(params, G_VARIANT_TYPE("(u*)"))); g_return_if_fail(g_variant_is_of_type(params, G_VARIANT_TYPE("(u*)")));
guint id;
g_variant_get(params, "(u*)", &id, NULL); g_variant_get(params, "(u*)", &id, NULL);
n = g_hash_table_lookup(active_notifications, GUINT_TO_POINTER(id)); auto* n = static_cast<TrNotification*>(g_hash_table_lookup(active_notifications, GUINT_TO_POINTER(id)));
if (n == NULL) if (n == NULL)
{ {
@ -171,7 +169,7 @@ void gtr_notify_init(void)
static void notify_callback(GObject* source, GAsyncResult* res, gpointer user_data) static void notify_callback(GObject* source, GAsyncResult* res, gpointer user_data)
{ {
GVariant* result; GVariant* result;
TrNotification* n = user_data; auto* n = static_cast<TrNotification*>(user_data);
result = g_dbus_proxy_call_finish(G_DBUS_PROXY(source), res, NULL); result = g_dbus_proxy_call_finish(G_DBUS_PROXY(source), res, NULL);

View File

@ -70,7 +70,7 @@ static void save_recent_destination(TrCore* core, char const* dir)
* invalidated by gtr_pref_string_set() */ * invalidated by gtr_pref_string_set() */
for (l = list; l != NULL; l = l->next) for (l = list; l != NULL; l = l->next)
{ {
l->data = g_strdup(l->data); l->data = g_strdup(static_cast<char const*>(l->data));
} }
/* save the first N_RECENT directories */ /* save the first N_RECENT directories */
@ -78,7 +78,7 @@ static void save_recent_destination(TrCore* core, char const* dir)
{ {
char key[64]; char key[64];
g_snprintf(key, sizeof(key), "recent-download-dir-%d", i + 1); g_snprintf(key, sizeof(key), "recent-download-dir-%d", i + 1);
gtr_pref_string_set(tr_quark_new(key, TR_BAD_SIZE), l->data); gtr_pref_string_set(tr_quark_new(key, TR_BAD_SIZE), static_cast<char const*>(l->data));
} }
gtr_pref_save(gtr_core_session(core)); gtr_pref_save(gtr_core_session(core));
@ -118,7 +118,7 @@ static void removeOldTorrent(struct OpenData* o)
static void addResponseCB(GtkDialog* dialog, gint response, gpointer gdata) static void addResponseCB(GtkDialog* dialog, gint response, gpointer gdata)
{ {
struct OpenData* o = gdata; auto* o = static_cast<OpenData*>(gdata);
if (o->tor != NULL) if (o->tor != NULL)
{ {
@ -181,7 +181,7 @@ static void updateTorrent(struct OpenData* o)
*/ */
static void sourceChanged(GtkFileChooserButton* b, gpointer gdata) static void sourceChanged(GtkFileChooserButton* b, gpointer gdata)
{ {
struct OpenData* o = gdata; auto* o = static_cast<OpenData*>(gdata);
char* filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(b)); char* filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(b));
/* maybe instantiate a torrent */ /* maybe instantiate a torrent */
@ -233,7 +233,7 @@ static void sourceChanged(GtkFileChooserButton* b, gpointer gdata)
static void downloadDirChanged(GtkFileChooserButton* b, gpointer gdata) static void downloadDirChanged(GtkFileChooserButton* b, gpointer gdata)
{ {
struct OpenData* data = gdata; auto* data = static_cast<OpenData*>(gdata);
char* fname = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(b)); char* fname = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(b));
if (fname != NULL && (data->downloadDir == NULL || !tr_sys_path_is_same(fname, data->downloadDir, NULL))) if (fname != NULL && (data->downloadDir == NULL || !tr_sys_path_is_same(fname, data->downloadDir, NULL)))
@ -347,7 +347,7 @@ GtkWidget* gtr_torrent_options_dialog_new(GtkWindow* parent, TrCore* core, tr_ct
for (GSList* walk = list; walk != NULL; walk = walk->next) for (GSList* walk = list; walk != NULL; walk = walk->next)
{ {
gtk_file_chooser_add_shortcut_folder(GTK_FILE_CHOOSER(w), walk->data, NULL); gtk_file_chooser_add_shortcut_folder(GTK_FILE_CHOOSER(w), static_cast<char const*>(walk->data), NULL);
} }
g_slist_free(list); g_slist_free(list);
@ -443,7 +443,7 @@ static void onOpenDialogResponse(GtkDialog* dialog, int response, gpointer core)
gboolean const do_notify = FALSE; gboolean const do_notify = FALSE;
GSList* files = gtk_file_chooser_get_files(chooser); GSList* files = gtk_file_chooser_get_files(chooser);
gtr_core_add_files(core, files, do_start, do_prompt, do_notify); gtr_core_add_files(static_cast<TrCore*>(core), files, do_start, do_prompt, do_notify);
g_slist_foreach(files, (GFunc)(GCallback)g_object_unref, NULL); g_slist_foreach(files, (GFunc)(GCallback)g_object_unref, NULL);
g_slist_free(files); g_slist_free(files);
} }
@ -497,7 +497,7 @@ static void onOpenURLResponse(GtkDialog* dialog, int response, gpointer user_dat
if (url != NULL) if (url != NULL)
{ {
handled = gtr_core_add_from_url(user_data, url); handled = gtr_core_add_from_url(static_cast<TrCore*>(user_data), url);
if (!handled) if (!handled)
{ {

View File

@ -33,7 +33,7 @@ struct relocate_dialog_data
static void data_free(gpointer gdata) static void data_free(gpointer gdata)
{ {
struct relocate_dialog_data* data = gdata; auto* data = static_cast<relocate_dialog_data*>(gdata);
g_source_remove(data->timer); g_source_remove(data->timer);
g_slist_free(data->torrent_ids); g_slist_free(data->torrent_ids);
g_free(data); g_free(data);
@ -66,12 +66,12 @@ static void startMovingNextTorrent(struct relocate_dialog_data* data)
* if so, delete the dialog */ * if so, delete the dialog */
static gboolean onTimer(gpointer gdata) static gboolean onTimer(gpointer gdata)
{ {
struct relocate_dialog_data* data = gdata; auto* data = static_cast<relocate_dialog_data*>(gdata);
int const done = data->done; int const done = data->done;
if (done == TR_LOC_ERROR) if (done == TR_LOC_ERROR)
{ {
int const flags = GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT; auto const flags = GtkDialogFlags(GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT);
GtkWidget* w = gtk_message_dialog_new( GtkWidget* w = gtk_message_dialog_new(
GTK_WINDOW(data->message_dialog), GTK_WINDOW(data->message_dialog),
flags, flags,
@ -105,9 +105,9 @@ static void onResponse(GtkDialog* dialog, int response, gconstpointer user_data)
{ {
GtkWidget* w; GtkWidget* w;
GObject* d = G_OBJECT(dialog); GObject* d = G_OBJECT(dialog);
struct relocate_dialog_data* data = g_object_get_data(d, DATA_KEY); auto* data = static_cast<relocate_dialog_data*>(g_object_get_data(d, DATA_KEY));
GtkFileChooser* chooser = g_object_get_data(d, "chooser"); auto* chooser = static_cast<GtkFileChooser*>(g_object_get_data(d, "chooser"));
GtkToggleButton* move_tb = g_object_get_data(d, "move_rb"); auto* move_tb = static_cast<GtkToggleButton*>(g_object_get_data(d, "move_rb"));
char* location = gtk_file_chooser_get_filename(chooser); char* location = gtk_file_chooser_get_filename(chooser);
data->do_move = gtk_toggle_button_get_active(move_tb); data->do_move = gtk_toggle_button_get_active(move_tb);
@ -115,7 +115,7 @@ static void onResponse(GtkDialog* dialog, int response, gconstpointer user_data)
/* pop up a dialog saying that the work is in progress */ /* pop up a dialog saying that the work is in progress */
w = gtk_message_dialog_new( w = gtk_message_dialog_new(
GTK_WINDOW(dialog), GTK_WINDOW(dialog),
GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GtkDialogFlags(GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL),
GTK_MESSAGE_INFO, GTK_MESSAGE_INFO,
GTK_BUTTONS_CLOSE, GTK_BUTTONS_CLOSE,
NULL); NULL);
@ -150,7 +150,7 @@ GtkWidget* gtr_relocate_dialog_new(GtkWindow* parent, TrCore* core, GSList* torr
d = gtk_dialog_new_with_buttons( d = gtk_dialog_new_with_buttons(
_("Set Torrent Location"), _("Set Torrent Location"),
parent, parent,
GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GtkDialogFlags(GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL),
TR_ARG_TUPLE(_("_Cancel"), GTK_RESPONSE_CANCEL), TR_ARG_TUPLE(_("_Cancel"), GTK_RESPONSE_CANCEL),
TR_ARG_TUPLE(_("_Apply"), GTK_RESPONSE_APPLY), TR_ARG_TUPLE(_("_Apply"), GTK_RESPONSE_APPLY),
NULL); NULL);

View File

@ -55,7 +55,7 @@ static gboolean updateStats(gpointer gdata)
tr_session_stats one; tr_session_stats one;
tr_session_stats all; tr_session_stats all;
size_t const buflen = sizeof(buf); size_t const buflen = sizeof(buf);
struct stat_ui* ui = gdata; auto* ui = static_cast<stat_ui*>(gdata);
tr_sessionGetStats(gtr_core_session(ui->core), &one); tr_sessionGetStats(gtr_core_session(ui->core), &one);
tr_sessionGetCumulativeStats(gtr_core_session(ui->core), &all); tr_sessionGetCumulativeStats(gtr_core_session(ui->core), &all);
@ -85,7 +85,7 @@ static void dialogDestroyed(gpointer p, GObject* dialog)
static void dialogResponse(GtkDialog* dialog, gint response, gpointer gdata) static void dialogResponse(GtkDialog* dialog, gint response, gpointer gdata)
{ {
struct stat_ui* ui = gdata; auto* ui = static_cast<stat_ui*>(gdata);
if (response == TR_RESPONSE_RESET) if (response == TR_RESPONSE_RESET)
{ {
@ -93,7 +93,7 @@ static void dialogResponse(GtkDialog* dialog, gint response, gpointer gdata)
char const* secondary = _( char const* secondary = _(
"These statistics are for your information only. " "These statistics are for your information only. "
"Resetting them doesn't affect the statistics logged by your BitTorrent trackers."); "Resetting them doesn't affect the statistics logged by your BitTorrent trackers.");
int const flags = GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL; auto const flags = GtkDialogFlags(GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL);
GtkWidget* w = gtk_message_dialog_new(GTK_WINDOW(dialog), flags, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, "%s", primary); GtkWidget* w = gtk_message_dialog_new(GTK_WINDOW(dialog), flags, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, "%s", primary);
gtk_dialog_add_buttons( gtk_dialog_add_buttons(
GTK_DIALOG(w), GTK_DIALOG(w),

View File

@ -888,7 +888,7 @@ static void torrent_cell_renderer_set_property(GObject* object, guint property_i
switch (property_id) switch (property_id)
{ {
case P_TORRENT: case P_TORRENT:
p->tor = g_value_get_pointer(v); p->tor = static_cast<tr_torrent*>(g_value_get_pointer(v));
break; break;
case P_UPLOAD_SPEED: case P_UPLOAD_SPEED:
@ -1007,7 +1007,7 @@ static void torrent_cell_renderer_init(TorrentCellRenderer* self)
struct TorrentCellRendererPrivate* p; struct TorrentCellRendererPrivate* p;
#if GLIB_CHECK_VERSION(2, 58, 0) #if GLIB_CHECK_VERSION(2, 58, 0)
p = self->priv = torrent_cell_renderer_get_instance_private(self); p = self->priv = static_cast<TorrentCellRendererPrivate*>(torrent_cell_renderer_get_instance_private(self));
#else #else
p = self->priv = G_TYPE_INSTANCE_GET_PRIVATE(self, TORRENT_CELL_RENDERER_TYPE, struct TorrentCellRendererPrivate); p = self->priv = G_TYPE_INSTANCE_GET_PRIVATE(self, TORRENT_CELL_RENDERER_TYPE, struct TorrentCellRendererPrivate);
#endif #endif

View File

@ -221,7 +221,7 @@ static void tr_core_init(TrCore* core)
}; };
#if GLIB_CHECK_VERSION(2, 58, 0) #if GLIB_CHECK_VERSION(2, 58, 0)
p = core->priv = tr_core_get_instance_private(core); p = core->priv = static_cast<TrCorePrivate*>(tr_core_get_instance_private(core));
#else #else
p = core->priv = G_TYPE_INSTANCE_GET_PRIVATE(core, TR_CORE_TYPE, struct TrCorePrivate); p = core->priv = G_TYPE_INSTANCE_GET_PRIVATE(core, TR_CORE_TYPE, struct TrCorePrivate);
#endif #endif
@ -724,7 +724,7 @@ static time_t get_file_mtime(GFile* file)
GFileInfo* info; GFileInfo* info;
time_t mtime = 0; time_t mtime = 0;
info = g_file_query_info(file, G_FILE_ATTRIBUTE_TIME_MODIFIED, 0, NULL, NULL); info = g_file_query_info(file, G_FILE_ATTRIBUTE_TIME_MODIFIED, {}, NULL, NULL);
if (info != NULL) if (info != NULL)
{ {
@ -739,7 +739,7 @@ static void rename_torrent_and_unref_file(GFile* file)
{ {
GFileInfo* info; GFileInfo* info;
info = g_file_query_info(file, G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME, 0, NULL, NULL); info = g_file_query_info(file, G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME, {}, NULL, NULL);
if (info != NULL) if (info != NULL)
{ {
@ -781,7 +781,7 @@ static gboolean core_watchdir_idle(gpointer gcore)
/* separate the files into two lists: changing and unchanging */ /* separate the files into two lists: changing and unchanging */
for (GSList* l = p->monitor_files; l != NULL; l = l->next) for (GSList* l = p->monitor_files; l != NULL; l = l->next)
{ {
GFile* file = l->data; auto* file = static_cast<GFile*>(l->data);
time_t const mtime = get_file_mtime(file); time_t const mtime = get_file_mtime(file);
if (mtime + 2 >= now) if (mtime + 2 >= now)
@ -835,7 +835,7 @@ static void core_watchdir_monitor_file(TrCore* core, GFile* file)
/* if we're not already watching this file, start watching it now */ /* if we're not already watching this file, start watching it now */
for (GSList* l = p->monitor_files; !found && l != NULL; l = l->next) for (GSList* l = p->monitor_files; !found && l != NULL; l = l->next)
{ {
found = g_file_equal(file, l->data); found = g_file_equal(file, static_cast<GFile*>(l->data));
} }
if (!found) if (!found)
@ -866,7 +866,7 @@ static void on_file_changed_in_watchdir(
if (event_type == G_FILE_MONITOR_EVENT_CREATED) if (event_type == G_FILE_MONITOR_EVENT_CREATED)
{ {
core_watchdir_monitor_file(core, file); core_watchdir_monitor_file(static_cast<TrCore*>(core), file);
} }
} }
@ -913,7 +913,7 @@ static void core_watchdir_update(TrCore* core)
if (is_enabled && p->monitor == NULL) if (is_enabled && p->monitor == NULL)
{ {
GFileMonitor* m = g_file_monitor_directory(dir, 0, NULL, NULL); GFileMonitor* m = g_file_monitor_directory(dir, {}, NULL, NULL);
core_watchdir_scan(core); core_watchdir_scan(core);
g_object_ref(dir); g_object_ref(dir);
@ -1012,7 +1012,7 @@ struct notify_callback_data
static gboolean on_torrent_completeness_changed_idle(gpointer gdata) static gboolean on_torrent_completeness_changed_idle(gpointer gdata)
{ {
struct notify_callback_data* data = gdata; auto* data = static_cast<notify_callback_data*>(gdata);
gtr_notify_torrent_completed(data->core, data->torrent_id); gtr_notify_torrent_completed(data->core, data->torrent_id);
g_object_unref(G_OBJECT(data->core)); g_object_unref(G_OBJECT(data->core));
g_free(data); g_free(data);
@ -1026,7 +1026,7 @@ static void on_torrent_completeness_changed(tr_torrent* tor, tr_completeness com
if (was_running && completeness != TR_LEECH && tr_torrentStat(tor)->sizeWhenDone != 0) if (was_running && completeness != TR_LEECH && tr_torrentStat(tor)->sizeWhenDone != 0)
{ {
struct notify_callback_data* data = g_new(struct notify_callback_data, 1); struct notify_callback_data* data = g_new(struct notify_callback_data, 1);
data->core = gcore; data->core = static_cast<TrCore*>(gcore);
data->torrent_id = tr_torrentId(tor); data->torrent_id = tr_torrentId(tor);
g_object_ref(G_OBJECT(data->core)); g_object_ref(G_OBJECT(data->core));
gdk_threads_add_idle(on_torrent_completeness_changed_idle, data); gdk_threads_add_idle(on_torrent_completeness_changed_idle, data);
@ -1079,7 +1079,7 @@ static gboolean find_row_from_torrent_id(GtkTreeModel* model, int id, GtkTreeIte
static gboolean on_torrent_metadata_changed_idle(gpointer gdata) static gboolean on_torrent_metadata_changed_idle(gpointer gdata)
{ {
struct notify_callback_data* const data = gdata; auto* const data = static_cast<notify_callback_data*>(gdata);
tr_session* const session = gtr_core_session(data->core); tr_session* const session = gtr_core_session(data->core);
tr_torrent const* const tor = tr_torrentFindFromId(session, data->torrent_id); tr_torrent const* const tor = tr_torrentFindFromId(session, data->torrent_id);
@ -1108,7 +1108,7 @@ static gboolean on_torrent_metadata_changed_idle(gpointer gdata)
static void on_torrent_metadata_changed(tr_torrent* tor, void* gcore) static void on_torrent_metadata_changed(tr_torrent* tor, void* gcore)
{ {
struct notify_callback_data* data = g_new(struct notify_callback_data, 1); struct notify_callback_data* data = g_new(struct notify_callback_data, 1);
data->core = gcore; data->core = static_cast<TrCore*>(gcore);
data->torrent_id = tr_torrentId(tor); data->torrent_id = tr_torrentId(tor);
g_object_ref(G_OBJECT(data->core)); g_object_ref(G_OBJECT(data->core));
gdk_threads_add_idle(on_torrent_metadata_changed_idle, data); gdk_threads_add_idle(on_torrent_metadata_changed_idle, data);
@ -1215,7 +1215,7 @@ static tr_torrent* core_create_new_torrent(TrCore* core, tr_ctor* ctor)
static int core_add_ctor(TrCore* core, tr_ctor* ctor, gboolean do_prompt, gboolean do_notify) static int core_add_ctor(TrCore* core, tr_ctor* ctor, gboolean do_prompt, gboolean do_notify)
{ {
tr_info inf; tr_info inf;
int err = tr_torrentParse(ctor, &inf); auto err = tr_torrentParse(ctor, &inf);
switch (err) switch (err)
{ {
@ -1228,7 +1228,7 @@ static int core_add_ctor(TrCore* core, tr_ctor* ctor, gboolean do_prompt, gboole
* don't want to be nagging users to clean up their watch dirs */ * don't want to be nagging users to clean up their watch dirs */
if (tr_ctorGetSourceFile(ctor) == NULL || !core->priv->adding_from_watch_dir) if (tr_ctorGetSourceFile(ctor) == NULL || !core->priv->adding_from_watch_dir)
{ {
core_emit_err(core, err, inf.name); core_emit_err(core, static_cast<tr_core_err>(err), inf.name);
} }
tr_metainfoFree(&inf); tr_metainfoFree(&inf);
@ -1301,7 +1301,7 @@ static void add_file_async_callback(GObject* file, GAsyncResult* result, gpointe
gsize length; gsize length;
char* contents; char* contents;
GError* error = NULL; GError* error = NULL;
struct add_from_url_data* data = gdata; auto* data = static_cast<add_from_url_data*>(gdata);
if (!g_file_load_contents_finish(G_FILE(file), result, &contents, &length, NULL, &error)) if (!g_file_load_contents_finish(G_FILE(file), result, &contents, &length, NULL, &error))
{ {
@ -1427,7 +1427,7 @@ void gtr_core_add_files(TrCore* core, GSList* files, gboolean do_start, gboolean
{ {
for (GSList* l = files; l != NULL; l = l->next) for (GSList* l = files; l != NULL; l = l->next)
{ {
add_file(core, l->data, do_start, do_prompt, do_notify); add_file(core, static_cast<GFile*>(l->data), do_start, do_prompt, do_notify);
} }
gtr_core_torrents_added(core); gtr_core_torrents_added(core);
@ -1853,12 +1853,12 @@ static GHashTable* pendingRequests = NULL;
static gboolean core_read_rpc_response_idle(void* vresponse) static gboolean core_read_rpc_response_idle(void* vresponse)
{ {
int64_t intVal; int64_t intVal;
tr_variant* response = vresponse; auto* response = static_cast<tr_variant*>(vresponse);
if (tr_variantDictFindInt(response, TR_KEY_tag, &intVal)) if (tr_variantDictFindInt(response, TR_KEY_tag, &intVal))
{ {
int const tag = (int)intVal; int const tag = (int)intVal;
struct pending_request_data* data = g_hash_table_lookup(pendingRequests, &tag); auto* data = static_cast<pending_request_data*>(g_hash_table_lookup(pendingRequests, &tag));
if (data != NULL) if (data != NULL)
{ {

View File

@ -27,8 +27,6 @@
#include <libtransmission/transmission.h> #include <libtransmission/transmission.h>
#include <libtransmission/variant.h> #include <libtransmission/variant.h>
G_BEGIN_DECLS
#define TR_CORE_TYPE (tr_core_get_type()) #define TR_CORE_TYPE (tr_core_get_type())
#define TR_CORE(o) (G_TYPE_CHECK_INSTANCE_CAST((o), TR_CORE_TYPE, TrCore)) #define TR_CORE(o) (G_TYPE_CHECK_INSTANCE_CAST((o), TR_CORE_TYPE, TrCore))
@ -182,5 +180,3 @@ enum
/* */ /* */
MC_ROW_COUNT MC_ROW_COUNT
}; };
G_END_DECLS

View File

@ -66,7 +66,7 @@ void gtr_icon_refresh(gpointer vicon)
char tip[1024]; char tip[1024];
char const* idle = _("Idle"); char const* idle = _("Idle");
GtkStatusIcon* icon = GTK_STATUS_ICON(vicon); GtkStatusIcon* icon = GTK_STATUS_ICON(vicon);
tr_session* session = gtr_core_session(g_object_get_qdata(G_OBJECT(icon), core_quark())); tr_session* session = gtr_core_session(static_cast<TrCore*>(g_object_get_qdata(G_OBJECT(icon), core_quark())));
/* up */ /* up */
KBps = tr_sessionGetRawSpeed_KBps(session, TR_UP); KBps = tr_sessionGetRawSpeed_KBps(session, TR_UP);

View File

@ -87,7 +87,7 @@ struct spin_idle_data
static void spin_idle_data_free(gpointer gdata) static void spin_idle_data_free(gpointer gdata)
{ {
struct spin_idle_data* data = gdata; auto* data = static_cast<spin_idle_data*>(gdata);
g_timer_destroy(data->last_change); g_timer_destroy(data->last_change);
g_free(data); g_free(data);
@ -97,7 +97,7 @@ static gboolean spun_cb_idle(gpointer spin)
{ {
gboolean keep_waiting = TRUE; gboolean keep_waiting = TRUE;
GObject* o = G_OBJECT(spin); GObject* o = G_OBJECT(spin);
struct spin_idle_data* data = g_object_get_data(o, IDLE_DATA); auto* data = static_cast<spin_idle_data*>(g_object_get_data(o, IDLE_DATA));
/* has the user stopped making changes? */ /* has the user stopped making changes? */
if (g_timer_elapsed(data->last_change, NULL) > 0.33) if (g_timer_elapsed(data->last_change, NULL) > 0.33)
@ -130,7 +130,7 @@ static void spun_cb(GtkSpinButton* w, gpointer core, gboolean isDouble)
/* user may be spinning through many values, so let's hold off /* user may be spinning through many values, so let's hold off
for a moment to keep from flooding the core with changes */ for a moment to keep from flooding the core with changes */
GObject* o = G_OBJECT(w); GObject* o = G_OBJECT(w);
struct spin_idle_data* data = g_object_get_data(o, IDLE_DATA); auto* data = static_cast<spin_idle_data*>(g_object_get_data(o, IDLE_DATA));
if (data == NULL) if (data == NULL)
{ {
@ -421,7 +421,7 @@ static void privacyPageDestroyed(gpointer gdata, GObject* dead)
{ {
TR_UNUSED(dead); TR_UNUSED(dead);
struct blocklist_data* data = gdata; auto* data = static_cast<blocklist_data*>(gdata);
if (data->updateBlocklistTag > 0) if (data->updateBlocklistTag > 0)
{ {
@ -436,7 +436,7 @@ static void onBlocklistUpdateResponse(GtkDialog* dialog, gint response, gpointer
{ {
TR_UNUSED(response); TR_UNUSED(response);
struct blocklist_data* data = gdata; auto* data = static_cast<blocklist_data*>(gdata);
gtk_widget_destroy(GTK_WIDGET(dialog)); gtk_widget_destroy(GTK_WIDGET(dialog));
gtk_widget_set_sensitive(data->updateBlocklistButton, TRUE); gtk_widget_set_sensitive(data->updateBlocklistButton, TRUE);
data->updateBlocklistDialog = NULL; data->updateBlocklistDialog = NULL;
@ -449,7 +449,7 @@ static void onBlocklistUpdated(TrCore* core, int n, gpointer gdata)
{ {
bool const success = n >= 0; bool const success = n >= 0;
int const count = n >= 0 ? n : tr_blocklistGetRuleCount(gtr_core_session(core)); int const count = n >= 0 ? n : tr_blocklistGetRuleCount(gtr_core_session(core));
struct blocklist_data* data = gdata; auto* data = static_cast<blocklist_data*>(gdata);
GtkMessageDialog* d = GTK_MESSAGE_DIALOG(data->updateBlocklistDialog); GtkMessageDialog* d = GTK_MESSAGE_DIALOG(data->updateBlocklistDialog);
gtk_widget_set_sensitive(data->updateBlocklistButton, TRUE); gtk_widget_set_sensitive(data->updateBlocklistButton, TRUE);
gtk_message_dialog_set_markup(d, success ? _("<b>Update succeeded!</b>") : _("<b>Unable to update.</b>")); gtk_message_dialog_set_markup(d, success ? _("<b>Update succeeded!</b>") : _("<b>Unable to update.</b>"));
@ -462,7 +462,7 @@ static void onBlocklistUpdated(TrCore* core, int n, gpointer gdata)
static void onBlocklistUpdate(GtkButton* w, gpointer gdata) static void onBlocklistUpdate(GtkButton* w, gpointer gdata)
{ {
GtkWidget* d; GtkWidget* d;
struct blocklist_data* data = gdata; auto* data = static_cast<blocklist_data*>(gdata);
d = gtk_message_dialog_new( d = gtk_message_dialog_new(
GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(w))), GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(w))),
GTK_DIALOG_DESTROY_WITH_PARENT, GTK_DIALOG_DESTROY_WITH_PARENT,
@ -646,7 +646,7 @@ static void onAddressEdited(GtkCellRendererText const* r, gchar const* path_stri
TR_UNUSED(r); TR_UNUSED(r);
GtkTreeIter iter; GtkTreeIter iter;
struct remote_page* page = gpage; auto* page = static_cast<remote_page*>(gpage);
GtkTreeModel* model = GTK_TREE_MODEL(page->store); GtkTreeModel* model = GTK_TREE_MODEL(page->store);
GtkTreePath* path = gtk_tree_path_new_from_string(path_string); GtkTreePath* path = gtk_tree_path_new_from_string(path_string);
@ -665,7 +665,7 @@ static void onAddWhitelistClicked(GtkButton const* b, gpointer gpage)
GtkTreeIter iter; GtkTreeIter iter;
GtkTreePath* path; GtkTreePath* path;
struct remote_page* page = gpage; auto* page = static_cast<remote_page*>(gpage);
gtk_list_store_append(page->store, &iter); gtk_list_store_append(page->store, &iter);
gtk_list_store_set(page->store, &iter, COL_ADDRESS, "0.0.0.0", -1); gtk_list_store_set(page->store, &iter, COL_ADDRESS, "0.0.0.0", -1);
@ -679,7 +679,7 @@ static void onRemoveWhitelistClicked(GtkButton const* b, gpointer gpage)
{ {
TR_UNUSED(b); TR_UNUSED(b);
struct remote_page* page = gpage; auto* page = static_cast<remote_page*>(gpage);
GtkTreeSelection* sel = gtk_tree_view_get_selection(page->view); GtkTreeSelection* sel = gtk_tree_view_get_selection(page->view);
GtkTreeIter iter; GtkTreeIter iter;
@ -721,14 +721,14 @@ static void onRPCToggled(GtkToggleButton* tb, gpointer page)
{ {
TR_UNUSED(tb); TR_UNUSED(tb);
refreshRPCSensitivity(page); refreshRPCSensitivity(static_cast<remote_page*>(page));
} }
static void onWhitelistSelectionChanged(GtkTreeSelection* sel, gpointer page) static void onWhitelistSelectionChanged(GtkTreeSelection* sel, gpointer page)
{ {
TR_UNUSED(sel); TR_UNUSED(sel);
refreshRPCSensitivity(page); refreshRPCSensitivity(static_cast<remote_page*>(page));
} }
static void onLaunchClutchCB(GtkButton* w, gpointer data) static void onLaunchClutchCB(GtkButton* w, gpointer data)
@ -746,7 +746,7 @@ static void onLaunchClutchCB(GtkButton* w, gpointer data)
static void remotePageFree(gpointer gpage) static void remotePageFree(gpointer gpage)
{ {
struct remote_page* page = gpage; auto* page = static_cast<remote_page*>(gpage);
g_slist_free(page->widgets); g_slist_free(page->widgets);
g_slist_free(page->auth_widgets); g_slist_free(page->auth_widgets);
@ -906,7 +906,7 @@ static void onSchedToggled(GtkToggleButton* tb, gpointer user_data)
{ {
TR_UNUSED(tb); TR_UNUSED(tb);
refreshSchedSensitivity(user_data); refreshSchedSensitivity(static_cast<BandwidthPage*>(user_data));
} }
static void onTimeComboChanged(GtkComboBox* w, gpointer core) static void onTimeComboChanged(GtkComboBox* w, gpointer core)
@ -979,7 +979,7 @@ static GtkWidget* new_week_combo(GObject* core, tr_quark const key)
static void speedPageFree(gpointer gpage) static void speedPageFree(gpointer gpage)
{ {
struct BandwidthPage* page = gpage; auto* page = static_cast<BandwidthPage*>(gpage);
g_slist_free(page->sched_widgets); g_slist_free(page->sched_widgets);
g_free(page); g_free(page);
@ -1090,7 +1090,7 @@ static void onCorePrefsChanged(TrCore* core, tr_quark const key, gpointer gdata)
if (key == TR_KEY_peer_port) if (key == TR_KEY_peer_port)
{ {
struct network_page_data* data = gdata; auto* data = static_cast<network_page_data*>(gdata);
gtr_label_set_text(GTK_LABEL(data->portLabel), _("Status unknown")); gtr_label_set_text(GTK_LABEL(data->portLabel), _("Status unknown"));
gtk_widget_set_sensitive(data->portButton, TRUE); gtk_widget_set_sensitive(data->portButton, TRUE);
gtk_widget_set_sensitive(data->portSpin, TRUE); gtk_widget_set_sensitive(data->portSpin, TRUE);
@ -1101,7 +1101,7 @@ static void networkPageDestroyed(gpointer gdata, GObject* dead)
{ {
TR_UNUSED(dead); TR_UNUSED(dead);
struct network_page_data* data = gdata; auto* data = static_cast<network_page_data*>(gdata);
if (data->prefsTag > 0) if (data->prefsTag > 0)
{ {
@ -1120,7 +1120,7 @@ static void onPortTested(TrCore* core, gboolean isOpen, gpointer vdata)
{ {
TR_UNUSED(core); TR_UNUSED(core);
struct network_page_data* data = vdata; auto* data = static_cast<network_page_data*>(vdata);
char const* markup = isOpen ? _("Port is <b>open</b>") : _("Port is <b>closed</b>"); char const* markup = isOpen ? _("Port is <b>open</b>") : _("Port is <b>closed</b>");
gtk_label_set_markup(GTK_LABEL(data->portLabel), markup); gtk_label_set_markup(GTK_LABEL(data->portLabel), markup);
@ -1132,7 +1132,7 @@ static void onPortTest(GtkButton* button, gpointer vdata)
{ {
TR_UNUSED(button); TR_UNUSED(button);
struct network_page_data* data = vdata; auto* data = static_cast<network_page_data*>(vdata);
gtk_widget_set_sensitive(data->portButton, FALSE); gtk_widget_set_sensitive(data->portButton, FALSE);
gtk_widget_set_sensitive(data->portSpin, FALSE); gtk_widget_set_sensitive(data->portSpin, FALSE);
gtk_label_set_markup(GTK_LABEL(data->portLabel), _("<i>Testing TCP port…</i>")); gtk_label_set_markup(GTK_LABEL(data->portLabel), _("<i>Testing TCP port…</i>"));
@ -1232,7 +1232,7 @@ static GtkWidget* networkPage(GObject* core)
static void on_prefs_dialog_destroyed(gpointer gdata, GObject* dead_dialog G_GNUC_UNUSED) static void on_prefs_dialog_destroyed(gpointer gdata, GObject* dead_dialog G_GNUC_UNUSED)
{ {
struct prefs_dialog_data* data = gdata; auto* data = static_cast<prefs_dialog_data*>(gdata);
if (data->core_prefs_tag > 0) if (data->core_prefs_tag > 0)
{ {
@ -1244,7 +1244,7 @@ static void on_prefs_dialog_destroyed(gpointer gdata, GObject* dead_dialog G_GNU
static void on_core_prefs_changed(TrCore* core, tr_quark const key, gpointer gdata) static void on_core_prefs_changed(TrCore* core, tr_quark const key, gpointer gdata)
{ {
struct prefs_dialog_data* data = gdata; auto* data = static_cast<prefs_dialog_data*>(gdata);
#if 0 #if 0

View File

@ -67,7 +67,7 @@ static TR_DEFINE_QUARK(private_data, private_data)
static PrivateData* get_private_data(GtkWindow* w) static PrivateData* get_private_data(GtkWindow* w)
{ {
return g_object_get_qdata(G_OBJECT(w), private_data_quark()); return static_cast<PrivateData*>(g_object_get_qdata(G_OBJECT(w), private_data_quark()));
} }
/*** /***
@ -201,7 +201,7 @@ static void prefsChanged(TrCore* core, tr_quark const key, gpointer wind)
break; break;
case TR_KEY_statusbar_stats: case TR_KEY_statusbar_stats:
gtr_window_refresh(wind); gtr_window_refresh(static_cast<GtkWindow*>(wind));
break; break;
case TR_KEY_alt_speed_enabled: case TR_KEY_alt_speed_enabled:
@ -217,7 +217,7 @@ static void prefsChanged(TrCore* core, tr_quark const key, gpointer wind)
static void privateFree(gpointer vprivate) static void privateFree(gpointer vprivate)
{ {
PrivateData* p = vprivate; auto* p = static_cast<PrivateData*>(vprivate);
g_signal_handler_disconnect(p->core, p->pref_handler_id); g_signal_handler_disconnect(p->core, p->pref_handler_id);
g_free(p); g_free(p);
} }
@ -226,7 +226,7 @@ static void onYinYangClicked(GtkWidget* w, gpointer vprivate)
{ {
TR_UNUSED(w); TR_UNUSED(w);
PrivateData* p = vprivate; auto* p = static_cast<PrivateData*>(vprivate);
#if GTK_CHECK_VERSION(3, 22, 0) #if GTK_CHECK_VERSION(3, 22, 0)
gtk_menu_popup_at_widget(GTK_MENU(p->status_menu), GTK_WIDGET(w), GDK_GRAVITY_NORTH_EAST, GDK_GRAVITY_SOUTH_EAST, NULL); gtk_menu_popup_at_widget(GTK_MENU(p->status_menu), GTK_WIDGET(w), GDK_GRAVITY_NORTH_EAST, GDK_GRAVITY_SOUTH_EAST, NULL);
@ -252,8 +252,8 @@ static void status_menu_toggled_cb(GtkCheckMenuItem* menu_item, gpointer vprivat
{ {
if (gtk_check_menu_item_get_active(menu_item)) if (gtk_check_menu_item_get_active(menu_item))
{ {
PrivateData* p = vprivate; auto* p = static_cast<PrivateData*>(vprivate);
char const* val = g_object_get_data(G_OBJECT(menu_item), STATS_MODE); auto const* val = static_cast<char const*>(g_object_get_data(G_OBJECT(menu_item), STATS_MODE));
gtr_core_set_pref(p->core, TR_KEY_statusbar_stats, val); gtr_core_set_pref(p->core, TR_KEY_statusbar_stats, val);
} }
} }
@ -273,7 +273,7 @@ static void syncAltSpeedButton(PrivateData* p)
g_strdup_printf(_("Click to enable Alternative Speed Limits\n (%1$s down, %2$s up)"), d, u); g_strdup_printf(_("Click to enable Alternative Speed Limits\n (%1$s down, %2$s up)"), d, u);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), b); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), b);
gtk_image_set_from_stock(GTK_IMAGE(p->alt_speed_image), stock, -1); gtk_image_set_from_stock(GTK_IMAGE(p->alt_speed_image), stock, GtkIconSize(-1));
g_object_set(w, "halign", GTK_ALIGN_CENTER, "valign", GTK_ALIGN_CENTER, NULL); g_object_set(w, "halign", GTK_ALIGN_CENTER, "valign", GTK_ALIGN_CENTER, NULL);
gtk_widget_set_tooltip_text(w, str); gtk_widget_set_tooltip_text(w, str);
@ -282,7 +282,7 @@ static void syncAltSpeedButton(PrivateData* p)
static void alt_speed_toggled_cb(GtkToggleButton* button, gpointer vprivate) static void alt_speed_toggled_cb(GtkToggleButton* button, gpointer vprivate)
{ {
PrivateData* p = vprivate; auto* p = static_cast<PrivateData*>(vprivate);
gboolean const b = gtk_toggle_button_get_active(button); gboolean const b = gtk_toggle_button_get_active(button);
gtr_core_set_pref_bool(p->core, TR_KEY_alt_speed_enabled, b); gtr_core_set_pref_bool(p->core, TR_KEY_alt_speed_enabled, b);
} }
@ -297,7 +297,7 @@ static void findMaxAnnounceTime(GtkTreeModel* model, GtkTreePath* path, GtkTreeI
tr_torrent* tor; tr_torrent* tor;
tr_stat const* torStat; tr_stat const* torStat;
time_t* maxTime = gmaxTime; auto* maxTime = static_cast<time_t*>(gmaxTime);
gtk_tree_model_get(model, iter, MC_TORRENT, &tor, -1); gtk_tree_model_get(model, iter, MC_TORRENT, &tor, -1);
torStat = tr_torrentStatCached(tor); torStat = tr_torrentStatCached(tor);
@ -319,7 +319,7 @@ static gboolean onAskTrackerQueryTooltip(
gboolean handled; gboolean handled;
time_t maxTime = 0; time_t maxTime = 0;
PrivateData* p = gdata; auto* p = static_cast<PrivateData*>(gdata);
time_t const now = time(NULL); time_t const now = time(NULL);
gtk_tree_selection_selected_foreach(p->selection, findMaxAnnounceTime, &maxTime); gtk_tree_selection_selected_foreach(p->selection, findMaxAnnounceTime, &maxTime);
@ -345,7 +345,7 @@ static gboolean onAskTrackerQueryTooltip(
static gboolean onAltSpeedToggledIdle(gpointer vp) static gboolean onAltSpeedToggledIdle(gpointer vp)
{ {
PrivateData* p = vp; auto* p = static_cast<PrivateData*>(vp);
gboolean b = tr_sessionUsesAltSpeed(gtr_core_session(p->core)); gboolean b = tr_sessionUsesAltSpeed(gtr_core_session(p->core));
gtr_core_set_pref_bool(p->core, TR_KEY_alt_speed_enabled, b); gtr_core_set_pref_bool(p->core, TR_KEY_alt_speed_enabled, b);
@ -371,10 +371,10 @@ static void onAltSpeedToggled(tr_session* s, bool isEnabled, bool byUser, void*
static void onSpeedToggled(GtkCheckMenuItem* check, gpointer vp) static void onSpeedToggled(GtkCheckMenuItem* check, gpointer vp)
{ {
PrivateData* p = vp; auto* p = static_cast<PrivateData*>(vp);
GObject* o = G_OBJECT(check); GObject* o = G_OBJECT(check);
gboolean isEnabled = g_object_get_data(o, ENABLED_KEY) != 0; gboolean isEnabled = g_object_get_data(o, ENABLED_KEY) != 0;
tr_direction dir = GPOINTER_TO_INT(g_object_get_data(o, DIRECTION_KEY)); auto dir = static_cast<tr_direction>(GPOINTER_TO_INT(g_object_get_data(o, DIRECTION_KEY)));
tr_quark const key = dir == TR_UP ? TR_KEY_speed_limit_up_enabled : TR_KEY_speed_limit_down_enabled; tr_quark const key = dir == TR_UP ? TR_KEY_speed_limit_up_enabled : TR_KEY_speed_limit_down_enabled;
if (gtk_check_menu_item_get_active(check)) if (gtk_check_menu_item_get_active(check))
@ -386,10 +386,10 @@ static void onSpeedToggled(GtkCheckMenuItem* check, gpointer vp)
static void onSpeedSet(GtkCheckMenuItem* check, gpointer vp) static void onSpeedSet(GtkCheckMenuItem* check, gpointer vp)
{ {
tr_quark key; tr_quark key;
PrivateData* p = vp; auto* p = static_cast<PrivateData*>(vp);
GObject* o = G_OBJECT(check); GObject* o = G_OBJECT(check);
int const KBps = GPOINTER_TO_INT(g_object_get_data(o, SPEED_KEY)); int const KBps = GPOINTER_TO_INT(g_object_get_data(o, SPEED_KEY));
tr_direction dir = GPOINTER_TO_INT(g_object_get_data(o, DIRECTION_KEY)); auto dir = static_cast<tr_direction>(GPOINTER_TO_INT(g_object_get_data(o, DIRECTION_KEY)));
key = dir == TR_UP ? TR_KEY_speed_limit_up : TR_KEY_speed_limit_down; key = dir == TR_UP ? TR_KEY_speed_limit_up : TR_KEY_speed_limit_down;
gtr_core_set_pref_int(p->core, key, KBps); gtr_core_set_pref_int(p->core, key, KBps);
@ -453,7 +453,7 @@ static double const stockRatios[] = { 0.25, 0.5, 0.75, 1, 1.5, 2, 3 };
static void onRatioToggled(GtkCheckMenuItem* check, gpointer vp) static void onRatioToggled(GtkCheckMenuItem* check, gpointer vp)
{ {
PrivateData* p = vp; auto* p = static_cast<PrivateData*>(vp);
if (gtk_check_menu_item_get_active(check)) if (gtk_check_menu_item_get_active(check))
{ {
@ -464,7 +464,7 @@ static void onRatioToggled(GtkCheckMenuItem* check, gpointer vp)
static void onRatioSet(GtkCheckMenuItem* check, gpointer vp) static void onRatioSet(GtkCheckMenuItem* check, gpointer vp)
{ {
PrivateData* p = vp; auto* p = static_cast<PrivateData*>(vp);
int i = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(check), RATIO_KEY)); int i = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(check), RATIO_KEY));
double const ratio = stockRatios[i]; double const ratio = stockRatios[i];
gtr_core_set_pref_double(p->core, TR_KEY_ratio_limit, ratio); gtr_core_set_pref_double(p->core, TR_KEY_ratio_limit, ratio);
@ -543,7 +543,7 @@ static void onOptionsClicked(GtkButton* button, gpointer vp)
char buf2[512]; char buf2[512];
gboolean b; gboolean b;
GtkWidget* w; GtkWidget* w;
PrivateData* p = vp; auto* p = static_cast<PrivateData*>(vp);
w = p->speedlimit_on_item[TR_DOWN]; w = p->speedlimit_on_item[TR_DOWN];
tr_formatter_speed_KBps(buf1, gtr_pref_int_get(TR_KEY_speed_limit_down), sizeof(buf1)); tr_formatter_speed_KBps(buf1, gtr_pref_int_get(TR_KEY_speed_limit_down), sizeof(buf1));

View File

@ -595,7 +595,7 @@ void gtr_unrecognized_url_dialog(GtkWidget* parent, char const* url)
GString* gstr = g_string_new(NULL); GString* gstr = g_string_new(NULL);
GtkWidget* w = gtk_message_dialog_new(window, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", _("Unrecognized URL")); GtkWidget* w = gtk_message_dialog_new(window, {}, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", _("Unrecognized URL"));
g_string_append_printf(gstr, _("Transmission doesn't know how to use \"%s\""), url); g_string_append_printf(gstr, _("Transmission doesn't know how to use \"%s\""), url);
@ -674,7 +674,7 @@ static void on_freespace_label_destroyed(gpointer gdata, GObject* dead_label);
static void freespace_label_data_free(gpointer gdata) static void freespace_label_data_free(gpointer gdata)
{ {
struct freespace_label_data* data = gdata; auto* data = static_cast<freespace_label_data*>(gdata);
if (data->core != NULL) if (data->core != NULL)
{ {
@ -695,14 +695,14 @@ static TR_DEFINE_QUARK(freespace_label_data, freespace_label_data)
static void on_freespace_label_core_destroyed(gpointer gdata, GObject* dead_core G_GNUC_UNUSED) static void on_freespace_label_core_destroyed(gpointer gdata, GObject* dead_core G_GNUC_UNUSED)
{ {
struct freespace_label_data* data = gdata; auto* data = static_cast<freespace_label_data*>(gdata);
data->core = NULL; data->core = NULL;
freespace_label_data_free(data); freespace_label_data_free(data);
} }
static void on_freespace_label_destroyed(gpointer gdata, GObject* dead_label G_GNUC_UNUSED) static void on_freespace_label_destroyed(gpointer gdata, GObject* dead_label G_GNUC_UNUSED)
{ {
struct freespace_label_data* data = gdata; auto* data = static_cast<freespace_label_data*>(gdata);
data->label = NULL; data->label = NULL;
freespace_label_data_free(data); freespace_label_data_free(data);
} }
@ -713,7 +713,7 @@ static gboolean on_freespace_timer(gpointer gdata)
char markup[128]; char markup[128];
int64_t bytes; int64_t bytes;
tr_session* session; tr_session* session;
struct freespace_label_data* data = gdata; auto* data = static_cast<freespace_label_data*>(gdata);
session = gtr_core_session(data->core); session = gtr_core_session(data->core);
bytes = tr_sessionGetDirFreeSpace(session, data->dir); bytes = tr_sessionGetDirFreeSpace(session, data->dir);
@ -756,9 +756,7 @@ GtkWidget* gtr_freespace_label_new(struct _TrCore* core, char const* dir)
void gtr_freespace_label_set_dir(GtkWidget* label, char const* dir) void gtr_freespace_label_set_dir(GtkWidget* label, char const* dir)
{ {
struct freespace_label_data* data; auto* data = static_cast<freespace_label_data*>(g_object_get_qdata(G_OBJECT(label), freespace_label_data_quark()));
data = g_object_get_qdata(G_OBJECT(label), freespace_label_data_quark());
tr_free(data->dir); tr_free(data->dir);
data->dir = g_strdup(dir); data->dir = g_strdup(dir);