File indexing completed on 2024-11-10 04:30:27
0001 /* 0002 SPDX-FileCopyrightText: 2001 Dawit Alemayehu <adawit@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 // Own 0008 #include "ksaveioconfig.h" 0009 0010 // Qt 0011 #include <QDBusConnection> 0012 #include <QDBusInterface> 0013 #include <QDBusMessage> 0014 #include <QDBusReply> 0015 0016 // KDE 0017 #include <KConfig> 0018 #include <KConfigGroup> 0019 #include <KLocalizedString> 0020 #include <KMessageBox> 0021 #include <kio/ioworker_defaults.h> 0022 class KSaveIOConfigPrivate 0023 { 0024 public: 0025 KSaveIOConfigPrivate(); 0026 ~KSaveIOConfigPrivate(); 0027 0028 KConfig *config = nullptr; 0029 KConfig *http_config = nullptr; 0030 }; 0031 0032 Q_GLOBAL_STATIC(KSaveIOConfigPrivate, d) 0033 0034 KSaveIOConfigPrivate::KSaveIOConfigPrivate() 0035 { 0036 } 0037 0038 KSaveIOConfigPrivate::~KSaveIOConfigPrivate() 0039 { 0040 delete config; 0041 delete http_config; 0042 } 0043 0044 static KConfig *config() 0045 { 0046 if (!d->config) { 0047 d->config = new KConfig(QStringLiteral("kioslaverc"), KConfig::NoGlobals); 0048 // KF6 TODO: rename to kioworkerrc here and elsewhere. See also T15956. 0049 } 0050 0051 return d->config; 0052 } 0053 0054 int KSaveIOConfig::proxyDisplayUrlFlags() 0055 { 0056 KConfigGroup cfg(config(), QString()); 0057 return cfg.readEntry("ProxyUrlDisplayFlags", 0); 0058 } 0059 0060 void KSaveIOConfig::setProxyDisplayUrlFlags(int flags) 0061 { 0062 KConfigGroup cfg(config(), QString()); 0063 cfg.writeEntry("ProxyUrlDisplayFlags", flags); 0064 cfg.sync(); 0065 } 0066 0067 void KSaveIOConfig::setReadTimeout(int _timeout) 0068 { 0069 KConfigGroup cfg(config(), QString()); 0070 cfg.writeEntry("ReadTimeout", qMax(MIN_TIMEOUT_VALUE, _timeout)); 0071 cfg.sync(); 0072 } 0073 0074 void KSaveIOConfig::setConnectTimeout(int _timeout) 0075 { 0076 KConfigGroup cfg(config(), QString()); 0077 cfg.writeEntry("ConnectTimeout", qMax(MIN_TIMEOUT_VALUE, _timeout)); 0078 cfg.sync(); 0079 } 0080 0081 void KSaveIOConfig::setProxyConnectTimeout(int _timeout) 0082 { 0083 KConfigGroup cfg(config(), QString()); 0084 cfg.writeEntry("ProxyConnectTimeout", qMax(MIN_TIMEOUT_VALUE, _timeout)); 0085 cfg.sync(); 0086 } 0087 0088 void KSaveIOConfig::setResponseTimeout(int _timeout) 0089 { 0090 KConfigGroup cfg(config(), QString()); 0091 cfg.writeEntry("ResponseTimeout", qMax(MIN_TIMEOUT_VALUE, _timeout)); 0092 cfg.sync(); 0093 } 0094 0095 void KSaveIOConfig::setMarkPartial(bool _mode) 0096 { 0097 KConfigGroup cfg(config(), QString()); 0098 cfg.writeEntry("MarkPartial", _mode); 0099 cfg.sync(); 0100 } 0101 0102 void KSaveIOConfig::setMinimumKeepSize(int _size) 0103 { 0104 KConfigGroup cfg(config(), QString()); 0105 cfg.writeEntry("MinimumKeepSize", _size); 0106 cfg.sync(); 0107 } 0108 0109 void KSaveIOConfig::setAutoResume(bool _mode) 0110 { 0111 KConfigGroup cfg(config(), QString()); 0112 cfg.writeEntry("AutoResume", _mode); 0113 cfg.sync(); 0114 } 0115 0116 void KSaveIOConfig::setUseReverseProxy(bool mode) 0117 { 0118 KConfigGroup cfg(config(), QStringLiteral("Proxy Settings")); 0119 cfg.writeEntry("ReversedException", mode); 0120 cfg.sync(); 0121 } 0122 0123 void KSaveIOConfig::setProxyType(KSaveIOConfig::ProxyType type) 0124 { 0125 KConfigGroup cfg(config(), QStringLiteral("Proxy Settings")); 0126 cfg.writeEntry("ProxyType", static_cast<int>(type)); 0127 cfg.sync(); 0128 } 0129 0130 QString KSaveIOConfig::noProxyFor() 0131 { 0132 KConfigGroup cfg(config(), QStringLiteral("Proxy Settings")); 0133 return cfg.readEntry("NoProxyFor"); 0134 } 0135 0136 void KSaveIOConfig::setNoProxyFor(const QString &_noproxy) 0137 { 0138 KConfigGroup cfg(config(), QStringLiteral("Proxy Settings")); 0139 cfg.writeEntry("NoProxyFor", _noproxy); 0140 cfg.sync(); 0141 } 0142 0143 void KSaveIOConfig::setProxyFor(const QString &protocol, const QString &_proxy) 0144 { 0145 KConfigGroup cfg(config(), QStringLiteral("Proxy Settings")); 0146 cfg.writeEntry(protocol.toLower() + QLatin1String("Proxy"), _proxy); 0147 cfg.sync(); 0148 } 0149 0150 void KSaveIOConfig::setProxyConfigScript(const QString &_url) 0151 { 0152 KConfigGroup cfg(config(), QStringLiteral("Proxy Settings")); 0153 cfg.writeEntry("Proxy Config Script", _url); 0154 cfg.sync(); 0155 } 0156 0157 void KSaveIOConfig::updateRunningWorkers(QWidget *parent) 0158 { 0159 // Inform all running KIO workers about the changes... 0160 // if we cannot update, KIO workers inform the end user... 0161 QDBusMessage message = 0162 QDBusMessage::createSignal(QStringLiteral("/KIO/Scheduler"), QStringLiteral("org.kde.KIO.Scheduler"), QStringLiteral("reparseSlaveConfiguration")); 0163 message << QString(); 0164 if (!QDBusConnection::sessionBus().send(message)) { 0165 KMessageBox::information(parent, 0166 i18n("You have to restart the running applications " 0167 "for these changes to take effect."), 0168 i18nc("@title:window", "Update Failed")); 0169 } 0170 }