add closing tabs
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user