From 76a70da13027246db829a04255e8f470815477fc Mon Sep 17 00:00:00 2001 From: Rnhmjoj Date: Sat, 23 Mar 2013 18:58:37 +0100 Subject: [PATCH] Bugfix multipli * Risolto un errore nella gestione del file temporaneo * Risolto un errore che causava la chisura dell'app se non si specificava una conversazione. --- Dropchat.py | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/Dropchat.py b/Dropchat.py index dde8385..c44348f 100644 --- a/Dropchat.py +++ b/Dropchat.py @@ -1,5 +1,5 @@ import tkinter, tkinter.filedialog, tkinter.messagebox, tkinter.simpledialog -import tempfile, json, datetime, re, os +import tempfile, json, datetime, re, sys class Text(tkinter.Text): @@ -25,10 +25,9 @@ class applicazione(tkinter.Frame): def __init__(self, finestra): tkinter.Frame.__init__(self, finestra) - finestra.iconify() #Variabili - self.temp = tempfile.NamedTemporaryFile(mode="w+t", delete=False) + self.temp = tempfile.TemporaryFile(mode="w+t") self.testo = tkinter.StringVar() self.file = "" self.opzionifile = { @@ -43,18 +42,12 @@ class applicazione(tkinter.Frame): "highlightthickness": 0 } - #Gestione delle preferenze ed eventuali errori + #Gestione delle preferenze try: self.preferenze = json.load(open("preferenze.json")) except FileNotFoundError: tkinter.messagebox.showwarning("Dropchat", "File delle preferenze non trovato!", detail="Preferenze di default ricostruite.") self.creapreferenze() - try: - self.cancellanontrovati() - self.file = self.preferenze["Chat"][-1] - except IndexError: - if tkinter.messagebox.askquestion("Dropchat","Nessuna conversazione trovata.", detail="Crearne una nuova ?") == "yes": - self.nuovofile() #Gestione della finestra finestra.geometry(self.preferenze["Geometria"]) @@ -62,13 +55,22 @@ class applicazione(tkinter.Frame): finestra.columnconfigure(1, weight=1) finestra.rowconfigure(0, weight=1) finestra.protocol('WM_DELETE_WINDOW', self.chiudi) - finestra.deiconify() self.grid() - #Inizzializzazione e loop + #Inizzializzazione self.cambiatitolo() self.widgets() self.leggi() + + #Gestione delle ultime conversazioni + try: + self.cancellanontrovati() + self.file = self.preferenze["Chat"][-1] + except IndexError: + if tkinter.messagebox.askquestion("Dropchat","Nessuna conversazione trovata.", detail="Crearne una nuova ?") == "yes": + self.nuovofile() + + #Loop principale self.loop() #Widget della finestra @@ -140,9 +142,9 @@ class applicazione(tkinter.Frame): #copia il file nel buffer def aggiorna(self): - open(self.temp.name,"w").close() + self.temp.close() + self.temp = tempfile.TemporaryFile(mode="w+t") if self.file != "": - self.temp.seek(0) with open(self.file) as testo: self.temp.write(testo.read()) @@ -204,7 +206,7 @@ class applicazione(tkinter.Frame): #Apre un file def aprifile(self): - if os.name == "posix": + if sys.platform == "darwin": file = tkinter.filedialog.askopenfilename(title="Scegli un file...", message="Apri una conversazione esistente.", **self.opzionifile) else: file = tkinter.filedialog.askopenfilename(title="Scegli un file...", **self.opzionifile) @@ -217,14 +219,13 @@ class applicazione(tkinter.Frame): #Crea un nuovo file e lo apre def nuovofile(self): - if os.name == "posix": + if sys.platform == "darwin": file = tkinter.filedialog.asksaveasfilename(title="Crea un file...", message="Scegli il nome della nuova conversazione.", **self.opzionifile) else: file = tkinter.filedialog.asksaveasfilename(title="Crea un file...", **self.opzionifile) if file != "": self.file = file - file = open(self.file,"w") - file.close() + open(self.file,"w").close() if self.file not in self.preferenze["Chat"]: self.preferenze["Chat"] += self.file, json.dump(self.preferenze, open("preferenze.json", "w")) @@ -263,7 +264,6 @@ class applicazione(tkinter.Frame): def chiudi(self): self.modificapreferenza("Geometria", finestra.geometry()) self.temp.close() - os.remove(self.temp.name) finestra.destroy() #Loop principale @@ -274,4 +274,4 @@ class applicazione(tkinter.Frame): finestra = tkinter.Tk() app = applicazione(finestra) -app.mainloop() +app.mainloop() \ No newline at end of file