From 34b25b5e63666ef5de06ce8e4313e98c24b59fb7 Mon Sep 17 00:00:00 2001 From: Alan Fitton Date: Fri, 9 Dec 2011 13:55:45 +0000 Subject: some improvements and fixes to the destination combo. don't add existing directories if they are already labels. --- ChangeLog | 93 +++++++++++++++++ configure.ac | 2 +- debian/changelog | 6 ++ redhat/transmission-remote-gtk.spec | 194 ++++++++++-------------------------- src/installer.nsi | 2 +- src/trg-cell-renderer-epoch.c | 1 + src/trg-destination-combo.c | 48 +++++++-- src/trg-files-model.c | 2 +- 8 files changed, 195 insertions(+), 153 deletions(-) create mode 100644 ChangeLog diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..4a32960 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,93 @@ +* Tue Oct 11 2011 0.7 +- Remote exec. +- Win32 Support. +- Connect button menus for profiles. +- Fix a memory leak on disconnect. +- Use icon for wanted/unwanted files. +- Handle URLs and non-existing files in file handler. +- IPv6 GeoIP support. +- Upload files on app open. +- Display public/private tracker status. +- Show file icons based on MIME types. +- Shortern tracker filters. +- Hide state selector if no error torrents. +- Fix warning caused by zero length files in torrents. +- Bencoder crash fix. +- Detect and drop requests from previous connections. +- Toolbar tooltips. +- Spanish translation. + +* Sat Aug 27 2011 0.6 +- Profiles support. +- New JSON based configuration backend. +- Support new Transmission torrent status values. +- Populate destination combo in move dialog. +- Ukranian translation from ROR191. +- Lots of new columns and info. +- More options in view menu. +- Supports for queues. +- Improved status bar and add a free space indicator. +- Persist/restore filter selection, + notebook/selector visibility. +- Reuse http clients and keep sessions open. +- Start in tray argument (-m --minimized) +- Fix timezone display issue. +- Fix bencoder parser bug (parsing empty lists). +- Make columns fully shrinkable. +- Many other fixes/improvements. + +* Fri May 6 2011 - 0.5.1 +- Use libproxy pkg-config CFLAGS in build, for older versions. +- Fix updates inside the GtkNotebook. +- Fix crash reported by atommixz. + +* Fri Apr 22 2011 - 0.5 +- Fix a few of small memory leaks. +- Sync single torrent when file/trackers are changed. +- Update efficiency improvement. +- Customisable columns, new optional columns. + +* Tue Apr 12 2011 - 0.4 +- Torrent add dialog. +- Support for active only updates. +- Other update performance improvements. +- Pause/Resume all. +- Polish and Russian translation. +- Torrent added date/time column. +- Fix gconf ints defaulting to one in prefs dialog. +- Fix crash disconnecting with graph disabled. +- Fix crash disabling tracker/dir filters while disconnected. + +* Sat Mar 11 2011 - 0.3 +- Case insensitive text filtering. +- Speed graph. +- i18n support (currently German and Korean). +- Use table layout instead of fixed for general panel. +- libproxy support. +- Fix torrent bandwidth priority setting. +- Better suspending of tracker/files update until ack. +- Put versions in some spec/configure deps. +- Include libcurl.m4. +- Better (easier) FreeBSD compilation. +- Remove 5px window border (much better on some dark themes). +- Fix hardcoded path to Transmission icon in about dialog. +- Fix a leak from gtk_tree_selection_get_selected_rows(). +- TRG_NOUNIQUE env variable to start multiple instances. + +* Mon Feb 21 2011 - 0.2.1 +- Fix crash in update-blocklist/port-test callbacks. +- Menu bar mnemonics. + +* Sat Feb 19 2011 - 0.2 +- SSL support. +- Statistics dialog. +- Fix for setting low priority files. +- Port testing. +- Blocklist settings and updates. +- Torrent reannounce. +- Tracker add/edit/delete. + +* Mon Feb 07 2011 - 0.1.1 +- Fix some major first release bugs. + +* Sun Jan 30 2011 - 0.1.0 +- Hello world. diff --git a/configure.ac b/configure.ac index e1a66c6..67f6a83 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ AC_PREREQ(2.63) -AC_INIT(transmission-remote-gtk, 0.7.3, alan@eth0.org.uk) +AC_INIT(transmission-remote-gtk, 0.8, alan@eth0.org.uk) AC_CONFIG_SRCDIR(src) AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) AM_INIT_AUTOMAKE([foreign]) diff --git a/debian/changelog b/debian/changelog index 5532601..2295a23 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +transmission-remote-gtk (0.8-1) unstable; urgency=low + + * New upstream release 0.8 + + -- Alan Fitton Fri, 09 Dec 2011 13:13:56 +0000 + transmission-remote-gtk (0.7-1) unstable; urgency=low * New upstream release 0.7 diff --git a/redhat/transmission-remote-gtk.spec b/redhat/transmission-remote-gtk.spec index 4a0a50e..3fb00c9 100644 --- a/redhat/transmission-remote-gtk.spec +++ b/redhat/transmission-remote-gtk.spec @@ -1,172 +1,80 @@ -Name: transmission-remote-gtk -Version: 0.7.2 -Release: 1%{?dist:%{dist}} -Summary: Remote control client for Transmission BitTorrent - -Group: Applications/Internet -License: GPLv2+ -URL: http://code.google.com/p/transmission-remote-gtk/ -Source0: %{name}-%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -Requires: gtk2 >= 2.16 -Requires: GeoIP -Requires: glib2 >= 2.22 -Requires: unique -Requires: libnotify -Requires: libproxy -Requires: json-glib >= 0.8 -Requires: libcurl - -BuildRequires: gtk2-devel -BuildRequires: GeoIP-devel -BuildRequires: libproxy-devel -BuildRequires: glib2-devel -BuildRequires: unique-devel -BuildRequires: json-glib-devel -BuildRequires: libcurl-devel -BuildRequires: libnotify-devel +Name: transmission-remote-gtk +Version: 0.8 +Release: 1%{?dist} +Summary: GTK remote control for the Transmission BitTorrent client + +License: GPLv2+ +URL: http://code.google.com/p/%{name} +Source0: http://%{name}.googlecode.com/files/%{name}-%{version}.tar.gz + +BuildRequires: gettext +BuildRequires: json-glib-devel +BuildRequires: intltool +BuildRequires: gtk2-devel +BuildRequires: libproxy-devel +BuildRequires: glib2-devel +BuildRequires: unique-devel +BuildRequires: libcurl-devel +BuildRequires: libnotify-devel +BuildRequires: GeoIP-devel + +Requires(post): info +Requires(preun): info %description -transmission-remote-gtk is a GTK application for remote management of the -Transmission BitTorrent client via its RPC interface. +transmission-remote-gtk is a GTK client for remote management of +the Transmission BitTorrent client, using its HTTP RPC protocol. %prep %setup -q +sed -i "s|\r||g" README +sed -i "s|\r||g" COPYING + %build %configure make %{?_smp_mflags} + %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT -%clean -rm -rf $RPM_BUILD_ROOT +%find_lang %{name} %post /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : +%preun +if [ $1 = 0 ] ; then + /sbin/install-info --delete %{_infodir}/%{name}.info %{_infodir}/dir || : +fi + %postun if [ $1 -eq 0 ] ; then /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : fi -%postrans +%posttrans /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : -%files -%defattr(-,root,root,-) -%doc README COPYING AUTHORS +%files -f %{name}.lang %{_bindir}/%{name} -%{_datadir}/applications/%{name}.desktop -%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg -%{_datadir}/icons/hicolor/16x16/apps/%{name}.png -%{_datadir}/icons/hicolor/22x22/apps/%{name}.png -%{_datadir}/icons/hicolor/24x24/apps/%{name}.png -%{_datadir}/icons/hicolor/32x32/apps/%{name}.png -%{_datadir}/icons/hicolor/48x48/apps/%{name}.png -%{_datadir}/locale/de/LC_MESSAGES/%{name}.mo -%{_datadir}/locale/ko/LC_MESSAGES/%{name}.mo -%{_datadir}/locale/es/LC_MESSAGES/%{name}.mo -%{_datadir}/locale/pl/LC_MESSAGES/%{name}.mo -%{_datadir}/locale/ru/LC_MESSAGES/%{name}.mo -%{_datadir}/locale/uk/LC_MESSAGES/%{name}.mo -%{_datadir}/man/man1/transmission-remote-gtk.1 +%{_datadir}/applications/*.desktop +%{_datadir}/icons/* +%doc README COPYING AUTHORS + %changelog -* Tue Oct 11 2011 Alan Fitton 0.7 -- Remote exec. -- Win32 Support. -- Connect button menus for profiles. -- Fix a memory leak on disconnect. -- Use icon for wanted/unwanted files. -- Handle URLs and non-existing files in file handler. -- IPv6 GeoIP support. -- Upload files on app open. -- Display public/private tracker status. -- Show file icons based on MIME types. -- Shortern tracker filters. -- Hide state selector if no error torrents. -- Fix warning caused by zero length files in torrents. -- Bencoder crash fix. -- Detect and drop requests from previous connections. -- Toolbar tooltips. -- Spanish translation. - -* Sat Aug 27 2011 Alan Fitton 0.6 -- Profiles support. -- New JSON based configuration backend. -- Support new Transmission torrent status values. -- Populate destination combo in move dialog. -- Ukranian translation from ROR191. -- Lots of new columns and info. -- More options in view menu. -- Supports for queues. -- Improved status bar and add a free space indicator. -- Persist/restore filter selection, + notebook/selector visibility. -- Reuse http clients and keep sessions open. -- Start in tray argument (-m --minimized) -- Fix timezone display issue. -- Fix bencoder parser bug (parsing empty lists). -- Make columns fully shrinkable. -- Many other fixes/improvements. - -* Fri May 6 2011 Alan Fitton - 0.5.1 -- Use libproxy pkg-config CFLAGS in build, for older versions. -- Fix updates inside the GtkNotebook. -- Fix crash reported by atommixz. - -* Fri Apr 22 2011 Alan Fitton - 0.5 -- Fix a few of small memory leaks. -- Sync single torrent when file/trackers are changed. -- Update efficiency improvement. -- Customisable columns, new optional columns. - -* Tue Apr 12 2011 Alan Fitton - 0.4 -- Torrent add dialog. -- Support for active only updates. -- Other update performance improvements. -- Pause/Resume all. -- Polish and Russian translation. -- Torrent added date/time column. -- Fix gconf ints defaulting to one in prefs dialog. -- Fix crash disconnecting with graph disabled. -- Fix crash disabling tracker/dir filters while disconnected. - -* Sat Mar 11 2011 Alan Fitton - 0.3 -- Case insensitive text filtering. -- Speed graph. -- i18n support (currently German and Korean). -- Use table layout instead of fixed for general panel. -- libproxy support. -- Fix torrent bandwidth priority setting. -- Better suspending of tracker/files update until ack. -- Put versions in some spec/configure deps. -- Include libcurl.m4. -- Better (easier) FreeBSD compilation. -- Remove 5px window border (much better on some dark themes). -- Fix hardcoded path to Transmission icon in about dialog. -- Fix a leak from gtk_tree_selection_get_selected_rows(). -- TRG_NOUNIQUE env variable to start multiple instances. - -* Mon Feb 21 2011 Alan Fitton - 0.2.1 -- Fix crash in update-blocklist/port-test callbacks. -- Menu bar mnemonics. - -* Sat Feb 19 2011 Alan Fitton - 0.2 -- SSL support. -- Statistics dialog. -- Fix for setting low priority files. -- Port testing. -- Blocklist settings and updates. -- Torrent reannounce. -- Tracker add/edit/delete. - -* Mon Feb 07 2011 Alan Fitton - 0.1.1 -- Squash a couple of nasty first release bugs. - -* Sun Jan 30 2011 Alan Fitton - 0.1.0 -- Initial RPM Build. +* Fri Dec 09 2011 Alan Fitton 0.8-1 +- New release. + +* Thu Nov 20 2011 Praveen Kumar 0.7-3 +- Minor changes according to review + +* Thu Oct 27 2011 Praveen Kumar 0.7-2 +- Added icon cache + +* Tue Oct 18 2011 Praveen Kumar 0.7-1 +- Initial version of the package diff --git a/src/installer.nsi b/src/installer.nsi index d02aecd..b659667 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-0.7.3-installer.exe" +OutFile "transmission-remote-gtk-0.8-installer.exe" !else OutFile "transmission-remote-gtk-${REV}-installer.exe" !endif diff --git a/src/trg-cell-renderer-epoch.c b/src/trg-cell-renderer-epoch.c index cdf576b..5b05f09 100644 --- a/src/trg-cell-renderer-epoch.c +++ b/src/trg-cell-renderer-epoch.c @@ -51,6 +51,7 @@ trg_cell_renderer_epoch_get_property(GObject * object, guint property_id, break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); + break; } } diff --git a/src/trg-destination-combo.c b/src/trg-destination-combo.c index 11f5085..7d7c7af 100644 --- a/src/trg-destination-combo.c +++ b/src/trg-destination-combo.c @@ -83,7 +83,7 @@ static void trg_destination_combo_set_property(GObject * object, priv->client = g_value_get_pointer(value); break; case PROP_LAST_SELECTION: - priv->last_selection = g_value_get_string(value); + priv->last_selection = g_strdup(g_value_get_string(value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); @@ -182,18 +182,52 @@ static void add_entry_cb(GtkEntry *entry, gtk_combo_box_set_active_iter(combo, &iter); } +struct findDupeArg +{ + const gchar *dir; + gboolean isDupe; +}; + +gboolean +trg_destination_combo_insert_check_dupe_foreach(GtkTreeModel * model, + GtkTreePath * path G_GNUC_UNUSED, + GtkTreeIter * iter, struct findDupeArg *args) +{ + gchar *existing; + gtk_tree_model_get(model, iter, DEST_COLUMN_DIR, &existing, -1); + args->isDupe = g_strcmp0(existing, args->dir) == 0; + g_free(existing); + return args->isDupe; +} + static void trg_destination_combo_insert(GtkComboBox *box, const gchar *label, const gchar *dir, guint type, const gchar *lastDestination) { - GtkListStore *store = GTK_LIST_STORE(gtk_combo_box_get_model(box)); + GtkTreeModel *model = gtk_combo_box_get_model(box); + gchar *comboLabel; GtkTreeIter iter; - gtk_list_store_insert_with_values(store, &iter, INT_MAX, - DEST_COLUMN_LABEL, label, DEST_COLUMN_DIR, dir, + if (type == DEST_EXISTING) + { + struct findDupeArg args; + args.isDupe = FALSE; + args.dir = dir; + gtk_tree_model_foreach(GTK_TREE_MODEL(model), + (GtkTreeModelForeachFunc)trg_destination_combo_insert_check_dupe_foreach, &args); + if (args.isDupe) + return; + } + + comboLabel = label ? g_strdup_printf("%s (%s)", label, dir) : g_strdup(dir); + + gtk_list_store_insert_with_values(GTK_LIST_STORE(model), &iter, INT_MAX, + DEST_COLUMN_LABEL, comboLabel, DEST_COLUMN_DIR, dir, DEST_COLUMN_TYPE, type, -1); - if (lastDestination && !g_strcmp0(lastDestination, label)) + if (lastDestination && !g_strcmp0(lastDestination, comboLabel)) gtk_combo_box_set_active_iter(box, &iter); + + g_free(comboLabel); } static GObject *trg_destination_combo_constructor(GType type, @@ -258,7 +292,7 @@ static GObject *trg_destination_combo_constructor(GType type, TRG_PREFS_CONNECTION); trg_destination_combo_insert(GTK_COMBO_BOX(object), - defaultDir, + NULL, defaultDir, DEST_DEFAULT, lastDestination); @@ -310,7 +344,7 @@ static GObject *trg_destination_combo_constructor(GType type, for (sli = dirs; sli; sli = g_slist_next(sli)) trg_destination_combo_insert(GTK_COMBO_BOX(object), - (gchar *) sli->data, + NULL, (gchar *) sli->data, DEST_EXISTING, lastDestination); diff --git a/src/trg-files-model.c b/src/trg-files-model.c index 13d117b..5d4cf0a 100644 --- a/src/trg-files-model.c +++ b/src/trg-files-model.c @@ -167,7 +167,7 @@ trg_files_model_update(TrgFilesModel * model, gint64 updateSerial, } } else { gint n_existing = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(model), NULL); - gint n_updates = g_list_length(filesList); + guint n_updates = g_list_length(filesList); gtk_tree_model_foreach(GTK_TREE_MODEL(model), (GtkTreeModelForeachFunc) trg_files_model_update_foreach, filesList); -- cgit v1.2.3