/***************************************************************************
- * Copyright (C) 2005-2016 by the Quassel Project *
+ * Copyright (C) 2005-2020 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "client.h"
#include "clienttransfermanager.h"
+#include "util.h"
-DccSettingsPage::DccSettingsPage(QWidget *parent)
+DccSettingsPage::DccSettingsPage(QWidget* parent)
: SettingsPage(tr("IRC"), tr("DCC"), parent)
{
ui.setupUi(this);
initAutoWidgets();
- connect(ui.ipDetectionMode, SIGNAL(currentIndexChanged(int)), SLOT(updateWidgetStates()));
- connect(ui.portSelectionMode, SIGNAL(currentIndexChanged(int)), SLOT(updateWidgetStates()));
+ connect(ui.ipDetectionMode, selectOverload<int>(&QComboBox::currentIndexChanged), this, &DccSettingsPage::updateWidgetStates);
+ connect(ui.portSelectionMode, selectOverload<int>(&QComboBox::currentIndexChanged), this, &DccSettingsPage::updateWidgetStates);
updateWidgetStates();
- connect(Client::instance(), SIGNAL(coreConnectionStateChanged(bool)), SLOT(onClientConfigChanged()));
+ connect(Client::instance(), &Client::coreConnectionStateChanged, this, &DccSettingsPage::onClientConfigChanged);
setClientConfig(Client::dccConfig());
}
-
bool DccSettingsPage::isClientConfigValid() const
{
return _clientConfig != nullptr;
}
-
-void DccSettingsPage::setClientConfig(DccConfig *config)
+void DccSettingsPage::setClientConfig(DccConfig* config)
{
if (_clientConfig) {
- disconnect(_clientConfig, 0, this, 0);
+ disconnect(_clientConfig, nullptr, this, nullptr);
}
if (config && !isClientConfigValid()) {
qWarning() << "Client DCC config is not valid/synchronized!";
}
_clientConfig = config;
if (_clientConfig) {
- connect(_clientConfig, SIGNAL(updated()), SLOT(load()));
+ connect(_clientConfig, &DccConfig::updated, this, &DccSettingsPage::load);
load();
ui.dccEnabled->setEnabled(true);
}
}
}
-
void DccSettingsPage::onClientConfigChanged()
{
if (Client::isConnected() && Client::dccConfig() && !Client::dccConfig()->isInitialized()) {
- connect(Client::dccConfig(), SIGNAL(initDone()), SLOT(onClientConfigChanged()));
+ connect(Client::dccConfig(), &SyncableObject::initDone, this, &DccSettingsPage::onClientConfigChanged);
}
else {
setClientConfig(Client::isConnected() ? Client::dccConfig() : nullptr);
}
}
-
bool DccSettingsPage::hasDefaults() const
{
return true;
}
-
void DccSettingsPage::defaults()
{
- _localConfig = DccConfig();
+ _localConfig.fromVariantMap(DccConfig{}.toVariantMap());
SettingsPage::load();
widgetHasChanged();
}
-
void DccSettingsPage::load()
{
- _localConfig = isClientConfigValid() ? *_clientConfig : DccConfig{};
+ _localConfig.fromVariantMap(isClientConfigValid() ? _clientConfig->toVariantMap() : DccConfig{}.toVariantMap());
SettingsPage::load();
widgetHasChanged();
}
-
void DccSettingsPage::save()
{
SettingsPage::save();
setChangedState(false);
}
-
QVariant DccSettingsPage::loadAutoWidgetValue(const QString& widgetName)
{
if (widgetName == "dccEnabled")
return {};
}
-
void DccSettingsPage::saveAutoWidgetValue(const QString& widgetName, const QVariant& value)
{
if (widgetName == "dccEnabled")
else if (widgetName == "useFastSend")
_localConfig.setUseFastSend(value.toBool());
else if (widgetName == "outgoingIp") {
- QHostAddress address {QHostAddress::LocalHost};
+ QHostAddress address{QHostAddress::LocalHost};
if (!address.setAddress(value.toString())) {
qWarning() << "Invalid IP address!";
address = QHostAddress{QHostAddress::LocalHost};
}
}
-
void DccSettingsPage::widgetHasChanged()
{
bool same = isClientConfigValid() && (_localConfig == *_clientConfig);
setChangedState(!same);
}
-
void DccSettingsPage::updateWidgetStates()
{
ui.outgoingIp->setEnabled(ui.ipDetectionMode->currentIndex() != 0);