Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Read settings only once
  • Loading branch information
pvuorela committed Jan 17, 2018
1 parent 11c3fe7 commit 2cf8a6d
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 17 deletions.
36 changes: 21 additions & 15 deletions src/transferengine.cpp
Expand Up @@ -39,6 +39,7 @@
#include <QDBusMessage>
#include <QFileSystemWatcher>
#include <QTimer>
#include <QSettings>

#include <notification.h>

Expand Down Expand Up @@ -145,7 +146,6 @@ void ClientActivityMonitor::checkActivity()

TransferEnginePrivate::TransferEnginePrivate(TransferEngine *parent):
m_notificationsEnabled(true),
m_settings(CONFIG_PATH, QSettings::IniFormat),
q_ptr(parent)
{
m_fileWatcherTimer = new QTimer(this);
Expand Down Expand Up @@ -175,6 +175,24 @@ TransferEnginePrivate::TransferEnginePrivate(TransferEngine *parent):
// Monitor expired transfers and cleanup them if required
m_activityMonitor = new ClientActivityMonitor(this);
connect(m_activityMonitor, SIGNAL(transfersExpired(QList<int>)), this, SLOT(cleanupExpiredTransfers(QList<int>)));

QSettings settings(CONFIG_PATH, QSettings::IniFormat);

if (settings.status() != QSettings::NoError) {
qWarning() << Q_FUNC_INFO << "Failed to read settings!" << settings.status();
} else {
settings.beginGroup("transfers");
const QString service = settings.value("service").toString();
const QString path = settings.value("path").toString();
const QString iface = settings.value("interface").toString();
const QString method = settings.value("method").toString();
settings.endGroup();

if (!service.isEmpty() && !path.isEmpty() && !iface.isEmpty() && !method.isEmpty()) {
m_defaultActions << Notification::remoteAction("default", "", service, path, iface, method)
<< Notification::remoteAction("app", "", service, path, iface, method);
}
}
}

void TransferEnginePrivate::pluginDirChanged()
Expand Down Expand Up @@ -429,20 +447,8 @@ void TransferEnginePrivate::sendNotification(TransferEngineData::TransferType ty
notification.setReplacesId(notificationId);
}

if (m_settings.status() != QSettings::NoError) {
qWarning() << Q_FUNC_INFO << "Failed to read settings!" << m_settings.status();
} else {
m_settings.beginGroup("transfers");
const QString service = m_settings.value("service").toString();
const QString path = m_settings.value("path").toString();
const QString iface = m_settings.value("interface").toString();
const QString method = m_settings.value("method").toString();
m_settings.endGroup();

if (!service.isEmpty() && !path.isEmpty() && !iface.isEmpty() && !method.isEmpty()) {
notification.setRemoteActions(QVariantList() << Notification::remoteAction("default", "", service, path, iface, method)
<< Notification::remoteAction("app", "", service, path, iface, method));
}
if (!m_defaultActions.isEmpty()) {
notification.setRemoteActions(m_defaultActions);
}

//: Group name for notifications of successful transfers
Expand Down
4 changes: 2 additions & 2 deletions src/transferengine_p.h
Expand Up @@ -29,7 +29,7 @@

#include <QObject>
#include <QMap>
#include <QSettings>
#include <QVariantList>

#include "mediatransferinterface.h"
#include "transfermethodinfo.h"
Expand Down Expand Up @@ -141,9 +141,9 @@ public Q_SLOTS:
QFileSystemWatcher *m_fileWatcher;
QTimer *m_fileWatcherTimer;
QTimer *m_delayedExitTimer;
QSettings m_settings;
ClientActivityMonitor *m_activityMonitor;
TransferEngine *q_ptr;
QVariantList m_defaultActions;
Q_DECLARE_PUBLIC(TransferEngine)
};

Expand Down

0 comments on commit 2cf8a6d

Please sign in to comment.