diff --git a/cockatrice/src/interface/widgets/settings_page/general_settings_page.cpp b/cockatrice/src/interface/widgets/settings_page/general_settings_page.cpp index d1f23a503..a293660f9 100644 --- a/cockatrice/src/interface/widgets/settings_page/general_settings_page.cpp +++ b/cockatrice/src/interface/widgets/settings_page/general_settings_page.cpp @@ -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:")); diff --git a/cockatrice/src/interface/widgets/tabs/tab_supervisor.cpp b/cockatrice/src/interface/widgets/tabs/tab_supervisor.cpp index a11ee6488..4100e124a 100644 --- a/cockatrice/src/interface/widgets/tabs/tab_supervisor.cpp +++ b/cockatrice/src/interface/widgets/tabs/tab_supervisor.cpp @@ -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; diff --git a/cockatrice/src/interface/window_main.cpp b/cockatrice/src/interface/window_main.cpp index d5b158802..c083dccf8 100644 --- a/cockatrice/src/interface/window_main.cpp +++ b/cockatrice/src/interface/window_main.cpp @@ -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(); 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) diff --git a/libcockatrice_settings/libcockatrice/settings/tabs_settings.cpp b/libcockatrice_settings/libcockatrice/settings/tabs_settings.cpp index 971c6e607..78e48ed5b 100644 --- a/libcockatrice_settings/libcockatrice/settings/tabs_settings.cpp +++ b/libcockatrice_settings/libcockatrice/settings/tabs_settings.cpp @@ -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 diff --git a/tests/settings/settings_defaults_test.cpp b/tests/settings/settings_defaults_test.cpp index 1401f21e7..bf15dca95 100644 --- a/tests/settings/settings_defaults_test.cpp +++ b/tests/settings/settings_defaults_test.cpp @@ -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(StartupTabHome)); + ASSERT_EQ(s.getStartupTabIndex(), static_cast(StartupTab::StartupTabHome)); } TEST_F(SettingsDefaultsTest, Tabs_StartupTab_SetAndGet) { TabsSettings s(settingsPath, nullptr); - s.setStartupTabIndex(StartupTabServerRoom); - ASSERT_EQ(s.getStartupTabIndex(), static_cast(StartupTabServerRoom)); + s.setStartupTabIndex(StartupTab::StartupTabServerRoom); + ASSERT_EQ(s.getStartupTabIndex(), static_cast(StartupTab::StartupTabServerRoom)); } TEST_F(SettingsDefaultsTest, Tabs_StartupServer_Default)