From e1c3dbffa3ab3046a1e63d4b88db7c22fc8fa128 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Mon, 9 May 2022 23:39:06 +0300 Subject: [PATCH] kdirshare: fix directory shares restoration on startup Signed-off-by: Ivailo Monev --- kdirshare/kded/kded_kdirshare.cpp | 33 +++++++++++++++++-------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/kdirshare/kded/kded_kdirshare.cpp b/kdirshare/kded/kded_kdirshare.cpp index ebbb33e6..dd6e2a27 100644 --- a/kdirshare/kded/kded_kdirshare.cpp +++ b/kdirshare/kded/kded_kdirshare.cpp @@ -19,7 +19,7 @@ #include "kded_kdirshare.h" #include -#include +#include #include #include #include @@ -31,14 +31,17 @@ KDirShareModule::KDirShareModule(QObject *parent, const QList&) : KDEDModule(parent) { bool shareerror = false; - KSettings kdirsharesettings("kdirsharerc", KSettings::SimpleConfig); - foreach (const QString &kdirsharekey, kdirsharesettings.keys()) { - const QString kdirsharedirpathkey = QString::fromLatin1("%1/dirpath").arg(kdirsharekey); - const QString kdirshareportminkey = QString::fromLatin1("%1/portmin").arg(kdirsharekey); - const QString kdirshareportmaxkey = QString::fromLatin1("%1/portmax").arg(kdirsharekey); + KConfig kdirshareconfig("kdirsharerc", KConfig::SimpleConfig); + for (const QString &kdirsharekey: kdirshareconfig.groupList()) { + // qDebug() << Q_FUNC_INFO << kdirsharekey; + KConfigGroup kdirsharegroup = kdirshareconfig.group(kdirsharekey); + const QString kdirsharedirpath = kdirsharegroup.readEntry("dirpath", QString()); + const uint kdirshareportmin = kdirsharegroup.readEntry("portmin", uint(s_kdirshareportmin)); + const uint kdirshareportmax = kdirsharegroup.readEntry("portmax", uint(s_kdirshareportmax)); + // qDebug() << Q_FUNC_INFO << kdirsharekey << kdirsharedirpath << kdirshareportmin << kdirshareportmax; const QString kdirshareerror = share( - kdirsharesettings.value(kdirsharedirpathkey).toString(), - kdirsharesettings.value(kdirshareportminkey).toUInt(), kdirsharesettings.value(kdirshareportmaxkey).toUInt() + kdirsharedirpath, + quint16(kdirshareportmin), quint16(kdirshareportmax) ); if (!kdirshareerror.isEmpty()) { kWarning() << kdirshareerror; @@ -57,17 +60,17 @@ KDirShareModule::KDirShareModule(QObject *parent, const QList&) KDirShareModule::~KDirShareModule() { - KSettings kdirsharesettings("kdirsharerc", KSettings::SimpleConfig); + KConfig kdirshareconfig("kdirsharerc", KConfig::SimpleConfig); foreach (const KDirShareImpl *kdirshareimpl, m_dirshares) { const QByteArray kdirsharekey = kdirshareimpl->directory().toLocal8Bit().toHex(); - const QString kdirsharedirpathkey = QString::fromLatin1("%1/dirpath").arg(kdirsharekey.constData()); - const QString kdirshareportminkey = QString::fromLatin1("%1/portmin").arg(kdirsharekey.constData()); - const QString kdirshareportmaxkey = QString::fromLatin1("%1/portmax").arg(kdirsharekey.constData()); - kdirsharesettings.setValue(kdirsharedirpathkey, kdirshareimpl->directory()); - kdirsharesettings.setValue(kdirshareportminkey, kdirshareimpl->portMin()); - kdirsharesettings.setValue(kdirshareportmaxkey, kdirshareimpl->portMax()); + KConfigGroup kdirsharegroup = kdirshareconfig.group(kdirsharekey); + // qDebug() << Q_FUNC_INFO << kdirsharekey << kdirshareimpl->directory() << kdirshareimpl->portMin() << kdirshareimpl->portMax(); + kdirsharegroup.writeEntry("dirpath", kdirshareimpl->directory()); + kdirsharegroup.writeEntry("portmin", kdirshareimpl->portMin()); + kdirsharegroup.writeEntry("portmax", kdirshareimpl->portMax()); } qDeleteAll(m_dirshares); + m_dirshares.clear(); } QString KDirShareModule::share(const QString &dirpath, const uint portmin, const uint portmax)