mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-16 02:03:07 -07:00
Use new JSON parser/generator.
Qt4: Use QJson (http://qjson.sourceforge.net). Qt5: Use native Qt JSON API.
This commit is contained in:
parent
f9c3719d12
commit
9f310318c2
5 changed files with 214 additions and 151 deletions
|
@ -29,9 +29,7 @@
|
|||
*/
|
||||
|
||||
#include "prefjson.h"
|
||||
#include "jsondict.h"
|
||||
#include "preferences.h"
|
||||
#include "json.h"
|
||||
#include "qbtsession.h"
|
||||
#include "scannedfoldersmodel.h"
|
||||
|
||||
|
@ -41,110 +39,111 @@
|
|||
#include <QSslKey>
|
||||
#endif
|
||||
#include <QTranslator>
|
||||
#include "jsonutils.h"
|
||||
|
||||
prefjson::prefjson()
|
||||
{
|
||||
}
|
||||
|
||||
QString prefjson::getPreferences()
|
||||
QByteArray prefjson::getPreferences()
|
||||
{
|
||||
const Preferences pref;
|
||||
JsonDict data;
|
||||
QVariantMap data;
|
||||
// UI
|
||||
data.add("locale", pref.getLocale());
|
||||
data["locale"] = pref.getLocale();
|
||||
// Downloads
|
||||
data.add("save_path", fsutils::toNativePath(pref.getSavePath()));
|
||||
data.add("temp_path_enabled", pref.isTempPathEnabled());
|
||||
data.add("temp_path", fsutils::toNativePath(pref.getTempPath()));
|
||||
QStringList l;
|
||||
data["save_path"] = fsutils::toNativePath(pref.getSavePath());
|
||||
data["temp_path_enabled"] = pref.isTempPathEnabled();
|
||||
data["temp_path"] = fsutils::toNativePath(pref.getTempPath());
|
||||
QVariantList l;
|
||||
foreach (const QString& s, pref.getScanDirs()) {
|
||||
l << fsutils::toNativePath(s);
|
||||
}
|
||||
data.add("scan_dirs", l);
|
||||
data["scan_dirs"] = l;
|
||||
QVariantList var_list;
|
||||
foreach (bool b, pref.getDownloadInScanDirs()) {
|
||||
var_list << b;
|
||||
}
|
||||
data.add("download_in_scan_dirs", var_list);
|
||||
data.add("export_dir_enabled", pref.isTorrentExportEnabled());
|
||||
data.add("export_dir", fsutils::toNativePath(pref.getTorrentExportDir()));
|
||||
data.add("mail_notification_enabled", pref.isMailNotificationEnabled());
|
||||
data.add("mail_notification_email", pref.getMailNotificationEmail());
|
||||
data.add("mail_notification_smtp", pref.getMailNotificationSMTP());
|
||||
data.add("mail_notification_ssl_enabled", pref.getMailNotificationSMTPSSL());
|
||||
data.add("mail_notification_auth_enabled", pref.getMailNotificationSMTPAuth());
|
||||
data.add("mail_notification_username", pref.getMailNotificationSMTPUsername());
|
||||
data.add("mail_notification_password", pref.getMailNotificationSMTPPassword());
|
||||
data.add("autorun_enabled", pref.isAutoRunEnabled());
|
||||
data.add("autorun_program", fsutils::toNativePath(pref.getAutoRunProgram()));
|
||||
data.add("preallocate_all", pref.preAllocateAllFiles());
|
||||
data.add("queueing_enabled", pref.isQueueingSystemEnabled());
|
||||
data.add("max_active_downloads", pref.getMaxActiveDownloads());
|
||||
data.add("max_active_torrents", pref.getMaxActiveTorrents());
|
||||
data.add("max_active_uploads", pref.getMaxActiveUploads());
|
||||
data.add("dont_count_slow_torrents", pref.ignoreSlowTorrentsForQueueing());
|
||||
data.add("incomplete_files_ext", pref.useIncompleteFilesExtension());
|
||||
data["download_in_scan_dirs"] = var_list;
|
||||
data["export_dir_enabled"] = pref.isTorrentExportEnabled();
|
||||
data["export_dir"] = fsutils::toNativePath(pref.getTorrentExportDir());
|
||||
data["mail_notification_enabled"] = pref.isMailNotificationEnabled();
|
||||
data["mail_notification_email"] = pref.getMailNotificationEmail();
|
||||
data["mail_notification_smtp"] = pref.getMailNotificationSMTP();
|
||||
data["mail_notification_ssl_enabled"] = pref.getMailNotificationSMTPSSL();
|
||||
data["mail_notification_auth_enabled"] = pref.getMailNotificationSMTPAuth();
|
||||
data["mail_notification_username"] = pref.getMailNotificationSMTPUsername();
|
||||
data["mail_notification_password"] = pref.getMailNotificationSMTPPassword();
|
||||
data["autorun_enabled"] = pref.isAutoRunEnabled();
|
||||
data["autorun_program"] = fsutils::toNativePath(pref.getAutoRunProgram());
|
||||
data["preallocate_all"] = pref.preAllocateAllFiles();
|
||||
data["queueing_enabled"] = pref.isQueueingSystemEnabled();
|
||||
data["max_active_downloads"] = pref.getMaxActiveDownloads();
|
||||
data["max_active_torrents"] = pref.getMaxActiveTorrents();
|
||||
data["max_active_uploads"] = pref.getMaxActiveUploads();
|
||||
data["dont_count_slow_torrents"] = pref.ignoreSlowTorrentsForQueueing();
|
||||
data["incomplete_files_ext"] = pref.useIncompleteFilesExtension();
|
||||
// Connection
|
||||
data.add("listen_port", pref.getSessionPort());
|
||||
data.add("upnp", pref.isUPnPEnabled());
|
||||
data.add("dl_limit", pref.getGlobalDownloadLimit());
|
||||
data.add("up_limit", pref.getGlobalUploadLimit());
|
||||
data.add("max_connec", pref.getMaxConnecs());
|
||||
data.add("max_connec_per_torrent", pref.getMaxConnecsPerTorrent());
|
||||
data.add("max_uploads_per_torrent", pref.getMaxUploadsPerTorrent());
|
||||
data.add("enable_utp", pref.isuTPEnabled());
|
||||
data.add("limit_utp_rate", pref.isuTPRateLimited());
|
||||
data.add("limit_tcp_overhead", pref.includeOverheadInLimits());
|
||||
data.add("alt_dl_limit", pref.getAltGlobalDownloadLimit());
|
||||
data.add("alt_up_limit", pref.getAltGlobalUploadLimit());
|
||||
data.add("scheduler_enabled", pref.isSchedulerEnabled());
|
||||
data["listen_port"] = pref.getSessionPort();
|
||||
data["upnp"] = pref.isUPnPEnabled();
|
||||
data["dl_limit"] = pref.getGlobalDownloadLimit();
|
||||
data["up_limit"] = pref.getGlobalUploadLimit();
|
||||
data["max_connec"] = pref.getMaxConnecs();
|
||||
data["max_connec_per_torrent"] = pref.getMaxConnecsPerTorrent();
|
||||
data["max_uploads_per_torrent"] = pref.getMaxUploadsPerTorrent();
|
||||
data["enable_utp"] = pref.isuTPEnabled();
|
||||
data["limit_utp_rate"] = pref.isuTPRateLimited();
|
||||
data["limit_tcp_overhead"] = pref.includeOverheadInLimits();
|
||||
data["alt_dl_limit"] = pref.getAltGlobalDownloadLimit();
|
||||
data["alt_up_limit"] = pref.getAltGlobalUploadLimit();
|
||||
data["scheduler_enabled"] = pref.isSchedulerEnabled();
|
||||
const QTime start_time = pref.getSchedulerStartTime();
|
||||
data.add("schedule_from_hour", start_time.hour());
|
||||
data.add("schedule_from_min", start_time.minute());
|
||||
data["schedule_from_hour"] = start_time.hour();
|
||||
data["schedule_from_min"] = start_time.minute();
|
||||
const QTime end_time = pref.getSchedulerEndTime();
|
||||
data.add("schedule_to_hour", end_time.hour());
|
||||
data.add("schedule_to_min", end_time.minute());
|
||||
data.add("scheduler_days", pref.getSchedulerDays());
|
||||
data["schedule_to_hour"] = end_time.hour();
|
||||
data["schedule_to_min"] = end_time.minute();
|
||||
data["scheduler_days"] = pref.getSchedulerDays();
|
||||
// Bittorrent
|
||||
data.add("dht", pref.isDHTEnabled());
|
||||
data.add("dhtSameAsBT", pref.isDHTPortSameAsBT());
|
||||
data.add("dht_port", pref.getDHTPort());
|
||||
data.add("pex", pref.isPeXEnabled());
|
||||
data.add("lsd", pref.isLSDEnabled());
|
||||
data.add("encryption", pref.getEncryptionSetting());
|
||||
data.add("anonymous_mode", pref.isAnonymousModeEnabled());
|
||||
data["dht"] = pref.isDHTEnabled();
|
||||
data["dhtSameAsBT"] = pref.isDHTPortSameAsBT();
|
||||
data["dht_port"] = pref.getDHTPort();
|
||||
data["pex"] = pref.isPeXEnabled();
|
||||
data["lsd"] = pref.isLSDEnabled();
|
||||
data["encryption"] = pref.getEncryptionSetting();
|
||||
data["anonymous_mode"] = pref.isAnonymousModeEnabled();
|
||||
// Proxy
|
||||
data.add("proxy_type", pref.getProxyType());
|
||||
data.add("proxy_ip", pref.getProxyIp());
|
||||
data.add("proxy_port", pref.getProxyPort());
|
||||
data.add("proxy_peer_connections", pref.proxyPeerConnections());
|
||||
data.add("proxy_auth_enabled", pref.isProxyAuthEnabled());
|
||||
data.add("proxy_username", pref.getProxyUsername());
|
||||
data.add("proxy_password", pref.getProxyPassword());
|
||||
data["proxy_type"] = pref.getProxyType();
|
||||
data["proxy_ip"] = pref.getProxyIp();
|
||||
data["proxy_port"] = pref.getProxyPort();
|
||||
data["proxy_peer_connections"] = pref.proxyPeerConnections();
|
||||
data["proxy_auth_enabled"] = pref.isProxyAuthEnabled();
|
||||
data["proxy_username"] = pref.getProxyUsername();
|
||||
data["proxy_password"] = pref.getProxyPassword();
|
||||
// IP Filter
|
||||
data.add("ip_filter_enabled", pref.isFilteringEnabled());
|
||||
data.add("ip_filter_path", fsutils::toNativePath(pref.getFilter()));
|
||||
data["ip_filter_enabled"] = pref.isFilteringEnabled();
|
||||
data["ip_filter_path"] = fsutils::toNativePath(pref.getFilter());
|
||||
// Web UI
|
||||
data.add("web_ui_port", pref.getWebUiPort());
|
||||
data.add("web_ui_username", pref.getWebUiUsername());
|
||||
data.add("web_ui_password", pref.getWebUiPassword());
|
||||
data.add("bypass_local_auth", !pref.isWebUiLocalAuthEnabled());
|
||||
data.add("use_https", pref.isWebUiHttpsEnabled());
|
||||
data.add("ssl_key", QString::fromLatin1(pref.getWebUiHttpsKey()));
|
||||
data.add("ssl_cert", QString::fromLatin1(pref.getWebUiHttpsCertificate()));
|
||||
data["web_ui_port"] = pref.getWebUiPort();
|
||||
data["web_ui_username"] = pref.getWebUiUsername();
|
||||
data["web_ui_password"] = pref.getWebUiPassword();
|
||||
data["bypass_local_auth"] = !pref.isWebUiLocalAuthEnabled();
|
||||
data["use_https"] = pref.isWebUiHttpsEnabled();
|
||||
data["ssl_key"] = QString::fromLatin1(pref.getWebUiHttpsKey());
|
||||
data["ssl_cert"] = QString::fromLatin1(pref.getWebUiHttpsCertificate());
|
||||
// DynDns
|
||||
data.add("dyndns_enabled", pref.isDynDNSEnabled());
|
||||
data.add("dyndns_service", pref.getDynDNSService());
|
||||
data.add("dyndns_username", pref.getDynDNSUsername());
|
||||
data.add("dyndns_password", pref.getDynDNSPassword());
|
||||
data.add("dyndns_domain", pref.getDynDomainName());
|
||||
data["dyndns_enabled"] = pref.isDynDNSEnabled();
|
||||
data["dyndns_service"] = pref.getDynDNSService();
|
||||
data["dyndns_username"] = pref.getDynDNSUsername();
|
||||
data["dyndns_password"] = pref.getDynDNSPassword();
|
||||
data["dyndns_domain"] = pref.getDynDomainName();
|
||||
|
||||
return data.toString();
|
||||
return json::toJson(data);
|
||||
}
|
||||
|
||||
void prefjson::setPreferences(const QString& json)
|
||||
{
|
||||
const QVariantMap m = json::fromJson(json);
|
||||
const QVariantMap m = json::fromJson(json).toMap();
|
||||
|
||||
// UI
|
||||
Preferences pref;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue