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.
This commit is contained in:
parent
c2fb90b07f
commit
76a70da130
40
Dropchat.py
40
Dropchat.py
@ -1,5 +1,5 @@
|
|||||||
import tkinter, tkinter.filedialog, tkinter.messagebox, tkinter.simpledialog
|
import tkinter, tkinter.filedialog, tkinter.messagebox, tkinter.simpledialog
|
||||||
import tempfile, json, datetime, re, os
|
import tempfile, json, datetime, re, sys
|
||||||
|
|
||||||
class Text(tkinter.Text):
|
class Text(tkinter.Text):
|
||||||
|
|
||||||
@ -25,10 +25,9 @@ class applicazione(tkinter.Frame):
|
|||||||
|
|
||||||
def __init__(self, finestra):
|
def __init__(self, finestra):
|
||||||
tkinter.Frame.__init__(self, finestra)
|
tkinter.Frame.__init__(self, finestra)
|
||||||
finestra.iconify()
|
|
||||||
|
|
||||||
#Variabili
|
#Variabili
|
||||||
self.temp = tempfile.NamedTemporaryFile(mode="w+t", delete=False)
|
self.temp = tempfile.TemporaryFile(mode="w+t")
|
||||||
self.testo = tkinter.StringVar()
|
self.testo = tkinter.StringVar()
|
||||||
self.file = ""
|
self.file = ""
|
||||||
self.opzionifile = {
|
self.opzionifile = {
|
||||||
@ -43,18 +42,12 @@ class applicazione(tkinter.Frame):
|
|||||||
"highlightthickness": 0
|
"highlightthickness": 0
|
||||||
}
|
}
|
||||||
|
|
||||||
#Gestione delle preferenze ed eventuali errori
|
#Gestione delle preferenze
|
||||||
try:
|
try:
|
||||||
self.preferenze = json.load(open("preferenze.json"))
|
self.preferenze = json.load(open("preferenze.json"))
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
tkinter.messagebox.showwarning("Dropchat", "File delle preferenze non trovato!", detail="Preferenze di default ricostruite.")
|
tkinter.messagebox.showwarning("Dropchat", "File delle preferenze non trovato!", detail="Preferenze di default ricostruite.")
|
||||||
self.creapreferenze()
|
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
|
#Gestione della finestra
|
||||||
finestra.geometry(self.preferenze["Geometria"])
|
finestra.geometry(self.preferenze["Geometria"])
|
||||||
@ -62,13 +55,22 @@ class applicazione(tkinter.Frame):
|
|||||||
finestra.columnconfigure(1, weight=1)
|
finestra.columnconfigure(1, weight=1)
|
||||||
finestra.rowconfigure(0, weight=1)
|
finestra.rowconfigure(0, weight=1)
|
||||||
finestra.protocol('WM_DELETE_WINDOW', self.chiudi)
|
finestra.protocol('WM_DELETE_WINDOW', self.chiudi)
|
||||||
finestra.deiconify()
|
|
||||||
self.grid()
|
self.grid()
|
||||||
|
|
||||||
#Inizzializzazione e loop
|
#Inizzializzazione
|
||||||
self.cambiatitolo()
|
self.cambiatitolo()
|
||||||
self.widgets()
|
self.widgets()
|
||||||
self.leggi()
|
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()
|
self.loop()
|
||||||
|
|
||||||
#Widget della finestra
|
#Widget della finestra
|
||||||
@ -140,9 +142,9 @@ class applicazione(tkinter.Frame):
|
|||||||
|
|
||||||
#copia il file nel buffer
|
#copia il file nel buffer
|
||||||
def aggiorna(self):
|
def aggiorna(self):
|
||||||
open(self.temp.name,"w").close()
|
self.temp.close()
|
||||||
|
self.temp = tempfile.TemporaryFile(mode="w+t")
|
||||||
if self.file != "":
|
if self.file != "":
|
||||||
self.temp.seek(0)
|
|
||||||
with open(self.file) as testo:
|
with open(self.file) as testo:
|
||||||
self.temp.write(testo.read())
|
self.temp.write(testo.read())
|
||||||
|
|
||||||
@ -204,7 +206,7 @@ class applicazione(tkinter.Frame):
|
|||||||
|
|
||||||
#Apre un file
|
#Apre un file
|
||||||
def aprifile(self):
|
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)
|
file = tkinter.filedialog.askopenfilename(title="Scegli un file...", message="Apri una conversazione esistente.", **self.opzionifile)
|
||||||
else:
|
else:
|
||||||
file = tkinter.filedialog.askopenfilename(title="Scegli un file...", **self.opzionifile)
|
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
|
#Crea un nuovo file e lo apre
|
||||||
def nuovofile(self):
|
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)
|
file = tkinter.filedialog.asksaveasfilename(title="Crea un file...", message="Scegli il nome della nuova conversazione.", **self.opzionifile)
|
||||||
else:
|
else:
|
||||||
file = tkinter.filedialog.asksaveasfilename(title="Crea un file...", **self.opzionifile)
|
file = tkinter.filedialog.asksaveasfilename(title="Crea un file...", **self.opzionifile)
|
||||||
if file != "":
|
if file != "":
|
||||||
self.file = file
|
self.file = file
|
||||||
file = open(self.file,"w")
|
open(self.file,"w").close()
|
||||||
file.close()
|
|
||||||
if self.file not in self.preferenze["Chat"]:
|
if self.file not in self.preferenze["Chat"]:
|
||||||
self.preferenze["Chat"] += self.file,
|
self.preferenze["Chat"] += self.file,
|
||||||
json.dump(self.preferenze, open("preferenze.json", "w"))
|
json.dump(self.preferenze, open("preferenze.json", "w"))
|
||||||
@ -263,7 +264,6 @@ class applicazione(tkinter.Frame):
|
|||||||
def chiudi(self):
|
def chiudi(self):
|
||||||
self.modificapreferenza("Geometria", finestra.geometry())
|
self.modificapreferenza("Geometria", finestra.geometry())
|
||||||
self.temp.close()
|
self.temp.close()
|
||||||
os.remove(self.temp.name)
|
|
||||||
finestra.destroy()
|
finestra.destroy()
|
||||||
|
|
||||||
#Loop principale
|
#Loop principale
|
||||||
@ -274,4 +274,4 @@ class applicazione(tkinter.Frame):
|
|||||||
|
|
||||||
finestra = tkinter.Tk()
|
finestra = tkinter.Tk()
|
||||||
app = applicazione(finestra)
|
app = applicazione(finestra)
|
||||||
app.mainloop()
|
app.mainloop()
|
Loading…
Reference in New Issue
Block a user