Fix theming and confirm loss UI

This commit is contained in:
SamJakob 2023-11-08 15:35:19 +00:00
parent 4d50c3db49
commit ac40694691
No known key found for this signature in database
GPG Key ID: 607AC91837DBB115
2 changed files with 21 additions and 10 deletions

View File

@ -152,6 +152,12 @@ class EditorStc(Editor):
self.errorstyle = 5 self.errorstyle = 5
self.control.StyleSetSpec(self.errorstyle, "fore:#FFFF0000,back:#FF0000") self.control.StyleSetSpec(self.errorstyle, "fore:#FFFF0000,back:#FF0000")
try:
if wx.SystemSettings.GetAppearance().IsDark():
self.control.StyleSetSpec(STC_STYLE_LINENUMBER, "fore:#FFFFFF")
except:
pass
def GetText(self): def GetText(self):
return self.control.GetText() return self.control.GetText()

View File

@ -188,7 +188,10 @@ class MainWindow(wx.Frame):
def SetTitle(self): def SetTitle(self):
# MainWindow.SetTitle overrides wx.Frame.SetTitle, so we have to # MainWindow.SetTitle overrides wx.Frame.SetTitle, so we have to
# call it using super: # call it using super:
super(MainWindow, self).SetTitle('Scyther: %s'%self.filename) if self.filename:
super(MainWindow, self).SetTitle('Scyther: %s'%self.filename)
else:
super(MainWindow, self).SetTitle('Scyther: Unsaved File...')
# Helper methods: # Helper methods:
@ -214,8 +217,7 @@ class MainWindow(wx.Frame):
return userProvidedFilename return userProvidedFilename
# Are we dropping a changed file? # Are we dropping a changed file?
def ConfirmLoss(self):
def ConfirmLoss(self,text=None):
""" """
Try to drop the current file. If it was changed, try to save Try to drop the current file. If it was changed, try to save
(as) (as)
@ -226,16 +228,18 @@ class MainWindow(wx.Frame):
if self.editor.GetChanged(): if self.editor.GetChanged():
# File changed, we need to confirm this # File changed, we need to confirm this
title = "Unsaved changes" title = "Unsaved changes"
if text: if self.filename:
title = "%s - " + title title = ("%s - " + title) % (self.filename)
txt = "The protocol file '%s' has been modified.\n\n" % (self.filename) txt = "The protocol file '%s' has been modified.\n\n" % (self.filename)
else:
txt = "You have unsaved changes.\n\n"
txt = txt + "Do you want to" txt = txt + "Do you want to"
txt = txt + " save your changes (Yes)" txt = txt + " save your changes (Yes)"
txt = txt + " or" txt = txt + " or"
txt = txt + " discard them (No)" txt = txt + " discard them (No)"
txt = txt + "?" txt = txt + "?"
dialog = wx.MessageDialog(self,txt,title,wx.YES_NO | wx.CANCEL | wx.ICON_EXCLAMATION) dialog = wx.MessageDialog(self,txt,title,wx.YES_NO | wx.CANCEL | wx.ICON_EXCLAMATION)
result = dialog.ShowModal() result = dialog.ShowModal()
dialog.Destroy() dialog.Destroy()
if result == wx.ID_NO: if result == wx.ID_NO:
# Drop changes # Drop changes
@ -263,16 +267,17 @@ class MainWindow(wx.Frame):
dlg.Destroy() dlg.Destroy()
def OnExit(self, event): def OnExit(self, event):
if self.ConfirmLoss("Exit"): if self.ConfirmLoss():
self.Close() # Close the main window. self.Close() # Close the main window.
return True return True
return False return False
def OnNew(self, event): def OnNew(self, event):
if self.ConfirmLoss("Open"): if self.ConfirmLoss():
self.editor.SetText('') self.editor.SetText('')
self.filename = '' self.filename = ''
self.editor.SetOpened() self.editor.SetOpened()
self.SetTitle()
return True return True
return False return False
@ -287,7 +292,7 @@ class MainWindow(wx.Frame):
return True return True
def OnOpen(self, event): def OnOpen(self, event):
if self.ConfirmLoss("Open"): if self.ConfirmLoss():
if self.askUserForFilename(style=wx.FD_OPEN, if self.askUserForFilename(style=wx.FD_OPEN,
**self.defaultFileDialogOptions()): **self.defaultFileDialogOptions()):
textfile = open(os.path.join(self.dirname, self.filename), 'r') textfile = open(os.path.join(self.dirname, self.filename), 'r')