diff --git a/src/apps/debugger/user_interface/gui/util/GUISettingsUtils.cpp b/src/apps/debugger/user_interface/gui/util/GUISettingsUtils.cpp index b49a3d8bed..2c35b882b4 100644 --- a/src/apps/debugger/user_interface/gui/util/GUISettingsUtils.cpp +++ b/src/apps/debugger/user_interface/gui/util/GUISettingsUtils.cpp @@ -10,6 +10,8 @@ #include #include "GUITeamUISettings.h" +#include "table/AbstractTable.h" + /*static*/ status_t GUISettingsUtils::ArchiveSplitView(const char* sourceName, @@ -54,3 +56,34 @@ GUISettingsUtils::UnarchiveSplitView(const char* sourceName, view->SetItemCollapsed(i, value.ToBool()); } } + + +/*static*/ status_t +GUISettingsUtils::ArchiveTableSettings(const char* sourceName, + const char* viewName, GUITeamUISettings* settings, AbstractTable* table) +{ + BString settingName; + BMessage data; + + settingName.SetToFormat("%s%sTable", sourceName, viewName); + table->SaveState(&data); + if (!settings->AddSettings(settingName.String(), data)) + return B_NO_MEMORY; + + return B_OK; +} + + +/*static*/ void +GUISettingsUtils::UnarchiveTableSettings(const char* sourceName, + const char* viewName, const GUITeamUISettings* settings, + AbstractTable* table) +{ + BString settingName; + BMessage data; + + settingName.SetToFormat("%s%sTable", sourceName, viewName); + if (settings->Settings(settingName.String(), data) == B_OK) + table->LoadState(&data); +} + diff --git a/src/apps/debugger/user_interface/gui/util/GUISettingsUtils.h b/src/apps/debugger/user_interface/gui/util/GUISettingsUtils.h index 5cbc3d81a4..087eeca579 100644 --- a/src/apps/debugger/user_interface/gui/util/GUISettingsUtils.h +++ b/src/apps/debugger/user_interface/gui/util/GUISettingsUtils.h @@ -9,6 +9,7 @@ #include +class AbstractTable; class BSplitView; class GUITeamUISettings; @@ -25,6 +26,18 @@ public: const char* viewName, const GUITeamUISettings* settings, BSplitView* view); + + static status_t ArchiveTableSettings(const char* sourceName, + const char* viewName, + GUITeamUISettings* settings, + AbstractTable* table); + + static void UnarchiveTableSettings(const char* sourceName, + const char* viewName, + const GUITeamUISettings* settings, + AbstractTable* table); + + };