Skip to content

Commit 66cd993

Browse files
committed
saving files
1 parent de17e35 commit 66cd993

File tree

3 files changed

+24
-6
lines changed

3 files changed

+24
-6
lines changed

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2022 not-nef
3+
Copyright (c) 2023 not-nef
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

src/editor.py

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
from os.path import basename
1+
from os.path import basename, isfile
22
from tkinter import Frame, Label, PhotoImage
3-
from tkinter.filedialog import askopenfile
3+
from tkinter.filedialog import askopenfile, asksaveasfile
44
from tkinter.ttk import Button, Notebook, Scrollbar, Style
55
from toml import load
66

@@ -37,7 +37,24 @@ def openfile(self):
3737
self.file.close()
3838

3939
def save(self):
40-
pass
40+
self.editor = self.nametowidget(self.select()) # Retrieves Editor Object of currently opened Tab
41+
self.filetosave = self.editor.filedir.cget("text")
42+
if isfile(self.filetosave):
43+
self.file2 = open(self.filetosave, "w")
44+
self.file2.write(self.editor.text.get("1.0", "end"))
45+
self.file2.close()
46+
else:
47+
self.saveas()
48+
49+
def saveas(self):
50+
self.editor = self.nametowidget(self.select())
51+
self.file3 = asksaveasfile()
52+
if self.file3 != None:
53+
self.file3.write(self.editor.text.get("1.0", "end"))
54+
self.editor.filedir.configure(text=self.file3.name)
55+
self.tab(self.select(), text=basename(self.file3.name))
56+
self.file3.close()
57+
4158

4259

4360
# The next two functions are heavily inspired by Akuli:
@@ -98,10 +115,10 @@ def __init__(self, file, *args):
98115

99116
self.text["yscrollcommand"] = self.yscroll
100117

101-
102118
if file != None:
103119
self.text.insert("1.0", file.read())
104120
self.filedir.configure(text=file.name)
121+
file.close()
105122

106123

107124
# Extra function so that the linenumbers and the scrollbar dont fight over the yscrollcommand

src/main.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,10 @@ def __init__(self):
3131

3232
self.menubar.add_cascade(label="File", menu=self.filemenu)
3333

34-
self.filemenu.add_command(label="New", command=lambda:self.manager.newtab(), foreground="white" if LINUX else "black")
34+
self.filemenu.add_command(label="New", command=self.manager.newtab, foreground="white" if LINUX else "black")
3535
self.filemenu.add_command(label="Open", command=self.manager.openfile, foreground="white" if LINUX else "black")
3636
self.filemenu.add_command(label="Save", command=self.manager.save, foreground="white" if LINUX else "black")
37+
self.filemenu.add_command(label="Save As", command=self.manager.saveas, foreground="white" if LINUX else "black")
3738

3839

3940

0 commit comments

Comments
 (0)