Ik heb in een al bestaande werkende klasse een slot onNewPeer(Peer*) toegvoegd en in mijn code connect ik dit slot aan een signal newPeer(Peer*). Als ik dan de code compileer en de executable uitvoer, geeft hij een melding dat hij het slot niet kan vinden, meer bepaald:
Code: Select all
Object::connect: No such slot kt::ZeroConfPlugin::onNewPeer(Peer*)
Code: Select all
class ZeroConfPlugin : public Plugin
{
Q_OBJECT
public:
ZeroConfPlugin(QObject* parent, const QStringList& args);
virtual ~ZeroConfPlugin();
virtual void load();
virtual void unload();
virtual bool versionCheck(const QString& version) const;
public slots:
void onNewPeer(bt::Peer* p);
private slots:
void torrentAdded(bt::TorrentInterface* tc);
void torrentRemoved(bt::TorrentInterface* tc);
void avahiServiceDestroyed(TorrentService* av);
private:
bt::PtrMap<bt::TorrentInterface*,TorrentService> services;
};
Code: Select all
void ZeroConfPlugin::torrentAdded(bt::TorrentInterface* tc)
{
if (services.contains(tc))
return;
TorrentControl* control = dynamic_cast<TorrentControl*>(tc);
const PeerManager* pman = control->getPeerMgr();
bool verbonden = connect(pman,SIGNAL(newPeer(Peer* )),
SLOT(onNewPeer(Peer* )));
Out(SYS_ZCO|LOG_DEBUG) << "ZeroConf could " << (verbonden?"":"not ") << "connect newPeer to onNewPeer" << endl;
TorrentService* av = new TorrentService(tc);
services.insert(tc,av);
tc->addPeerSource(av);
Out(SYS_ZCO|LOG_NOTICE) << "ZeroConf service added for " << tc->getStats().torrent_name << endl;
connect(av,SIGNAL(serviceDestroyed( TorrentService* )),
this,SLOT(avahiServiceDestroyed( TorrentService* )));
}
Als er iets niet duidelijk is, vraag me gerust om verduidelijking
BTW: de betreffende slot private maken of een andere naam geven heb ik al geprobeerd, geeft net hetzelfde probleem