diff --git a/src/gui/networksettings.h b/src/gui/networksettings.h index 8e3a97c446b6d..aff431d78d923 100644 --- a/src/gui/networksettings.h +++ b/src/gui/networksettings.h @@ -37,6 +37,11 @@ class NetworkSettings : public QWidget ~NetworkSettings() override; [[nodiscard]] QSize sizeHint() const override; + Ui::NetworkSettings *getUi() const + { + return _ui; + } + private slots: void saveProxySettings(); void saveBWLimitSettings(); diff --git a/src/gui/nmcgui/nmcnetworksettings.cpp b/src/gui/nmcgui/nmcnetworksettings.cpp new file mode 100644 index 0000000000000..6a933ca099d30 --- /dev/null +++ b/src/gui/nmcgui/nmcnetworksettings.cpp @@ -0,0 +1,109 @@ +/* + * Copyright (C) by Eugen Fischer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +#include "nmcgui/nmcnetworksettings.h" +#include "networksettings.h" +#include "ui_networksettings.h" + + +namespace OCC { + +NMCNetworkSettings::NMCNetworkSettings(QWidget *parent) + : NetworkSettings(parent) +{ + setLayout(); +} + +void NMCNetworkSettings::setLayout() +{ + //Fix Layouts + //Proxy settings + getUi()->proxyGroupBox->setTitle(""); + getUi()->proxyGroupBox->layout()->removeWidget(getUi()->manualProxyRadioButton); + getUi()->proxyGroupBox->layout()->removeWidget(getUi()->noProxyRadioButton); + getUi()->proxyGroupBox->layout()->removeWidget(getUi()->systemProxyRadioButton); + getUi()->proxyGroupBox->layout()->removeItem(getUi()->horizontalLayout_7); + getUi()->proxyGroupBox->layout()->removeItem(getUi()->horizontalSpacer_2); + getUi()->proxyGroupBox->layout()->setContentsMargins(16,16,16,16); + getUi()->proxyGroupBox->setStyleSheet("QGroupBox { background-color: white; border-radius: 4px; }"); + + QGridLayout *proxyLayout = static_cast(getUi()->proxyGroupBox->layout()); + auto proxyLabel = new QLabel(QCoreApplication::translate("", "PROXY_SETTINGS")); + proxyLabel->setStyleSheet("QLabel{font-size: 12px; font-weight: bold;}"); + + proxyLayout->addWidget(proxyLabel, 0, 0 ); + proxyLayout->addItem(new QSpacerItem(1,8, QSizePolicy::Fixed, QSizePolicy::Fixed), 1, 0); + proxyLayout->addWidget(getUi()->noProxyRadioButton, 2, 0 ); + proxyLayout->addWidget(getUi()->systemProxyRadioButton, 3, 0 ); + proxyLayout->addWidget(getUi()->manualProxyRadioButton, 4, 0 ); + proxyLayout->addLayout(getUi()->horizontalLayout_7, 5, 0); + + //Remove the spacer, so the elements can expand. + getUi()->horizontalSpacer->changeSize(0,0, QSizePolicy::Fixed, QSizePolicy::Fixed); + + //DownloadBox + getUi()->verticalSpacer_2->changeSize(0,0, QSizePolicy::Fixed, QSizePolicy::Fixed); + getUi()->downloadBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + getUi()->horizontalLayout_3->setSpacing(8); + getUi()->downloadBox->setTitle(""); + getUi()->downloadBox->layout()->removeWidget(getUi()->noDownloadLimitRadioButton); + getUi()->downloadBox->layout()->removeWidget(getUi()->autoDownloadLimitRadioButton); + getUi()->downloadBox->layout()->removeWidget(getUi()->downloadLimitRadioButton); + getUi()->downloadBox->layout()->removeItem(getUi()->horizontalLayout_3); + getUi()->downloadBox->layout()->setContentsMargins(16,16,16,16); + getUi()->downloadBox->setStyleSheet("QGroupBox { background-color: white; border-radius: 4px; }"); + + QGridLayout *downLayout = static_cast(getUi()->downloadBox->layout()); + + auto downLabel = new QLabel(QCoreApplication::translate("", "DOWNLOAD_BANDWIDTH")); + downLabel->setStyleSheet("QLabel{font-size: 12px; font-weight: bold;}"); + downLayout->addWidget(downLabel, 0, 0 ); + downLayout->addItem(new QSpacerItem(1,8, QSizePolicy::Fixed, QSizePolicy::Fixed), 1, 0); + downLayout->addWidget(getUi()->noDownloadLimitRadioButton, 2, 0 ); + downLayout->addWidget(getUi()->autoDownloadLimitRadioButton, 3, 0 ); + downLayout->addWidget(getUi()->downloadLimitRadioButton, 4, 0 ); + downLayout->addItem(getUi()->horizontalLayout_3, 4, 1); + + getUi()->downloadLimitRadioButton->setFixedHeight(getUi()->downloadSpinBox->height()); + + //UploadBox + getUi()->uploadBox->layout()->removeItem(getUi()->horizontalLayout_4); + static_cast(getUi()->uploadBox->layout())->addItem(getUi()->horizontalLayout_4, 2, 1); + + getUi()->verticalSpacer_3->changeSize(0,0, QSizePolicy::Fixed, QSizePolicy::Fixed); + getUi()->uploadBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + getUi()->horizontalLayout_4->setSpacing(8); + getUi()->uploadBox->setTitle(""); + getUi()->uploadBox->layout()->removeWidget(getUi()->noUploadLimitRadioButton); + getUi()->uploadBox->layout()->removeWidget(getUi()->autoUploadLimitRadioButton); + getUi()->uploadBox->layout()->removeWidget(getUi()->uploadLimitRadioButton); + getUi()->uploadBox->layout()->removeItem(getUi()->horizontalLayout_4); + getUi()->uploadBox->layout()->setContentsMargins(16,16,16,16); + getUi()->uploadBox->setStyleSheet("QGroupBox { background-color: white; border-radius: 4px; }"); + + QGridLayout *upLayout = static_cast(getUi()->uploadBox->layout()); + + auto uploadLabel = new QLabel(QCoreApplication::translate("", "UPLOAD_BANDWIDTH")); + uploadLabel->setStyleSheet("QLabel{font-size: 12px; font-weight: bold;}"); + upLayout->addWidget(uploadLabel, 0, 0 ); + upLayout->addItem(new QSpacerItem(1,8, QSizePolicy::Fixed, QSizePolicy::Fixed), 1, 0); + upLayout->addWidget(getUi()->noUploadLimitRadioButton, 2, 0 ); + upLayout->addWidget(getUi()->autoUploadLimitRadioButton, 3, 0 ); + upLayout->addWidget(getUi()->uploadLimitRadioButton, 4, 0 ); + upLayout->addItem(getUi()->horizontalLayout_4, 4, 1); + + getUi()->uploadLimitRadioButton->setFixedHeight(getUi()->uploadSpinBox->height()); +} + +} // namespace OCC \ No newline at end of file diff --git a/src/gui/nmcgui/nmcnetworksettings.h b/src/gui/nmcgui/nmcnetworksettings.h new file mode 100644 index 0000000000000..b9b058157a7aa --- /dev/null +++ b/src/gui/nmcgui/nmcnetworksettings.h @@ -0,0 +1,51 @@ +/* + * Copyright (C) by Daniel Molkentin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +#ifndef MIRALL_NETWORKSETTINGSMAGENTA_H +#define MIRALL_NETWORKSETTINGSMAGENTA_H + +#include "networksettings.h" + +namespace OCC { + +/** + * @brief The NMCNetworkSettings class + * @ingroup gui + * @brief Derived class for network settings specific to NMC (Magenta) in the ownCloud client. + */ +class NMCNetworkSettings : public NetworkSettings +{ + Q_OBJECT + +public: + /** + * @brief Constructs an NMCNetworkSettings object. + * @param parent Pointer to the parent QWidget. + */ + explicit NMCNetworkSettings(QWidget *parent = nullptr); + + /** + * @brief Destructor for NMCNetworkSettings. + */ + ~NMCNetworkSettings() = default; + +private: + /** + * @brief Sets the layout for the network settings specific to NMC (Magenta). + */ + void setLayout(); +}; + +} // namespace OCC +#endif // MIRALL_NETWORKSETTINGSMAGENTA_H \ No newline at end of file diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index 8f8b1e2f8f76f..d89b6b7221ea4 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -24,6 +24,7 @@ #include "progressdispatcher.h" #include "owncloudgui.h" #include "accountmanager.h" +#include "nmcgui/nmcnetworksettings.h" #include #include @@ -130,7 +131,7 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) QAction *networkAction = createColorAwareAction(QLatin1String(":/client/theme/network.svg"), tr("Network")); _actionGroup->addAction(networkAction); _toolBar->addAction(networkAction); - auto *networkSettings = new NetworkSettings; + auto *networkSettings = new NMCNetworkSettings; _ui->stack->addWidget(networkSettings); _actionGroupWidgets.insert(generalAction, generalSettings);