start work on welcome wizard
This commit is contained in:
57
config/base_config.yaml
Normal file
57
config/base_config.yaml
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
default_apps: true
|
||||||
|
save_path: .
|
||||||
|
icon_path: icons/
|
||||||
|
openAI:
|
||||||
|
api_key:
|
||||||
|
model:
|
||||||
|
zotero:
|
||||||
|
api_key:
|
||||||
|
library_id:
|
||||||
|
library_type: user
|
||||||
|
database:
|
||||||
|
name: semesterapparate.db
|
||||||
|
path: .
|
||||||
|
temp: ~/AppData/Local/SAM/SemesterApparatsManager/Cache
|
||||||
|
mail:
|
||||||
|
smtp_server:
|
||||||
|
port:
|
||||||
|
sender:
|
||||||
|
printer_mail:
|
||||||
|
user_name:
|
||||||
|
use_user_name: true
|
||||||
|
password:
|
||||||
|
signature:
|
||||||
|
colors:
|
||||||
|
dark: '#6b6160'
|
||||||
|
light: '#000000'
|
||||||
|
warning: '#ff0000'
|
||||||
|
success: '#00ff00'
|
||||||
|
icons:
|
||||||
|
locked: locked.svg
|
||||||
|
logo: logo.ico
|
||||||
|
show_password: visibility_off.svg
|
||||||
|
hide_password: visibility_on.svg
|
||||||
|
settings: settings.svg
|
||||||
|
today: calendar_today.svg
|
||||||
|
save: save.svg
|
||||||
|
edit_note: edit_note.svg
|
||||||
|
warning: warning.svg
|
||||||
|
error: error.svg
|
||||||
|
mail: mail.svg
|
||||||
|
semester: semester.svg
|
||||||
|
template_fail: test_fail.svg
|
||||||
|
offAction: shutdown.svg
|
||||||
|
info: info.svg
|
||||||
|
help: help.svg
|
||||||
|
close: close.svg
|
||||||
|
notification: notification.svg
|
||||||
|
valid_true: check_success.svg
|
||||||
|
valid_false: check_fail.svg
|
||||||
|
edit: edit.svg
|
||||||
|
important_warn: red_warn.svg
|
||||||
|
person: person_add.svg
|
||||||
|
database: database.svg
|
||||||
|
icons: icons.svg
|
||||||
|
api: api.svg
|
||||||
|
print: print.svg
|
||||||
|
db_search: db_search.svg
|
||||||
@@ -42,9 +42,9 @@ class Database:
|
|||||||
|
|
||||||
def __post_init__(self):
|
def __post_init__(self):
|
||||||
if isinstance(self.path, str):
|
if isinstance(self.path, str):
|
||||||
self.path = Path(self.path)
|
self.path = Path(self.path).expanduser()
|
||||||
if isinstance(self.temp, str):
|
if isinstance(self.temp, str):
|
||||||
self.temp = Path(self.temp)
|
self.temp = Path(self.temp).expanduser()
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Mail:
|
class Mail:
|
||||||
@@ -137,7 +137,7 @@ class Config:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
_config: Optional[DictConfig] = None
|
_config: Optional[DictConfig] = None
|
||||||
|
config_exists: bool = True
|
||||||
def __init__(self, config_path: str):
|
def __init__(self, config_path: str):
|
||||||
"""
|
"""
|
||||||
Loads the configuration file and stores it for future access.
|
Loads the configuration file and stores it for future access.
|
||||||
@@ -157,9 +157,14 @@ class Config:
|
|||||||
base_config = base_file.read()
|
base_config = base_file.read()
|
||||||
with open(config_path, "w") as config_file:
|
with open(config_path, "w") as config_file:
|
||||||
config_file.write(base_config)
|
config_file.write(base_config)
|
||||||
|
self.config_exists = False
|
||||||
self._config = OmegaConf.load(config_path)
|
self._config = OmegaConf.load(config_path)
|
||||||
self.config_path = config_path
|
self.config_path = config_path
|
||||||
|
|
||||||
|
@property
|
||||||
|
def exists(self) -> bool:
|
||||||
|
return self.config_exists
|
||||||
|
|
||||||
def save(self):
|
def save(self):
|
||||||
"""
|
"""
|
||||||
Saves the current configuration to the file.
|
Saves the current configuration to the file.
|
||||||
@@ -169,6 +174,12 @@ class Config:
|
|||||||
"""
|
"""
|
||||||
OmegaConf.save(self._config, self.config_path)
|
OmegaConf.save(self._config, self.config_path)
|
||||||
|
|
||||||
|
def reload(self):
|
||||||
|
"""
|
||||||
|
Reloads the configuration from the file.
|
||||||
|
"""
|
||||||
|
self._config = OmegaConf.load(self.config_path)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def zotero(self):
|
def zotero(self):
|
||||||
return Zotero(**self._config.zotero)
|
return Zotero(**self._config.zotero)
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
__version__ = "0.2.1"
|
__version__ = "0.2.1"
|
||||||
__author__ = "Alexander Kirchner"
|
__author__ = "Alexander Kirchner"
|
||||||
__all__ = ["__version__", "__author__", "Icon", "settings"]
|
__all__ = ["__version__", "__author__", "Icon", "settings"]
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from config import Config
|
|
||||||
from appdirs import AppDirs
|
from appdirs import AppDirs
|
||||||
|
|
||||||
|
from config import Config
|
||||||
|
|
||||||
|
|
||||||
app = AppDirs("SemesterApparatsManager", "SAM")
|
app = AppDirs("SemesterApparatsManager", "SAM")
|
||||||
LOG_DIR = app.user_log_dir
|
LOG_DIR = app.user_log_dir
|
||||||
CONFIG_DIR = app.user_config_dir
|
CONFIG_DIR = app.user_config_dir
|
||||||
@@ -16,6 +19,7 @@ if not os.path.exists(CONFIG_DIR):
|
|||||||
|
|
||||||
|
|
||||||
settings = Config(f"{CONFIG_DIR}/config.yaml")
|
settings = Config(f"{CONFIG_DIR}/config.yaml")
|
||||||
|
first_launch = settings.exists
|
||||||
if not os.path.exists(settings.database.temp.expanduser()):
|
if not os.path.exists(settings.database.temp.expanduser()):
|
||||||
settings.database.temp.expanduser().mkdir(parents=True, exist_ok=True)
|
settings.database.temp.expanduser().mkdir(parents=True, exist_ok=True)
|
||||||
from .utils.icon import Icon
|
from .utils.icon import Icon
|
||||||
|
|||||||
51
src/ui/widgets/welcome_wizard.py
Normal file
51
src/ui/widgets/welcome_wizard.py
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
from .widget_sources.welcome_wizard_ui import Ui_Wizard
|
||||||
|
from PyQt6 import QtWidgets, QtCore, QtGui
|
||||||
|
from src import settings
|
||||||
|
|
||||||
|
class WelcomeWizard(QtWidgets.QWizard, Ui_Wizard):
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
super().__init__(parent)
|
||||||
|
self.setupUi(self)
|
||||||
|
self.btn_database.clicked.connect(self.open_database_settings)
|
||||||
|
self.btn_temp.clicked.connect(self.open_temp_settings)
|
||||||
|
|
||||||
|
def open_database_settings(self):
|
||||||
|
#open filepicker dialog to select database file folder
|
||||||
|
file_dialog = QtWidgets.QFileDialog(self, "Select Database File")
|
||||||
|
file_dialog.setFileMode(QtWidgets.QFileDialog.FileMode.ExistingFile)
|
||||||
|
file_dialog.setNameFilter("Database Files (*.db *.sqlite *.sqlite3)")
|
||||||
|
file_dialog.setViewMode(QtWidgets.QFileDialog.ViewMode.List)
|
||||||
|
file_dialog.setDirectory(settings.database.path) # Set initial directory if needed
|
||||||
|
file_dialog.setOption(QtWidgets.QFileDialog.Option.DontUseNativeDialog, True)
|
||||||
|
file_dialog.setWindowFlags(file_dialog.windowFlags() | QtCore.Qt.WindowType.WindowStaysOnTopHint)
|
||||||
|
if file_dialog.exec():
|
||||||
|
selected_files = file_dialog.selectedFiles()
|
||||||
|
if selected_files:
|
||||||
|
# Do something with the selected database file
|
||||||
|
print("Selected database file:", selected_files[0])
|
||||||
|
|
||||||
|
def open_temp_settings(self):
|
||||||
|
#open filepicker dialog to select temporary directory
|
||||||
|
dir_dialog = QtWidgets.QFileDialog(self, "Select Temporary Directory")
|
||||||
|
dir_dialog.setFileMode(QtWidgets.QFileDialog.FileMode.Directory)
|
||||||
|
dir_dialog.setViewMode(QtWidgets.QFileDialog.ViewMode.List)
|
||||||
|
|
||||||
|
if dir_dialog.exec():
|
||||||
|
selected_dirs = dir_dialog.selectedFiles()
|
||||||
|
if selected_dirs:
|
||||||
|
# Do something with the selected temporary directory
|
||||||
|
print("Selected temporary directory:", selected_dirs[0])
|
||||||
|
|
||||||
|
|
||||||
|
def launch_wizard():
|
||||||
|
"""Launch the welcome wizard."""
|
||||||
|
app = QtWidgets.QApplication.instance()
|
||||||
|
if not app:
|
||||||
|
app = QtWidgets.QApplication([])
|
||||||
|
wizard = WelcomeWizard()
|
||||||
|
# wizard.setWindowTitle("Welcome to the Semester Apparatus Manager")
|
||||||
|
# wizard.setWindowIcon(settings.Icon("welcome").icon)
|
||||||
|
wizard.setWizardStyle(QtWidgets.QWizard.WizardStyle.ModernStyle)
|
||||||
|
wizard.setStartId(0)
|
||||||
|
wizard.show()
|
||||||
|
return wizard.exec()
|
||||||
348
src/ui/widgets/widget_sources/welcome_wizard.ui
Normal file
348
src/ui/widgets/widget_sources/welcome_wizard.ui
Normal file
@@ -0,0 +1,348 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>Wizard</class>
|
||||||
|
<widget class="QWizard" name="Wizard">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>564</width>
|
||||||
|
<height>425</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Wizard</string>
|
||||||
|
</property>
|
||||||
|
<property name="sizeGripEnabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="wizardStyle">
|
||||||
|
<enum>QWizard::ClassicStyle</enum>
|
||||||
|
</property>
|
||||||
|
<property name="subTitleFormat">
|
||||||
|
<enum>Qt::PlainText</enum>
|
||||||
|
</property>
|
||||||
|
<property name="currentId">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<widget class="QWizardPage" name="wizardPage1">
|
||||||
|
<property name="title">
|
||||||
|
<string>Willkommen</string>
|
||||||
|
</property>
|
||||||
|
<property name="subTitle">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<attribute name="pageId">
|
||||||
|
<string notr="true">0</string>
|
||||||
|
</attribute>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QTextEdit" name="textEdit">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="lineWidth">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="autoFormatting">
|
||||||
|
<set>QTextEdit::AutoAll</set>
|
||||||
|
</property>
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="html">
|
||||||
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
|
<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css">
|
||||||
|
p, li { white-space: pre-wrap; }
|
||||||
|
hr { height: 1px; border-width: 0; }
|
||||||
|
li.unchecked::marker { content: "\2610"; }
|
||||||
|
li.checked::marker { content: "\2612"; }
|
||||||
|
</style></head><body style=" font-family:'Segoe UI'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Es wurde erkannt, dass der SemesterApparatsManager (SAM) zum ersten Mal gestartet wurde. In den Folgenden Seiten werden die grundlegenden Einstellungen festgelegt, anschließend wird SAM geöffnet. Folgende Einstellungen werden über diesen Wizard festgelegt:</p>
|
||||||
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Datenbank</p>
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- eMail</p>
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Zotero Integration</p>
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- KI Integration</p>
|
||||||
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html></string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QWizardPage" name="wizardPage2">
|
||||||
|
<property name="title">
|
||||||
|
<string>Datenbank</string>
|
||||||
|
</property>
|
||||||
|
<property name="subTitle">
|
||||||
|
<string>Hier werden die Einstellungen für die Datenbank und temporären Dateien festgelegt. Über den [...] Knopf können die Datenbank und der Speicherort für die temporären Daten festgelegt werden</string>
|
||||||
|
</property>
|
||||||
|
<attribute name="pageId">
|
||||||
|
<string notr="true">1</string>
|
||||||
|
</attribute>
|
||||||
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Datenbank</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLineEdit" name="settings_database">
|
||||||
|
<property name="placeholderText">
|
||||||
|
<string>semesterapparate.db</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2">
|
||||||
|
<widget class="QToolButton" name="btn_database">
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>Temporäre Daten</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLineEdit" name="settings_temp">
|
||||||
|
<property name="placeholderText">
|
||||||
|
<string>C:\Users\[Nutzer]\AppData\Local\SAM\SemesterApparatsManager\Cache</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="2">
|
||||||
|
<widget class="QToolButton" name="btn_temp">
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QWizardPage" name="wizardPage3">
|
||||||
|
<property name="title">
|
||||||
|
<string>Mail</string>
|
||||||
|
</property>
|
||||||
|
<property name="subTitle">
|
||||||
|
<string>Hier werden die Einstellungen für die Mailverbindung eingegeben</string>
|
||||||
|
</property>
|
||||||
|
<attribute name="pageId">
|
||||||
|
<string notr="true">2</string>
|
||||||
|
</attribute>
|
||||||
|
<layout class="QFormLayout" name="formLayout">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="text">
|
||||||
|
<string>SMTP Server</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_2"/>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_3"/>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_4"/>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="label_4">
|
||||||
|
<property name="text">
|
||||||
|
<string>Nutzername</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="text">
|
||||||
|
<string>SMTP Port</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>Passwort</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="1">
|
||||||
|
<widget class="QCheckBox" name="settings_mail_use_user_name">
|
||||||
|
<property name="text">
|
||||||
|
<string>CheckBox</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="1">
|
||||||
|
<widget class="QLineEdit" name="settings_mail_"/>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="0">
|
||||||
|
<widget class="QLabel" name="label_8">
|
||||||
|
<property name="text">
|
||||||
|
<string>Druckermail</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="0">
|
||||||
|
<widget class="QLabel" name="label_9">
|
||||||
|
<property name="text">
|
||||||
|
<string>Nutzername
|
||||||
|
für SMTP</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="1">
|
||||||
|
<widget class="QTextEdit" name="textEdit_2"/>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0">
|
||||||
|
<widget class="QLabel" name="label_10">
|
||||||
|
<property name="text">
|
||||||
|
<string>Signatur</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_7">
|
||||||
|
<property name="text">
|
||||||
|
<string>Mail Adresse</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_5"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QWizardPage" name="wizardPage4">
|
||||||
|
<property name="title">
|
||||||
|
<string>Zotero</string>
|
||||||
|
</property>
|
||||||
|
<property name="subTitle">
|
||||||
|
<string>Hier werden die Einstellungen für Zotero verwaltet</string>
|
||||||
|
</property>
|
||||||
|
<attribute name="pageId">
|
||||||
|
<string notr="true">3</string>
|
||||||
|
</attribute>
|
||||||
|
<layout class="QFormLayout" name="formLayout_2">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_11">
|
||||||
|
<property name="text">
|
||||||
|
<string>API-Key</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLineEdit" name="settings_zotero_api_key"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLineEdit" name="settings_zotero_library_id"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_12">
|
||||||
|
<property name="text">
|
||||||
|
<string>ID</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_13">
|
||||||
|
<property name="text">
|
||||||
|
<string>Anwendungstyp</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLineEdit" name="settings_zotero_library_type">
|
||||||
|
<property name="text">
|
||||||
|
<string>user</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QWizardPage" name="wizardPage5">
|
||||||
|
<property name="title">
|
||||||
|
<string>KI-Integration</string>
|
||||||
|
</property>
|
||||||
|
<property name="subTitle">
|
||||||
|
<string>Hier werden die Einstellungen für die KI Integration eingestellt.</string>
|
||||||
|
</property>
|
||||||
|
<attribute name="pageId">
|
||||||
|
<string notr="true">9</string>
|
||||||
|
</attribute>
|
||||||
|
<layout class="QFormLayout" name="formLayout_3">
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_6"/>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_14">
|
||||||
|
<property name="text">
|
||||||
|
<string>API Key</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_15">
|
||||||
|
<property name="text">
|
||||||
|
<string>ChatGPT Modell</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QComboBox" name="comboBox">
|
||||||
|
<property name="currentText">
|
||||||
|
<string>gpt-4o-mini</string>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>gpt3.5-turbo</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>gpt-4</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>gpt-4o</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>gpt-4o-mini</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>gpt-4.1</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>gpt-4.1-mini</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>gpt-4.1-nano</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
||||||
215
src/ui/widgets/widget_sources/welcome_wizard_ui.py
Normal file
215
src/ui/widgets/widget_sources/welcome_wizard_ui.py
Normal file
@@ -0,0 +1,215 @@
|
|||||||
|
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\welcome_wizard.ui'
|
||||||
|
#
|
||||||
|
# Created by: PyQt6 UI code generator 6.9.0
|
||||||
|
#
|
||||||
|
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
|
||||||
|
# run again. Do not edit this file unless you know what you are doing.
|
||||||
|
|
||||||
|
|
||||||
|
from PyQt6 import QtCore, QtGui, QtWidgets
|
||||||
|
|
||||||
|
|
||||||
|
class Ui_Wizard(object):
|
||||||
|
def setupUi(self, Wizard):
|
||||||
|
Wizard.setObjectName("Wizard")
|
||||||
|
Wizard.resize(564, 425)
|
||||||
|
Wizard.setSizeGripEnabled(False)
|
||||||
|
Wizard.setWizardStyle(QtWidgets.QWizard.WizardStyle.ClassicStyle)
|
||||||
|
Wizard.setSubTitleFormat(QtCore.Qt.TextFormat.PlainText)
|
||||||
|
Wizard.setCurrentId(0)
|
||||||
|
self.wizardPage1 = QtWidgets.QWizardPage()
|
||||||
|
self.wizardPage1.setSubTitle("")
|
||||||
|
self.wizardPage1.setObjectName("wizardPage1")
|
||||||
|
self.verticalLayout = QtWidgets.QVBoxLayout(self.wizardPage1)
|
||||||
|
self.verticalLayout.setObjectName("verticalLayout")
|
||||||
|
self.textEdit = QtWidgets.QTextEdit(parent=self.wizardPage1)
|
||||||
|
self.textEdit.setEnabled(False)
|
||||||
|
self.textEdit.setLineWidth(0)
|
||||||
|
self.textEdit.setAutoFormatting(QtWidgets.QTextEdit.AutoFormattingFlag.AutoAll)
|
||||||
|
self.textEdit.setReadOnly(True)
|
||||||
|
self.textEdit.setObjectName("textEdit")
|
||||||
|
self.verticalLayout.addWidget(self.textEdit)
|
||||||
|
Wizard.addPage(self.wizardPage1)
|
||||||
|
self.wizardPage2 = QtWidgets.QWizardPage()
|
||||||
|
self.wizardPage2.setObjectName("wizardPage2")
|
||||||
|
self.gridLayout = QtWidgets.QGridLayout(self.wizardPage2)
|
||||||
|
self.gridLayout.setObjectName("gridLayout")
|
||||||
|
self.label = QtWidgets.QLabel(parent=self.wizardPage2)
|
||||||
|
self.label.setObjectName("label")
|
||||||
|
self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
|
||||||
|
self.settings_database = QtWidgets.QLineEdit(parent=self.wizardPage2)
|
||||||
|
self.settings_database.setObjectName("settings_database")
|
||||||
|
self.gridLayout.addWidget(self.settings_database, 0, 1, 1, 1)
|
||||||
|
self.btn_database = QtWidgets.QToolButton(parent=self.wizardPage2)
|
||||||
|
self.btn_database.setObjectName("btn_database")
|
||||||
|
self.gridLayout.addWidget(self.btn_database, 0, 2, 1, 1)
|
||||||
|
self.label_2 = QtWidgets.QLabel(parent=self.wizardPage2)
|
||||||
|
self.label_2.setObjectName("label_2")
|
||||||
|
self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
|
||||||
|
self.settings_temp = QtWidgets.QLineEdit(parent=self.wizardPage2)
|
||||||
|
self.settings_temp.setObjectName("settings_temp")
|
||||||
|
self.gridLayout.addWidget(self.settings_temp, 1, 1, 1, 1)
|
||||||
|
self.btn_temp = QtWidgets.QToolButton(parent=self.wizardPage2)
|
||||||
|
self.btn_temp.setObjectName("btn_temp")
|
||||||
|
self.gridLayout.addWidget(self.btn_temp, 1, 2, 1, 1)
|
||||||
|
Wizard.addPage(self.wizardPage2)
|
||||||
|
self.wizardPage3 = QtWidgets.QWizardPage()
|
||||||
|
self.wizardPage3.setObjectName("wizardPage3")
|
||||||
|
self.formLayout = QtWidgets.QFormLayout(self.wizardPage3)
|
||||||
|
self.formLayout.setObjectName("formLayout")
|
||||||
|
self.label_3 = QtWidgets.QLabel(parent=self.wizardPage3)
|
||||||
|
self.label_3.setObjectName("label_3")
|
||||||
|
self.formLayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_3)
|
||||||
|
self.lineEdit = QtWidgets.QLineEdit(parent=self.wizardPage3)
|
||||||
|
self.lineEdit.setObjectName("lineEdit")
|
||||||
|
self.formLayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.lineEdit)
|
||||||
|
self.lineEdit_2 = QtWidgets.QLineEdit(parent=self.wizardPage3)
|
||||||
|
self.lineEdit_2.setObjectName("lineEdit_2")
|
||||||
|
self.formLayout.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.lineEdit_2)
|
||||||
|
self.lineEdit_3 = QtWidgets.QLineEdit(parent=self.wizardPage3)
|
||||||
|
self.lineEdit_3.setObjectName("lineEdit_3")
|
||||||
|
self.formLayout.setWidget(3, QtWidgets.QFormLayout.ItemRole.FieldRole, self.lineEdit_3)
|
||||||
|
self.lineEdit_4 = QtWidgets.QLineEdit(parent=self.wizardPage3)
|
||||||
|
self.lineEdit_4.setObjectName("lineEdit_4")
|
||||||
|
self.formLayout.setWidget(4, QtWidgets.QFormLayout.ItemRole.FieldRole, self.lineEdit_4)
|
||||||
|
self.label_4 = QtWidgets.QLabel(parent=self.wizardPage3)
|
||||||
|
self.label_4.setObjectName("label_4")
|
||||||
|
self.formLayout.setWidget(3, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_4)
|
||||||
|
self.label_5 = QtWidgets.QLabel(parent=self.wizardPage3)
|
||||||
|
self.label_5.setObjectName("label_5")
|
||||||
|
self.formLayout.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_5)
|
||||||
|
self.label_6 = QtWidgets.QLabel(parent=self.wizardPage3)
|
||||||
|
self.label_6.setObjectName("label_6")
|
||||||
|
self.formLayout.setWidget(4, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_6)
|
||||||
|
self.settings_mail_use_user_name = QtWidgets.QCheckBox(parent=self.wizardPage3)
|
||||||
|
self.settings_mail_use_user_name.setObjectName("settings_mail_use_user_name")
|
||||||
|
self.formLayout.setWidget(8, QtWidgets.QFormLayout.ItemRole.FieldRole, self.settings_mail_use_user_name)
|
||||||
|
self.settings_mail_ = QtWidgets.QLineEdit(parent=self.wizardPage3)
|
||||||
|
self.settings_mail_.setObjectName("settings_mail_")
|
||||||
|
self.formLayout.setWidget(7, QtWidgets.QFormLayout.ItemRole.FieldRole, self.settings_mail_)
|
||||||
|
self.label_8 = QtWidgets.QLabel(parent=self.wizardPage3)
|
||||||
|
self.label_8.setObjectName("label_8")
|
||||||
|
self.formLayout.setWidget(7, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_8)
|
||||||
|
self.label_9 = QtWidgets.QLabel(parent=self.wizardPage3)
|
||||||
|
self.label_9.setObjectName("label_9")
|
||||||
|
self.formLayout.setWidget(8, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_9)
|
||||||
|
self.textEdit_2 = QtWidgets.QTextEdit(parent=self.wizardPage3)
|
||||||
|
self.textEdit_2.setObjectName("textEdit_2")
|
||||||
|
self.formLayout.setWidget(5, QtWidgets.QFormLayout.ItemRole.FieldRole, self.textEdit_2)
|
||||||
|
self.label_10 = QtWidgets.QLabel(parent=self.wizardPage3)
|
||||||
|
self.label_10.setObjectName("label_10")
|
||||||
|
self.formLayout.setWidget(5, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_10)
|
||||||
|
self.label_7 = QtWidgets.QLabel(parent=self.wizardPage3)
|
||||||
|
self.label_7.setObjectName("label_7")
|
||||||
|
self.formLayout.setWidget(2, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_7)
|
||||||
|
self.lineEdit_5 = QtWidgets.QLineEdit(parent=self.wizardPage3)
|
||||||
|
self.lineEdit_5.setObjectName("lineEdit_5")
|
||||||
|
self.formLayout.setWidget(2, QtWidgets.QFormLayout.ItemRole.FieldRole, self.lineEdit_5)
|
||||||
|
Wizard.addPage(self.wizardPage3)
|
||||||
|
self.wizardPage4 = QtWidgets.QWizardPage()
|
||||||
|
self.wizardPage4.setObjectName("wizardPage4")
|
||||||
|
self.formLayout_2 = QtWidgets.QFormLayout(self.wizardPage4)
|
||||||
|
self.formLayout_2.setObjectName("formLayout_2")
|
||||||
|
self.label_11 = QtWidgets.QLabel(parent=self.wizardPage4)
|
||||||
|
self.label_11.setObjectName("label_11")
|
||||||
|
self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_11)
|
||||||
|
self.settings_zotero_api_key = QtWidgets.QLineEdit(parent=self.wizardPage4)
|
||||||
|
self.settings_zotero_api_key.setObjectName("settings_zotero_api_key")
|
||||||
|
self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.settings_zotero_api_key)
|
||||||
|
self.settings_zotero_library_id = QtWidgets.QLineEdit(parent=self.wizardPage4)
|
||||||
|
self.settings_zotero_library_id.setObjectName("settings_zotero_library_id")
|
||||||
|
self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.settings_zotero_library_id)
|
||||||
|
self.label_12 = QtWidgets.QLabel(parent=self.wizardPage4)
|
||||||
|
self.label_12.setObjectName("label_12")
|
||||||
|
self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_12)
|
||||||
|
self.label_13 = QtWidgets.QLabel(parent=self.wizardPage4)
|
||||||
|
self.label_13.setObjectName("label_13")
|
||||||
|
self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_13)
|
||||||
|
self.settings_zotero_library_type = QtWidgets.QLineEdit(parent=self.wizardPage4)
|
||||||
|
self.settings_zotero_library_type.setObjectName("settings_zotero_library_type")
|
||||||
|
self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.ItemRole.FieldRole, self.settings_zotero_library_type)
|
||||||
|
Wizard.addPage(self.wizardPage4)
|
||||||
|
self.wizardPage5 = QtWidgets.QWizardPage()
|
||||||
|
self.wizardPage5.setObjectName("wizardPage5")
|
||||||
|
self.formLayout_3 = QtWidgets.QFormLayout(self.wizardPage5)
|
||||||
|
self.formLayout_3.setObjectName("formLayout_3")
|
||||||
|
self.lineEdit_6 = QtWidgets.QLineEdit(parent=self.wizardPage5)
|
||||||
|
self.lineEdit_6.setObjectName("lineEdit_6")
|
||||||
|
self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.lineEdit_6)
|
||||||
|
self.label_14 = QtWidgets.QLabel(parent=self.wizardPage5)
|
||||||
|
self.label_14.setObjectName("label_14")
|
||||||
|
self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_14)
|
||||||
|
self.label_15 = QtWidgets.QLabel(parent=self.wizardPage5)
|
||||||
|
self.label_15.setObjectName("label_15")
|
||||||
|
self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_15)
|
||||||
|
self.comboBox = QtWidgets.QComboBox(parent=self.wizardPage5)
|
||||||
|
self.comboBox.setObjectName("comboBox")
|
||||||
|
self.comboBox.addItem("")
|
||||||
|
self.comboBox.addItem("")
|
||||||
|
self.comboBox.addItem("")
|
||||||
|
self.comboBox.addItem("")
|
||||||
|
self.comboBox.addItem("")
|
||||||
|
self.comboBox.addItem("")
|
||||||
|
self.comboBox.addItem("")
|
||||||
|
self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.comboBox)
|
||||||
|
Wizard.addPage(self.wizardPage5)
|
||||||
|
|
||||||
|
self.retranslateUi(Wizard)
|
||||||
|
QtCore.QMetaObject.connectSlotsByName(Wizard)
|
||||||
|
|
||||||
|
def retranslateUi(self, Wizard):
|
||||||
|
_translate = QtCore.QCoreApplication.translate
|
||||||
|
Wizard.setWindowTitle(_translate("Wizard", "Wizard"))
|
||||||
|
self.wizardPage1.setTitle(_translate("Wizard", "Willkommen"))
|
||||||
|
self.textEdit.setHtml(_translate("Wizard", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||||
|
"<html><head><meta name=\"qrichtext\" content=\"1\" /><meta charset=\"utf-8\" /><style type=\"text/css\">\n"
|
||||||
|
"p, li { white-space: pre-wrap; }\n"
|
||||||
|
"hr { height: 1px; border-width: 0; }\n"
|
||||||
|
"li.unchecked::marker { content: \"\\2610\"; }\n"
|
||||||
|
"li.checked::marker { content: \"\\2612\"; }\n"
|
||||||
|
"</style></head><body style=\" font-family:\'Segoe UI\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
|
||||||
|
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Es wurde erkannt, dass der SemesterApparatsManager (SAM) zum ersten Mal gestartet wurde. In den Folgenden Seiten werden die grundlegenden Einstellungen festgelegt, anschließend wird SAM geöffnet. Folgende Einstellungen werden über diesen Wizard festgelegt:</p>\n"
|
||||||
|
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
|
||||||
|
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">- Datenbank</p>\n"
|
||||||
|
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">- eMail</p>\n"
|
||||||
|
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">- Zotero Integration</p>\n"
|
||||||
|
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">- KI Integration</p>\n"
|
||||||
|
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
|
||||||
|
self.wizardPage2.setTitle(_translate("Wizard", "Datenbank"))
|
||||||
|
self.wizardPage2.setSubTitle(_translate("Wizard", "Hier werden die Einstellungen für die Datenbank und temporären Dateien festgelegt. Über den [...] Knopf können die Datenbank und der Speicherort für die temporären Daten festgelegt werden"))
|
||||||
|
self.label.setText(_translate("Wizard", "Datenbank"))
|
||||||
|
self.settings_database.setPlaceholderText(_translate("Wizard", "semesterapparate.db"))
|
||||||
|
self.btn_database.setText(_translate("Wizard", "..."))
|
||||||
|
self.label_2.setText(_translate("Wizard", "Temporäre Daten"))
|
||||||
|
self.settings_temp.setPlaceholderText(_translate("Wizard", "C:\\Users\\[Nutzer]\\AppData\\Local\\SAM\\SemesterApparatsManager\\Cache"))
|
||||||
|
self.btn_temp.setText(_translate("Wizard", "..."))
|
||||||
|
self.wizardPage3.setTitle(_translate("Wizard", "Mail"))
|
||||||
|
self.wizardPage3.setSubTitle(_translate("Wizard", "Hier werden die Einstellungen für die Mailverbindung eingegeben"))
|
||||||
|
self.label_3.setText(_translate("Wizard", "SMTP Server"))
|
||||||
|
self.label_4.setText(_translate("Wizard", "Nutzername"))
|
||||||
|
self.label_5.setText(_translate("Wizard", "SMTP Port"))
|
||||||
|
self.label_6.setText(_translate("Wizard", "Passwort"))
|
||||||
|
self.settings_mail_use_user_name.setText(_translate("Wizard", "CheckBox"))
|
||||||
|
self.label_8.setText(_translate("Wizard", "Druckermail"))
|
||||||
|
self.label_9.setText(_translate("Wizard", "Nutzername\n"
|
||||||
|
"für SMTP"))
|
||||||
|
self.label_10.setText(_translate("Wizard", "Signatur"))
|
||||||
|
self.label_7.setText(_translate("Wizard", "Mail Adresse"))
|
||||||
|
self.wizardPage4.setTitle(_translate("Wizard", "Zotero"))
|
||||||
|
self.wizardPage4.setSubTitle(_translate("Wizard", "Hier werden die Einstellungen für Zotero verwaltet"))
|
||||||
|
self.label_11.setText(_translate("Wizard", "API-Key"))
|
||||||
|
self.label_12.setText(_translate("Wizard", "ID"))
|
||||||
|
self.label_13.setText(_translate("Wizard", "Anwendungstyp"))
|
||||||
|
self.settings_zotero_library_type.setText(_translate("Wizard", "user"))
|
||||||
|
self.wizardPage5.setTitle(_translate("Wizard", "KI-Integration"))
|
||||||
|
self.wizardPage5.setSubTitle(_translate("Wizard", "Hier werden die Einstellungen für die KI Integration eingestellt."))
|
||||||
|
self.label_14.setText(_translate("Wizard", "API Key"))
|
||||||
|
self.label_15.setText(_translate("Wizard", "ChatGPT Modell"))
|
||||||
|
self.comboBox.setCurrentText(_translate("Wizard", "gpt-4o-mini"))
|
||||||
|
self.comboBox.setItemText(0, _translate("Wizard", "gpt3.5-turbo"))
|
||||||
|
self.comboBox.setItemText(1, _translate("Wizard", "gpt-4"))
|
||||||
|
self.comboBox.setItemText(2, _translate("Wizard", "gpt-4o"))
|
||||||
|
self.comboBox.setItemText(3, _translate("Wizard", "gpt-4o-mini"))
|
||||||
|
self.comboBox.setItemText(4, _translate("Wizard", "gpt-4.1"))
|
||||||
|
self.comboBox.setItemText(5, _translate("Wizard", "gpt-4.1-mini"))
|
||||||
|
self.comboBox.setItemText(6, _translate("Wizard", "gpt-4.1-nano"))
|
||||||
Reference in New Issue
Block a user