65 lines
1.7 KiB
Python
65 lines
1.7 KiB
Python
from kivy.app import App
|
|
from kivy.uix.floatlayout import FloatLayout
|
|
from kivy.factory import Factory
|
|
from kivy.properties import ObjectProperty
|
|
from kivy.uix.popup import Popup
|
|
|
|
import os
|
|
|
|
|
|
class LoadDialog(FloatLayout):
|
|
load = ObjectProperty(None)
|
|
cancel = ObjectProperty(None)
|
|
|
|
|
|
class SaveDialog(FloatLayout):
|
|
save = ObjectProperty(None)
|
|
text_input = ObjectProperty(None)
|
|
cancel = ObjectProperty(None)
|
|
|
|
|
|
class Root(FloatLayout):
|
|
loadfile = ObjectProperty(None)
|
|
savefile = ObjectProperty(None)
|
|
text_input = ObjectProperty(None)
|
|
|
|
def dismiss_popup(self):
|
|
self._popup.dismiss()
|
|
|
|
def show_load(self):
|
|
content = LoadDialog(load=self.load, cancel=self.dismiss_popup)
|
|
self._popup = Popup(title="Load file", content=content,
|
|
size_hint=(0.9, 0.9))
|
|
self._popup.open()
|
|
|
|
def show_save(self):
|
|
content = SaveDialog(save=self.save, cancel=self.dismiss_popup)
|
|
self._popup = Popup(title="Save file", content=content,
|
|
size_hint=(0.9, 0.9))
|
|
self._popup.open()
|
|
|
|
def load(self, path, filename):
|
|
with open(os.path.join(path, filename[0])) as stream:
|
|
self.text_input.text = stream.read()
|
|
|
|
self.dismiss_popup()
|
|
|
|
def save(self, path, filename):
|
|
with open(os.path.join(path, filename), 'w') as stream:
|
|
stream.write(self.text_input.text)
|
|
|
|
self.dismiss_popup()
|
|
|
|
|
|
class Editor(App):
|
|
pass
|
|
|
|
|
|
Factory.register('Root', cls=Root)
|
|
Factory.register('LoadDialog', cls=LoadDialog)
|
|
Factory.register('SaveDialog', cls=SaveDialog)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
Editor().run()
|