[Mods] Properly close card art rules tab on disconnect (#7227)

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
BruebachL 2026-09-01 11:31:49 +02:00 committed by GitHub
parent d974501277
commit 45c7ff6f87
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 28 additions and 1 deletions

View file

@ -245,6 +245,7 @@ void TabSupervisor::retranslateUi()
aTabLog->setText(tr("Logs")); aTabLog->setText(tr("Logs"));
aTabReport->setText(tr("Report Queue")); aTabReport->setText(tr("Report Queue"));
aTabModeration->setText(tr("Moderation")); aTabModeration->setText(tr("Moderation"));
aTabCardArtRules->setText(tr("Card Art Rules"));
// tabs // tabs
QList<Tab *> tabs; QList<Tab *> tabs;
@ -256,6 +257,7 @@ void TabSupervisor::retranslateUi()
tabs.append(tabLog); tabs.append(tabLog);
tabs.append(tabReport); tabs.append(tabReport);
tabs.append(tabModeration); tabs.append(tabModeration);
tabs.append(tabCardArtRules);
QMapIterator<int, TabRoom *> roomIterator(roomTabs); QMapIterator<int, TabRoom *> roomIterator(roomTabs);
while (roomIterator.hasNext()) { while (roomIterator.hasNext()) {
tabs.append(roomIterator.next().value()); tabs.append(roomIterator.next().value());
@ -520,8 +522,10 @@ void TabSupervisor::start(const ServerInfo_User &_userInfo)
if (SettingsCache::instance().tabs().getTabModerationOpen()) { if (SettingsCache::instance().tabs().getTabModerationOpen()) {
openTabModeration(); openTabModeration();
} }
if (SettingsCache::instance().tabs().getTabCardArtRulesOpen()) {
openTabCardArtRules(); openTabCardArtRules();
} }
}
retranslateUi(); retranslateUi();
} }
@ -582,6 +586,9 @@ void TabSupervisor::stop()
if (tabModeration) { if (tabModeration) {
tabModeration->close(); tabModeration->close();
} }
if (tabCardArtRules) {
tabCardArtRules->close();
}
} }
QList<Tab *> tabsToDelete; QList<Tab *> tabsToDelete;
@ -775,6 +782,7 @@ void TabSupervisor::openTabAdmin()
void TabSupervisor::actTabCardArtRules(bool checked) void TabSupervisor::actTabCardArtRules(bool checked)
{ {
SettingsCache::instance().tabs().setTabCardArtRulesOpen(checked);
if (checked && !tabCardArtRules) { if (checked && !tabCardArtRules) {
openTabCardArtRules(); openTabCardArtRules();
setCurrentWidget(tabCardArtRules); setCurrentWidget(tabCardArtRules);

View file

@ -21,6 +21,7 @@ public:
[[nodiscard]] virtual bool getTabLogOpen() const = 0; [[nodiscard]] virtual bool getTabLogOpen() const = 0;
[[nodiscard]] virtual bool getTabReportOpen() const = 0; [[nodiscard]] virtual bool getTabReportOpen() const = 0;
[[nodiscard]] virtual bool getTabModerationOpen() const = 0; [[nodiscard]] virtual bool getTabModerationOpen() const = 0;
[[nodiscard]] virtual bool getTabCardArtRulesOpen() const = 0;
}; };
#endif // COCKATRICE_INTERFACE_TABS_SETTINGS_PROVIDER_H #endif // COCKATRICE_INTERFACE_TABS_SETTINGS_PROVIDER_H

View file

@ -106,6 +106,11 @@ bool TabsSettings::getTabModerationOpen() const
return getValue("moderation", QString(), QString(), false).toBool(); return getValue("moderation", QString(), QString(), false).toBool();
} }
bool TabsSettings::getTabCardArtRulesOpen() const
{
return getValue("cardArtRules", QString(), QString(), false).toBool();
}
void TabsSettings::setTabVisualDeckStorageOpen(bool value) void TabsSettings::setTabVisualDeckStorageOpen(bool value)
{ {
setValue(value, "visualDeckStorage"); setValue(value, "visualDeckStorage");
@ -150,3 +155,8 @@ void TabsSettings::setTabModerationOpen(bool value)
{ {
setValue(value, "moderation"); setValue(value, "moderation");
} }
void TabsSettings::setTabCardArtRulesOpen(bool value)
{
setValue(value, "cardArtRules");
}

View file

@ -43,6 +43,7 @@ public:
[[nodiscard]] bool getTabLogOpen() const override; [[nodiscard]] bool getTabLogOpen() const override;
[[nodiscard]] bool getTabReportOpen() const override; [[nodiscard]] bool getTabReportOpen() const override;
[[nodiscard]] bool getTabModerationOpen() const override; [[nodiscard]] bool getTabModerationOpen() const override;
[[nodiscard]] bool getTabCardArtRulesOpen() const override;
void setStartupTabIndex(int value); void setStartupTabIndex(int value);
void setStartupServerHost(const QString &host); void setStartupServerHost(const QString &host);
@ -57,6 +58,7 @@ public:
void setTabLogOpen(bool value); void setTabLogOpen(bool value);
void setTabReportOpen(bool value); void setTabReportOpen(bool value);
void setTabModerationOpen(bool value); void setTabModerationOpen(bool value);
void setTabCardArtRulesOpen(bool value);
signals: signals:
void startupTabIndexChanged(int index); void startupTabIndexChanged(int index);

View file

@ -238,6 +238,12 @@ TEST_F(SettingsDefaultsTest, Tabs_ModerationOpen_Default)
ASSERT_EQ(s.getTabModerationOpen(), false); ASSERT_EQ(s.getTabModerationOpen(), false);
} }
TEST_F(SettingsDefaultsTest, Tabs_CardArtRulesOpen_Default)
{
TabsSettings s(settingsPath, nullptr);
ASSERT_EQ(s.getTabCardArtRulesOpen(), false);
}
// --- ChatSettings --- // --- ChatSettings ---
TEST_F(SettingsDefaultsTest, Chat_Mention_Default) TEST_F(SettingsDefaultsTest, Chat_Mention_Default)