mirror of
https://gitcode.com/JianFeeeee/TrulyMEM-TrueHumanMEM.git
synced 2026-09-21 09:28:19 +00:00
Fix: hide CypherQueryBox in SQLite mode
- RightPanel: add use_embedded_db parameter, conditionally mount CypherQueryBox - RightPanel.get_cypher_query_box(): return None if not exists - RightPanel.has_cypher_query_box(): check if Cypher UI is available - app.py: pass USE_EMBEDDED_DB to RightPanel - app.py: action_focus_query shows notification when Cypher unavailable - Update help text to note F4 is Neo4j-only
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
"""右侧面板"""
|
||||
|
||||
from textual.containers import Container, Vertical
|
||||
from textual.containers import Container, ScrollableContainer
|
||||
from textual.css.query import NoMatches
|
||||
from textual.widgets import Static
|
||||
from textual.app import ComposeResult
|
||||
from .config_section import ConfigSection
|
||||
@ -12,20 +13,20 @@ from ..models.config import AppConfig
|
||||
class RightPanel(Container):
|
||||
"""右侧边栏"""
|
||||
|
||||
def __init__(self, config: AppConfig | None = None, **kwargs):
|
||||
def __init__(self, config: AppConfig | None = None, use_embedded_db: bool = True, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
self._is_collapsed = False
|
||||
self._config = config or AppConfig()
|
||||
self._use_embedded_db = use_embedded_db
|
||||
|
||||
def compose(self) -> ComposeResult:
|
||||
"""构建右侧面板"""
|
||||
from textual.containers import ScrollableContainer
|
||||
|
||||
yield Static("F2:隐藏侧边栏", classes="sidebar-title")
|
||||
with ScrollableContainer():
|
||||
yield ConfigSection(self._config)
|
||||
yield OperationLog()
|
||||
yield CypherQueryBox()
|
||||
if not self._use_embedded_db:
|
||||
yield CypherQueryBox()
|
||||
|
||||
def toggle(self) -> None:
|
||||
"""切换折叠/展开"""
|
||||
@ -49,9 +50,16 @@ class RightPanel(Container):
|
||||
"""获取操作日志组件"""
|
||||
return self.query_one(OperationLog)
|
||||
|
||||
def get_cypher_query_box(self) -> CypherQueryBox:
|
||||
"""获取Cypher查询框组件"""
|
||||
return self.query_one(CypherQueryBox)
|
||||
def get_cypher_query_box(self) -> CypherQueryBox | None:
|
||||
"""获取Cypher查询框组件(可能不存在)"""
|
||||
try:
|
||||
return self.query_one(CypherQueryBox)
|
||||
except NoMatches:
|
||||
return None
|
||||
|
||||
def has_cypher_query_box(self) -> bool:
|
||||
"""检查是否存在Cypher查询框"""
|
||||
return not self._use_embedded_db
|
||||
|
||||
def update_title(self) -> None:
|
||||
"""更新标题"""
|
||||
|
||||
Reference in New Issue
Block a user