mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-11 16:32:14 -06:00
CMake GUI: Disable preset fields instead of hiding them
This commit is contained in:
@@ -43,6 +43,12 @@
|
||||
#include "RegexExplorer.h"
|
||||
#include "WarningMessagesDialog.h"
|
||||
|
||||
namespace {
|
||||
const QString PRESETS_DISABLED_TOOLTIP =
|
||||
"This option is disabled because there are no available presets in "
|
||||
"CMakePresets.json or CMakeUserPresets.json.";
|
||||
}
|
||||
|
||||
QCMakeThread::QCMakeThread(QObject* p)
|
||||
: QThread(p)
|
||||
{
|
||||
@@ -92,6 +98,7 @@ CMakeSetupDialog::CMakeSetupDialog()
|
||||
this->ProgressBar->reset();
|
||||
this->RemoveEntry->setEnabled(false);
|
||||
this->AddEntry->setEnabled(false);
|
||||
this->Preset->setStatusTip(PRESETS_DISABLED_TOOLTIP);
|
||||
|
||||
QByteArray p = settings.value("SplitterSizes").toByteArray();
|
||||
this->Splitter->restoreState(p);
|
||||
@@ -696,8 +703,8 @@ void CMakeSetupDialog::updatePresets(const QVector<QCMakePreset>& presets)
|
||||
this->Preset->blockSignals(false);
|
||||
}
|
||||
|
||||
this->Preset->setHidden(presets.isEmpty());
|
||||
this->PresetLabel->setHidden(presets.isEmpty());
|
||||
this->Preset->setDisabled(presets.isEmpty());
|
||||
this->Preset->setToolTip(presets.isEmpty() ? PRESETS_DISABLED_TOOLTIP : "");
|
||||
|
||||
if (!this->DeferredPreset.isNull()) {
|
||||
this->Preset->setPresetName(this->DeferredPreset);
|
||||
@@ -823,7 +830,7 @@ void CMakeSetupDialog::setEnabledState(bool enabled)
|
||||
this->CacheValues->cacheModel()->setEditEnabled(enabled);
|
||||
this->SourceDirectory->setEnabled(enabled);
|
||||
this->BrowseSourceDirectoryButton->setEnabled(enabled);
|
||||
this->Preset->setEnabled(enabled);
|
||||
this->Preset->setEnabled(enabled && !this->Preset->presets().isEmpty());
|
||||
this->BinaryDirectory->setEnabled(enabled);
|
||||
this->BrowseBinaryDirectoryButton->setEnabled(enabled);
|
||||
this->ReloadCacheAction->setEnabled(enabled);
|
||||
|
||||
@@ -68,7 +68,11 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QCMakePresetComboBox" name="Preset"/>
|
||||
<widget class="QCMakePresetComboBox" name="Preset">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="BinaryLabel">
|
||||
|
||||
@@ -356,16 +356,14 @@ void CMakeGUITest::changingPresets()
|
||||
QCOMPARE(this->m_window->Preset->presetName(), QString{});
|
||||
QCOMPARE(this->m_window->Preset->presets().size(), 0);
|
||||
QCOMPARE(this->m_window->BinaryDirectory->currentText(), "");
|
||||
QCOMPARE(this->m_window->Preset->isHidden(), true);
|
||||
QCOMPARE(this->m_window->PresetLabel->isHidden(), true);
|
||||
QCOMPARE(this->m_window->Preset->isEnabled(), false);
|
||||
|
||||
writePresets("build1", { "preset" });
|
||||
loopSleep(1500);
|
||||
QCOMPARE(this->m_window->Preset->presetName(), QString{});
|
||||
QCOMPARE(this->m_window->Preset->presets().size(), 1);
|
||||
QCOMPARE(this->m_window->BinaryDirectory->currentText(), "");
|
||||
QCOMPARE(this->m_window->Preset->isHidden(), false);
|
||||
QCOMPARE(this->m_window->PresetLabel->isHidden(), false);
|
||||
QCOMPARE(this->m_window->Preset->isEnabled(), true);
|
||||
|
||||
this->m_window->Preset->setPresetName("preset");
|
||||
loopSleep();
|
||||
@@ -373,8 +371,7 @@ void CMakeGUITest::changingPresets()
|
||||
QCOMPARE(this->m_window->Preset->presets().size(), 1);
|
||||
QCOMPARE(this->m_window->BinaryDirectory->currentText(),
|
||||
CMakeGUITest_BINARY_DIR "/changingPresets/src/build1/preset");
|
||||
QCOMPARE(this->m_window->Preset->isHidden(), false);
|
||||
QCOMPARE(this->m_window->PresetLabel->isHidden(), false);
|
||||
QCOMPARE(this->m_window->Preset->isEnabled(), true);
|
||||
|
||||
writePresets("build2", { "preset2", "preset" });
|
||||
loopSleep(1500);
|
||||
@@ -382,8 +379,7 @@ void CMakeGUITest::changingPresets()
|
||||
QCOMPARE(this->m_window->Preset->presets().size(), 2);
|
||||
QCOMPARE(this->m_window->BinaryDirectory->currentText(),
|
||||
CMakeGUITest_BINARY_DIR "/changingPresets/src/build1/preset");
|
||||
QCOMPARE(this->m_window->Preset->isHidden(), false);
|
||||
QCOMPARE(this->m_window->PresetLabel->isHidden(), false);
|
||||
QCOMPARE(this->m_window->Preset->isEnabled(), true);
|
||||
|
||||
writePresets("build3", { "preset2" });
|
||||
loopSleep(1500);
|
||||
@@ -391,8 +387,7 @@ void CMakeGUITest::changingPresets()
|
||||
QCOMPARE(this->m_window->Preset->presets().size(), 1);
|
||||
QCOMPARE(this->m_window->BinaryDirectory->currentText(),
|
||||
CMakeGUITest_BINARY_DIR "/changingPresets/src/build1/preset");
|
||||
QCOMPARE(this->m_window->Preset->isHidden(), false);
|
||||
QCOMPARE(this->m_window->PresetLabel->isHidden(), false);
|
||||
QCOMPARE(this->m_window->Preset->isEnabled(), true);
|
||||
|
||||
this->m_window->Preset->setPresetName("preset2");
|
||||
loopSleep();
|
||||
@@ -400,8 +395,7 @@ void CMakeGUITest::changingPresets()
|
||||
QCOMPARE(this->m_window->Preset->presets().size(), 1);
|
||||
QCOMPARE(this->m_window->BinaryDirectory->currentText(),
|
||||
CMakeGUITest_BINARY_DIR "/changingPresets/src/build3/preset2");
|
||||
QCOMPARE(this->m_window->Preset->isHidden(), false);
|
||||
QCOMPARE(this->m_window->PresetLabel->isHidden(), false);
|
||||
QCOMPARE(this->m_window->Preset->isEnabled(), true);
|
||||
|
||||
QDir::root().mkpath(CMakeGUITest_BINARY_DIR "/changingPresets/src2");
|
||||
QFile::copy(CMakeGUITest_BINARY_DIR "/changingPresets/src/CMakePresets.json",
|
||||
@@ -414,8 +408,7 @@ void CMakeGUITest::changingPresets()
|
||||
QCOMPARE(this->m_window->Preset->presets().size(), 1);
|
||||
QCOMPARE(this->m_window->BinaryDirectory->currentText(),
|
||||
CMakeGUITest_BINARY_DIR "/changingPresets/src/build3/preset2");
|
||||
QCOMPARE(this->m_window->Preset->isHidden(), false);
|
||||
QCOMPARE(this->m_window->PresetLabel->isHidden(), false);
|
||||
QCOMPARE(this->m_window->Preset->isEnabled(), true);
|
||||
|
||||
this->m_window->Preset->setPresetName("preset2");
|
||||
loopSleep();
|
||||
@@ -423,8 +416,7 @@ void CMakeGUITest::changingPresets()
|
||||
QCOMPARE(this->m_window->Preset->presets().size(), 1);
|
||||
QCOMPARE(this->m_window->BinaryDirectory->currentText(),
|
||||
CMakeGUITest_BINARY_DIR "/changingPresets/src2/build3/preset2");
|
||||
QCOMPARE(this->m_window->Preset->isHidden(), false);
|
||||
QCOMPARE(this->m_window->PresetLabel->isHidden(), false);
|
||||
QCOMPARE(this->m_window->Preset->isEnabled(), true);
|
||||
|
||||
QFile(CMakeGUITest_BINARY_DIR "/changingPresets/src2/CMakePresets.json")
|
||||
.remove();
|
||||
@@ -433,8 +425,7 @@ void CMakeGUITest::changingPresets()
|
||||
QCOMPARE(this->m_window->Preset->presets().size(), 0);
|
||||
QCOMPARE(this->m_window->BinaryDirectory->currentText(),
|
||||
CMakeGUITest_BINARY_DIR "/changingPresets/src2/build3/preset2");
|
||||
QCOMPARE(this->m_window->Preset->isHidden(), true);
|
||||
QCOMPARE(this->m_window->PresetLabel->isHidden(), true);
|
||||
QCOMPARE(this->m_window->Preset->isEnabled(), false);
|
||||
}
|
||||
|
||||
void SetupDefaultQSettings()
|
||||
|
||||
Reference in New Issue
Block a user