if (!selected.isValid() || !folder)
return;
- OwncloudWizard::askExperimentalVirtualFilesFeature([folder, this](bool enable) {
+ OwncloudWizard::askExperimentalVirtualFilesFeature(this, [folder, this](bool enable) {
if (!enable || !folder)
return;
// The click has already had an effect on the box, so if it's
// checked it was newly activated.
if (_virtualFilesCheckBox->isChecked()) {
- OwncloudWizard::askExperimentalVirtualFilesFeature([this](bool enable) {
+ OwncloudWizard::askExperimentalVirtualFilesFeature(this, [this](bool enable) {
if (!enable)
_virtualFilesCheckBox->setChecked(false);
});
void OwncloudAdvancedSetupPage::slotVirtualFileSyncClicked()
{
- OwncloudWizard::askExperimentalVirtualFilesFeature([this](bool enable) {
- if (!enable)
- return;
-
- _ui.lSelectiveSyncSizeLabel->setText(QString());
- _selectiveSyncBlacklist.clear();
- setRadioChecked(_ui.rVirtualFileSync);
- });
+ if (!_ui.rVirtualFileSync->isChecked()) {
+ OwncloudWizard::askExperimentalVirtualFilesFeature(this, [this](bool enable) {
+ if (!enable)
+ return;
+
+ _ui.lSelectiveSyncSizeLabel->setText(QString());
+ _selectiveSyncBlacklist.clear();
+ setRadioChecked(_ui.rVirtualFileSync);
+ });
+ }
}
void OwncloudAdvancedSetupPage::slotSyncEverythingClicked()
ownCloudGui::raiseDialog(this);
}
-void OwncloudWizard::askExperimentalVirtualFilesFeature(const std::function<void(bool enable)> &callback)
+void OwncloudWizard::askExperimentalVirtualFilesFeature(QWidget *receiver, const std::function<void(bool enable)> &callback)
{
const auto bestVfsMode = bestAvailableVfsMode();
QMessageBox *msgBox = nullptr;
msgBox->addButton(tr("Enable experimental placeholder mode"), QMessageBox::AcceptRole);
msgBox->addButton(tr("Stay safe"), QMessageBox::RejectRole);
}
- connect(msgBox, &QMessageBox::finished, msgBox, [callback, msgBox](int result) {
+ msgBox->setParent(receiver);
+ connect(msgBox, &QMessageBox::finished, receiver, [callback, msgBox](int result) {
callback(result == QMessageBox::AcceptRole);
msgBox->deleteLater();
});
* being experimental. Calles the callback with true if enabling was
* chosen.
*/
- static void askExperimentalVirtualFilesFeature(const std::function<void(bool enable)> &callback);
+ static void askExperimentalVirtualFilesFeature(QWidget *receiver, const std::function<void(bool enable)> &callback);
// FIXME: Can those be local variables?
// Set from the OwncloudSetupPage, later used from OwncloudHttpCredsPage