Development/Tutorials/Plasma4/ApplicationShell
Appearance
This page looks at the steps it takes to embed a Plasma shell inside of your application as a dashboard or summary page.
The Shell
The core of the dashboard's logic is in a KPart in kdebase-runtime, plasma-kpart. This KPart is loaded like any other ReadOnly KPart:
// this routine will find and load our Part. it finds the Part by
// name which is a bad idea usually.. but it's alright in this
// case since our Part is made for this Shell
KService::Ptr service = KService::serviceByDesktopPath( "plasma-kpart.desktop" );
if (service)
{
// now that the Part is loaded, we cast it to a Part to get
// our hands on it
m_part = service->createInstance<KParts::ReadOnlyPart>(0, args);
if (m_part)
{
// tell the KParts::MainWindow that this is indeed the main widget
// If you have something better to do with the widget, this is where
// you would do it.
setCentralWidget(m_part->widget());
// and integrate the part's GUI with the shell's
createGUI(m_part);
}
else
{
// For whatever reason the part didn't load
KMessageBox::error(this, i18n("Could not instantiate our Part!"));
qApp->quit();
}
}
else
{
// if we couldn't find our Part, we exit since the Shell by
// itself can't do anything useful
KMessageBox::error(this, i18n("Could not find our Part!"));
qApp->quit();
// we return here, cause qApp->quit() only means "exit the
// next time we enter the event loop...
return;
}