From: Ron Croonenberg on

ok, problem solved.

In the directory the plugin lives I have(had) a directory called
'backup' to save things just in case I mess up.

Guess what, RB apparently looks into that directory too and uses the
class, py file, it finds there instead of the one I am making changes to.

Dave Angel wrote:
> Ron Croonenberg wrote:
>> <div class="moz-text-flowed" style="font-family: -moz-fixed">Hello,
>>
>> I am trying to write a plugin for Rhythmbox in python and run into a
>> 'strange' problem. For a method (an action for clicking a button) I
>> started a method and however many arguments I use, it keeps giving me
>> the same error:
>>
>> 'TypeError: startView() takes exactly 1 argument (3 given)'
>>
>> does someone have any pointers or tips?, thanks;
>>
>> Ron
>>
>> here is the code I have the problem with:
>>
>> import rb
>> import pygtk
>> import gtk, gobject
>>
>>
>> pygtk.require('2.0')
>>
>>
>>
>> class tb_button (rb.Plugin):
>>
>> #
>> # the init thing
>> #
>> def __init__(self):
>> rb.Plugin.__init__(self)
>>
>> #
>> # the activate thing
>> #
>> def activate(self, shell):
>> self.shell = shell
>>
>> view_button = """
>> <ui>
>> <toolbar name="ToolBar">
>> <placeholder name="View">
>> <toolitem name="View" action="viewAction">
>> </toolitem>
>> </placeholder>
>> </toolbar>
>> </ui>
>> """
>>
>> # create a new action
>> action = gtk.Action('viewAction',
>> _(' _View'),
>> _('Browse Track '), "")
>>
>> # connect it
>> action.connect('activate', self.startView, shell)
>> action_group = gtk.ActionGroup('NewActionGroup')
>> action_group.add_action(action)
>> shell.get_ui_manager().insert_action_group(action_group)
>>
>> # add it to the toolbar
>> ui_manager = shell.get_ui_manager()
>> ui_manager.add_ui_from_string(view_button)
>>
>>
>>
>> #
>> # Start the View
>> #
>> def startView(self, widget, shell, se):
>> # nothing yet
>> return
>>
>>
> Please give the complete error traceback, and make sure it matches the
> code you post. I'm guessing that the subset of the error message you're
> quoting occurs when you define startView() as taking only self as a
> parameter.
>
> A quick caveat. I'm not familiar with GTK in particular, but I
> recognize the paradigm. You're defining an event handler (startView).
> And you define a certain set of parameters (not arguments), presently
> called self, widge, shell, and se.
>
> But you're not calling it, you're connecting it to an action. So when
> that action triggers (or event happens), the GUI system will call your
> event handler. You don't control the arguments it passes, and
> apparently it passes 3. So you need to change the formal parameters in
> your def to match.
>
> More specifically what are those parameters ? I don't know, but you
> should be able to tell from sample pyGTK sources, or somebody else can
> chime in. And maybe I'm totally nuts here.
>
> DaveA
>

--
==================================================================
main(p){printf(p,34,p="main(p){printf(p,34,p=%c%s%c,34); }",34); }
==================================================================
Ron Croonenberg |
| Phone: 1 765 658 4761
Lab Instructor & | Fax: 1 765 658 4732
Technology Coordinator |
|
Department of Computer Science | e-mail: ronc(a)DePauw.edu
DePauw University |
275 Julian Science & Math Center |
602 South College Ave. |
Greencastle, IN 46135 |
==================================================================