summaryrefslogtreecommitdiff
authorsandman <sandman>2003-03-21 21:11:15 (UTC)
committer sandman <sandman>2003-03-21 21:11:15 (UTC)
commit299ab81f6b0bdc542311b1544fc84e1debd97a1f (patch) (side-by-side diff)
tree288a85eb4fc70a8297ee0e58a3d49bc70ea83655
parent2afcd6fa6b581f5ec7b3e65fe312ceadebb37ee7 (diff)
downloadopie-299ab81f6b0bdc542311b1544fc84e1debd97a1f.zip
opie-299ab81f6b0bdc542311b1544fc84e1debd97a1f.tar.gz
opie-299ab81f6b0bdc542311b1544fc84e1debd97a1f.tar.bz2
fix for bug #599:
O-Menu does not detect newly added programs until Opie restart
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/launcher/launcher.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp
index 6764338..fc944e1 100644
--- a/core/launcher/launcher.cpp
+++ b/core/launcher/launcher.cpp
@@ -855,54 +855,64 @@ void Launcher::externalSelected(const AppLnk *appLnk)
tabs->setBusy(TRUE);
emit executing( appLnk );
}
void Launcher::properties( AppLnk *appLnk )
{
if ( appLnk->type() == "Folder" ) { // No tr
// Not supported: flat is simpler for the user
} else {
in_lnk_props = TRUE;
got_lnk_change = FALSE;
LnkProperties prop(appLnk);
connect(&prop, SIGNAL(select(const AppLnk *)), this, SLOT(externalSelected(const AppLnk *)));
prop.showMaximized();
prop.exec();
in_lnk_props = FALSE;
if ( got_lnk_change ) {
updateLink(lnk_change);
}
}
}
void Launcher::updateLink(const QString& link)
{
- if (link.isNull())
+ bool notify_sm = false;
+
+ if (link.isNull()) {
updateTabs();
- else if (link.isEmpty())
+ notify_sm = true;
+ }
+ else if (link.isEmpty()) {
updateDocs();
- else
+ }
+ else {
tabs->updateLink(link);
+ notify_sm = true;
+ }
+
+ if ( notify_sm )
+ QCopEnvelope e ( "QPE/TaskBar", "reloadApps()" );
}
void Launcher::systemMessage( const QCString &msg, const QByteArray &data)
{
QDataStream stream( data, IO_ReadOnly );
if ( msg == "linkChanged(QString)" ) {
QString link;
stream >> link;
if ( in_lnk_props ) {
got_lnk_change = TRUE;
lnk_change = link;
} else {
updateLink(link);
}
} else if ( msg == "busy()" ) {
emit busy();
} else if ( msg == "notBusy(QString)" ) {
QString app;
stream >> app;
tabs->setBusy(FALSE);
emit notBusy(app);
} else if ( msg == "mkdir(QString)" ) {
QString dir;
stream >> dir;