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

Merge pull request #304 from nikolainyegaard/fix-sharepoint-business-detection

Fix SharePoint wizard never detecting Business profiles
This commit is contained in:
Boris Pozdena
2026-09-15 05:05:48 -07:00
committed by GitHub
2 changed files with 27 additions and 7 deletions

View File

@@ -48,7 +48,7 @@ from gui_settings_window import gui_settings_window
import logging
# from logger import logger
from global_config import DIR_PATH, PROFILES_FILE
from global_config import DIR_PATH, PROFILES_FILE, save_global_config
try:
from ui.ui_login import Ui_LoginWindow
@@ -131,6 +131,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
)
self.stackedLayout = QStackedLayout()
# Account types already persisted in the profiles file. Used to detect
# when a type reported during sync still needs to be saved to disk.
self.saved_account_types = {profile: global_config[profile]["account_type"] for profile in global_config}
self.profile_status_pages = {}
for profile in global_config:
self.comboBox.addItem(profile)
@@ -826,6 +830,14 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.profile_status_pages[profile].label_free_space.setText(data["free_space"])
self.profile_status_pages[profile].label_account_type.setText(data["account_type"])
# Persist the account type reported by the client so it survives a
# restart; the worker only updates the in-memory config. Saving here
# keeps config writes on the main thread.
if data["account_type"] and data["account_type"] != self.saved_account_types.get(profile):
self.saved_account_types[profile] = data["account_type"]
save_global_config(global_config)
logging.info(f"[{profile}] Saved account type: {data['account_type']}")
# Handle error message display
if "error_message" in data and data["error_message"]:
# Show error icon with full error message in tooltip

View File

@@ -328,12 +328,6 @@ class wizardPage_create_shared_library(QWizardPage):
self.pushButton_create_profile.setText("Create Profile")
self.pushButton_create_profile.setDisabled(True)
for profile in global_config:
if global_config[profile]["account_type"] == "Business":
self.comboBox_profile_list.addItem(profile)
self.comboBox_profile_list.setPlaceholderText("")
self.pushButton_get_sites.setDisabled(False)
layout = QGridLayout()
layout.addWidget(self.label_1, 0, 0)
layout.addWidget(self.comboBox_profile_list, 0, 1)
@@ -350,6 +344,20 @@ class wizardPage_create_shared_library(QWizardPage):
self.setLayout(layout)
def initializePage(self):
# Rebuild the profile list on every page entry. Account types are only
# discovered while a sync is running, so the set of known Business
# profiles can change at any point after the wizard was created.
self.comboBox_profile_list.clear()
for profile in global_config:
if global_config[profile]["account_type"] == "Business":
self.comboBox_profile_list.addItem(profile)
business_account_found = self.comboBox_profile_list.count() > 0
self.comboBox_profile_list.setPlaceholderText("" if business_account_found else "No Business accounts detected.")
self.pushButton_get_sites.setDisabled(not business_account_found)
def isComplete(self):
if self.pushButton_create_profile.text() == "Done":
return True