Aggiornamenti e bugfix
*Migliorata la leggibilità *Corretto un bug nell' apertura del file temp in windows
This commit is contained in:
parent
70eb7eedfa
commit
88578d42ce
70
Dropchat.py
70
Dropchat.py
@ -14,7 +14,7 @@ class Text(tkinter.Text):
|
|||||||
self.mark_set("searchLimit", fine)
|
self.mark_set("searchLimit", fine)
|
||||||
occorrenze = tkinter.IntVar()
|
occorrenze = tkinter.IntVar()
|
||||||
while True:
|
while True:
|
||||||
indice = self.search(pattern, "matchEnd", "searchLimit", count = occorrenze, regexp = regex)
|
indice = self.search(pattern, "matchEnd", "searchLimit", count=occorrenze, regexp=regex)
|
||||||
if indice == "":
|
if indice == "":
|
||||||
break
|
break
|
||||||
self.mark_set("matchStart", indice)
|
self.mark_set("matchStart", indice)
|
||||||
@ -26,9 +26,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()
|
finestra.iconify()
|
||||||
|
|
||||||
#Variabili
|
#Variabili
|
||||||
self.temp = tempfile.NamedTemporaryFile(mode = "w+t")
|
self.temp = tempfile.NamedTemporaryFile(mode="w+t", suffix=".temp")
|
||||||
self.testo = tkinter.StringVar()
|
self.testo = tkinter.StringVar()
|
||||||
self.file = ""
|
self.file = ""
|
||||||
self.opzionifile = {
|
self.opzionifile = {
|
||||||
@ -47,13 +47,13 @@ class applicazione(tkinter.Frame):
|
|||||||
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:
|
try:
|
||||||
self.cancellanontrovati()
|
self.cancellanontrovati()
|
||||||
self.file = self.preferenze["Chat"][-1]
|
self.file = self.preferenze["Chat"][-1]
|
||||||
except IndexError:
|
except IndexError:
|
||||||
if tkinter.messagebox.askquestion("Dropchat","Nessuna conversazione trovata.", detail = "Crearne una nuova ?") == "yes":
|
if tkinter.messagebox.askquestion("Dropchat","Nessuna conversazione trovata.", detail="Crearne una nuova ?") == "yes":
|
||||||
self.nuovofile()
|
self.nuovofile()
|
||||||
|
|
||||||
#Gestione della finestra
|
#Gestione della finestra
|
||||||
@ -64,7 +64,7 @@ class applicazione(tkinter.Frame):
|
|||||||
finestra.protocol('WM_DELETE_WINDOW', self.chiudi)
|
finestra.protocol('WM_DELETE_WINDOW', self.chiudi)
|
||||||
finestra.deiconify()
|
finestra.deiconify()
|
||||||
self.grid()
|
self.grid()
|
||||||
|
|
||||||
#Inizzializzazione e loop
|
#Inizzializzazione e loop
|
||||||
self.cambiatitolo()
|
self.cambiatitolo()
|
||||||
self.widgets()
|
self.widgets()
|
||||||
@ -74,12 +74,12 @@ class applicazione(tkinter.Frame):
|
|||||||
#Widget della finestra
|
#Widget della finestra
|
||||||
def widgets(self):
|
def widgets(self):
|
||||||
self.menubar = tkinter.Menu(finestra)
|
self.menubar = tkinter.Menu(finestra)
|
||||||
self.chat = Text(finestra, width = 100, height = 30, relief = "sunken", insertbackground = "#fff", **self.opzionichat)
|
self.chat = Text(finestra, width=100, height=30, relief="sunken", insertbackground="#fff", **self.opzionichat)
|
||||||
self.sidebar = tkinter.Listbox(finestra, width = 20, borderwidth = 0, background ="#dce0e8")
|
self.sidebar = tkinter.Listbox(finestra, width=20, borderwidth=0, background="#dce0e8")
|
||||||
self.casella = tkinter.Entry(finestra, textvariable = self.testo, **self.opzionichat)
|
self.casella = tkinter.Entry(finestra, textvariable=self.testo, **self.opzionichat)
|
||||||
self.chat.grid(column = 1, row = 0, sticky = "nswe", pady = (6, 3), padx = 6)
|
self.chat.grid(column=1, row=0, sticky="nswe", pady=(6, 3), padx=6)
|
||||||
self.casella.grid(column = 1, row = 1, sticky = "nswe", pady = (3, 6), padx = 6)
|
self.casella.grid(column=1, row=1, sticky="nswe", pady=(3, 6), padx=6)
|
||||||
self.sidebar.grid(column = 0, row = 0, sticky = "nswe", rowspan = 2)
|
self.sidebar.grid(column=0, row=0, sticky="nswe", rowspan=2)
|
||||||
|
|
||||||
#Bindings
|
#Bindings
|
||||||
self.chat.bind("<KeyPress>", "break")
|
self.chat.bind("<KeyPress>", "break")
|
||||||
@ -91,34 +91,34 @@ class applicazione(tkinter.Frame):
|
|||||||
self.menubar = tkinter.Menu(self)
|
self.menubar = tkinter.Menu(self)
|
||||||
menu = tkinter.Menu(self.menubar)
|
menu = tkinter.Menu(self.menubar)
|
||||||
#Primo menu
|
#Primo menu
|
||||||
self.menubar.add_cascade(label = "Conversazione", menu = menu)
|
self.menubar.add_cascade(label = "Conversazione", menu=menu)
|
||||||
menu.add_command(label = "Nuovo file", command = self.nuovofile)
|
menu.add_command(label="Nuovo file", command=self.nuovofile)
|
||||||
menu.add_command(label = "Apri file...", command = self.aprifile)
|
menu.add_command(label="Apri file...", command=self.aprifile)
|
||||||
#Secondo menu
|
#Secondo menu
|
||||||
menu = tkinter.Menu(self.menubar)
|
menu = tkinter.Menu(self.menubar)
|
||||||
self.menubar.add_cascade(label="Profilo", menu = menu)
|
self.menubar.add_cascade(label="Profilo", menu=menu)
|
||||||
menu.add_command(label = "Nome utente", command = lambda: self.modificapreferenza("Utente", tkinter.simpledialog.askstring("Nome Utente", "Scrivi il nome:", initialvalue = self.preferenze["Utente"], parent = finestra)))
|
menu.add_command(label="Nome utente", command=lambda: self.modificapreferenza("Utente", tkinter.simpledialog.askstring("Nome Utente", "Scrivi il nome:", initialvalue=self.preferenze["Utente"], parent=finestra)))
|
||||||
menu.add_command(label = "Chiave", command = lambda: self.modificapreferenza("Chiave", tkinter.filedialog.askopenfilename(title = "Scegli un file...", message = "Apri una chiave di decodifica.", **self.opzionifile)))
|
menu.add_command(label="Chiave", command=lambda: self.modificapreferenza("Chiave", tkinter.filedialog.askopenfilename(title="Scegli un file...", message="Apri una chiave di decodifica.", **self.opzionifile)))
|
||||||
#Terzo menu
|
#Terzo menu
|
||||||
menu = tkinter.Menu(self.menubar)
|
menu = tkinter.Menu(self.menubar)
|
||||||
self.menubar.add_cascade(label="Modifica", menu = menu)
|
self.menubar.add_cascade(label="Modifica", menu = menu)
|
||||||
menu.add_command(label = "Taglia", command = lambda: finestra.focus_get().event_generate("<<Cut>>"))
|
menu.add_command(label="Taglia", command=lambda: finestra.focus_get().event_generate("<<Cut>>"))
|
||||||
menu.add_command(label = "Copia", command = lambda: finestra.focus_get().event_generate("<<Copy>>"))
|
menu.add_command(label="Copia", command=lambda: finestra.focus_get().event_generate("<<Copy>>"))
|
||||||
menu.add_command(label = "Incolla", command = lambda: finestra.focus_get().event_generate("<<Paste>>"))
|
menu.add_command(label="Incolla", command=lambda: finestra.focus_get().event_generate("<<Paste>>"))
|
||||||
finestra.config(menu=self.menubar)
|
finestra.config(menu=self.menubar)
|
||||||
|
|
||||||
#Menu contestuale 1
|
#Menu contestuale 1
|
||||||
self.menu1 = tkinter.Menu(self)
|
self.menu1 = tkinter.Menu(self)
|
||||||
self.menu1.add_command(label = "Apri", command = self.cambiafile)
|
self.menu1.add_command(label="Apri", command=self.cambiafile)
|
||||||
self.menu1.add_command(label = "Cancella", command = self.cancellafile)
|
self.menu1.add_command(label="Cancella", command=self.cancellafile)
|
||||||
self.menu1.add_separator()
|
self.menu1.add_separator()
|
||||||
self.menu1.add_command(label = "Nuovo file", command = self.nuovofile)
|
self.menu1.add_command(label="Nuovo file", command=self.nuovofile)
|
||||||
self.menu1.add_command(label = "Ricarica", command = lambda: self.sidebar.delete(0,"end"))
|
self.menu1.add_command(label="Ricarica", command=lambda: self.sidebar.delete(0,"end"))
|
||||||
|
|
||||||
#Menu contestuale 2
|
#Menu contestuale 2
|
||||||
self.menu2 = tkinter.Menu(self)
|
self.menu2 = tkinter.Menu(self)
|
||||||
self.menu2.add_command(label = "Nuovo file", command = self.nuovofile)
|
self.menu2.add_command(label="Nuovo file", command=self.nuovofile)
|
||||||
self.menu2.add_command(label = "Ricarica", command = lambda: self.sidebar.delete(0,"end"))
|
self.menu2.add_command(label="Ricarica", command=lambda: self.sidebar.delete(0,"end"))
|
||||||
|
|
||||||
|
|
||||||
#Legge il file dal buffer e lo scrive nella chat
|
#Legge il file dal buffer e lo scrive nella chat
|
||||||
@ -134,7 +134,7 @@ class applicazione(tkinter.Frame):
|
|||||||
if self.file != "":
|
if self.file != "":
|
||||||
with open(self.file, "a") as file:
|
with open(self.file, "a") as file:
|
||||||
if self.testo.get() != "":
|
if self.testo.get() != "":
|
||||||
riga = "[" + datetime.datetime.now().strftime("%d-%m-%y %H:%M") + "] " + self.preferenze["Utente"] + ": " + self.testo.get() + "\n"
|
riga = "[%s] %s: %s" % (datetime.datetime.now().strftime("%d-%m-%y %H:%M"), self.preferenze["Utente"], self.testo.get())
|
||||||
self.testo.set("")
|
self.testo.set("")
|
||||||
file.write(riga)
|
file.write(riga)
|
||||||
|
|
||||||
@ -155,9 +155,9 @@ class applicazione(tkinter.Frame):
|
|||||||
|
|
||||||
#Colora il testo della chat
|
#Colora il testo della chat
|
||||||
def colora(self):
|
def colora(self):
|
||||||
self.chat.tag_configure("data", foreground = "#005d8f")
|
self.chat.tag_configure("data", foreground="#005d8f")
|
||||||
self.chat.tag_configure("nome", foreground = "#648f00")
|
self.chat.tag_configure("nome", foreground="#648f00")
|
||||||
self.chat.tag_configure("altronome", foreground = "#de7a31")
|
self.chat.tag_configure("altronome", foreground="#de7a31")
|
||||||
self.chat.evidenzia("\[\d+-\d+-\d+ \d+:\d+\]", "data")
|
self.chat.evidenzia("\[\d+-\d+-\d+ \d+:\d+\]", "data")
|
||||||
for nome in re.findall(" ([a-zA-Z]+): ", self.chat.get(0.0, "end")):
|
for nome in re.findall(" ([a-zA-Z]+): ", self.chat.get(0.0, "end")):
|
||||||
if nome == self.preferenze["Utente"]:
|
if nome == self.preferenze["Utente"]:
|
||||||
@ -205,9 +205,9 @@ class applicazione(tkinter.Frame):
|
|||||||
#Apre un file
|
#Apre un file
|
||||||
def aprifile(self):
|
def aprifile(self):
|
||||||
if sys.platform == "darwin":
|
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)
|
||||||
if file not in self.preferenze["Chat"] and file != "":
|
if file not in self.preferenze["Chat"] and file != "":
|
||||||
self.preferenze["Chat"] += file,
|
self.preferenze["Chat"] += file,
|
||||||
json.dump(self.preferenze, open("preferenze.json", "w"))
|
json.dump(self.preferenze, open("preferenze.json", "w"))
|
||||||
@ -218,9 +218,9 @@ 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 sys.platform == "darwin":
|
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")
|
file = open(self.file,"w")
|
||||||
|
Loading…
Reference in New Issue
Block a user