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

added skip_dir settings

This commit is contained in:
Boris Pozdena
2022-01-27 17:05:08 +01:00
parent f93aa26157
commit e8f973e5a6
3 changed files with 152 additions and 127 deletions

View File

@@ -7,7 +7,9 @@ from configparser import ConfigParser
from PySide6.QtCore import QThread, QTimer, QUrl, Signal, QFileInfo
from PySide6.QtGui import QIcon
from PySide6.QtWidgets import (QWidget, QApplication, QMainWindow, QMenu, QSystemTrayIcon, QListWidget, QListWidgetItem, QFileIconProvider, QStackedLayout, QVBoxLayout, QLabel)
from PySide6.QtWidgets import ( QWidget, QApplication, QMainWindow, QMenu, QSystemTrayIcon,
QListWidget, QListWidgetItem, QFileIconProvider, QStackedLayout,
QVBoxLayout, QLabel, QAbstractItemView)
from ui.ui_login import Ui_LoginWindow
from ui.ui_settings import Ui_settings_window
@@ -45,20 +47,7 @@ class SettingsWindow(QWidget, Ui_settings_window):
self.stackedLayout.setCurrentIndex(self.listWidget.currentRow())
def add_item_to_qlist(self, source_widget, destination_widget, list):
if source_widget.text() == "":
print("Inoring empty value.")
elif source_widget.text() in list:
print("Item already in exemption list.")
else:
list.append(source_widget.text())
destination_widget.addItem(source_widget.text())
def remove_item_from_qlist(self, qlistwidget_name):
for item in qlistwidget_name.selectedItems():
print("Removing: " + item.text())
# items.remove(item.text())
qlistwidget_name.takeItem(qlistwidget_name.row(item))
class ProfileStatusPage(QWidget, Ui_status_page):
@@ -98,6 +87,7 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
super(ProfileSettingsPage, self).__init__()
self.profile = profile
# Set up the user interface from Designer.
self.setupUi(self)
@@ -105,8 +95,8 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
self.temp_profile_config = temp_global_config[self.profile]
self.lineEdit_6.setText(self.temp_profile_config['onedrive']['sync_dir'].strip('"'))
self.lineEdit_6.textChanged.connect(self.set_sync_dir)
self.lineEdit_sync_dir.setText(self.temp_profile_config['onedrive']['sync_dir'].strip('"'))
self.lineEdit_sync_dir.textChanged.connect(self.set_sync_dir)
# self.ui.lineEdit.setText(settings['onedrive']['log_dir'].strip('"'))
# self.ui.lineEdit.textChanged.connect(
@@ -120,32 +110,58 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
# lambda: settings.set('onedrive', 'skip_file', '"' + '|'.join(skip_files) + '"'))
# self.ui.pushButton_6.clicked.connect(self.ui.lineEdit_2.clear)
# skip_dirs = settings['onedrive']['skip_dir'].strip('"').split('|')
# self.ui.listWidget_2.addItems(skip_dirs)
# self.ui.pushButton_7.clicked.connect(
# lambda: self.add_item_to_qlist(self.ui.lineEdit_3, self.ui.listWidget_2, skip_dirs))
# self.ui.pushButton_7.clicked.connect(
# lambda: settings.set('onedrive', 'skip_dir', '"' + '|'.join(skip_dirs) + '"'))
# self.ui.pushButton_7.clicked.connect(self.ui.lineEdit_3.clear)
# Skip_dir section
self.skip_dirs = self.temp_profile_config['onedrive']['skip_dir'].strip('"').split('|')
self.listWidget_skip_dir.addItems(self.skip_dirs)
self.listWidget_skip_dir.setSelectionMode(QAbstractItemView.ExtendedSelection)
self.pushButton_add_skip_dir.clicked.connect(self.add_skip_dir)
self.pushButton_add_skip_dir.clicked.connect(self.lineEdit_skip_dir.clear)
self.pushButton_rm_skip_dir.clicked.connect(self.remove_skip_dir)
# self.ui.pushButton_4.clicked.connect(lambda: save_config(settings))
self.pushButton.hide()
# self.pushButton.clicked.connect(self.discart_changes)
self.pushButton_13.clicked.connect(self.save_profile_settings)
# Rate limit
self.lineEdit_10.setText(self.temp_profile_config['onedrive']['rate_limit'].strip('"'))
self.label_12.setText(str(round(int(self.lineEdit_10.text()) * 8 / 1000 / 1000, 2)) + " Mbit/s")
self.lineEdit_10.textChanged.connect(self.set_rate_limit)
# self.ui.lineEdit_5.textChanged.connect(lambda: self.ui.label_6.setText(str(round(int(self.ui.lineEdit_5.text()) * 8 / 1000 / 1000, 2)) + " Mbit/s"))
self.lineEdit_rate_limit.setText(self.temp_profile_config['onedrive']['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)
self.pushButton_save.clicked.connect(self.save_profile_settings)
def add_skip_dir(self):
self.add_item_to_qlist(self.lineEdit_skip_dir, self.listWidget_skip_dir, self.skip_dirs)
self.temp_profile_config['onedrive']['skip_dir'] = '"' + '|'.join(self.skip_dirs) + '"'
def remove_skip_dir(self):
self.remove_item_from_qlist(self.listWidget_skip_dir, self.skip_dirs)
self.temp_profile_config['onedrive']['skip_dir'] = '"' + '|'.join(self.skip_dirs) + '"'
def set_rate_limit(self):
self.temp_profile_config['onedrive']['rate_limit'] = f'"{self.lineEdit_10.text()}"'
self.label_12.setText(str(round(int(self.lineEdit_10.text()) * 8 / 1000 / 1000, 2)) + " Mbit/s")
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")
def set_sync_dir(self):
self.temp_profile_config['onedrive']['sync_dir'] = f'"{self.lineEdit_6.text()}"'
self.temp_profile_config['onedrive']['sync_dir'] = f'"{self.lineEdit_sync_dir.text()}"'
def add_item_to_qlist(self, source_widget, destination_widget, list):
if source_widget.text() == "":
print("Inoring empty value.")
elif source_widget.text() in list:
print("Item already in exemption list.")
else:
list.append(source_widget.text())
destination_widget.addItem(source_widget.text())
def remove_item_from_qlist(self, qlistwidget_name, list):
for item in qlistwidget_name.selectedItems():
print("Removing: " + item.text())
# items.remove(item.text())
qlistwidget_name.takeItem(qlistwidget_name.row(item))
print(list)
list.remove(item.text())
def save_profile_settings(self):
global_config[self.profile].update(self.temp_profile_config)

View File

@@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>588</width>
<width>614</width>
<height>785</height>
</rect>
</property>
@@ -25,7 +25,7 @@
</size>
</property>
<property name="currentIndex">
<number>2</number>
<number>0</number>
</property>
<widget class="QWidget" name="exemptions_tab_2">
<attribute name="title">
@@ -49,7 +49,7 @@
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_6"/>
<widget class="QLineEdit" name="lineEdit_sync_dir"/>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="pushButton_3">
@@ -107,7 +107,7 @@
<item>
<layout class="QGridLayout" name="gridLayout_7">
<item row="0" column="1">
<widget class="QPushButton" name="pushButton_11">
<widget class="QPushButton" name="pushButton_rm_skip_dir">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Minimum">
<horstretch>0</horstretch>
@@ -120,7 +120,7 @@
</widget>
</item>
<item row="0" column="0">
<widget class="QListWidget" name="listWidget_4">
<widget class="QListWidget" name="listWidget_skip_dir">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
<horstretch>0</horstretch>
@@ -130,10 +130,10 @@
</widget>
</item>
<item row="1" column="0">
<widget class="QLineEdit" name="lineEdit_8"/>
<widget class="QLineEdit" name="lineEdit_skip_dir"/>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="pushButton_12">
<widget class="QPushButton" name="pushButton_add_skip_dir">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
@@ -201,45 +201,42 @@
<attribute name="title">
<string>Rate Limit</string>
</attribute>
<widget class="QLineEdit" name="lineEdit_10">
<property name="geometry">
<rect>
<x>110</x>
<y>50</y>
<width>113</width>
<height>22</height>
</rect>
</property>
<property name="inputMethodHints">
<set>Qt::ImhDigitsOnly</set>
</property>
</widget>
<widget class="QLabel" name="label_11">
<property name="geometry">
<rect>
<x>10</x>
<y>50</y>
<width>101</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Rate Limit [B/s]</string>
</property>
</widget>
<widget class="QLabel" name="label_12">
<property name="geometry">
<rect>
<x>250</x>
<y>50</y>
<width>141</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>(Mbit/s)</string>
</property>
</widget>
<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">
<spacer name="verticalSpacer">
<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_6">
<attribute name="title">
@@ -253,14 +250,14 @@
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="pushButton">
<widget class="QPushButton" name="pushButton_discart">
<property name="text">
<string>Discard changes</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_13">
<widget class="QPushButton" name="pushButton_save">
<property name="text">
<string>Save</string>
</property>

View File

@@ -24,7 +24,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(588, 785)
profile_settings.resize(614, 785)
self.verticalLayout_2 = QVBoxLayout(profile_settings)
self.verticalLayout_2.setObjectName(u"verticalLayout_2")
self.verticalLayout = QVBoxLayout()
@@ -48,10 +48,10 @@ class Ui_profile_settings(object):
self.gridLayout_5.addWidget(self.label_7, 0, 0, 1, 1)
self.lineEdit_6 = QLineEdit(self.exemptions_tab_2)
self.lineEdit_6.setObjectName(u"lineEdit_6")
self.lineEdit_sync_dir = QLineEdit(self.exemptions_tab_2)
self.lineEdit_sync_dir.setObjectName(u"lineEdit_sync_dir")
self.gridLayout_5.addWidget(self.lineEdit_6, 0, 1, 1, 1)
self.gridLayout_5.addWidget(self.lineEdit_sync_dir, 0, 1, 1, 1)
self.pushButton_3 = QPushButton(self.exemptions_tab_2)
self.pushButton_3.setObjectName(u"pushButton_3")
@@ -103,40 +103,40 @@ class Ui_profile_settings(object):
self.gridLayout_7 = QGridLayout()
self.gridLayout_7.setObjectName(u"gridLayout_7")
self.pushButton_11 = QPushButton(self.exemptions_tab_2)
self.pushButton_11.setObjectName(u"pushButton_11")
self.pushButton_rm_skip_dir = QPushButton(self.exemptions_tab_2)
self.pushButton_rm_skip_dir.setObjectName(u"pushButton_rm_skip_dir")
sizePolicy1 = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Minimum)
sizePolicy1.setHorizontalStretch(0)
sizePolicy1.setVerticalStretch(0)
sizePolicy1.setHeightForWidth(self.pushButton_11.sizePolicy().hasHeightForWidth())
self.pushButton_11.setSizePolicy(sizePolicy1)
sizePolicy1.setHeightForWidth(self.pushButton_rm_skip_dir.sizePolicy().hasHeightForWidth())
self.pushButton_rm_skip_dir.setSizePolicy(sizePolicy1)
self.gridLayout_7.addWidget(self.pushButton_11, 0, 1, 1, 1)
self.gridLayout_7.addWidget(self.pushButton_rm_skip_dir, 0, 1, 1, 1)
self.listWidget_4 = QListWidget(self.exemptions_tab_2)
self.listWidget_4.setObjectName(u"listWidget_4")
self.listWidget_skip_dir = QListWidget(self.exemptions_tab_2)
self.listWidget_skip_dir.setObjectName(u"listWidget_skip_dir")
sizePolicy2 = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Expanding)
sizePolicy2.setHorizontalStretch(0)
sizePolicy2.setVerticalStretch(0)
sizePolicy2.setHeightForWidth(self.listWidget_4.sizePolicy().hasHeightForWidth())
self.listWidget_4.setSizePolicy(sizePolicy2)
sizePolicy2.setHeightForWidth(self.listWidget_skip_dir.sizePolicy().hasHeightForWidth())
self.listWidget_skip_dir.setSizePolicy(sizePolicy2)
self.gridLayout_7.addWidget(self.listWidget_4, 0, 0, 1, 1)
self.gridLayout_7.addWidget(self.listWidget_skip_dir, 0, 0, 1, 1)
self.lineEdit_8 = QLineEdit(self.exemptions_tab_2)
self.lineEdit_8.setObjectName(u"lineEdit_8")
self.lineEdit_skip_dir = QLineEdit(self.exemptions_tab_2)
self.lineEdit_skip_dir.setObjectName(u"lineEdit_skip_dir")
self.gridLayout_7.addWidget(self.lineEdit_8, 1, 0, 1, 1)
self.gridLayout_7.addWidget(self.lineEdit_skip_dir, 1, 0, 1, 1)
self.pushButton_12 = QPushButton(self.exemptions_tab_2)
self.pushButton_12.setObjectName(u"pushButton_12")
self.pushButton_add_skip_dir = QPushButton(self.exemptions_tab_2)
self.pushButton_add_skip_dir.setObjectName(u"pushButton_add_skip_dir")
sizePolicy3 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
sizePolicy3.setHorizontalStretch(0)
sizePolicy3.setVerticalStretch(0)
sizePolicy3.setHeightForWidth(self.pushButton_12.sizePolicy().hasHeightForWidth())
self.pushButton_12.setSizePolicy(sizePolicy3)
sizePolicy3.setHeightForWidth(self.pushButton_add_skip_dir.sizePolicy().hasHeightForWidth())
self.pushButton_add_skip_dir.setSizePolicy(sizePolicy3)
self.gridLayout_7.addWidget(self.pushButton_12, 1, 1, 1, 1)
self.gridLayout_7.addWidget(self.pushButton_add_skip_dir, 1, 1, 1, 1)
self.verticalLayout_5.addLayout(self.gridLayout_7)
@@ -178,16 +178,28 @@ class Ui_profile_settings(object):
self.tabWidget.addTab(self.logging_tab_2, "")
self.tab_5 = QWidget()
self.tab_5.setObjectName(u"tab_5")
self.lineEdit_10 = QLineEdit(self.tab_5)
self.lineEdit_10.setObjectName(u"lineEdit_10")
self.lineEdit_10.setGeometry(QRect(110, 50, 113, 22))
self.lineEdit_10.setInputMethodHints(Qt.ImhDigitsOnly)
self.label_11 = QLabel(self.tab_5)
self.label_11.setObjectName(u"label_11")
self.label_11.setGeometry(QRect(10, 50, 101, 16))
self.label_12 = QLabel(self.tab_5)
self.label_12.setObjectName(u"label_12")
self.label_12.setGeometry(QRect(250, 50, 141, 16))
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.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
self.gridLayout.addItem(self.verticalSpacer, 1, 1, 1, 1)
self.tabWidget.addTab(self.tab_5, "")
self.tab_6 = QWidget()
self.tab_6.setObjectName(u"tab_6")
@@ -200,15 +212,15 @@ class Ui_profile_settings(object):
self.horizontalLayout = QHBoxLayout()
self.horizontalLayout.setObjectName(u"horizontalLayout")
self.pushButton = QPushButton(profile_settings)
self.pushButton.setObjectName(u"pushButton")
self.pushButton_discart = QPushButton(profile_settings)
self.pushButton_discart.setObjectName(u"pushButton_discart")
self.horizontalLayout.addWidget(self.pushButton)
self.horizontalLayout.addWidget(self.pushButton_discart)
self.pushButton_13 = QPushButton(profile_settings)
self.pushButton_13.setObjectName(u"pushButton_13")
self.pushButton_save = QPushButton(profile_settings)
self.pushButton_save.setObjectName(u"pushButton_save")
self.horizontalLayout.addWidget(self.pushButton_13)
self.horizontalLayout.addWidget(self.pushButton_save)
self.verticalLayout_2.addLayout(self.horizontalLayout)
@@ -216,7 +228,7 @@ class Ui_profile_settings(object):
self.retranslateUi(profile_settings)
self.tabWidget.setCurrentIndex(2)
self.tabWidget.setCurrentIndex(0)
QMetaObject.connectSlotsByName(profile_settings)
@@ -231,18 +243,18 @@ class Ui_profile_settings(object):
self.pushButton_9.setText(QCoreApplication.translate("profile_settings", u"Add", None))
self.pushButton_10.setText(QCoreApplication.translate("profile_settings", u"Remove", None))
self.label_9.setText(QCoreApplication.translate("profile_settings", u"Skip directories:", None))
self.pushButton_11.setText(QCoreApplication.translate("profile_settings", u"Remove", None))
self.pushButton_12.setText(QCoreApplication.translate("profile_settings", u"Add", None))
self.pushButton_rm_skip_dir.setText(QCoreApplication.translate("profile_settings", u"Remove", None))
self.pushButton_add_skip_dir.setText(QCoreApplication.translate("profile_settings", u"Add", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.exemptions_tab_2), QCoreApplication.translate("profile_settings", u"Monitored Files", None))
self.checkBox_4.setText(QCoreApplication.translate("profile_settings", u"Enable Logging", None))
self.label_10.setText(QCoreApplication.translate("profile_settings", u"Log location:", None))
self.pushButton_4.setText(QCoreApplication.translate("profile_settings", u"Browse", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.logging_tab_2), QCoreApplication.translate("profile_settings", u"Logging", None))
self.label_11.setText(QCoreApplication.translate("profile_settings", u"Rate Limit [B/s]", None))
self.label_12.setText(QCoreApplication.translate("profile_settings", u"(Mbit/s)", 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.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"Page", None))
self.pushButton.setText(QCoreApplication.translate("profile_settings", u"Discard changes", None))
self.pushButton_13.setText(QCoreApplication.translate("profile_settings", u"Save", None))
self.pushButton_discart.setText(QCoreApplication.translate("profile_settings", u"Discard changes", None))
self.pushButton_save.setText(QCoreApplication.translate("profile_settings", u"Save", None))
# retranslateUi