Index: khtml_part.cpp =================================================================== --- khtml_part.cpp (revision 421260) +++ khtml_part.cpp (working copy) @@ -4393,6 +4403,9 @@ if (::qt_cast(part)) { static_cast(part)->d->m_frame = child; } else if (child->m_frame) { + KParts::StatusBarExtension *sb = KParts::StatusBarExtension::childObject(part); + if (sb) + sb->setStatusBar( d->m_statusBarExtension->statusBar() ); child->m_liveconnect = KParts::LiveConnectExtension::childObject(part); if (child->m_liveconnect) connect(child->m_liveconnect, SIGNAL(partEvent(const unsigned long, const QString &, const KParts::LiveConnectExtension::ArgList &)), child, SLOT(liveConnectEvent(const unsigned long, const QString&, const KParts::LiveConnectExtension::ArgList &))); Index: java/kjavaappletcontext.cpp =================================================================== --- java/kjavaappletcontext.cpp (revision 421260) +++ java/kjavaappletcontext.cpp (working copy) @@ -26,10 +26,14 @@ #include #include #include +#include +#include +#include #include #include #include #include +#include // This file was using 6002, but kdebug.areas didn't know about that number #define DEBUGAREA 6100 @@ -42,6 +46,8 @@ friend class KJavaAppletContext; private: AppletMap applets; + QLabel *status_icon; + KParts::StatusBarExtension * statusbarExt; }; // Static Factory Functions @@ -49,10 +55,12 @@ /* Class Implementation */ -KJavaAppletContext::KJavaAppletContext() +KJavaAppletContext::KJavaAppletContext( KParts::StatusBarExtension * sb ) : QObject() { d = new KJavaAppletContextPrivate; + d->status_icon = 0L; + d->statusbarExt = sb; server = KJavaAppletServer::allocateJavaServer(); connect(server->javaProcess(), SIGNAL(exited(int)), this, SLOT(javaProcessExited(int))); @@ -66,6 +74,8 @@ { server->destroyContext( id ); KJavaAppletServer::freeJavaServer(); + if (d->status_icon) + d->statusbarExt->removeStatusBarItem( d->status_icon ); delete d; } @@ -89,6 +99,14 @@ bool KJavaAppletContext::create( KJavaApplet* applet ) { + if (!d->status_icon) { + KStatusBar *sb = d->statusbarExt->statusBar(); + if (sb) { + d->status_icon = new QLabel( sb ); + d->status_icon->setPixmap( SmallIcon( QString( "source_java" ) ) ); + d->statusbarExt->addStatusBarItem( d->status_icon, 0, false ); + } + } return server->createApplet( id, applet->appletId(), applet->appletName(), applet->appletClass(), Index: java/kjavaappletviewer.cpp =================================================================== --- java/kjavaappletviewer.cpp (revision 421260) +++ java/kjavaappletviewer.cpp (working copy) @@ -71,7 +71,7 @@ KJavaServerMaintainer () { } ~KJavaServerMaintainer (); - KJavaAppletContext * getContext (QObject*, const QString &); + KJavaAppletContext * getContext (QObject*, const QString &, KParts::StatusBarExtension *); void releaseContext (QObject*, const QString &); void setServer (KJavaAppletServer * s); private: @@ -85,14 +85,14 @@ delete server; } -KJavaAppletContext * KJavaServerMaintainer::getContext (QObject * w, const QString & doc) { +KJavaAppletContext * KJavaServerMaintainer::getContext (QObject * w, const QString & doc, KParts::StatusBarExtension * sb) { ContextMap::key_type key = qMakePair (w, doc); ContextMap::iterator it = m_contextmap.find (key); if (it != m_contextmap.end ()) { ++((*it).second); return (*it).first; } - KJavaAppletContext* const context = new KJavaAppletContext (); + KJavaAppletContext* const context = new KJavaAppletContext (sb); m_contextmap.insert (key, qMakePair(context, 1)); return context; } @@ -198,6 +198,7 @@ : KParts::ReadOnlyPart (parent, name), m_browserextension (new KJavaAppletViewerBrowserExtension (this)), m_liveconnect (new KJavaAppletViewerLiveConnectExtension (this)), + m_statusbar (new KParts::StatusBarExtension (this)), m_closed (true) { if (!serverMaintainer) { @@ -288,7 +289,7 @@ if (kapp->authorizeURLAction("redirect", KURL(baseurl), newURL)) applet->setCodeBase (newURL.url()); applet->setAppletClass (classname); - KJavaAppletContext* const cxt = serverMaintainer->getContext (parent, baseurl); + KJavaAppletContext* const cxt = serverMaintainer->getContext (parent, baseurl, m_statusbar); applet->setAppletContext (cxt); KJavaAppletServer* const server = cxt->getServer (); Index: java/kjavaappletcontext.h =================================================================== --- java/kjavaappletcontext.h (revision 421260) +++ java/kjavaappletcontext.h (working copy) @@ -37,7 +37,7 @@ * @author Wynn Wilkes, wynnw@caldera.com */ - +namespace KParts { class StatusBarExtension; } class KJavaAppletServer; class KJavaApplet; class KJavaAppletContextPrivate; @@ -47,7 +47,7 @@ Q_OBJECT public: - KJavaAppletContext(); + KJavaAppletContext( KParts::StatusBarExtension * sb ); ~KJavaAppletContext(); /** Index: java/kjavaappletviewer.h =================================================================== --- java/kjavaappletviewer.h (revision 421260) +++ java/kjavaappletviewer.h (working copy) @@ -25,6 +25,7 @@ #include #include +#include #include #include #include @@ -109,6 +110,7 @@ KJavaProcess * process; KJavaAppletViewerBrowserExtension * m_browserextension; KJavaAppletViewerLiveConnectExtension * m_liveconnect; + KParts::StatusBarExtension * m_statusbar; QString baseurl; bool m_closed; };