OS X: Provide a setting for file system case sensitivity in preferences

Change-Id: Idaafb55ab4cf1fb1b525f3f911ecff291e035bb2
Task-number: QTCREATORBUG-13507
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
This commit is contained in:
Eike Ziller
2015-08-14 16:45:23 +02:00
parent 2db21dc201
commit e1e7c542c6
3 changed files with 212 additions and 102 deletions

View File

@@ -112,6 +112,31 @@ QWidget *SystemSettings::widget()
}
}
if (HostOsInfo::isMacHost()) {
Qt::CaseSensitivity defaultSensitivity
= OsSpecificAspects(HostOsInfo::hostOs()).fileNameCaseSensitivity();
if (defaultSensitivity == Qt::CaseSensitive) {
m_page->fileSystemCaseSensitivityChooser->addItem(tr("Case Sensitive (Default)"),
Qt::CaseSensitive);
} else {
m_page->fileSystemCaseSensitivityChooser->addItem(tr("Case Sensitive"),
Qt::CaseSensitive);
}
if (defaultSensitivity == Qt::CaseInsensitive) {
m_page->fileSystemCaseSensitivityChooser->addItem(tr("Case Insensitive (Default)"),
Qt::CaseInsensitive);
} else {
m_page->fileSystemCaseSensitivityChooser->addItem(tr("Case Insensitive"),
Qt::CaseInsensitive);
}
if (HostOsInfo::fileNameCaseSensitivity() == Qt::CaseSensitive)
m_page->fileSystemCaseSensitivityChooser->setCurrentIndex(0);
else
m_page->fileSystemCaseSensitivityChooser->setCurrentIndex(1);
} else {
m_page->fileSystemCaseSensitivityWidget->hide();
}
updatePath();
connect(VcsManager::instance(), SIGNAL(configurationChanged(const IVersionControl*)),
@@ -139,6 +164,17 @@ void SystemSettings::apply()
EditorManagerPrivate::setWarnBeforeOpeningBigFilesEnabled(
m_page->warnBeforeOpeningBigFiles->isChecked());
EditorManagerPrivate::setBigFileSizeLimit(m_page->bigFilesLimitSpinBox->value());
if (HostOsInfo::isMacHost()) {
Qt::CaseSensitivity defaultSensitivity
= OsSpecificAspects(HostOsInfo::hostOs()).fileNameCaseSensitivity();
Qt::CaseSensitivity selectedSensitivity = Qt::CaseSensitivity(
m_page->fileSystemCaseSensitivityChooser->currentData().toInt());
if (defaultSensitivity == selectedSensitivity)
HostOsInfo::unsetOverrideFileNameCaseSensitivity();
else
HostOsInfo::setOverrideFileNameCaseSensitivity(selectedSensitivity);
}
}
void SystemSettings::finish()