slot wird anscheinend nicht aufgerufen (d3lphin debugging)

Alles zur Entwicklung von KDE - Anwendungen
Antworten
sirwitti
Beiträge: 1
Registriert: 27. Juni 2008 16:41

slot wird anscheinend nicht aufgerufen (d3lphin debugging)

Beitrag von sirwitti »

hallo zusammen!
weil ich auf ein paar böse bugs in der kde3 version von dolphin gestoßen bin und diese anscheinend niemand beseitigen will, probier ich das jetzt selbst...
das problem das ich hab ist, dass der slot den ich mit einem signal verbinde anscheinend nicht aufgerufen wird.
konkret gehts um das clicked() signal dieses buttons (eine ableitung von qpushbutton), das die methode updateNavigatorURL() aufrufen sollte, das aber nicht passiert, was ich mit breakpoints überprüft hab.

urlnavigatorbutton.h:

Code: Alles auswählen

...
class URLNavigatorButton : public URLButton
{
    Q_OBJECT

public:
    URLNavigatorButton(URLNavigator* parent = 0);
    URLNavigatorButton(int index, URLNavigator* parent = 0);
    virtual ~URLNavigatorButton();
    void setIndex(int index);
    int index() const;
	bool isLastButton();

protected:
    virtual void drawButton(QPainter* painter);
    virtual void enterEvent(QEvent* event);
    virtual void leaveEvent(QEvent* event);
    //drag
    void mousePressEvent( QMouseEvent *event );
    void mouseMoveEvent( QMouseEvent *event );
    //drop
    virtual void dropEvent(QDropEvent* event);
    virtual void dragEnterEvent(QDragEnterEvent* event);
    virtual void dragLeaveEvent(QDragLeaveEvent* event);

private slots:
    void updateNavigatorURL();
    void startPopupDelay();
    void stopPopupDelay();
    void startListJob();
    void entriesList(KIO::Job* job, const KIO::UDSEntryList& entries);
    void listJobFinished(KIO::Job* job);
...
urlnavigatorbutton.cpp:

Code: Alles auswählen

...
URLNavigatorButton::URLNavigatorButton(int index, URLNavigator* parent) :
    URLButton(parent),
    m_index(-1),
    m_listJob(0)
{
    setAcceptDrops(true);
    setMinimumWidth(arrowWidth());
    setIndex(index);
    connect(this, SIGNAL(clicked()), this, SLOT(updateNavigatorURL()));

    m_popupDelay = new QTimer(this);
    connect(m_popupDelay, SIGNAL(timeout()), this, SLOT(startListJob()));
    connect(this, SIGNAL(pressed()), this, SLOT(startPopupDelay()));
}
...
void URLNavigatorButton::updateNavigatorURL()
{
    URLNavigator* navigator = urlNavigator();
    assert(navigator != 0);
    navigator->setURL(navigator->url(m_index));
}
das connect statement gibts true zurück, hab ich schon überprüft.

ich glaub, dass es eine kleinigkeit sein wird, die jem von euch mit mehr erfahrung gleich auffallen wird.
ich würd mich echt freuen wenn jemand den fehler findet, bzw mir anhaltspunkte gibt, wie ich ihn finden kann - das dauert sonst ewig.
btw wenn hier noch jemand unterwegs ist, der die qualität (also va bugs) von d3lphin ein wenig verbessern will, schreibt mir eine pn.
danke im voraus u have fun, witti[/quote]
Antworten