diff options
-rw-r--r-- | src/installer.nsi | 2 | ||||
-rw-r--r-- | src/trg-client.c | 21 | ||||
-rw-r--r-- | src/trg-persistent-tree-view.c | 76 |
3 files changed, 78 insertions, 21 deletions
diff --git a/src/installer.nsi b/src/installer.nsi index 51964c3..5c73a4b 100644 --- a/src/installer.nsi +++ b/src/installer.nsi @@ -10,7 +10,7 @@ Name "Transmission Remote GTK" ; The file to write !ifndef REV -OutFile "transmission-remote-gtk-1.0-installer.exe" +OutFile "transmission-remote-gtk-1.0.1-installer.exe" !else OutFile "transmission-remote-gtk-${REV}-installer.exe" !endif diff --git a/src/trg-client.c b/src/trg-client.c index c7e9e36..7e0a84f 100644 --- a/src/trg-client.c +++ b/src/trg-client.c @@ -169,14 +169,12 @@ TrgClient *trg_client_new(void) const gchar *trg_client_get_version_string(TrgClient * tc) { - TrgClientPrivate *priv = tc->priv; - return session_get_version_string(priv->session); + return session_get_version_string(tc->priv->session); } gdouble trg_client_get_version(TrgClient * tc) { - TrgClientPrivate *priv = tc->priv; - return priv->version; + return tc->priv->version; } gint64 trg_client_get_rpc_version(TrgClient * tc) @@ -209,8 +207,7 @@ void trg_client_set_session(TrgClient * tc, JsonObject * session) TrgPrefs *trg_client_get_prefs(TrgClient * tc) { - TrgClientPrivate *priv = tc->priv; - return priv->prefs; + return tc->priv->prefs; } int trg_client_populate_with_settings(TrgClient * tc) @@ -351,8 +348,7 @@ JsonObject *trg_client_get_session(TrgClient * tc) void trg_client_thread_pool_push(TrgClient * tc, gpointer data, GError ** err) { - TrgClientPrivate *priv = tc->priv; - g_thread_pool_push(priv->pool, data, err); + g_thread_pool_push(tc->priv->pool, data, err); } void trg_client_inc_serial(TrgClient * tc) @@ -363,22 +359,19 @@ void trg_client_inc_serial(TrgClient * tc) gint64 trg_client_get_serial(TrgClient * tc) { - TrgClientPrivate *priv = tc->priv; - return priv->updateSerial; + return tc->priv->updateSerial; } #ifndef CURL_NO_SSL gboolean trg_client_get_ssl(TrgClient * tc) { - TrgClientPrivate *priv = tc->priv; - return priv->ssl; + return tc->priv->ssl; } #endif gchar *trg_client_get_proxy(TrgClient * tc) { - TrgClientPrivate *priv = tc->priv; - return priv->proxy; + return tc->priv->proxy; } void trg_client_set_torrent_table(TrgClient * tc, GHashTable * table) diff --git a/src/trg-persistent-tree-view.c b/src/trg-persistent-tree-view.c index 076dabe..e2266c2 100644 --- a/src/trg-persistent-tree-view.c +++ b/src/trg-persistent-tree-view.c @@ -47,19 +47,35 @@ struct _TrgPersistentTreeViewPrivate { GtkTreeView *tv; JsonArray *ja; GtkWidget *delButton; + GtkWidget *upButton; + GtkWidget *downButton; trg_pref_widget_desc *wd; GtkTreeModel *model; trg_persistent_tree_view_column *addSelect; }; -static void selection_changed(GtkTreeSelection * selection, gpointer data) +static void selection_changed(TrgPersistentTreeView *ptv, GtkTreeSelection * selection) { - TrgPersistentTreeViewPrivate *priv = GET_PRIVATE(data); + TrgPersistentTreeViewPrivate *priv = GET_PRIVATE(ptv); + GtkTreeIter iter; + GtkTreeModel *model; - if (gtk_tree_selection_get_selected(selection, NULL, NULL)) - gtk_widget_set_sensitive(priv->delButton, TRUE); - else + if (gtk_tree_selection_get_selected(selection, &model, &iter)) { + GtkTreePath *path = gtk_tree_model_get_path(model, &iter); + gtk_widget_set_sensitive(priv->upButton, gtk_tree_path_prev(path)); + gtk_widget_set_sensitive(priv->downButton, gtk_tree_model_iter_next(model, &iter)); + gtk_tree_path_free(path); + gtk_widget_set_sensitive(priv->delButton, FALSE); + } else { gtk_widget_set_sensitive(priv->delButton, FALSE); + gtk_widget_set_sensitive(priv->upButton, FALSE); + gtk_widget_set_sensitive(priv->downButton, FALSE); + } +} + +static void selection_changed_cb(GtkTreeSelection * selection, gpointer data) +{ + selection_changed(TRG_PERSISTENT_TREE_VIEW(data), selection); } static void @@ -204,7 +220,7 @@ static GtkTreeView selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv)); g_signal_connect(G_OBJECT(selection), "changed", - G_CALLBACK(selection_changed), ptv); + G_CALLBACK(selection_changed_cb), ptv); return tv; } @@ -226,6 +242,42 @@ static void trg_persistent_tree_view_add_cb(GtkWidget * w, gpointer data) gtk_tree_path_free(path); } +static void trg_persistent_tree_view_up_cb(GtkWidget * w, gpointer data) +{ + TrgPersistentTreeViewPrivate *priv = GET_PRIVATE(data); + GtkTreeSelection *selection = gtk_tree_view_get_selection(priv->tv); + GtkTreeModel *model; + GtkTreeIter iter, prevIter; + GtkTreePath *path; + + if (gtk_tree_selection_get_selected(selection, &model, &iter)) { + path = gtk_tree_model_get_path(model, &iter); + if (gtk_tree_path_prev(path) && + gtk_tree_model_get_iter(model, &prevIter, path)) + { + gtk_list_store_move_before(GTK_LIST_STORE(model), &iter, &prevIter); + selection_changed(TRG_PERSISTENT_TREE_VIEW(data), selection); + } + gtk_tree_path_free(path); + } +} + +static void trg_persistent_tree_view_down_cb(GtkWidget * w, gpointer data) +{ + TrgPersistentTreeViewPrivate *priv = GET_PRIVATE(data); + GtkTreeSelection *selection = gtk_tree_view_get_selection(priv->tv); + GtkTreeModel *model; + GtkTreeIter iter, nextIter; + + if (gtk_tree_selection_get_selected(selection, &model, &iter)) { + nextIter = iter; + if (gtk_tree_model_iter_next(model, &nextIter)) { + gtk_list_store_move_after(GTK_LIST_STORE(model), &iter, &nextIter); + selection_changed(TRG_PERSISTENT_TREE_VIEW(data), selection); + } + } +} + static void trg_persistent_tree_view_del_cb(GtkWidget * w, gpointer data) { TrgPersistentTreeViewPrivate *priv = GET_PRIVATE(data); @@ -334,6 +386,18 @@ static GObject *trg_persistent_tree_view_constructor(GType type, G_CALLBACK(trg_persistent_tree_view_del_cb), object); gtk_box_pack_start(GTK_BOX(hbox), w, FALSE, FALSE, 4); + w = priv->upButton = gtk_button_new_from_stock(GTK_STOCK_GO_UP); + gtk_widget_set_sensitive(w, FALSE); + g_signal_connect(w, "clicked", + G_CALLBACK(trg_persistent_tree_view_up_cb), object); + gtk_box_pack_start(GTK_BOX(hbox), w, FALSE, FALSE, 4); + + w = priv->downButton = gtk_button_new_from_stock(GTK_STOCK_GO_DOWN); + gtk_widget_set_sensitive(w, FALSE); + g_signal_connect(w, "clicked", + G_CALLBACK(trg_persistent_tree_view_down_cb), object); + gtk_box_pack_start(GTK_BOX(hbox), w, FALSE, FALSE, 4); + priv->tv = trg_persistent_tree_view_tree_view_new(TRG_PERSISTENT_TREE_VIEW (object), priv->model); |