feat(presets): Implement ContextPresetManager and integrate with AppController
This commit is contained in:
@@ -35,6 +35,7 @@ from src import shell_runner
|
||||
from src import theme_2 as theme
|
||||
from src import thinking_parser
|
||||
from src import tool_presets
|
||||
from src.context_presets import ContextPresetManager
|
||||
from src.file_cache import ASTParser
|
||||
|
||||
def parse_symbols(text: str) -> list[str]:
|
||||
@@ -1122,6 +1123,7 @@ class AppController:
|
||||
'text_viewer_title': 'text_viewer_title',
|
||||
'text_viewer_type': 'text_viewer_type'
|
||||
})
|
||||
self.context_preset_manager = ContextPresetManager()
|
||||
self.perf_monitor = performance_monitor.get_monitor()
|
||||
self._perf_profiling_enabled = False
|
||||
self._gui_task_handlers: Dict[str, Callable] = {
|
||||
@@ -2917,6 +2919,21 @@ class AppController:
|
||||
self.view_presets = [vp for vp in self.view_presets if vp.name != name]
|
||||
self._flush_to_project()
|
||||
|
||||
def save_context_preset(self, preset: models.ContextPreset) -> None:
|
||||
self.context_preset_manager.save_preset(self.project, preset)
|
||||
self._save_active_project()
|
||||
|
||||
def load_context_preset(self, name: str) -> models.ContextPreset:
|
||||
presets = self.context_preset_manager.load_all(self.project)
|
||||
if name not in presets:
|
||||
raise KeyError(f"Context preset '{name}' not found.")
|
||||
preset = presets[name]
|
||||
# Apply it to the current state
|
||||
self.ui_file_paths = [f.path for f in preset.files]
|
||||
self.screenshots = list(preset.screenshots)
|
||||
self._save_active_project()
|
||||
return preset
|
||||
|
||||
|
||||
def _cb_load_track(self, track_id: str) -> None:
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user