From 510fb3cb8d577ddb909350e813c029e27e3d3c98 Mon Sep 17 00:00:00 2001 From: memurats Date: Fri, 24 Oct 2025 12:53:36 +0200 Subject: [PATCH 01/35] network settings changes --- src/gui/CMakeLists.txt | 7 ++ src/gui/networksettings.h | 5 ++ src/gui/networksettings.ui | 4 +- src/gui/nmcgui/nmcnetworksettings.cpp | 120 ++++++++++++++++++++++++++ src/gui/nmcgui/nmcnetworksettings.h | 57 ++++++++++++ 5 files changed, 191 insertions(+), 2 deletions(-) create mode 100644 src/gui/nmcgui/nmcnetworksettings.cpp create mode 100644 src/gui/nmcgui/nmcnetworksettings.h diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 54d32c3580e86..06f095611462a 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -6,6 +6,9 @@ find_package(Qt${QT_MAJOR_VERSION} REQUIRED COMPONENTS Widgets Svg Qml Quick Qui find_package(KF6Archive REQUIRED) find_package(KF6GuiAddons) +#NMC customization: needed to find the ui file in a different location than the header file +set(CMAKE_AUTOUIC_SEARCH_PATHS "${CMAKE_SOURCE_DIR}/src/gui") + if(CMAKE_BUILD_TYPE MATCHES Debug) add_definitions(-DQT_QML_DEBUG) endif() @@ -260,6 +263,10 @@ set(client_SRCS wizard/wizardproxysettingsdialog.cpp ) +file(GLOB NMC_FILES "nmcgui/*") +set(NMC_SRCS ${NMC_FILES}) +list(APPEND client_SRCS ${NMC_SRCS}) + if (NOT DISABLE_ACCOUNT_MIGRATION) list(APPEND client_SRCS legacyaccountselectiondialog.h diff --git a/src/gui/networksettings.h b/src/gui/networksettings.h index b3b7e5ffc91ea..00b3cbff044a3 100644 --- a/src/gui/networksettings.h +++ b/src/gui/networksettings.h @@ -31,6 +31,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/networksettings.ui b/src/gui/networksettings.ui index 068cc6e8967af..9309096f1e2f9 100644 --- a/src/gui/networksettings.ui +++ b/src/gui/networksettings.ui @@ -337,7 +337,7 @@ Limit to 3/4 of estimated bandwidth - Limit automatically + Limit to 3/4 of estimated bandwidth @@ -460,7 +460,7 @@ Limit to 3/4 of estimated bandwidth - Limit automatically + Limit to 3/4 of estimated bandwidth diff --git a/src/gui/nmcgui/nmcnetworksettings.cpp b/src/gui/nmcgui/nmcnetworksettings.cpp new file mode 100644 index 0000000000000..8891e57fb3184 --- /dev/null +++ b/src/gui/nmcgui/nmcnetworksettings.cpp @@ -0,0 +1,120 @@ +/* +* 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" + +#include +#include +#include +#include +#include + +namespace OCC { + +NMCNetworkSettings::NMCNetworkSettings(const AccountPtr &account, QWidget *parent) + : NetworkSettings(account, parent) +{ + setLayout(); +} + +void NMCNetworkSettings::setLayout() +{ + auto *ui = getUi(); + + // + // Proxy Settings + // + ui->proxyGroupBox->setTitle({}); + ui->proxyGroupBox->layout()->removeWidget(ui->manualProxyRadioButton); + ui->proxyGroupBox->layout()->removeWidget(ui->noProxyRadioButton); + ui->proxyGroupBox->layout()->removeWidget(ui->systemProxyRadioButton); + ui->proxyGroupBox->layout()->removeItem(ui->horizontalLayout_7); + ui->proxyGroupBox->layout()->removeItem(ui->horizontalSpacer_2); + ui->proxyGroupBox->layout()->setContentsMargins(16, 16, 16, 16); + ui->proxyGroupBox->setStyleSheet("border-radius: 4px;"); + + auto *proxyLayout = qobject_cast(ui->proxyGroupBox->layout()); + auto *proxyLabel = new QLabel(QCoreApplication::translate("", "PROXY_SETTINGS")); + proxyLabel->setStyleSheet("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(ui->noProxyRadioButton, 2, 0); + proxyLayout->addWidget(ui->systemProxyRadioButton, 3, 0); + proxyLayout->addWidget(ui->manualProxyRadioButton, 4, 0); + proxyLayout->addLayout(ui->horizontalLayout_7, 5, 0); + + ui->horizontalSpacer->changeSize(0, 0, QSizePolicy::Fixed, QSizePolicy::Fixed); + ui->proxyGroupBox->setStyleSheet(ui->proxyGroupBox->styleSheet()); + + // + // Download Bandwidth + // + ui->verticalSpacer_2->changeSize(0, 0, QSizePolicy::Fixed, QSizePolicy::Fixed); + ui->downloadBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + ui->horizontalLayout_3->setSpacing(8); + ui->downloadBox->setTitle({}); + ui->downloadBox->layout()->removeWidget(ui->noDownloadLimitRadioButton); + ui->downloadBox->layout()->removeWidget(ui->autoDownloadLimitRadioButton); + ui->downloadBox->layout()->removeWidget(ui->downloadLimitRadioButton); + ui->downloadBox->layout()->removeItem(ui->horizontalLayout_3); + ui->downloadBox->layout()->setContentsMargins(16, 16, 16, 16); + ui->downloadBox->setStyleSheet("border-radius: 4px;"); + + auto *downLayout = qobject_cast(ui->downloadBox->layout()); + auto *downLabel = new QLabel(QCoreApplication::translate("", "DOWNLOAD_BANDWIDTH")); + downLabel->setStyleSheet("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(ui->noDownloadLimitRadioButton, 2, 0); + downLayout->addWidget(ui->autoDownloadLimitRadioButton, 3, 0); + downLayout->addWidget(ui->downloadLimitRadioButton, 4, 0); + downLayout->addLayout(ui->horizontalLayout_3, 4, 1); + + ui->downloadLimitRadioButton->setFixedHeight(ui->downloadSpinBox->height()); + ui->downloadBox->setStyleSheet(ui->downloadBox->styleSheet()); + + // + // Upload Bandwidth + // + ui->verticalSpacer_3->changeSize(0, 0, QSizePolicy::Fixed, QSizePolicy::Fixed); + ui->uploadBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + ui->horizontalLayout_4->setSpacing(8); + ui->uploadBox->setTitle({}); + ui->uploadBox->layout()->removeWidget(ui->noUploadLimitRadioButton); + ui->uploadBox->layout()->removeWidget(ui->autoUploadLimitRadioButton); + ui->uploadBox->layout()->removeWidget(ui->uploadLimitRadioButton); + ui->uploadBox->layout()->removeItem(ui->horizontalLayout_4); + ui->uploadBox->layout()->setContentsMargins(16, 16, 16, 16); + ui->uploadBox->setStyleSheet("border-radius: 4px;"); + + auto *upLayout = qobject_cast(ui->uploadBox->layout()); + auto *upLabel = new QLabel(QCoreApplication::translate("", "UPLOAD_BANDWIDTH")); + upLabel->setStyleSheet("font-size: 12px; font-weight: bold;"); + + upLayout->addWidget(upLabel, 0, 0); + upLayout->addItem(new QSpacerItem(1, 8, QSizePolicy::Fixed, QSizePolicy::Fixed), 1, 0); + upLayout->addWidget(ui->noUploadLimitRadioButton, 2, 0); + upLayout->addWidget(ui->autoUploadLimitRadioButton, 3, 0); + upLayout->addWidget(ui->uploadLimitRadioButton, 4, 0); + upLayout->addLayout(ui->horizontalLayout_4, 4, 1); + + ui->uploadLimitRadioButton->setFixedHeight(ui->uploadSpinBox->height()); + ui->uploadBox->setStyleSheet(ui->uploadBox->styleSheet()); +} + +} // namespace OCC diff --git a/src/gui/nmcgui/nmcnetworksettings.h b/src/gui/nmcgui/nmcnetworksettings.h new file mode 100644 index 0000000000000..5fe0fcc004df1 --- /dev/null +++ b/src/gui/nmcgui/nmcnetworksettings.h @@ -0,0 +1,57 @@ +/* + * 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" + +QT_BEGIN_NAMESPACE +class QWidget; +QT_END_NAMESPACE + +namespace OCC { + +/** + * @class NMCNetworkSettings + * @ingroup gui + * @brief Derived class for network settings specific to NMC (Magenta) in the ownCloud client. + */ +class NMCNetworkSettings : public NetworkSettings +{ + Q_OBJECT + + public: + /** + * @brief Constructor + * @param account Account pointer used to configure settings + * @param parent Parent widget + */ + explicit NMCNetworkSettings(const AccountPtr &account = {}, QWidget *parent = nullptr); + + /** + * @brief Destructor + */ + ~NMCNetworkSettings() override = default; + + private: + /** + * @brief Initializes and sets the custom layout + */ + void setLayout(); + }; + +} // namespace OCC + +#endif // MIRALL_NETWORKSETTINGSMAGENTA_H \ No newline at end of file From 288182a3df2b73a56cbf91dcfbf0f7bb681d85bf Mon Sep 17 00:00:00 2001 From: memurats Date: Mon, 27 Oct 2025 14:51:33 +0100 Subject: [PATCH 02/35] updated gui cmake file --- src/gui/CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 06f095611462a..96fb9c4f5ac4a 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -6,9 +6,6 @@ find_package(Qt${QT_MAJOR_VERSION} REQUIRED COMPONENTS Widgets Svg Qml Quick Qui find_package(KF6Archive REQUIRED) find_package(KF6GuiAddons) -#NMC customization: needed to find the ui file in a different location than the header file -set(CMAKE_AUTOUIC_SEARCH_PATHS "${CMAKE_SOURCE_DIR}/src/gui") - if(CMAKE_BUILD_TYPE MATCHES Debug) add_definitions(-DQT_QML_DEBUG) endif() @@ -26,6 +23,9 @@ endif() configure_file(${CMAKE_SOURCE_DIR}/theme.qrc.in ${CMAKE_SOURCE_DIR}/theme.qrc) set(theme_dir ${CMAKE_SOURCE_DIR}/theme) +#NMC customization: needed to find the ui file in a different location than the header file +set(CMAKE_AUTOUIC_SEARCH_PATHS "${CMAKE_SOURCE_DIR}/src/gui") + set(client_UI_SRCS accountsettings.ui conflictdialog.ui From b601c3e9719a638ee309252822b9027e9238905d Mon Sep 17 00:00:00 2001 From: memurats Date: Wed, 29 Oct 2025 08:41:07 +0100 Subject: [PATCH 03/35] added network settings button --- src/gui/settingsdialog.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index dc6ab9cb802ca..8cf62730f63b3 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -11,6 +11,7 @@ #include "theme.h" #include "generalsettings.h" #include "networksettings.h" +#include "nmcgui/nmcnetworksettings.h" #include "accountsettings.h" #include "configfile.h" #include "progressdispatcher.h" @@ -126,7 +127,14 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) connect(AccountManager::instance(), &AccountManager::capabilitiesChanged, generalSettings, &GeneralSettings::loadUpdateChannelsList); #endif + QAction *networkAction = createColorAwareAction(QLatin1String(":/client/theme/network.svg"), tr("Network")); + _actionGroup->addAction(networkAction); + _toolBar->addAction(networkAction); + auto *networkSettings = new NMCNetworkSettings; + _ui->stack->addWidget(networkSettings); + _actionGroupWidgets.insert(generalAction, generalSettings); + _actionGroupWidgets.insert(networkAction, networkSettings); const auto accountsList = AccountManager::instance()->accounts(); for (const auto &account : accountsList) { From 123bd6425d256d30a575f0ad1acc2924de4ba710 Mon Sep 17 00:00:00 2001 From: memurats Date: Wed, 29 Oct 2025 13:25:00 +0100 Subject: [PATCH 04/35] fixed crash --- src/gui/nmcgui/nmcnetworksettings.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/gui/nmcgui/nmcnetworksettings.cpp b/src/gui/nmcgui/nmcnetworksettings.cpp index 8891e57fb3184..ec4535477e21c 100644 --- a/src/gui/nmcgui/nmcnetworksettings.cpp +++ b/src/gui/nmcgui/nmcnetworksettings.cpp @@ -41,8 +41,10 @@ void NMCNetworkSettings::setLayout() ui->proxyGroupBox->layout()->removeWidget(ui->manualProxyRadioButton); ui->proxyGroupBox->layout()->removeWidget(ui->noProxyRadioButton); ui->proxyGroupBox->layout()->removeWidget(ui->systemProxyRadioButton); - ui->proxyGroupBox->layout()->removeItem(ui->horizontalLayout_7); - ui->proxyGroupBox->layout()->removeItem(ui->horizontalSpacer_2); + + delete ui->horizontalLayout_7; + delete ui->horizontalSpacer_2; + ui->proxyGroupBox->layout()->setContentsMargins(16, 16, 16, 16); ui->proxyGroupBox->setStyleSheet("border-radius: 4px;"); @@ -55,7 +57,6 @@ void NMCNetworkSettings::setLayout() proxyLayout->addWidget(ui->noProxyRadioButton, 2, 0); proxyLayout->addWidget(ui->systemProxyRadioButton, 3, 0); proxyLayout->addWidget(ui->manualProxyRadioButton, 4, 0); - proxyLayout->addLayout(ui->horizontalLayout_7, 5, 0); ui->horizontalSpacer->changeSize(0, 0, QSizePolicy::Fixed, QSizePolicy::Fixed); ui->proxyGroupBox->setStyleSheet(ui->proxyGroupBox->styleSheet()); @@ -67,10 +68,13 @@ void NMCNetworkSettings::setLayout() ui->downloadBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); ui->horizontalLayout_3->setSpacing(8); ui->downloadBox->setTitle({}); + ui->downloadBox->layout()->removeWidget(ui->noDownloadLimitRadioButton); ui->downloadBox->layout()->removeWidget(ui->autoDownloadLimitRadioButton); ui->downloadBox->layout()->removeWidget(ui->downloadLimitRadioButton); - ui->downloadBox->layout()->removeItem(ui->horizontalLayout_3); + + delete ui->horizontalLayout_3; + ui->downloadBox->layout()->setContentsMargins(16, 16, 16, 16); ui->downloadBox->setStyleSheet("border-radius: 4px;"); @@ -83,7 +87,6 @@ void NMCNetworkSettings::setLayout() downLayout->addWidget(ui->noDownloadLimitRadioButton, 2, 0); downLayout->addWidget(ui->autoDownloadLimitRadioButton, 3, 0); downLayout->addWidget(ui->downloadLimitRadioButton, 4, 0); - downLayout->addLayout(ui->horizontalLayout_3, 4, 1); ui->downloadLimitRadioButton->setFixedHeight(ui->downloadSpinBox->height()); ui->downloadBox->setStyleSheet(ui->downloadBox->styleSheet()); @@ -95,10 +98,13 @@ void NMCNetworkSettings::setLayout() ui->uploadBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); ui->horizontalLayout_4->setSpacing(8); ui->uploadBox->setTitle({}); + ui->uploadBox->layout()->removeWidget(ui->noUploadLimitRadioButton); ui->uploadBox->layout()->removeWidget(ui->autoUploadLimitRadioButton); ui->uploadBox->layout()->removeWidget(ui->uploadLimitRadioButton); - ui->uploadBox->layout()->removeItem(ui->horizontalLayout_4); + + delete ui->horizontalLayout_4; + ui->uploadBox->layout()->setContentsMargins(16, 16, 16, 16); ui->uploadBox->setStyleSheet("border-radius: 4px;"); @@ -111,7 +117,6 @@ void NMCNetworkSettings::setLayout() upLayout->addWidget(ui->noUploadLimitRadioButton, 2, 0); upLayout->addWidget(ui->autoUploadLimitRadioButton, 3, 0); upLayout->addWidget(ui->uploadLimitRadioButton, 4, 0); - upLayout->addLayout(ui->horizontalLayout_4, 4, 1); ui->uploadLimitRadioButton->setFixedHeight(ui->uploadSpinBox->height()); ui->uploadBox->setStyleSheet(ui->uploadBox->styleSheet()); From 0ae8e028f4d2ad4ff0fe769d304709236308ef88 Mon Sep 17 00:00:00 2001 From: memurats Date: Wed, 29 Oct 2025 14:14:56 +0100 Subject: [PATCH 05/35] use standard network settings --- src/gui/settingsdialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index 8cf62730f63b3..71fc5207fe83e 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -130,7 +130,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 NMCNetworkSettings; + auto *networkSettings = new networkSettings; _ui->stack->addWidget(networkSettings); _actionGroupWidgets.insert(generalAction, generalSettings); From 7993d0594e5b4af5008dd1eeab1007f76f38b909 Mon Sep 17 00:00:00 2001 From: memurats Date: Wed, 29 Oct 2025 14:31:02 +0100 Subject: [PATCH 06/35] fix bug --- src/gui/settingsdialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index 71fc5207fe83e..e836fc41406d1 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -130,7 +130,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 NetworkSettings; _ui->stack->addWidget(networkSettings); _actionGroupWidgets.insert(generalAction, generalSettings); From 6fb7104f72ce476024738a6c56e5e40c1439186f Mon Sep 17 00:00:00 2001 From: memurats Date: Thu, 30 Oct 2025 11:05:16 +0100 Subject: [PATCH 07/35] remove network tab --- src/gui/accountsettings.cpp | 12 ++++++------ src/gui/settingsdialog.cpp | 5 +++-- src/gui/settingsdialog.h | 5 ++++- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index f246a7026495e..e602c476f3657 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -212,12 +212,12 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent) tabWidget->setCurrentIndex(0); #endif - const auto connectionSettingsTab = _ui->connectionSettingsTab; - const auto connectionSettingsLayout = new QVBoxLayout(connectionSettingsTab); - const auto networkSettings = new NetworkSettings(_accountState->account(), connectionSettingsTab); - connectionSettingsLayout->setContentsMargins(0, 0, 0, 0); - connectionSettingsLayout->addWidget(networkSettings); - connectionSettingsTab->setLayout(connectionSettingsLayout); + // const auto connectionSettingsTab = _ui->connectionSettingsTab; + // const auto connectionSettingsLayout = new QVBoxLayout(connectionSettingsTab); + // const auto networkSettings = new NetworkSettings(_accountState->account(), connectionSettingsTab); + // connectionSettingsLayout->setContentsMargins(0, 0, 0, 0); + // connectionSettingsLayout->addWidget(networkSettings); + // connectionSettingsTab->setLayout(connectionSettingsLayout); const auto mouseCursorChanger = new MouseCursorChanger(this); mouseCursorChanger->folderList = _ui->_folderList; diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index e836fc41406d1..1563bbcfcf551 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -72,10 +72,11 @@ QString shortDisplayNameForSettings(OCC::Account *account, int width) namespace OCC { -SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) +SettingsDialog::SettingsDialog(AccountState *accountState, ownCloudGui *gui, QWidget *parent) : QDialog(parent) , _ui(new Ui::SettingsDialog) , _gui(gui) + , _accountState(accountState) { ConfigFile cfg; @@ -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 NetworkSettings(_accountState->account()); _ui->stack->addWidget(networkSettings); _actionGroupWidgets.insert(generalAction, generalSettings); diff --git a/src/gui/settingsdialog.h b/src/gui/settingsdialog.h index 2b3080288807a..f6f2f8059b215 100644 --- a/src/gui/settingsdialog.h +++ b/src/gui/settingsdialog.h @@ -38,9 +38,10 @@ class SettingsDialog : public QDialog { Q_OBJECT Q_PROPERTY(QWidget* currentPage READ currentPage NOTIFY currentPageChanged) + Q_PROPERTY(AccountState* accountState MEMBER _accountState) public: - explicit SettingsDialog(ownCloudGui *gui, QWidget *parent = nullptr); + explicit SettingsDialog(AccountState *accountState, ownCloudGui *gui, QWidget *parent = nullptr); ~SettingsDialog() override; QWidget* currentPage(); @@ -74,6 +75,8 @@ private slots: Ui::SettingsDialog *const _ui; + AccountState *_accountState; + QActionGroup *_actionGroup; // Maps the actions from the action group to the corresponding widgets QHash _actionGroupWidgets; From 7ee6a19a6b60fae632dbbf57cdf5eabd30e1a9f3 Mon Sep 17 00:00:00 2001 From: memurats Date: Thu, 30 Oct 2025 11:41:35 +0100 Subject: [PATCH 08/35] added constructor overload --- src/gui/settingsdialog.cpp | 4 ++-- src/gui/settingsdialog.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index 1563bbcfcf551..087ba618f307b 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -74,9 +74,9 @@ namespace OCC { SettingsDialog::SettingsDialog(AccountState *accountState, ownCloudGui *gui, QWidget *parent) : QDialog(parent) - , _ui(new Ui::SettingsDialog) - , _gui(gui) , _accountState(accountState) + , _gui(gui) + , _ui(new Ui::SettingsDialog) { ConfigFile cfg; diff --git a/src/gui/settingsdialog.h b/src/gui/settingsdialog.h index f6f2f8059b215..25c062d3a8633 100644 --- a/src/gui/settingsdialog.h +++ b/src/gui/settingsdialog.h @@ -41,7 +41,7 @@ class SettingsDialog : public QDialog Q_PROPERTY(AccountState* accountState MEMBER _accountState) public: - explicit SettingsDialog(AccountState *accountState, ownCloudGui *gui, QWidget *parent = nullptr); + explicit SettingsDialog(ownCloudGui *gui, QWidget *parent = nullptr) : SettingsDialog(nullptr, gui, parent) {} ~SettingsDialog() override; QWidget* currentPage(); From b7bb3039fbb84e9146bf35b1cdbd621283dbe9cf Mon Sep 17 00:00:00 2001 From: memurats Date: Thu, 30 Oct 2025 11:49:48 +0100 Subject: [PATCH 09/35] fixed header --- src/gui/settingsdialog.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/gui/settingsdialog.h b/src/gui/settingsdialog.h index 25c062d3a8633..977ee8f135e8a 100644 --- a/src/gui/settingsdialog.h +++ b/src/gui/settingsdialog.h @@ -41,7 +41,9 @@ class SettingsDialog : public QDialog Q_PROPERTY(AccountState* accountState MEMBER _accountState) public: - explicit SettingsDialog(ownCloudGui *gui, QWidget *parent = nullptr) : SettingsDialog(nullptr, gui, parent) {} + explicit SettingsDialog(AccountState *accountState, ownCloudGui *gui, QWidget *parent = nullptr); + explicit SettingsDialog(ownCloudGui *gui, QWidget *parent = nullptr) + : SettingsDialog(nullptr, gui, parent) {} ~SettingsDialog() override; QWidget* currentPage(); @@ -73,9 +75,9 @@ private slots: QAction *createColorAwareAction(const QString &iconName, const QString &fileName); QAction *createActionWithIcon(const QIcon &icon, const QString &text, const QString &iconPath = QString()); - Ui::SettingsDialog *const _ui; - AccountState *_accountState; + ownCloudGui *_gui; + Ui::SettingsDialog *const _ui; QActionGroup *_actionGroup; // Maps the actions from the action group to the corresponding widgets @@ -86,8 +88,6 @@ private slots: QHash _actionForAccount; QToolBar *_toolBar; - - ownCloudGui *_gui; }; } From e8b095489c19b802edc1f06c47d875e74b46395c Mon Sep 17 00:00:00 2001 From: memurats Date: Thu, 30 Oct 2025 12:48:39 +0100 Subject: [PATCH 10/35] removed widget --- src/gui/accountsettings.ui | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/gui/accountsettings.ui b/src/gui/accountsettings.ui index 2db413221b169..837add3218282 100644 --- a/src/gui/accountsettings.ui +++ b/src/gui/accountsettings.ui @@ -314,11 +314,6 @@ Virtual file sync - - - Connection settings - - From e8f0203f50420400db60ba77238663d8244d3c36 Mon Sep 17 00:00:00 2001 From: memurats Date: Thu, 30 Oct 2025 14:39:09 +0100 Subject: [PATCH 11/35] removed changes --- src/gui/accountsettings.cpp | 12 ++++++------ src/gui/accountsettings.ui | 5 +++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index e602c476f3657..f246a7026495e 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -212,12 +212,12 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent) tabWidget->setCurrentIndex(0); #endif - // const auto connectionSettingsTab = _ui->connectionSettingsTab; - // const auto connectionSettingsLayout = new QVBoxLayout(connectionSettingsTab); - // const auto networkSettings = new NetworkSettings(_accountState->account(), connectionSettingsTab); - // connectionSettingsLayout->setContentsMargins(0, 0, 0, 0); - // connectionSettingsLayout->addWidget(networkSettings); - // connectionSettingsTab->setLayout(connectionSettingsLayout); + const auto connectionSettingsTab = _ui->connectionSettingsTab; + const auto connectionSettingsLayout = new QVBoxLayout(connectionSettingsTab); + const auto networkSettings = new NetworkSettings(_accountState->account(), connectionSettingsTab); + connectionSettingsLayout->setContentsMargins(0, 0, 0, 0); + connectionSettingsLayout->addWidget(networkSettings); + connectionSettingsTab->setLayout(connectionSettingsLayout); const auto mouseCursorChanger = new MouseCursorChanger(this); mouseCursorChanger->folderList = _ui->_folderList; diff --git a/src/gui/accountsettings.ui b/src/gui/accountsettings.ui index 837add3218282..2db413221b169 100644 --- a/src/gui/accountsettings.ui +++ b/src/gui/accountsettings.ui @@ -314,6 +314,11 @@ Virtual file sync + + + Connection settings + + From 804b01d3bded691fe0de2747ac4221f925c42245 Mon Sep 17 00:00:00 2001 From: memurats Date: Thu, 30 Oct 2025 14:49:28 +0100 Subject: [PATCH 12/35] removed customisation --- src/gui/settingsdialog.h | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/gui/settingsdialog.h b/src/gui/settingsdialog.h index 977ee8f135e8a..2b3080288807a 100644 --- a/src/gui/settingsdialog.h +++ b/src/gui/settingsdialog.h @@ -38,12 +38,9 @@ class SettingsDialog : public QDialog { Q_OBJECT Q_PROPERTY(QWidget* currentPage READ currentPage NOTIFY currentPageChanged) - Q_PROPERTY(AccountState* accountState MEMBER _accountState) public: - explicit SettingsDialog(AccountState *accountState, ownCloudGui *gui, QWidget *parent = nullptr); - explicit SettingsDialog(ownCloudGui *gui, QWidget *parent = nullptr) - : SettingsDialog(nullptr, gui, parent) {} + explicit SettingsDialog(ownCloudGui *gui, QWidget *parent = nullptr); ~SettingsDialog() override; QWidget* currentPage(); @@ -75,8 +72,6 @@ private slots: QAction *createColorAwareAction(const QString &iconName, const QString &fileName); QAction *createActionWithIcon(const QIcon &icon, const QString &text, const QString &iconPath = QString()); - AccountState *_accountState; - ownCloudGui *_gui; Ui::SettingsDialog *const _ui; QActionGroup *_actionGroup; @@ -88,6 +83,8 @@ private slots: QHash _actionForAccount; QToolBar *_toolBar; + + ownCloudGui *_gui; }; } From 39ee0eee4ce4721149409d12017723922c121091 Mon Sep 17 00:00:00 2001 From: memurats Date: Thu, 30 Oct 2025 14:50:15 +0100 Subject: [PATCH 13/35] modified init --- src/gui/settingsdialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index 087ba618f307b..4fe50f305bc5b 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -131,7 +131,7 @@ SettingsDialog::SettingsDialog(AccountState *accountState, ownCloudGui *gui, QWi QAction *networkAction = createColorAwareAction(QLatin1String(":/client/theme/network.svg"), tr("Network")); _actionGroup->addAction(networkAction); _toolBar->addAction(networkAction); - auto *networkSettings = new NetworkSettings(_accountState->account()); + auto *networkSettings = new NetworkSettings; _ui->stack->addWidget(networkSettings); _actionGroupWidgets.insert(generalAction, generalSettings); From 8b02de3ac5232140ac814807e20e4c22e2186bdc Mon Sep 17 00:00:00 2001 From: memurats Date: Thu, 30 Oct 2025 14:51:40 +0100 Subject: [PATCH 14/35] standard init --- src/gui/settingsdialog.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index 4fe50f305bc5b..e836fc41406d1 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -72,11 +72,10 @@ QString shortDisplayNameForSettings(OCC::Account *account, int width) namespace OCC { -SettingsDialog::SettingsDialog(AccountState *accountState, ownCloudGui *gui, QWidget *parent) +SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) : QDialog(parent) - , _accountState(accountState) - , _gui(gui) , _ui(new Ui::SettingsDialog) + , _gui(gui) { ConfigFile cfg; From e20318a0509e0def3d2291261f2588f69429d00c Mon Sep 17 00:00:00 2001 From: memurats Date: Thu, 30 Oct 2025 14:52:37 +0100 Subject: [PATCH 15/35] removed include --- src/gui/settingsdialog.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index e836fc41406d1..3f96a8fa79c28 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -11,7 +11,6 @@ #include "theme.h" #include "generalsettings.h" #include "networksettings.h" -#include "nmcgui/nmcnetworksettings.h" #include "accountsettings.h" #include "configfile.h" #include "progressdispatcher.h" From f6016fe7f8817db441ced06a60b230fdec2c029b Mon Sep 17 00:00:00 2001 From: memurats Date: Thu, 30 Oct 2025 15:45:32 +0100 Subject: [PATCH 16/35] add background color --- src/gui/networksettings.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gui/networksettings.cpp b/src/gui/networksettings.cpp index eb73c7f4c3036..f981211829b18 100644 --- a/src/gui/networksettings.cpp +++ b/src/gui/networksettings.cpp @@ -28,6 +28,12 @@ NetworkSettings::NetworkSettings(const AccountPtr &account, QWidget *parent) { _ui->setupUi(this); + QColor backgroundColor = palette().color(QPalette::Window); + QPalette pal = palette(); + pal.setColor(QPalette::Window, backgroundColor); + setAutoFillBackground(true); + setPalette(pal); + _ui->manualSettings->setVisible(_ui->manualProxyRadioButton->isChecked()); _ui->proxyGroupBox->setVisible(!Theme::instance()->doNotUseProxy()); From 8146b49ee724511eec075841c1cbf7969c4982fa Mon Sep 17 00:00:00 2001 From: memurats Date: Thu, 30 Oct 2025 15:46:56 +0100 Subject: [PATCH 17/35] disabled network action --- src/gui/settingsdialog.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index 3f96a8fa79c28..a1e3cb40e4bb4 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -126,14 +126,14 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) connect(AccountManager::instance(), &AccountManager::capabilitiesChanged, generalSettings, &GeneralSettings::loadUpdateChannelsList); #endif - QAction *networkAction = createColorAwareAction(QLatin1String(":/client/theme/network.svg"), tr("Network")); - _actionGroup->addAction(networkAction); - _toolBar->addAction(networkAction); - auto *networkSettings = new NetworkSettings; - _ui->stack->addWidget(networkSettings); + // QAction *networkAction = createColorAwareAction(QLatin1String(":/client/theme/network.svg"), tr("Network")); + // _actionGroup->addAction(networkAction); + // _toolBar->addAction(networkAction); + // auto *networkSettings = new NetworkSettings; + // _ui->stack->addWidget(networkSettings); _actionGroupWidgets.insert(generalAction, generalSettings); - _actionGroupWidgets.insert(networkAction, networkSettings); + // _actionGroupWidgets.insert(networkAction, networkSettings); const auto accountsList = AccountManager::instance()->accounts(); for (const auto &account : accountsList) { From 9580d500be957697f8d0108d21b6a05e748b7ff2 Mon Sep 17 00:00:00 2001 From: memurats Date: Wed, 12 Nov 2025 14:18:11 +0100 Subject: [PATCH 18/35] fix network visuals --- src/gui/networksettings.cpp | 6 ------ src/gui/networksettings.ui | 8 +++++++- src/gui/settingsdialog.cpp | 7 ------- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/src/gui/networksettings.cpp b/src/gui/networksettings.cpp index f981211829b18..eb73c7f4c3036 100644 --- a/src/gui/networksettings.cpp +++ b/src/gui/networksettings.cpp @@ -28,12 +28,6 @@ NetworkSettings::NetworkSettings(const AccountPtr &account, QWidget *parent) { _ui->setupUi(this); - QColor backgroundColor = palette().color(QPalette::Window); - QPalette pal = palette(); - pal.setColor(QPalette::Window, backgroundColor); - setAutoFillBackground(true); - setPalette(pal); - _ui->manualSettings->setVisible(_ui->manualProxyRadioButton->isChecked()); _ui->proxyGroupBox->setVisible(!Theme::instance()->doNotUseProxy()); diff --git a/src/gui/networksettings.ui b/src/gui/networksettings.ui index 9309096f1e2f9..5f7ed2284b37d 100644 --- a/src/gui/networksettings.ui +++ b/src/gui/networksettings.ui @@ -44,6 +44,9 @@ Proxy Settings + + true + @@ -304,6 +307,9 @@ Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop + + true + 9 @@ -402,7 +408,7 @@ Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop - false + true diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index a1e3cb40e4bb4..dc6ab9cb802ca 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -126,14 +126,7 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) connect(AccountManager::instance(), &AccountManager::capabilitiesChanged, generalSettings, &GeneralSettings::loadUpdateChannelsList); #endif - // QAction *networkAction = createColorAwareAction(QLatin1String(":/client/theme/network.svg"), tr("Network")); - // _actionGroup->addAction(networkAction); - // _toolBar->addAction(networkAction); - // auto *networkSettings = new NetworkSettings; - // _ui->stack->addWidget(networkSettings); - _actionGroupWidgets.insert(generalAction, generalSettings); - // _actionGroupWidgets.insert(networkAction, networkSettings); const auto accountsList = AccountManager::instance()->accounts(); for (const auto &account : accountsList) { From 0712a7c07fefecd820b6d78f326f1d1014622398 Mon Sep 17 00:00:00 2001 From: memurats Date: Wed, 12 Nov 2025 16:44:10 +0100 Subject: [PATCH 19/35] style background --- src/gui/networksettings.cpp | 25 +++++++++++++++++++++++++ src/gui/networksettings.h | 1 + 2 files changed, 26 insertions(+) diff --git a/src/gui/networksettings.cpp b/src/gui/networksettings.cpp index eb73c7f4c3036..d3f6bc1ce5e40 100644 --- a/src/gui/networksettings.cpp +++ b/src/gui/networksettings.cpp @@ -17,6 +17,8 @@ #include #include #include +#include +#include #include namespace OCC { @@ -27,6 +29,8 @@ NetworkSettings::NetworkSettings(const AccountPtr &account, QWidget *parent) , _account(account) { _ui->setupUi(this); + setAttribute(Qt::WA_OpaquePaintEvent, true); + setAutoFillBackground(false); _ui->manualSettings->setVisible(_ui->manualProxyRadioButton->isChecked()); @@ -276,5 +280,26 @@ void NetworkSettings::checkAccountLocalhost() _ui->labelLocalhost->setVisible(visible); } +void NetworkSettings::paintEvent(QPaintEvent *event) +{ + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + + const int radius = 4; + QRect rect(0, 0, width(), height()); + + QPainterPath path; + path.addRoundedRect(rect, radius, radius); + + QPalette palette = this->palette(); + QColor backgroundColor = palette.color(QPalette::Window); + QColor baseColor = palette.color(QPalette::Base); + + painter.fillRect(rect, backgroundColor); + painter.fillPath(path, baseColor); + + QWidget::paintEvent(event); +} + } // namespace OCC diff --git a/src/gui/networksettings.h b/src/gui/networksettings.h index 00b3cbff044a3..48c83cf99332c 100644 --- a/src/gui/networksettings.h +++ b/src/gui/networksettings.h @@ -47,6 +47,7 @@ private slots: protected: void showEvent(QShowEvent *event) override; + void paintEvent(QPaintEvent *event) override; private: void loadProxySettings(); From f2f60fb4bdf7660f3a3f703a80917b21ccc2bd1e Mon Sep 17 00:00:00 2001 From: memurats Date: Thu, 13 Nov 2025 10:16:16 +0100 Subject: [PATCH 20/35] added padding to connection tab --- src/gui/networksettings.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gui/networksettings.cpp b/src/gui/networksettings.cpp index d3f6bc1ce5e40..081552dabcda2 100644 --- a/src/gui/networksettings.cpp +++ b/src/gui/networksettings.cpp @@ -29,6 +29,9 @@ NetworkSettings::NetworkSettings(const AccountPtr &account, QWidget *parent) , _account(account) { _ui->setupUi(this); + + _ui->gridLayout_3->setContentsMargins(8, 8, 8, 0); + setAttribute(Qt::WA_OpaquePaintEvent, true); setAutoFillBackground(false); From a2e50cea0eba888e1003665da0bd2818b8554393 Mon Sep 17 00:00:00 2001 From: memurats Date: Thu, 13 Nov 2025 12:00:05 +0100 Subject: [PATCH 21/35] add spacing --- src/gui/networksettings.ui | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/gui/networksettings.ui b/src/gui/networksettings.ui index 5f7ed2284b37d..a1617d012f978 100644 --- a/src/gui/networksettings.ui +++ b/src/gui/networksettings.ui @@ -48,6 +48,9 @@ true + + 8 + @@ -312,13 +315,13 @@ - 9 + 8 - 0 + 0 - 6 + 8 @@ -412,13 +415,13 @@ - 9 + 8 0 - 6 + 8 From 33f30f836cbe8bc3430c7f26a511ba5d352ef3df Mon Sep 17 00:00:00 2001 From: memurats Date: Tue, 18 Nov 2025 11:22:04 +0100 Subject: [PATCH 22/35] network settings styling --- src/gui/networksettings.ui | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/gui/networksettings.ui b/src/gui/networksettings.ui index a1617d012f978..18856ead2fdee 100644 --- a/src/gui/networksettings.ui +++ b/src/gui/networksettings.ui @@ -44,10 +44,18 @@ Proxy Settings + + + true + + true + + 12 + 8 @@ -307,6 +315,11 @@ Download Bandwidth + + + true + + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop @@ -407,6 +420,11 @@ Upload Bandwidth + + + true + + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop From ee1b2cb6a98baee000a09ef7f3e161560821c46f Mon Sep 17 00:00:00 2001 From: memurats Date: Tue, 18 Nov 2025 12:49:33 +0100 Subject: [PATCH 23/35] fixed network fonts --- src/gui/networksettings.ui | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/gui/networksettings.ui b/src/gui/networksettings.ui index 18856ead2fdee..ac41b9abded27 100644 --- a/src/gui/networksettings.ui +++ b/src/gui/networksettings.ui @@ -44,10 +44,10 @@ Proxy Settings - - - true - + + + #proxyGroupBox::title { font-weight: bold; } + true @@ -315,10 +315,10 @@ Download Bandwidth - - - true - + + + #proxyGroupBox::title { font-weight: bold; } + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop @@ -420,10 +420,10 @@ Upload Bandwidth - - - true - + + + #proxyGroupBox::title { font-weight: bold; } + Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop @@ -433,7 +433,7 @@ - 8 + 12 0 From da91c4c2818761ddca27daa8a3d947c5ad06cf90 Mon Sep 17 00:00:00 2001 From: memurats Date: Tue, 18 Nov 2025 16:21:47 +0100 Subject: [PATCH 24/35] fixed layout --- src/gui/networksettings.cpp | 2 +- src/gui/networksettings.ui | 18 ------------------ 2 files changed, 1 insertion(+), 19 deletions(-) diff --git a/src/gui/networksettings.cpp b/src/gui/networksettings.cpp index 081552dabcda2..b794e8b30b89a 100644 --- a/src/gui/networksettings.cpp +++ b/src/gui/networksettings.cpp @@ -30,7 +30,7 @@ NetworkSettings::NetworkSettings(const AccountPtr &account, QWidget *parent) { _ui->setupUi(this); - _ui->gridLayout_3->setContentsMargins(8, 8, 8, 0); + _ui->gridLayout_3->setContentsMargins(16, 16, 16, 0); setAttribute(Qt::WA_OpaquePaintEvent, true); setAutoFillBackground(false); diff --git a/src/gui/networksettings.ui b/src/gui/networksettings.ui index ac41b9abded27..b28dd3d95a216 100644 --- a/src/gui/networksettings.ui +++ b/src/gui/networksettings.ui @@ -44,18 +44,10 @@ Proxy Settings - - - #proxyGroupBox::title { font-weight: bold; } - - true - - 12 - 8 @@ -315,11 +307,6 @@ Download Bandwidth - - - #proxyGroupBox::title { font-weight: bold; } - - Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop @@ -420,11 +407,6 @@ Upload Bandwidth - - - #proxyGroupBox::title { font-weight: bold; } - - Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop From 3f8b613fcad04b193d1ecf8b48a2b746fae75512 Mon Sep 17 00:00:00 2001 From: memurats Date: Wed, 19 Nov 2025 08:42:10 +0100 Subject: [PATCH 25/35] fixed network margin --- src/gui/networksettings.cpp | 16 ++++++---------- src/gui/networksettings.ui | 9 --------- 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/src/gui/networksettings.cpp b/src/gui/networksettings.cpp index b794e8b30b89a..d54cf00f59d03 100644 --- a/src/gui/networksettings.cpp +++ b/src/gui/networksettings.cpp @@ -30,8 +30,6 @@ NetworkSettings::NetworkSettings(const AccountPtr &account, QWidget *parent) { _ui->setupUi(this); - _ui->gridLayout_3->setContentsMargins(16, 16, 16, 0); - setAttribute(Qt::WA_OpaquePaintEvent, true); setAutoFillBackground(false); @@ -285,24 +283,22 @@ void NetworkSettings::checkAccountLocalhost() void NetworkSettings::paintEvent(QPaintEvent *event) { + constexpr int topMargin = 16; + const int radius = 4; + QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); - const int radius = 4; - QRect rect(0, 0, width(), height()); + QRect rect(0, topMargin, width(), height() - topMargin); QPainterPath path; path.addRoundedRect(rect, radius, radius); QPalette palette = this->palette(); - QColor backgroundColor = palette.color(QPalette::Window); - QColor baseColor = palette.color(QPalette::Base); - - painter.fillRect(rect, backgroundColor); - painter.fillPath(path, baseColor); + painter.fillRect(this->rect(), palette.color(QPalette::Window)); + painter.fillPath(path, palette.color(QPalette::Base)); QWidget::paintEvent(event); } - } // namespace OCC diff --git a/src/gui/networksettings.ui b/src/gui/networksettings.ui index b28dd3d95a216..7635d6fcf8766 100644 --- a/src/gui/networksettings.ui +++ b/src/gui/networksettings.ui @@ -44,9 +44,6 @@ Proxy Settings - - true - 8 @@ -310,9 +307,6 @@ Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop - - true - 8 @@ -410,9 +404,6 @@ Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop - - true - 12 From 86802dcf02eb54b5470f580e2eeb675772e7d29d Mon Sep 17 00:00:00 2001 From: memurats Date: Wed, 19 Nov 2025 11:32:19 +0100 Subject: [PATCH 26/35] changed background color --- src/gui/networksettings.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/networksettings.cpp b/src/gui/networksettings.cpp index d54cf00f59d03..cb6f723503d6b 100644 --- a/src/gui/networksettings.cpp +++ b/src/gui/networksettings.cpp @@ -296,7 +296,7 @@ void NetworkSettings::paintEvent(QPaintEvent *event) QPalette palette = this->palette(); painter.fillRect(this->rect(), palette.color(QPalette::Window)); - painter.fillPath(path, palette.color(QPalette::Base)); + painter.fillPath(path, palette.color(QPalette::Window)); QWidget::paintEvent(event); } From d182f5eaec6af7857c50b38471aaf3f17d81bf4f Mon Sep 17 00:00:00 2001 From: memurats Date: Thu, 20 Nov 2025 09:46:35 +0100 Subject: [PATCH 27/35] fix layout --- src/gui/networksettings.cpp | 9 ++++++--- src/gui/networksettings.ui | 3 +++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/gui/networksettings.cpp b/src/gui/networksettings.cpp index cb6f723503d6b..9b457bba643fd 100644 --- a/src/gui/networksettings.cpp +++ b/src/gui/networksettings.cpp @@ -36,6 +36,11 @@ NetworkSettings::NetworkSettings(const AccountPtr &account, QWidget *parent) _ui->manualSettings->setVisible(_ui->manualProxyRadioButton->isChecked()); _ui->proxyGroupBox->setVisible(!Theme::instance()->doNotUseProxy()); + _ui->proxyGroupBox->setStyleSheet( + "QGroupBox::title {" + "padding-bottom: 2px; font-weight: 600;" + "}" + ); if (!Theme::instance()->doNotUseProxy()) { _ui->hostLineEdit->setPlaceholderText(tr("Hostname of proxy server")); @@ -283,19 +288,17 @@ void NetworkSettings::checkAccountLocalhost() void NetworkSettings::paintEvent(QPaintEvent *event) { - constexpr int topMargin = 16; const int radius = 4; QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); - QRect rect(0, topMargin, width(), height() - topMargin); + QRect rect(0, 0, width(), height()); QPainterPath path; path.addRoundedRect(rect, radius, radius); QPalette palette = this->palette(); - painter.fillRect(this->rect(), palette.color(QPalette::Window)); painter.fillPath(path, palette.color(QPalette::Window)); QWidget::paintEvent(event); diff --git a/src/gui/networksettings.ui b/src/gui/networksettings.ui index 7635d6fcf8766..95ab1064c3cf0 100644 --- a/src/gui/networksettings.ui +++ b/src/gui/networksettings.ui @@ -17,6 +17,9 @@ true + + 8 + From 0cf873ec2699dae88e3555b8486b14ac170830e2 Mon Sep 17 00:00:00 2001 From: memurats Date: Thu, 20 Nov 2025 12:58:09 +0100 Subject: [PATCH 28/35] fixed layout --- src/gui/networksettings.cpp | 7 +------ src/gui/networksettings.ui | 2 +- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/gui/networksettings.cpp b/src/gui/networksettings.cpp index 9b457bba643fd..89f8db1634ede 100644 --- a/src/gui/networksettings.cpp +++ b/src/gui/networksettings.cpp @@ -36,11 +36,6 @@ NetworkSettings::NetworkSettings(const AccountPtr &account, QWidget *parent) _ui->manualSettings->setVisible(_ui->manualProxyRadioButton->isChecked()); _ui->proxyGroupBox->setVisible(!Theme::instance()->doNotUseProxy()); - _ui->proxyGroupBox->setStyleSheet( - "QGroupBox::title {" - "padding-bottom: 2px; font-weight: 600;" - "}" - ); if (!Theme::instance()->doNotUseProxy()) { _ui->hostLineEdit->setPlaceholderText(tr("Hostname of proxy server")); @@ -299,7 +294,7 @@ void NetworkSettings::paintEvent(QPaintEvent *event) path.addRoundedRect(rect, radius, radius); QPalette palette = this->palette(); - painter.fillPath(path, palette.color(QPalette::Window)); + painter.fillPath(path, palette.color(QPalette::Base)); QWidget::paintEvent(event); } diff --git a/src/gui/networksettings.ui b/src/gui/networksettings.ui index 95ab1064c3cf0..78ad5c2a602c3 100644 --- a/src/gui/networksettings.ui +++ b/src/gui/networksettings.ui @@ -18,7 +18,7 @@ - 8 + 16 From 192cb5adadc0f5f6cc62c475ed640f51bbaacc48 Mon Sep 17 00:00:00 2001 From: memurats Date: Fri, 21 Nov 2025 10:39:19 +0100 Subject: [PATCH 29/35] changed bg color --- src/gui/networksettings.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/networksettings.cpp b/src/gui/networksettings.cpp index 89f8db1634ede..93acb731161f6 100644 --- a/src/gui/networksettings.cpp +++ b/src/gui/networksettings.cpp @@ -283,17 +283,18 @@ void NetworkSettings::checkAccountLocalhost() void NetworkSettings::paintEvent(QPaintEvent *event) { + const int radius = 4; QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); QRect rect(0, 0, width(), height()); - QPainterPath path; path.addRoundedRect(rect, radius, radius); QPalette palette = this->palette(); + painter.fillRect(rect, palette.color(QPalette::Window)); painter.fillPath(path, palette.color(QPalette::Base)); QWidget::paintEvent(event); From 555ed94e8c5a003d26a79aae7ee073c559b1c10b Mon Sep 17 00:00:00 2001 From: memurats Date: Fri, 21 Nov 2025 10:46:06 +0100 Subject: [PATCH 30/35] chabged bg --- src/gui/networksettings.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/networksettings.cpp b/src/gui/networksettings.cpp index 93acb731161f6..f733a458ecbf2 100644 --- a/src/gui/networksettings.cpp +++ b/src/gui/networksettings.cpp @@ -294,7 +294,7 @@ void NetworkSettings::paintEvent(QPaintEvent *event) path.addRoundedRect(rect, radius, radius); QPalette palette = this->palette(); - painter.fillRect(rect, palette.color(QPalette::Window)); + painter.fillRect(rect, palette.color(QPalette::Base)); painter.fillPath(path, palette.color(QPalette::Base)); QWidget::paintEvent(event); From 3d16851ebcf1e7a8445e78b75cd92f198b1386ac Mon Sep 17 00:00:00 2001 From: memurats Date: Fri, 21 Nov 2025 12:35:55 +0100 Subject: [PATCH 31/35] fixed bg --- src/gui/networksettings.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/networksettings.cpp b/src/gui/networksettings.cpp index f733a458ecbf2..a6dd8f4641b5f 100644 --- a/src/gui/networksettings.cpp +++ b/src/gui/networksettings.cpp @@ -30,7 +30,7 @@ NetworkSettings::NetworkSettings(const AccountPtr &account, QWidget *parent) { _ui->setupUi(this); - setAttribute(Qt::WA_OpaquePaintEvent, true); + setAttribute(Qt::WA_OpaquePaintEvent, false); setAutoFillBackground(false); _ui->manualSettings->setVisible(_ui->manualProxyRadioButton->isChecked()); From ffb5596562e4e5fe24815bb088e6ee45a81c523c Mon Sep 17 00:00:00 2001 From: memurats Date: Fri, 21 Nov 2025 13:28:09 +0100 Subject: [PATCH 32/35] btn color --- src/gui/settingsdialog.cpp | 40 ++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index dc6ab9cb802ca..ad70f3f6af425 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -6,6 +6,7 @@ #include "settingsdialog.h" #include "ui_settingsdialog.h" +#include "QtWidgets/qmainwindow.h" #include "folderman.h" #include "theme.h" @@ -37,10 +38,13 @@ namespace { const QString TOOLBAR_CSS() { - return QStringLiteral("QToolBar { background: %1; margin: 0; padding: 0; border: none; border-bottom: 1px solid %2; spacing: 0; } " - "QToolBar QToolButton { background: %1; border: none; border-bottom: 1px solid %2; margin: 0; padding: 5px; } " - "QToolBar QToolBarExtension { padding:0; } " - "QToolBar QToolButton:checked { background: %3; color: %4; }"); + return QStringLiteral( + "QToolBar { background: %1; margin: 0; padding: 0; border: none; spacing: 0; } " + "QToolBar QToolButton { background: %1; border: none; border-radius: 4px; margin: 0; padding: 6px; } " + "QToolBar QToolBarExtension { padding: 0; } " + "QToolBar QToolButton:hover { background: %2; } " + "QToolBar QToolButton:checked { background: %3; }" + ); } const float buttonSizeRatio = 1.618f; // golden ratio @@ -64,7 +68,7 @@ QString shortDisplayNameForSettings(OCC::Account *account, int width) host = fm.elidedText(host, Qt::ElideMiddle, width); user = fm.elidedText(user, Qt::ElideRight, width); } - return QStringLiteral("%1\n%2").arg(user, host); + return QStringLiteral("%1").arg(user); } } @@ -117,6 +121,12 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) auto *generalSettings = new GeneralSettings; _ui->stack->addWidget(generalSettings); + // Adds space between general and network actions + auto *spacer2 = new QWidget(); + spacer2->setFixedWidth(8); + spacer2->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + _toolBar->addWidget(spacer2); + // Connect styleChanged events to our widgets, so they can adapt (Dark-/Light-Mode switching) connect(this, &SettingsDialog::styleChanged, generalSettings, &GeneralSettings::slotStyleChanged); @@ -230,7 +240,7 @@ void SettingsDialog::accountAdded(AccountState *s) const auto accountAction = createColorAwareAction(QLatin1String(":/client/theme/account.svg"), actionText); if (!brandingSingleAccount) { - accountAction->setToolTip(s->account()->displayName()); + accountAction->setToolTip(shortDisplayNameForSettings(s->account().data(), static_cast(height * buttonSizeRatio))); accountAction->setIconText(shortDisplayNameForSettings(s->account().data(), static_cast(height * buttonSizeRatio))); } @@ -289,6 +299,7 @@ void SettingsDialog::slotAccountDisplayNameChanged() QString displayName = account->displayName(); action->setText(displayName); auto height = _toolBar->sizeHint().height(); + action->setToolTip(shortDisplayNameForSettings(account, static_cast(height * buttonSizeRatio))); action->setIconText(shortDisplayNameForSettings(account, static_cast(height * buttonSizeRatio))); } } @@ -329,20 +340,11 @@ void SettingsDialog::accountRemoved(AccountState *s) void SettingsDialog::customizeStyle() { - QString highlightColor(palette().highlight().color().name()); - QString highlightTextColor(palette().highlightedText().color().name()); - QString dark(palette().dark().color().name()); QString background(palette().base().color().name()); - _toolBar->setStyleSheet(TOOLBAR_CSS().arg(background, dark, highlightColor, highlightTextColor)); - - const auto &allActions = _actionGroup->actions(); - for (const auto a : allActions) { - QIcon icon = Theme::createColorAwareIcon(a->property("iconPath").toString(), palette()); - a->setIcon(icon); - auto *btn = qobject_cast(_toolBar->widgetForAction(a)); - if (btn) - btn->setIcon(icon); - } + QString highlightColor(palette().highlight().color().name()); + QString buttonColor(palette().button().color().name()); + + _toolBar->setStyleSheet(TOOLBAR_CSS().arg(background, highlightColor, midlightColor)); } class ToolButtonAction : public QWidgetAction From 3d21f637fdfe7ecb2b875317791f0cc4036152eb Mon Sep 17 00:00:00 2001 From: memurats Date: Fri, 21 Nov 2025 13:49:33 +0100 Subject: [PATCH 33/35] fix error --- src/gui/settingsdialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index ad70f3f6af425..2335a9ef2bafc 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -344,7 +344,7 @@ void SettingsDialog::customizeStyle() QString highlightColor(palette().highlight().color().name()); QString buttonColor(palette().button().color().name()); - _toolBar->setStyleSheet(TOOLBAR_CSS().arg(background, highlightColor, midlightColor)); + _toolBar->setStyleSheet(TOOLBAR_CSS().arg(background, highlightColor, buttonColor)); } class ToolButtonAction : public QWidgetAction From 8154d090bcb8ffc1f3697474f3f7138d1ffce3c9 Mon Sep 17 00:00:00 2001 From: memurats Date: Fri, 21 Nov 2025 14:02:16 +0100 Subject: [PATCH 34/35] revert --- src/gui/settingsdialog.cpp | 40 ++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index 2335a9ef2bafc..dc6ab9cb802ca 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -6,7 +6,6 @@ #include "settingsdialog.h" #include "ui_settingsdialog.h" -#include "QtWidgets/qmainwindow.h" #include "folderman.h" #include "theme.h" @@ -38,13 +37,10 @@ namespace { const QString TOOLBAR_CSS() { - return QStringLiteral( - "QToolBar { background: %1; margin: 0; padding: 0; border: none; spacing: 0; } " - "QToolBar QToolButton { background: %1; border: none; border-radius: 4px; margin: 0; padding: 6px; } " - "QToolBar QToolBarExtension { padding: 0; } " - "QToolBar QToolButton:hover { background: %2; } " - "QToolBar QToolButton:checked { background: %3; }" - ); + return QStringLiteral("QToolBar { background: %1; margin: 0; padding: 0; border: none; border-bottom: 1px solid %2; spacing: 0; } " + "QToolBar QToolButton { background: %1; border: none; border-bottom: 1px solid %2; margin: 0; padding: 5px; } " + "QToolBar QToolBarExtension { padding:0; } " + "QToolBar QToolButton:checked { background: %3; color: %4; }"); } const float buttonSizeRatio = 1.618f; // golden ratio @@ -68,7 +64,7 @@ QString shortDisplayNameForSettings(OCC::Account *account, int width) host = fm.elidedText(host, Qt::ElideMiddle, width); user = fm.elidedText(user, Qt::ElideRight, width); } - return QStringLiteral("%1").arg(user); + return QStringLiteral("%1\n%2").arg(user, host); } } @@ -121,12 +117,6 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) auto *generalSettings = new GeneralSettings; _ui->stack->addWidget(generalSettings); - // Adds space between general and network actions - auto *spacer2 = new QWidget(); - spacer2->setFixedWidth(8); - spacer2->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - _toolBar->addWidget(spacer2); - // Connect styleChanged events to our widgets, so they can adapt (Dark-/Light-Mode switching) connect(this, &SettingsDialog::styleChanged, generalSettings, &GeneralSettings::slotStyleChanged); @@ -240,7 +230,7 @@ void SettingsDialog::accountAdded(AccountState *s) const auto accountAction = createColorAwareAction(QLatin1String(":/client/theme/account.svg"), actionText); if (!brandingSingleAccount) { - accountAction->setToolTip(shortDisplayNameForSettings(s->account().data(), static_cast(height * buttonSizeRatio))); + accountAction->setToolTip(s->account()->displayName()); accountAction->setIconText(shortDisplayNameForSettings(s->account().data(), static_cast(height * buttonSizeRatio))); } @@ -299,7 +289,6 @@ void SettingsDialog::slotAccountDisplayNameChanged() QString displayName = account->displayName(); action->setText(displayName); auto height = _toolBar->sizeHint().height(); - action->setToolTip(shortDisplayNameForSettings(account, static_cast(height * buttonSizeRatio))); action->setIconText(shortDisplayNameForSettings(account, static_cast(height * buttonSizeRatio))); } } @@ -340,11 +329,20 @@ void SettingsDialog::accountRemoved(AccountState *s) void SettingsDialog::customizeStyle() { - QString background(palette().base().color().name()); QString highlightColor(palette().highlight().color().name()); - QString buttonColor(palette().button().color().name()); - - _toolBar->setStyleSheet(TOOLBAR_CSS().arg(background, highlightColor, buttonColor)); + QString highlightTextColor(palette().highlightedText().color().name()); + QString dark(palette().dark().color().name()); + QString background(palette().base().color().name()); + _toolBar->setStyleSheet(TOOLBAR_CSS().arg(background, dark, highlightColor, highlightTextColor)); + + const auto &allActions = _actionGroup->actions(); + for (const auto a : allActions) { + QIcon icon = Theme::createColorAwareIcon(a->property("iconPath").toString(), palette()); + a->setIcon(icon); + auto *btn = qobject_cast(_toolBar->widgetForAction(a)); + if (btn) + btn->setIcon(icon); + } } class ToolButtonAction : public QWidgetAction From 5c3c2d659c28b59af2640086fec9e6e767974582 Mon Sep 17 00:00:00 2001 From: memurats Date: Tue, 25 Nov 2025 14:04:28 +0100 Subject: [PATCH 35/35] change settings box --- src/gui/networksettings.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/networksettings.cpp b/src/gui/networksettings.cpp index a6dd8f4641b5f..b8a2c8743db04 100644 --- a/src/gui/networksettings.cpp +++ b/src/gui/networksettings.cpp @@ -283,18 +283,18 @@ void NetworkSettings::checkAccountLocalhost() void NetworkSettings::paintEvent(QPaintEvent *event) { - const int radius = 4; QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); QRect rect(0, 0, width(), height()); + QPainterPath path; path.addRoundedRect(rect, radius, radius); QPalette palette = this->palette(); - painter.fillRect(rect, palette.color(QPalette::Base)); + painter.fillPath(path, palette.color(QPalette::Base)); QWidget::paintEvent(event);