Opened 14 years ago

Closed 14 years ago

#1278 closed bug (Fixed)

"Move storage" in deluge-gtk doesn't work

Reported by: simonbcn Owned by: Calum
Priority: critical Milestone: 1.3.2
Component: GTK UI Version: 1.3.0_dev
Keywords: Cc:

Description

deluge-gtk + remote deluged
Error in console:

Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/deluge-1.3.900_dev-py2.6.egg/deluge/ui/gtkui/menubar.py", line 353, in _on_response_event
    log.debug("Moving torrents to %s", entry.get_text())
NameError: free variable 'entry' referenced before assignment in enclosing scope

Change History (12)

comment:1 by simonbcn, 14 years ago

I have verified that this does not happen always, sometimes it works well... ?_?

comment:2 by simonbcn, 14 years ago

Please, can you fix this? It's very annoying and, when this occurs, it's impossible work with gtk-ui.

comment:3 by negge, 14 years ago

I don't know if it's exactly related to this as I don't currently log the output from deluged, but I know for a fact that you cannot use the "Move storage" feature if the file/folder you're moving or the location you're moving to contains Scandinavian characters (åäö).

comment:4 by Calum, 14 years ago

Resolution: fixed
Status: newclosed

i am closing this bug as i see no problems with 1.3 releases.

negge: if your bug still exists could you create a new ticket with details please

comment:5 by negge, 14 years ago

Actually I just lended my spare harddrive to a friend so I can't test with another filesystem at the moment. I will re-open this bug if I find that switching filesystems doesn't work.

comment:6 by Calum, 14 years ago

negge please see #1373 as i think this is the same as your problem.

comment:7 by s0undt3ch, 14 years ago

Milestone: Future1.3.2
Resolution: fixed
Status: closedreopened

I've hit this bug too:

[DEBUG   ] 19:33:12 gtkui:267 sent: 7.3 MiB recv: 37.7 MiB
[DEBUG   ] 19:33:12 gtkui:275 sent rate: 8.5 KiB/s recv rate: 16.8 KiB/s
[DEBUG   ] 19:33:22 gtkui:267 sent: 7.3 MiB recv: 37.9 MiB
[DEBUG   ] 19:33:22 gtkui:275 sent rate: 8.4 KiB/s recv rate: 16.6 KiB/s
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.6/deluge/ui/gtkui/menubar.py", line 351, in _on_response_event
    dialog.hide()
NameError: free variable 'dialog' referenced before assignment in enclosing scope
[DEBUG   ] 19:33:32 gtkui:267 sent: 7.4 MiB recv: 38.1 MiB
[DEBUG   ] 19:33:32 gtkui:275 sent rate: 8.4 KiB/s recv rate: 16.8 KiB/s
[DEBUG   ] 19:33:42 gtkui:267 sent: 7.5 MiB recv: 38.2 MiB
[DEBUG   ] 19:33:42 gtkui:275 sent rate: 8.5 KiB/s recv rate: 16.6 KiB/s

This happens both in the deluge ppa package and in master. The torrent being moved only has ascii chars.

comment:8 by Calum, 14 years ago

Please describe exactly how to reproduce this error

comment:9 by Calum, 14 years ago

Milestone: 1.3.2Future
Status: reopenedpending

I think this is a pygtk problem, maybe this one: https://bugzilla.gnome.org/show_bug.cgi?id=546802

The piece of code referenced has not been altered in 3 years and has no obvious errors in it.

For reference I run Ubuntu 10.10 and my version of python-gobject is 2.21.5

in reply to:  9 comment:10 by s0undt3ch, 14 years ago

Milestone: Future1.3.2

Replying to Cas:

I think this is a pygtk problem, maybe this one: https://bugzilla.gnome.org/show_bug.cgi?id=546802

The piece of code referenced has not been altered in 3 years and has no obvious errors in it.

For reference I run Ubuntu 10.10 and my version of python-gobject is 2.21.5

Issue is still present in current maverick. What's needed is keep it referenced, here's a proposed patch:

  • deluge/ui/gtkui/menubar.py

    diff --git a/deluge/ui/gtkui/menubar.py b/deluge/ui/gtkui/menubar.py
    index ce80e54..73fc5a1 100644
    a b def show_move_storage_dialog(self, status):  
    341341        glade = gtk.glade.XML(
    342342                pkg_resources.resource_filename("deluge.ui.gtkui",
    343343                                                "glade/move_storage_dialog.glade"))
    344         dialog = glade.get_widget("move_storage_dialog")
    345         dialog.set_transient_for(self.window.window)
    346         entry = glade.get_widget("entry_destination")
    347         entry.set_text(status["save_path"])
     344        self.move_storage_dialog = glade.get_widget("move_storage_dialog")
     345        self.move_storage_dialog.set_transient_for(self.window.window)
     346        self.move_storage_dialog_entry = glade.get_widget("entry_destination")
     347        self.move_storage_dialog_entry.set_text(status["save_path"])
    348348        def _on_response_event(widget, response_id):
     349            def core_responded(*args):
     350                # Delete references
     351                del self.move_storage_dialog_entry
     352                del self.move_storage_dialog
    349353            if response_id == gtk.RESPONSE_OK:
    350354                log.debug("Moving torrents to %s", entry.get_text())
    351                 path = entry.get_text()
    352                 client.core.move_storage(component.get("TorrentView").get_selected_torrents(), path)
    353             dialog.hide()
    354         dialog.connect("response", _on_response_event)
    355         dialog.show()
     355                path = self.move_storage_dialog_entry.get_text()
     356                client.core.move_storage(
     357                    component.get("TorrentView").get_selected_torrents(),
     358                    path
     359                ).addCallback(core_responded)
     360            self.move_storage_dialog.hide()
     361        self.move_storage_dialog.connect("response", _on_response_event)
     362        self.move_storage_dialog.show()
     363
    356364
    357365    def on_menuitem_queue_top_activate(self, value):
    358366        log.debug("on_menuitem_queue_top_activate")

Good enough for commit?

comment:11 by Calum, 14 years ago

Owner: set to Calum
Status: pendingaccepted

comment:12 by s0undt3ch, 14 years ago

Resolution: fixed
Status: acceptedclosed

Fixed in master.

Note: See TracTickets for help on using tickets.