Naming and sizing

Took 4 minutes
This commit is contained in:
Lukas Brübach 2026-08-15 22:09:56 +02:00
parent 30429d074b
commit 5fa5a0eaff
5 changed files with 28 additions and 25 deletions

View file

@ -162,6 +162,9 @@ GeneralSettingsPage::GeneralSettingsPage()
});
startupRoomNameEdit = new QLineEdit(settings.tabs().getStartupRoomName());
// Default (Expanding) would stretch the whole controls column when this row becomes visible,
// so size it like the combo boxes instead: fills the column, never widens it.
startupRoomNameEdit->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
connect(startupRoomNameEdit, &QLineEdit::editingFinished, this,
[this] { SettingsCache::instance().tabs().setStartupRoomName(startupRoomNameEdit->text().trimmed()); });
@ -412,8 +415,8 @@ void GeneralSettingsPage::languageBoxChanged(int index)
void GeneralSettingsPage::updateStartupServerControlsVisibility()
{
const int index = startupTabSelector.currentIndex();
const bool serverNeeded = index == StartupTabServer || index == StartupTabServerRoom;
const bool roomNeeded = index == StartupTabServerRoom;
const bool serverNeeded = index == StartupTab::StartupTabServer || index == StartupTab::StartupTabServerRoom;
const bool roomNeeded = index == StartupTab::StartupTabServerRoom;
startupServerLabel.setVisible(serverNeeded);
startupServerSelector.setVisible(serverNeeded);
startupRoomLabel.setVisible(roomNeeded);
@ -457,14 +460,14 @@ void GeneralSettingsPage::retranslateUi()
newVersionOracleCheckBox.setText(tr("Automatically run Oracle when running a new version of Cockatrice"));
showTipsOnStartup.setText(tr("Show tips on startup"));
startupTabLabel.setText(tr("Startup tab:"));
startupTabSelector.setItemText(StartupTabHome, tr("Home"));
startupTabSelector.setItemText(StartupTabVisualDeckStorage, tr("Visual Deck Storage"));
startupTabSelector.setItemText(StartupTabDeckStorage, tr("Deck Storage"));
startupTabSelector.setItemText(StartupTabReplays, tr("Game Replays"));
startupTabSelector.setItemText(StartupTabDeckEditor, tr("Deck Editor"));
startupTabSelector.setItemText(StartupTabVisualDeckEditor, tr("Visual Deck Editor"));
startupTabSelector.setItemText(StartupTabServer, tr("Server"));
startupTabSelector.setItemText(StartupTabServerRoom, tr("Server Room"));
startupTabSelector.setItemText(StartupTab::StartupTabHome, tr("Home"));
startupTabSelector.setItemText(StartupTab::StartupTabVisualDeckStorage, tr("Visual Deck Storage"));
startupTabSelector.setItemText(StartupTab::StartupTabDeckStorage, tr("Deck Storage"));
startupTabSelector.setItemText(StartupTab::StartupTabReplays, tr("Game Replays"));
startupTabSelector.setItemText(StartupTab::StartupTabDeckEditor, tr("Deck Editor"));
startupTabSelector.setItemText(StartupTab::StartupTabVisualDeckEditor, tr("Visual Deck Editor"));
startupTabSelector.setItemText(StartupTab::StartupTabServer, tr("Server"));
startupTabSelector.setItemText(StartupTab::StartupTabServerRoom, tr("Server Room"));
startupTabSelector.setToolTip(
tr("The tab shown when Cockatrice starts. If the chosen tab is not open yet, it is opened."));
startupServerLabel.setText(tr("Server:"));

View file

@ -358,36 +358,36 @@ void TabSupervisor::initStartupTabs()
}
switch (SettingsCache::instance().tabs().getStartupTabIndex()) {
case StartupTabVisualDeckStorage:
case StartupTab::StartupTabVisualDeckStorage:
if (!tabVisualDeckStorage) {
openTabVisualDeckStorage();
}
setCurrentWidget(tabVisualDeckStorage);
break;
case StartupTabDeckStorage:
case StartupTab::StartupTabDeckStorage:
if (!tabDeckStorage) {
openTabDeckStorage();
}
setCurrentWidget(tabDeckStorage);
break;
case StartupTabReplays:
case StartupTab::StartupTabReplays:
if (!tabReplays) {
openTabReplays();
}
setCurrentWidget(tabReplays);
break;
case StartupTabDeckEditor:
case StartupTab::StartupTabDeckEditor:
addDeckEditorTab(LoadedDeck());
break;
case StartupTabVisualDeckEditor:
case StartupTab::StartupTabVisualDeckEditor:
addVisualDeckEditorTab(LoadedDeck());
break;
case StartupTabServer:
case StartupTabServerRoom:
case StartupTab::StartupTabServer:
case StartupTab::StartupTabServerRoom:
// Handled asynchronously by MainWindow::applyStartupDestination(); Home stays selected
// until the server connection succeeds.
break;
case StartupTabHome:
case StartupTab::StartupTabHome:
default:
setCurrentWidget(tabHome);
break;

View file

@ -669,7 +669,7 @@ void MainWindow::applyStartupDestination()
}
const int destination = SettingsCache::instance().tabs().getStartupTabIndex();
if (destination != StartupTabServer && destination != StartupTabServerRoom) {
if (destination != StartupTab::StartupTabServer && destination != StartupTab::StartupTabServerRoom) {
return;
}
@ -703,7 +703,7 @@ void MainWindow::onStartupDestinationConnected(int destination, const ContextCon
tabSupervisor->openTabServer();
}
if (destination == StartupTabServerRoom) {
if (destination == StartupTab::StartupTabServerRoom) {
auto roomContext = std::make_unique<ContextJoinRoom>();
roomContext->serverContext = serverContext;
auto *roomIntent = new IntentOpenServerRoomByName(tabSupervisor, getRemoteClient(), std::move(roomContext),
@ -729,7 +729,7 @@ void MainWindow::startupDestinationFailed(const QString &reason)
bool MainWindow::startupDestinationConnectsToServer() const
{
const int destination = SettingsCache::instance().tabs().getStartupTabIndex();
return destination == StartupTabServer || destination == StartupTabServerRoom;
return destination == StartupTab::StartupTabServer || destination == StartupTab::StartupTabServerRoom;
}
void MainWindow::alertForcedOracleRun(const QString &version, bool isUpdate)

View file

@ -7,7 +7,7 @@ TabsSettings::TabsSettings(const QString &settingPath, QObject *parent)
int TabsSettings::getStartupTabIndex() const
{
return getValue("startupTab", QString(), QString(), StartupTabHome).toInt();
return getValue("startupTab", QString(), QString(), StartupTab::StartupTabHome).toInt();
}
QString TabsSettings::getStartupServerHost() const

View file

@ -191,14 +191,14 @@ TEST_F(SettingsDefaultsTest, Sound_MasterVolume_SetAndGet)
TEST_F(SettingsDefaultsTest, Tabs_StartupTab_Default)
{
TabsSettings s(settingsPath, nullptr);
ASSERT_EQ(s.getStartupTabIndex(), static_cast<int>(StartupTabHome));
ASSERT_EQ(s.getStartupTabIndex(), static_cast<int>(StartupTab::StartupTabHome));
}
TEST_F(SettingsDefaultsTest, Tabs_StartupTab_SetAndGet)
{
TabsSettings s(settingsPath, nullptr);
s.setStartupTabIndex(StartupTabServerRoom);
ASSERT_EQ(s.getStartupTabIndex(), static_cast<int>(StartupTabServerRoom));
s.setStartupTabIndex(StartupTab::StartupTabServerRoom);
ASSERT_EQ(s.getStartupTabIndex(), static_cast<int>(StartupTab::StartupTabServerRoom));
}
TEST_F(SettingsDefaultsTest, Tabs_StartupServer_Default)