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;
};