add closing tabs

This commit is contained in:
2026-07-28 16:20:19 +10:00
parent 66ce2fed82
commit 9e0f81b7a0
2 changed files with 25 additions and 4 deletions

View File

@@ -2,11 +2,13 @@ from textual.widgets import TabbedContent, Tab, TabPane
from textual.widget import Widget
from textual.widgets._tabbed_content import ContentTabs
from textual.reactive import reactive
from textual.events import MouseDown
from textual_fspicker import FileOpen, FileSave, SelectDirectory
from widgets.text_editor import TextEditor
from widgets.home_page import HomePage
from widgets.context_menu import ContextMenu
import os, pathlib
@@ -33,6 +35,7 @@ class FileTab(TabPane):
self.path = path
self.last_saved_value = True
def watch_saved(self, saved_value: bool):
if self.last_saved_value != saved_value:
self.changed = True
@@ -96,6 +99,10 @@ class FileTabs(TabbedContent):
return False
return True
async def close_open_tab(self):
if self.active_pane:
self.remove_pane(self.active)
async def new_file(self):
new_tab = FileTab(None)
@@ -163,7 +170,11 @@ class FileTabs(TabbedContent):
await self.app.push_screen(FileOpen(), callback=callback)
async def open_home(self) -> None:
await self.add_pane(HomeTab())
new_home_tab = HomeTab()
await self.add_pane(new_home_tab)
self.active = new_home_tab.id
async def open_file(self, path: str) -> None:
opened_new_tab = await self.clean_up_tabs(path)
@@ -192,4 +203,6 @@ class FileTabs(TabbedContent):
await new_pane.mount(text_editor)
self.active = new_pane.id
text_editor.focus()