Allow offline Deck Storage tab (#5518)

* make deck storage tab no longer close on disconnect

* add method for clearing remote decklist model

* handle connect/disconnect in deck storage tab
This commit is contained in:
RickyRister 2025-01-24 19:16:40 -08:00 committed by GitHub
parent e8b1e3ef0c
commit f428148f64
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 63 additions and 15 deletions

View file

@ -279,6 +279,7 @@ void TabSupervisor::initStartupTabs()
addDeckEditorTab(nullptr);
checkAndTrigger(aTabVisualDeckStorage, SettingsCache::instance().getTabVisualDeckStorageOpen());
checkAndTrigger(aTabDeckStorage, SettingsCache::instance().getTabDeckStorageOpen());
}
/**
@ -334,6 +335,7 @@ void TabSupervisor::resetTabsMenu()
tabsMenu->addAction(aTabDeckEditor);
tabsMenu->addSeparator();
tabsMenu->addAction(aTabVisualDeckStorage);
tabsMenu->addAction(aTabDeckStorage);
}
void TabSupervisor::start(const ServerInfo_User &_userInfo)
@ -355,10 +357,8 @@ void TabSupervisor::start(const ServerInfo_User &_userInfo)
updatePingTime(0, -1);
if (userInfo->user_level() & ServerInfo_User::IsRegistered) {
tabsMenu->addAction(aTabDeckStorage);
tabsMenu->addAction(aTabReplays);
checkAndTrigger(aTabDeckStorage, SettingsCache::instance().getTabDeckStorageOpen());
checkAndTrigger(aTabReplays, SettingsCache::instance().getTabReplaysOpen());
}
@ -379,7 +379,6 @@ void TabSupervisor::startLocal(const QList<AbstractClient *> &_clients)
resetTabsMenu();
tabAccount = nullptr;
tabDeckStorage = nullptr;
tabReplays = nullptr;
tabAdmin = nullptr;
tabLog = nullptr;
@ -416,9 +415,6 @@ void TabSupervisor::stop()
if (tabServer) {
tabServer->closeRequest(true);
}
if (tabDeckStorage) {
tabDeckStorage->closeRequest(true);
}
if (tabReplays) {
tabReplays->closeRequest(true);
}
@ -508,7 +504,7 @@ void TabSupervisor::actTabDeckStorage(bool checked)
{
SettingsCache::instance().setTabDeckStorageOpen(checked);
if (checked && !tabDeckStorage) {
tabDeckStorage = new TabDeckStorage(this, client);
tabDeckStorage = new TabDeckStorage(this, client, userInfo);
connect(tabDeckStorage, &TabDeckStorage::openDeckEditor, this, &TabSupervisor::addDeckEditorTab);
myAddTab(tabDeckStorage, aTabDeckStorage);
connect(tabDeckStorage, &Tab::closed, this, [this] {