summaryrefslogtreecommitdiff
path: root/libopie2/opiecore/device/odevice.cpp
Side-by-side diff
Diffstat (limited to 'libopie2/opiecore/device/odevice.cpp') (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/libopie2/opiecore/device/odevice.cpp b/libopie2/opiecore/device/odevice.cpp
index 8b64c41..67cae1c 100644
--- a/libopie2/opiecore/device/odevice.cpp
+++ b/libopie2/opiecore/device/odevice.cpp
@@ -178,6 +178,9 @@ ODevice::ODevice()
/* mixer */
d->m_sound = d->m_vol = d->m_mixer = -1;
+ /* System QCopChannel created */
+ d->m_initializedButtonQcop = false;
+
// New distribution detection code first checks for legacy distributions,
// identified by /etc/familiar-version or /etc/oz_version.
// Then check for OpenEmbedded and lastly, read /etc/issue
@@ -233,9 +236,6 @@ void ODevice::initButtons()
}
reloadButtonMapping();
-
- QCopChannel *sysch = new QCopChannel ( "QPE/System", this );
- connect ( sysch, SIGNAL( received(const QCString&,const QByteArray&)), this, SLOT( systemMessage(const QCString&,const QByteArray&)));
}
ODevice::~ODevice()
@@ -646,6 +646,13 @@ void ODevice::reloadButtonMapping()
{
initButtons();
+ if(!d->m_initializedButtonQcop) {
+ QCopChannel *chan = new QCopChannel("QPE/System", this, "ODevice button channel");
+ connect(chan,SIGNAL(received(const QCString&,const QByteArray&)),
+ this,SLOT(systemMessage(const QCString&,const QByteArray&)));
+ d->m_initializedButtonQcop = true;
+ }
+
Config cfg ( "ButtonSettings" );
for ( uint i = 0; i < d->m_buttons->count(); i++ ) {