Skip to content

Commit

Permalink
Developer mode: Asynchronous D-Bus installed check
Browse files Browse the repository at this point in the history
[systemsettings] Make developer mode install check asynchronous
  • Loading branch information
Thomas Perl committed Sep 7, 2013
1 parent f571584 commit 46e1913
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 7 deletions.
23 changes: 16 additions & 7 deletions src/developermodesettings.cpp
Expand Up @@ -62,6 +62,7 @@
#define STORE_CLIENT_INSTALL_PACKAGE_RESULT "installPackageResult"
#define STORE_CLIENT_REMOVE_PACKAGE_RESULT "removePackageResult"
#define STORE_CLIENT_PACKAGE_PROGRESS_CHANGED "packageProgressChanged"
#define STORE_CLIENT_CHECK_INSTALLED_RESULT "checkInstalledResult"

/* D-Bus service */
#define USB_MODED_SERVICE "com.meego.usb_moded"
Expand Down Expand Up @@ -93,6 +94,9 @@ DeveloperModeSettingsWorker::DeveloperModeSettingsWorker(QObject *parent)
m_sessionBus.connect("", "", STORE_CLIENT_INTERFACE,
STORE_CLIENT_PACKAGE_PROGRESS_CHANGED,
this, SLOT(onPackageProgressChanged(QString, int)));
m_sessionBus.connect("", "", STORE_CLIENT_INTERFACE,
STORE_CLIENT_CHECK_INSTALLED_RESULT,
this, SLOT(onCheckInstalledResult(QString, bool)));
}

void
Expand All @@ -107,13 +111,7 @@ DeveloperModeSettingsWorker::retrieveDeveloperModeStatus()
m_working = true;
emit progressChanged(PROGRESS_INDETERMINATE);
emit statusChanged(true, DeveloperModeSettings::CheckingStatus);

QDBusReply<bool> enabled = m_storeClient.call(STORE_CLIENT_CHECK_INSTALLED,
DEVELOPER_MODE_PACKAGE);

emit statusChanged(false, DeveloperModeSettings::Idle);
emit developerModeEnabledChanged(enabled.value());
m_working = false;
m_storeClient.call(STORE_CLIENT_CHECK_INSTALLED, DEVELOPER_MODE_PACKAGE);
}

void
Expand Down Expand Up @@ -181,6 +179,17 @@ DeveloperModeSettingsWorker::onPackageProgressChanged(QString packageName, int p
}
}

void
DeveloperModeSettingsWorker::onCheckInstalledResult(QString packageName, bool installed)
{
qDebug() << "onCheckInstalledResult:" << packageName << installed;
if (packageName == DEVELOPER_MODE_PACKAGE) {
emit statusChanged(false, DeveloperModeSettings::Idle);
emit developerModeEnabledChanged(installed);
m_working = false;
}
}

static QMap<QString,QString>
enumerate_network_interfaces()
{
Expand Down
1 change: 1 addition & 0 deletions src/developermodesettings.h
Expand Up @@ -155,6 +155,7 @@ public slots:
void onInstallPackageResult(QString packageName, bool success);
void onRemovePackageResult(QString packageName, bool success);
void onPackageProgressChanged(QString packageName, int progress);
void onCheckInstalledResult(QString packageName, bool installed);

signals:
void statusChanged(bool working, enum DeveloperModeSettings::Status status);
Expand Down

0 comments on commit 46e1913

Please sign in to comment.