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

Merge branch 'dev'

This commit is contained in:
Boris Pozdena
2022-02-06 16:34:19 +01:00
9 changed files with 1767 additions and 467 deletions

File diff suppressed because it is too large Load Diff

232
OneDriveGUI/setup_wizard.py Normal file
View File

@@ -0,0 +1,232 @@
import subprocess
import re
import os
from configparser import ConfigParser
from PySide6.QtGui import QPixmap, QIcon
from PySide6.QtCore import Property, Qt
from PySide6.QtWidgets import (
QWizard,
QGridLayout,
QLineEdit,
QWizardPage,
QLabel,
QVBoxLayout,
QComboBox,
QApplication,
QCheckBox,
QPushButton,
)
from OneDriveGUI import read_config
class SetupWizard(QWizard):
def __init__(self, parent=None):
super(SetupWizard, self).__init__(parent)
self.setWindowIcon(QIcon("resources/images/icons8-clouds-48.png"))
self.setPage(1, WizardPage_welcome(self))
self.setPage(2, wizardPage_version_check(self))
self.setPage(3, wizardPage_create_import(self))
self.setPage(4, wizardPage_import(self))
self.setWindowTitle("OneDriveGUI Setup Wizard")
self.resize(640, 480)
self.currentIdChanged.connect(self.on_page_change)
def on_page_change(self):
if self.currentId() == 2:
print("Checking installed OneDrive version")
self.page(2).check_onedrive_version()
class WizardPage_welcome(QWizardPage):
def __init__(self, parent=None):
super(WizardPage_welcome, self).__init__(parent)
self.setTitle("Welcome to OneDriveGUI")
# self.setSubTitle("SubTitle")
# self.label1 = QLabel()
# self.label1.setText("Welcome to OneDriveGUI")
self.label_2 = QLabel()
self.label_2.setText("This wizard will help you with initial OneDrive profile creation/import.")
layout = QVBoxLayout()
# layout.addWidget(self.label1)
layout.addWidget(self.label_2)
self.setLayout(layout)
class wizardPage_version_check(QWizardPage):
def __init__(self, parent=None):
super(wizardPage_version_check, self).__init__(parent)
self.setTitle("OneDrive version check")
# self.label_3 = QLabel()
# self.label_3.setText("Installed OneDrive version:")
self.label_4 = QLabel()
self.label_4.setText("Installed/Not Installed/ version")
self.label_5 = QLabel()
self.label_5.setWordWrap(True)
self.label_5.setText(
"OneDrive Client for Linux does not seem to be installed. Please install it by following " \
"<a href='https://github.com/abraunegg/onedrive/blob/master/docs/INSTALL.md'>instructions</a> for your distro. "
)
layout = QVBoxLayout()
# layout.addWidget(self.label_3)
layout.addWidget(self.label_4)
layout.addWidget(self.label_5)
self.setLayout(layout)
def check_onedrive_version(self):
# Check if OneDrive is installed
od_version_check = subprocess.check_output(["onedrive", "--version"])
if "onedrive v" in str(od_version_check):
self.od_version = re.search(r".\s(v[0-9.]+)", str(od_version_check)).group(1)
print(f"OneDrive {self.od_version} detected.")
self.label_4.setText(f"OneDrive {self.od_version} detected.")
self.label_5.hide()
return True
else:
self.label_4.setText("OneDrive not detected.")
return False
class wizardPage_create_import(QWizardPage):
def __init__(self, parent=None):
super(wizardPage_create_import, self).__init__(parent)
self.setTitle("Create/Import OneDrive profile")
self.checkBox_create = QCheckBox()
self.checkBox_create.setText("Create new OneDrive profile")
self.checkBox_create.stateChanged.connect(self.on_checkbox_change)
self.checkBox_import = QCheckBox()
self.checkBox_import.setText("Import existing OneDrive profile/config")
self.checkBox_import.stateChanged.connect(self.on_checkbox_change)
layout = QVBoxLayout()
layout.addWidget(self.checkBox_create)
layout.addWidget(self.checkBox_import)
self.setLayout(layout)
def on_checkbox_change(self):
if self.checkBox_create.isChecked():
print(f"Create new profile is checked")
self.checkBox_import.setDisabled(True)
# self.wizardPage_create_import.completeChanged()
elif self.checkBox_import.isChecked():
print(f"Import profile is checked")
self.checkBox_create.setDisabled(True)
# self.wizardPage_create_import.completeChanged()
else:
print(f"No option is unchecked")
self.checkBox_import.setDisabled(False)
self.checkBox_create.setDisabled(False)
class wizardPage_import(QWizardPage):
def __init__(self, parent=None):
super(wizardPage_import, self).__init__(parent)
self.setTitle("Create/Import OneDrive profile")
self.label_profile_name = QLabel()
self.label_profile_name.setText("Profile name")
self.label_config_path = QLabel()
self.label_config_path.setText("Config fil path")
self.lineEdit_profile_name = QLineEdit()
self.lineEdit_profile_name.setPlaceholderText("E.g. john@live.com")
self.lineEdit_config_path = QLineEdit()
self.lineEdit_config_path.setPlaceholderText("E.g. ~/.config/onedrive/config")
self.pushButton_import = QPushButton()
layout = QVBoxLayout()
layout.addWidget(self.label_profile_name)
layout.addWidget(self.label_config_path)
layout.addWidget(self.lineEdit_profile_name)
layout.addWidget(self.lineEdit_config_path)
layout.addWidget(self.pushButton_import)
self.setLayout(layout)
def import_profile(self):
"""
Imports pre-existing OneDrive profile.
Loads default values firt, then overwrite them with user settings.
This is to handle cases where imported config contains only some properties.
"""
profile_name = self.lineEdit_profile_name.text()
config_path = os.path.expanduser(self.lineEdit_config_path.text())
# Load all default values.
_default_od_config = read_config("resources/default_config")
default_od_config = _default_od_config._sections
# Load user's settings.
_new_od_config = read_config(config_path)
new_od_config = _new_od_config._sections
# Construct dict with user profile settings.
new_profile = {profile_name: {"config_file": config_path, "enable_debug": False, "mode": "monitor"}}
# Load existing user profiles and add the new profile.
_profiles = ConfigParser()
_profiles.read(PROFILES_FILE)
_profiles[profile_name] = new_profile[profile_name]
# Create profile config file if it does not exist.
profiles_dir = re.search(r"(.+)/profiles$", PROFILES_FILE).group(1)
if not os.path.exists(profiles_dir):
os.makedirs(profiles_dir)
# Save the new profile.
with open(PROFILES_FILE, "w") as configfile:
_profiles.write(configfile)
# Append OD config
new_profile[profile_name].update(default_od_config)
new_profile[profile_name].update(new_od_config)
# Append new profile into running global profile
global_config.update(new_profile)
# print(new_profile)
# print(global_config)
self.settings_window.listWidget_profiles.addItem(profile_name)
self.setting_page = ProfileSettingsPage(profile_name)
self.settings_window.stackedLayout.addWidget(self.setting_page)
# Add status page widget for new profile
main_window.comboBox.addItem(profile_name)
main_window.profile_status_pages[profile_name] = ProfileStatusPage(profile_name)
main_window.stackedLayout.addWidget(main_window.profile_status_pages[profile_name])
# Hide "Create profile" push button from main windows.
main_window.pushButton_new_profile.hide()
print(f"Account {profile_name} has been imported")
self.pushButton_import.setText("Done")
self.pushButton_import.setDisabled(True)

View File

@@ -62,25 +62,18 @@
<property name="spacing">
<number>2</number>
</property>
<item row="2" column="1">
<item row="5" column="0">
<widget class="QToolButton" name="toolButton_start">
<property name="styleSheet">
<string notr="true">color: rgb(255, 255, 255);</string>
</property>
<property name="text">
<string>Start</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_4">
<property name="styleSheet">
<string notr="true">color: rgb(255, 255, 255);</string>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="4">
<widget class="QLabel" name="label_6">
<item row="1" column="0" colspan="5">
<widget class="QLabel" name="label_onedrive_status">
<property name="font">
<font>
<pointsize>11</pointsize>
@@ -92,33 +85,59 @@
<string notr="true">color: rgb(255, 255, 255);</string>
</property>
<property name="text">
<string>Onedrive is ...</string>
<string>Onedrive is sync not running</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QLabel" name="label_3">
<item row="5" column="2">
<widget class="QLabel" name="label_status">
<property name="styleSheet">
<string notr="true">color: rgb(255, 255, 255);</string>
</property>
<property name="text">
<string>...</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<string/>
</property>
</widget>
</item>
<item row="2" column="2">
<item row="5" column="1">
<widget class="QToolButton" name="toolButton_stop">
<property name="styleSheet">
<string notr="true">color: rgb(255, 255, 255);</string>
</property>
<property name="text">
<string>Stop</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="5">
<widget class="QLabel" name="label_account_type">
<property name="styleSheet">
<string notr="true">color: rgb(255, 255, 255);</string>
</property>
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="5" column="4">
<widget class="QLabel" name="label_free_space">
<property name="styleSheet">
<string notr="true">color: rgb(255, 255, 255);</string>
</property>
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>

View File

@@ -0,0 +1,352 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>SetupWizard</class>
<widget class="QWizard" name="SetupWizard">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>640</width>
<height>480</height>
</rect>
</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>Wizard</string>
</property>
<property name="wizardStyle">
<enum>QWizard::ClassicStyle</enum>
</property>
<widget class="QWizardPage" name="wizardPage_welcome">
<attribute name="pageId">
<string notr="true">1</string>
</attribute>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>230</x>
<y>80</y>
<width>271</width>
<height>18</height>
</rect>
</property>
<property name="text">
<string>Welcome to OneDriveGUI</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>110</x>
<y>200</y>
<width>441</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>This wizard will help you with initial OneDrive profile creation/import.</string>
</property>
</widget>
</widget>
<widget class="QWizardPage" name="wizardPage_version_check">
<attribute name="pageId">
<string notr="true">2</string>
</attribute>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>20</x>
<y>80</y>
<width>171</width>
<height>18</height>
</rect>
</property>
<property name="text">
<string>Installed OneDrive version:</string>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>200</x>
<y>80</y>
<width>211</width>
<height>18</height>
</rect>
</property>
<property name="text">
<string>Installed/Not Installed/ version</string>
</property>
</widget>
<widget class="QLabel" name="label_5">
<property name="geometry">
<rect>
<x>10</x>
<y>160</y>
<width>531</width>
<height>111</height>
</rect>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-family:'Droid Sans Mono','monospace','monospace','Droid Sans Fallback'; font-size:14px; color:#960000;&quot;&gt;OneDrive Client for Linux does not seem to be installed. &lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; line-height:19px; background-color:#272822;&quot;&gt;&lt;span style=&quot; font-family:'Droid Sans Mono','monospace','monospace','Droid Sans Fallback'; font-size:14px; color:#960000;&quot;&gt;Please install it by following &lt;/span&gt;&lt;a href=&quot;https://github.com/abraunegg/onedrive/blob/master/docs/INSTALL.md&quot;&gt;&lt;span style=&quot; font-family:'Hack'; text-decoration: underline; color:#960000;&quot;&gt;instructions&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-family:'Droid Sans Mono','monospace','monospace','Droid Sans Fallback'; font-size:14px; color:#960000;&quot;&gt; for your distro. &lt;/span&gt;&lt;/pre&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</widget>
<widget class="QWizardPage" name="wizardPage_create_import">
<attribute name="pageId">
<string notr="true">3</string>
</attribute>
<widget class="QLabel" name="label_6">
<property name="geometry">
<rect>
<x>30</x>
<y>70</y>
<width>481</width>
<height>18</height>
</rect>
</property>
<property name="text">
<string>Would you like to create a new OneDrive profile or import existing one?</string>
</property>
</widget>
<widget class="QCheckBox" name="checkBox_create">
<property name="geometry">
<rect>
<x>30</x>
<y>140</y>
<width>171</width>
<height>22</height>
</rect>
</property>
<property name="text">
<string>Create new profile</string>
</property>
</widget>
<widget class="QCheckBox" name="checkBox_import">
<property name="geometry">
<rect>
<x>30</x>
<y>180</y>
<width>251</width>
<height>22</height>
</rect>
</property>
<property name="text">
<string>Import existing profile/config. </string>
</property>
</widget>
</widget>
<widget class="QWizardPage" name="wizardPage_import">
<attribute name="pageId">
<string notr="true">4</string>
</attribute>
<widget class="QLabel" name="label_7">
<property name="geometry">
<rect>
<x>30</x>
<y>60</y>
<width>291</width>
<height>18</height>
</rect>
</property>
<property name="text">
<string>Import existing profile/config</string>
</property>
</widget>
<widget class="QLabel" name="label_profile_name">
<property name="geometry">
<rect>
<x>7</x>
<y>166</y>
<width>107</width>
<height>32</height>
</rect>
</property>
<property name="toolTip">
<string notr="true"/>
</property>
<property name="text">
<string>Profile Name</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
<widget class="QLabel" name="label_config_path">
<property name="geometry">
<rect>
<x>7</x>
<y>210</y>
<width>107</width>
<height>32</height>
</rect>
</property>
<property name="toolTip">
<string notr="true"/>
</property>
<property name="text">
<string>Path to config file</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_profile_name">
<property name="geometry">
<rect>
<x>120</x>
<y>166</y>
<width>308</width>
<height>32</height>
</rect>
</property>
<property name="placeholderText">
<string>E.g. john@live.com</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_config_path">
<property name="geometry">
<rect>
<x>120</x>
<y>210</y>
<width>308</width>
<height>32</height>
</rect>
</property>
<property name="placeholderText">
<string>E.g. ~/.config/onedrive/config</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_import">
<property name="geometry">
<rect>
<x>120</x>
<y>310</y>
<width>391</width>
<height>34</height>
</rect>
</property>
<property name="text">
<string>Import profile</string>
</property>
</widget>
</widget>
<widget class="QWizardPage" name="wizardPage_create">
<attribute name="pageId">
<string notr="true">5</string>
</attribute>
<widget class="QLabel" name="label_10">
<property name="geometry">
<rect>
<x>40</x>
<y>70</y>
<width>231</width>
<height>18</height>
</rect>
</property>
<property name="text">
<string>Create new profile</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_sync_dir">
<property name="geometry">
<rect>
<x>145</x>
<y>219</y>
<width>249</width>
<height>32</height>
</rect>
</property>
<property name="placeholderText">
<string>E.g. ~/OneDrive_john@live.com/</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_new_profile_name">
<property name="geometry">
<rect>
<x>145</x>
<y>180</y>
<width>249</width>
<height>32</height>
</rect>
</property>
<property name="placeholderText">
<string>E.g. john@live.com</string>
</property>
</widget>
<widget class="QLabel" name="label_new_profile_name">
<property name="geometry">
<rect>
<x>30</x>
<y>180</y>
<width>109</width>
<height>32</height>
</rect>
</property>
<property name="text">
<string>New profile name</string>
</property>
</widget>
<widget class="QLabel" name="label_sync_dir">
<property name="geometry">
<rect>
<x>30</x>
<y>219</y>
<width>109</width>
<height>32</height>
</rect>
</property>
<property name="text">
<string>Sync directory</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_create">
<property name="geometry">
<rect>
<x>170</x>
<y>340</y>
<width>351</width>
<height>34</height>
</rect>
</property>
<property name="text">
<string>Create new profile</string>
</property>
</widget>
</widget>
<widget class="QWizardPage" name="wizardPage_finish">
<attribute name="pageId">
<string notr="true">6</string>
</attribute>
<widget class="QLabel" name="label_13">
<property name="geometry">
<rect>
<x>20</x>
<y>80</y>
<width>591</width>
<height>171</height>
</rect>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Your OneDrive profile has been created. &lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;You can adjust advanced profile options if needed. Once you are happy with the profile settings, start sync with OneDrive. You will be automatically presented with a OneDrive login page if you have not logged on previously.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</widget>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -41,37 +41,46 @@ class Ui_status_page(object):
self.gridLayout.setContentsMargins(2, 2, 2, 2)
self.toolButton_start = QToolButton(self.frame)
self.toolButton_start.setObjectName(u"toolButton_start")
self.toolButton_start.setStyleSheet(u"color: rgb(255, 255, 255);")
self.gridLayout.addWidget(self.toolButton_start, 2, 1, 1, 1)
self.gridLayout.addWidget(self.toolButton_start, 5, 0, 1, 1)
self.label_4 = QLabel(self.frame)
self.label_4.setObjectName(u"label_4")
self.label_4.setStyleSheet(u"color: rgb(255, 255, 255);")
self.gridLayout.addWidget(self.label_4, 2, 0, 1, 1)
self.label_6 = QLabel(self.frame)
self.label_6.setObjectName(u"label_6")
self.label_onedrive_status = QLabel(self.frame)
self.label_onedrive_status.setObjectName(u"label_onedrive_status")
font = QFont()
font.setPointSize(11)
font.setBold(True)
self.label_6.setFont(font)
self.label_6.setStyleSheet(u"color: rgb(255, 255, 255);")
self.label_6.setAlignment(Qt.AlignCenter)
self.label_onedrive_status.setFont(font)
self.label_onedrive_status.setStyleSheet(u"color: rgb(255, 255, 255);")
self.label_onedrive_status.setAlignment(Qt.AlignCenter)
self.gridLayout.addWidget(self.label_6, 1, 0, 1, 4)
self.gridLayout.addWidget(self.label_onedrive_status, 1, 0, 1, 5)
self.label_3 = QLabel(self.frame)
self.label_3.setObjectName(u"label_3")
self.label_3.setStyleSheet(u"color: rgb(255, 255, 255);")
self.label_3.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.label_status = QLabel(self.frame)
self.label_status.setObjectName(u"label_status")
self.label_status.setStyleSheet(u"color: rgb(255, 255, 255);")
self.gridLayout.addWidget(self.label_3, 2, 3, 1, 1)
self.gridLayout.addWidget(self.label_status, 5, 2, 1, 1)
self.toolButton_stop = QToolButton(self.frame)
self.toolButton_stop.setObjectName(u"toolButton_stop")
self.toolButton_stop.setStyleSheet(u"color: rgb(255, 255, 255);")
self.gridLayout.addWidget(self.toolButton_stop, 2, 2, 1, 1)
self.gridLayout.addWidget(self.toolButton_stop, 5, 1, 1, 1)
self.label_account_type = QLabel(self.frame)
self.label_account_type.setObjectName(u"label_account_type")
self.label_account_type.setStyleSheet(u"color: rgb(255, 255, 255);")
self.label_account_type.setAlignment(Qt.AlignCenter)
self.gridLayout.addWidget(self.label_account_type, 3, 0, 1, 5)
self.label_free_space = QLabel(self.frame)
self.label_free_space.setObjectName(u"label_free_space")
self.label_free_space.setStyleSheet(u"color: rgb(255, 255, 255);")
self.label_free_space.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.gridLayout.addWidget(self.label_free_space, 5, 4, 1, 1)
self.verticalLayout.addWidget(self.frame)
@@ -121,10 +130,11 @@ class Ui_status_page(object):
def retranslateUi(self, status_page):
status_page.setWindowTitle(QCoreApplication.translate("status_page", u"OneDriveGUI - Process Status", None))
self.toolButton_start.setText(QCoreApplication.translate("status_page", u"Start", None))
self.label_4.setText(QCoreApplication.translate("status_page", u"...", None))
self.label_6.setText(QCoreApplication.translate("status_page", u"Onedrive is ...", None))
self.label_3.setText(QCoreApplication.translate("status_page", u"...", None))
self.label_onedrive_status.setText(QCoreApplication.translate("status_page", u"Onedrive is sync not running", None))
self.label_status.setText("")
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_2.setText(QCoreApplication.translate("status_page", u"Sync", None))
self.pushButton_settings.setText(QCoreApplication.translate("status_page", u"Settings", None))

View File

@@ -0,0 +1,150 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'setup_wizard.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, QLabel, QLineEdit,
QPushButton, QSizePolicy, QWidget, QWizard,
QWizardPage)
class Ui_SetupWizard(object):
def setupUi(self, SetupWizard):
if not SetupWizard.objectName():
SetupWizard.setObjectName(u"SetupWizard")
SetupWizard.resize(640, 480)
SetupWizard.setMinimumSize(QSize(640, 480))
SetupWizard.setMaximumSize(QSize(640, 480))
SetupWizard.setWizardStyle(QWizard.ClassicStyle)
self.wizardPage_welcome = QWizardPage()
self.wizardPage_welcome.setObjectName(u"wizardPage_welcome")
self.label = QLabel(self.wizardPage_welcome)
self.label.setObjectName(u"label")
self.label.setGeometry(QRect(230, 80, 271, 18))
self.label_2 = QLabel(self.wizardPage_welcome)
self.label_2.setObjectName(u"label_2")
self.label_2.setGeometry(QRect(110, 200, 441, 20))
SetupWizard.setPage(1, self.wizardPage_welcome)
self.wizardPage_version_check = QWizardPage()
self.wizardPage_version_check.setObjectName(u"wizardPage_version_check")
self.label_3 = QLabel(self.wizardPage_version_check)
self.label_3.setObjectName(u"label_3")
self.label_3.setGeometry(QRect(20, 80, 171, 18))
self.label_4 = QLabel(self.wizardPage_version_check)
self.label_4.setObjectName(u"label_4")
self.label_4.setGeometry(QRect(200, 80, 211, 18))
self.label_5 = QLabel(self.wizardPage_version_check)
self.label_5.setObjectName(u"label_5")
self.label_5.setGeometry(QRect(10, 160, 531, 111))
SetupWizard.setPage(2, self.wizardPage_version_check)
self.wizardPage_create_import = QWizardPage()
self.wizardPage_create_import.setObjectName(u"wizardPage_create_import")
self.label_6 = QLabel(self.wizardPage_create_import)
self.label_6.setObjectName(u"label_6")
self.label_6.setGeometry(QRect(30, 70, 481, 18))
self.checkBox_create = QCheckBox(self.wizardPage_create_import)
self.checkBox_create.setObjectName(u"checkBox_create")
self.checkBox_create.setGeometry(QRect(30, 140, 171, 22))
self.checkBox_import = QCheckBox(self.wizardPage_create_import)
self.checkBox_import.setObjectName(u"checkBox_import")
self.checkBox_import.setGeometry(QRect(30, 180, 251, 22))
SetupWizard.setPage(3, self.wizardPage_create_import)
self.wizardPage_import = QWizardPage()
self.wizardPage_import.setObjectName(u"wizardPage_import")
self.label_7 = QLabel(self.wizardPage_import)
self.label_7.setObjectName(u"label_7")
self.label_7.setGeometry(QRect(30, 60, 291, 18))
self.label_profile_name = QLabel(self.wizardPage_import)
self.label_profile_name.setObjectName(u"label_profile_name")
self.label_profile_name.setGeometry(QRect(7, 166, 107, 32))
#if QT_CONFIG(tooltip)
self.label_profile_name.setToolTip(u"")
#endif // QT_CONFIG(tooltip)
self.label_profile_name.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.label_config_path = QLabel(self.wizardPage_import)
self.label_config_path.setObjectName(u"label_config_path")
self.label_config_path.setGeometry(QRect(7, 210, 107, 32))
#if QT_CONFIG(tooltip)
self.label_config_path.setToolTip(u"")
#endif // QT_CONFIG(tooltip)
self.label_config_path.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.lineEdit_profile_name = QLineEdit(self.wizardPage_import)
self.lineEdit_profile_name.setObjectName(u"lineEdit_profile_name")
self.lineEdit_profile_name.setGeometry(QRect(120, 166, 308, 32))
self.lineEdit_config_path = QLineEdit(self.wizardPage_import)
self.lineEdit_config_path.setObjectName(u"lineEdit_config_path")
self.lineEdit_config_path.setGeometry(QRect(120, 210, 308, 32))
self.pushButton_import = QPushButton(self.wizardPage_import)
self.pushButton_import.setObjectName(u"pushButton_import")
self.pushButton_import.setGeometry(QRect(120, 310, 391, 34))
SetupWizard.setPage(4, self.wizardPage_import)
self.wizardPage_create = QWizardPage()
self.wizardPage_create.setObjectName(u"wizardPage_create")
self.label_10 = QLabel(self.wizardPage_create)
self.label_10.setObjectName(u"label_10")
self.label_10.setGeometry(QRect(40, 70, 231, 18))
self.lineEdit_sync_dir = QLineEdit(self.wizardPage_create)
self.lineEdit_sync_dir.setObjectName(u"lineEdit_sync_dir")
self.lineEdit_sync_dir.setGeometry(QRect(145, 219, 249, 32))
self.lineEdit_new_profile_name = QLineEdit(self.wizardPage_create)
self.lineEdit_new_profile_name.setObjectName(u"lineEdit_new_profile_name")
self.lineEdit_new_profile_name.setGeometry(QRect(145, 180, 249, 32))
self.label_new_profile_name = QLabel(self.wizardPage_create)
self.label_new_profile_name.setObjectName(u"label_new_profile_name")
self.label_new_profile_name.setGeometry(QRect(30, 180, 109, 32))
self.label_sync_dir = QLabel(self.wizardPage_create)
self.label_sync_dir.setObjectName(u"label_sync_dir")
self.label_sync_dir.setGeometry(QRect(30, 219, 109, 32))
self.pushButton_create = QPushButton(self.wizardPage_create)
self.pushButton_create.setObjectName(u"pushButton_create")
self.pushButton_create.setGeometry(QRect(170, 340, 351, 34))
SetupWizard.setPage(5, self.wizardPage_create)
self.wizardPage_finish = QWizardPage()
self.wizardPage_finish.setObjectName(u"wizardPage_finish")
self.label_13 = QLabel(self.wizardPage_finish)
self.label_13.setObjectName(u"label_13")
self.label_13.setGeometry(QRect(20, 80, 591, 171))
self.label_13.setWordWrap(True)
SetupWizard.setPage(6, self.wizardPage_finish)
self.retranslateUi(SetupWizard)
QMetaObject.connectSlotsByName(SetupWizard)
# setupUi
def retranslateUi(self, SetupWizard):
SetupWizard.setWindowTitle(QCoreApplication.translate("SetupWizard", u"Wizard", None))
self.label.setText(QCoreApplication.translate("SetupWizard", u"Welcome to OneDriveGUI", None))
self.label_2.setText(QCoreApplication.translate("SetupWizard", u"This wizard will help you with initial OneDrive profile creation/import.", None))
self.label_3.setText(QCoreApplication.translate("SetupWizard", u"Installed OneDrive version:", None))
self.label_4.setText(QCoreApplication.translate("SetupWizard", u"Installed/Not Installed/ version", None))
self.label_5.setText(QCoreApplication.translate("SetupWizard", u"<html><head/><body><p><span style=\" font-family:'Droid Sans Mono','monospace','monospace','Droid Sans Fallback'; font-size:14px; color:#960000;\">OneDrive Client for Linux does not seem to be installed. </span></p><pre style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; line-height:19px; background-color:#272822;\"><span style=\" font-family:'Droid Sans Mono','monospace','monospace','Droid Sans Fallback'; font-size:14px; color:#960000;\">Please install it by following </span><a href=\"https://github.com/abraunegg/onedrive/blob/master/docs/INSTALL.md\"><span style=\" font-family:'Hack'; text-decoration: underline; color:#960000;\">instructions</span></a><span style=\" font-family:'Droid Sans Mono','monospace','monospace','Droid Sans Fallback'; font-size:14px; color:#960000;\"> for your distro. </span></pre></body></html>", None))
self.label_6.setText(QCoreApplication.translate("SetupWizard", u"Would you like to create a new OneDrive profile or import existing one?", None))
self.checkBox_create.setText(QCoreApplication.translate("SetupWizard", u"Create new profile", None))
self.checkBox_import.setText(QCoreApplication.translate("SetupWizard", u"Import existing profile/config. ", None))
self.label_7.setText(QCoreApplication.translate("SetupWizard", u"Import existing profile/config", None))
self.label_profile_name.setText(QCoreApplication.translate("SetupWizard", u"Profile Name", None))
self.label_config_path.setText(QCoreApplication.translate("SetupWizard", u"Path to config file", None))
self.lineEdit_profile_name.setPlaceholderText(QCoreApplication.translate("SetupWizard", u"E.g. john@live.com", None))
self.lineEdit_config_path.setPlaceholderText(QCoreApplication.translate("SetupWizard", u"E.g. ~/.config/onedrive/config", None))
self.pushButton_import.setText(QCoreApplication.translate("SetupWizard", u"Import profile", None))
self.label_10.setText(QCoreApplication.translate("SetupWizard", u"Create new profile", None))
self.lineEdit_sync_dir.setPlaceholderText(QCoreApplication.translate("SetupWizard", u"E.g. ~/OneDrive_john@live.com/", None))
self.lineEdit_new_profile_name.setPlaceholderText(QCoreApplication.translate("SetupWizard", u"E.g. john@live.com", None))
self.label_new_profile_name.setText(QCoreApplication.translate("SetupWizard", u"New profile name", None))
self.label_sync_dir.setText(QCoreApplication.translate("SetupWizard", u"Sync directory", None))
self.pushButton_create.setText(QCoreApplication.translate("SetupWizard", u"Create new profile", None))
self.label_13.setText(QCoreApplication.translate("SetupWizard", u"<html><head/><body><p>Your OneDrive profile has been created. </p><p><br/></p><p>You can adjust advanced profile options if needed. Once you are happy with the profile settings, start sync with OneDrive. You will be automatically presented with a OneDrive login page if you have not logged on previously.</p></body></html>", None))
# retranslateUi

View File

@@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'wizardPage_welcome.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, QLabel, QSizePolicy, QWidget,
QWizardPage)
class Ui_WizardPage(object):
def setupUi(self, WizardPage):
if not WizardPage.objectName():
WizardPage.setObjectName(u"WizardPage")
WizardPage.resize(628, 420)
self.label = QLabel(WizardPage)
self.label.setObjectName(u"label")
self.label.setGeometry(QRect(230, 160, 271, 18))
self.label_2 = QLabel(WizardPage)
self.label_2.setObjectName(u"label_2")
self.label_2.setGeometry(QRect(110, 280, 441, 20))
self.retranslateUi(WizardPage)
QMetaObject.connectSlotsByName(WizardPage)
# setupUi
def retranslateUi(self, WizardPage):
WizardPage.setWindowTitle(QCoreApplication.translate("WizardPage", u"WizardPage", None))
self.label.setText(QCoreApplication.translate("WizardPage", u"Welcome to OneDriveGUI", None))
self.label_2.setText(QCoreApplication.translate("WizardPage", u"This wizard will help you with initial OneDrive profile creation/import.", None))
# retranslateUi

View File

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>WizardPage</class>
<widget class="QWizardPage" name="WizardPage">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>628</width>
<height>420</height>
</rect>
</property>
<property name="windowTitle">
<string>WizardPage</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>230</x>
<y>160</y>
<width>271</width>
<height>18</height>
</rect>
</property>
<property name="text">
<string>Welcome to OneDriveGUI</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>110</x>
<y>280</y>
<width>441</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>This wizard will help you with initial OneDrive profile creation/import.</string>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -1,2 +1,4 @@
# First test
pyinstaller --onefile --icon=OneDriveGUI.ico OneDriveGUI.py
# Testing
pyinstaller --onefile --icon=resources/images/OneDriveGUI.ico --add-data="resources:resources" OneDriveGUI.py
pyinstaller --icon=resources/images/OneDriveGUI.ico --add-data="resources:resources" OneDriveGUI.py