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

first commit

This commit is contained in:
Boris Pozdena
2022-01-26 22:03:57 +01:00
parent c355e24bdc
commit 2b3c50ee44
25 changed files with 2475 additions and 0 deletions

4
.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
venv/
.qt_for_python/
OneDriveGUI/__thrash/
__pycache__/

654
OneDriveGUI/OneDriveGUI.py Normal file
View File

@@ -0,0 +1,654 @@
import os
import psutil
import re
import subprocess
import sys
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 ui.ui_login import Ui_LoginWindow
from ui.ui_settings import Ui_settings_window
from ui.ui_list_item_widget import Ui_list_item_widget
from ui.ui_mainwindow import Ui_MainWindow
from ui.ui_process_status_page import Ui_status_page
from ui.ui_profile_settings_page import Ui_profile_settings
CONFIG_FILE = os.path.expanduser('/home/bob/.config/onedrive/accounts/boris@pozdena.eu/config')
PROFILES_FILE = os.path.expanduser('~/.config/onedrive-gui/profiles')
class SettingsWindow(QWidget, Ui_settings_window):
def __init__(self):
super(SettingsWindow, self).__init__()
# Set up the user interface from Designer.
self.setupUi(self)
self.stackedLayout = QStackedLayout()
for account in global_config:
print(account)
self.listWidget.addItem(account)
self.page = ProfileSettingsPage(account)
self.stackedLayout.addWidget(self.page)
self.horizontalLayout.addLayout(self.stackedLayout)
self.listWidget.itemSelectionChanged.connect(self.switch_account_settings_page)
self.show()
def switch_account_settings_page(self):
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):
def __init__(self, profile):
super(ProfileStatusPage, self).__init__()
# Set up the user interface from Designer.
self.setupUi(self)
# Show selected profile name
self.label_4.setText(profile)
# # Open Settings window
self.pushButton_settings.clicked.connect(self.show_settings_window)
# Open login form TODO: testing
# self.pushButton_2.setText("login")
# self.pushButton_2.clicked.connect(lambda: self.show_login())
def show_settings_window(self):
self.settings_window = SettingsWindow()
self.settings_window.show()
class ProfileSettingsPage(QWidget, Ui_profile_settings):
def __init__(self, profile):
super(ProfileSettingsPage, self).__init__()
# Set up the user interface from Designer.
self.setupUi(self)
self.lineEdit_6.setText(global_config[profile]['onedrive']['sync_dir'].strip('"'))
# self.ui.lineEdit_4.textChanged.connect(
# lambda: settings.set('onedrive', 'sync_dir', f'"{self.ui.lineEdit_4.text()}"'))
# self.ui.lineEdit.setText(settings['onedrive']['log_dir'].strip('"'))
# self.ui.lineEdit.textChanged.connect(
# lambda: settings.set('onedrive', 'log_dir', f'"{self.ui.lineEdit.text()}"'))
# skip_files = settings['onedrive']['skip_file'].strip('"').split('|')
# self.ui.listWidget.addItems(skip_files)
# self.ui.pushButton_6.clicked.connect(
# lambda: self.add_item_to_qlist(self.ui.lineEdit_2, self.ui.listWidget, skip_files))
# self.ui.pushButton_6.clicked.connect(
# 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)
# self.ui.pushButton_4.clicked.connect(lambda: save_config(settings))
# # Rate limit
# self.ui.lineEdit_5.setText(settings['onedrive']['rate_limit'].strip('"'))
# self.ui.label_6.setText(str(round(int(self.ui.lineEdit_5.text()) * 8 / 1000 / 1000, 2)) + " Mbit/s")
# self.ui.lineEdit_5.textChanged.connect(lambda: settings.set('onedrive', 'rate_limit', f'"{self.ui.lineEdit_5.text()}"'))
# 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"))
class TaskList(QWidget, Ui_list_item_widget):
def __init__(self):
super(TaskList, self).__init__()
# Set up the user interface from Designer.
self.setupUi(self)
def set_icon (self, file_path):
self.fileInfo = QFileInfo(file_path)
self.iconProvider = QFileIconProvider()
self.icon = self.iconProvider.icon(self.fileInfo)
# icon = QIcon(icon_file)
self.toolButton.setIcon(self.icon)
def set_file_name(self, file_path):
self.ls_label_file_name.setText(file_path)
def set_progress(self, percentage):
self.ls_progressBar.setValue(percentage)
def set_label_1(self, text):
self.ls_label_1.setOpenExternalLinks(True)
self.ls_label_1.setText(text)
def set_label_2(self, text):
self.ls_label_2.setText(text)
def hide_progress_bar(self, transfer_status: bool):
# pass
if transfer_status:
self.ls_progressBar.hide()
# self.ls_label_task.hide()
# self.ls_label_status.hide()
# self.ls_label_dir.show()
else:
self.ls_progressBar.show()
# self.ls_label_task.show()
# self.ls_label_status.show()
# self.ls_label_dir.hide()
class WorkerThread(QThread):
update_credentials = Signal()
update_progress = Signal(dict)
update_progress_new = Signal(dict, str)
trigger_resync = Signal()
def __init__(self, profile):
super(WorkerThread, self).__init__()
print(f"starting worker for profile {profile}")
print(global_config[profile])
self.config_file = global_config[profile]['config_file']
self.config_folder = re.search(r"(.+)/.+$", self.config_file)
print(self.config_file)
self._command = f"onedrive --confdir='{self.config_folder.group(1)}' --monitor -v"
print(f"command is: {self._command}")
self._profile_name = profile
def run(self, resync=False):
matches = ['Downloading file', 'Downloading new file', 'Uploading file', 'Uploading new file',
'Uploading modified file', 'Downloading modified file']
file_name = None
self.onedrive_process = subprocess.Popen(self._command + '--resync' if resync else self._command,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
shell=True,
universal_newlines=True)
# TODO: De-monster once all possible situations are handled correctly.
while self.onedrive_process.poll() is None:
if self.onedrive_process.stdout:
stdout = self.onedrive_process.stdout.readline()
# print(f"worker: {stdout.strip()}")
print(f'[{self._profile_name}] ' + stdout.strip())
if 'Authorize this app visiting' in stdout:
self.onedrive_process.kill()
self.update_credentials.emit()
elif any(x in stdout for x in matches): # capture file uploads and downloads
# self.tray.setIcon(QIcon("resources/images/icons8-cloud-sync-40_2.png"))
print('# ' + stdout)
file_operation = re.search(r'\b([Uploading|Downloading]+)*', stdout)
file_name = re.search(r".*/(.+)\s+\.+", stdout)
file_path = re.search(r"\b[file]+\s(.+)\s+\.\.\.", stdout)
transfer_complete = 'done' in stdout
progress = '0' # if transfer_complete else '0'
transfer_progress = {
"file_operation": file_operation.group(1),
"file_name": 'unknown file name' if file_name is None else file_name.group(1),
"progress": progress,
"transfer_complete": transfer_complete}
transfer_progress_new = {
"file_operation": file_operation.group(1),
"file_path": 'unknown file name' if file_path is None else file_path.group(1),
"progress": progress,
"transfer_complete": transfer_complete}
if transfer_complete:
self.update_progress.emit(transfer_progress)
self.update_progress_new.emit(transfer_progress_new, self._profile_name)
elif '% |' in stdout and file_name is not None: # capture upload/download progress
file_operation = re.search(r'\b([Uploading|Downloading]+)*', stdout)
progress = re.search(r'\s([0-9]+)%', stdout)
transfer_complete = progress.group(1) == '100'
transfer_progress = {
"file_operation": file_operation.group(1),
"file_name": 'Resuming last file...' if file_name is None else file_name.group(1),
"progress": progress.group(1),
"transfer_complete": transfer_complete}
transfer_progress_new = {
"file_operation": file_operation.group(1),
"file_path": 'unknown file name' if file_path is None else file_path.group(1),
"progress": progress.group(1),
"transfer_complete": transfer_complete}
self.update_progress.emit(transfer_progress)
self.update_progress_new.emit(transfer_progress_new, self._profile_name)
elif 'Sync with OneDrive is complete' in stdout:
pass
# self.tray.setIcon(QIcon("resources/images/icons8-cloud-done-40_2.png"))
elif 'Remaining free space on OneDrive' in stdout:
pass
elif 'Processing' in stdout:
pass
# self.tray.setIcon(QIcon("resources/images/icons8-cloud-sync-40_2.png"))
else:
pass
# print('@@ no match')
if self.onedrive_process.stderr:
stderr = self.onedrive_process.stderr.readline()
if stderr != '':
if 'command not found' in stderr:
print("""Onedrive does not seem to be installed. Please install it as per instruction at
https://github.com/abraunegg/onedrive/blob/master/docs/INSTALL.md """)
elif '--resync is required' in stderr:
print(str(stderr) + " Starting resync.")
self.trigger_resync.emit()
self.run(resync=True)
else:
print('@@ERROR' + stderr)
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self):
self.workers= {}
super(MainWindow, self).__init__()
self.setupUi(self)
#
# Menu
#
# Update OneDrive Status
self.actionRefresh_Service_Status.triggered.connect(lambda: self.onedrive_process_status())
# Start OneDrive service
self.actionStart_Service.triggered.connect(lambda: os.system('systemctl --user start onedrive'))
# Stop OneDrive service
self.actionStop_Service.triggered.connect(lambda: os.system('systemctl --user stop onedrive'))
# Restart OneDrive service
self.actionRestart_Service.triggered.connect(lambda: os.system('systemctl --user restart onedrive'))
# Start OneDrive monitoring
self.actionStart_Monitor.triggered.connect(lambda: self.start_onedrive_monitor('boris@pozdena.eu'))
# Stop OneDrive monitoring
self.actionStop_Monitor.triggered.connect(lambda: os.system('pkill onedrive'))
# Refresh Sync Status
self.actionObtain_Sync_Status.triggered.connect(lambda: self.label_4.setText("Retreiving status..."))
self.actionObtain_Sync_Status.triggered.connect(lambda: self.onedrive_sync_status())
# Start second account
self.actionstart.triggered.connect(lambda: self.start_onedrive_monitor('bpozdena@gmail.com'))
self.comboBox.activated.connect(self.switch_account_status_page)
self.stackedLayout = QStackedLayout()
self.profile_status_pages = {}
for profile in global_config:
self.comboBox.addItem(profile)
self.profile_status_pages[profile] = ProfileStatusPage(profile)
self.stackedLayout.addWidget(self.profile_status_pages[profile])
self.verticalLayout_2.addLayout(self.stackedLayout)
# self.label_5.hide()
# self.progressBar.hide()
# self.progressBar.setValue(0)
# self.refresh_process_status = QTimer()
# self.refresh_process_status.setSingleShot(False)
# self.refresh_process_status.timeout.connect(lambda: self.onedrive_process_status())
# self.refresh_process_status.start(1000)
# System Tray
self.tray = QSystemTrayIcon()
if self.tray.isSystemTrayAvailable():
icon = QIcon("resources/images/icons8-clouds-48.png")
menu = QMenu()
actionshow = menu.addAction("Show/Hide")
actionshow.triggered.connect(lambda: self.hide() if self.isVisible() else self.show())
setting_action = menu.addAction("Settings")
# setting_action.triggered.connect(self.show_settings)
quit_action = menu.addAction("Quit")
quit_action.triggered.connect(sys.exit)
self.tray.setIcon(icon)
self.tray.setContextMenu(menu)
self.tray.show()
self.tray.setToolTip("This is OneDriveGUI")
else:
self.tray = None
def switch_account_status_page(self):
self.stackedLayout.setCurrentIndex(self.comboBox.currentIndex())
def onedrive_process_status(self):
# Check OneDrive status
for onedrive_process in psutil.process_iter():
if onedrive_process.name().lower() == 'onedrive' and onedrive_process.status() != 'zombie':
self.label_3.setText("running")
return True
self.label_3.setText("not running")
self.tray.setIcon(QIcon("resources/images/icons8-cloud-cross-40_2.png"))
self.progressBar.hide()
self.label_5.hide()
return False
def onedrive_sync_status(self):
# Check OneDrive sync status
status = subprocess.check_output(['onedrive', '--display-sync-status'])
if 'in sync' in str(status):
self.label_4.setText("In Sync")
self.tray.setIcon(QIcon("resources/images/icons8-cloud-done-40_2.png"))
return True
else:
self.label_4.setText("Out of Sync")
self.tray.setIcon(QIcon("resources/images/icons8-cloud-sync-40_2.png"))
return False
def start_onedrive_monitor(self, profile_name):
# for profile in global_config:
self.workers[profile_name] = WorkerThread(profile_name)
self.workers[profile_name].start()
# self.worker = WorkerThread()
# self.worker.start()
# self.worker.update_credentials.connect(self.show_login)
# self.worker.update_progress.connect(self.event_update_progress)
# self.worker.trigger_resync.connect(self.show_login)
self.workers[profile_name].update_progress_new.connect(self.event_update_progress_new)
def event_update_progress(self, data):
"""
data:
transfer_progress = {
"file_operation": file_operation.group(1),
"file_name": file_name.group(1),
"progress": progress.group(1),
"transfer_complete": transfer_complete
}
"""
print(data)
if self.label_5.isHidden():
self.label_5.show()
self.progressBar.show()
self.label_5.setText(data['file_operation'] + ' ' + data['file_name'])
self.progressBar.setValue(int(data['progress']))
if data["transfer_complete"]:
self.listWidget.insertItem(0, data['file_operation'] + ' of ' + data['file_name'] + ' completed.')
if not self.label_5.isHidden():
self.label_5.hide()
self.progressBar.hide()
def event_update_progress_new(self, data, profile):
"""
data:
transfer_progress = {
"file_operation": file_operation.group(1),
"file_path": file_path.group(1),
"progress": progress.group(1),
"transfer_complete": transfer_complete
}
TODO: De-monster once all possible situations are handled correctly.
"""
_sync_dir = os.path.expanduser(global_config[profile]['onedrive']['sync_dir'].strip('"'))
# profile_status_page = self.profile_status_pages[profile]
print(data)
file_path = f'{_sync_dir}' + "/" + data['file_path']
absolute_path = QFileInfo(file_path).absolutePath()
parent_dir = re.search(r".+/([^/]+)/.+$", file_path)
file_size = QFileInfo(file_path).size()
file_size_human = humanize_file_size(file_size)
file_name = QFileInfo(file_path).fileName()
file_path2 = QFileInfo(file_path).filePath()
progress = data['progress']
progress_data = file_size / 100 * int(progress)
progress_data_human = humanize_file_size(progress_data)
print("absolute path " + absolute_path)
print("parent dir " + parent_dir.group(1))
print("progress: " + progress)
print("progress data: " + humanize_file_size(progress_data))
print("file path: " + file_path)
print("file size: " + humanize_file_size(file_size))
print("file name: " + file_name)
print("file path2: " + file_path2)
if int(data['progress']) == 0 and data['transfer_complete'] == True:
myQCustomQWidget = TaskList()
myQCustomQWidget.set_file_name(file_name)
myQCustomQWidget.set_progress(100)
myQCustomQWidget.set_icon(file_path)
myQCustomQWidget.hide_progress_bar(data['transfer_complete'])
myQCustomQWidget.set_label_1(f"Available in <a href=file:///{absolute_path}>{parent_dir.group(1)}</a>")
myQCustomQWidget.set_label_2(f'{file_size_human}')
# Create QListWidgetItem
myQListWidgetItem = QListWidgetItem()
# Set size hint
myQListWidgetItem.setSizeHint(myQCustomQWidget.sizeHint())
# Add QListWidgetItem into QListWidget
self.profile_status_pages[profile].listWidget.insertItem(0, myQListWidgetItem)
self.profile_status_pages[profile].listWidget.setItemWidget(myQListWidgetItem, myQCustomQWidget)
elif int(data['progress']) == 0 and data['transfer_complete'] == False:
myQCustomQWidget = TaskList()
myQCustomQWidget.set_file_name(file_name)
myQCustomQWidget.set_progress(0)
myQCustomQWidget.set_icon(file_path)
myQCustomQWidget.hide_progress_bar(data['transfer_complete'])
myQCustomQWidget.set_label_1(data['file_operation'])
myQCustomQWidget.set_label_2(f'{progress_data_human} of {file_size_human}')
# Create QListWidgetItem
myQListWidgetItem = QListWidgetItem()
# Set size hint
myQListWidgetItem.setSizeHint(myQCustomQWidget.sizeHint())
# Add QListWidgetItem into QListWidget
self.profile_status_pages[profile].listWidget.insertItem(0, myQListWidgetItem)
self.profile_status_pages[profile].listWidget.setItemWidget(myQListWidgetItem, myQCustomQWidget)
elif int(data['progress']) == 100 and data['transfer_complete'] == True:
self.profile_status_pages[profile].listWidget.takeItem(0)
myQCustomQWidget = TaskList()
myQCustomQWidget.set_file_name(file_name)
myQCustomQWidget.set_progress(int(data['progress']))
myQCustomQWidget.set_icon(file_path)
myQCustomQWidget.hide_progress_bar(data['transfer_complete'])
myQCustomQWidget.set_label_1(f"Available in <a href=file:///{absolute_path}>{parent_dir.group(1)}</a>")
myQCustomQWidget.set_label_2(f'{file_size_human}')
# Create QListWidgetItem
myQListWidgetItem = QListWidgetItem()
# Set size hint
myQListWidgetItem.setSizeHint(myQCustomQWidget.sizeHint())
# Add QListWidgetItem into QListWidget
self.profile_status_pages[profile].listWidget.insertItem(0, myQListWidgetItem)
self.profile_status_pages[profile].listWidget.setItemWidget(myQListWidgetItem, myQCustomQWidget)
else:
self.profile_status_pages[profile].listWidget.takeItem(0)
myQCustomQWidget = TaskList()
myQCustomQWidget.set_file_name(file_name)
myQCustomQWidget.set_progress(int(data['progress']))
myQCustomQWidget.set_icon(file_path)
myQCustomQWidget.hide_progress_bar(data['transfer_complete'])
myQCustomQWidget.set_label_1(data['file_operation'])
myQCustomQWidget.set_label_2(f'{progress_data_human} of {file_size_human}')
# Create QListWidgetItem
myQListWidgetItem = QListWidgetItem()
# Set size hint
myQListWidgetItem.setSizeHint(myQCustomQWidget.sizeHint())
# Add QListWidgetItem into QListWidget
self.profile_status_pages[profile].listWidget.insertItem(0, myQListWidgetItem)
self.profile_status_pages[profile].listWidget.setItemWidget(myQListWidgetItem, myQCustomQWidget)
def show_login(self):
# Show login window
self.window1 = QWidget()
self.lw = Ui_LoginWindow()
self.lw.setupUi(self.window1)
self.window1.show()
# use static URL for now. TODO: use auth files in the future
url = 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=d50ca740-c83f-4d1b-b616' \
'-12c519384f0c&scope=Files.ReadWrite%20Files.ReadWrite.all%20Sites.Read.All%20Sites.ReadWrite.All' \
'%20offline_access&response_type=code&prompt=login&redirect_uri=https://login.microsoftonline.com' \
'/common/oauth2/nativeclient '
self.lw.loginFrame.setUrl(QUrl(url))
# Wait for user to login and obtain response URL
self.lw.loginFrame.urlChanged.connect(lambda: self.get_response_url(self.lw.loginFrame.url().toString()))
def get_response_url(self, response_url):
# Get response URL from OneDrive OAuth2
if 'nativeclient?code=' in response_url:
os.system(f'onedrive --auth-response "{response_url}"')
print("Login performed")
self.window1.hide()
else:
pass
def read_config(config_file):
with open(config_file, 'r') as f:
config_string = '[onedrive]\n' + f.read()
config = ConfigParser()
config.read_string(config_string)
return config
def profile_reader():
_profiles = ConfigParser()
_profiles.read(PROFILES_FILE)
profiles = _profiles._sections
for profile in profiles:
profile_name = profile
profile_config_file = profiles[profile]['config_file']
_od_config = read_config(profile_config_file)
od_config = _od_config._sections
profiles[profile].update(od_config)
return profiles
def save_config(new_settings):
# Save OneDrive config after configuration change.
# new_settings.write
print(new_settings)
print(new_settings['onedrive']['sync_dir'])
print('saved')
with open(CONFIG_FILE, 'w') as configfile:
new_settings.write(configfile)
# remove first line (section) from config file
with open(CONFIG_FILE, 'r') as fin:
data = fin.read().splitlines(True)
with open(CONFIG_FILE, 'w') as fout:
fout.writelines(data[1:])
config = ConfigParser()
config.read(new_settings)
def humanize_file_size(num, suffix="B"):
for unit in ["", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi"]:
if abs(num) < 1024.0:
return f"{num:3.1f}{unit}{suffix}"
num /= 1024.0
return f"{num:.1f}Yi{suffix}"
if __name__ == "__main__":
settings = read_config(CONFIG_FILE)
global_config = profile_reader()
app = QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec()

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 B

View File

@@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>list_item_widget</class>
<widget class="QWidget" name="list_item_widget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>426</width>
<height>60</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>50</width>
<height>60</height>
</size>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>2</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<property name="horizontalSpacing">
<number>5</number>
</property>
<property name="verticalSpacing">
<number>2</number>
</property>
<item row="0" column="0" rowspan="5">
<widget class="QToolButton" name="toolButton">
<property name="enabled">
<bool>true</bool>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset>
<normaloff>../resources/images/icons8-clouds-48.png</normaloff>../resources/images/icons8-clouds-48.png</iconset>
</property>
<property name="iconSize">
<size>
<width>30</width>
<height>40</height>
</size>
</property>
</widget>
</item>
<item row="0" column="1" colspan="2">
<widget class="QLabel" name="ls_label_file_name">
<property name="maximumSize">
<size>
<width>340</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>FileName</string>
</property>
</widget>
</item>
<item row="2" column="2" rowspan="2">
<widget class="QLabel" name="ls_label_2">
<property name="text">
<string>60KB of 100KB</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="1" rowspan="2">
<widget class="QLabel" name="ls_label_1">
<property name="text">
<string>Downloading/Uploading </string>
</property>
</widget>
</item>
<item row="1" column="1" colspan="2">
<widget class="QProgressBar" name="ls_progressBar">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>5</height>
</size>
</property>
<property name="value">
<number>24</number>
</property>
<property name="textVisible">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

71
OneDriveGUI/ui/login.ui Normal file
View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>LoginWindow</class>
<widget class="QWidget" name="LoginWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>640</width>
<height>480</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>640</width>
<height>480</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>640</width>
<height>480</height>
</size>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QWebEngineView" name="loginFrame">
<property name="url">
<url>
<string>https://www.seznam.cz/</string>
</url>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>QWebEngineView</class>
<extends>QWidget</extends>
<header location="global">QtWebEngineWidgets/QWebEngineView</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,159 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>497</width>
<height>808</height>
</rect>
</property>
<property name="windowTitle">
<string>OneDriveGUI</string>
</property>
<property name="windowIcon">
<iconset>
<normaloff>../../../OneDriveGUI_POC_recovered-multi/icons8-clouds-48.png</normaloff>../../../OneDriveGUI_POC_recovered-multi/icons8-clouds-48.png</iconset>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QComboBox" name="comboBox"/>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>497</width>
<height>30</height>
</rect>
</property>
<widget class="QMenu" name="menuAdvanced">
<property name="title">
<string>Advanced</string>
</property>
<widget class="QMenu" name="menuDebug">
<property name="title">
<string>Debug</string>
</property>
<widget class="QMenu" name="menuService">
<property name="title">
<string>Service</string>
</property>
<addaction name="actionStart_Service"/>
<addaction name="actionStop_Service"/>
<addaction name="actionRestart_Service"/>
</widget>
<widget class="QMenu" name="menuMonitor">
<property name="title">
<string>Monitor</string>
</property>
<addaction name="actionStart_Monitor"/>
<addaction name="actionStop_Monitor"/>
<addaction name="actionForce_Resync"/>
</widget>
<widget class="QMenu" name="menuStatus">
<property name="title">
<string>Status</string>
</property>
<addaction name="actionRefresh_Service_Status"/>
<addaction name="actionObtain_Sync_Status"/>
</widget>
<addaction name="menuService"/>
<addaction name="menuMonitor"/>
<addaction name="menuStatus"/>
</widget>
<widget class="QMenu" name="menuaccount2">
<property name="title">
<string>account2</string>
</property>
<addaction name="actionstart"/>
</widget>
<addaction name="menuDebug"/>
<addaction name="menuaccount2"/>
</widget>
<addaction name="menuAdvanced"/>
</widget>
<action name="actionfghgfh">
<property name="text">
<string>fghgfh</string>
</property>
</action>
<action name="actionStart_Service">
<property name="text">
<string>Start Service</string>
</property>
</action>
<action name="actionStop_Service">
<property name="text">
<string>Stop Service</string>
</property>
</action>
<action name="actionRestart_Service">
<property name="text">
<string>Restart Service</string>
</property>
</action>
<action name="actionStart_Monitor">
<property name="text">
<string>Start Monitor</string>
</property>
</action>
<action name="actionStop_Monitor">
<property name="text">
<string>Stop Monitor</string>
</property>
</action>
<action name="actionForce_Resync">
<property name="text">
<string>Force Resync</string>
</property>
</action>
<action name="actionRefresh_Service_Status">
<property name="text">
<string>Refresh Service Status</string>
</property>
</action>
<action name="actionObtain_Sync_Status">
<property name="text">
<string>Obtain Sync Status</string>
</property>
</action>
<action name="actionTest_Service">
<property name="text">
<string>Test Service</string>
</property>
</action>
<action name="actionstart">
<property name="text">
<string>start</string>
</property>
</action>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,298 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>589</width>
<height>683</height>
</rect>
</property>
<property name="windowTitle">
<string>OneDriveGUI</string>
</property>
<property name="windowIcon">
<iconset>
<normaloff>../icons8-clouds-48.png</normaloff>../icons8-clouds-48.png</iconset>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>OneDrive Process Status:</string>
</property>
</widget>
</item>
<item row="6" column="1">
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="1">
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Sync Status:</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QProgressBar" name="progressBar">
<property name="maximumSize">
<size>
<width>300</width>
<height>16777215</height>
</size>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QListWidget" name="listWidget">
<property name="selectionMode">
<enum>QAbstractItemView::NoSelection</enum>
</property>
<property name="sortingEnabled">
<bool>false</bool>
</property>
<item>
<property name="text">
<string>New Item</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QTableWidget" name="tableWidget">
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<row>
<property name="text">
<string>row1</string>
</property>
</row>
<row>
<property name="text">
<string>row2</string>
</property>
</row>
<column>
<property name="text">
<string>Task</string>
</property>
</column>
<column>
<property name="text">
<string>Filename</string>
</property>
</column>
<column>
<property name="text">
<string>Progress</string>
</property>
</column>
<column>
<property name="text">
<string>complete</string>
</property>
</column>
<item row="0" column="0">
<property name="text">
<string/>
</property>
</item>
<item row="0" column="2">
<property name="text">
<string/>
</property>
</item>
</widget>
</item>
<item>
<widget class="QTableView" name="tableView"/>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="pushButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Open Folder</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Sync</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_settings">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Settings</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>589</width>
<height>19</height>
</rect>
</property>
<widget class="QMenu" name="menuAdvanced">
<property name="title">
<string>Advanced</string>
</property>
<widget class="QMenu" name="menuDebug">
<property name="title">
<string>Debug</string>
</property>
<widget class="QMenu" name="menuService">
<property name="title">
<string>Service</string>
</property>
<addaction name="actionStart_Service"/>
<addaction name="actionStop_Service"/>
<addaction name="actionRestart_Service"/>
</widget>
<widget class="QMenu" name="menuMonitor">
<property name="title">
<string>Monitor</string>
</property>
<addaction name="actionStart_Monitor"/>
<addaction name="actionStop_Monitor"/>
<addaction name="actionForce_Resync"/>
</widget>
<widget class="QMenu" name="menuStatus">
<property name="title">
<string>Status</string>
</property>
<addaction name="actionRefresh_Service_Status"/>
<addaction name="actionObtain_Sync_Status"/>
</widget>
<addaction name="menuService"/>
<addaction name="menuMonitor"/>
<addaction name="menuStatus"/>
</widget>
<addaction name="menuDebug"/>
</widget>
<addaction name="menuAdvanced"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<action name="actionfghgfh">
<property name="text">
<string>fghgfh</string>
</property>
</action>
<action name="actionStart_Service">
<property name="text">
<string>Start Service</string>
</property>
</action>
<action name="actionStop_Service">
<property name="text">
<string>Stop Service</string>
</property>
</action>
<action name="actionRestart_Service">
<property name="text">
<string>Restart Service</string>
</property>
</action>
<action name="actionStart_Monitor">
<property name="text">
<string>Start Monitor</string>
</property>
</action>
<action name="actionStop_Monitor">
<property name="text">
<string>Stop Monitor</string>
</property>
</action>
<action name="actionForce_Resync">
<property name="text">
<string>Force Resync</string>
</property>
</action>
<action name="actionRefresh_Service_Status">
<property name="text">
<string>Refresh Service Status</string>
</property>
</action>
<action name="actionObtain_Sync_Status">
<property name="text">
<string>Obtain Sync Status</string>
</property>
</action>
<action name="actionTest_Service">
<property name="text">
<string>Test Service</string>
</property>
</action>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,137 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>status_page</class>
<widget class="QWidget" name="status_page">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>441</width>
<height>763</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QFrame" name="frame">
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(0, 120, 212);</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLabel" name="label_3">
<property name="text">
<string>...</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="0" colspan="3">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Onedrive is ...</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QListWidget" name="listWidget">
<property name="selectionMode">
<enum>QAbstractItemView::NoSelection</enum>
</property>
<property name="sortingEnabled">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="pushButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Open Folder</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Sync</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_settings">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Settings</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,258 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>profile_settings</class>
<widget class="QWidget" name="profile_settings">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>588</width>
<height>785</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>2</number>
</property>
<widget class="QWidget" name="exemptions_tab_2">
<attribute name="title">
<string>Monitored Files</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<layout class="QGridLayout" name="gridLayout_5">
<item row="1" column="0" colspan="2">
<widget class="QCheckBox" name="checkBox_3">
<property name="text">
<string>Skip Hidden Files</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Sync Folder:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_6"/>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="pushButton_3">
<property name="text">
<string>Browse</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="label_8">
<property name="text">
<string>Skip files:</string>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_6">
<item row="1" column="0">
<widget class="QLineEdit" name="lineEdit_7"/>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="pushButton_9">
<property name="text">
<string>Add</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="pushButton_10">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Remove</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QListWidget" name="listWidget_3"/>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="label_9">
<property name="text">
<string>Skip directories:</string>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_7">
<item row="0" column="1">
<widget class="QPushButton" name="pushButton_11">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Remove</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QListWidget" name="listWidget_4">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLineEdit" name="lineEdit_8"/>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="pushButton_12">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Add</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="logging_tab_2">
<attribute name="title">
<string>Logging</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<layout class="QGridLayout" name="gridLayout_8">
<item row="0" column="0" colspan="2">
<widget class="QCheckBox" name="checkBox_4">
<property name="text">
<string>Enable Logging</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Log location:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="lineEdit_9"/>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="pushButton_4">
<property name="text">
<string>Browse</string>
</property>
</widget>
</item>
</layout>
</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>
<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>71</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>(Mbit/s)</string>
</property>
</widget>
</widget>
<widget class="QWidget" name="tab_6">
<attribute name="title">
<string>Page</string>
</attribute>
</widget>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QPushButton" name="pushButton_13">
<property name="text">
<string>Save</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>settings_window</class>
<widget class="QWidget" name="settings_window">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>601</width>
<height>817</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QListWidget" name="listWidget">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_3">
<property name="text">
<string>Remove profile</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>Create new profile</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>Import existing profile</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

23
OneDriveGUI/ui/test.ui Normal file
View File

@@ -0,0 +1,23 @@
<?xml version="1.0"?>
<ui version="4.0">
<author></author>
<comment></comment>
<exportmacro></exportmacro>
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>240</width>
<height>320</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
</widget>
<pixmapfunction></pixmapfunction>
<connections/>
</ui>

View File

@@ -0,0 +1,86 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'list_item_widget.ui'
##
## Created by: Qt User Interface Compiler version 6.2.2
##
## 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, QGridLayout, QLabel, QProgressBar,
QSizePolicy, QToolButton, QWidget)
class Ui_list_item_widget(object):
def setupUi(self, list_item_widget):
if not list_item_widget.objectName():
list_item_widget.setObjectName(u"list_item_widget")
list_item_widget.resize(426, 60)
list_item_widget.setMinimumSize(QSize(50, 60))
self.gridLayout = QGridLayout(list_item_widget)
self.gridLayout.setObjectName(u"gridLayout")
self.gridLayout.setHorizontalSpacing(5)
self.gridLayout.setVerticalSpacing(2)
self.gridLayout.setContentsMargins(5, 2, 2, 6)
self.toolButton = QToolButton(list_item_widget)
self.toolButton.setObjectName(u"toolButton")
self.toolButton.setEnabled(True)
self.toolButton.setMinimumSize(QSize(0, 0))
self.toolButton.setAutoFillBackground(False)
icon = QIcon()
icon.addFile(u"../resources/images/icons8-clouds-48.png", QSize(), QIcon.Normal, QIcon.Off)
self.toolButton.setIcon(icon)
self.toolButton.setIconSize(QSize(30, 40))
self.gridLayout.addWidget(self.toolButton, 0, 0, 5, 1)
self.ls_label_file_name = QLabel(list_item_widget)
self.ls_label_file_name.setObjectName(u"ls_label_file_name")
self.ls_label_file_name.setMaximumSize(QSize(340, 16777215))
font = QFont()
font.setPointSize(10)
font.setBold(True)
self.ls_label_file_name.setFont(font)
self.gridLayout.addWidget(self.ls_label_file_name, 0, 1, 1, 2)
self.ls_label_2 = QLabel(list_item_widget)
self.ls_label_2.setObjectName(u"ls_label_2")
self.ls_label_2.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.gridLayout.addWidget(self.ls_label_2, 2, 2, 2, 1)
self.ls_label_1 = QLabel(list_item_widget)
self.ls_label_1.setObjectName(u"ls_label_1")
self.gridLayout.addWidget(self.ls_label_1, 2, 1, 2, 1)
self.ls_progressBar = QProgressBar(list_item_widget)
self.ls_progressBar.setObjectName(u"ls_progressBar")
self.ls_progressBar.setMaximumSize(QSize(16777215, 5))
self.ls_progressBar.setValue(24)
self.ls_progressBar.setTextVisible(False)
self.gridLayout.addWidget(self.ls_progressBar, 1, 1, 1, 2)
self.retranslateUi(list_item_widget)
QMetaObject.connectSlotsByName(list_item_widget)
# setupUi
def retranslateUi(self, list_item_widget):
list_item_widget.setWindowTitle(QCoreApplication.translate("list_item_widget", u"Form", None))
self.toolButton.setText(QCoreApplication.translate("list_item_widget", u"...", None))
self.ls_label_file_name.setText(QCoreApplication.translate("list_item_widget", u"FileName", None))
self.ls_label_2.setText(QCoreApplication.translate("list_item_widget", u"60KB of 100KB", None))
self.ls_label_1.setText(QCoreApplication.translate("list_item_widget", u"Downloading/Uploading ", None))
# retranslateUi

View File

@@ -0,0 +1,52 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'login.ui'
##
## Created by: Qt User Interface Compiler version 6.2.2
##
## 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.QtWebEngineWidgets import QWebEngineView
from PySide6.QtWidgets import (QApplication, QHBoxLayout, QSizePolicy, QWidget)
class Ui_LoginWindow(object):
def setupUi(self, LoginWindow):
if not LoginWindow.objectName():
LoginWindow.setObjectName(u"LoginWindow")
LoginWindow.resize(640, 480)
sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(LoginWindow.sizePolicy().hasHeightForWidth())
LoginWindow.setSizePolicy(sizePolicy)
LoginWindow.setMinimumSize(QSize(640, 480))
LoginWindow.setMaximumSize(QSize(640, 480))
self.horizontalLayout = QHBoxLayout(LoginWindow)
self.horizontalLayout.setSpacing(0)
self.horizontalLayout.setObjectName(u"horizontalLayout")
self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
self.loginFrame = QWebEngineView(LoginWindow)
self.loginFrame.setObjectName(u"loginFrame")
self.loginFrame.setUrl(QUrl(u"http://www.seznam.cz"))
self.horizontalLayout.addWidget(self.loginFrame)
self.retranslateUi(LoginWindow)
QMetaObject.connectSlotsByName(LoginWindow)
# setupUi
def retranslateUi(self, LoginWindow):
LoginWindow.setWindowTitle(QCoreApplication.translate("LoginWindow", u"Form", None))
# retranslateUi

View File

@@ -0,0 +1,127 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'mainwindow.ui'
##
## Created by: Qt User Interface Compiler version 6.2.2
##
## 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 (QAction, QBrush, QColor, QConicalGradient,
QCursor, QFont, QFontDatabase, QGradient,
QIcon, QImage, QKeySequence, QLinearGradient,
QPainter, QPalette, QPixmap, QRadialGradient,
QTransform)
from PySide6.QtWidgets import (QApplication, QComboBox, QMainWindow, QMenu,
QMenuBar, QSizePolicy, QVBoxLayout, QWidget)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
if not MainWindow.objectName():
MainWindow.setObjectName(u"MainWindow")
MainWindow.resize(497, 808)
icon = QIcon()
icon.addFile(u"../../../OneDriveGUI_POC_recovered-multi/icons8-clouds-48.png", QSize(), QIcon.Normal, QIcon.Off)
MainWindow.setWindowIcon(icon)
self.actionfghgfh = QAction(MainWindow)
self.actionfghgfh.setObjectName(u"actionfghgfh")
self.actionStart_Service = QAction(MainWindow)
self.actionStart_Service.setObjectName(u"actionStart_Service")
self.actionStop_Service = QAction(MainWindow)
self.actionStop_Service.setObjectName(u"actionStop_Service")
self.actionRestart_Service = QAction(MainWindow)
self.actionRestart_Service.setObjectName(u"actionRestart_Service")
self.actionStart_Monitor = QAction(MainWindow)
self.actionStart_Monitor.setObjectName(u"actionStart_Monitor")
self.actionStop_Monitor = QAction(MainWindow)
self.actionStop_Monitor.setObjectName(u"actionStop_Monitor")
self.actionForce_Resync = QAction(MainWindow)
self.actionForce_Resync.setObjectName(u"actionForce_Resync")
self.actionRefresh_Service_Status = QAction(MainWindow)
self.actionRefresh_Service_Status.setObjectName(u"actionRefresh_Service_Status")
self.actionObtain_Sync_Status = QAction(MainWindow)
self.actionObtain_Sync_Status.setObjectName(u"actionObtain_Sync_Status")
self.actionTest_Service = QAction(MainWindow)
self.actionTest_Service.setObjectName(u"actionTest_Service")
self.actionstart = QAction(MainWindow)
self.actionstart.setObjectName(u"actionstart")
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName(u"centralwidget")
self.verticalLayout = QVBoxLayout(self.centralwidget)
self.verticalLayout.setSpacing(0)
self.verticalLayout.setObjectName(u"verticalLayout")
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_2 = QVBoxLayout()
self.verticalLayout_2.setObjectName(u"verticalLayout_2")
self.comboBox = QComboBox(self.centralwidget)
self.comboBox.setObjectName(u"comboBox")
self.verticalLayout_2.addWidget(self.comboBox)
self.verticalLayout.addLayout(self.verticalLayout_2)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QMenuBar(MainWindow)
self.menubar.setObjectName(u"menubar")
self.menubar.setGeometry(QRect(0, 0, 497, 30))
self.menuAdvanced = QMenu(self.menubar)
self.menuAdvanced.setObjectName(u"menuAdvanced")
self.menuDebug = QMenu(self.menuAdvanced)
self.menuDebug.setObjectName(u"menuDebug")
self.menuService = QMenu(self.menuDebug)
self.menuService.setObjectName(u"menuService")
self.menuMonitor = QMenu(self.menuDebug)
self.menuMonitor.setObjectName(u"menuMonitor")
self.menuStatus = QMenu(self.menuDebug)
self.menuStatus.setObjectName(u"menuStatus")
self.menuaccount2 = QMenu(self.menuAdvanced)
self.menuaccount2.setObjectName(u"menuaccount2")
MainWindow.setMenuBar(self.menubar)
self.menubar.addAction(self.menuAdvanced.menuAction())
self.menuAdvanced.addAction(self.menuDebug.menuAction())
self.menuAdvanced.addAction(self.menuaccount2.menuAction())
self.menuDebug.addAction(self.menuService.menuAction())
self.menuDebug.addAction(self.menuMonitor.menuAction())
self.menuDebug.addAction(self.menuStatus.menuAction())
self.menuService.addAction(self.actionStart_Service)
self.menuService.addAction(self.actionStop_Service)
self.menuService.addAction(self.actionRestart_Service)
self.menuMonitor.addAction(self.actionStart_Monitor)
self.menuMonitor.addAction(self.actionStop_Monitor)
self.menuMonitor.addAction(self.actionForce_Resync)
self.menuStatus.addAction(self.actionRefresh_Service_Status)
self.menuStatus.addAction(self.actionObtain_Sync_Status)
self.menuaccount2.addAction(self.actionstart)
self.retranslateUi(MainWindow)
QMetaObject.connectSlotsByName(MainWindow)
# setupUi
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"OneDriveGUI", None))
self.actionfghgfh.setText(QCoreApplication.translate("MainWindow", u"fghgfh", None))
self.actionStart_Service.setText(QCoreApplication.translate("MainWindow", u"Start Service", None))
self.actionStop_Service.setText(QCoreApplication.translate("MainWindow", u"Stop Service", None))
self.actionRestart_Service.setText(QCoreApplication.translate("MainWindow", u"Restart Service", None))
self.actionStart_Monitor.setText(QCoreApplication.translate("MainWindow", u"Start Monitor", None))
self.actionStop_Monitor.setText(QCoreApplication.translate("MainWindow", u"Stop Monitor", None))
self.actionForce_Resync.setText(QCoreApplication.translate("MainWindow", u"Force Resync", None))
self.actionRefresh_Service_Status.setText(QCoreApplication.translate("MainWindow", u"Refresh Service Status", None))
self.actionObtain_Sync_Status.setText(QCoreApplication.translate("MainWindow", u"Obtain Sync Status", None))
self.actionTest_Service.setText(QCoreApplication.translate("MainWindow", u"Test Service", None))
self.actionstart.setText(QCoreApplication.translate("MainWindow", u"start", None))
self.menuAdvanced.setTitle(QCoreApplication.translate("MainWindow", u"Advanced", None))
self.menuDebug.setTitle(QCoreApplication.translate("MainWindow", u"Debug", None))
self.menuService.setTitle(QCoreApplication.translate("MainWindow", u"Service", None))
self.menuMonitor.setTitle(QCoreApplication.translate("MainWindow", u"Monitor", None))
self.menuStatus.setTitle(QCoreApplication.translate("MainWindow", u"Status", None))
self.menuaccount2.setTitle(QCoreApplication.translate("MainWindow", u"account2", None))
# retranslateUi

View File

@@ -0,0 +1,110 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'process_status_page.ui'
##
## Created by: Qt User Interface Compiler version 6.2.2
##
## 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 (QAbstractItemView, QApplication, QFrame, QGridLayout,
QHBoxLayout, QLabel, QListWidget, QListWidgetItem,
QPushButton, QSizePolicy, QVBoxLayout, QWidget)
class Ui_status_page(object):
def setupUi(self, status_page):
if not status_page.objectName():
status_page.setObjectName(u"status_page")
status_page.resize(441, 763)
self.verticalLayout = QVBoxLayout(status_page)
self.verticalLayout.setSpacing(0)
self.verticalLayout.setObjectName(u"verticalLayout")
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.frame = QFrame(status_page)
self.frame.setObjectName(u"frame")
self.frame.setMinimumSize(QSize(0, 100))
self.frame.setStyleSheet(u"background-color: rgb(0, 120, 212);")
self.frame.setFrameShape(QFrame.StyledPanel)
self.frame.setFrameShadow(QFrame.Raised)
self.gridLayout = QGridLayout(self.frame)
self.gridLayout.setObjectName(u"gridLayout")
self.label_4 = QLabel(self.frame)
self.label_4.setObjectName(u"label_4")
self.gridLayout.addWidget(self.label_4, 2, 0, 1, 1)
self.label_3 = QLabel(self.frame)
self.label_3.setObjectName(u"label_3")
self.label_3.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.gridLayout.addWidget(self.label_3, 2, 2, 1, 1)
self.label_6 = QLabel(self.frame)
self.label_6.setObjectName(u"label_6")
self.label_6.setAlignment(Qt.AlignCenter)
self.gridLayout.addWidget(self.label_6, 1, 0, 1, 3)
self.verticalLayout.addWidget(self.frame)
self.listWidget = QListWidget(status_page)
self.listWidget.setObjectName(u"listWidget")
self.listWidget.setSelectionMode(QAbstractItemView.NoSelection)
self.listWidget.setSortingEnabled(False)
self.verticalLayout.addWidget(self.listWidget)
self.horizontalLayout = QHBoxLayout()
self.horizontalLayout.setObjectName(u"horizontalLayout")
self.pushButton = QPushButton(status_page)
self.pushButton.setObjectName(u"pushButton")
sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth())
self.pushButton.setSizePolicy(sizePolicy)
self.horizontalLayout.addWidget(self.pushButton)
self.pushButton_2 = QPushButton(status_page)
self.pushButton_2.setObjectName(u"pushButton_2")
sizePolicy.setHeightForWidth(self.pushButton_2.sizePolicy().hasHeightForWidth())
self.pushButton_2.setSizePolicy(sizePolicy)
self.horizontalLayout.addWidget(self.pushButton_2)
self.pushButton_settings = QPushButton(status_page)
self.pushButton_settings.setObjectName(u"pushButton_settings")
sizePolicy.setHeightForWidth(self.pushButton_settings.sizePolicy().hasHeightForWidth())
self.pushButton_settings.setSizePolicy(sizePolicy)
self.horizontalLayout.addWidget(self.pushButton_settings)
self.verticalLayout.addLayout(self.horizontalLayout)
self.retranslateUi(status_page)
QMetaObject.connectSlotsByName(status_page)
# setupUi
def retranslateUi(self, status_page):
status_page.setWindowTitle(QCoreApplication.translate("status_page", u"Form", None))
self.label_4.setText(QCoreApplication.translate("status_page", u"...", None))
self.label_3.setText(QCoreApplication.translate("status_page", u"...", None))
self.label_6.setText(QCoreApplication.translate("status_page", u"Onedrive is ...", None))
self.pushButton.setText(QCoreApplication.translate("status_page", u"Open Folder", None))
self.pushButton_2.setText(QCoreApplication.translate("status_page", u"Sync", None))
self.pushButton_settings.setText(QCoreApplication.translate("status_page", u"Settings", None))
# retranslateUi

View File

@@ -0,0 +1,236 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'profile_settings_page.ui'
##
## Created by: Qt User Interface Compiler version 6.2.2
##
## 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, QCheckBox, QGridLayout, QLabel,
QLineEdit, QListWidget, QListWidgetItem, QPushButton,
QSizePolicy, QSpacerItem, QTabWidget, QVBoxLayout,
QWidget)
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)
self.verticalLayout_2 = QVBoxLayout(profile_settings)
self.verticalLayout_2.setObjectName(u"verticalLayout_2")
self.verticalLayout = QVBoxLayout()
self.verticalLayout.setObjectName(u"verticalLayout")
self.tabWidget = QTabWidget(profile_settings)
self.tabWidget.setObjectName(u"tabWidget")
self.exemptions_tab_2 = QWidget()
self.exemptions_tab_2.setObjectName(u"exemptions_tab_2")
self.verticalLayout_5 = QVBoxLayout(self.exemptions_tab_2)
self.verticalLayout_5.setObjectName(u"verticalLayout_5")
self.gridLayout_5 = QGridLayout()
self.gridLayout_5.setObjectName(u"gridLayout_5")
self.checkBox_3 = QCheckBox(self.exemptions_tab_2)
self.checkBox_3.setObjectName(u"checkBox_3")
self.gridLayout_5.addWidget(self.checkBox_3, 1, 0, 1, 2)
self.label_7 = QLabel(self.exemptions_tab_2)
self.label_7.setObjectName(u"label_7")
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.gridLayout_5.addWidget(self.lineEdit_6, 0, 1, 1, 1)
self.pushButton_3 = QPushButton(self.exemptions_tab_2)
self.pushButton_3.setObjectName(u"pushButton_3")
self.gridLayout_5.addWidget(self.pushButton_3, 0, 2, 1, 1)
self.verticalLayout_5.addLayout(self.gridLayout_5)
self.label_8 = QLabel(self.exemptions_tab_2)
self.label_8.setObjectName(u"label_8")
self.verticalLayout_5.addWidget(self.label_8)
self.gridLayout_6 = QGridLayout()
self.gridLayout_6.setObjectName(u"gridLayout_6")
self.lineEdit_7 = QLineEdit(self.exemptions_tab_2)
self.lineEdit_7.setObjectName(u"lineEdit_7")
self.gridLayout_6.addWidget(self.lineEdit_7, 1, 0, 1, 1)
self.pushButton_9 = QPushButton(self.exemptions_tab_2)
self.pushButton_9.setObjectName(u"pushButton_9")
self.gridLayout_6.addWidget(self.pushButton_9, 1, 1, 1, 1)
self.pushButton_10 = QPushButton(self.exemptions_tab_2)
self.pushButton_10.setObjectName(u"pushButton_10")
sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton_10.sizePolicy().hasHeightForWidth())
self.pushButton_10.setSizePolicy(sizePolicy)
self.gridLayout_6.addWidget(self.pushButton_10, 0, 1, 1, 1)
self.listWidget_3 = QListWidget(self.exemptions_tab_2)
self.listWidget_3.setObjectName(u"listWidget_3")
self.gridLayout_6.addWidget(self.listWidget_3, 0, 0, 1, 1)
self.verticalLayout_5.addLayout(self.gridLayout_6)
self.label_9 = QLabel(self.exemptions_tab_2)
self.label_9.setObjectName(u"label_9")
self.verticalLayout_5.addWidget(self.label_9)
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")
sizePolicy1 = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Minimum)
sizePolicy1.setHorizontalStretch(0)
sizePolicy1.setVerticalStretch(0)
sizePolicy1.setHeightForWidth(self.pushButton_11.sizePolicy().hasHeightForWidth())
self.pushButton_11.setSizePolicy(sizePolicy1)
self.gridLayout_7.addWidget(self.pushButton_11, 0, 1, 1, 1)
self.listWidget_4 = QListWidget(self.exemptions_tab_2)
self.listWidget_4.setObjectName(u"listWidget_4")
sizePolicy2 = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Expanding)
sizePolicy2.setHorizontalStretch(0)
sizePolicy2.setVerticalStretch(0)
sizePolicy2.setHeightForWidth(self.listWidget_4.sizePolicy().hasHeightForWidth())
self.listWidget_4.setSizePolicy(sizePolicy2)
self.gridLayout_7.addWidget(self.listWidget_4, 0, 0, 1, 1)
self.lineEdit_8 = QLineEdit(self.exemptions_tab_2)
self.lineEdit_8.setObjectName(u"lineEdit_8")
self.gridLayout_7.addWidget(self.lineEdit_8, 1, 0, 1, 1)
self.pushButton_12 = QPushButton(self.exemptions_tab_2)
self.pushButton_12.setObjectName(u"pushButton_12")
sizePolicy3 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
sizePolicy3.setHorizontalStretch(0)
sizePolicy3.setVerticalStretch(0)
sizePolicy3.setHeightForWidth(self.pushButton_12.sizePolicy().hasHeightForWidth())
self.pushButton_12.setSizePolicy(sizePolicy3)
self.gridLayout_7.addWidget(self.pushButton_12, 1, 1, 1, 1)
self.verticalLayout_5.addLayout(self.gridLayout_7)
self.tabWidget.addTab(self.exemptions_tab_2, "")
self.logging_tab_2 = QWidget()
self.logging_tab_2.setObjectName(u"logging_tab_2")
self.verticalLayout_6 = QVBoxLayout(self.logging_tab_2)
self.verticalLayout_6.setObjectName(u"verticalLayout_6")
self.gridLayout_8 = QGridLayout()
self.gridLayout_8.setObjectName(u"gridLayout_8")
self.checkBox_4 = QCheckBox(self.logging_tab_2)
self.checkBox_4.setObjectName(u"checkBox_4")
self.gridLayout_8.addWidget(self.checkBox_4, 0, 0, 1, 2)
self.label_10 = QLabel(self.logging_tab_2)
self.label_10.setObjectName(u"label_10")
self.gridLayout_8.addWidget(self.label_10, 1, 0, 1, 1)
self.lineEdit_9 = QLineEdit(self.logging_tab_2)
self.lineEdit_9.setObjectName(u"lineEdit_9")
self.gridLayout_8.addWidget(self.lineEdit_9, 1, 1, 1, 1)
self.pushButton_4 = QPushButton(self.logging_tab_2)
self.pushButton_4.setObjectName(u"pushButton_4")
self.gridLayout_8.addWidget(self.pushButton_4, 1, 2, 1, 1)
self.verticalLayout_6.addLayout(self.gridLayout_8)
self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
self.verticalLayout_6.addItem(self.verticalSpacer_2)
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, 71, 16))
self.tabWidget.addTab(self.tab_5, "")
self.tab_6 = QWidget()
self.tab_6.setObjectName(u"tab_6")
self.tabWidget.addTab(self.tab_6, "")
self.verticalLayout.addWidget(self.tabWidget)
self.verticalLayout_2.addLayout(self.verticalLayout)
self.pushButton_13 = QPushButton(profile_settings)
self.pushButton_13.setObjectName(u"pushButton_13")
self.verticalLayout_2.addWidget(self.pushButton_13)
self.retranslateUi(profile_settings)
self.tabWidget.setCurrentIndex(2)
QMetaObject.connectSlotsByName(profile_settings)
# setupUi
def retranslateUi(self, profile_settings):
profile_settings.setWindowTitle(QCoreApplication.translate("profile_settings", u"Form", None))
self.checkBox_3.setText(QCoreApplication.translate("profile_settings", u"Skip Hidden Files", None))
self.label_7.setText(QCoreApplication.translate("profile_settings", u"Sync Folder:", None))
self.pushButton_3.setText(QCoreApplication.translate("profile_settings", u"Browse", None))
self.label_8.setText(QCoreApplication.translate("profile_settings", u"Skip files:", None))
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.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.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_13.setText(QCoreApplication.translate("profile_settings", u"Save", None))
# retranslateUi

View File

@@ -0,0 +1,71 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'settings.ui'
##
## Created by: Qt User Interface Compiler version 6.2.2
##
## 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, QHBoxLayout, QListWidget, QListWidgetItem,
QPushButton, QSizePolicy, QVBoxLayout, QWidget)
class Ui_settings_window(object):
def setupUi(self, settings_window):
if not settings_window.objectName():
settings_window.setObjectName(u"settings_window")
settings_window.resize(601, 817)
self.verticalLayout_2 = QVBoxLayout(settings_window)
self.verticalLayout_2.setObjectName(u"verticalLayout_2")
self.horizontalLayout = QHBoxLayout()
self.horizontalLayout.setObjectName(u"horizontalLayout")
self.verticalLayout = QVBoxLayout()
self.verticalLayout.setObjectName(u"verticalLayout")
self.listWidget = QListWidget(settings_window)
self.listWidget.setObjectName(u"listWidget")
self.listWidget.setMinimumSize(QSize(200, 0))
self.verticalLayout.addWidget(self.listWidget)
self.pushButton_3 = QPushButton(settings_window)
self.pushButton_3.setObjectName(u"pushButton_3")
self.verticalLayout.addWidget(self.pushButton_3)
self.pushButton_2 = QPushButton(settings_window)
self.pushButton_2.setObjectName(u"pushButton_2")
self.verticalLayout.addWidget(self.pushButton_2)
self.pushButton = QPushButton(settings_window)
self.pushButton.setObjectName(u"pushButton")
self.verticalLayout.addWidget(self.pushButton)
self.horizontalLayout.addLayout(self.verticalLayout)
self.verticalLayout_2.addLayout(self.horizontalLayout)
self.retranslateUi(settings_window)
QMetaObject.connectSlotsByName(settings_window)
# setupUi
def retranslateUi(self, settings_window):
settings_window.setWindowTitle(QCoreApplication.translate("settings_window", u"Form", None))
self.pushButton_3.setText(QCoreApplication.translate("settings_window", u"Remove profile", None))
self.pushButton_2.setText(QCoreApplication.translate("settings_window", u"Create new profile", None))
self.pushButton.setText(QCoreApplication.translate("settings_window", u"Import existing profile", None))
# retranslateUi

2
requirements.txt Normal file
View File

@@ -0,0 +1,2 @@
psutil==5.9.0
PySide6==6.2.2.1