1
0
mirror of https://github.com/bpozdena/OneDriveGUI.git synced 2026-10-24 04:59:17 +03:00

added spinbox logic to profile settings

This commit is contained in:
Boris Pozdena
2022-01-28 13:55:02 +01:00
parent d1e1bf921b
commit b651ff1c0a
3 changed files with 414 additions and 278 deletions

View File

@@ -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

View File

@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>751</width>
<height>718</height>
<width>614</width>
<height>723</height>
</rect>
</property>
<property name="windowTitle">
@@ -42,7 +42,7 @@
</size>
</property>
<property name="currentIndex">
<number>0</number>
<number>1</number>
</property>
<widget class="QWidget" name="exemptions_tab_2">
<attribute name="title">
@@ -241,10 +241,78 @@
<string>Sync Options</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_8">
<item>
<widget class="QGroupBox" name="groupBox_10">
<property name="title">
<string>Account Rate Limit</string>
</property>
<layout class="QGridLayout" name="gridLayout_11">
<item row="0" column="1">
<widget class="QSpinBox" name="spinBox_rate_limit">
<property name="minimum">
<number>131072</number>
</property>
<property name="maximum">
<number>134217728</number>
</property>
<property name="singleStep">
<number>32768</number>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_rate_limit">
<property name="text">
<string>Rate Limit [B/s]</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="4">
<widget class="QSlider" name="horizontalSlider_rate_limit">
<property name="minimum">
<number>131072</number>
</property>
<property name="maximum">
<number>134217728</number>
</property>
<property name="singleStep">
<number>32768</number>
</property>
<property name="pageStep">
<number>32768</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="0" column="3">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label_rate_limit_mbps">
<property name="text">
<string>(Mbit/s)</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_4">
<property name="title">
<string>Advanced properties</string>
<string>Advanced Properties</string>
</property>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
@@ -261,78 +329,106 @@
</property>
</widget>
</item>
<item row="1" column="0">
<item row="2" column="0">
<widget class="QLabel" name="label_classify_as_big_delete">
<property name="text">
<string>Clasify as big delete</string>
</property>
</widget>
</item>
<item row="1" column="1">
<item row="2" column="1">
<widget class="QSpinBox" name="spinBox_classify_as_big_delete">
<property name="maximum">
<number>1000000</number>
</property>
</widget>
</item>
<item row="2" column="0">
<item row="3" column="0">
<widget class="QLabel" name="label_user_agent">
<property name="text">
<string>User-agent</string>
</property>
</widget>
</item>
<item row="2" column="1">
<item row="3" column="1">
<widget class="QLineEdit" name="lineEdit_user_agent"/>
</item>
<item row="3" column="0">
<item row="4" column="0">
<widget class="QLabel" name="label_azure_ad_endpoint">
<property name="text">
<string>Azure AD endpoint</string>
</property>
</widget>
</item>
<item row="3" column="1">
<item row="4" column="1">
<widget class="QLineEdit" name="lineEdit_azure_ad_endpoint"/>
</item>
<item row="4" column="0">
<item row="5" column="0">
<widget class="QLabel" name="label_azure_tenant_id">
<property name="text">
<string>Azure tenant ID</string>
</property>
</widget>
</item>
<item row="4" column="1">
<item row="5" column="1">
<widget class="QLineEdit" name="lineEdit_azure_tenant_id"/>
</item>
<item row="5" column="0">
<item row="6" column="0">
<widget class="QLabel" name="label_sync_dir_permissions">
<property name="text">
<string>Sync dir permissions</string>
</property>
</widget>
</item>
<item row="6" column="0">
<item row="7" column="0">
<widget class="QLabel" name="label_sync_file_permissions">
<property name="text">
<string>Sync file permissions</string>
</property>
</widget>
</item>
<item row="5" column="1">
<item row="6" column="1">
<widget class="QSpinBox" name="spinBox_sync_dir_permissions">
<property name="maximum">
<number>777</number>
</property>
</widget>
</item>
<item row="6" column="1">
<item row="7" column="1">
<widget class="QSpinBox" name="spinBox_sync_file_permissions">
<property name="maximum">
<number>777</number>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QLabel" name="label_operation_timeout">
<property name="text">
<string>Operation timeout</string>
</property>
</widget>
</item>
<item row="8" column="1">
<widget class="QSpinBox" name="spinBox_operation_timeout">
<property name="maximum">
<number>1000000</number>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_monitor_fullscan_frequency">
<property name="text">
<string>Monitor full-scan frequency</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="spinBox_monitor_fullscan_frequency">
<property name="maximum">
<number>1000000</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
@@ -429,7 +525,114 @@
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_logging">
<attribute name="title">
<string>Logging</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<widget class="QGroupBox" name="groupBox_7">
<property name="title">
<string>Logging</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_9">
<item>
<layout class="QGridLayout" name="gridLayout_8">
<item row="0" column="0" colspan="2">
<widget class="QCheckBox" name="checkBox_enable_logging">
<property name="text">
<string>Enable Logging</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QPushButton" name="pushButton_log_dir">
<property name="text">
<string>Browse</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_log_dir">
<property name="text">
<string>Log location:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="checkBox_debug_https">
<property name="text">
<string>Debug HTTPS</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="spinBox_monitor_log_frequency"/>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="lineEdit_log_dir"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_monitor_log_frequency">
<property name="text">
<string>Monitor log frequency</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_6">
<property name="title">
<string>Notifications</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="label_min_notify_changes">
<property name="text">
<string>Minimum notify changes</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="checkBox_disable_notifications">
<property name="text">
<string>Disable notifications</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="spinBox_min_notify_changes"/>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_5">
<attribute name="title">
<string>Webhooks</string>
</attribute>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox_9">
<property name="title">
<string>Webhook settings</string>
@@ -507,162 +710,10 @@
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QLabel" name="label_operation_timeout">
<property name="text">
<string>Operation timeout</string>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QSpinBox" name="spinBox_operation_timeout">
<property name="maximum">
<number>1000000</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_logging">
<attribute name="title">
<string>Logging</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<widget class="QGroupBox" name="groupBox_7">
<property name="title">
<string>Logging</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_9">
<item>
<layout class="QGridLayout" name="gridLayout_8">
<item row="0" column="0" colspan="2">
<widget class="QCheckBox" name="checkBox_enable_logging">
<property name="text">
<string>Enable Logging</string>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QPushButton" name="pushButton_log_dir">
<property name="text">
<string>Browse</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_log_dir">
<property name="text">
<string>Log location:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="checkBox_debug_https">
<property name="text">
<string>Debug HTTPS</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="spinBox_monitor_log_frequency"/>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="lineEdit_log_dir"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_monitor_log_frequency">
<property name="text">
<string>Monitor log frequency</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_monitor_fullscan_frequency">
<property name="text">
<string>Monitor full-scan frequency</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QSpinBox" name="spinBox_monitor_fullscan_frequency"/>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_6">
<property name="title">
<string>Notifications</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="label_min_notify_changes">
<property name="text">
<string>Minimum notify changes</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="checkBox_disable_notifications">
<property name="text">
<string>Disable notifications</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="spinBox_min_notify_changes"/>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_5">
<attribute name="title">
<string>Rate Limit</string>
</attribute>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_rate_limit">
<property name="text">
<string>Rate Limit [B/s]</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_rate_limit">
<property name="inputMethodHints">
<set>Qt::ImhDigitsOnly</set>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label_rate_limit_mbps">
<property name="text">
<string>(Mbit/s)</string>
</property>
</widget>
</item>
<item row="1" column="1">
<item row="1" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>

View File

@@ -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))