mirror of
https://github.com/bpozdena/OneDriveGUI.git
synced 2025-04-19 04:22:15 +03:00
-implemented 'Browse' button functionality
-several small GUI adjustments
This commit is contained in:
parent
ee331846c2
commit
d9b2bc79c0
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,4 +1,4 @@
|
||||
venv/
|
||||
.qt_for_python/
|
||||
OneDriveGUI/__thrash/
|
||||
scr/__thrash/
|
||||
__pycache__/
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Installation steps
|
||||
|
||||
1) Ensure [OneDrive for Linux](https://abraunegg.github.io/) is instelled based on [instructions](https://github.com/abraunegg/onedrive/blob/master/docs/INSTALL.md) for your distro.
|
||||
1) Ensure [OneDrive for Linux](https://abraunegg.github.io/) is installed based on [instructions](https://github.com/abraunegg/onedrive/blob/master/docs/INSTALL.md) for your distro.
|
||||
1) Ensure Python3 and [pip](https://pip.pypa.io/en/stable/installation/) are installed on your system.
|
||||
1) Clone or download content this repository.
|
||||
1) (Optional) Create and activate a Python virtual environment:
|
||||
@ -15,6 +15,6 @@
|
||||
|
||||
1) Start OneDrive GUI:
|
||||
```sh
|
||||
cd OneDriveGUI/
|
||||
cd src/
|
||||
python3 OneDriveGUI.py
|
||||
```
|
||||
|
@ -1,5 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from optparse import Option
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
@ -7,7 +8,7 @@ import sys
|
||||
from configparser import ConfigParser
|
||||
|
||||
from PySide6.QtCore import QThread, QTimer, QUrl, Signal, QFileInfo, Qt, QDir
|
||||
from PySide6.QtGui import QIcon, QPixmap
|
||||
from PySide6.QtGui import QIcon, QPixmap, QDesktopServices
|
||||
from PySide6.QtWidgets import (
|
||||
QWidget,
|
||||
QApplication,
|
||||
@ -248,12 +249,9 @@ class wizardPage_create(QWizardPage):
|
||||
return False
|
||||
|
||||
def get_dir_name(self):
|
||||
self.file_dialog = QFileDialog.getExistingDirectory(
|
||||
dir=os.path.expanduser("~/")
|
||||
) # getOpenFileName(self, dir=os.path.expanduser("~/.config/"))
|
||||
self.file_dialog = QFileDialog.getExistingDirectory(dir=os.path.expanduser("~/"))
|
||||
|
||||
dir_name = self.file_dialog
|
||||
|
||||
print(dir_name)
|
||||
self.lineEdit_sync_dir.setText(dir_name)
|
||||
|
||||
@ -468,14 +466,27 @@ class SettingsWindow(QWidget, Ui_settings_window):
|
||||
|
||||
self.horizontalLayout.addLayout(self.stackedLayout)
|
||||
self.listWidget_profiles.itemSelectionChanged.connect(self.switch_account_settings_page)
|
||||
|
||||
self.pushButton_open_create.clicked.connect(self.create_new_profile_window)
|
||||
self.pushButton_open_create.hide()
|
||||
self.pushButton_open_import.clicked.connect(self.import_profile_window)
|
||||
self.pushButton_open_import.hide()
|
||||
|
||||
self.pushButton_remove.clicked.connect(self.remove_profile)
|
||||
self.pushButton_create_import.clicked.connect(self.show_setup_wizard)
|
||||
self.show()
|
||||
|
||||
def closeEvent(self, event):
|
||||
event.ignore()
|
||||
self.hide()
|
||||
|
||||
def switch_account_settings_page(self):
|
||||
self.stackedLayout.setCurrentIndex(self.listWidget_profiles.currentRow())
|
||||
|
||||
def show_setup_wizard(self):
|
||||
self.setup_wizard = SetupWizard()
|
||||
self.setup_wizard.show()
|
||||
|
||||
def create_new_profile_window(self):
|
||||
# Show profile creation window
|
||||
self.create_window = QWidget()
|
||||
@ -646,11 +657,20 @@ class ProfileStatusPage(QWidget, Ui_status_page):
|
||||
self.toolButton_start.clicked.connect(self.start_monitor)
|
||||
self.toolButton_stop.clicked.connect(self.stop_monitor)
|
||||
|
||||
# Open Sync Dir
|
||||
self.pushButton_open_dir.clicked.connect(self.open_sync_dir)
|
||||
|
||||
# Open Settings window
|
||||
self.pushButton_settings.clicked.connect(lambda: settings_window.show())
|
||||
|
||||
self.pushButton_2.setText("Wizard")
|
||||
self.pushButton_2.clicked.connect(self.show_setup_wizard)
|
||||
self.pushButton_2.hide()
|
||||
|
||||
def open_sync_dir(self):
|
||||
sync_dir = global_config[self.profile_name]["onedrive"]["sync_dir"].strip('"')
|
||||
url = QUrl(os.path.expanduser(sync_dir))
|
||||
QDesktopServices.openUrl(url)
|
||||
|
||||
def show_setup_wizard(self):
|
||||
self.setup_wizard = SetupWizard()
|
||||
@ -696,6 +716,8 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
|
||||
self.checkBox_sync_root_files.setChecked(self.get_check_box_state("sync_root_files"))
|
||||
self.checkBox_sync_root_files.stateChanged.connect(self.set_check_box_state)
|
||||
|
||||
self.pushButton_sync_dir_browse.clicked.connect(self.get_sync_dir_name)
|
||||
|
||||
#
|
||||
# Excluded files tab
|
||||
#
|
||||
@ -798,7 +820,7 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
|
||||
self.lineEdit_azure_tenant_id.setText(self.temp_profile_config["azure_tenant_id"].strip('"'))
|
||||
self.lineEdit_azure_tenant_id.textChanged.connect(self.set_line_edit_value)
|
||||
|
||||
# Rate limit tab
|
||||
# Rate limit
|
||||
self.spinBox_rate_limit.setValue(int(self.temp_profile_config["rate_limit"].strip('"')))
|
||||
self.horizontalSlider_rate_limit.setValue(int(self.temp_profile_config["rate_limit"].strip('"')))
|
||||
self.label_rate_limit_mbps.setText(
|
||||
@ -846,6 +868,8 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
|
||||
self.lineEdit_log_dir.setText(self.temp_profile_config["log_dir"].strip('"'))
|
||||
self.lineEdit_log_dir.textChanged.connect(self.set_log_dir)
|
||||
|
||||
self.pushButton_log_dir_browse.clicked.connect(self.get_log_dir_name)
|
||||
|
||||
self.checkBox_enable_logging.setChecked(self.get_check_box_state("enable_logging"))
|
||||
self.checkBox_enable_logging.stateChanged.connect(self.set_check_box_state)
|
||||
|
||||
@ -879,9 +903,24 @@ class ProfileSettingsPage(QWidget, Ui_profile_settings):
|
||||
# self.pushButton_discart.clicked.connect(self.discart_changes)
|
||||
self.pushButton_save.clicked.connect(self.save_profile_settings)
|
||||
|
||||
|
||||
def str2bool(self, value):
|
||||
return value.lower() in "true"
|
||||
|
||||
def get_sync_dir_name(self):
|
||||
self.file_dialog = QFileDialog.getExistingDirectory(dir=os.path.expanduser("~/"))
|
||||
|
||||
sync_dir = self.file_dialog
|
||||
print(sync_dir)
|
||||
self.lineEdit_sync_dir.setText(sync_dir)
|
||||
|
||||
def get_log_dir_name(self):
|
||||
self.file_dialog = QFileDialog.getExistingDirectory(dir=os.path.expanduser("~/"))
|
||||
|
||||
log_dir = self.file_dialog
|
||||
print(log_dir)
|
||||
self.lineEdit_log_dir.setText(log_dir)
|
||||
|
||||
def set_line_edit_value(self, value):
|
||||
_property = self.sender().objectName()
|
||||
property = re.search(r"lineEdit_(.+)", _property).group(1)
|
||||
@ -1259,14 +1298,15 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
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)
|
||||
setting_action.triggered.connect(self.show_settings_window)
|
||||
quit_action = menu.addAction("Quit")
|
||||
quit_action.triggered.connect(sys.exit)
|
||||
|
||||
self.tray.activated.connect(lambda: self.hide() if self.isVisible() else self.show())
|
||||
self.tray.setIcon(icon)
|
||||
self.tray.setContextMenu(menu)
|
||||
self.tray.show()
|
||||
self.tray.setToolTip("This is OneDriveGUI")
|
||||
self.tray.setToolTip("OneDriveGUI")
|
||||
|
||||
else:
|
||||
self.tray = None
|
||||
@ -1276,6 +1316,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.refresh_process_status.timeout.connect(lambda: self.onedrive_process_status())
|
||||
self.refresh_process_status.start(500)
|
||||
|
||||
def closeEvent(self, event):
|
||||
event.ignore()
|
||||
self.hide()
|
||||
|
||||
def show_setup_wizard(self):
|
||||
self.setup_wizard = SetupWizard()
|
||||
self.setup_wizard.show()
|
||||
@ -1440,6 +1484,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
self.lw = Ui_LoginWindow()
|
||||
self.lw.setupUi(self.window1)
|
||||
self.window1.show()
|
||||
self.window1.setWindowTitle(f"OneDrive login for profile {profile}")
|
||||
|
||||
self.config_file = global_config[profile]["config_file"].strip('"')
|
||||
self.config_dir = re.search(r"(.+)/.+$", self.config_file).group(1)
|
||||
|
@ -29,7 +29,7 @@
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
<string>OneDrive Login</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<property name="spacing">
|
||||
@ -51,7 +51,7 @@
|
||||
<widget class="QWebEngineView" name="loginFrame">
|
||||
<property name="url">
|
||||
<url>
|
||||
<string>https://www.seznam.cz/</string>
|
||||
<string>about:blank</string>
|
||||
</url>
|
||||
</property>
|
||||
</widget>
|
||||
|
@ -7,9 +7,21 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>420</width>
|
||||
<height>807</height>
|
||||
<height>800</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>420</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>420</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>OneDriveGUI</string>
|
||||
</property>
|
||||
|
@ -154,7 +154,7 @@
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="pushButton">
|
||||
<widget class="QPushButton" name="pushButton_open_dir">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
@ -162,7 +162,7 @@
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Open Folder</string>
|
||||
<string>Open Sync Directory</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -48,7 +48,7 @@
|
||||
</size>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>5</number>
|
||||
<number>3</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="exemptions_tab_2">
|
||||
<attribute name="title">
|
||||
@ -64,7 +64,7 @@
|
||||
<item row="1" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout_5">
|
||||
<item row="0" column="2">
|
||||
<widget class="QPushButton" name="pushButton_3">
|
||||
<widget class="QPushButton" name="pushButton_sync_dir_browse">
|
||||
<property name="text">
|
||||
<string>Browse</string>
|
||||
</property>
|
||||
@ -608,7 +608,7 @@
|
||||
<widget class="QLineEdit" name="lineEdit_log_dir"/>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QPushButton" name="pushButton_log_dir">
|
||||
<widget class="QPushButton" name="pushButton_log_dir_browse">
|
||||
<property name="text">
|
||||
<string>Browse</string>
|
||||
</property>
|
||||
|
@ -51,6 +51,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pushButton_create_import">
|
||||
<property name="text">
|
||||
<string>Create/Import wizard</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pushButton_open_create">
|
||||
<property name="text">
|
||||
|
@ -36,7 +36,7 @@ class Ui_LoginWindow(object):
|
||||
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.loginFrame.setUrl(QUrl(u"about:blank"))
|
||||
|
||||
self.horizontalLayout.addWidget(self.loginFrame)
|
||||
|
||||
@ -47,6 +47,6 @@ class Ui_LoginWindow(object):
|
||||
# setupUi
|
||||
|
||||
def retranslateUi(self, LoginWindow):
|
||||
LoginWindow.setWindowTitle(QCoreApplication.translate("LoginWindow", u"Form", None))
|
||||
LoginWindow.setWindowTitle(QCoreApplication.translate("LoginWindow", u"OneDrive Login", None))
|
||||
# retranslateUi
|
||||
|
||||
|
@ -24,7 +24,9 @@ class Ui_MainWindow(object):
|
||||
def setupUi(self, MainWindow):
|
||||
if not MainWindow.objectName():
|
||||
MainWindow.setObjectName(u"MainWindow")
|
||||
MainWindow.resize(420, 807)
|
||||
MainWindow.resize(420, 800)
|
||||
MainWindow.setMinimumSize(QSize(420, 0))
|
||||
MainWindow.setMaximumSize(QSize(420, 16777215))
|
||||
icon = QIcon()
|
||||
icon.addFile(u"../../../OneDriveGUI_POC_recovered-multi/icons8-clouds-48.png", QSize(), QIcon.Normal, QIcon.Off)
|
||||
MainWindow.setWindowIcon(icon)
|
||||
|
@ -94,15 +94,15 @@ class Ui_status_page(object):
|
||||
|
||||
self.horizontalLayout = QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName(u"horizontalLayout")
|
||||
self.pushButton = QPushButton(status_page)
|
||||
self.pushButton.setObjectName(u"pushButton")
|
||||
self.pushButton_open_dir = QPushButton(status_page)
|
||||
self.pushButton_open_dir.setObjectName(u"pushButton_open_dir")
|
||||
sizePolicy = QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton.setSizePolicy(sizePolicy)
|
||||
sizePolicy.setHeightForWidth(self.pushButton_open_dir.sizePolicy().hasHeightForWidth())
|
||||
self.pushButton_open_dir.setSizePolicy(sizePolicy)
|
||||
|
||||
self.horizontalLayout.addWidget(self.pushButton)
|
||||
self.horizontalLayout.addWidget(self.pushButton_open_dir)
|
||||
|
||||
self.pushButton_2 = QPushButton(status_page)
|
||||
self.pushButton_2.setObjectName(u"pushButton_2")
|
||||
@ -135,7 +135,7 @@ class Ui_status_page(object):
|
||||
self.toolButton_stop.setText(QCoreApplication.translate("status_page", u"Stop", None))
|
||||
self.label_account_type.setText("")
|
||||
self.label_free_space.setText("")
|
||||
self.pushButton.setText(QCoreApplication.translate("status_page", u"Open Folder", None))
|
||||
self.pushButton_open_dir.setText(QCoreApplication.translate("status_page", u"Open Sync Directory", None))
|
||||
self.pushButton_2.setText(QCoreApplication.translate("status_page", u"Sync", None))
|
||||
self.pushButton_settings.setText(QCoreApplication.translate("status_page", u"Settings", None))
|
||||
# retranslateUi
|
||||
|
@ -54,10 +54,10 @@ class Ui_profile_settings(object):
|
||||
self.gridLayout_9.setObjectName(u"gridLayout_9")
|
||||
self.gridLayout_5 = QGridLayout()
|
||||
self.gridLayout_5.setObjectName(u"gridLayout_5")
|
||||
self.pushButton_3 = QPushButton(self.groupBox_8)
|
||||
self.pushButton_3.setObjectName(u"pushButton_3")
|
||||
self.pushButton_sync_dir_browse = QPushButton(self.groupBox_8)
|
||||
self.pushButton_sync_dir_browse.setObjectName(u"pushButton_sync_dir_browse")
|
||||
|
||||
self.gridLayout_5.addWidget(self.pushButton_3, 0, 2, 1, 1)
|
||||
self.gridLayout_5.addWidget(self.pushButton_sync_dir_browse, 0, 2, 1, 1)
|
||||
|
||||
self.label_sync_dir = QLabel(self.groupBox_8)
|
||||
self.label_sync_dir.setObjectName(u"label_sync_dir")
|
||||
@ -453,10 +453,10 @@ class Ui_profile_settings(object):
|
||||
|
||||
self.gridLayout_8.addWidget(self.lineEdit_log_dir, 1, 1, 1, 1)
|
||||
|
||||
self.pushButton_log_dir = QPushButton(self.groupBox_7)
|
||||
self.pushButton_log_dir.setObjectName(u"pushButton_log_dir")
|
||||
self.pushButton_log_dir_browse = QPushButton(self.groupBox_7)
|
||||
self.pushButton_log_dir_browse.setObjectName(u"pushButton_log_dir_browse")
|
||||
|
||||
self.gridLayout_8.addWidget(self.pushButton_log_dir, 1, 2, 1, 1)
|
||||
self.gridLayout_8.addWidget(self.pushButton_log_dir_browse, 1, 2, 1, 1)
|
||||
|
||||
self.label_monitor_log_frequency = QLabel(self.groupBox_7)
|
||||
self.label_monitor_log_frequency.setObjectName(u"label_monitor_log_frequency")
|
||||
@ -610,7 +610,7 @@ class Ui_profile_settings(object):
|
||||
|
||||
self.retranslateUi(profile_settings)
|
||||
|
||||
self.tabWidget.setCurrentIndex(5)
|
||||
self.tabWidget.setCurrentIndex(3)
|
||||
|
||||
|
||||
QMetaObject.connectSlotsByName(profile_settings)
|
||||
@ -620,7 +620,7 @@ class Ui_profile_settings(object):
|
||||
profile_settings.setWindowTitle(QCoreApplication.translate("profile_settings", u"OneDriveGUI - Profile Settings", None))
|
||||
self.label_profile_name.setText(QCoreApplication.translate("profile_settings", u"Profile name", None))
|
||||
self.groupBox_8.setTitle(QCoreApplication.translate("profile_settings", u"Monitored directory", None))
|
||||
self.pushButton_3.setText(QCoreApplication.translate("profile_settings", u"Browse", None))
|
||||
self.pushButton_sync_dir_browse.setText(QCoreApplication.translate("profile_settings", u"Browse", None))
|
||||
self.label_sync_dir.setText(QCoreApplication.translate("profile_settings", u"Sync Folder:", None))
|
||||
self.checkBox_sync_root_files.setText(QCoreApplication.translate("profile_settings", u"Sync root files", None))
|
||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.exemptions_tab_2), QCoreApplication.translate("profile_settings", u"Monitored Files", None))
|
||||
@ -667,7 +667,7 @@ class Ui_profile_settings(object):
|
||||
self.checkBox_enable_logging.setText(QCoreApplication.translate("profile_settings", u"Enable Logging", None))
|
||||
self.label_log_dir.setText(QCoreApplication.translate("profile_settings", u"Log location:", None))
|
||||
self.checkBox_debug_https.setText(QCoreApplication.translate("profile_settings", u"Debug HTTPS", None))
|
||||
self.pushButton_log_dir.setText(QCoreApplication.translate("profile_settings", u"Browse", None))
|
||||
self.pushButton_log_dir_browse.setText(QCoreApplication.translate("profile_settings", u"Browse", None))
|
||||
self.label_monitor_log_frequency.setText(QCoreApplication.translate("profile_settings", u"Monitor log frequency", None))
|
||||
self.groupBox_6.setTitle(QCoreApplication.translate("profile_settings", u"Notifications", None))
|
||||
self.label_min_notify_changes.setText(QCoreApplication.translate("profile_settings", u"Minimum notify changes", None))
|
||||
|
@ -48,6 +48,11 @@ class Ui_settings_window(object):
|
||||
|
||||
self.verticalLayout.addWidget(self.pushButton_remove)
|
||||
|
||||
self.pushButton_create_import = QPushButton(settings_window)
|
||||
self.pushButton_create_import.setObjectName(u"pushButton_create_import")
|
||||
|
||||
self.verticalLayout.addWidget(self.pushButton_create_import)
|
||||
|
||||
self.pushButton_open_create = QPushButton(settings_window)
|
||||
self.pushButton_open_create.setObjectName(u"pushButton_open_create")
|
||||
|
||||
@ -74,6 +79,7 @@ class Ui_settings_window(object):
|
||||
settings_window.setWindowTitle(QCoreApplication.translate("settings_window", u"OneDriveGUI - Settings", None))
|
||||
self.label_profiles.setText(QCoreApplication.translate("settings_window", u"Profiles:", None))
|
||||
self.pushButton_remove.setText(QCoreApplication.translate("settings_window", u"Remove profile", None))
|
||||
self.pushButton_create_import.setText(QCoreApplication.translate("settings_window", u"Create/Import wizard", None))
|
||||
self.pushButton_open_create.setText(QCoreApplication.translate("settings_window", u"Create new profile", None))
|
||||
self.pushButton_open_import.setText(QCoreApplication.translate("settings_window", u"Import existing profile", None))
|
||||
# retranslateUi
|
||||
|
Loading…
x
Reference in New Issue
Block a user