summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/installer.nsi2
-rw-r--r--src/trg-client.c21
-rw-r--r--src/trg-persistent-tree-view.c76
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);