diff --git a/OneDriveGUI/OneDriveGUI.py b/OneDriveGUI/OneDriveGUI.py
index eba5f84..7ad5e3b 100644
--- a/OneDriveGUI/OneDriveGUI.py
+++ b/OneDriveGUI/OneDriveGUI.py
@@ -95,6 +95,7 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
self.temp_profile_config = temp_global_config[self.profile]['onedrive']
self.label_profile_name.setText(self.profile)
+ self.tabWidget.setCurrentIndex(0)
#
# Monitored files tab
@@ -102,8 +103,8 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
self.lineEdit_sync_dir.setText(self.temp_profile_config['sync_dir'].strip('"'))
self.lineEdit_sync_dir.textChanged.connect(self.set_sync_dir)
- self.checkBox_sync_root_files.setChecked(self.get_toggle_state('sync_root_files'))
- self.checkBox_sync_root_files.stateChanged.connect(self.set_check_state)
+ self.checkBox_sync_root_files.setChecked(self.get_check_box_state('sync_root_files'))
+ self.checkBox_sync_root_files.stateChanged.connect(self.set_check_box_state)
@@ -132,82 +133,135 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
self.pushButton_add_skip_dir.clicked.connect(self.lineEdit_skip_dir.clear)
self.pushButton_rm_skip_dir.clicked.connect(self.remove_skip_dir)
- self.checkBox_skip_dir_strict_match.setChecked(self.get_toggle_state('skip_dir_strict_match'))
- self.checkBox_skip_dir_strict_match.stateChanged.connect(self.set_check_state)
+ self.checkBox_skip_dir_strict_match.setChecked(self.get_check_box_state('skip_dir_strict_match'))
+ self.checkBox_skip_dir_strict_match.stateChanged.connect(self.set_check_box_state)
- self.checkBox_check_nosync.setChecked(self.get_toggle_state('check_nosync'))
- self.checkBox_check_nosync.stateChanged.connect(self.set_check_state)
+ self.checkBox_check_nosync.setChecked(self.get_check_box_state('check_nosync'))
+ self.checkBox_check_nosync.stateChanged.connect(self.set_check_box_state)
- self.checkBox_skip_symlinks.setChecked(self.get_toggle_state('skip_symlinks'))
- self.checkBox_skip_symlinks.stateChanged.connect(self.set_check_state)
+ self.checkBox_skip_symlinks.setChecked(self.get_check_box_state('skip_symlinks'))
+ self.checkBox_skip_symlinks.stateChanged.connect(self.set_check_box_state)
- self.checkBox_skip_dotfiles.setChecked(self.get_toggle_state('skip_dotfiles'))
- self.checkBox_skip_dotfiles.stateChanged.connect(self.set_check_state)
+ self.checkBox_skip_dotfiles.setChecked(self.get_check_box_state('skip_dotfiles'))
+ self.checkBox_skip_dotfiles.stateChanged.connect(self.set_check_box_state)
#
# Sync Options tab
#
- self.checkBox_download_only.setChecked(self.get_toggle_state('download_only'))
- self.checkBox_download_only.stateChanged.connect(self.set_check_state)
+ self.spinBox_monitor_interval.setValue(int(self.temp_profile_config['monitor_interval'].strip('"')))
+ self.spinBox_monitor_interval.valueChanged.connect(self.set_spin_box_value)
- self.checkBox_upload_only.setChecked(self.get_toggle_state('upload_only'))
- self.checkBox_upload_only.stateChanged.connect(self.set_check_state)
+ self.spinBox_monitor_fullscan_frequency.setValue(int(self.temp_profile_config['monitor_fullscan_frequency'].strip('"')))
+ self.spinBox_monitor_fullscan_frequency.valueChanged.connect(self.set_spin_box_value)
- self.checkBox_force_http_2.setChecked(self.get_toggle_state('force_http_2'))
- self.checkBox_force_http_2.stateChanged.connect(self.set_check_state)
+ self.spinBox_classify_as_big_delete.setValue(int(self.temp_profile_config['classify_as_big_delete'].strip('"')))
+ self.spinBox_classify_as_big_delete.valueChanged.connect(self.set_spin_box_value)
- self.checkBox_disable_upload_validation.setChecked(self.get_toggle_state('disable_upload_validation'))
- self.checkBox_disable_upload_validation.stateChanged.connect(self.set_check_state)
+ self.spinBox_sync_dir_permissions.setValue(int(self.temp_profile_config['sync_dir_permissions'].strip('"')))
+ self.spinBox_sync_dir_permissions.valueChanged.connect(self.set_spin_box_value)
- self.checkBox_check_nomount.setChecked(self.get_toggle_state('check_nomount'))
- self.checkBox_check_nomount.stateChanged.connect(self.set_check_state)
+ self.spinBox_sync_file_permissions.setValue(int(self.temp_profile_config['sync_file_permissions'].strip('"')))
+ self.spinBox_sync_file_permissions.valueChanged.connect(self.set_spin_box_value)
- self.checkBox_local_first.setChecked(self.get_toggle_state('local_first'))
- self.checkBox_local_first.stateChanged.connect(self.set_check_state)
+ self.spinBox_operation_timeout.setValue(int(self.temp_profile_config['operation_timeout'].strip('"')))
+ self.spinBox_operation_timeout.valueChanged.connect(self.set_spin_box_value)
- self.checkBox_no_remote_delete.setChecked(self.get_toggle_state('no_remote_delete'))
- self.checkBox_no_remote_delete.stateChanged.connect(self.set_check_state)
+
+
- self.checkBox_sync_business_shared_folders.setChecked(self.get_toggle_state('sync_business_shared_folders'))
- self.checkBox_sync_business_shared_folders.stateChanged.connect(self.set_check_state)
+ self.checkBox_download_only.setChecked(self.get_check_box_state('download_only'))
+ self.checkBox_download_only.stateChanged.connect(self.set_check_box_state)
- self.checkBox_dry_run.setChecked(self.get_toggle_state('dry_run'))
- self.checkBox_dry_run.stateChanged.connect(self.set_check_state)
+ self.checkBox_upload_only.setChecked(self.get_check_box_state('upload_only'))
+ self.checkBox_upload_only.stateChanged.connect(self.set_check_box_state)
- self.checkBox_remove_source_files.setChecked(self.get_toggle_state('remove_source_files'))
- self.checkBox_remove_source_files.stateChanged.connect(self.set_check_state)
+ self.checkBox_force_http_2.setChecked(self.get_check_box_state('force_http_2'))
+ self.checkBox_force_http_2.stateChanged.connect(self.set_check_box_state)
+
+ self.checkBox_disable_upload_validation.setChecked(self.get_check_box_state('disable_upload_validation'))
+ self.checkBox_disable_upload_validation.stateChanged.connect(self.set_check_box_state)
+
+ self.checkBox_check_nomount.setChecked(self.get_check_box_state('check_nomount'))
+ self.checkBox_check_nomount.stateChanged.connect(self.set_check_box_state)
+
+ self.checkBox_local_first.setChecked(self.get_check_box_state('local_first'))
+ self.checkBox_local_first.stateChanged.connect(self.set_check_box_state)
+
+ self.checkBox_no_remote_delete.setChecked(self.get_check_box_state('no_remote_delete'))
+ self.checkBox_no_remote_delete.stateChanged.connect(self.set_check_box_state)
+
+ self.checkBox_sync_business_shared_folders.setChecked(self.get_check_box_state('sync_business_shared_folders'))
+ self.checkBox_sync_business_shared_folders.stateChanged.connect(self.set_check_box_state)
+
+ self.checkBox_dry_run.setChecked(self.get_check_box_state('dry_run'))
+ self.checkBox_dry_run.stateChanged.connect(self.set_check_box_state)
+
+ self.checkBox_remove_source_files.setChecked(self.get_check_box_state('remove_source_files'))
+ self.checkBox_remove_source_files.stateChanged.connect(self.set_check_box_state)
- self.checkBox_resync.setChecked(self.get_toggle_state('resync'))
- self.checkBox_resync.stateChanged.connect(self.set_check_state)
+ self.checkBox_resync.setChecked(self.get_check_box_state('resync'))
+ self.checkBox_resync.stateChanged.connect(self.set_check_box_state)
- self.checkBox_bypass_data_preservation.setChecked(self.get_toggle_state('bypass_data_preservation'))
- self.checkBox_bypass_data_preservation.stateChanged.connect(self.set_check_state)
+ self.checkBox_bypass_data_preservation.setChecked(self.get_check_box_state('bypass_data_preservation'))
+ self.checkBox_bypass_data_preservation.stateChanged.connect(self.set_check_box_state)
+
+
+
+ # Rate limit tab
+ self.spinBox_rate_limit.setValue(int(self.temp_profile_config['rate_limit'].strip('"')))
+ self.horizontalSlider_rate_limit.setValue(int(self.temp_profile_config['rate_limit'].strip('"')))
+ self.label_rate_limit_mbps.setText(str(round(self.spinBox_rate_limit.value() * 8 / 1024 / 1024, 2)) + " Mbit/s")
+ self.spinBox_rate_limit.valueChanged.connect(self.set_spin_box_value)
+ self.spinBox_rate_limit.valueChanged.connect(self.horizontalSlider_rate_limit.setValue)
+ self.spinBox_rate_limit.valueChanged.connect(lambda:self.label_rate_limit_mbps.setText(
+ str(round(self.spinBox_rate_limit.value() * 8 / 1024 / 1024, 2)) + " Mbit/s"))
+ self.horizontalSlider_rate_limit.valueChanged.connect(self.spinBox_rate_limit.setValue)
+
+ #
+ # Webhooks tab
+ #
+ self.checkBox_webhook_enabled.setChecked(self.get_check_box_state('webhook_enabled'))
+ self.checkBox_webhook_enabled.stateChanged.connect(self.set_check_box_state)
+
+ self.spinBox_webhook_expiration_interval.setValue(int(self.temp_profile_config['webhook_expiration_interval'].strip('"')))
+ self.spinBox_webhook_expiration_interval.valueChanged.connect(self.set_spin_box_value)
+
+ self.spinBox_webhook_renewal_interval.setValue(int(self.temp_profile_config['webhook_renewal_interval'].strip('"')))
+ self.spinBox_webhook_renewal_interval.valueChanged.connect(self.set_spin_box_value)
+
+ self.spinBox_webhook_listening_port.setValue(int(self.temp_profile_config['webhook_listening_port'].strip('"')))
+ self.spinBox_webhook_listening_port.valueChanged.connect(self.set_spin_box_value)
- self.checkBox_webhook_enabled.setChecked(self.get_toggle_state('webhook_enabled'))
- self.checkBox_webhook_enabled.stateChanged.connect(self.set_check_state)
#
# Logging tab
#
- self.checkBox_enable_logging.setChecked(self.get_toggle_state('enable_logging'))
- self.checkBox_enable_logging.stateChanged.connect(self.set_check_state)
+ self.checkBox_enable_logging.setChecked(self.get_check_box_state('enable_logging'))
+ self.checkBox_enable_logging.stateChanged.connect(self.set_check_box_state)
+
+ self.checkBox_debug_https.setChecked(self.get_check_box_state('debug_https'))
+ self.checkBox_debug_https.stateChanged.connect(self.set_check_box_state)
+
+ self.checkBox_disable_notifications.setChecked(self.get_check_box_state('disable_notifications'))
+ self.checkBox_disable_notifications.stateChanged.connect(self.set_check_box_state)
+
+
+ self.spinBox_monitor_log_frequency.setValue(int(self.temp_profile_config['monitor_log_frequency'].strip('"')))
+ self.spinBox_monitor_log_frequency.valueChanged.connect(self.set_spin_box_value)
+
+ self.spinBox_min_notify_changes.setValue(int(self.temp_profile_config['min_notify_changes'].strip('"')))
+ self.spinBox_min_notify_changes.valueChanged.connect(self.set_spin_box_value)
+
+
+
- self.checkBox_debug_https.setChecked(self.get_toggle_state('debug_https'))
- self.checkBox_debug_https.stateChanged.connect(self.set_check_state)
- self.checkBox_disable_notifications.setChecked(self.get_toggle_state('disable_notifications'))
- self.checkBox_disable_notifications.stateChanged.connect(self.set_check_state)
#
- # Rate limit tab
- #
- self.lineEdit_rate_limit.setText(self.temp_profile_config['rate_limit'].strip('"'))
- self.label_rate_limit_mbps.setText(str(round(int(self.lineEdit_rate_limit.text()) * 8 / 1000 / 1000, 2)) + " Mbit/s")
- self.lineEdit_rate_limit.textChanged.connect(self.set_rate_limit)
-
# Buttons
+ #
self.pushButton_discart.hide()
# TODO: How to discart unsaved changes and refresh the widgets or close window?
# self.pushButton_discart.clicked.connect(self.discart_changes)
@@ -224,21 +278,27 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
# self.checkBox_sync_root_files.stateChanged.connect(lambda: )
- # self.checkBox_sync_root_files.toggled.connect(lambda: self.set_check_state(self.checkBox_sync_root_files))
+ # self.checkBox_sync_root_files.toggled.connect(lambda: self.set_check_box_state(self.checkBox_sync_root_files))
- # self.checkBox_sync_root_files.setChecked(lambda: self.get_toggle_state())
+ # self.checkBox_sync_root_files.setChecked(lambda: self.get_check_box_state())
# self.checkBox_sync_root_files.setChecked(self.str2bool(self.temp_profile_config['sync_root_files'].strip('"')))
-
def str2bool(self, value):
return value.lower() in "true"
- def set_check_state(self, state):
+
+ def set_spin_box_value(self, value):
+ _property = self.sender().objectName()
+ property = re.search(r"spinBox_(.+)", _property).group(1)
+ self.temp_profile_config[f'{property}'] = f'"{value}"'
+
+
+ def set_check_box_state(self, state):
_property = self.sender().objectName()
property = re.search(r"checkBox_(.+)", _property).group(1)
print(property)
@@ -249,7 +309,7 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
print("is unchecked")
self.temp_profile_config[f'{property}'] = '"false"'
- def get_toggle_state(self, property):
+ def get_check_box_state(self, property):
return self.temp_profile_config[f'{property}'].strip('"') in 'true'
@@ -494,7 +554,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# Start OneDrive monitoring
- self.actionStart_Monitor.triggered.connect(lambda: self.start_onedrive_monitor('boris@pozdena.eu'))
+ self.actionStart_Monitor.triggered.connect(lambda: self.start_onedrive_monitor('bpozdena@my-business'))
# Stop OneDrive monitoring
diff --git a/OneDriveGUI/ui/profile_settings_page.ui b/OneDriveGUI/ui/profile_settings_page.ui
index 96fcf23..099d876 100644
--- a/OneDriveGUI/ui/profile_settings_page.ui
+++ b/OneDriveGUI/ui/profile_settings_page.ui
@@ -6,8 +6,8 @@
0
0
- 751
- 718
+ 614
+ 723
@@ -42,7 +42,7 @@
- 0
+ 1
@@ -241,10 +241,78 @@
Sync Options
+ -
+
+
+ Account Rate Limit
+
+
+
-
+
+
+ 131072
+
+
+ 134217728
+
+
+ 32768
+
+
+
+ -
+
+
+ Rate Limit [B/s]
+
+
+
+ -
+
+
+ 131072
+
+
+ 134217728
+
+
+ 32768
+
+
+ 32768
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ (Mbit/s)
+
+
+
+
+
+
-
- Advanced properties
+ Advanced Properties
-
@@ -261,78 +329,106 @@
- -
+
-
Clasify as big delete
- -
+
-
1000000
- -
+
-
User-agent
- -
+
-
- -
+
-
Azure AD endpoint
- -
+
-
- -
+
-
Azure tenant ID
- -
+
-
- -
+
-
Sync dir permissions
- -
+
-
Sync file permissions
- -
+
-
777
- -
+
-
777
+ -
+
+
+ Operation timeout
+
+
+
+ -
+
+
+ 1000000
+
+
+
+ -
+
+
+ Monitor full-scan frequency
+
+
+
+ -
+
+
+ 1000000
+
+
+
@@ -429,7 +525,114 @@
+
+
+
+
+ Logging
+
+
-
+
+
+ Logging
+
+
+
-
+
+
-
+
+
+ Enable Logging
+
+
+
+ -
+
+
+ Browse
+
+
+
+ -
+
+
+ Log location:
+
+
+
+ -
+
+
+ Debug HTTPS
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ Monitor log frequency
+
+
+
+
+
+
+
+
+ -
+
+
+ Notifications
+
+
+
-
+
+
+ Minimum notify changes
+
+
+
+ -
+
+
+ Disable notifications
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+
+
+
+ Webhooks
+
+
+ -
Webhook settings
@@ -507,162 +710,10 @@
- -
-
-
- Operation timeout
-
-
-
- -
-
-
- 1000000
-
-
-
-
-
-
-
- Logging
-
-
- -
-
-
- Logging
-
-
-
-
-
-
-
-
-
- Enable Logging
-
-
-
- -
-
-
- Browse
-
-
-
- -
-
-
- Log location:
-
-
-
- -
-
-
- Debug HTTPS
-
-
-
- -
-
-
- -
-
-
- -
-
-
- Monitor log frequency
-
-
-
- -
-
-
- Monitor full-scan frequency
-
-
-
- -
-
-
-
-
-
-
-
- -
-
-
- Notifications
-
-
-
-
-
-
- Minimum notify changes
-
-
-
- -
-
-
- Disable notifications
-
-
-
- -
-
-
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
-
-
-
-
- Rate Limit
-
-
- -
-
-
- Rate Limit [B/s]
-
-
-
- -
-
-
- Qt::ImhDigitsOnly
-
-
-
- -
-
-
- (Mbit/s)
-
-
-
- -
+
-
Qt::Vertical
diff --git a/OneDriveGUI/ui/ui_profile_settings_page.py b/OneDriveGUI/ui/ui_profile_settings_page.py
index 74d7f01..d29cb74 100644
--- a/OneDriveGUI/ui/ui_profile_settings_page.py
+++ b/OneDriveGUI/ui/ui_profile_settings_page.py
@@ -18,8 +18,8 @@ from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
from PySide6.QtWidgets import (QApplication, QCheckBox, QFormLayout, QGridLayout,
QGroupBox, QHBoxLayout, QLabel, QLineEdit,
QListWidget, QListWidgetItem, QPushButton, QSizePolicy,
- QSpacerItem, QSpinBox, QTabWidget, QVBoxLayout,
- QWidget)
+ QSlider, QSpacerItem, QSpinBox, QTabWidget,
+ QVBoxLayout, QWidget)
class Ui_profile_settings(object):
def setupUi(self, profile_settings):
@@ -222,65 +222,87 @@ class Ui_profile_settings(object):
self.label_classify_as_big_delete = QLabel(self.groupBox_4)
self.label_classify_as_big_delete.setObjectName(u"label_classify_as_big_delete")
- self.formLayout.setWidget(1, QFormLayout.LabelRole, self.label_classify_as_big_delete)
+ self.formLayout.setWidget(2, QFormLayout.LabelRole, self.label_classify_as_big_delete)
self.spinBox_classify_as_big_delete = QSpinBox(self.groupBox_4)
self.spinBox_classify_as_big_delete.setObjectName(u"spinBox_classify_as_big_delete")
self.spinBox_classify_as_big_delete.setMaximum(1000000)
- self.formLayout.setWidget(1, QFormLayout.FieldRole, self.spinBox_classify_as_big_delete)
+ self.formLayout.setWidget(2, QFormLayout.FieldRole, self.spinBox_classify_as_big_delete)
self.label_user_agent = QLabel(self.groupBox_4)
self.label_user_agent.setObjectName(u"label_user_agent")
- self.formLayout.setWidget(2, QFormLayout.LabelRole, self.label_user_agent)
+ self.formLayout.setWidget(3, QFormLayout.LabelRole, self.label_user_agent)
self.lineEdit_user_agent = QLineEdit(self.groupBox_4)
self.lineEdit_user_agent.setObjectName(u"lineEdit_user_agent")
- self.formLayout.setWidget(2, QFormLayout.FieldRole, self.lineEdit_user_agent)
+ self.formLayout.setWidget(3, QFormLayout.FieldRole, self.lineEdit_user_agent)
self.label_azure_ad_endpoint = QLabel(self.groupBox_4)
self.label_azure_ad_endpoint.setObjectName(u"label_azure_ad_endpoint")
- self.formLayout.setWidget(3, QFormLayout.LabelRole, self.label_azure_ad_endpoint)
+ self.formLayout.setWidget(4, QFormLayout.LabelRole, self.label_azure_ad_endpoint)
self.lineEdit_azure_ad_endpoint = QLineEdit(self.groupBox_4)
self.lineEdit_azure_ad_endpoint.setObjectName(u"lineEdit_azure_ad_endpoint")
- self.formLayout.setWidget(3, QFormLayout.FieldRole, self.lineEdit_azure_ad_endpoint)
+ self.formLayout.setWidget(4, QFormLayout.FieldRole, self.lineEdit_azure_ad_endpoint)
self.label_azure_tenant_id = QLabel(self.groupBox_4)
self.label_azure_tenant_id.setObjectName(u"label_azure_tenant_id")
- self.formLayout.setWidget(4, QFormLayout.LabelRole, self.label_azure_tenant_id)
+ self.formLayout.setWidget(5, QFormLayout.LabelRole, self.label_azure_tenant_id)
self.lineEdit_azure_tenant_id = QLineEdit(self.groupBox_4)
self.lineEdit_azure_tenant_id.setObjectName(u"lineEdit_azure_tenant_id")
- self.formLayout.setWidget(4, QFormLayout.FieldRole, self.lineEdit_azure_tenant_id)
+ self.formLayout.setWidget(5, QFormLayout.FieldRole, self.lineEdit_azure_tenant_id)
self.label_sync_dir_permissions = QLabel(self.groupBox_4)
self.label_sync_dir_permissions.setObjectName(u"label_sync_dir_permissions")
- self.formLayout.setWidget(5, QFormLayout.LabelRole, self.label_sync_dir_permissions)
+ self.formLayout.setWidget(6, QFormLayout.LabelRole, self.label_sync_dir_permissions)
self.label_sync_file_permissions = QLabel(self.groupBox_4)
self.label_sync_file_permissions.setObjectName(u"label_sync_file_permissions")
- self.formLayout.setWidget(6, QFormLayout.LabelRole, self.label_sync_file_permissions)
+ self.formLayout.setWidget(7, QFormLayout.LabelRole, self.label_sync_file_permissions)
self.spinBox_sync_dir_permissions = QSpinBox(self.groupBox_4)
self.spinBox_sync_dir_permissions.setObjectName(u"spinBox_sync_dir_permissions")
self.spinBox_sync_dir_permissions.setMaximum(777)
- self.formLayout.setWidget(5, QFormLayout.FieldRole, self.spinBox_sync_dir_permissions)
+ self.formLayout.setWidget(6, QFormLayout.FieldRole, self.spinBox_sync_dir_permissions)
self.spinBox_sync_file_permissions = QSpinBox(self.groupBox_4)
self.spinBox_sync_file_permissions.setObjectName(u"spinBox_sync_file_permissions")
self.spinBox_sync_file_permissions.setMaximum(777)
- self.formLayout.setWidget(6, QFormLayout.FieldRole, self.spinBox_sync_file_permissions)
+ self.formLayout.setWidget(7, QFormLayout.FieldRole, self.spinBox_sync_file_permissions)
+
+ self.label_operation_timeout = QLabel(self.groupBox_4)
+ self.label_operation_timeout.setObjectName(u"label_operation_timeout")
+
+ self.formLayout.setWidget(8, QFormLayout.LabelRole, self.label_operation_timeout)
+
+ self.spinBox_operation_timeout = QSpinBox(self.groupBox_4)
+ self.spinBox_operation_timeout.setObjectName(u"spinBox_operation_timeout")
+ self.spinBox_operation_timeout.setMaximum(1000000)
+
+ self.formLayout.setWidget(8, QFormLayout.FieldRole, self.spinBox_operation_timeout)
+
+ self.label_monitor_fullscan_frequency = QLabel(self.groupBox_4)
+ self.label_monitor_fullscan_frequency.setObjectName(u"label_monitor_fullscan_frequency")
+
+ self.formLayout.setWidget(1, QFormLayout.LabelRole, self.label_monitor_fullscan_frequency)
+
+ self.spinBox_monitor_fullscan_frequency = QSpinBox(self.groupBox_4)
+ self.spinBox_monitor_fullscan_frequency.setObjectName(u"spinBox_monitor_fullscan_frequency")
+ self.spinBox_monitor_fullscan_frequency.setMaximum(1000000)
+
+ self.formLayout.setWidget(1, QFormLayout.FieldRole, self.spinBox_monitor_fullscan_frequency)
self.verticalLayout_8.addWidget(self.groupBox_4)
@@ -415,17 +437,6 @@ class Ui_profile_settings(object):
self.gridLayout_10.addWidget(self.spinBox_webhook_renewal_interval, 2, 3, 1, 1)
- self.label_operation_timeout = QLabel(self.groupBox_9)
- self.label_operation_timeout.setObjectName(u"label_operation_timeout")
-
- self.gridLayout_10.addWidget(self.label_operation_timeout, 3, 2, 1, 1)
-
- self.spinBox_operation_timeout = QSpinBox(self.groupBox_9)
- self.spinBox_operation_timeout.setObjectName(u"spinBox_operation_timeout")
- self.spinBox_operation_timeout.setMaximum(1000000)
-
- self.gridLayout_10.addWidget(self.spinBox_operation_timeout, 3, 3, 1, 1)
-
self.verticalLayout_8.addWidget(self.groupBox_9)
@@ -448,12 +459,12 @@ class Ui_profile_settings(object):
self.pushButton_log_dir = QPushButton(self.groupBox_7)
self.pushButton_log_dir.setObjectName(u"pushButton_log_dir")
- self.gridLayout_8.addWidget(self.pushButton_log_dir, 4, 2, 1, 1)
+ self.gridLayout_8.addWidget(self.pushButton_log_dir, 3, 2, 1, 1)
self.label_log_dir = QLabel(self.groupBox_7)
self.label_log_dir.setObjectName(u"label_log_dir")
- self.gridLayout_8.addWidget(self.label_log_dir, 4, 0, 1, 1)
+ self.gridLayout_8.addWidget(self.label_log_dir, 3, 0, 1, 1)
self.checkBox_debug_https = QCheckBox(self.groupBox_7)
self.checkBox_debug_https.setObjectName(u"checkBox_debug_https")
@@ -468,23 +479,13 @@ class Ui_profile_settings(object):
self.lineEdit_log_dir = QLineEdit(self.groupBox_7)
self.lineEdit_log_dir.setObjectName(u"lineEdit_log_dir")
- self.gridLayout_8.addWidget(self.lineEdit_log_dir, 4, 1, 1, 1)
+ self.gridLayout_8.addWidget(self.lineEdit_log_dir, 3, 1, 1, 1)
self.label_monitor_log_frequency = QLabel(self.groupBox_7)
self.label_monitor_log_frequency.setObjectName(u"label_monitor_log_frequency")
self.gridLayout_8.addWidget(self.label_monitor_log_frequency, 2, 0, 1, 1)
- self.label_monitor_fullscan_frequency = QLabel(self.groupBox_7)
- self.label_monitor_fullscan_frequency.setObjectName(u"label_monitor_fullscan_frequency")
-
- self.gridLayout_8.addWidget(self.label_monitor_fullscan_frequency, 3, 0, 1, 1)
-
- self.spinBox_monitor_fullscan_frequency = QSpinBox(self.groupBox_7)
- self.spinBox_monitor_fullscan_frequency.setObjectName(u"spinBox_monitor_fullscan_frequency")
-
- self.gridLayout_8.addWidget(self.spinBox_monitor_fullscan_frequency, 3, 1, 1, 1)
-
self.verticalLayout_9.addLayout(self.gridLayout_8)
@@ -522,25 +523,48 @@ class Ui_profile_settings(object):
self.tab_5.setObjectName(u"tab_5")
self.gridLayout = QGridLayout(self.tab_5)
self.gridLayout.setObjectName(u"gridLayout")
- self.label_rate_limit = QLabel(self.tab_5)
- self.label_rate_limit.setObjectName(u"label_rate_limit")
-
- self.gridLayout.addWidget(self.label_rate_limit, 0, 0, 1, 1)
-
- self.lineEdit_rate_limit = QLineEdit(self.tab_5)
- self.lineEdit_rate_limit.setObjectName(u"lineEdit_rate_limit")
- self.lineEdit_rate_limit.setInputMethodHints(Qt.ImhDigitsOnly)
-
- self.gridLayout.addWidget(self.lineEdit_rate_limit, 0, 1, 1, 1)
-
self.label_rate_limit_mbps = QLabel(self.tab_5)
self.label_rate_limit_mbps.setObjectName(u"label_rate_limit_mbps")
- self.gridLayout.addWidget(self.label_rate_limit_mbps, 0, 2, 1, 1)
+ self.gridLayout.addWidget(self.label_rate_limit_mbps, 1, 1, 1, 1)
self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
- self.gridLayout.addItem(self.verticalSpacer, 1, 1, 1, 1)
+ self.gridLayout.addItem(self.verticalSpacer, 2, 1, 1, 1)
+
+ self.groupBox_10 = QGroupBox(self.tab_5)
+ self.groupBox_10.setObjectName(u"groupBox_10")
+ self.gridLayout_11 = QGridLayout(self.groupBox_10)
+ self.gridLayout_11.setObjectName(u"gridLayout_11")
+ self.spinBox_rate_limit = QSpinBox(self.groupBox_10)
+ self.spinBox_rate_limit.setObjectName(u"spinBox_rate_limit")
+ self.spinBox_rate_limit.setMinimum(131072)
+ self.spinBox_rate_limit.setMaximum(134217728)
+ self.spinBox_rate_limit.setSingleStep(32768)
+
+ self.gridLayout_11.addWidget(self.spinBox_rate_limit, 0, 1, 1, 1)
+
+ self.label_rate_limit = QLabel(self.groupBox_10)
+ self.label_rate_limit.setObjectName(u"label_rate_limit")
+
+ self.gridLayout_11.addWidget(self.label_rate_limit, 0, 0, 1, 1)
+
+ self.horizontalSlider_rate_limit = QSlider(self.groupBox_10)
+ self.horizontalSlider_rate_limit.setObjectName(u"horizontalSlider_rate_limit")
+ self.horizontalSlider_rate_limit.setMinimum(131072)
+ self.horizontalSlider_rate_limit.setMaximum(134217728)
+ self.horizontalSlider_rate_limit.setSingleStep(32768)
+ self.horizontalSlider_rate_limit.setPageStep(32768)
+ self.horizontalSlider_rate_limit.setOrientation(Qt.Horizontal)
+
+ self.gridLayout_11.addWidget(self.horizontalSlider_rate_limit, 1, 0, 1, 3)
+
+ self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+
+ self.gridLayout_11.addItem(self.horizontalSpacer, 0, 2, 1, 1)
+
+
+ self.gridLayout.addWidget(self.groupBox_10, 0, 0, 1, 2)
self.tabWidget.addTab(self.tab_5, "")
self.tab_6 = QWidget()
@@ -565,7 +589,7 @@ class Ui_profile_settings(object):
self.retranslateUi(profile_settings)
- self.tabWidget.setCurrentIndex(0)
+ self.tabWidget.setCurrentIndex(4)
QMetaObject.connectSlotsByName(profile_settings)
@@ -599,6 +623,8 @@ class Ui_profile_settings(object):
self.label_azure_tenant_id.setText(QCoreApplication.translate("profile_settings", u"Azure tenant ID", None))
self.label_sync_dir_permissions.setText(QCoreApplication.translate("profile_settings", u"Sync dir permissions", None))
self.label_sync_file_permissions.setText(QCoreApplication.translate("profile_settings", u"Sync file permissions", None))
+ self.label_operation_timeout.setText(QCoreApplication.translate("profile_settings", u"Operation timeout", None))
+ self.label_monitor_fullscan_frequency.setText(QCoreApplication.translate("profile_settings", u"Monitor full-scan frequency", None))
self.groupBox_5.setTitle(QCoreApplication.translate("profile_settings", u"Advanced options", None))
self.checkBox_force_http_2.setText(QCoreApplication.translate("profile_settings", u"Force HTTP2", None))
self.checkBox_check_nomount.setText(QCoreApplication.translate("profile_settings", u"Check for .nomount", None))
@@ -619,7 +645,6 @@ class Ui_profile_settings(object):
self.label_webhook_expiration_interval.setText(QCoreApplication.translate("profile_settings", u"Expiration interval", None))
self.label_webhook_listening_host.setText(QCoreApplication.translate("profile_settings", u"Listening host", None))
self.label_webhook_renewal_interval.setText(QCoreApplication.translate("profile_settings", u"Renewal interval", None))
- self.label_operation_timeout.setText(QCoreApplication.translate("profile_settings", u"Operation timeout", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), QCoreApplication.translate("profile_settings", u"Sync Options", None))
self.groupBox_7.setTitle(QCoreApplication.translate("profile_settings", u"Logging", None))
self.checkBox_enable_logging.setText(QCoreApplication.translate("profile_settings", u"Enable Logging", None))
@@ -627,13 +652,13 @@ class Ui_profile_settings(object):
self.label_log_dir.setText(QCoreApplication.translate("profile_settings", u"Log location:", None))
self.checkBox_debug_https.setText(QCoreApplication.translate("profile_settings", u"Debug HTTPS", None))
self.label_monitor_log_frequency.setText(QCoreApplication.translate("profile_settings", u"Monitor log frequency", None))
- self.label_monitor_fullscan_frequency.setText(QCoreApplication.translate("profile_settings", u"Monitor full-scan frequency", None))
self.groupBox_6.setTitle(QCoreApplication.translate("profile_settings", u"Notifications", None))
self.label_min_notify_changes.setText(QCoreApplication.translate("profile_settings", u"Minimum notify changes", None))
self.checkBox_disable_notifications.setText(QCoreApplication.translate("profile_settings", u"Disable notifications", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_logging), QCoreApplication.translate("profile_settings", u"Logging", None))
- self.label_rate_limit.setText(QCoreApplication.translate("profile_settings", u"Rate Limit [B/s]", None))
self.label_rate_limit_mbps.setText(QCoreApplication.translate("profile_settings", u"(Mbit/s)", None))
+ self.groupBox_10.setTitle(QCoreApplication.translate("profile_settings", u"Rate limit", None))
+ self.label_rate_limit.setText(QCoreApplication.translate("profile_settings", u"Rate Limit [B/s]", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), QCoreApplication.translate("profile_settings", u"Rate Limit", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_6), QCoreApplication.translate("profile_settings", u"GUI Behaviour", None))
self.pushButton_save.setText(QCoreApplication.translate("profile_settings", u"Save", None))