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

Add GUI for recycle bin #233

This commit is contained in:
Boris Pozdena
2025-06-09 15:04:16 +02:00
parent 1cb7274af9
commit 9f658ff490
6 changed files with 309 additions and 187 deletions

View File

@@ -92,8 +92,7 @@ class ProfileSettingsWindow(QWidget, Ui_profile_settings_window):
close_question = QMessageBox.question(
self,
"Discard changes?",
f"You have unsaved changes in profile(s) <b>{', '.join(self.unsaved_profiles)}</b>."
"<br><br> Discard changes and close Profiles window?",
f"You have unsaved changes in profile(s) <b>{', '.join(self.unsaved_profiles)}</b>.<br><br> Discard changes and close Profiles window?",
buttons=QMessageBox.Yes | QMessageBox.No,
defaultButton=QMessageBox.No,
)
@@ -181,9 +180,7 @@ class ProfileSettingsWindow(QWidget, Ui_profile_settings_window):
old_name = selected_item.text()
new_name, ok = QInputDialog.getText(
self, "Rename Profile", f"Enter new name for profile '{old_name}':", text=old_name
)
new_name, ok = QInputDialog.getText(self, "Rename Profile", f"Enter new name for profile '{old_name}':", text=old_name)
if ok and new_name:
new_name = new_name.strip()
@@ -407,11 +404,7 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
# Rate limit
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 / 1000 / 1000, 2)) + " Mbit/s"
)
)
self.spinBox_rate_limit.valueChanged.connect(lambda: self.label_rate_limit_mbps.setText(str(round(self.spinBox_rate_limit.value() * 8 / 1000 / 1000, 2)) + " Mbit/s"))
self.horizontalSlider_rate_limit.valueChanged.connect(self.spinBox_rate_limit.setValue)
# Webhooks tab
@@ -438,6 +431,12 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
self.pushButton_logout.clicked.connect(self.logout)
self.checkBox_auto_sync.stateChanged.connect(self.set_check_box_state_profile)
## Recycle Bin group box
self.checkBox_use_recycle_bin.stateChanged.connect(self.set_check_box_state)
self.checkBox_use_recycle_bin.stateChanged.connect(self.validate_checkbox_input)
self.lineEdit_recycle_bin_path.textChanged.connect(self.set_recycle_bin_path)
self.pushButton_recycle_bin_path_browse.clicked.connect(self.get_recycle_bin_path)
def configure_profile_settings_page(self):
"""Sets all widgets values with values from profile config files"""
@@ -467,26 +466,14 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
# Sync Options tab
self.checkBox_force_http_11.setChecked(self.get_check_box_state("force_http_11"))
self.spinBox_monitor_interval.setValue(int(self.temp_profile_config["onedrive"]["monitor_interval"].strip('"')))
self.spinBox_monitor_fullscan_frequency.setValue(
int(self.temp_profile_config["onedrive"]["monitor_fullscan_frequency"].strip('"'))
)
self.spinBox_classify_as_big_delete.setValue(
int(self.temp_profile_config["onedrive"]["classify_as_big_delete"].strip('"'))
)
self.spinBox_sync_dir_permissions.setValue(
int(self.temp_profile_config["onedrive"]["sync_dir_permissions"].strip('"'))
)
self.spinBox_sync_file_permissions.setValue(
int(self.temp_profile_config["onedrive"]["sync_file_permissions"].strip('"'))
)
self.spinBox_operation_timeout.setValue(
int(self.temp_profile_config["onedrive"]["operation_timeout"].strip('"'))
)
self.spinBox_monitor_fullscan_frequency.setValue(int(self.temp_profile_config["onedrive"]["monitor_fullscan_frequency"].strip('"')))
self.spinBox_classify_as_big_delete.setValue(int(self.temp_profile_config["onedrive"]["classify_as_big_delete"].strip('"')))
self.spinBox_sync_dir_permissions.setValue(int(self.temp_profile_config["onedrive"]["sync_dir_permissions"].strip('"')))
self.spinBox_sync_file_permissions.setValue(int(self.temp_profile_config["onedrive"]["sync_file_permissions"].strip('"')))
self.spinBox_operation_timeout.setValue(int(self.temp_profile_config["onedrive"]["operation_timeout"].strip('"')))
self.spinBox_connect_timeout.setValue(int(self.temp_profile_config["onedrive"]["connect_timeout"].strip('"')))
self.spinBox_data_timeout.setValue(int(self.temp_profile_config["onedrive"]["data_timeout"].strip('"')))
self.spinBox_ip_protocol_version.setValue(
int(self.temp_profile_config["onedrive"]["ip_protocol_version"].strip('"'))
)
self.spinBox_ip_protocol_version.setValue(int(self.temp_profile_config["onedrive"]["ip_protocol_version"].strip('"')))
self.spinBox_threads.setValue(int(self.temp_profile_config["onedrive"]["threads"].strip('"')))
self.checkBox_download_only.setChecked(self.get_check_box_state("download_only"))
self.checkBox_download_only.setDisabled(self.get_check_box_state("upload_only"))
@@ -515,23 +502,15 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
# Webhooks tab
self.checkBox_webhook_enabled.setChecked(self.get_check_box_state("webhook_enabled"))
self.spinBox_webhook_expiration_interval.setValue(
int(self.temp_profile_config["onedrive"]["webhook_expiration_interval"].strip('"'))
)
self.spinBox_webhook_expiration_interval.setValue(int(self.temp_profile_config["onedrive"]["webhook_expiration_interval"].strip('"')))
self.spinBox_webhook_expiration_interval.setEnabled(self.checkBox_webhook_enabled.isChecked())
self.spinBox_webhook_renewal_interval.setValue(
int(self.temp_profile_config["onedrive"]["webhook_renewal_interval"].strip('"'))
)
self.spinBox_webhook_renewal_interval.setValue(int(self.temp_profile_config["onedrive"]["webhook_renewal_interval"].strip('"')))
self.spinBox_webhook_renewal_interval.setEnabled(self.checkBox_webhook_enabled.isChecked())
self.spinBox_webhook_listening_port.setValue(
int(self.temp_profile_config["onedrive"]["webhook_listening_port"].strip('"'))
)
self.spinBox_webhook_listening_port.setValue(int(self.temp_profile_config["onedrive"]["webhook_listening_port"].strip('"')))
self.spinBox_webhook_listening_port.setEnabled(self.checkBox_webhook_enabled.isChecked())
self.lineEdit_webhook_public_url.setText(self.temp_profile_config["onedrive"]["webhook_public_url"].strip('"'))
self.lineEdit_webhook_public_url.setEnabled(self.checkBox_webhook_enabled.isChecked())
self.lineEdit_webhook_listening_host.setText(
self.temp_profile_config["onedrive"]["webhook_listening_host"].strip('"')
)
self.lineEdit_webhook_listening_host.setText(self.temp_profile_config["onedrive"]["webhook_listening_host"].strip('"'))
self.lineEdit_webhook_listening_host.setEnabled(self.checkBox_webhook_enabled.isChecked())
# Logging tab
@@ -540,9 +519,7 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
self.lineEdit_log_dir.setEnabled(self.checkBox_enable_logging.isChecked())
self.pushButton_log_dir_browse.setEnabled(self.checkBox_enable_logging.isChecked())
self.checkBox_debug_https.setChecked(self.get_check_box_state("debug_https"))
self.spinBox_monitor_log_frequency.setValue(
int(self.temp_profile_config["onedrive"]["monitor_log_frequency"].strip('"'))
)
self.spinBox_monitor_log_frequency.setValue(int(self.temp_profile_config["onedrive"]["monitor_log_frequency"].strip('"')))
self.spinBox_monitor_log_frequency.setEnabled(self.checkBox_enable_logging.isChecked())
self.checkBox_disable_notifications.setChecked(self.get_check_box_state("disable_notifications"))
@@ -555,6 +532,13 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
# Sync List tab
self.textEdit_sync_list.setText(self.read_sync_list())
## Recycle Bin group box
self.checkBox_use_recycle_bin.setChecked(self.get_check_box_state("use_recycle_bin"))
self.lineEdit_recycle_bin_path.setText(self.temp_profile_config["onedrive"]["recycle_bin_path"].strip('"'))
self.lineEdit_recycle_bin_path.setEnabled(self.checkBox_use_recycle_bin.isChecked())
self.label_recycle_bin_path.setEnabled(self.checkBox_use_recycle_bin.isChecked())
self.pushButton_recycle_bin_path_browse.setEnabled(self.checkBox_use_recycle_bin.isChecked())
def read_sync_list(self):
self.sync_list_file = re.search(r"(.+)/.+$", self.config_file).group(1) + "/sync_list"
@@ -615,6 +599,16 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
self.lineEdit_webhook_public_url.setEnabled(False)
self.lineEdit_webhook_listening_host.setEnabled(False)
if self.sender().objectName() == "checkBox_use_recycle_bin":
if self.checkBox_use_recycle_bin.isChecked():
self.lineEdit_recycle_bin_path.setEnabled(True)
self.label_recycle_bin_path.setEnabled(True)
self.pushButton_recycle_bin_path_browse.setEnabled(True)
else:
self.lineEdit_recycle_bin_path.setEnabled(False)
self.label_recycle_bin_path.setEnabled(False)
self.pushButton_recycle_bin_path_browse.setEnabled(False)
def str2bool(self, value):
return value.lower() in "true"
@@ -625,16 +619,12 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
main_window.main_window_instance.profile_status_pages[self.profile].stop_monitor()
if self.profile in workers:
workers[self.profile].stop_worker()
main_window.main_window_instance.profile_status_pages[self.profile].label_onedrive_status.setText(
"OneDrive sync has been stopped"
)
main_window.main_window_instance.profile_status_pages[self.profile].label_onedrive_status.setText("OneDrive sync has been stopped")
logging.info(f"OneDrive sync for profile {self.profile} has been stopped.")
else:
logging.info(f"OneDrive for profile {self.profile} is not running.")
main_window.main_window_instance.profile_status_pages[self.profile].label_onedrive_status.setText(
"You have been logged out"
)
main_window.main_window_instance.profile_status_pages[self.profile].label_onedrive_status.setText("You have been logged out")
def get_sync_dir_name(self):
self.file_dialog = QFileDialog.getExistingDirectory(dir=os.path.expanduser("~/"))
@@ -650,6 +640,13 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
logging.info(log_dir)
self.lineEdit_log_dir.setText(log_dir)
def get_recycle_bin_path(self):
self.file_dialog = QFileDialog.getExistingDirectory(dir=os.path.expanduser("~/"))
recycle_bin_path = self.file_dialog
logging.info(recycle_bin_path)
self.lineEdit_recycle_bin_path.setText(recycle_bin_path)
def set_line_edit_value(self, value):
_property = self.sender().objectName()
property = re.search(r"lineEdit_(.+)", _property).group(1)
@@ -711,9 +708,7 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
def set_rate_limit(self):
self.temp_profile_config["onedrive"]["rate_limit"] = f'"{self.lineEdit_rate_limit.text()}"'
self.label_rate_limit_mbps.setText(
str(round(int(self.lineEdit_rate_limit.text()) * 8 / 1000 / 1000, 2)) + " Mbit/s"
)
self.label_rate_limit_mbps.setText(str(round(int(self.lineEdit_rate_limit.text()) * 8 / 1000 / 1000, 2)) + " Mbit/s")
def set_sync_dir(self):
self.temp_profile_config["onedrive"]["sync_dir"] = f'"{self.lineEdit_sync_dir.text()}"'
@@ -721,6 +716,10 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
def set_log_dir(self):
self.temp_profile_config["onedrive"]["log_dir"] = f'"{self.lineEdit_log_dir.text()}"'
def set_recycle_bin_path(self):
self.temp_profile_config["onedrive"]["recycle_bin_path"] = f'"{self.lineEdit_recycle_bin_path.text()}"'
logging.info(f"[GUI] [{self.profile}] Recycle bin path set to: {self.temp_profile_config['onedrive']['recycle_bin_path']}")
def add_item_to_qlist(self, source_widget, destination_widget, list):
if source_widget.text() == "":
logging.info("Ignoring empty value.")

View File

@@ -48,4 +48,6 @@ data_timeout = "240"
display_running_config = "false"
ip_protocol_version = "1"
threads = "8"
use_recycle_bin = "false"
recycle_bin_path = ""

View File

@@ -1,65 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ExternalLoginWindow</class>
<widget class="QWidget" name="ExternalLoginWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>783</width>
<height>321</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QVBoxLayout" name="layout_external_login">
<item>
<widget class="QLabel" name="label_1">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot; font-weight:700; text-decoration: underline;&quot;&gt;OneDrive login has been requested&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You will be asked to open a specific URL by using your web browser where you will have to login into your Microsoft Account and give &lt;br/&gt;OneDrive client the permission to access your files. &lt;/p&gt;&lt;p&gt;After giving permission to OneDrive client, you will be redirected to a blank page. Copy the URI of the blank page into the bellow field.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</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>
<item>
<widget class="QLabel" name="label_2">
<property name="styleSheet">
<string notr="true"/>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;1)Login to OneDrive in your browser by &lt;a href=&quot;https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=d50ca740-c83f-4d1b-b616-12c519384f0c&amp;amp;scope=Files.ReadWrite%20Files.ReadWrite.all%20Sites.Read.All%20Sites.ReadWrite.All%20offline_access&amp;amp;response_type=code&amp;amp;prompt=login&amp;amp;redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#5e81ac;&quot;&gt;clicking this link.&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2)Copy the response URI from your browser's address bar to the bellow field. &lt;/p&gt;&lt;p&gt;3)Press Save.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_response_url"/>
</item>
<item>
<widget class="QPushButton" name="pushButton_login">
<property name="text">
<string>Login</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
<class>ExternalLoginWindow</class>
<widget class="QWidget" name="ExternalLoginWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>783</width>
<height>321</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QVBoxLayout" name="layout_external_login">
<item>
<widget class="QLabel" name="label_1">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p
align=&quot;center&quot;&gt;&lt;span style=&quot;
font-weight:700; text-decoration: underline;&quot;&gt;OneDrive
login has been requested&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You will
be asked to open a specific URL by using your web browser where
you will have to login into your Microsoft Account and give
&lt;br/&gt;OneDrive client the permission to access your files.
&lt;/p&gt;&lt;p&gt;After giving permission to OneDrive client,
you will be redirected to a blank page. Copy the URI of the
blank page into the below
field.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</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>
<item>
<widget class="QLabel" name="label_2">
<property name="styleSheet">
<string notr="true" />
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;1)Login to
OneDrive in your browser by &lt;a
href=&quot;https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=d50ca740-c83f-4d1b-b616-12c519384f0c&amp;amp;scope=Files.ReadWrite%20Files.ReadWrite.all%20Sites.Read.All%20Sites.ReadWrite.All%20offline_access&amp;amp;response_type=code&amp;amp;prompt=login&amp;amp;redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient&quot;&gt;&lt;span
style=&quot; text-decoration: underline;
color:#5e81ac;&quot;&gt;clicking this
link.&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2)Copy the
response URI from your browser's address bar to the below field.
&lt;/p&gt;&lt;p&gt;3)Press
Save.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_response_url" />
</item>
<item>
<widget class="QPushButton" name="pushButton_login">
<property name="text">
<string>Login</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources />
<connections />
</ui>

View File

@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>1019</width>
<height>800</height>
<width>1344</width>
<height>994</height>
</rect>
</property>
<property name="windowTitle">
@@ -100,6 +100,48 @@
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_recycle_bin">
<property name="title">
<string>Recycle Bin</string>
</property>
<property name="checkable">
<bool>false</bool>
</property>
<layout class="QGridLayout" name="gridLayout_12">
<item row="0" column="0">
<widget class="QCheckBox" name="checkBox_use_recycle_bin">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;By default, OneDrive client will process online deletions and directly delete the corresponding file or folder directly from your configured 'sync_dir'.&lt;/p&gt;&lt;p&gt;Enable this option to move deleted files to your Linux user default 'Recycle Bin', so that you can manually delete the files at your own discretion.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Use Recycle Bin</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="lineEdit_recycle_bin_path"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_recycle_bin_path">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Specify an explicit 'Recycle Bin' directory or keep empty to use the system default recycle bin path.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Recycle Bin Path</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="pushButton_recycle_bin_path_browse">
<property name="text">
<string>Browse</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_12">
<property name="title">
@@ -171,8 +213,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>975</width>
<height>657</height>
<width>1312</width>
<height>812</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_15">

View File

@@ -8,27 +8,39 @@
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QLabel, QLineEdit, QPushButton,
QSizePolicy, QSpacerItem, QVBoxLayout, QWidget)
from PySide6.QtCore import QCoreApplication, QDate, QDateTime, QLocale, QMetaObject, QObject, QPoint, QRect, QSize, QTime, QUrl, Qt
from PySide6.QtGui import (
QBrush,
QColor,
QConicalGradient,
QCursor,
QFont,
QFontDatabase,
QGradient,
QIcon,
QImage,
QKeySequence,
QLinearGradient,
QPainter,
QPalette,
QPixmap,
QRadialGradient,
QTransform,
)
from PySide6.QtWidgets import QApplication, QLabel, QLineEdit, QPushButton, QSizePolicy, QSpacerItem, QVBoxLayout, QWidget
class Ui_ExternalLoginWindow(object):
def setupUi(self, ExternalLoginWindow):
if not ExternalLoginWindow.objectName():
ExternalLoginWindow.setObjectName(u"ExternalLoginWindow")
ExternalLoginWindow.setObjectName("ExternalLoginWindow")
ExternalLoginWindow.resize(783, 321)
self.verticalLayout = QVBoxLayout(ExternalLoginWindow)
self.verticalLayout.setObjectName(u"verticalLayout")
self.verticalLayout.setObjectName("verticalLayout")
self.layout_external_login = QVBoxLayout()
self.layout_external_login.setObjectName(u"layout_external_login")
self.layout_external_login.setObjectName("layout_external_login")
self.label_1 = QLabel(ExternalLoginWindow)
self.label_1.setObjectName(u"label_1")
self.label_1.setObjectName("label_1")
self.layout_external_login.addWidget(self.label_1)
@@ -37,34 +49,45 @@ class Ui_ExternalLoginWindow(object):
self.layout_external_login.addItem(self.verticalSpacer_2)
self.label_2 = QLabel(ExternalLoginWindow)
self.label_2.setObjectName(u"label_2")
self.label_2.setStyleSheet(u"")
self.label_2.setObjectName("label_2")
self.label_2.setStyleSheet("")
self.layout_external_login.addWidget(self.label_2)
self.lineEdit_response_url = QLineEdit(ExternalLoginWindow)
self.lineEdit_response_url.setObjectName(u"lineEdit_response_url")
self.lineEdit_response_url.setObjectName("lineEdit_response_url")
self.layout_external_login.addWidget(self.lineEdit_response_url)
self.pushButton_login = QPushButton(ExternalLoginWindow)
self.pushButton_login.setObjectName(u"pushButton_login")
self.pushButton_login.setObjectName("pushButton_login")
self.layout_external_login.addWidget(self.pushButton_login)
self.verticalLayout.addLayout(self.layout_external_login)
self.retranslateUi(ExternalLoginWindow)
QMetaObject.connectSlotsByName(ExternalLoginWindow)
# setupUi
def retranslateUi(self, ExternalLoginWindow):
ExternalLoginWindow.setWindowTitle(QCoreApplication.translate("ExternalLoginWindow", u"Form", None))
self.label_1.setText(QCoreApplication.translate("ExternalLoginWindow", u"<html><head/><body><p align=\"center\"><span style=\" font-weight:700; text-decoration: underline;\">OneDrive login has been requested</span></p><p>You will be asked to open a specific URL by using your web browser where you will have to login into your Microsoft Account and give <br/>OneDrive client the permission to access your files. </p><p>After giving permission to OneDrive client, you will be redirected to a blank page. Copy the URI of the blank page into the bellow field.</p></body></html>", None))
self.label_2.setText(QCoreApplication.translate("ExternalLoginWindow", u"<html><head/><body><p>1)Login to OneDrive in your browser by <a href=\"https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=d50ca740-c83f-4d1b-b616-12c519384f0c&amp;scope=Files.ReadWrite%20Files.ReadWrite.all%20Sites.Read.All%20Sites.ReadWrite.All%20offline_access&amp;response_type=code&amp;prompt=login&amp;redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient\"><span style=\" text-decoration: underline; color:#5e81ac;\">clicking this link.</span></a></p><p>2)Copy the response URI from your browser's address bar to the bellow field. </p><p>3)Press Save.</p></body></html>", None))
self.pushButton_login.setText(QCoreApplication.translate("ExternalLoginWindow", u"Login", None))
# retranslateUi
ExternalLoginWindow.setWindowTitle(QCoreApplication.translate("ExternalLoginWindow", "Form", None))
self.label_1.setText(
QCoreApplication.translate(
"ExternalLoginWindow",
'<html><head/><body><p align="center"><span style=" font-weight:700; text-decoration: underline;">OneDrive login has been requested</span></p><p>You will be asked to open a specific URL by using your web browser where you will have to login into your Microsoft Account and give <br/>OneDrive client the permission to access your files. </p><p>After giving permission to OneDrive client, you will be redirected to a blank page. Copy the URI of the blank page into the below field.</p></body></html>',
None,
)
)
self.label_2.setText(
QCoreApplication.translate(
"ExternalLoginWindow",
'<html><head/><body><p>1)Login to OneDrive in your browser by <a href="https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=d50ca740-c83f-4d1b-b616-12c519384f0c&amp;scope=Files.ReadWrite%20Files.ReadWrite.all%20Sites.Read.All%20Sites.ReadWrite.All%20offline_access&amp;response_type=code&amp;prompt=login&amp;redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient"><span style=" text-decoration: underline; color:#5e81ac;">clicking this link.</span></a></p><p>2)Copy the response URI from your browser\'s address bar to the below field. </p><p>3)Press Save.</p></body></html>',
None,
)
)
self.pushButton_login.setText(QCoreApplication.translate("ExternalLoginWindow", "Login", None))
# retranslateUi

View File

@@ -1,9 +1,9 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'profile_settings_pageYvRguo.ui'
## Form generated from reading UI file 'profile_settings_pageNqWFgH.ui'
##
## Created by: Qt User Interface Compiler version 6.7.2
## Created by: Qt User Interface Compiler version 6.9.1
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -25,7 +25,7 @@ class Ui_profile_settings(object):
def setupUi(self, profile_settings):
if not profile_settings.objectName():
profile_settings.setObjectName(u"profile_settings")
profile_settings.resize(1019, 800)
profile_settings.resize(1344, 994)
self.verticalLayout_2 = QVBoxLayout(profile_settings)
self.verticalLayout_2.setObjectName(u"verticalLayout_2")
self.verticalLayout_2.setContentsMargins(-1, 0, -1, 0)
@@ -80,6 +80,34 @@ class Ui_profile_settings(object):
self.verticalLayout_5.addWidget(self.groupBox_8)
self.groupBox_recycle_bin = QGroupBox(self.monitored_tab_2)
self.groupBox_recycle_bin.setObjectName(u"groupBox_recycle_bin")
self.groupBox_recycle_bin.setCheckable(False)
self.gridLayout_12 = QGridLayout(self.groupBox_recycle_bin)
self.gridLayout_12.setObjectName(u"gridLayout_12")
self.checkBox_use_recycle_bin = QCheckBox(self.groupBox_recycle_bin)
self.checkBox_use_recycle_bin.setObjectName(u"checkBox_use_recycle_bin")
self.gridLayout_12.addWidget(self.checkBox_use_recycle_bin, 0, 0, 1, 1)
self.lineEdit_recycle_bin_path = QLineEdit(self.groupBox_recycle_bin)
self.lineEdit_recycle_bin_path.setObjectName(u"lineEdit_recycle_bin_path")
self.gridLayout_12.addWidget(self.lineEdit_recycle_bin_path, 2, 1, 1, 1)
self.label_recycle_bin_path = QLabel(self.groupBox_recycle_bin)
self.label_recycle_bin_path.setObjectName(u"label_recycle_bin_path")
self.gridLayout_12.addWidget(self.label_recycle_bin_path, 2, 0, 1, 1)
self.pushButton_recycle_bin_path_browse = QPushButton(self.groupBox_recycle_bin)
self.pushButton_recycle_bin_path_browse.setObjectName(u"pushButton_recycle_bin_path_browse")
self.gridLayout_12.addWidget(self.pushButton_recycle_bin_path_browse, 2, 2, 1, 1)
self.verticalLayout_5.addWidget(self.groupBox_recycle_bin)
self.groupBox_12 = QGroupBox(self.monitored_tab_2)
self.groupBox_12.setObjectName(u"groupBox_12")
self.gridLayout_3 = QGridLayout(self.groupBox_12)
@@ -119,7 +147,7 @@ class Ui_profile_settings(object):
self.scrollArea.setWidgetResizable(True)
self.scrollAreaWidgetContents_5 = QWidget()
self.scrollAreaWidgetContents_5.setObjectName(u"scrollAreaWidgetContents_5")
self.scrollAreaWidgetContents_5.setGeometry(QRect(0, 0, 975, 657))
self.scrollAreaWidgetContents_5.setGeometry(QRect(0, 0, 1312, 812))
self.verticalLayout_15 = QVBoxLayout(self.scrollAreaWidgetContents_5)
self.verticalLayout_15.setObjectName(u"verticalLayout_15")
self.groupBox_10 = QGroupBox(self.scrollAreaWidgetContents_5)
@@ -170,77 +198,77 @@ class Ui_profile_settings(object):
self.label_monitor_interval = QLabel(self.groupBox_4)
self.label_monitor_interval.setObjectName(u"label_monitor_interval")
self.formLayout_4.setWidget(0, QFormLayout.LabelRole, self.label_monitor_interval)
self.formLayout_4.setWidget(0, QFormLayout.ItemRole.LabelRole, self.label_monitor_interval)
self.spinBox_monitor_interval = QSpinBox(self.groupBox_4)
self.spinBox_monitor_interval.setObjectName(u"spinBox_monitor_interval")
self.spinBox_monitor_interval.setMaximum(1000000)
self.formLayout_4.setWidget(0, QFormLayout.FieldRole, self.spinBox_monitor_interval)
self.formLayout_4.setWidget(0, QFormLayout.ItemRole.FieldRole, self.spinBox_monitor_interval)
self.label_monitor_fullscan_frequency = QLabel(self.groupBox_4)
self.label_monitor_fullscan_frequency.setObjectName(u"label_monitor_fullscan_frequency")
self.formLayout_4.setWidget(1, QFormLayout.LabelRole, self.label_monitor_fullscan_frequency)
self.formLayout_4.setWidget(1, QFormLayout.ItemRole.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_4.setWidget(1, QFormLayout.FieldRole, self.spinBox_monitor_fullscan_frequency)
self.formLayout_4.setWidget(1, QFormLayout.ItemRole.FieldRole, self.spinBox_monitor_fullscan_frequency)
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_4.setWidget(2, QFormLayout.LabelRole, self.label_classify_as_big_delete)
self.formLayout_4.setWidget(2, QFormLayout.ItemRole.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_4.setWidget(2, QFormLayout.FieldRole, self.spinBox_classify_as_big_delete)
self.formLayout_4.setWidget(2, QFormLayout.ItemRole.FieldRole, self.spinBox_classify_as_big_delete)
self.label_operation_timeout = QLabel(self.groupBox_4)
self.label_operation_timeout.setObjectName(u"label_operation_timeout")
self.formLayout_4.setWidget(3, QFormLayout.LabelRole, self.label_operation_timeout)
self.formLayout_4.setWidget(3, QFormLayout.ItemRole.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_4.setWidget(3, QFormLayout.FieldRole, self.spinBox_operation_timeout)
self.formLayout_4.setWidget(3, QFormLayout.ItemRole.FieldRole, self.spinBox_operation_timeout)
self.label_connect_timeout = QLabel(self.groupBox_4)
self.label_connect_timeout.setObjectName(u"label_connect_timeout")
self.formLayout_4.setWidget(4, QFormLayout.LabelRole, self.label_connect_timeout)
self.formLayout_4.setWidget(4, QFormLayout.ItemRole.LabelRole, self.label_connect_timeout)
self.spinBox_connect_timeout = QSpinBox(self.groupBox_4)
self.spinBox_connect_timeout.setObjectName(u"spinBox_connect_timeout")
self.formLayout_4.setWidget(4, QFormLayout.FieldRole, self.spinBox_connect_timeout)
self.formLayout_4.setWidget(4, QFormLayout.ItemRole.FieldRole, self.spinBox_connect_timeout)
self.label_data_timeout = QLabel(self.groupBox_4)
self.label_data_timeout.setObjectName(u"label_data_timeout")
self.formLayout_4.setWidget(5, QFormLayout.LabelRole, self.label_data_timeout)
self.formLayout_4.setWidget(5, QFormLayout.ItemRole.LabelRole, self.label_data_timeout)
self.spinBox_data_timeout = QSpinBox(self.groupBox_4)
self.spinBox_data_timeout.setObjectName(u"spinBox_data_timeout")
self.formLayout_4.setWidget(5, QFormLayout.FieldRole, self.spinBox_data_timeout)
self.formLayout_4.setWidget(5, QFormLayout.ItemRole.FieldRole, self.spinBox_data_timeout)
self.label_ip_protocol_version = QLabel(self.groupBox_4)
self.label_ip_protocol_version.setObjectName(u"label_ip_protocol_version")
self.formLayout_4.setWidget(6, QFormLayout.LabelRole, self.label_ip_protocol_version)
self.formLayout_4.setWidget(6, QFormLayout.ItemRole.LabelRole, self.label_ip_protocol_version)
self.spinBox_ip_protocol_version = QSpinBox(self.groupBox_4)
self.spinBox_ip_protocol_version.setObjectName(u"spinBox_ip_protocol_version")
self.spinBox_ip_protocol_version.setMaximum(2)
self.formLayout_4.setWidget(6, QFormLayout.FieldRole, self.spinBox_ip_protocol_version)
self.formLayout_4.setWidget(6, QFormLayout.ItemRole.FieldRole, self.spinBox_ip_protocol_version)
self.horizontalLayout.addLayout(self.formLayout_4)
@@ -259,80 +287,80 @@ class Ui_profile_settings(object):
self.label_sync_file_permissions = QLabel(self.groupBox_4)
self.label_sync_file_permissions.setObjectName(u"label_sync_file_permissions")
self.formLayout_5.setWidget(1, QFormLayout.LabelRole, self.label_sync_file_permissions)
self.formLayout_5.setWidget(1, QFormLayout.ItemRole.LabelRole, self.label_sync_file_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_5.setWidget(1, QFormLayout.FieldRole, self.spinBox_sync_file_permissions)
self.formLayout_5.setWidget(1, QFormLayout.ItemRole.FieldRole, self.spinBox_sync_file_permissions)
self.label_sync_dir_permissions = QLabel(self.groupBox_4)
self.label_sync_dir_permissions.setObjectName(u"label_sync_dir_permissions")
self.formLayout_5.setWidget(2, QFormLayout.LabelRole, self.label_sync_dir_permissions)
self.formLayout_5.setWidget(2, QFormLayout.ItemRole.LabelRole, self.label_sync_dir_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_5.setWidget(2, QFormLayout.FieldRole, self.spinBox_sync_dir_permissions)
self.formLayout_5.setWidget(2, QFormLayout.ItemRole.FieldRole, self.spinBox_sync_dir_permissions)
self.label_user_agent = QLabel(self.groupBox_4)
self.label_user_agent.setObjectName(u"label_user_agent")
self.formLayout_5.setWidget(3, QFormLayout.LabelRole, self.label_user_agent)
self.formLayout_5.setWidget(3, QFormLayout.ItemRole.LabelRole, self.label_user_agent)
self.lineEdit_user_agent = QLineEdit(self.groupBox_4)
self.lineEdit_user_agent.setObjectName(u"lineEdit_user_agent")
self.lineEdit_user_agent.setMaximumSize(QSize(16777215, 16777215))
self.lineEdit_user_agent.setMaxLength(32767)
self.formLayout_5.setWidget(3, QFormLayout.FieldRole, self.lineEdit_user_agent)
self.formLayout_5.setWidget(3, QFormLayout.ItemRole.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_5.setWidget(4, QFormLayout.LabelRole, self.label_azure_ad_endpoint)
self.formLayout_5.setWidget(4, QFormLayout.ItemRole.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.lineEdit_azure_ad_endpoint.setMaximumSize(QSize(16777215, 16777215))
self.formLayout_5.setWidget(4, QFormLayout.FieldRole, self.lineEdit_azure_ad_endpoint)
self.formLayout_5.setWidget(4, QFormLayout.ItemRole.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_5.setWidget(5, QFormLayout.LabelRole, self.label_azure_tenant_id)
self.formLayout_5.setWidget(5, QFormLayout.ItemRole.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.lineEdit_azure_tenant_id.setMaximumSize(QSize(16777215, 16777215))
self.formLayout_5.setWidget(5, QFormLayout.FieldRole, self.lineEdit_azure_tenant_id)
self.formLayout_5.setWidget(5, QFormLayout.ItemRole.FieldRole, self.lineEdit_azure_tenant_id)
self.label_drive_id = QLabel(self.groupBox_4)
self.label_drive_id.setObjectName(u"label_drive_id")
self.formLayout_5.setWidget(6, QFormLayout.LabelRole, self.label_drive_id)
self.formLayout_5.setWidget(6, QFormLayout.ItemRole.LabelRole, self.label_drive_id)
self.lineEdit_drive_id = QLineEdit(self.groupBox_4)
self.lineEdit_drive_id.setObjectName(u"lineEdit_drive_id")
self.formLayout_5.setWidget(6, QFormLayout.FieldRole, self.lineEdit_drive_id)
self.formLayout_5.setWidget(6, QFormLayout.ItemRole.FieldRole, self.lineEdit_drive_id)
self.label_threads = QLabel(self.groupBox_4)
self.label_threads.setObjectName(u"label_threads")
self.formLayout_5.setWidget(0, QFormLayout.LabelRole, self.label_threads)
self.formLayout_5.setWidget(0, QFormLayout.ItemRole.LabelRole, self.label_threads)
self.spinBox_threads = QSpinBox(self.groupBox_4)
self.spinBox_threads.setObjectName(u"spinBox_threads")
self.spinBox_threads.setMinimum(1)
self.spinBox_threads.setMaximum(16)
self.formLayout_5.setWidget(0, QFormLayout.FieldRole, self.spinBox_threads)
self.formLayout_5.setWidget(0, QFormLayout.ItemRole.FieldRole, self.spinBox_threads)
self.horizontalLayout.addLayout(self.formLayout_5)
@@ -575,61 +603,61 @@ class Ui_profile_settings(object):
self.label_webhook_public_url = QLabel(self.groupBox_9)
self.label_webhook_public_url.setObjectName(u"label_webhook_public_url")
self.formLayout_2.setWidget(1, QFormLayout.LabelRole, self.label_webhook_public_url)
self.formLayout_2.setWidget(1, QFormLayout.ItemRole.LabelRole, self.label_webhook_public_url)
self.lineEdit_webhook_public_url = QLineEdit(self.groupBox_9)
self.lineEdit_webhook_public_url.setObjectName(u"lineEdit_webhook_public_url")
self.formLayout_2.setWidget(1, QFormLayout.FieldRole, self.lineEdit_webhook_public_url)
self.formLayout_2.setWidget(1, QFormLayout.ItemRole.FieldRole, self.lineEdit_webhook_public_url)
self.label_webhook_listening_host = QLabel(self.groupBox_9)
self.label_webhook_listening_host.setObjectName(u"label_webhook_listening_host")
self.formLayout_2.setWidget(2, QFormLayout.LabelRole, self.label_webhook_listening_host)
self.formLayout_2.setWidget(2, QFormLayout.ItemRole.LabelRole, self.label_webhook_listening_host)
self.lineEdit_webhook_listening_host = QLineEdit(self.groupBox_9)
self.lineEdit_webhook_listening_host.setObjectName(u"lineEdit_webhook_listening_host")
self.formLayout_2.setWidget(2, QFormLayout.FieldRole, self.lineEdit_webhook_listening_host)
self.formLayout_2.setWidget(2, QFormLayout.ItemRole.FieldRole, self.lineEdit_webhook_listening_host)
self.label_webhook_listening_port = QLabel(self.groupBox_9)
self.label_webhook_listening_port.setObjectName(u"label_webhook_listening_port")
self.formLayout_2.setWidget(3, QFormLayout.LabelRole, self.label_webhook_listening_port)
self.formLayout_2.setWidget(3, QFormLayout.ItemRole.LabelRole, self.label_webhook_listening_port)
self.spinBox_webhook_listening_port = QSpinBox(self.groupBox_9)
self.spinBox_webhook_listening_port.setObjectName(u"spinBox_webhook_listening_port")
self.spinBox_webhook_listening_port.setMinimum(1)
self.spinBox_webhook_listening_port.setMaximum(65353)
self.formLayout_2.setWidget(3, QFormLayout.FieldRole, self.spinBox_webhook_listening_port)
self.formLayout_2.setWidget(3, QFormLayout.ItemRole.FieldRole, self.spinBox_webhook_listening_port)
self.label_webhook_expiration_interval = QLabel(self.groupBox_9)
self.label_webhook_expiration_interval.setObjectName(u"label_webhook_expiration_interval")
self.formLayout_2.setWidget(4, QFormLayout.LabelRole, self.label_webhook_expiration_interval)
self.formLayout_2.setWidget(4, QFormLayout.ItemRole.LabelRole, self.label_webhook_expiration_interval)
self.spinBox_webhook_expiration_interval = QSpinBox(self.groupBox_9)
self.spinBox_webhook_expiration_interval.setObjectName(u"spinBox_webhook_expiration_interval")
self.spinBox_webhook_expiration_interval.setMaximum(1000000)
self.formLayout_2.setWidget(4, QFormLayout.FieldRole, self.spinBox_webhook_expiration_interval)
self.formLayout_2.setWidget(4, QFormLayout.ItemRole.FieldRole, self.spinBox_webhook_expiration_interval)
self.label_webhook_renewal_interval = QLabel(self.groupBox_9)
self.label_webhook_renewal_interval.setObjectName(u"label_webhook_renewal_interval")
self.formLayout_2.setWidget(5, QFormLayout.LabelRole, self.label_webhook_renewal_interval)
self.formLayout_2.setWidget(5, QFormLayout.ItemRole.LabelRole, self.label_webhook_renewal_interval)
self.spinBox_webhook_renewal_interval = QSpinBox(self.groupBox_9)
self.spinBox_webhook_renewal_interval.setObjectName(u"spinBox_webhook_renewal_interval")
self.spinBox_webhook_renewal_interval.setMaximum(1000000)
self.formLayout_2.setWidget(5, QFormLayout.FieldRole, self.spinBox_webhook_renewal_interval)
self.formLayout_2.setWidget(5, QFormLayout.ItemRole.FieldRole, self.spinBox_webhook_renewal_interval)
self.checkBox_webhook_enabled = QCheckBox(self.groupBox_9)
self.checkBox_webhook_enabled.setObjectName(u"checkBox_webhook_enabled")
self.formLayout_2.setWidget(0, QFormLayout.LabelRole, self.checkBox_webhook_enabled)
self.formLayout_2.setWidget(0, QFormLayout.ItemRole.LabelRole, self.checkBox_webhook_enabled)
self.gridLayout.addWidget(self.groupBox_9, 0, 0, 1, 1)
@@ -697,7 +725,7 @@ class Ui_profile_settings(object):
self.checkBox_disable_notifications = QCheckBox(self.groupBox_6)
self.checkBox_disable_notifications.setObjectName(u"checkBox_disable_notifications")
self.formLayout_3.setWidget(0, QFormLayout.LabelRole, self.checkBox_disable_notifications)
self.formLayout_3.setWidget(0, QFormLayout.ItemRole.LabelRole, self.checkBox_disable_notifications)
self.verticalLayout_6.addWidget(self.groupBox_6)
@@ -748,6 +776,16 @@ class Ui_profile_settings(object):
self.checkBox_sync_business_shared_items.setToolTip(QCoreApplication.translate("profile_settings", u"<html><head/><body><p>Refer to <a href=\"https://github.com/abraunegg/onedrive/blob/master/docs/BusinessSharedFolders.md\"><span style=\" text-decoration: underline; color:#5e81ac;\">Business Shared Folders</span></a> for configuration assistance.</p></body></html>", None))
#endif // QT_CONFIG(tooltip)
self.checkBox_sync_business_shared_items.setText(QCoreApplication.translate("profile_settings", u"Sync business shared items", None))
self.groupBox_recycle_bin.setTitle(QCoreApplication.translate("profile_settings", u"Recycle Bin", None))
#if QT_CONFIG(tooltip)
self.checkBox_use_recycle_bin.setToolTip(QCoreApplication.translate("profile_settings", u"<html><head/><body><p>By default, OneDrive client will process online deletions and directly delete the corresponding file or folder directly from your configured 'sync_dir'.</p><p>Enable this option to move deleted files to your Linux user default 'Recycle Bin', so that you can manually delete the files at your own discretion.</p></body></html>", None))
#endif // QT_CONFIG(tooltip)
self.checkBox_use_recycle_bin.setText(QCoreApplication.translate("profile_settings", u"Use Recycle Bin", None))
#if QT_CONFIG(tooltip)
self.label_recycle_bin_path.setToolTip(QCoreApplication.translate("profile_settings", u"<html><head/><body><p>Specify an explicit 'Recycle Bin' directory or keep empty to use the system default recycle bin path.</p></body></html>", None))
#endif // QT_CONFIG(tooltip)
self.label_recycle_bin_path.setText(QCoreApplication.translate("profile_settings", u"Recycle Bin Path", None))
self.pushButton_recycle_bin_path_browse.setText(QCoreApplication.translate("profile_settings", u"Browse", None))
self.groupBox_12.setTitle(QCoreApplication.translate("profile_settings", u"Account actions", None))
#if QT_CONFIG(tooltip)
self.checkBox_auto_sync.setToolTip(QCoreApplication.translate("profile_settings", u"Automatically start sync for this profile when OneDriveGUI starts.", None))