Konstruktor: setDirty(false) am Ende, statt setDirty(true) via onShareToggled

Verhindert dass das Öffnen des Properties-Dialogs als ungespeicherte
Änderung interpretiert wird. KDE rief sonst applyChanges() auf allen
Plugins auf, was z.B. das parallel installierte SMB-Plugin dazu brachte,
seine User-Berechtigungen mit dem Default 'Everyone:R' zu überschreiben.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
duffyduck 2026-04-13 12:15:17 +02:00
parent 0a85c5fe92
commit 76beda113e
2 changed files with 14 additions and 4 deletions

View File

@ -205,8 +205,13 @@ FtpSharePlugin::FtpSharePlugin(QObject *parent, const QVariantList &args)
// Load existing share info // Load existing share info
loadCurrentShare(); loadCurrentShare();
// Initial UI state // Initial UI state — apply enabled/disabled without marking dirty
onShareToggled(m_shareCheckBox->isChecked()); m_nameEdit->setEnabled(m_shareCheckBox->isChecked());
m_usersWidget->setEnabled(m_shareCheckBox->isChecked());
// Reset dirty after all initial setup so opening the dialog doesn't
// trigger applyChanges() on this or other plugins.
setDirty(false);
// Add the page as a tab // Add the page as a tab
properties->addPage(m_page, i18n("FTP")); properties->addPage(m_page, i18n("FTP"));

View File

@ -205,8 +205,13 @@ FtpSharePlugin::FtpSharePlugin(QObject *parent, const QVariantList &args)
// Load existing share info // Load existing share info
loadCurrentShare(); loadCurrentShare();
// Initial UI state // Initial UI state — apply enabled/disabled without marking dirty
onShareToggled(m_shareCheckBox->isChecked()); m_nameEdit->setEnabled(m_shareCheckBox->isChecked());
m_usersWidget->setEnabled(m_shareCheckBox->isChecked());
// Reset dirty after all initial setup so opening the dialog doesn't
// trigger applyChanges() on this or other plugins.
setDirty(false);
// Add the page as a tab // Add the page as a tab
properties->addPage(m_page, i18n("FTP")); properties->addPage(m_page, i18n("FTP"));