[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdenonbeta
From:       Rob Buis <rwlbuis () xs4all ! nl>
Date:       2005-11-14 21:34:15
Message-ID: 1132004055.717555.975.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 480429 by buis:

Use the (old) event system again, as a first test try onload, that
works, as interact-onload works again. WildFox should decide whether
to keep using the old system or go for what WebCore uses...

CCMAIL: wildfox@kde.org


 M  +2 -2      kdom/events/EventTargetImpl.cpp  
 M  +14 -13    ksvg2/svg/SVGDocumentImpl.cpp  
 M  +16 -2     ksvg2/svg/SVGElementImpl.cpp  
 M  +2 -0      ksvg2/svg/SVGElementImpl.h  
 M  +2 -1      ksvg2/svg/SVGNames.cpp  
 M  +1 -1      ksvg2/svg/SVGNames.h  


--- trunk/kdenonbeta/kdom/events/EventTargetImpl.cpp #480428:480429
@@ -86,8 +86,8 @@
         }
     }
 
-//    addListenerType(doc->addListenerType(type));
-//    m_eventListeners->append(new RegisteredEventListener(type, listener, \
useCapture)); +    addListenerType(doc->addListenerType(type.impl()));
+    m_eventListeners->append(new RegisteredEventListener(type, listener, \
useCapture));  }
 
 void EventTargetImpl::removeEventListener(const AtomicString &type, \
                EventListenerImpl *listener, bool useCapture)
--- trunk/kdenonbeta/ksvg2/svg/SVGDocumentImpl.cpp #480428:480429
@@ -83,16 +83,15 @@
 
 SVGDocumentImpl::~SVGDocumentImpl()
 {
-#if 0
     // Fire UNLOAD_EVENT upon destruction...
-    //if(KDOM::DocumentImpl::hasListenerType(KDOM::UNLOAD_EVENT))
+    if(KDOM::DocumentImpl::hasListenerType(KDOM::UNLOAD_EVENT))
     {
-		int exceptioncode;
-		KDOM::EventImpl *event = createEvent("SVGEvents"/*, exceptioncode*/);
-		event->initEvent(KDOM::EventNames::unloadEvent, false, false);
+        SVGEventImpl *event = static_cast<SVGEventImpl *>(createEvent("SVGEvents"));
+        event->ref();
+        event->initEvent(KDOM::DOMString("unload").impl(), false, false);
 		dispatchRecursiveEvent(event, lastChild());
+        event->deref();
     }
-#endif
 
     delete m_scriptsIt;
     delete m_timeScheduler;
@@ -154,15 +153,17 @@
     return 0;
 }
 
-KDOM::EventImpl *SVGDocumentImpl::createEvent(const KDOM::AtomicString \
&eventTypeImpl) +static KDOM::QualifiedName SVGEventsEventType(KDOM::nullAtom, \
"SVGEvents", KDOM::nullAtom); +static KDOM::QualifiedName \
SVGZoomEventsEventType(KDOM::nullAtom, "SVGZoomEvents", KDOM::nullAtom); +
+KDOM::EventImpl *SVGDocumentImpl::createEvent(const KDOM::AtomicString &eventType)
 {
-#if 0
-    if(eventType == EventNames::SVGEventsEventType)
+    if(eventType == /*EventNames::*/SVGEventsEventType)
         return new SVGEventImpl();
-    else if(eventType == EventNames::SVGZoomEventsEventType)
+    else if(eventType == /*EventNames::*/SVGZoomEventsEventType)
         return new SVGZoomEventImpl();
-#endif
-    return DocumentEventImpl::createEvent(eventTypeImpl);
+
+    return DocumentEventImpl::createEvent(eventType);
 }
 
 void SVGDocumentImpl::notifyFinished(KDOM::CachedObject *finishedObj)
@@ -449,7 +450,7 @@
     // Fire LOAD_EVENT after all scripts are evaluated
     if(KDOM::DocumentImpl::hasListenerType(KDOM::LOAD_EVENT) && \
!m_scriptsIt->current())  {
-        SVGEventImpl *event = static_cast<SVGEventImpl \
*>(createEvent(KDOM::DOMString("SVGEvents").impl())); +        SVGEventImpl *event = \
static_cast<SVGEventImpl *>(createEvent("SVGEvents"));  event->ref();
 
         event->initEvent(KDOM::DOMString("load").impl(), false, false);
--- trunk/kdenonbeta/ksvg2/svg/SVGElementImpl.cpp #480428:480429
@@ -46,6 +46,13 @@
 {
 }
 
+const KDOM::AtomicStringList* SVGElementImpl::getClassList() const
+{
+    // TODO
+    return 0;
+//    return namedAttrMap ? \
static_cast<KDOM::NamedMappedAttrMapImpl*>(namedAttrMap)->getClassList() : 0; +}
+
 bool SVGElementImpl::isSupported(KDOM::DOMStringImpl *feature, KDOM::DOMStringImpl \
*version) const  {
     if(SVGDOMImplementationImpl::self()->hasFeature(feature, version))
@@ -119,13 +126,20 @@
     return defaultVal;
 }
 
+static KDOM::QualifiedName loadAttr(KDOM::nullAtom, "onload", KDOM::nullAtom);
+
 void SVGElementImpl::parseAttribute(KDOM::AttributeImpl *attr)
 {
     const KDOM::DocumentImpl *doc = ownerDocument();
     if(!doc)
         return;
 
-    KDOM::ElementImpl::parseAttribute(attr);
+    if (attr->name() == /*SVGNames::*/loadAttr)
+    {
+        addSVGEventListener(doc->ecmaEngine(), KDOM::DOMString("load").impl(), \
attr->value().impl()); +    }
+    else
+        KDOM::ElementImpl::parseAttribute(attr);
 }
 
 void SVGElementImpl::addSVGEventListener(KDOM::Ecma *ecmaEngine, KDOM::DOMStringImpl \
*type, KDOM::DOMStringImpl *value) @@ -157,7 +171,7 @@
 
 void SVGElementImpl::attributeChanged(KDOM::AttributeImpl *attr, bool )
 {
-	parseAttribute(attr);
+    parseAttribute(attr);
 }
 
 // vim:ts=4:noet
--- trunk/kdenonbeta/ksvg2/svg/SVGElementImpl.h #480428:480429
@@ -45,6 +45,8 @@
         SVGElementImpl(const KDOM::QualifiedName& qName, KDOM::DocumentPtr *doc);
         virtual ~SVGElementImpl();
 
+        virtual const KDOM::AtomicStringList* getClassList() const;
+
         virtual bool isSupported(KDOM::DOMStringImpl *feature, KDOM::DOMStringImpl \
*version) const;  
         // 'SVGElement' functions
--- trunk/kdenonbeta/ksvg2/svg/SVGNames.cpp #480428:480429
@@ -154,4 +154,5 @@
 
 }
 
-} }
\ No newline at end of file
+} }
+
--- trunk/kdenonbeta/ksvg2/svg/SVGNames.h #480428:480429
@@ -23,7 +23,7 @@
 #ifndef DOM_SVGNAMES_H
 #define DOM_SVGNAMES_H
 
-#include "QualifiedName.h"
+#include <kdom/core/QualifiedName.h>
 
 namespace KSVG { namespace SVGNames {
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic